Commit Graph

4218 Commits

Author SHA1 Message Date
Gabi
d0c33681fe chore(rust): fix local docker development (#4642)
some small fixes to make local development a bit easier
2024-04-16 21:08:02 +00:00
Jamil
9415a64900 chore(ci): build docker dev images with main (#4643)
Fixes broken pulling of images for dev
2024-04-16 20:29:11 +00:00
Brian Manifold
4ba3cedf37 refactor(portal): Refactor client login to use HTML meta refresh and cookie (#4617)
The client authentication had previously been using liveview and passing
params around using URL query params. One of the issues with using
liveview for this task was that there edge case issues on certain
clients with the websocket connection. Along with that, to have even
more security during the login process, the query param values that were
passed after the client was authenticated have been moved to an HTTP
cookie with very strict flags set.

The deep link redirection now uses a new HTTP endpoint that returns a
302 with the deep link as the location, which is triggered using a
`<meta http-equiv="refresh">` tag on the client.
2024-04-16 19:47:16 +00:00
Jamil
e7a20a7b16 docs: Architecture (#4605)
Fixes #3783 
Fixes #3784

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Brian Manifold <bmanifold@users.noreply.github.com>
2024-04-16 19:19:32 +00:00
Andrew Dryga
e60fd1c665 Add global concurrency group to production deployments 2024-04-16 11:59:28 -06:00
Reactor Scram
cdf2bc8838 refactor(test): use 'set -euox' instead of manual echos (#4637)
I wasn't aware of `set x` when I wrote this, and it looks good in the
other test scripts.

I'm not sourcing `lib.sh` yet, because I don't happen to need any
functions from it. I have other draft PRs that will probably end up
using it.
2024-04-16 17:36:43 +00:00
Jamil
05386b8b4b chore(ci): Use netstat instead of ss for release image tests (#4640)
Fixes #4636
2024-04-16 11:14:52 -06:00
Andrew Dryga
a6f32aa769 chore(devops): Fix GH overriding main branch statuses (#4639) 2024-04-16 10:41:13 -06:00
Andrew Dryga
e1ef5f1e69 chore(portal): Add one more test for relays lb (#4638) 2024-04-16 10:08:00 -06:00
Jamil
ee5dcda3d1 fix(apple): Append to Swift logfile instead of overwriting each time (#4633)
Fixes #4522

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-16 14:32:53 +00:00
dependabot[bot]
50712da5c1 build(deps): Bump redis from 0.25.2 to 0.25.3 in /rust (#4622)
Bumps [redis](https://github.com/redis-rs/redis-rs) from 0.25.2 to
0.25.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/redis-rs/redis-rs/releases">redis's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.3</h2>
<h3>0.25.3 (2024-04-04)</h3>
<ul>
<li>Handle empty results in multi-node operations (<a
href="https://redirect.github.com/redis-rs/redis-rs/pull/1099">#1099</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0db8ef7139"><code>0db8ef7</code></a>
Prepare release 0.25.3</li>
<li><a
href="0f9cb3173c"><code>0f9cb31</code></a>
Handle empty results in multi-node operations.</li>
<li>See full diff in <a
href="https://github.com/redis-rs/redis-rs/compare/redis-0.25.2...redis-0.25.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=redis&package-manager=cargo&previous-version=0.25.2&new-version=0.25.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>
2024-04-16 06:32:46 +00:00
Andrew Dryga
1ace6d4ad4 chore(portal): Change name and structure of relays presence event (#4623) 2024-04-16 05:11:43 +00:00
Jamil
eb33669435 refactor(apple): Don't log error if calling stop on stopped tunnel (#4632)
This can happen on app start, but it's not an error or interesting state
we care about.
2024-04-16 04:52:38 +00:00
Jamil
9a317247a1 chore(ci): .env not available in with shared workflow context (#4631)
Le sigh
2024-04-16 00:01:17 +00:00
Reactor Scram
9036a9fcc5 fix(windows-client): remove spurious "Connected to Firezone" notifications (#4603)
Closes #4385

```[tasklist]
### Manual test cases (f2c8f47b3 passed)
- [x] Given there is no token on disk, when you start the app, then there is no notification
- [x] Given there is a token on disk, when you start the app and it signs in, then there is 1 notification
- [x] Given the app is signed out, when you sign in, then there is 1 notification (test this in a sign-out-sign-in cycle)
- [x] Given the app is signed in, when you sign out, then there is no notification
- [x] Given the app is signed in, when you change Wi-Fi networks, then there is no notification
```

This will work on Linux once the Linux GUI comes up
2024-04-15 22:44:23 +00:00
Jamil
42385fd565 ci: Add tag name to build-dev-images (#4629)
dev images don't uses releases and shouldn't rely on release-drafter,
instead following the `VERSION` that's set in CI.

Fixes https://github.com/firezone/firezone/actions/runs/8696082974
2024-04-15 22:10:54 +00:00
Jamil
c8917a58c5 refactor: Discord -> Slack (#4616)
Fixes firezone/bizops#82
2024-04-15 22:05:29 +00:00
Thomas Eizinger
bfe07d7ebd chore(connlib): upsert relays from "init" message (#4567)
This is another step towards #4548. The portal now includes a list of
relays as part of the "init" message. Any time we receive an "init", we
will now upsert those relays based on their ID. This requires us to
change our internal bookkeeping of relays from indexing them by address
to indexing by ID.

To ensure that this works correctly, the unit tests are rewritten to use
the new `upsert_relays` API.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-15 21:30:49 +00:00
Reactor Scram
53968063a5 fix(windows): patch some DNS leaks (#4530)
Fixes #4488 

```[tasklist]
# Before merging
- [x] There's one call site that won't compile on Linux. Make this cross-platform.
- [x] Does the rule get removed every time when you quit gracefully?
- [x] Will this NRPT rule prevent connlib from re-resolving the portal IP if it needs to?
- [x] Test network switching. Does this work worse, better, or the same?
- [ ] Is the Windows DNS cache flushed exactly when it needs to be?
```

- After connlib connects to the portal, we add an NRPT rule asking
Windows to send **all** DNS queries to our sentinels. This should also
be called whenever the interface is re-configured, which might change
the sentinel IPs
- When exiting gracefully, we delete the rule to restore normal DNS
behavior without having to back up and restore the other IPs
- We also delete the rule at startup so that if Firezone crashes or
misbehaves, restarting it should restore normal DNS
- We also flush the system-wide DNS cache whenever we claim different
routes. This may flush too often, and it may also miss some flushes that
we should do. It needs double-checking.
- There is still a gap when changing networks, DNS can leak there, but I
don't think it's worse than before.
2024-04-15 21:10:30 +00:00
Reactor Scram
7bc1d51b0f test(linux-client): separate the token from the systemd unit file (#4626)
This is needed so that we can auto-update the systemd unit file, either
manually, or with a package manager like `apt`. We don't want users
cut-and-pasting these together on every update, and we don't want
machines doing it. Making the file updatable means we can make security
fixes to it easily.
2024-04-15 20:38:49 +00:00
Reactor Scram
493716ab6b refactor(headless-client): change CLI args for the IPC daemon (#4604)
Closes #4515
2024-04-15 18:33:30 +00:00
Jamil
7775e5213e fix(portal): remove typo in manual command var (#4614)
This breaks copy-pasting the token from the Deploy Gateway page:

<img width="341" alt="Screenshot 2024-04-13 at 2 59 08 PM"
src="https://github.com/firezone/firezone/assets/167144/1cb6bc9e-e2ae-476b-85ac-7d0e1b635945">
2024-04-15 10:01:22 -06:00
dependabot[bot]
dfba453556 build(deps): Bump hostname from 0.3.1 to 0.4.0 in /rust (#4620)
Bumps [hostname](https://github.com/svartalf/hostname) from 0.3.1 to
0.4.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/svartalf/hostname/blob/master/CHANGELOG.md">hostname's
changelog</a>.</em></p>
<blockquote>
<h2>[0.4.0] - 2024-04-01</h2>
<h3>Added</h3>
<ul>
<li>CI setup now covers almost all supported Tier 1 and Tier 2 platform
targets</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Minimum Supported Rust version set to <code>1.67.0</code></li>
<li>Rust edition set to &quot;2021&quot;</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Handle edge cases for POSIX systems (<a
href="https://redirect.github.com/svartalf/hostname/issues/14">#14</a>)</li>
<li>docs.rs documentation build</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0e311b92ea"><code>0e311b9</code></a>
Release v0.4.0</li>
<li><a
href="e96d1fde34"><code>e96d1fd</code></a>
Updating the repo to make it usable again</li>
<li><a
href="ecf28ebbf4"><code>ecf28eb</code></a>
bump version-sync: 0.8 -&gt; 0.9 (<a
href="https://redirect.github.com/svartalf/hostname/issues/17">#17</a>)</li>
<li><a
href="4a178ed8f4"><code>4a178ed</code></a>
Handle posix hostname edge cases (<a
href="https://redirect.github.com/svartalf/hostname/issues/14">#14</a>)</li>
<li><a
href="7e930e9aca"><code>7e930e9</code></a>
Upgrade rust edition and migrate dependices(cfg_if, windows_rs) (<a
href="https://redirect.github.com/svartalf/hostname/issues/18">#18</a>)</li>
<li>See full diff in <a
href="https://github.com/svartalf/hostname/compare/v0.3.1...v0.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hostname&package-manager=cargo&previous-version=0.3.1&new-version=0.4.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>
2024-04-15 15:25:07 +00:00
Reactor Scram
2c9b6c9b3a refactor(headless-client): use Tokio codec instead of hand-rolled length-delimited codec (#4606)
The ongoing yak shave towards #3713

Closes #4514 and saves about 30 lines of code, thanks for the suggestion
Thomas
2024-04-15 15:19:33 +00:00
dependabot[bot]
c28e1aa9e6 build(deps): Bump the windows group in /rust with 2 updates (#4619)
Bumps the windows group in /rust with 2 updates:
[windows](https://github.com/microsoft/windows-rs) and
[windows-implement](https://github.com/microsoft/windows-rs).

Also removed unused feature flags in Windows deps

Updates `windows` from 0.54.0 to 0.56.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ae896c59e4"><code>ae896c5</code></a>
Release 0.56.0 (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2989">#2989</a>)</li>
<li><a
href="5b73aea86d"><code>5b73aea</code></a>
Document <code>Interface::IID</code> (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2990">#2990</a>)</li>
<li><a
href="bedd359eac"><code>bedd359</code></a>
Add explicit path support to the <code>interface</code> macro (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2976">#2976</a>)</li>
<li><a
href="e7a361a399"><code>e7a361a</code></a>
Fix for new Clippy warnings in nightly (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2977">#2977</a>)</li>
<li><a
href="ac4643e7e0"><code>ac4643e</code></a>
Add support for Arm64EC (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2957">#2957</a>)</li>
<li><a
href="879c0cf56d"><code>879c0cf</code></a>
Remove redundant target checks (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2973">#2973</a>)</li>
<li><a
href="f4be25df21"><code>f4be25d</code></a>
Implement <code>Deref</code> for COM interface hierarchies defined with
the <code>interface</code> ...</li>
<li><a
href="16792d527b"><code>16792d5</code></a>
Implement <code>Deref</code> for COM interface hierarchies in
<code>windows-bindgen</code> (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2968">#2968</a>)</li>
<li><a
href="a08ab56f14"><code>a08ab56</code></a>
Add <code>windows_i686_gnullvm</code> target (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2961">#2961</a>)</li>
<li><a
href="994dc7519f"><code>994dc75</code></a>
Simplify <code>cfg</code> union calculation (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2965">#2965</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/windows-rs/compare/0.54.0...0.56.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `windows-implement` from 0.53.0 to 0.56.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/windows-rs/releases">windows-implement's
releases</a>.</em></p>
<blockquote>
<h2>0.56.0</h2>
<p>This release includes updates to all crates except
<code>windows-sys</code>.</p>
<p>It includes major updates to the following:</p>
<ul>
<li><code>riddle</code> 0.56.0</li>
<li><code>windows</code> 0.56.0</li>
<li><code>windows-bindgen</code> 0.56.0</li>
<li><code>windows-core</code> 0.56.0</li>
<li><code>windows-implement</code> 0.56.0</li>
<li><code>windows-interface</code> 0.56.0</li>
<li><code>windows-metadata</code> 0.56.0</li>
</ul>
<p>This includes various improvements and fixes to code generation,
compliance with new Rust warnings, Arm64EC bindings, as well as
ergonomic improvements. The <code>riddle</code> crate in particular now
matches the version of <code>windows-bindgen</code> as they are
inextricably linked.</p>
<p>It includes minor updates to the following:</p>
<ul>
<li><code>windows-targets</code> 0.52.5</li>
<li><code>windows-result</code> 0.1.1</li>
<li><code>windows-registry</code> 0.1.1</li>
<li><code>windows-version</code> 0.1.1</li>
</ul>
<p>The <code>windows-targets</code> crate adds support for
<code>arm64ec-pc-windows-msvc</code> and
<code>i686-pc-windows-gnullvm</code>. The other crates only update
dependencies.</p>
<h2>What's Changed</h2>
<ul>
<li>Avoid <code>windows</code> crate dependency in
<code>implement</code> and <code>interface</code> macros by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2917">microsoft/windows-rs#2917</a></li>
<li>Simplify version declarations in toml and readme files by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2918">microsoft/windows-rs#2918</a></li>
<li>Format extension files by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2919">microsoft/windows-rs#2919</a></li>
<li>Riddle 0.3 by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2920">microsoft/windows-rs#2920</a></li>
<li>Hash impl for HSTRING by <a
href="https://github.com/zardini123"><code>@​zardini123</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2924">microsoft/windows-rs#2924</a></li>
<li>Fix generic class signature calculation by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2927">microsoft/windows-rs#2927</a></li>
<li>Defer module name lowercase conversion for Windows by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2934">microsoft/windows-rs#2934</a></li>
<li>Document <code>Param</code> trait by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2938">microsoft/windows-rs#2938</a></li>
<li>Add diff check after workflow test run by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2940">microsoft/windows-rs#2940</a></li>
<li>Update <code>windows-core</code> to generate its own bindings by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2941">microsoft/windows-rs#2941</a></li>
<li>Fix for new Rust nightly warnings related to dead code by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2951">microsoft/windows-rs#2951</a></li>
<li>Update gnullvm libraries by <a
href="https://github.com/riverar"><code>@​riverar</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2953">microsoft/windows-rs#2953</a></li>
<li>Add 0.54.0 to feature search app by <a
href="https://github.com/riverar"><code>@​riverar</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2950">microsoft/windows-rs#2950</a></li>
<li>Prep for type name deferral by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2955">microsoft/windows-rs#2955</a></li>
<li>Fix typo in <code>windows-targets</code> readme by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2962">microsoft/windows-rs#2962</a></li>
<li>Add missing tests for readme code snippets by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2963">microsoft/windows-rs#2963</a></li>
<li>Simplify type remapping by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2964">microsoft/windows-rs#2964</a></li>
<li>Simplify <code>cfg</code> union calculation by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2965">microsoft/windows-rs#2965</a></li>
<li>Add i686-pc-windows-gnullvm target by <a
href="https://github.com/jeremyd2019"><code>@​jeremyd2019</code></a> in
<a
href="https://redirect.github.com/microsoft/windows-rs/pull/2961">microsoft/windows-rs#2961</a></li>
<li>Implement <code>Deref</code> for COM interface hierarchies in
<code>windows-bindgen</code> by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2968">microsoft/windows-rs#2968</a></li>
<li>Implement <code>Deref</code> for COM interface hierarchies defined
with the <code>interface</code> macro by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2969">microsoft/windows-rs#2969</a></li>
<li>Remove redundant target checks by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2973">microsoft/windows-rs#2973</a></li>
<li>Add support for Arm64EC by <a
href="https://github.com/dpaoliello"><code>@​dpaoliello</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2957">microsoft/windows-rs#2957</a></li>
<li>Fix for new Clippy warnings in nightly by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2977">microsoft/windows-rs#2977</a></li>
<li>Add explicit path support to the <code>interface</code> macro by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2976">microsoft/windows-rs#2976</a></li>
<li>Document <code>Interface::IID</code> by <a
href="https://github.com/kennykerr"><code>@​kennykerr</code></a> in <a
href="https://redirect.github.com/microsoft/windows-rs/pull/2990">microsoft/windows-rs#2990</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ae896c59e4"><code>ae896c5</code></a>
Release 0.56.0 (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2989">#2989</a>)</li>
<li><a
href="5b73aea86d"><code>5b73aea</code></a>
Document <code>Interface::IID</code> (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2990">#2990</a>)</li>
<li><a
href="bedd359eac"><code>bedd359</code></a>
Add explicit path support to the <code>interface</code> macro (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2976">#2976</a>)</li>
<li><a
href="e7a361a399"><code>e7a361a</code></a>
Fix for new Clippy warnings in nightly (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2977">#2977</a>)</li>
<li><a
href="ac4643e7e0"><code>ac4643e</code></a>
Add support for Arm64EC (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2957">#2957</a>)</li>
<li><a
href="879c0cf56d"><code>879c0cf</code></a>
Remove redundant target checks (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2973">#2973</a>)</li>
<li><a
href="f4be25df21"><code>f4be25d</code></a>
Implement <code>Deref</code> for COM interface hierarchies defined with
the <code>interface</code> ...</li>
<li><a
href="16792d527b"><code>16792d5</code></a>
Implement <code>Deref</code> for COM interface hierarchies in
<code>windows-bindgen</code> (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2968">#2968</a>)</li>
<li><a
href="a08ab56f14"><code>a08ab56</code></a>
Add <code>windows_i686_gnullvm</code> target (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2961">#2961</a>)</li>
<li><a
href="994dc7519f"><code>994dc75</code></a>
Simplify <code>cfg</code> union calculation (<a
href="https://redirect.github.com/microsoft/windows-rs/issues/2965">#2965</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/windows-rs/compare/0.53.0...0.56.0">compare
view</a></li>
</ul>
</details>
<br />


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


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Not Applicable <ReactorScram@users.noreply.github.com>
2024-04-15 15:01:24 +00:00
Jamil
254fe6fbbc ci: Only build debug images for linux/amd64 (#4612)
refs #4602 

- Removes `debug` stage building of `arm` and `arm64` binaries and
images (PRs only) -- these just get thrown away since we only test in CI
with `amd64`
- Removes `perf` builds for snownet-tests and http-test-server
- `base-base*` jobs are expected to fail since these changes haven't hit
`main` yet
- 
This changes our required checks, so after approval I'll need to update
those.
2024-04-14 15:10:54 +00:00
Jamil
c15f4f0868 ci: Enable client compatibility tests (#4610)
Meant to do this sooner.
2024-04-13 20:55:13 +00:00
Jamil
e9020ddd73 fix(ci): Override release_drafter commitish since we run on PRs now (#4608)
Fixes
https://firezonehq.slack.com/archives/C067DSY7TFX/p1712964715027229
2024-04-12 18:06:14 -07:00
Reactor Scram
8e642e86d8 refactor(perf-tests): add prefixes 'base' and 'head' (#4598)
This makes it easier to tell them apart, which had been confusing me
while working on #4578

<img width="304" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/5c9b3505-45ca-490f-9f7a-00e1a5c2eb30">
2024-04-12 21:35:33 +00:00
Jamil
89e05b0fd6 fix(ci): autolabeler to fix changelog drafting (#4591)
Fixes the autolabeler so that changelog generation and edit process is
much less time-consuming

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-12 21:23:53 +00:00
Reactor Scram
c01c3c1dd8 test(integration): remove redundant integration-test- prefix (#4601)
They all have the same prefix anyway, and it uses up real estate in the
CI page

**After**
<img width="311" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/8028f9bf-5c13-4170-9e01-06bfd393751c">

**Before**
<img width="292" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/8cabf67e-6be2-4719-b06f-4a76cf5c8111">
2024-04-12 18:15:11 +00:00
Andrew Dryga
a0e69813c0 feat(portal): Broadcast relays presence updates to the client and return them in init (#4596)
`relays` will be removed from `prepare_connection` in a few weeks after
we release a version that reads them from `init` message. Keep in mind
technically `relays` list can be empty, it would be nice if clients
would log an error or show it in such cases.
2024-04-12 11:26:48 -06:00
Reactor Scram
9652e8b8a6 docs(client): how to read logs with jq (#4599)
Closes #4523
2024-04-12 16:34:53 +00:00
Thomas Eizinger
be1a719e2c chore(relay): perform graceful shutdown upon receiving SIGTERM (#4552)
Upon receiving a SIGTERM, we immediately disconnect from the websocket
connection to the portal and set a flag that we are shutting down.

Once we are disconnected from the portal and no longer have an active
allocations, we exit with 0. A repeated SIGTERM signal will interrupt
this process and force the relay to shutdown.

Disconnecting from the portal will (eventually) trigger a message to
clients and gateways that this relay should no longer be used. Thus,
depending on the timeout our supervisor has configured after sending
SIGTERM, the relay will continue all TURN operations until the number of
allocations drops to 0.

Currently, we also allow clients to make new allocations and refreshing
existing allocations. In the future, it may make sense to implement a
dedicated status code and refuse `ALLOCATE` and `REFRESH` messages
whilst we are shutting down.

Related: #4548.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-12 08:45:08 +00:00
Andrew Dryga
d575dc3866 hotfix: Remove runtime:false from Phoenix dep in domain app 2024-04-12 00:05:38 -06:00
Andrew Dryga
b653d66414 Trigger monitoring alerts on crash reports 2024-04-11 23:43:53 -06:00
Andrew Dryga
c074285dec Bump LoggerJSON version 2024-04-11 23:34:59 -06:00
Andrew Dryga
8f1785f7c7 Do not raise alerts on errors from auditlog 2024-04-11 23:34:58 -06:00
Thomas Eizinger
31eec1aac7 chore(relay): connect to portal in the background during startup (#4594)
In a prior design of the relay and the `phoenix-channel`, connecting to
the portal was a blocking operation, i.e. we weren't meant to start the
relaying operations before the portal connection succeeded.

Since then, `phoenix-channel` got refactored to have an internal
(re)-connection mechanism, meaning we don't actually need to `.await`
anything to obtain a `PhoenixChannel` instance that we can use to
initialize the `Server`. Furthermore, we changed the health-check to
return 200 OK prior to the portal connection being established in #4553.

Taking both of these into account, there is no more need to block on the
portal connection being established, which allows us to remove the use
of `phoenix_channel::init` and connect in the background whilst we
already accept STUN & TURN traffic.
2024-04-12 03:48:09 +00:00
Thomas Eizinger
b2eba1e89a chore(snownet): add unit-test for roaming networks (#4585)
Using the recent improvements made to the test harness, we can now add a
test for `reconnect` and assert that we are indeed discovering the new
interface and signaling the ICE candidate to the other party.
2024-04-12 02:21:56 +00:00
Andrew Dryga
33389969f5 hotfix: set project_id for log formatter 2024-04-11 19:40:37 -06:00
Andrew Dryga
54def90b12 Add an alert when relays are down 2024-04-11 19:20:32 -06:00
Andrew Dryga
13d7312738 chore(portal): Try new LoggerJSON implementation (#4595) 2024-04-11 17:54:44 -06:00
Thomas Eizinger
26494b0e34 ci: reduce duplication in integration tests (#4583)
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-11 23:01:12 +00:00
Jamil
6720ab5bc1 chore(clients): Bump Apple to 1.0.2; Android 1.0.1 (#4590)
CI won't pass for these builds without these bumps because the versions
are already published.
2024-04-11 22:34:17 +00:00
Jamil
6c6014ec15 fix(website): Add metadatas for site links to generate (#4593)
Ensure each top-level page has proper metadata defined so Google will
pick it up for site links.
2024-04-11 21:49:36 +00:00
Andrew Dryga
e031aeb9a9 hotfix: fix assumed event datetime format 2024-04-11 13:39:49 -06:00
Andrew Dryga
b6763f192b hotfix: set correct metric intervals 2024-04-11 11:50:45 -06:00
Andrew Dryga
5005b4e10a hotfix: change some metric kinds to be gauge instead of cumulative 2024-04-11 10:44:45 -06:00
Jamil
d1a3c3aeff style(docs): Use simple <pre> for monospace blocks (#4582)
- Add logs export example, fixes #4051 
- Use brand color palette for `pre` blocks

These have been updated to match our colorscheme.

Code blocks (\`\`\`elixir) will pull in the syntax highlighting but
these simple ones will use our color palette:

<img width="780" alt="Screenshot 2024-04-10 at 7 18 02 PM"
src="https://github.com/firezone/firezone/assets/167144/166cd5a7-c8cd-456b-a1c1-5faeab20d0f8">
2024-04-11 15:31:01 +00:00