Commit Graph

4954 Commits

Author SHA1 Message Date
Jamil
0239176c8e fix(website): fix wrong link in /support (#5759) 2024-07-05 10:18:20 -07:00
Reactor Scram
663367b605 chore(gui-client): timestamp crash dump file names (#5452)
Closes #5449

The smoke tests expect `last_crash.dmp` at a fixed path, so in this case
we write the file with a timestamped name, then copy it over
`last_crash.dmp`.
2024-07-05 15:21:25 +00:00
Jamil
b1940b11e3 fix(website): blog post layout (#5757)
Prevents the layout header from appearing at the lop of each post.
2024-07-05 08:27:22 -07:00
Thomas Eizinger
28d5b8574c chore(connlib): minor logging tweaks (#5746)
Noticed a few things that caused unnecessary verbosity in the logs.
2024-07-05 14:45:32 +00:00
Jamil
90ea603584 refactor(website): landing page iteration 2 (#5753) 2024-07-05 01:14:07 -07:00
Thomas Eizinger
2a2877a4d9 test(snownet): add debug assert (#5750)
Within `snownet`'s test harness, packets are dispatched in a particular
order and of none of them match. They are assumed to be for the node
directly. We add a debug assert to ensure that the given address is in
fact part of the "local" interfaces that we have configured in the
tests.
2024-07-05 07:00:24 +00:00
Thomas Eizinger
a57c64e62b chore(snownet): add some debug logs around channel bindings (#5749) 2024-07-05 07:00:03 +00:00
Jamil
dd2de0440e refactor(android): Remove excessive debug logging from kotlin codebase (#5748)
- Why: This prevents logging potentially sensitive data to Logcat or
Firebase. For critical codepaths we rely on a non-null `!!` check
anyhow, which will be reported with a crash to Firebase. Now that we
have some confidence the app is reliable, I think we can reflect that
confidence in our code.
- This moves the `loadLibrary` call to the app start, which will surface
issues immediately when launching the app and not when trying to
connect. This also makes connect very slightly faster.
- Finally, `BootShutdownReceiver` is removed since it was essentially a
no-op. There are a few ways we can connect on boot, but this isn't a
good approach since it would ignore Android's Always-on VPN setting.
2024-07-05 05:06:02 +00:00
Jamil
3d65be0bb9 fix(website): Wrap app in MixpanelProvider (#5747)
We need to wrap the `children` by `MixpanelProvider` and not simply
include the Provider on the page.

Fixes #5744
2024-07-05 04:12:19 +00:00
Reactor Scram
7e9db1d876 chore(headless-client): fix typo in match statement (#5706)
PR #5700 had a typo in it. I didn't notice that these match arms use
`|`, so I accidentally flush the DNS for an event that doesn't need it.
Only `OnUpdateResources` should flush DNS.
2024-07-05 03:16:33 +00:00
Jamil
29df4a2f1f docs: update DNS docs / blog to match new system, mention port exhaustion (#5743)
Fixes #5724 
Fixes #5725 
Fixes #5726
2024-07-04 22:25:11 +00:00
Reactor Scram
d0f68fc133 test(gui-client): multi-process smoke test for GUI + IPC service (#5672)
```[tasklist]
### Tasks
- [x] Check the GUI saves its settings file
- [x] Check the IPC service writes the device ID to disk
- [x] Check the GUI writes a log file (skipped - we already check if the exported zip has any files in it)
- [x] Run the crash file through `minidump-stackwalk`
- [x] Reach feature parity with the original smoke tests
- [x] Ready for review
- [x] Finish #5452
- [ ] Start on #5453 
```
2024-07-04 21:10:31 +00:00
Andrew
4037a7bdd3 Provision and read-only DB replica in Europe 2024-07-04 13:00:55 -06:00
Andrew
86d6b79de1 Change the billing account ID 2024-07-04 13:00:55 -06:00
Jamil
c3e6ab02e6 fix(portal): hover state titles (#5715)
Fixes #5236 
Fixes #5243 
Fixes #5240 
Fixes #5234
2024-07-04 18:11:07 +00:00
Jamil
60d2a2befd fix(infra): relay listens on UDP only (#5718)
I don't believe we use/need TCP for the Relays. Better to keep the ports
closed if so.

Also, the docker-compose.yml is updated to allow the `relay-1` service
to respond to all its ports, since we don't need those mapped typically.
2024-07-04 16:53:08 +00:00
Jamil
ad1e4e188f fix(portal): add @class to input and use disabled cursor (#5713)
Fixes #5238
2024-07-04 16:37:49 +00:00
Jamil
140a2979da refactor(portal): Use popover with UTC timestamp for datetime fields (#5712)
Fixes #5249 to allow copy-pasting the timestamp
Fixes #5635 by virtue of using a relative datetime there.
Fixes #5225 

<img width="579" alt="Screenshot 2024-07-03 at 10 58 11 PM"
src="https://github.com/firezone/firezone/assets/167144/261a5f58-ab9c-40b3-a26f-3adcff228aa9">
2024-07-04 16:37:33 +00:00
Jamil
1e7d3a40d2 fix(website): apply scroll margin to footnotes too (#5711)
Fixes #5710
2024-07-04 07:31:13 +00:00
Jamil
d84c4f0713 refactor: minor tweak to sans-io intro to be more conservative (#5709)
Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-07-04 02:50:54 +00:00
Jamil
086c730aaf chore: Bump clients to 1.1.2 for DNS record type forward (#5703)
Apps are already in review with App Stores
2024-07-04 01:31:26 +00:00
Thomas Eizinger
6641e1b70f fix(blog): apply spell-checker suggestions (#5705)
I ran the post through a spell and grammar checker and applied some of
its suggestions.
2024-07-03 23:49:38 +00:00
Reactor Scram
f6e99752ec fix(client): flush the OS' DNS cache whenever resources change (#5700)
Closes #5052

On my dev VMs:
- systemd-resolved = 15 ms to flush
- Windows = 600 ms to flush

I tested with the headless Clients on Linux and Windows and it fixes the
issue. On Windows I didn't replicate the issue with the GUI Client, on
Linux this patch also fixes it for the GUI Client.
2024-07-03 21:14:43 +00:00
Jamil
2db32c247f refactor: sans-io minor fixes (#5694)
Just some minor nits I noticed after going live, before we post to
socials.
2024-07-03 20:57:04 +00:00
Reactor Scram
ecb38dedf9 fix(gui-client/windows): retry 10 times while creating the deep link server (#5570)
Temporary fix for #5566 

A better fix would be to merge the deep link and IPC service code, but I
tried that a couple times and failed, their interfaces are different.

```[tasklist]
### Tasks
- [x] Expand comment explaining the root cause
- [x] Re-request review
```
2024-07-03 20:55:30 +00:00
Jamil
3b0f54ec3c ci: Push infra images to ghcr.io (#5669)
Fixes #5447

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-07-03 19:36:06 +00:00
Andrew Dryga
c9a9c1864a fix(portal): Update client identity on every connection (#5697)
This identity must track the last sign in method used by the client

Closes #5633
2024-07-03 13:17:06 -06:00
Jamil
2f574aecd8 Eagle (#5699) 2024-07-03 12:13:52 -07:00
Jamil
ff04a13f09 fix(website): minor sidebar consistency fixes (#5698) 2024-07-03 12:07:46 -07:00
Jamil
a7b14229fc fix(android): Bump AGP to 8.5.0 and reorder rust gradle plugin (#5693)
Fixes the issue with #5664 by re-ordering the gradle plugin (yes,
really).

See https://github.com/mozilla/rust-android-gradle/issues/148

Supersedes #5664
2024-07-03 15:26:57 +00:00
Jamil
c214d7c40f fix(website): Split analytics modules into separate components to isolate issues (#5692)
By splitting these components up, we can debug
https://react.dev/errors/419 a bit easier.
2024-07-03 06:47:12 -07:00
Jamil
062da2c0e4 fix(website): fix border hover in navbar (#5691) 2024-07-03 06:21:36 -07:00
Jamil
d0c9b2d3c2 fix(blog): fix sans-io blog post image sizes (#5690) 2024-07-03 06:11:45 -07:00
Thomas Eizinger
84ce5eb2c7 feat(blog): explain the sans-IO design pattern (#5675)
Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-07-03 12:27:36 +00:00
dependabot[bot]
328105ce91 build(deps): Bump the lifecycle group in /kotlin/android with 3 updates (#5655)
Bumps the lifecycle group in /kotlin/android with 3 updates:
androidx.lifecycle:lifecycle-runtime-ktx,
androidx.lifecycle:lifecycle-viewmodel-ktx and
androidx.lifecycle:lifecycle-livedata-ktx.

Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.8.1 to 2.8.2

Updates `androidx.lifecycle:lifecycle-viewmodel-ktx` from 2.8.1 to 2.8.2

Updates `androidx.lifecycle:lifecycle-livedata-ktx` from 2.8.1 to 2.8.2


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: Jamil <jamilbk@users.noreply.github.com>
2024-07-03 07:29:55 +00:00
Jamil
9ac9dedfb9 feat: Azure scalable Gateway module and docs (#5644)
Resolves #2603
2024-07-03 07:16:56 +00:00
Gabi
5fd321c4bb chore(connlib): forward non-address record queries (#5674)
Since we only handle `A`, `AAAA` and `PTR` records of names we handle,
this can lead to unexpected behavior with other record types, where
using Firezone breaks `TXT`, `MX` or other record types for the
resources we handle.

So this is a bit of a refactor, now we lookup a resource and explicitly
return `Some` when there is a record we should be returning (even if
it's empty due to IP exhaustion) or `None` when we should just forward
the query.

This has the added benefit of no longer breaking bonjour or other
non-standard `PTR` queries.

Fixes: #5673.

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-07-03 05:15:23 +00:00
Jamil
e472f21bb0 revert: "fix(website): Handle JS errors during Mixpanel init" (#5685)
Reverts firezone/firezone#5684
2024-07-02 17:19:00 -07:00
Jamil
c0f98ea896 fix(portal): bump auth constant time to 2s (#5668)
Fixes
https://console.cloud.google.com/monitoring/alerting/incidents/0.nes28ktmvdk8?channelType=slack&project=firezone-prod

```
elapsed_time: 1300
```
2024-07-02 21:40:44 +00:00
Jamil
b0e35aa148 fix(website): Handle JS errors during Mixpanel init (#5684)
Adds an `ErrorBoundary` to catch the errors that may occur when
rendering the Suspense


```
Uncaught Error: Minified React error #419; visit https://react.dev/errors/419 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
```
2024-07-02 14:41:58 -07:00
Jamil
1edc827bca feat(portal): enable welcome email sending on manually provisionned o… (#5679)
…idc users (#5127)

Currently we can only send a welcome email to oidc users who have
already logged in once. For manually provisionned oidc users, we can't.
This PR aims to solve this issue

---------

Co-authored-by: Antoine <antoinelabarussias@gmail.com>
2024-07-02 19:59:23 +00:00
Jamil
33dff8af96 docs: Add more Gateway deploy examples (#5646)
- ~~Adds `fontawesome` icons to the portal and integrates them into the
existing `icon` component. Use just like the heroicons except prefixed
`fa-`.~~ Edit: removed these because I don't think it's worth the
increased bundle size. Just going to inline the icons we need instead.
- Fixes #3041
- Fixes #5072
2024-07-02 19:59:04 +00:00
Reactor Scram
4b6b706d46 refactor(gui-client): remove the heartbeat module (#5682)
We added this to diagnose a hang in the IPC service, #5441. That hang,
to the best of our knowledge, was caused by a deadlock which we fixed in
#5571. So the heartbeat task just adds a lot of noise to the stdout
which is annoying for debugging and won't be used in production logs.

The system uptime measuring is still useful, so we now log that just
once when logging starts, next to the git version and log directives.

If we see this pattern in either process' logs, we know something is
suspicious:
- Log file ends without a clean shutdown message
- Next log file starts with a high system uptime

Updates should always result in a clean shutdown message, and a sudden
power loss (mains power outage, or laptop battery dying) would result in
the system uptime being low for the 2nd log file.
2024-07-02 18:33:47 +00:00
FTB_lag
ee8b42af26 chore(website): Add missing section in Overview (#5677) 2024-07-02 09:16:01 -07:00
Jamil
a5b7507932 refactor(website): Remove flowbite library in favor of flowbite-react (#5676)
Flowbite hard-fails on 2.4.1 with NextJS/React causing the build error
`document is not defined`.

To fix this, we need to use Flowbite's React library (we already were,
now it's the sole flowbite lib).
2024-07-01 23:23:28 -07:00
Gabi
79fd8f6063 chore(connlib): add message type to the no records found logs (#5641)
Added for clarity when debugging, it used to look like:

```
2024-06-30T00:16:05.718337Z DEBUG firezone_tunnel::dns: No records for github.com, returning NXDOMAIN
```

And now looks like:

```
2024-06-30T00:16:05.718337Z DEBUG firezone_tunnel::dns: No MX records for github.com, returning NXDOMAIN
```
2024-07-01 23:15:44 +00:00
dependabot[bot]
e046987a69 build(deps): Bump flowbite from 2.3.0 to 2.4.1 in /elixir/apps/web/assets (#5653)
Bumps [flowbite](https://github.com/themesberg/flowbite) from 2.3.0 to
2.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/themesberg/flowbite/releases">flowbite's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.1</h2>
<ul>
<li>fix datepicker module declaration naming for TypeScript</li>
</ul>
<h2>v2.4.0</h2>
<ul>
<li>the datepicker is now a core component of Flowbite and has API
methods, events, and options</li>
<li>updated the documentation for the datepicker component and related
integration guides</li>
<li>minor visual bug fixes and improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8c8d65e489"><code>8c8d65e</code></a>
fix(typescript): datepicker naming and version bump to v2.4.1</li>
<li><a
href="2a8c18eed9"><code>2a8c18e</code></a>
Merge branch 'datepicker-instance'</li>
<li><a
href="6b160cc82d"><code>6b160cc</code></a>
chore(version): bump to v2.4.0</li>
<li><a
href="e9b8ae3715"><code>e9b8ae3</code></a>
Merge pull request <a
href="https://redirect.github.com/themesberg/flowbite/issues/907">#907</a>
from themesberg/datepicker-instance</li>
<li><a
href="1d76b8ffc1"><code>1d76b8f</code></a>
docs(changelog): add changelog</li>
<li><a
href="213577a394"><code>213577a</code></a>
docs(datepicker): update Phoenix and Rails docs for new datepicker
update</li>
<li><a
href="6a16510f28"><code>6a16510</code></a>
docs(datepicker): fix TypeScript example from docs</li>
<li><a
href="1e0d112435"><code>1e0d112</code></a>
fix(typescript): fix fucking typescript config for cross npm
declarations</li>
<li><a
href="6d1fbf3285"><code>6d1fbf3</code></a>
docs(nuxt): update Nuxt docs for Flowbite via composables</li>
<li><a
href="36eeab7fb9"><code>36eeab7</code></a>
docs(datepicker): update import statements for parent plugin</li>
<li>Additional commits viewable in <a
href="https://github.com/themesberg/flowbite/compare/v2.3.0...v2.4.1">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 22:35:32 +00:00
Reactor Scram
4075b779b5 refactor(gui-client): reload log filter immediately (#5671)
This will simplify #5590 some. The API URL and auth URL still take
effect on the next sign-in, but we don't have to explain that the
settings take effect after restarting the entire Client process, those
take effect somewhat immediately.

For some reason I see some lag, maybe the tracing layers don't check for
a new filter on every span, maybe they have some delay to save CPU time.
2024-07-01 21:36:00 +00:00
dependabot[bot]
155a815ae7 build(deps): Bump androidx.test.ext:junit from 1.1.5 to 1.2.1 in /kotlin/android in the junit group (#5656)
Bumps the junit group in /kotlin/android with 1 update:
androidx.test.ext:junit.

Updates `androidx.test.ext:junit` from 1.1.5 to 1.2.1


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.test.ext:junit&package-manager=gradle&previous-version=1.1.5&new-version=1.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <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: Jamil <jamilbk@users.noreply.github.com>
2024-07-01 19:31:24 +00:00
Reactor Scram
976cdfa731 refactor(headless-client): vendor uptime_lib (#5625)
This does the same thing as #5621 without removing the library, since it
will now compile against whatever version of `windows` we need

We could do the same with `hostname`, either vendor or ask upstream to
bump deps, and then `windows` 0.52.0 should be gone.

```[tasklist]
### Tasks
- [x] Remove macOS code and shrink everything
```
2024-07-01 16:44:46 +00:00