Commit Graph

3383 Commits

Author SHA1 Message Date
Jamil
eeaa65812e fix(gateway): Use new prod Docker registry for upgrades (#3386) 2024-01-24 10:48:18 -08:00
Reactor Scram
2f2f1a65af ci(windows): call pnpm so the frontend gets built, closes #3381 (#3382)
Closes #3381
2024-01-24 18:18:20 +00:00
Brian Manifold
305e571d04 fix(devops): Fix typo in AWS bastion host TF (#3380)
* Small typo in AWS bastion host was preventing unattended upgrades.
* Update all AWS modules to recreate the EC2 instance if the `user_data`
is ever changed.
2024-01-24 18:03:26 +00:00
Jamil
e3994a60e6 refactor(windows): Add logo and version to About window (#3378)
Fixes #3354 
Fixes #3229

---------

Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-24 17:23:09 +00:00
Thomas Eizinger
6b789d6932 feat(phoenix-channel): automatically reconnect based on provided ExponentialBackoff (#3364)
Currently, only the gateway has a reconnect logic for (transient) errors
when connecting to the portal. Instead of duplicating this for the
relay, I moved the reconnect state machine to `phoenix-channel`. This
means the relay now automatically gets it too and in the future, the
clients will also benefit from it.

As a nice benefit, this also greatly simplifies the gateway's
`Eventloop` and removes a bunch of cruft with channels.

Resolves: #2915.
2024-01-24 16:39:53 +00:00
Reactor Scram
aeb3299077 fix(windows): prevent a security issue (#3326)
- [x] Confirm that the PID of the pipe client matches the PID of the
subprocess we just spawned
- [x] (redundant?) Send a unique cookie to the child process' stdin and
require it to be echoed back over the named pipe. An attacker could not
intercept the token since the stdin belongs to the subprocess we just
spawned

I didn't realize, but named pipes and CLI args are both readable by
other process, so any other process could connect to our named pipe and
do a MITM.

I don't know how Chromium protects itself from this, so I did some
research and just made something up.

After this I'll probably break it up into submodules, `ipc.rs` is about
600 lines and probably more than half is just tests.

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-24 16:28:09 +00:00
Brian Manifold
fb61b0941d fix(devops): Update AWS gateway TF (#3374)
Why:

* The previous terraform was not replacing the EC2 instance when the
`user_data` changed. This resulted in the instance only being restarted,
which meant the latest gateway image would not be pulled down. This also
highlighted the fact that the systemd unit file for the gateway was not
quite correct and if the system were to ever reboot the gateway would
not start automatically. Both issues have been corrected with this
commit.
2024-01-24 15:37:26 +00:00
Reactor Scram
ac3ff0ebc2 fix(windows): work around possible keyring multi-threading bug for now (#3363)
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-01-24 00:23:23 +00:00
Gabi
0629afce3a connlib: make dns request in a new task without blocking peers (#3370)
This required making `allow_access` `async` which is ugly, but we can
fix it later like we did it with `set_peer_connection_request`, but
doing this ASAP otherwise this would block the `peers_by_ip` struct and
also block the executor a bunch of times and slow everything down.

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-01-24 00:17:50 +00:00
Thomas Eizinger
2cc68c067f deps: use usptream str0m (#3365)
All major upstream contributions to `str0m` have been merged, meaning we
can now discontinue the dependency on the fork.
2024-01-23 23:28:55 +00:00
Brian Manifold
a62b8fe51b Add explicit sysctl flags for AWS gateway command (#3366)
Why:

* The previous command that was used to start the gateway running in AWS
was not explicitly using any `sysctl` flags in the command. This ended
up causing issues with IPv6 in the container, even though the sysctl
properties on the host were set as expected. Adding the `sysctl` flags
to the command allows the container to work as expected.
2024-01-23 22:38:04 +00:00
Jamil
be68a366bb fix(apple): Enforce types when encoding getSystemDefaultResolvers to prevent tunnel crash (#3367)
Fixes an edge case where an invalid formatted String could cause the
tunnel network extension to crash.
2024-01-23 22:21:52 +00:00
dependabot[bot]
a6ecee2fd4 build(deps): Bump clap from 4.4.17 to 4.4.18 in /rust (#3357)
Bumps [clap](https://github.com/clap-rs/clap) from 4.4.17 to 4.4.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.4.18</h2>
<h2>[4.4.18] - 2024-01-16</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> When lacking <code>usage</code> feature, ensure the
list of required arguments is unique</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.4.18] - 2024-01-16</h2>
<h3>Fixes</h3>
<ul>
<li><em>(error)</em> When lacking <code>usage</code> feature, ensure the
list of required arguments is unique</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0134f45ff0"><code>0134f45</code></a>
chore: Release</li>
<li><a
href="995ee03277"><code>995ee03</code></a>
docs: Update changelog</li>
<li><a
href="2f1890907e"><code>2f18909</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5314">#5314</a>
from epage/required</li>
<li><a
href="0a635b9a20"><code>0a635b9</code></a>
fix(parser): Don't duplicate requireds when usage disabled</li>
<li><a
href="e648e086f3"><code>e648e08</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5311">#5311</a>
from sourcefrog/doc-exitcode</li>
<li><a
href="8c83971b8c"><code>8c83971</code></a>
docs: Link to exit code info</li>
<li><a
href="b250c0b5f5"><code>b250c0b</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5310">#5310</a>
from epage/pty</li>
<li><a
href="c742b8eb0c"><code>c742b8e</code></a>
chore(complete): Update completest-pty</li>
<li><a
href="f524d84c1d"><code>f524d84</code></a>
chore: Release</li>
<li><a
href="944fb81cf5"><code>944fb81</code></a>
docs: Update changelog</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/v4.4.17...v4.4.18">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.4.17&new-version=4.4.18)](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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-23 21:11:33 +00:00
dependabot[bot]
650d6e7004 build(deps): Bump chrono from 0.4.31 to 0.4.32 in /rust (#3361)
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.31 to
0.4.32.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/chronotope/chrono/releases">chrono's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.32</h2>
<h2>What's Changed</h2>
<ul>
<li>improve doc comment and tests for timestamp_nanos_opt by <a
href="https://github.com/mlegner"><code>@​mlegner</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1299">chronotope/chrono#1299</a></li>
<li>Export <code>Archived*</code> types in <code>rkyv</code> module by
<a href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in
<a
href="https://redirect.github.com/chronotope/chrono/pull/1304">chronotope/chrono#1304</a></li>
<li>Switch to <code>doc_auto_cfg</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1305">chronotope/chrono#1305</a></li>
<li>duplicate derives on ArchivedT types (for rkyv feature) by <a
href="https://github.com/Awpteamoose"><code>@​Awpteamoose</code></a> in
<a
href="https://redirect.github.com/chronotope/chrono/pull/1271">chronotope/chrono#1271</a></li>
<li>Deprecate standalone <code>format</code> functions by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1306">chronotope/chrono#1306</a></li>
<li>Add benchmark for <code>DateTime::with_*</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1309">chronotope/chrono#1309</a></li>
<li>Don't let <code>unstable-locales</code> imply the <code>alloc</code>
feature by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1307">chronotope/chrono#1307</a></li>
<li>Remove <code>format::{format_localized,
format_item_localized}</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1311">chronotope/chrono#1311</a></li>
<li>Add <code>NaiveTime::overflowing_(add|sub)_offset</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1310">chronotope/chrono#1310</a></li>
<li>Fix <code>*_DAYS_FROM_YEAR_0</code> calculation by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1312">chronotope/chrono#1312</a></li>
<li>Add <code>NaiveDateTime::checked_(add|sub)_offset</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1313">chronotope/chrono#1313</a></li>
<li><code>(overflowing|checked)_(add|sub)_offset</code> implementations
by <a href="https://github.com/pitdicker"><code>@​pitdicker</code></a>
in <a
href="https://redirect.github.com/chronotope/chrono/pull/1069">chronotope/chrono#1069</a></li>
<li>tests calling date command set env LC_ALL by <a
href="https://github.com/jtmoon79"><code>@​jtmoon79</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1315">chronotope/chrono#1315</a></li>
<li>Update <code>deny.toml</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1320">chronotope/chrono#1320</a></li>
<li>Document panics in <code>Add</code>/<code>Sub</code> impls and use
<code>expect</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1316">chronotope/chrono#1316</a></li>
<li>Fix panic in <code>TimeZone::from_local_datetime</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1071">chronotope/chrono#1071</a></li>
<li>Add <code>DateTime::to_utc</code> by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1325">chronotope/chrono#1325</a></li>
<li>Fix out of range panics in <code>DateTime</code> getters and setters
by <a href="https://github.com/pitdicker"><code>@​pitdicker</code></a>
in <a
href="https://redirect.github.com/chronotope/chrono/pull/1317">chronotope/chrono#1317</a></li>
<li>Inline <code>write_rfc2822_inner</code>, don't localize by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1322">chronotope/chrono#1322</a></li>
<li>Documentation tweaks by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1274">chronotope/chrono#1274</a></li>
<li>Remove unnecessary feature gate by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1329">chronotope/chrono#1329</a></li>
<li>Fix quotes in docs.rs feature list by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1326">chronotope/chrono#1326</a></li>
<li>Duration features part 1 by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1327">chronotope/chrono#1327</a></li>
<li>Make methods on <code>NaiveDateTime</code> const where possible by
<a href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in
<a
href="https://redirect.github.com/chronotope/chrono/pull/1286">chronotope/chrono#1286</a></li>
<li>Fix <code>Duration::MIN.abs()</code> (adjust
<code>Duration::MIN</code> by 1 millisecond) by <a
href="https://github.com/pitdicker"><code>@​pitdicker</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1334">chronotope/chrono#1334</a></li>
<li>archive derive of PartialEq for rkyv - 0.4.x by <a
href="https://github.com/mkatychev"><code>@​mkatychev</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/959">chronotope/chrono#959</a></li>
<li>Bump actions/setup-node from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1346">chronotope/chrono#1346</a></li>
<li>test.yml remove errant <code>with: node-version</code> by <a
href="https://github.com/jtmoon79"><code>@​jtmoon79</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1352">chronotope/chrono#1352</a></li>
<li>Bump MSRV to 1.60 by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1347">chronotope/chrono#1347</a></li>
<li>Split <code>clock</code> feature into <code>clock</code> and
<code>now</code> by <a
href="https://github.com/mmastrac"><code>@​mmastrac</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1343">chronotope/chrono#1343</a></li>
<li>Update windows-targets requirement from 0.48 to 0.52 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1360">chronotope/chrono#1360</a></li>
<li>Add From<!-- raw HTML omitted --> for NaiveDateTime by <a
href="https://github.com/dcechano"><code>@​dcechano</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1355">chronotope/chrono#1355</a></li>
<li>Add from_timestamp_nanos by <a
href="https://github.com/Ali-Mirghasemi"><code>@​Ali-Mirghasemi</code></a>
in <a
href="https://redirect.github.com/chronotope/chrono/pull/1357">chronotope/chrono#1357</a></li>
<li>Silence clippy lint for test code by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1362">chronotope/chrono#1362</a></li>
<li>Expose rkyv features as features for chrono users. by <a
href="https://github.com/gz"><code>@​gz</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1368">chronotope/chrono#1368</a></li>
<li>docs: Improve deprecation of
<code>TimeZone::datetime_from_str</code> by <a
href="https://github.com/tmccombs"><code>@​tmccombs</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1342">chronotope/chrono#1342</a></li>
<li>Add Months::num_months() and num_years() by <a
href="https://github.com/danwilliams"><code>@​danwilliams</code></a> in
<a
href="https://redirect.github.com/chronotope/chrono/pull/1373">chronotope/chrono#1373</a></li>
<li>CI Linting: Fix missing sources checkout in <code>toml</code> job.
by <a href="https://github.com/gibbz00"><code>@​gibbz00</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1371">chronotope/chrono#1371</a></li>
<li>Add from_timestamp_millis to DateTime<!-- raw HTML omitted --> by <a
href="https://github.com/xmakro"><code>@​xmakro</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1374">chronotope/chrono#1374</a></li>
<li>Fix typos in Datelike impl for DateTime by <a
href="https://github.com/ElectrifyPro"><code>@​ElectrifyPro</code></a>
in <a
href="https://redirect.github.com/chronotope/chrono/pull/1376">chronotope/chrono#1376</a></li>
<li>Prepare 0.4.32 by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1378">chronotope/chrono#1378</a></li>
<li>Update windows-bindgen to 0.52 by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1379">chronotope/chrono#1379</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/chronotope/chrono/compare/v0.4.31...v0.4.32">https://github.com/chronotope/chrono/compare/v0.4.31...v0.4.32</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bf704191f2"><code>bf70419</code></a>
52</li>
<li><a
href="7757386368"><code>7757386</code></a>
Prepare 0.4.32 release</li>
<li><a
href="cee242a656"><code>cee242a</code></a>
Fix typos in Datelike impl for DateTime</li>
<li><a
href="6ec8f97d16"><code>6ec8f97</code></a>
Add from_timestamp_millis to DateTime&lt;Utc&gt; (<a
href="https://redirect.github.com/chronotope/chrono/issues/1374">#1374</a>)</li>
<li><a
href="65f0cc2aa4"><code>65f0cc2</code></a>
CI Linting: Fix missing sources checkout in <code>toml</code> job.</li>
<li><a
href="5536687c0d"><code>5536687</code></a>
Add Months::as_u32() (<a
href="https://redirect.github.com/chronotope/chrono/issues/1373">#1373</a>)</li>
<li><a
href="6033afea6f"><code>6033afe</code></a>
docs: Improve deprecation of
<code>TimeZone::datetime_from_str</code></li>
<li><a
href="849932b09b"><code>849932b</code></a>
Change the CI <code>--all-features</code> to an explicit list.</li>
<li><a
href="3f22822086"><code>3f22822</code></a>
Expose rkyv features as features for chrono users.</li>
<li><a
href="d7b4a82027"><code>d7b4a82</code></a>
Silence clippy lint for test code</li>
<li>Additional commits viewable in <a
href="https://github.com/chronotope/chrono/compare/v0.4.31...v0.4.32">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrono&package-manager=cargo&previous-version=0.4.31&new-version=0.4.32)](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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-23 19:45:43 +00:00
Brian Manifold
b75d1d5b74 feat(devops): Add CoreDNS to AWS TF (#3351)
Why:

* The CoreDNS server that had been running in AWS was not yet ported
over to use the new AWS Terraform in the mono repo.
2024-01-23 17:21:37 +00:00
Jamil
086f7a85c6 refactor(windows): Windows UI polish (#3338)
- Add Tailwind and Flowbite for consistent UI

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-23 17:07:25 +00:00
dependabot[bot]
42a05e86ea build(deps): Bump uuid from 1.6.1 to 1.7.0 in /rust (#3339)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.6.1 to 1.7.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>1.7.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add missing test for invalid parse_str by <a
href="https://github.com/CXWorks"><code>@​CXWorks</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/723">uuid-rs/uuid#723</a></li>
<li>Upgrade borsh unstable dependency to v1.0 and make it stable by <a
href="https://github.com/bgeron"><code>@​bgeron</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/724">uuid-rs/uuid#724</a></li>
<li>Reduce the package size of uuid by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/726">uuid-rs/uuid#726</a></li>
<li>Make use of newer Cargo features for specifying dependencies by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/727">uuid-rs/uuid#727</a></li>
<li>Prepare for 1.7.0 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/728">uuid-rs/uuid#728</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/CXWorks"><code>@​CXWorks</code></a> made
their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/723">uuid-rs/uuid#723</a></li>
<li><a href="https://github.com/bgeron"><code>@​bgeron</code></a> made
their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/724">uuid-rs/uuid#724</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/uuid-rs/uuid/compare/1.6.1...1.7.0">https://github.com/uuid-rs/uuid/compare/1.6.1...1.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cefc353334"><code>cefc353</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/728">#728</a> from
uuid-rs/cargo/1.7.0</li>
<li><a
href="3255b5414b"><code>3255b54</code></a>
prepare for 1.7.0 release</li>
<li><a
href="403bb17c1a"><code>403bb17</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/727">#727</a> from
uuid-rs/chore/cargo-cleanup</li>
<li><a
href="b7c6e26fea"><code>b7c6e26</code></a>
make use of newer Cargo features for specifying dependencies</li>
<li><a
href="ed13c73c7c"><code>ed13c73</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/726">#726</a> from
uuid-rs/chore/pkg-size</li>
<li><a
href="2e92a3d45f"><code>2e92a3d</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/724">#724</a> from
bgeron/borsh-1</li>
<li><a
href="38f01ffccf"><code>38f01ff</code></a>
rename workflow</li>
<li><a
href="eab4b85919"><code>eab4b85</code></a>
reduce the package size of uuid</li>
<li><a
href="421d752847"><code>421d752</code></a>
Make the borsh feature work by itself, without having to specify private
feat...</li>
<li><a
href="2534949aa3"><code>2534949</code></a>
Continue making feature borsh stable, as suggested by <a
href="https://github.com/KordAus"><code>@​KordAus</code></a></li>
<li>Additional commits viewable in <a
href="https://github.com/uuid-rs/uuid/compare/1.6.1...1.7.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.6.1&new-version=1.7.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 <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>
2024-01-23 15:14:41 +00:00
dependabot[bot]
df6170b0b4 build(deps): Bump async-compression from 0.4.5 to 0.4.6 in /rust (#3340)
Bumps
[async-compression](https://github.com/Nullus157/async-compression) from
0.4.5 to 0.4.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Nullus157/async-compression/releases">async-compression's
releases</a>.</em></p>
<blockquote>
<h2>async-compression: v0.4.6</h2>
<ul>
<li>Flush available data in decoder even when there's no incoming
input.</li>
<li>Return errors instead of panicking in all encode and decode
operations.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Nullus157/async-compression/blob/main/CHANGELOG.md">async-compression's
changelog</a>.</em></p>
<blockquote>
<h2>0.4.6</h2>
<ul>
<li>Flush available data in decoder even when there's no incoming
input.</li>
<li>Return errors instead of panicking in all encode and decode
operations.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d913b2710c"><code>d913b27</code></a>
Merge pull request <a
href="https://redirect.github.com/Nullus157/async-compression/issues/257">#257</a>
from Nullus157/rel-046</li>
<li><a
href="ea4bb3cd22"><code>ea4bb3c</code></a>
Merge branch 'main' into rel-046</li>
<li><a
href="6e3996d821"><code>6e3996d</code></a>
Merge pull request <a
href="https://redirect.github.com/Nullus157/async-compression/issues/247">#247</a>
from Nullus157/fix-123</li>
<li><a
href="e323ad9c0c"><code>e323ad9</code></a>
chore: prepare release 0.4.6</li>
<li><a
href="db0d11f5f4"><code>db0d11f</code></a>
fix merge error</li>
<li><a
href="22ed0ac4ca"><code>22ed0ac</code></a>
flush data still available in the decoder when no input (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/123">#123</a>)</li>
<li><a
href="7a57dfd374"><code>7a57dfd</code></a>
style: consistent use of io::Error* (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/256">#256</a>)</li>
<li><a
href="5926e78444"><code>5926e78</code></a>
Merge pull request <a
href="https://redirect.github.com/Nullus157/async-compression/issues/255">#255</a>
from garypen/garypen/fewer-panics</li>
<li><a
href="3daaee7b7a"><code>3daaee7</code></a>
Add missing Use statements</li>
<li><a
href="cf7a1df61b"><code>cf7a1df</code></a>
Replacing panics with errors improves the usability of the crate</li>
<li>See full diff in <a
href="https://github.com/Nullus157/async-compression/compare/async-compression-v0.4.5...async-compression-v0.4.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-compression&package-manager=cargo&previous-version=0.4.5&new-version=0.4.6)](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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-23 15:13:20 +00:00
dependabot[bot]
1c04da62b9 build(deps): Bump shlex from 1.2.0 to 1.3.0 in /rust (#3345)
Bumps [shlex](https://github.com/comex/rust-shlex) from 1.2.0 to 1.3.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/comex/rust-shlex/blob/master/CHANGELOG.md">shlex's
changelog</a>.</em></p>
<blockquote>
<h1>1.3.0</h1>
<ul>
<li>Full fix for the high-severity security vulnerability <a
href="https://rustsec.org/advisories/RUSTSEC-2024-0006.html">RUSTSEC-2024-0006</a>
a.k.a. <a
href="https://github.com/comex/rust-shlex/security/advisories/GHSA-r7qv-8r2h-pg27">GHSA-r7qv-8r2h-pg27</a>:
<ul>
<li>Deprecates quote APIs in favor of <code>try_</code> equivalents that
complain about nul bytes.</li>
<li>Also adds a builder API, which allows re-enabling nul bytes without
using the deprecated interface, and in the future can allow other things
(as discussed in quoting_warning).</li>
<li>Adds documentation about various security risks that remain,
particularly with interactive shells.</li>
</ul>
</li>
<li>Adds explicit MSRV of 1.46.0.</li>
</ul>
<h1>1.2.1</h1>
<ul>
<li>Partial fix for the high-severity security vulnerability <a
href="https://rustsec.org/advisories/RUSTSEC-2024-0006.html">RUSTSEC-2024-0006</a>
a.k.a. <a
href="https://github.com/comex/rust-shlex/security/advisories/GHSA-r7qv-8r2h-pg27">GHSA-r7qv-8r2h-pg27</a>
without bumping MSRV:
<ul>
<li>The bytes <code>{</code> and <code>\xa0</code> are now escaped by
quoting functions.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/comex/rust-shlex/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shlex&package-manager=cargo&previous-version=1.2.0&new-version=1.3.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)
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>
2024-01-23 15:11:33 +00:00
Jamil
1623552b58 fix(connlib): Increase max partition time to handle client network partitions more gracefully (#3335)
Fixes #3334 
Fixes #3302

---------

Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-23 01:25:21 +00:00
Reactor Scram
4d5041bbca test(windows): make Windows kill child processes when the parent exits (#3311)
Probably needs some refactoring and prettifying before it comes out of
drafts.

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-22 22:30:17 +00:00
Reactor Scram
215883caec test(windows): multi-process test for IPC (#3310)
I tested this by temporarily putting panics in `test_ipc_manager` and
`test_ipc_worker`.
It looks like, if a process crashes, Windows will clean up its named
pipe, and the process waiting on the other side of the named pipe will
get an error.
This is good but it's not air-tight - ~~We could still have a situation
where a worker process locks up, and the main process crashes, and the
worker process then leaks.~~ #3311 will fix that

For that case I'll try this
https://stackoverflow.com/questions/53208/how-do-i-automatically-destroy-child-processes-in-windows

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-22 21:48:28 +00:00
dependabot[bot]
7ded78e78c build(deps): Bump wintun from 0.3.2 to 0.4.0 in /rust (#3341)
Bumps [wintun](https://github.com/nulldotblack/wintun) from 0.3.2 to
0.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nulldotblack/wintun/releases">wintun's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.0</h2>
<h2>Added</h2>
<ul>
<li><code>Adapter::get_mtu</code>, <code>set_dns_servers</code>, and
<code>Adapter::get_active_network_interface_gateways</code>: <a
href="https://redirect.github.com/nulldotblack/wintun/pull/13">nulldotblack/wintun#13</a></li>
<li><code>Error::ShuttingDown</code>: <a
href="https://redirect.github.com/nulldotblack/wintun/pull/14">nulldotblack/wintun#14</a></li>
</ul>
<h3>Breaking Changes</h3>
<ul>
<li>Adding the <code>ShuttingDown</code> variant to
<code>wintun::Error</code> breaks exhastive matches on previous
versions. <code>wintun::Error</code> is now marked
<code>#[non_exhaustive]</code> to make future additions backwards
compatable</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nulldotblack/wintun/blob/main/CHANGELOG.md">wintun's
changelog</a>.</em></p>
<blockquote>
<h2>[0.4.0] - 2024-01-12</h2>
<h2>Added</h2>
<ul>
<li><code>Adapter::get_mtu</code>, <code>set_dns_servers</code>, and
<code>Adapter::get_active_network_interface_gateways</code>: <a
href="https://redirect.github.com/nulldotblack/wintun/pull/13">nulldotblack/wintun#13</a></li>
<li><code>Error::ShuttingDown</code>: <a
href="https://redirect.github.com/nulldotblack/wintun/pull/14">nulldotblack/wintun#14</a></li>
</ul>
<h3>Breaking Changes</h3>
<ul>
<li>Adding the <code>ShuttingDown</code> variant to
<code>wintun::Error</code> breaks exhastive matches on previous
versions. <code>wintun::Error</code> is now marked
<code>#[non_exhaustive]</code> to make future additions backwards
compatable</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/nulldotblack/wintun/commits/v0.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=wintun&package-manager=cargo&previous-version=0.3.2&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 <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: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-22 21:03:17 +00:00
Andrew Dryga
d5294fb639 fix(portal): Allow users to manually provision OIDC users (#3325)
Before, any user logging into via the OIDC connector would need to have
an identity created beforehand with their known `sub` id. This presented
a chicken-and-egg scenario where this was only populated in the
`Identity Providers` settings flow by an admin, preventing regular users
from signing in.

With this change, Admins can now create identities for actors and
specify an `email` address or `sub` claim value to match against for
incoming authentications to the connector.

This will allow end-users to authenticate with the configured OIDC
connector.

Fixes #3308
2024-01-22 14:19:02 -06:00
Reactor Scram
3743e5199b feat(windows): detect network changes and log when connlib should stop / start / restart (#3262)
Closes #3000
2024-01-22 19:28:51 +00:00
Reactor Scram
a7dfd46be0 feat(windows): prototype module for IPC (#3304)
To work around #2975 I want to run connlib in a subprocess.
We're already using Tokio' `named_pipe` module for deep links, so I made
a generic request-response IPC system with it.

This can get merged in as its own PR, and the actual moving of the
connlib `Session` will be a later PR atop this.
2024-01-22 18:26:48 +00:00
Reactor Scram
2162a7c618 refactor(windows): move debug subcommands closer to their code and further from production subcommands (#3307) 2024-01-22 17:03:56 +00:00
Jamil
e342a07e32 Use INFO for phoenix-channel portal connection (#3328)
Will help debug connection issues to the portal
2024-01-19 22:08:55 -08:00
dependabot[bot]
d117509ad7 build(deps): Bump h2 from 0.3.23 to 0.3.24 in /rust (#3319)
Bumps [h2](https://github.com/hyperium/h2) from 0.3.23 to 0.3.24.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/h2/releases">h2's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.24</h2>
<h2>Fixed</h2>
<ul>
<li>Limit error resets for misbehaving connections.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/h2/blob/v0.3.24/CHANGELOG.md">h2's
changelog</a>.</em></p>
<blockquote>
<h1>0.3.24 (January 17, 2024)</h1>
<ul>
<li>Limit error resets for misbehaving connections.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7243ab5854"><code>7243ab5</code></a>
Prepare v0.3.24</li>
<li><a
href="d919cd6fd8"><code>d919cd6</code></a>
streams: limit error resets for misbehaving connections</li>
<li>See full diff in <a
href="https://github.com/hyperium/h2/compare/v0.3.23...v0.3.24">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=h2&package-manager=cargo&previous-version=0.3.23&new-version=0.3.24)](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)
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>
2024-01-20 04:27:42 +00:00
Gabi
2f362a0ec0 connlib: Fix SplitDNS for some resources in web browsers (#3324)
fixes #3320
2024-01-19 20:37:36 +00:00
Reactor Scram
25358e4313 fix(windows): #3211, start logs earlier, before Tauri starts (#3296)
Closes #3211 

Also generally reduces our dependence on Tauri a lot, breaking some
cycles of "I need this initialized to initialize Tauri, but I need Tauri
initialized to initialize this"
2024-01-19 18:56:48 +00:00
Reactor Scram
0b310a1eaa feat(windows): update network_changes module (#3291)
This is the same as #3262 but it doesn't integrate with the Tauri GUI
app. I'm splitting the PRs up to make it a little easier to review.
2024-01-19 17:50:44 +00:00
Gabi
16a154b99d Connlib multiple dns (#3317)
Fixes #3123
2024-01-19 17:42:01 +00:00
Reactor Scram
e83b07093f refactor(windows): clean up and simplify subcommands (#3306)
Specifically deep linking had some problems:
- Passing PIPE_ID when there was no other possible valid argument
- Production use case accidentally flowed through a debug subcommand
- Unused subcommands that were ready to be removed
2024-01-19 17:17:26 +00:00
Reactor Scram
c7df97d207 refactor(windows): make load_advanced_settings sync so it doesn't need Tokio (#3295)
This is part of getting #3211 done.
2024-01-19 17:15:39 +00:00
Brian Manifold
ef973bf88d Fix radio button toggle on Sites edit page (#3318)
Why:

* The Sites edit page was toggling the routing option in the page on and
off every time a change to the page was made (i.e. every time something
was clicked or typed). This was causing the Site to not be editable in
certain situations. It ended up being because the form field value being
set was not consistently the same type. It would come back as either an
atom or a string, but the radio button input was only checking for
atoms.

Fixes: #3239
2024-01-19 06:34:47 +00:00
Thomas Eizinger
66c85e28b0 feat(connection): use STUN to generate server-reflexive candidate (#3268)
Currently, `firezone-connection` can only handle connections on a LAN.
Via the use of a STUN server, we can discover our public IP and attempt
to direct, hole-punched connection across multiple subnets.
2024-01-19 04:11:07 +00:00
Reactor Scram
613ca00b1c refactor(windows): move CLI things inside client.rs (#3305)
Both modules were small, and it's inconvenient to open two files to add
a new subcommand, so I want to combine them.
2024-01-19 04:02:38 +00:00
Brian Manifold
2a62e3961e feat(devops): Add AWS terraform (#3298)
Why:

* Previously the terraform for all of the AWS infra was created and run
outside of the mono repo. While this was very quick to setup and work
with, keeping the gateway up to date was easy to forget about. Moving
all of the AWS infra TF into the mono repo will allow everything to stay
up to date and will make sure everyone has easy access to update any of
the infra as needed.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-01-18 20:38:55 +00:00
Jamil
3fcaf684cc fix(ci): Restart iperf3 in between bandwidth tests (#3303) 2024-01-18 12:26:56 -08:00
Gabi
2277d92c88 fix(connlib): handle expiration messages correctly (#3292)
While working on #3288 I saw a few messages that we don't explicitly
handle from the portal.

This PR changes it so that we handle them correctly and we don't just
depend on coincidental behavior..
2024-01-18 18:08:43 +00:00
Andrew Dryga
32450c89d3 fix(portal): Remove leftovers of client name unique constraint (#3282)
Closes #3101
2024-01-18 12:07:16 -06:00
Reactor Scram
c25366202e feat(windows): crash handler that writes minidumps to ... (#3200)
... ProgramData/dev.firezone.client/dumps/last_crash.dmp, in debug
builds only for now

For #3111.
I was way off on my estimated dump size. It's only about 500 KB.

Please double-check that the Linux exes are still stripped properly.
Windows, Linux, and Mac have different ways to do embedded or
non-embedded debug info, so the Windows client should still be 20 MB but
with a ~62MB pdb next to it, and the Linux client should still be 15 MB.

- [ ] Check Linux artifacts weren't accidentally affected
- [ ] Make sure connlib's panic handler doesn't interfere with this
- [ ] Later on, change CI so pdb files are saved as artifacts
- [ ] Later on, enable for release builds

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-18 02:40:21 +00:00
Gabi
973e48cf68 Fix dns bad nxdomain (#3299)
Some dns servers return NXDOMAIN for queries where the address exists
but there is no
answer for the given query type(e.g. AAAA-only records). This is not up
to spec and
musl PROPERLY assumes that means there is no record of any type. Saddly,
this happens even
with google DNS so we can expect it to happen everywhere. So we use
getaddrinfo to separate
requests for A and AAAA queries and preventing this.

Seems to work locally, though the exact situation where we have a record
that returns NXDOMAIN while it exists is easier to reproduce in staging,
we should test it after we merge.

Fixes #3215
2024-01-18 02:30:30 +00:00
Reactor Scram
1b42e577da docs(windows): document processes involved in the Windows client (#3293) 2024-01-18 01:38:00 +00:00
Reactor Scram
0da573f397 refactor(windows): rename TAURI_ID to BUNDLE_ID (copied from #3200) (#3294)
Also set an assert so if they ever diverge it should crash during a
smoke test
2024-01-18 01:37:49 +00:00
Jamil
df3953983c fix(ci): Fix publish step to publish multi-arch images for public use (#3287)
* Remove `--pull-tags`
* Correctly build and push multi-arch images for public use
* re-revert Fix POSIX shell issue
* re-revert Fix Gateways masquerading for wireless interfaces
2024-01-17 18:03:27 -08:00
Jamil
bc5582cd2d fix(ci): Disable IPv6 in Docker-based integration tests due to flakiness (#3277)
Getting IPv6-related timeouts and flakiness. It's disabled for the
testbed and the connection tests so following suit here since we don't
have tests that use IPv6.
2024-01-17 22:15:53 +00:00
Reactor Scram
663466aa1d refactor(windows): give name to worker thread (#3289)
This came up while dealing with the COM stuff for #3000, but it's out of
scope, so I made it its own PR.
2024-01-17 22:14:08 +00:00
Thomas Eizinger
2e4dd9943b feat: dynamically configure network & redis for LAN integration test (#3286)
This also uses the docker healthcheck again for the redis container.
2024-01-17 22:11:29 +00:00