Commit Graph

4980 Commits

Author SHA1 Message Date
Jamil
ef3b4e5dfe feat(linux-gui): Bump GUI to 1.1.5 for arm64 support (#5800) 2024-07-08 21:58:10 -07:00
Jamil
cd1b46c8f5 fix(ci): Install GH CLI on arm runners (#5802)
`main` failure:

https://github.com/firezone/firezone/actions/runs/9847918080/job/27190842443

Opened an issue:
https://github.com/actions/runner-images/issues/10192

gh cli instructions:

https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian-ubuntu-linux-raspberry-pi-os-apt
2024-07-09 02:56:24 +00:00
Thomas Eizinger
9caca475dc test(connlib): introduce routing table to tunnel_test (#5786)
Currently, `tunnel_test` uses a rather naive approach when dispatching
`Transmit`s. In particular, it checks client, gateway and relay
separately whether they "want" a certain packet. In a real network,
these packets are routed based on their IP.

To mimic something similar, we introduce a `Host` abstraction that wraps
each component: client, gateway and relay. Additionally, we introduce a
`RoutingTable` where we can add and remove hosts. With these things in
place, routing a `Transmit` is as easy as looking up the destination IP
in the routing table and dispatching to the corresponding host.

Our hosts are type-safe: client, gateway and relay have different types.
Thus, we abstract over them using a `HostId` in order to know, which
host a certain message is for. Following these patches, we can easily
introduce multiple gateways and relays to this test by simply making
more entries in this routing table. This will increase the test coverage
of connlib.

Lastly, this patch massively increases the performance of `tunnel_test`.
It turns out that previously, we spent a lot of CPU cycles accessing
"random" IPs from very large iterators. With this patch, we take a
limited range of 100 IPs that we sample from, thus drastically
increasing performance of this test. The configured 1000 testcases
execute in 3s on my machine now (with opt-level 1 which is what we use
in CI).

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
2024-07-09 01:48:54 +00:00
Reactor Scram
927702cd2f chore(gui-client): fix papercuts (#5792)
Closes #5789 

The SIGTERM catching would have helped debug #5790 

```[tasklist]
### Tasks
- [x] catch SIGTERM and log when systemd shuts us down gracefully
- [x] Log architecture at startup
```
2024-07-08 22:20:57 +00:00
Andrew Dryga
a054121233 fix(portal): Fix HTTPS redirects (#5798) 2024-07-08 16:25:55 -06:00
Reactor Scram
fff7d112a5 fix(changelog): typo in the GUI Client changelog (#5796) 2024-07-08 21:41:29 +00:00
Reactor Scram
e0326be807 ci(gui-client/linux): see if we can build the GUI Client for ARM (#5793)
This would make it a little easier to replicate prod issues on old
releases

```[tasklist]
### Tasks
- [x] Add comment to changelog
- [x] Check Vercel preview
- [x] Request review
- [x] Update arches link
- [x] `apt-get update`
- [x] Re-request review
```
2024-07-08 21:30:48 +00:00
Jamil
0ff45c34f9 fix(style): Set prettier prosewrap to preserve to let authors write MD in their own style (#5722)
Prettier has three options for prose-wrap:

- `always`: Format prose (markdown) to the line-length (current)
- `never`: Use a single line for all prose (proposed)
- `preserve`: Don't lint prose

Settled on `preserve` due to discussion.


Fixes #5686

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-08 14:26:58 +00:00
Reactor Scram
7469f44fc4 refactor(headless-client): remove unnecessary derived impl of PartialEq (#5758)
I didn't know about `matches!` back then
2024-07-08 13:57:18 +00:00
Jamil
6003f2b424 fix(portal): Clarify label (#5774)
Label isn't quite accurate
2024-07-07 23:02:04 +00:00
Jamil
5947ffbf98 chore(infra): remove double secret "SECRET_KEY_BASE" (#5728) (#5729)
This is a duplicate var that is replaced with the base64 version just
below it.

Co-authored-by: FTB_lag <tabolskyy.git@gmail.com>
2024-07-07 03:58:31 +00:00
Jamil
81bd42f6b0 fix(android): Target sdk 35 (#5785)
I think they meant API level 35...


<img width="1056" alt="Screenshot 2024-07-06 at 5 23 44 PM"
src="https://github.com/firezone/firezone/assets/167144/02930c3b-9173-48b9-b807-79bbff08b33a">
2024-07-07 02:58:26 +00:00
Jamil
1b7338e5c3 fix(website): fix sha of deployed portal (#5782)
Needs a storage key, not an env var to read.
2024-07-06 17:25:00 -07:00
Jamil
aa7977c9b5 chore: bump android 1.1.3 (#5784) 2024-07-06 16:54:14 -07:00
Jamil
7820e3f3c7 fix(android): Strip scope id off IPv6 addresses Android (#5783)
Fixes #5781

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-07-06 16:50:30 -07:00
Jamil
7c2796c716 fix(infra): use separate SSL cert resource (#5779) 2024-07-06 13:18:25 -07:00
Jamil
6c8d7a1d8f fix(infra): blog. and docs. need SSL certs too (#5778)
These are needed to be able to redirect.
2024-07-06 12:25:37 -07:00
Jamil
e349f3710e fix(infra): fix CAA and redirect configuration issues (#5777) 2024-07-06 10:46:42 -07:00
Andrew Dryga
8e4e7253e0 chore(portal): Split domains and set separate CAAs records (#5434) 2024-07-06 09:19:38 -07:00
Jamil
4ac447ad1f refactor(website): Update hero layout on landing page (#5771)
Still need to replace the graphic
2024-07-06 00:42:10 -07:00
FTB_lag
2f9175b66a chore(infra): fix docker image and tag for domain (#5769)
Signed-off-by: FTB_lag <tabolskyy.git@gmail.com>
2024-07-05 19:52:37 -07:00
Jamil
ff506ab679 chore(infra): revoke oneleet signups, allow firezonedemo.com (#5770)
- Reverts the access allowing them to sign up on staging.
- Allows `firezonedemo.com` for marketing / sales demos.
2024-07-05 21:02:51 +00:00
Jamil
b7227d1abc docs: GitHub releases -> Changelog (#5763)
Needs to be updated with proper links pointing to changelog, not GH
releases.
2024-07-05 13:19:43 -07:00
Jamil
e39ce22b36 chore: Publish new linux/windows clients (#5767)
Adds the DNS fix.
2024-07-05 13:19:30 -07:00
Jamil
5dc7715dca feat(website): Add shadow to navbar on scroll (#5768)
Prevents problems with it blending in to content.

### Before
<img width="855" alt="Screenshot 2024-07-05 at 11 59 52 AM"
src="https://github.com/firezone/firezone/assets/167144/b5f4a595-26a6-4c48-8195-28dd26a6264e">


### After

<img width="836" alt="Screenshot 2024-07-05 at 11 59 26 AM"
src="https://github.com/firezone/firezone/assets/167144/cb2de469-6717-4991-9c79-b8daf68c5578">
2024-07-05 12:00:31 -07:00
Reactor Scram
35926eb12f refactor(gui-client): connect to the IPC service immediately when the GUI starts (#5704)
I had to change the smoke test because it had a couple issues:
- The IPC socket had the wrong permissions because I didn't realize you
can tell `su` / `sudo` / `runuser` to set a group in addition to setting
a user
- It had a hard-coded timer of 12 seconds, and one time the test failed
because the IPC service exited before the GUI finished loading. So I
changed it so the IPC service in smoke test mode will wait forever for
exactly one client, then quit

```[tasklist]
### Tasks
- [x] Run `chown` in the Ubuntu smoke test
```
2024-07-05 17:44:12 +00:00
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