Commit Graph

6801 Commits

Author SHA1 Message Date
dependabot[bot]
d4338883a6 build(deps): bump semver from 1.0.25 to 1.0.26 in /rust (#8509)
Bumps [semver](https://github.com/dtolnay/semver) from 1.0.25 to 1.0.26.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/semver/releases">semver's
releases</a>.</em></p>
<blockquote>
<h2>1.0.26</h2>
<ul>
<li>Documentation improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3e64fdbfce"><code>3e64fdb</code></a>
Release 1.0.26</li>
<li><a
href="dd8dc0ad90"><code>dd8dc0a</code></a>
Point standard library links to stable</li>
<li><a
href="479518de59"><code>479518d</code></a>
Unset doc-scrape-examples for lib target</li>
<li><a
href="4fa7acb318"><code>4fa7acb</code></a>
More precise gitignore patterns</li>
<li>See full diff in <a
href="https://github.com/dtolnay/semver/compare/1.0.25...1.0.26">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=semver&package-manager=cargo&previous-version=1.0.25&new-version=1.0.26)](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-03-24 20:57:05 +00:00
dependabot[bot]
9307e173f5 build(deps): bump uuid from 1.14.0 to 1.16.0 in /rust (#8510)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.14.0 to 1.16.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/uuid-rs/uuid/releases">uuid's
releases</a>.</em></p>
<blockquote>
<h2>v1.16.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Mark <code>Uuid::new_v8</code> const by <a
href="https://github.com/tguichaoua"><code>@​tguichaoua</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/815">uuid-rs/uuid#815</a></li>
<li>Prepare for 1.16.0 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/817">uuid-rs/uuid#817</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/tguichaoua"><code>@​tguichaoua</code></a> made
their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/815">uuid-rs/uuid#815</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/uuid-rs/uuid/compare/v1.15.1...v1.16.0">https://github.com/uuid-rs/uuid/compare/v1.15.1...v1.16.0</a></p>
<h2>v1.15.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Guarantee v7 timestamp will never overflow by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/811">uuid-rs/uuid#811</a></li>
<li>Prepare for 1.15.1 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/812">uuid-rs/uuid#812</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/uuid-rs/uuid/compare/v1.15.0...v1.15.1">https://github.com/uuid-rs/uuid/compare/v1.15.0...v1.15.1</a></p>
<h2>v1.15.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add a manual <code>Debug</code> implementation for NonNilUUid by <a
href="https://github.com/rick-de-water"><code>@​rick-de-water</code></a>
in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/808">uuid-rs/uuid#808</a></li>
<li>Support higher precision, shiftable timestamps in V7 UUIDs by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/809">uuid-rs/uuid#809</a></li>
<li>Prepare for 1.15.0 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/810">uuid-rs/uuid#810</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/rick-de-water"><code>@​rick-de-water</code></a>
made their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/808">uuid-rs/uuid#808</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/uuid-rs/uuid/compare/v1.14.0...v1.15.0">https://github.com/uuid-rs/uuid/compare/v1.14.0...v1.15.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c36beb14d5"><code>c36beb1</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/817">#817</a> from
uuid-rs/cargo/v1.16.0</li>
<li><a
href="5338b246b7"><code>5338b24</code></a>
prepare for 1.16.0 release</li>
<li><a
href="420f6279ae"><code>420f627</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/815">#815</a> from
tguichaoua/new_v8_const</li>
<li><a
href="254258c8c7"><code>254258c</code></a>
mark <code>Uuid::new_v8</code> const</li>
<li><a
href="4e5b88e7af"><code>4e5b88e</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/812">#812</a> from
uuid-rs/cargo/v1.15.1</li>
<li><a
href="7fb64f78c7"><code>7fb64f7</code></a>
prepare for 1.15.1 release</li>
<li><a
href="f05b6df98e"><code>f05b6df</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/811">#811</a> from
uuid-rs/fix/v7-overflow</li>
<li><a
href="c2d313fbbb"><code>c2d313f</code></a>
guarantee v7 timestamp will never overflow</li>
<li><a
href="56ba68ff13"><code>56ba68f</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/810">#810</a> from
uuid-rs/cargo/v1.15.0</li>
<li><a
href="26c8a9bebc"><code>26c8a9b</code></a>
prepare for 1.15.0 release</li>
<li>Additional commits viewable in <a
href="https://github.com/uuid-rs/uuid/compare/v1.14.0...v1.16.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uuid&package-manager=cargo&previous-version=1.14.0&new-version=1.16.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-03-24 20:56:42 +00:00
Jamil
effe169414 chore: release apple 1.4.8 (#8499)
Introduces the autoconnect and session end fixes.
2025-03-21 11:43:00 +00:00
Jamil
e0c373ef2b chore(infra): Move google gateway to dedicated module (#8489)
Removes the google gateway module in this repo because:

- We already reference this module from our `environments` repo.
- Customers are already using the dedicated module
- Any actually pointing to the module in this repo will have issues
because Terraform [automatically tries to clone
submodules](https://github.com/hashicorp/terraform/issues/34917).
2025-03-20 05:16:28 +00:00
Jamil
73c63c8ea4 chore(infra): Use simplified config for swap space (#8488)
Turns out cloud-init has native support for configuring swapfiles, so we
use that here and make it configurable.

The `environments` submodule will be updated to inject the current value
into here.
2025-03-19 19:28:08 +00:00
Brian Manifold
3313e7377e feat(portal): Add account delete button (#8487)
Why:

* This commit will allow account admins to send a request through the
Firezone portal to schedule a deletion of their account, rather than
having the account admins email their request manually. Doing this
through the portal allows us to verify that the request actually came
from an admin of the account.
2025-03-19 18:23:32 +00:00
Jamil
91db00f3d7 fix(gateway): Apply more specific firewall rules on start (#8483)
On some Linux distributions (Amazon Linux 2023), the default `iptables`
install includes a blanket deny rule in the `FORWARD` chain that
prevents packets from the tunnel interface from ever leaving the host.
To fix this, we ensure our `FORWARD` chain rules are inserted with
priority 1 which takes precedence over the blanket-deny rule.

We also update our MASQUERADE in the NAT table to apply only to the CIDR
range possible for Gateway tunnel IPs, as opposed to the default
`0.0.0.0/0`.

Fixes #8481
2025-03-19 05:32:50 +00:00
Jamil
4701306835 docs: Update terraform gcp module docs for new published module (#8485)
Updates our Google terraform module guide to suit the new published
module in the Terraform registry.
2025-03-19 05:07:11 +00:00
Thomas Eizinger
84a2c275ca build(rust): upgrade to Rust 1.85 and Edition 2024 (#8240)
Updates our codebase to the 2024 Edition. For highlights on what
changes, see the following blogpost:
https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html
2025-03-19 02:58:55 +00:00
Jamil
595fb7efd9 refactor(portal): Rename resource_cidrs -> device_cidrs (#8482)
I was debugging some of this just now and realized our naming / comments
are incorrect here, so thought I'd open a PR to tidy things up for the
next person reading this.

Resource CIDRs actually occupy the `100.96.0.0/11` range (and IPv6
equivalent), but the portal doesn't generate these.
2025-03-19 01:54:08 +00:00
dependabot[bot]
64e4a51510 build(deps): bump android_log-sys from 0.3.1 to 0.3.2 in /rust (#8465)
Bumps
[android_log-sys](https://github.com/rust-mobile/android_log-sys-rs)
from 0.3.1 to 0.3.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/rust-mobile/android_log-sys-rs/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=android_log-sys&package-manager=cargo&previous-version=0.3.1&new-version=0.3.2)](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-03-18 21:39:25 +00:00
dependabot[bot]
2bcd26d3de build(deps): bump libc from 0.2.169 to 0.2.171 in /rust (#8466)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.169 to 0.2.171.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/libc/releases">libc's
releases</a>.</em></p>
<blockquote>
<h2>0.2.171</h2>
<h3>Added</h3>
<ul>
<li>Android: Add <code>if_nameindex</code>/<code>if_freenameindex</code>
support (<a
href="https://redirect.github.com/rust-lang/libc/pull/4247">#4247</a>)</li>
<li>Apple: Add missing proc types and constants (<a
href="https://redirect.github.com/rust-lang/libc/pull/4310">#4310</a>)</li>
<li>BSD: Add <code>devname</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4285">#4285</a>)</li>
<li>Cygwin: Add PTY and group API (<a
href="https://redirect.github.com/rust-lang/libc/pull/4309">#4309</a>)</li>
<li>Cygwin: Add support (<a
href="https://redirect.github.com/rust-lang/libc/pull/4279">#4279</a>)</li>
<li>FreeBSD: Make <code>spawn.h</code> interfaces available on all
FreeBSD-like systems (<a
href="https://redirect.github.com/rust-lang/libc/pull/4294">#4294</a>)</li>
<li>Linux: Add <code>AF_XDP</code> structs for all Linux environments
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4163">#4163</a>)</li>
<li>Linux: Add SysV semaphore constants (<a
href="https://redirect.github.com/rust-lang/libc/pull/4286">#4286</a>)</li>
<li>Linux: Add <code>F_SEAL_EXEC</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4316">#4316</a>)</li>
<li>Linux: Add <code>SO_PREFER_BUSY_POLL</code> and
<code>SO_BUSY_POLL_BUDGET</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/3917">#3917</a>)</li>
<li>Linux: Add <code>devmem</code> structs (<a
href="https://redirect.github.com/rust-lang/libc/pull/4299">#4299</a>)</li>
<li>Linux: Add socket constants up to <code>SO_DEVMEM_DONTNEED</code>
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4299">#4299</a>)</li>
<li>NetBSD, OpenBSD, DragonflyBSD: Add <code>closefrom</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4290">#4290</a>)</li>
<li>NuttX: Add <code>pw_passwd</code> field to <code>passwd</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4222">#4222</a>)</li>
<li>Solarish: define <code>IP_BOUND_IF</code> and
<code>IPV6_BOUND_IF</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4287">#4287</a>)</li>
<li>Wali: Add bindings for <code>wasm32-wali-linux-musl</code> target
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4244">#4244</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>AIX: Use <code>sa_sigaction</code> instead of a union (<a
href="https://redirect.github.com/rust-lang/libc/pull/4250">#4250</a>)</li>
<li>Make <code>msqid_ds.__msg_cbytes</code> public (<a
href="https://redirect.github.com/rust-lang/libc/pull/4301">#4301</a>)</li>
<li>Unix: Make all <code>major</code>, <code>minor</code>,
<code>makedev</code> into <code>const fn</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4208">#4208</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Linux: Deprecate obsolete packet filter interfaces (<a
href="https://redirect.github.com/rust-lang/libc/pull/4267">#4267</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Cygwin: Fix strerror_r (<a
href="https://redirect.github.com/rust-lang/libc/pull/4308">#4308</a>)</li>
<li>Cygwin: Fix usage of f! (<a
href="https://redirect.github.com/rust-lang/libc/pull/4308">#4308</a>)</li>
<li>Hermit: Make <code>stat::st_size</code> signed (<a
href="https://redirect.github.com/rust-lang/libc/pull/4298">#4298</a>)</li>
<li>Linux: Correct values for <code>SI_TIMER</code>,
<code>SI_MESGQ</code>, <code>SI_ASYNCIO</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4292">#4292</a>)</li>
<li>NuttX: Update <code>tm_zone</code> and <code>d_name</code> fields to
use <code>c_char</code> type (<a
href="https://redirect.github.com/rust-lang/libc/pull/4222">#4222</a>)</li>
<li>Xous: Include the prelude to define <code>c_int</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4304">#4304</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Add labels to FIXMEs (<a
href="https://redirect.github.com/rust-lang/libc/pull/4231">#4231</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4232">#4232</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4234">#4234</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4235">#4235</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4236">#4236</a>)</li>
<li>CI: Fix &quot;cannot find libc&quot; error on Sparc64 (<a
href="https://redirect.github.com/rust-lang/libc/pull/4317">#4317</a>)</li>
<li>CI: Fix &quot;cannot find libc&quot; error on s390x (<a
href="https://redirect.github.com/rust-lang/libc/pull/4317">#4317</a>)</li>
<li>CI: Pass <code>--no-self-update</code> to <code>rustup update</code>
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4306">#4306</a>)</li>
<li>CI: Remove tests for the <code>i586-pc-windows-msvc</code> target
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4311">#4311</a>)</li>
<li>CI: Remove the <code>check_cfg</code> job (<a
href="https://redirect.github.com/rust-lang/libc/pull/4312">#4322</a>)</li>
<li>Change the range syntax that is giving <code>ctest</code> problems
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4311">#4311</a>)</li>
<li>Linux: Split out the stat struct for gnu/b32/mips (<a
href="https://redirect.github.com/rust-lang/libc/pull/4276">#4276</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/libc/blob/0.2.171/CHANGELOG.md">libc's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/libc/compare/0.2.170...0.2.171">0.2.171</a>
- 2025-03-11</h2>
<h3>Added</h3>
<ul>
<li>Android: Add <code>if_nameindex</code>/<code>if_freenameindex</code>
support (<a
href="https://redirect.github.com/rust-lang/libc/pull/4247">#4247</a>)</li>
<li>Apple: Add missing proc types and constants (<a
href="https://redirect.github.com/rust-lang/libc/pull/4310">#4310</a>)</li>
<li>BSD: Add <code>devname</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4285">#4285</a>)</li>
<li>Cygwin: Add PTY and group API (<a
href="https://redirect.github.com/rust-lang/libc/pull/4309">#4309</a>)</li>
<li>Cygwin: Add support (<a
href="https://redirect.github.com/rust-lang/libc/pull/4279">#4279</a>)</li>
<li>FreeBSD: Make <code>spawn.h</code> interfaces available on all
FreeBSD-like systems (<a
href="https://redirect.github.com/rust-lang/libc/pull/4294">#4294</a>)</li>
<li>Linux: Add <code>AF_XDP</code> structs for all Linux environments
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4163">#4163</a>)</li>
<li>Linux: Add SysV semaphore constants (<a
href="https://redirect.github.com/rust-lang/libc/pull/4286">#4286</a>)</li>
<li>Linux: Add <code>F_SEAL_EXEC</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4316">#4316</a>)</li>
<li>Linux: Add <code>SO_PREFER_BUSY_POLL</code> and
<code>SO_BUSY_POLL_BUDGET</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/3917">#3917</a>)</li>
<li>Linux: Add <code>devmem</code> structs (<a
href="https://redirect.github.com/rust-lang/libc/pull/4299">#4299</a>)</li>
<li>Linux: Add socket constants up to <code>SO_DEVMEM_DONTNEED</code>
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4299">#4299</a>)</li>
<li>NetBSD, OpenBSD, DragonflyBSD: Add <code>closefrom</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4290">#4290</a>)</li>
<li>NuttX: Add <code>pw_passwd</code> field to <code>passwd</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4222">#4222</a>)</li>
<li>Solarish: define <code>IP_BOUND_IF</code> and
<code>IPV6_BOUND_IF</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4287">#4287</a>)</li>
<li>Wali: Add bindings for <code>wasm32-wali-linux-musl</code> target
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4244">#4244</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>AIX: Use <code>sa_sigaction</code> instead of a union (<a
href="https://redirect.github.com/rust-lang/libc/pull/4250">#4250</a>)</li>
<li>Make <code>msqid_ds.__msg_cbytes</code> public (<a
href="https://redirect.github.com/rust-lang/libc/pull/4301">#4301</a>)</li>
<li>Unix: Make all <code>major</code>, <code>minor</code>,
<code>makedev</code> into <code>const fn</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4208">#4208</a>)</li>
</ul>
<h3>Deprecated</h3>
<ul>
<li>Linux: Deprecate obsolete packet filter interfaces (<a
href="https://redirect.github.com/rust-lang/libc/pull/4267">#4267</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Cygwin: Fix strerror_r (<a
href="https://redirect.github.com/rust-lang/libc/pull/4308">#4308</a>)</li>
<li>Cygwin: Fix usage of f! (<a
href="https://redirect.github.com/rust-lang/libc/pull/4308">#4308</a>)</li>
<li>Hermit: Make <code>stat::st_size</code> signed (<a
href="https://redirect.github.com/rust-lang/libc/pull/4298">#4298</a>)</li>
<li>Linux: Correct values for <code>SI_TIMER</code>,
<code>SI_MESGQ</code>, <code>SI_ASYNCIO</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4292">#4292</a>)</li>
<li>NuttX: Update <code>tm_zone</code> and <code>d_name</code> fields to
use <code>c_char</code> type (<a
href="https://redirect.github.com/rust-lang/libc/pull/4222">#4222</a>)</li>
<li>Xous: Include the prelude to define <code>c_int</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4304">#4304</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li>Add labels to FIXMEs (<a
href="https://redirect.github.com/rust-lang/libc/pull/4231">#4231</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4232">#4232</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4234">#4234</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4235">#4235</a>,
<a
href="https://redirect.github.com/rust-lang/libc/pull/4236">#4236</a>)</li>
<li>CI: Fix &quot;cannot find libc&quot; error on Sparc64 (<a
href="https://redirect.github.com/rust-lang/libc/pull/4317">#4317</a>)</li>
<li>CI: Fix &quot;cannot find libc&quot; error on s390x (<a
href="https://redirect.github.com/rust-lang/libc/pull/4317">#4317</a>)</li>
<li>CI: Pass <code>--no-self-update</code> to <code>rustup update</code>
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4306">#4306</a>)</li>
<li>CI: Remove tests for the <code>i586-pc-windows-msvc</code> target
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4311">#4311</a>)</li>
<li>CI: Remove the <code>check_cfg</code> job (<a
href="https://redirect.github.com/rust-lang/libc/pull/4312">#4322</a>)</li>
<li>Change the range syntax that is giving <code>ctest</code> problems
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4311">#4311</a>)</li>
<li>Linux: Split out the stat struct for gnu/b32/mips (<a
href="https://redirect.github.com/rust-lang/libc/pull/4276">#4276</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="78b0f8a739"><code>78b0f8a</code></a>
chore: release v0.2.171</li>
<li><a
href="b988ca5bbe"><code>b988ca5</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/4318">#4318</a>
from tgross35/backport-morel</li>
<li><a
href="5746f8e490"><code>5746f8e</code></a>
Add missing macos proc types and constants</li>
<li><a
href="29a40e2cac"><code>29a40e2</code></a>
linux: add devmem structs</li>
<li><a
href="85f6836e3b"><code>85f6836</code></a>
linux: add socket constants up to SO_DEVMEM_DONTNEED</li>
<li><a
href="ff17476460"><code>ff17476</code></a>
linux_like: add F_SEAL_EXEC</li>
<li><a
href="67352ee823"><code>67352ee</code></a>
ci: sparc64: fix 'cannot find libc' error</li>
<li><a
href="10af5a6696"><code>10af5a6</code></a>
ci: s390x: fix 'cannot find libc' error</li>
<li><a
href="c6ad4344f3"><code>c6ad434</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/4315">#4315</a>
from tgross35/backport-porcini</li>
<li><a
href="5726b3cde2"><code>5726b3c</code></a>
Cygwin: Add PTY and group API</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/libc/compare/0.2.169...0.2.171">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libc&package-manager=cargo&previous-version=0.2.169&new-version=0.2.171)](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-03-18 21:38:00 +00:00
Jamil
9aa60b747e fix(gateway): Fix gateway install script for systemd 219 (#8480)
On older systemd versions (such as 219 bundled with Amazon Linux 2), the
`ExecStartPre` script isn't able to write to the `/usr/local/bin`
directory. This causes an error on unit startup.

To fix this, we update the `firezone-gateway-init` script to write to
`/opt/firezone` instead, which is `chown` `firezone:firezone`.

Tested to work on Amazon Linux 2.

Fixes #8471
2025-03-18 20:31:53 +00:00
Brian Manifold
e14e5c4008 refactor(portal): Use appropriate access token for Google IdP (#8478)
Why:

* Previously, when running a directory sync with the Google Workspace
IdP adapter, if a service account had been configured but there was a
problem getting an access token for the service account, the sync job
would fall back to using a personal access token. We no longer want to
rely on any personal access token once a service account has been
configured. This commit will make sure that if a service account is
configured there is no way to fall back to any personal access token.


Fixes #8409
2025-03-18 16:46:08 +00:00
Thomas Eizinger
883c38cd3c fix(connlib): remove explicit Session::disconnect (#8474)
Within the event-loop, we already react to the channel being closed
which happens when the `Sender` within the `Session` gets dropped. As
such, there is no need to send an explicit `Stop` command, dropping the
`Session` is equivalent.

As it turns out, `swift-bridge` already calls `Drop` for us when the
last pointer is set to `nil`:
280a9dd999/swift/apple/FirezoneNetworkExtension/Connlib/Generated/connlib-client-apple/connlib-client-apple.swift (L24-L28)

Thus, we can also remove the explicit `disconnect` call to
`WrappedSession` entirely.
2025-03-18 04:35:57 +00:00
Jamil
366215b1d6 fix(gateway): Prefer setting FIREZONE_ID over /var/lib/firezone (#8475)
When deploying a Gateway from the admin portal UI, we show various
environment variables required for setup. Until now, we've relied on the
`/var/lib/firezone` persistence method for identifying the Gateway.

However, this can cause issues on some systems that don't have writeable
access to /var/lib/firezone, or old versions of systemd that don't
support sandboxed access to this directory.

This PR updates each deployment method to use `FIREZONE_ID` instead
everywhere. Additionally, since the Docker upgrade script needs to
reinvoke the new container using the same arguments (more or less) as
the install, we need to extract the old `/var/lib/firezone/gateway_id`
file out of the existing container if it exists, and try to insert it
into the upgraded container.

Tested both scripts, including upgrades for the Docker script.

Fixes: #8471
2025-03-18 04:08:21 +00:00
Jamil
a8b9e34c33 fix(apple): Try to connect on launch (#8477)
This is a regression introduced in c9f085c102. The `status` at this
point is still `nil` because we have not yet fully subscribed to VPN
status change updates from the system.

That actually shouldn't prevent us from trying to start the tunnel
anyway. If the `token` is missing from the Keychain, the tunnel process
will no-op. So we simply try to start a session on launch always.

Fixes #8456
2025-03-18 03:06:57 +00:00
Jamil
d143d4dc89 feat(portal): Add changelog link to outdated gateway email (#8458)
It would be useful to have a link to the changelog in our outdated
gateway email.

See https://firezonehq.slack.com/archives/C069H865MHP/p1742088424077639

<img width="638" alt="Screenshot 2025-03-16 at 9 39 22 PM"
src="https://github.com/user-attachments/assets/f67b9b3e-9796-45a9-ae90-26eeabc40740"
/>
2025-03-18 02:43:06 +00:00
Thomas Eizinger
e54a7c2d64 feat(connlib): regularly evaluate feature flags (#8467)
In order to be able to dynamically configure long-running applications
such as the Gateway via feature-flags, we need to regularly re-evaluate
them by sending another POST request to the `/decide` endpoint.

To do this without impacting anything else, we create a separate runtime
that is lazily initialised on first access and use that to run the async
code for connecting to the PostHog service. In addition to that, we also
spawn a task that re-evaluates the feature flags for the currently set
user in the Sentry context every 5 minutes.

Resolves: #8454

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-03-17 23:50:54 +00:00
Jamil
4ce2f160e3 fix(portal): Allow .local for search_domains (#8472)
This apparently is explicitly used by customers. See
https://firezonehq.slack.com/archives/C08FPHECLUF/p1742221580587719?thread_ts=1741639183.188459&cid=C08FPHECLUF
2025-03-17 20:18:51 +00:00
Jamil
e642eefb35 chore: Cut all clients to ship search domains (#8442)
Waiting on app reviews to be approved, then this PR will be ready to
merge.
2025-03-17 17:25:11 +00:00
Thomas Eizinger
0a00244913 chore(gui-client): improve error message when serde fails (#8461)
Resolves: #8441
2025-03-17 13:10:10 +00:00
Thomas Eizinger
7af4b91ac5 fix(gui-client): call wintun::Session::shutdown on drop (#8464)
The bugfix we attempted in #8156 turned out wrong. Reading the
source-code, we have to call `Session::shutdown` in order to actually
cancel the `Session::receive_blocking` call. Not doing so means we run
into the timeout when discarding the `Tun` device because the
recv-thread is stuck in `Session::receive_blocking`.

Fixes: #8395
2025-03-17 12:58:03 +00:00
Thomas Eizinger
37946eeace chore(rust): fix warnings of cargo deny (#8460) 2025-03-17 12:55:22 +00:00
Thomas Eizinger
152939c7dd build(rust): bump Tauri dependencies (#8459)
Dependabot appears to have a hard time to bump the Tauri dependencies in
a group together. Additionally, our dependency linter `cargo deny`
disallows duplicate dependencies by default. To avoid introducing more
duplicate dependencies, we depend on the upstream `main` branch of two
projects that have already updated their dependencies but did not yet
cut a release.
2025-03-17 12:19:20 +00:00
Thomas Eizinger
dc8fd652fe fix(gui-client): don't bother user with error details (#8468)
There is no reason to show the chain of errors to the user, we are
logging it on ERROR level and will thus be notified via Sentry.
2025-03-17 11:31:42 +00:00
Thomas Eizinger
b749da4766 chore(gui-client): improve context when resolvectl fails (#8462)
Took me a while to figure out what the "File not found" error was
pointing to. Adding some context should help.
2025-03-17 11:30:51 +00:00
Thomas Eizinger
022fb9fed9 ci: create Sentry releases for Android clients (#8463)
This marks the release in Sentry as "released" and also attaches the
commits to it that we made since the last release.
2025-03-17 11:30:02 +00:00
Thomas Eizinger
99624a4302 fix(connlib): always update TunConfig on any changes (#8453)
Currently, we are only emitting updates to the `TunConfig` when the
routes or the DNS servers change. This isn't correct, we should also
emit updates for it when the IPs or the search-domain changes.

In order to achieve that, we create a new `TunConfig` based on the
existing one every time we receive an `InterfaceConfig` update.
Depending on our current state, we may create an entirely new
`TunConfig` or create a new one where we copy the fields in from the new
`InterfaceConfig`. We then unconditionally call
`maybe_update_tun_config` which does the necessary work to only emit
updates when things actually changed.

To ensure this works in all cases and the latest update is always
reflected on the TUN device, we also extend the proptests to assert the
latest search domain.

Fixes: #8451
2025-03-16 14:59:32 +00:00
Thomas Eizinger
d5fda62036 chore(rust): sort workspace.dependencies table (#8455)
Unfortunately, `cargo sort` doesn't yet handle this.

Related: https://github.com/DevinR528/cargo-sort/pull/55
2025-03-16 14:57:43 +00:00
dependabot[bot]
908bdc4cfa build(deps): bump tokio-util from 0.7.12 to 0.7.13 in /rust (#8402)
Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.12 to
0.7.13.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0b31c2f73d"><code>0b31c2f</code></a>
chore: prepare tokio-util v0.7.13 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7012">#7012</a>)</li>
<li><a
href="129f9fc0c8"><code>129f9fc</code></a>
codec: fix incorrect handling of invalid utf-8 in
<code>LinesCodec::decode_eof</code> (#...</li>
<li><a
href="b5c227d51f"><code>b5c227d</code></a>
tracing: move tracing instrumentation tests into tokio tests (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7007">#7007</a>)</li>
<li><a
href="dcae2b9eb8"><code>dcae2b9</code></a>
ci: unfreeze FreeBSD from rustc 1.81 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7009">#7009</a>)</li>
<li><a
href="bb9d57017e"><code>bb9d570</code></a>
chore: prepare Tokio v1.42.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7005">#7005</a>)</li>
<li><a
href="af9c683d52"><code>af9c683</code></a>
tests: fix typo in build test instructions (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7004">#7004</a>)</li>
<li><a
href="4bc5a1a058"><code>4bc5a1a</code></a>
ci: allow Unicode-3.0 license for unicode-ident (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7006">#7006</a>)</li>
<li><a
href="f8948ea021"><code>f8948ea</code></a>
runtime: do not defer <code>yield_now</code> inside
<code>block_in_place</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6999">#6999</a>)</li>
<li><a
href="bce9780dd3"><code>bce9780</code></a>
time: use <code>array::from_fn</code> instead of manually creating array
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7000">#7000</a>)</li>
<li><a
href="38151f30cb"><code>38151f3</code></a>
readme: unlist 1.32.x as LTS release (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6997">#6997</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.12...tokio-util-0.7.13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio-util&package-manager=cargo&previous-version=0.7.12&new-version=0.7.13)](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-03-16 04:53:36 +00:00
dependabot[bot]
05ce2adb2c build(deps): bump either from 1.13.0 to 1.15.0 in /rust (#8403)
Bumps [either](https://github.com/rayon-rs/either) from 1.13.0 to
1.15.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="59ae1fce0c"><code>59ae1fc</code></a>
Merge pull request <a
href="https://redirect.github.com/rayon-rs/either/issues/120">#120</a>
from cuviper/release-1.15.0</li>
<li><a
href="7f4bf0222d"><code>7f4bf02</code></a>
Release 1.15.0</li>
<li><a
href="56178e9fdb"><code>56178e9</code></a>
Merge pull request <a
href="https://redirect.github.com/rayon-rs/either/issues/119">#119</a>
from klkvr/klkvr/fix-no-std</li>
<li><a
href="80b6f2a7fd"><code>80b6f2a</code></a>
fix last references of use_std</li>
<li><a
href="2b71801b05"><code>2b71801</code></a>
serde 1.0.95</li>
<li><a
href="8c1ea3e557"><code>8c1ea3e</code></a>
use_std -&gt; std</li>
<li><a
href="d743e25f52"><code>d743e25</code></a>
fix: no-std with serde feature</li>
<li><a
href="6e6dc26828"><code>6e6dc26</code></a>
Merge pull request <a
href="https://redirect.github.com/rayon-rs/either/issues/117">#117</a>
from cuviper/release-1.14.0</li>
<li><a
href="937620642b"><code>9376206</code></a>
Release 1.14.0</li>
<li><a
href="4db2c30e5f"><code>4db2c30</code></a>
Merge pull request <a
href="https://redirect.github.com/rayon-rs/either/issues/118">#118</a>
from cuviper/clippy</li>
<li>Additional commits viewable in <a
href="https://github.com/rayon-rs/either/compare/1.13.0...1.15.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=either&package-manager=cargo&previous-version=1.13.0&new-version=1.15.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-03-16 04:53:06 +00:00
Jamil
931048a667 chore(connlib): Remove manual expansion of search domain (#8443)
Reverts part of #8378 so that our OS-native expansion takes effect on
all platforms.

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2025-03-16 04:37:10 +00:00
Jamil
0c231eb536 ci: Explicitly run swiftlint (#8447)
~~Apparently `xcodebuild` doesn't bubble these up from CLI
invocations.~~

The `swiftlint` CLI binary isn't installed on the GitHub runners, so we
need to install it. This PR also explicitly runs `swiftlint` before any
build operations to display a nicer diff if files were changed as a
result of the fixing.
2025-03-16 03:09:56 +00:00
Jamil
43d084f97f refactor(portal): Enforce internet resource site exclusion (#8448)
Finishes up the Internet Resource migration by enforcing:

- No internet resources in non-internet sites
- No regular resources in internet sites
- Removing the prompt to migrate

~~I've already migrated the existing internet resources in customer's
accounts. No one that was using the internet resource hadn't already
migrated.~~

Edit: I started to head down that path, then decided doing this here in
a data migration was going to be a better approach.

Fixes #8212
2025-03-15 18:25:32 -05:00
Jamil
03b6e443f7 fix(connlib): Update search_domain for exsiting TunConfigs (#8445)
For existing `TunConfig`, we had a bug where we failed to update the
search_domain if the effective dns_servers were unchanged.

@thomaseizinger I can see why you want to refactor this; it's quite a
mess to follow ;-). I was going to try my hand at cleaning it up a
little bit just so I can grok it but I figured since this area is going
to be changing quite a bit in #8263, I'll leave those changes out for
now.
2025-03-15 18:12:10 -05:00
Jamil
da73441d6c fix(swift): Allow too many parameters in onSetInterfaceConfig (#8446)
We don't necessarily care if we slightly go over the function parameter
count lint in `onSetInterfaceConfig`.
2025-03-15 18:09:19 -05:00
Jamil
a47b96bcad chore: Release android 1.4.4 (#8449)
This was already published on Google Play, but the other clients will
follow suit in #8442.
2025-03-15 17:13:17 -05:00
Jamil
06aa485e18 ci: Use search_domain for one resource in CI test (#8393)
- Adds a `search_domain` of `httpbin.test` in seeds
- Updates one of our DNS resources under CI test to use this
2025-03-15 13:27:22 +00:00
Jamil
09fb5f9274 chore(infra): Enable pgaudit on master instance (#8434)
This is [step
1](https://cloud.google.com/sql/docs/postgres/pg-audit#set-pgaudit-flag-values)
of enabling `pgaudit` logs. We'll also need to `CREATE EXTENSION` which
will need to happen in a migration. I'll make a separate PR for that.

Supersedes: #5442
2025-03-14 20:14:23 +00:00
Jamil
7df1bf2718 feat(portal): Create pgaudit extension (#8435)
[Step
2](https://cloud.google.com/sql/docs/postgres/pg-audit#set-pgaudit-flag-values)
of the pgaudit setup guide for Google Cloud SQL. It would be good to
have detailed pg audit logs on the master application instance in case
things go wrong.

Notably, this prevents erroring out when the `pgaudit` is not available,
which by default, it is. Enabling the `pgaudit` extension for our dev
instance is left as a future endeavor.

Supersedes #5442
2025-03-14 20:04:47 +00:00
Jamil
0809d992d6 docs: Search domains (#8437)
- Adds search domains section to Deploy -> DNS docs
- Mentions known issue: #8430
2025-03-14 10:49:48 +00:00
dependabot[bot]
01d7b6b6f2 build(deps): bump @babel/runtime from 7.26.0 to 7.26.10 in /website in the npm_and_yarn group (#8419)
Bumps the npm_and_yarn group in /website with 1 update:
[@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime).

Updates `@babel/runtime` from 7.26.0 to 7.26.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/releases"><code>@​babel/runtime</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v7.26.10 (2025-03-11)</h2>
<p>Thanks <a
href="https://github.com/jordan-choi"><code>@​jordan-choi</code></a> and
<a
href="https://github.com/mmmsssttt404"><code>@​mmmsssttt404</code></a>
for your first PRs!</p>
<p>This release includes a fix for <a
href="https://github.com/babel/babel/security/advisories/GHSA-968p-4wvh-cqc8">https://github.com/babel/babel/security/advisories/GHSA-968p-4wvh-cqc8</a>,
a security vulnerability which affects the <code>.replace</code> method
of transpiled regular expressions that use named capturing groups.</p>
<h4>👓 Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17159">#17159</a>
Disallow decorator in array pattern (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-parser</code>, <code>babel-template</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17164">#17164</a>
Fix: always initialize ExportDeclaration attributes (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17142">#17142</a>
fix: &quot;Map maximum size exceeded&quot; in deepClone (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>,
<code>babel-plugin-transform-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17154">#17154</a>
Update typescript parser tests (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17151">#17151</a>
fix: Should not evaluate vars in child scope (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17153">#17153</a>
fix: Correctly generate <code>abstract override</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17107">#17107</a> Fix
source type detection when parsing TypeScript (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-runtime</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17173">#17173</a> Fix
processing of replacement pattern with named capture groups (<a
href="https://github.com/%5Bmmmsssttt404%5D(https://github.com/mmmsssttt404)"><code>@​mmmsssttt404</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17158">#17158</a>
Avoid warnings when re-bundling <code>@​babel/standalone</code> with
webpack (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏠 Internal</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17160">#17160</a>
Left-value parsing cleanup (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 6</h4>
<ul>
<li>Babel Bot (<a
href="https://github.com/babel-bot"><code>@​babel-bot</code></a>)</li>
<li>Huáng Jùnliàng (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Nicolò Ribaudo (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li>Yunyoung Jordan Choi (<a
href="https://github.com/jordan-choi"><code>@​jordan-choi</code></a>)</li>
<li><a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
<li><a
href="https://github.com/mmmsssttt404"><code>@​mmmsssttt404</code></a></li>
</ul>
<h2>v7.26.9 (2025-02-14)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17103">#17103</a>
fix: Definition for <code>TSPropertySignature.kind</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17062">#17062</a>
Print TypeScript optional/definite in ClassPrivateProperty (<a
href="https://github.com/jamiebuilds-signal"><code>@​jamiebuilds-signal</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@​babel/runtime</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>v7.26.10 (2025-03-11)</h2>
<h4>👓 Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17159">#17159</a>
Disallow decorator in array pattern (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-parser</code>, <code>babel-template</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17164">#17164</a>
Fix: always initialize ExportDeclaration attributes (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17142">#17142</a>
fix: &quot;Map maximum size exceeded&quot; in deepClone (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>,
<code>babel-plugin-transform-typescript</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17154">#17154</a>
Update typescript parser tests (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17151">#17151</a>
fix: Should not evaluate vars in child scope (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17153">#17153</a>
fix: Correctly generate <code>abstract override</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17107">#17107</a> Fix
source type detection when parsing TypeScript (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-runtime</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17173">#17173</a> Fix
processing of replacement pattern with named capture groups (<a
href="https://github.com/%5Bmmmsssttt404%5D(https://github.com/mmmsssttt404)"><code>@​mmmsssttt404</code></a>)</li>
</ul>
</li>
</ul>
<h4>💅 Polish</h4>
<ul>
<li><code>babel-standalone</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17158">#17158</a>
Avoid warnings when re-bundling <code>@​babel/standalone</code> with
webpack (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏠 Internal</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17160">#17160</a>
Left-value parsing cleanup (<a
href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.26.9 (2025-02-14)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17103">#17103</a>
fix: Definition for <code>TSPropertySignature.kind</code> (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17062">#17062</a>
Print TypeScript optional/definite in ClassPrivateProperty (<a
href="https://github.com/jamiebuilds-signal"><code>@​jamiebuilds-signal</code></a>)</li>
</ul>
</li>
</ul>
<h4>🏠 Internal</h4>
<ul>
<li><code>babel-types</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17130">#17130</a> Use
<code>.ts</code> files with explicit reexports to solve name conflicts
(<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17127">#17127</a> Do
not depend on <code>@types/gensync</code> in Babel 7 (<a
href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.26.7 (2025-01-24)</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li><code>babel-helpers</code>, <code>babel-preset-env</code>,
<code>babel-runtime-corejs3</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17086">#17086</a>
Make &quot;object without properties&quot; helpers ES6-compatible (<a
href="https://github.com/tquetano-netflix"><code>@​tquetano-netflix</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-typeof-symbol</code>
<ul>
<li><a
href="https://redirect.github.com/babel/babel/pull/17085">#17085</a>
fix: Correctly handle <code>typeof</code> in arrow functions (<a
href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e1ce99df42"><code>e1ce99d</code></a>
v7.26.10</li>
<li><a
href="d5952e80c0"><code>d5952e8</code></a>
Fix processing of replacement pattern with named capture groups (<a
href="https://github.com/babel/babel/tree/HEAD/packages/babel-runtime/issues/17173">#17173</a>)</li>
<li><a
href="64bca7b5f3"><code>64bca7b</code></a>
v7.26.9</li>
<li><a
href="2d9514066e"><code>2d95140</code></a>
v7.26.7</li>
<li>See full diff in <a
href="https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@babel/runtime&package-manager=npm_and_yarn&previous-version=7.26.0&new-version=7.26.10)](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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/firezone/firezone/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-14 10:23:15 +00:00
Jamil
4cd4c2c6a4 fix(portal): Fix submit button spacing in settings/dns (#8440)
The submit button on the settings -> dns page has a couple UX issues
with the new search domain section:

- It's ambiguous what the `Save` is actually saving
- The spacing makes it look like it's only saving upstream resolvers

This PR introduces a simple fix that address the two issues by:

- Updating the button text to `Save DNS Settings`
- Increasing spacing between submit button and form elements
- Slightly decreasing spacing between the `search domain` and `upstream
resolvers` inputs


<img width="968" alt="Screenshot 2025-03-14 at 12 06 02 AM"
src="https://github.com/user-attachments/assets/651f54c8-3b5f-4747-ad3a-e2ae32eccbf0"
/>


Related #5248
2025-03-14 09:20:29 +00:00
Jamil
7e196683a1 feat(android): set search-domain on VPN configuration (#8436)
On Android, we can use
[`addSearchDomain`](https://developer.android.com/reference/android/net/VpnService.Builder#addSearchDomain(java.lang.String))
to configure the search domain list for our VPN tunnel.

Thankfully, this gets applied to the system resolver without any other
hackery involved (unlike for Apple in #8421), and most apps use the
system resolver for queries. The one exception to this are some network
utilities like AndroDNS and Fing.

Tested to work fine in Termux using `github.io` as the search domain,
which responds to ICMP echoes to any subdomain:



<img width="420" alt="Screenshot 2025-03-13 at 10 19 41 PM"
src="https://github.com/user-attachments/assets/e156e644-08a8-4ab6-b49a-91ef92aabafd"
/>


Related #8410

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2025-03-14 04:54:44 +00:00
Jamil
eb195861c2 chore(website): Remove redundant no-changes block (#8424)
https://github.com/firezone/firezone/pull/8413#pullrequestreview-2672919083
2025-03-14 02:35:22 +00:00
Thomas Eizinger
d05226211b fix(connlib): don't respond to LLMNR queries with NXDOMAIN (#8426)
I suspect that one issue as part local discovery is that we respond to
LLMNR queries with NXDOMAIN if the domain isn't a resource. This is
probably wrong. LLMNR works over multicast so if a particular interface
can't respond to a query with records, it should probably not respond at
all.

Related: #8266
2025-03-13 20:36:01 +00:00
Jamil
5fc45b1a7e chore(infra): Increase PG backups to 30 days (#8433)
These are currently 7. It would be good to have more retention here.
2025-03-13 19:24:01 +00:00
Thomas Eizinger
ab794dd52d fix(windows): set search domain on WinTUN interface (#8422)
In order for search-domains to work on Windows, we need to set the
`SearchList` registry key for our interface. This will result in Windows
sending us a DNS query with the expanded domain name from the search
list which we can then process like normal DNS queries.

Related: #8410
2025-03-13 15:07:58 +00:00
Thomas Eizinger
2f237ec82f test(connlib): don't send arbitrary payloads to 53535 (#8428)
We reserve port 53535 on the Gateway's TUN IPs for a DNS server so we
must not send arbitrary UDP and TCP payloads to this port.
2025-03-13 14:53:05 +00:00