Commit Graph

672 Commits

Author SHA1 Message Date
Jamil
fa19bbf486 refactor(portal): Authorized Sessions -> Recent Connections (#7830)
We've gotten feedback recently that the expiration field causes
confusion among auditors who assume it has actual security relevance.

In reality, this is simply the maximum amount of time a connection
between Client and Gateway will stay alive for, and it has no relation
to "sessions" from a security perspective. As such, it's removed, and
the table renamed "Recent connections" to better name what these are.

The `expiration` column is also removed because this is not actionable
by the admin or end-user. In nearly all cases, the connection will have
been "expired" by some other means naturally, such as toggling Firezone
on/off or a policy or resource change. In other words, we do not rely on
this `expiration` field to enforce any security-related timeout.

Fixes #7712
2025-01-22 16:10:57 +00:00
Jamil
bf967f10b2 chore: Use consistent casing for Dockerfile directives (#7823)
Fixes a minor warning Docker complains about during build.
2025-01-21 16:44:20 +00:00
dependabot[bot]
01a90e3117 build(deps): Bump phoenix_ecto from 4.6.2 to 4.6.3 in /elixir (#7790)
Bumps [phoenix_ecto](https://github.com/phoenixframework/phoenix_ecto)
from 4.6.2 to 4.6.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/phoenixframework/phoenix_ecto/blob/main/CHANGELOG.md">phoenix_ecto's
changelog</a>.</em></p>
<blockquote>
<h2>v4.6.3</h2>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>Add prefix option to check repo status plug</li>
</ul>
</li>
<li>
<p>Bug fix</p>
<ul>
<li>Fix map.field notation warning on Elixir 1.17</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="edbf0d36da"><code>edbf0d3</code></a>
Release v4.6.3</li>
<li><a
href="fe00d3d095"><code>fe00d3d</code></a>
Add prefix option to check repo status plug (<a
href="https://redirect.github.com/phoenixframework/phoenix_ecto/issues/181">#181</a>)</li>
<li><a
href="b44088aed2"><code>b44088a</code></a>
Fix map.field notation warning on Elixir 1.17 (<a
href="https://redirect.github.com/phoenixframework/phoenix_ecto/issues/180">#180</a>)</li>
<li><a
href="b6f618d333"><code>b6f618d</code></a>
Fix language (<a
href="https://redirect.github.com/phoenixframework/phoenix_ecto/issues/179">#179</a>)</li>
<li><a
href="945de21681"><code>945de21</code></a>
fix matrix key</li>
<li><a
href="32a4270f98"><code>32a4270</code></a>
fix branch name in CI</li>
<li><a
href="3e325d3e52"><code>3e325d3</code></a>
Merge pull request <a
href="https://redirect.github.com/phoenixframework/phoenix_ecto/issues/178">#178</a>
from kianmeng/ci-housekeeping</li>
<li><a
href="6be9c3dc77"><code>6be9c3d</code></a>
CI housekeeping</li>
<li>See full diff in <a
href="https://github.com/phoenixframework/phoenix_ecto/compare/v4.6.2...v4.6.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=phoenix_ecto&package-manager=hex&previous-version=4.6.2&new-version=4.6.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-17 01:43:25 +00:00
Jamil
3f3a908bd2 chore(portal): Bump opentelemetry versions (#7794)
Dependabot is having issues figuring out the opentelemetry bumps due to
a [package pull](https://github.com/firezone/firezone/pull/7788), so
this PR aims to alleviate that as a one-off fix.

This bumps a few deps' major versions. Nothing jumped out at first
glance when I reviewed the changelogs, but I figured we'll have a better
idea when this goes out to staging since OTLP is basically disabled in
dev/test.
2025-01-17 01:34:12 +00:00
Brian Manifold
eea7079776 fix(portal): Catch seat limit error in API fallback controller (#7783)
Why:

* The fallback controller in the API was not catching `{:error,
:seat_limit_reached}` being returned and was then generating a 500
response when this happened. This commit adds the condition in the
fallback controller and adds a new template for a more specific error
message in the returned JSON.
2025-01-17 00:13:45 +00:00
dependabot[bot]
9ae9f7e341 build(deps): Bump phoenix_html from 4.1.1 to 4.2.0 in /elixir (#7789)
Bumps [phoenix_html](https://github.com/phoenixframework/phoenix_html)
from 4.1.1 to 4.2.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/phoenixframework/phoenix_html/blob/main/CHANGELOG.md">phoenix_html's
changelog</a>.</em></p>
<blockquote>
<h2>4.2.0 (2024-12-28)</h2>
<ul>
<li>
<p>Enhancements</p>
<ul>
<li>Add <code>Phoenix.HTML.css_escape/1</code> to escape strings for use
inside CSS selectors</li>
<li>Add the ability to pass <code>:hr</code> to
<code>options_for_select/2</code> to render a horizontal rule</li>
</ul>
</li>
<li>
<p>Bug fixes</p>
<ul>
<li>Pass form action through in FormData implementation</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b7fd6b7ba7"><code>b7fd6b7</code></a>
Release v4.2.0</li>
<li><a
href="687cca874b"><code>687cca8</code></a>
Fix warnings on Elixir v1.19</li>
<li><a
href="b6d63e7908"><code>b6d63e7</code></a>
Document and pass through option accordingly</li>
<li><a
href="a8262adb45"><code>a8262ad</code></a>
update changelog</li>
<li><a
href="c1ad602073"><code>c1ad602</code></a>
Merge pull request <a
href="https://redirect.github.com/phoenixframework/phoenix_html/issues/452">#452</a>
from phoenixframework/sd-css-escape</li>
<li><a
href="6b67a083f1"><code>6b67a08</code></a>
Merge pull request <a
href="https://redirect.github.com/phoenixframework/phoenix_html/issues/451">#451</a>
from gilbertbw/gbw-hr</li>
<li><a
href="465c303eb9"><code>465c303</code></a>
Update lib/phoenix_html/form.ex</li>
<li><a
href="cdbc402aa4"><code>cdbc402</code></a>
add Phoenix.HTML.css_escape/1</li>
<li><a
href="2cea68e982"><code>2cea68e</code></a>
Fix formatting</li>
<li><a
href="d30c20b659"><code>d30c20b</code></a>
Add &lt;hr/&gt; to options_for_select</li>
<li>Additional commits viewable in <a
href="https://github.com/phoenixframework/phoenix_html/compare/v4.1.1...v4.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=phoenix_html&package-manager=hex&previous-version=4.1.1&new-version=4.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 23:49:25 +00:00
dependabot[bot]
3bb97c4513 build(deps): Bump floki from 0.36.3 to 0.37.0 in /elixir (#7787)
Bumps [floki](https://github.com/philss/floki) from 0.36.3 to 0.37.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/philss/floki/releases">floki's
releases</a>.</em></p>
<blockquote>
<h2>v0.37.0</h2>
<h2>Added</h2>
<ul>
<li>Add <a
href="https://hexdocs.pm/floki/0.37.0/Floki.html#css_escape/1"><code>Floki.css_escape/1</code></a>
- thanks <a
href="https://github.com/SteffenDE"><code>@​SteffenDE</code></a>.</li>
</ul>
<h2>Fixed</h2>
<ul>
<li>Fix bug propagating identity encoder in <code>raw_html/2</code> -
thanks <a
href="https://github.com/andyleclair"><code>@​andyleclair</code></a>.</li>
</ul>
<h2>Removed</h2>
<ul>
<li>Remove support for Elixir 1.13 and OTP 22.</li>
</ul>
<h2>Pull requests</h2>
<ul>
<li>Drop support for Elixir 1.13 by <a
href="https://github.com/philss"><code>@​philss</code></a> in <a
href="https://redirect.github.com/philss/floki/pull/595">philss/floki#595</a></li>
<li>Bump credo from 1.7.8 to 1.7.9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/philss/floki/pull/596">philss/floki#596</a></li>
<li>Bump credo from 1.7.9 to 1.7.10 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/philss/floki/pull/597">philss/floki#597</a></li>
<li>Bump fast_html from 2.3.0 to 2.4.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/philss/floki/pull/599">philss/floki#599</a></li>
<li>Bump dialyxir from 1.4.4 to 1.4.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/philss/floki/pull/600">philss/floki#600</a></li>
<li>Bump ex_doc from 0.34.2 to 0.35.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/philss/floki/pull/602">philss/floki#602</a></li>
<li>Fix bug propagating identity encoder in <code>raw_html/2</code> by
<a href="https://github.com/andyleclair"><code>@​andyleclair</code></a>
in <a
href="https://redirect.github.com/philss/floki/pull/603">philss/floki#603</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/andyleclair"><code>@​andyleclair</code></a>
made their first contribution in <a
href="https://redirect.github.com/philss/floki/pull/603">philss/floki#603</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/philss/floki/compare/v0.36.3...v0.37.0">https://github.com/philss/floki/compare/v0.36.3...v0.37.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/philss/floki/blob/main/CHANGELOG.md">floki's
changelog</a>.</em></p>
<blockquote>
<h2>[0.37.0] - 2024-12-06</h2>
<h3>Added</h3>
<ul>
<li>Add <code>Floki.css_escape/1</code> - thanks <a
href="https://github.com/SteffenDE"><code>@​SteffenDE</code></a>.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix bug propagating identity encoder in <code>raw_html/2</code> -
thanks <a
href="https://github.com/andyleclair"><code>@​andyleclair</code></a>.</li>
</ul>
<h3>Removed</h3>
<ul>
<li>Remove support for Elixir 1.13 and OTP 22.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2c68b0f7f8"><code>2c68b0f</code></a>
Release v0.37.0</li>
<li><a
href="47000382e8"><code>4700038</code></a>
Fix bug propagating identity encoder in <code>raw_html/2</code> (<a
href="https://redirect.github.com/philss/floki/issues/603">#603</a>)</li>
<li><a
href="cabdd7a539"><code>cabdd7a</code></a>
Bump ex_doc from 0.34.2 to 0.35.1 (<a
href="https://redirect.github.com/philss/floki/issues/602">#602</a>)</li>
<li><a
href="eab60f1240"><code>eab60f1</code></a>
Bump dialyxir from 1.4.4 to 1.4.5 (<a
href="https://redirect.github.com/philss/floki/issues/600">#600</a>)</li>
<li><a
href="4eac58a02e"><code>4eac58a</code></a>
Bump fast_html from 2.3.0 to 2.4.0 (<a
href="https://redirect.github.com/philss/floki/issues/599">#599</a>)</li>
<li><a
href="576d356865"><code>576d356</code></a>
Bump credo from 1.7.9 to 1.7.10 (<a
href="https://redirect.github.com/philss/floki/issues/597">#597</a>)</li>
<li><a
href="f5845f936d"><code>f5845f9</code></a>
Bump credo from 1.7.8 to 1.7.9 (<a
href="https://redirect.github.com/philss/floki/issues/596">#596</a>)</li>
<li><a
href="96955f925d"><code>96955f9</code></a>
Add notes to changelog [ciskip]</li>
<li><a
href="17fd1d0b30"><code>17fd1d0</code></a>
Drop support for Elixir 1.13 (<a
href="https://redirect.github.com/philss/floki/issues/595">#595</a>)</li>
<li><a
href="ce33a5539e"><code>ce33a55</code></a>
Reapply &quot;add Floki.css_escape/1 (<a
href="https://redirect.github.com/philss/floki/issues/594">#594</a>)&quot;</li>
<li>See full diff in <a
href="https://github.com/philss/floki/compare/v0.36.3...v0.37.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=floki&package-manager=hex&previous-version=0.36.3&new-version=0.37.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 23:17:39 +00:00
dependabot[bot]
0b2fdac500 build(deps-dev): Bump dialyxir from 1.4.3 to 1.4.5 in /elixir (#7786)
Bumps [dialyxir](https://github.com/jeremyjh/dialyxir) from 1.4.3 to
1.4.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jeremyjh/dialyxir/releases">dialyxir's
releases</a>.</em></p>
<blockquote>
<h2>1.4.5</h2>
<h3>Fixed</h3>
<ul>
<li>Crash when default ignore file missing and custom file
specified</li>
<li>Revert format option ignore_file_string to ignore_file_strict</li>
</ul>
<h2>1.4.4</h2>
<h3>Fixed</h3>
<ul>
<li>Invalid contract formatting failed on OTP 26 &amp; later.</li>
<li>Empty ignore files are ignored.</li>
<li>Several improvements and corrections to documentation.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Updated Erlex minimum version to 0.27, bringing in several fixes and
improvements.</li>
</ul>
<h3>Added</h3>
<ul>
<li>Multiple formatters can be used in the same invocation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jeremyjh/dialyxir/blob/master/CHANGELOG.md">dialyxir's
changelog</a>.</em></p>
<blockquote>
<h2>Unreleased changes post [1.4.5]</h2>
<h2>[1.4.5] - 2024-11-17</h2>
<h3>Fixed</h3>
<ul>
<li>Crash when default ignore file missing and custom file
specified</li>
<li>Revert format option ignore_file_string to ignore_file_strict</li>
</ul>
<h2>[1.4.4] - 2024-09-28</h2>
<h3>Fixed</h3>
<ul>
<li>Invalid contract formatting failed on OTP 26 &amp; later.</li>
<li>Empty ignore files are ignored.</li>
<li>Several improvements and corrections to documentation.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Updated Erlex minimum version to 0.27, bringing in several fixes and
improvements.</li>
</ul>
<h3>Added</h3>
<ul>
<li>Multiple formatters can be used in the same invocation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="501ecd732b"><code>501ecd7</code></a>
Release 1.4.5</li>
<li><a
href="7fadd55027"><code>7fadd55</code></a>
Merge pull request <a
href="https://redirect.github.com/jeremyjh/dialyxir/issues/549">#549</a>
from pdm-jd/pdm-jd/fix/crash-on-custom-ignore-file</li>
<li><a
href="621fc4aded"><code>621fc4a</code></a>
fix: mix dialyzer crashes when a custom ignore file provided that
doesn't mat...</li>
<li><a
href="b960c7d545"><code>b960c7d</code></a>
Merge pull request <a
href="https://redirect.github.com/jeremyjh/dialyxir/issues/547">#547</a>
from neel-desh/bugfix/rename-format-option</li>
<li><a
href="bc8852ed8a"><code>bc8852e</code></a>
Bugfix: Revert format option ignore_file_string to
ignore_file_strict</li>
<li><a
href="3768413c94"><code>3768413</code></a>
Merge pull request <a
href="https://redirect.github.com/jeremyjh/dialyxir/issues/543">#543</a>
from lnenad/master</li>
<li><a
href="c7234e7e63"><code>c7234e7</code></a>
Add a check whether default_ignore file is empty during execution and
ignores...</li>
<li><a
href="b69c5d8954"><code>b69c5d8</code></a>
Fix matching of invalid_contract args. (<a
href="https://redirect.github.com/jeremyjh/dialyxir/issues/541">#541</a>)</li>
<li><a
href="4d76fe921c"><code>4d76fe9</code></a>
Support multiple formatters (<a
href="https://redirect.github.com/jeremyjh/dialyxir/issues/538">#538</a>)</li>
<li><a
href="d8cb107f85"><code>d8cb107</code></a>
Merge pull request <a
href="https://redirect.github.com/jeremyjh/dialyxir/issues/540">#540</a>
from kianmeng/ci-housekeeping</li>
<li>Additional commits viewable in <a
href="https://github.com/jeremyjh/dialyxir/compare/1.4.3...1.4.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dialyxir&package-manager=hex&previous-version=1.4.3&new-version=1.4.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-16 23:17:10 +00:00
Jamil
603a64435e chore(portal): use appropriate sha in dev (#7782)
Not a huge deal, but this doesn't actually need to be a valid SHA and
this is more clear / has no risk of collision with an actual git sha.
2025-01-16 22:58:12 +00:00
Jamil
53032fcbe1 fix(ci): Populate elixir vsn from env at build time (#7773)
Dependabot's workflow is set up in such a way it seems that it can't
find our `sha.exs` file.

This is a cleaner approach that doesn't rely on using external files for
the application version.

Interesting note: `mix compile` will happily use the cached `version`
even though it's computed from an env var, because `mix compile` uses
file hash and mtime to know when to recompile.

See https://github.com/firezone/firezone/network/updates/942719116
2025-01-16 22:26:22 +00:00
Jamil
2d0fafbc59 chore(ci): Use consistent casing for Docker directives (#7781)
```
 => WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 258)
```
2025-01-16 21:58:06 +00:00
Brian Manifold
430b32324a fix(portal): Update IDP sync error email threshold (#7757)
Why:

* An IdP sync can fail for different reasons and because of this we
previously put a threshold on when to send the first 'IdP sync failed'
email, which was set at 10 failed sync attempts. One thing that was
accidentally overlooked was that on one specific failure type (i.e. 401
- Unauthorized) the Firezone sync was automatically disabled and not
tried from that point forward. Unfortunately, that meant an email did
not get sent out because the threshold was not met. This PR resolves
that by making sure the 401 error will send out an email immediately,
while keeping the 10 failed sync threshold for all other errors.

Closes: #7725
2025-01-15 17:03:12 +00:00
dependabot[bot]
cd2c3433d1 build(deps): Bump @fontsource/source-sans-3 from 5.1.0 to 5.1.1 in /elixir/apps/web/assets (#7623)
Bumps
[@fontsource/source-sans-3](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/source-sans-3)
from 5.1.0 to 5.1.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/fontsource/font-files/commits/HEAD/fonts/google/source-sans-3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@fontsource/source-sans-3&package-manager=npm_and_yarn&previous-version=5.1.0&new-version=5.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 19:10:42 +00:00
Brian Manifold
1f457d2127 fix(portal): Fixing a few edge cases for identity email (#7532) 2024-12-16 23:11:25 +00:00
Jamil
d8dda14759 docs: Appease codespell in elixir/README.md (#7528) 2024-12-15 17:01:54 -08:00
Jamil
fe164389c1 docs: Add instructions for connecting to Cloud SQL as the firezone user (#7527)
This is needed to perform index surgery.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-12-15 16:39:29 -08:00
Jamil
9fdfbea818 chore: fix elixir formatting (#7524) 2024-12-15 10:50:48 -08:00
Jamil
938448a43b fix(portal): Update existing auth_identities migration to include provider_identifier in the index (#7523)
#7522 won't successfully complete on production because of the migration
in this PR. So, instead, we need to modify this migration, and then
manually apply the same operation to staging.
2024-12-15 10:08:25 -08:00
Jamil
d3f38a22ae fix(portal): Add provider_identifier to identities email unique index (#7522)
It's possible for two of the same emails to exist within the same
provider, so we need to add `provider_identifier` to the unique index to
enforce uniqueness properly.

Refs https://firezonehq.slack.com/archives/C04HRQTFY0Z/p1734131256450379
2024-12-15 09:37:22 -08:00
Brian Manifold
f114bc95cd refactor(portal): Add email as separate column on auth_identities table (#7472)
Why:

* Currently, when using the API, a user has no way of easily identifying
what identities they are pulling back as the response only includes the
`provider_identifier` which for most of our AuthProviders is an ID for
the IdP and not an email address. Along with that, when adding users to
an OIDC provider within Firezone, there is no check for whether or not
an identity has already been added with a given email address. By
creating a separate email column on the `auth_identities` table, it will
be very straight forward to know whether an email address exists for a
given identity, return it in an API response and allow the admin of a
Firezone account to track users (Identities) by email rather than IdP
identifier.

Fixes #7392
2024-12-13 17:26:47 +00:00
Brian Manifold
9711cf56c1 fix(portal): Fix update API endpoint for resources (#7493)
Why:

* The API endpoint for updating Resources was using
`Resources.fetch_resource_by_id_or_persistent_id`, however that function
was fetching all Resources, which included deleted Resources. In order
to prevent an API user from attempting to update a Resource that is
deleted, a new function was added to fetch active Resources only.

Fixes: #7492
2024-12-12 22:51:28 +00:00
Brian Manifold
b66a156831 fix(portal): Set Floki dependency back to hex (#7387)
Found a small `TODO` while working on other things and figured I'd
quickly fix it.

Following these 2 github issues indicate the problem has been fixed:
https://github.com/philss/floki/issues/556
https://github.com/hexpm/hex/issues/1019
2024-11-21 02:06:37 +00:00
Brian Manifold
328e973502 feat(portal): add membership to google parent OUs (#6811) (#7382)
Hi @firezone/engineering , this is the following of
https://github.com/firezone/firezone/pull/6649

I forgot that people can be member of multiple OUs, this PR aims to add
support for this.

Imagine I have this OU architecture in my google workspace:

```mermaid
flowchart TD
    A[Employees] --> B[Engineering]
    A --> C[HR]
    B --> D[Devs]
    B --> E[Ops]
    D --> F{me}
```

Currently in Firezone, I will only be a member of the Firezone Group
`OU: Devs`.

With this PR: I will be a member of `OU: Devs`, `OU: Engineering` and
`OU: Employees`

Co-authored-by: Antoine <antoinelabarussias@gmail.com>
2024-11-19 21:38:22 +00:00
Brian Manifold
1ef286ac55 fix(portal): API clients 'show' page should always be in settings (#7371)
Why:

* The portal currently shows API clients in the Actors index list. Each
Actor in the list has a link to their own 'show' page. Prior to this
commit, selecting an API client from the list would result an error.
While API clients are technically an Actor, they aren't quite the same
as all other Actors because they are only used to configure the portal
for a given account. Because of this, they don't have the same
information to show as all other Actors. This commit sets the 'show' URL
for API clients to the 'settings' page to show the proper info for the
API client.

Fixes: #7370
2024-11-18 18:52:23 +00:00
Brian Manifold
2d93100c41 fix(portal): Update Stripe event handler to only listen for certain update events (#7357)
Why:

* Recently we had an issue where a customer's payment info was
incorrectly entered, which caused the payment to not go through. When
something like this happens Stripe will send an update event with a
pending_update section (which we do not use currently). When the
customer fixes the payment info, and payment goes through we get another
update event with the correct subscription info, however, the previous
update (with the pending section) then gets expired and a
`pending_update_expired` event is sent to us. We had been inadvertantly
catching the event and updating the specified account with the info in
the event (which happened to be the previous state of the subscription)

Fixes: #7352
2024-11-15 20:52:50 +00:00
Jamil
6f7f6a4f34 style: Enforce code style across all supported languages using Prettier (#7322)
This ensure that we run prettier across all supported filetypes to check
for any formatting / style inconsistencies. Previously, it was only run
for files in the website/ directory using a deprecated pre-commit
plugin.

The benefit to keeping this in our pre-commit config is that devs can
optionally run these checks locally with `pre-commit run --config
.github/pre-commit-config.yaml`.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-11-13 00:19:15 +00:00
Brian Manifold
1a6e70a3d2 fix(portal): Fix sign_up/sign_in email templates (#7295)
Why:

* Two of the email templates using an `<a>` tag were not properly
interpolating a view variable. This happened when the templates were
moved from the `web` app using `.heex` files to the `domain` app using
`.eex` files.

Fixes #7294
2024-11-10 04:24:04 +00:00
Brian Manifold
40ca7fccf0 fix(portal): Update log level for failed component version fetch (#7286)
Why:

* The Firezone website is hosting the component versions at the moment
      and due to how Vercel works, occassionally a request will
timeout when being made to the /api/versions endpoint. This had been
      throwing an error in the elixir logs and triggering an alert, but
because there is always a default set of component version values in
      the elixir app there isn't really a need for an error/alert.  With
      that in mind the log level will be set to `warning` rather than
      `error`.
      
Closes #7233
2024-11-08 17:37:27 +00:00
Andrew Dryga
ab7619c68c chore(docs): Add more docs on troubleshooting (#7076)
Signed-off-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Brian Manifold <bmanifold@users.noreply.github.com>
2024-11-07 21:02:21 +00:00
Brian Manifold
06791d2d05 refactor(portal): API persistent IDs (#7182)
In order for the firezone terraform provider to work properly, the
Resources and Policies need to be able to be referenced by their
`persistent_id`, specifically in the portal API.
2024-11-07 20:45:56 +00:00
Andrew Dryga
a67c12de7e fix(portal): Polish link in peeks (#7180) 2024-10-29 19:22:20 -06:00
Andrew Dryga
f296dc5ad2 feat(portal): Show clients peek on actors index (#7100)
We will show up to 5 recently started client icons and a status for them
as a green dot badge (no dot when it's offline to keep things simple).
Additional details are available on hover.

<img width="1415" alt="1"
src="https://github.com/user-attachments/assets/1d48d08b-f024-4016-837a-3a2ac9a34718">
<img width="1413" alt="2"
src="https://github.com/user-attachments/assets/101ff122-26e2-4282-ae1d-073b4eba9c56">

I also extended the `Clients` table on "Actor" view page to match the
"Clients" index view.

Also closes #7096
2024-10-28 16:06:22 -06:00
Andrew Dryga
0452273a16 fix(portal): Change groups table column widths (#7089) 2024-10-18 13:29:08 -06:00
Thomas Eizinger
ce1e59c9fe feat(connlib): implement idempotent control protocol for gateway (#6941)
This PR implements the new idempotent control protocol for the gateway.
We retain backwards-compatibility with old clients to allow admins to
perform a disruption-free update to the latest version.

With this new control protocol, we are moving the responsibility of
exchanging the proxy IPs we assigned to DNS resources to a p2p protocol
between client and gateway. As a result, wildcard DNS resources only get
authorized on the first access. Accessing a new domain within the same
resource will thus no longer require a roundtrip to the portal.

Overall, users will see a greatly decreased connection setup latency. On
top of that, the new protocol will allow us to more easily implement
packet buffering which will be another UX boost for Firezone.
2024-10-18 15:59:47 +00:00
Andrew Dryga
5888aa0f49 fix(portal): Only show one icon next to client name and make it match the style of heroicons (#7085)
<img width="1376" alt="Screenshot 2024-10-17 at 2 05 35 PM"
src="https://github.com/user-attachments/assets/4d294e60-35c5-4ebf-b3cc-6bfdbf5230e3">
2024-10-17 16:00:36 -06:00
Andrew Dryga
268825d45b fix(portal): Fix table titles (#7080) 2024-10-16 16:27:09 -06:00
Andrew Dryga
37ef2cb591 feat(portal): Allow filtering clients by presence and deleting them (#7078)
Closes #7073

<img width="1434" alt="Screenshot 2024-10-16 at 12 40 50 PM"
src="https://github.com/user-attachments/assets/2c03f38c-c67e-49db-9453-e23651c8d61c">

<img width="1154" alt="Screenshot 2024-10-16 at 12 47 37 PM"
src="https://github.com/user-attachments/assets/da519458-1447-4dfe-9cef-536bf7760ce2">
2024-10-16 13:29:24 -06:00
Andrew Dryga
b3c2e54460 feat(portal): New version of the WS control protocol (#6761)
TODOs:
- [x] Switch to sending messages instead of replies
- [ ] Do not hide pre-filtered resources and render them with an error
instead (in case we will want to expose that on a client later)
- [x] Figure out how to generate PSK so that it stays across WS
connections
2024-10-16 10:57:54 -06:00
Andrew Dryga
3c4db73946 feat(portal): Show client OS and version (#7039)
Closes #6157

<img width="1728" alt="Screenshot 2024-10-14 at 4 37 46 PM"
src="https://github.com/user-attachments/assets/5775f2cd-bf0b-43a3-b994-ad0fcfd24ccc">
<img width="1366" alt="Screenshot 2024-10-14 at 4 38 24 PM"
src="https://github.com/user-attachments/assets/3dc958a7-62d6-45d8-8258-2790c88c97d4">
2024-10-15 14:53:50 -06:00
Andrew Dryga
3567399efe fix(portal): Remove extra space before a link (#7040)
<img width="394" alt="Screenshot 2024-10-14 at 4 49 09 PM"
src="https://github.com/user-attachments/assets/1f1f3eba-96a5-49c6-b05b-d28439041a56">
2024-10-15 12:53:35 -06:00
Andrew Dryga
2ab70c2f27 feat(portal): Add flash asking people to deploy more than 1 gateway to a site (#7034)
This should help with showcasing core features of our product and to
increase their adoption.

Closes #5009
2024-10-14 15:50:19 -06:00
Andrew Dryga
7245652671 fix(portal): Make sure modals start with Confirm.. (#7032)
Closes #6713
2024-10-14 14:05:33 -06:00
Andrew Dryga
f89cc67fda fix(portal): Fix copy-paste buttons (#7033)
- Added semi-transparent shadow to the button so that it's more visible
when text is overlapping it. Padding did not look well because it
required scrollbar to be moved inside the parent container and it looked
very ugly
- Replaced custom phx hook with a new native Tailwind component

Closes #5973
2024-10-14 14:05:14 -06:00
Thomas Eizinger
05e895525b chore: set simpler default log filters (#7028)
Follow-up from #6985 to simplify our log filters everywhere. If any of
this doesn't fit, we should adjust the things here:


17ea827c03/rust/logging/src/lib.rs (L32-L40)
2024-10-14 18:54:36 +00:00
Andrew Dryga
1abfa10fb7 fix(portal): UX improvements (#7013)
This PR accumulates lots of small UX fixes from #6645.

---------

Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2024-10-14 11:32:44 -06:00
Brian Manifold
41d1916cc7 fix(portal): Fix outdated gateway notification to respect enable/disable status (#7016)
Realized the enable/disable setting wasn't being respected for the
outdated gateway notification. This PR should fix that issue.
2024-10-13 06:38:28 +00:00
Brian Manifold
7838da9739 fix(portal): Prevent upstream DNS config from using sentinel CIDR ranges (#7010)
Closes #6962
2024-10-11 21:15:29 +00:00
Brian Manifold
7fda4c52c4 feat(portal): Add outdated gateway notifications (#6841)
Why:

* Without some type of notification, users do not realize that new
Gateway versions have been released and thus do not seem to be upgrading
their deployed Gateways.
2024-10-11 12:46:00 +00:00
Brian Manifold
4dde7293d5 fix(portal): Fix show page errors when entity was created by API (#7002)
Why:

* A handful of 'show' pages were throwing errors for entities created
using the API. The reason was due to the fact that the
`created_by_actor` was not being preloaded and when the details on the
show page were being rendered. This commit updates the various pages to
preload the `created_by_actor` to allow for both API created entities
and UI created entities.
2024-10-10 15:44:53 +00:00
Andrew Dryga
945b5813a0 fix(portal): Make DNS address validations more strict (#6991)
Closes ##6981
2024-10-10 09:10:00 -06:00