Commit Graph

245 Commits

Author SHA1 Message Date
Jamil
6b9231a21b chore(portal): Save MAU billing for a future feature update (#4414)
Just updating the UI to be a bit more consistent.

Will be nice to offer MAU billing along with directory sync to Team plan
in a future feature release.

<img width="635" alt="Screenshot 2024-03-31 at 8 49 01 AM"
src="https://github.com/firezone/firezone/assets/167144/4a309035-527b-4d4f-96d3-d5b8abeaa03b">
2024-04-07 09:26:05 -07:00
Jamil
703b397a86 chore(portal): Add Sign in from sign up form (#4529) 2024-04-05 20:18:55 -07:00
Andrew Dryga
e2ee6bbc5e chore(portal): Add users limit and use it as default limit for accounts (#4527)
A manual migration will be needed (run
`Domain.Ops.sync_pricing_plans()`) to sync the limits for all the
accounts.
2024-04-05 15:20:02 -06:00
Andrew Dryga
e8dc190879 Fix tests 2024-04-03 11:01:05 -06:00
Andrew Dryga
4bd692bc6c hotfix: Log Account ID on billing portal errors 2024-04-02 13:14:50 -06:00
Jamil
38a373a6b9 fix(portal): Correct Edit account page title and label (#4412)
Fixes #4411
2024-03-31 19:52:06 +00:00
Andrew Dryga
51afb4c227 fix(portal): Persist first user email to Stripe during account sign up (#4408) 2024-03-30 13:40:52 -06:00
Brian Manifold
f5bb02d36e refactor(portal): Move actor groups to own table in actor show page (#4392)
Why:

* When viewing an actor in the portal, all of the groups were listed in
the top info table. This works for a small number of groups, but becomes
difficult to use when an actor is in a large number of groups. This
commit moves that information to it's own `live_table` element so that
it's easier to parse and can be paginated.
2024-03-29 14:50:04 -06:00
Andrew Dryga
fe1a627f4b Create everyone group on account sign up (#4388) 2024-03-28 17:23:08 -06:00
Andrew Dryga
2cf63cb33a fix(portal): Serve static files with digests at root (#4386)
Closes #4384
2024-03-28 16:13:13 -06:00
Andrew Dryga
dc75a075b9 fix(porta): Greatly improve HTTP 500 error page (#4382)
<img width="1728" alt="Screenshot 2024-03-28 at 15 00 19"
src="https://github.com/firezone/firezone/assets/1877644/174c54c2-b958-416f-ad50-9c2af4103bfc">
2024-03-28 15:39:12 -06:00
Andrew Dryga
40864567f2 fix(portal): Filter group actors by group id (#4369)
Closes #4365
2024-03-28 15:28:08 -06:00
Brian Manifold
0a0746f463 style(portal): Update portal UI polish/consistency (#4367)
Why:

* This commit was not intended to be a sweeping UI change, but rather a
quick pass over the portal to make sure things were consistent and also
to update small UI elements that were discussed offline.
2024-03-28 18:47:16 +00:00
Andrew Dryga
35d0cd7701 chore(portal): Update Gateways deploy UI (#4352)
Closes #4019

<img width="1728" alt="Screenshot 2024-03-27 at 14 53 30"
src="https://github.com/firezone/firezone/assets/1877644/a2b8850e-49b7-4379-9851-5cb5453018d5">

<img width="1728" alt="Screenshot 2024-03-27 at 14 53 32"
src="https://github.com/firezone/firezone/assets/1877644/5b35c045-6db8-4522-bba8-794d68eae879">
2024-03-28 11:59:09 -06:00
Andrew Dryga
6f376eb6a6 chore(portal): Temporarily hide address description (#4351)
Closes #4250
2024-03-27 15:09:41 -06:00
Brian Manifold
ab35a5ea76 fix(portal): Fix bug in actor edit page preventing updates (#4347)
Why:

* A bug was present in the actor edit page that prevented updating an
actor due to managed and synced groups being sent as part of the form
submission. Along with that, if a user manually removed the managed
group(s) from the form submission, the actor being edited would be
removed from the managed group, which should not be allowed.

* There was also another small bug which prevent an admin actor from
being updated at all if they were the only admin in the account.
2024-03-27 13:20:13 -06:00
Andrew Dryga
55935428b3 fix(portal): Allow deleting synced actors after all identities are removed (#4346) 2024-03-27 13:18:03 -06:00
Andrew Dryga
21d2ca358b fix(portal): Fix pagination issues with flows and activities, improve error handling around live tables (#4330)
Fixes issues from logs.
Closes #4274 and similar issues for activities.
Simplifies error handling for live tables (we just reset filters with a
message when they are invalid because just showing an error 422 is not
actionable).
2024-03-27 13:03:19 -06:00
Gabi
24e0641871 chore: set rust log level to info for gateways and client (#4319)
- [x] Updated log level string for client and gateways to info or higher
- [x] Update logs to hide DNS information

I also removed `hickory_resolve` errors which could contain sensitive
info from our general error and hide the logs that specifically relates
to them.

@bmanifold double checking that the log levels in the gateway's `*.tf`
files are just used for our own gateways.

Also, the relays still have `debug`, since only we see that I think that
makes sense but double checking with @jamilbk

Fixes: #3618.

---------

Signed-off-by: Gabi <gabrielalejandro7@gmail.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-03-27 01:39:12 +00:00
Andrew Dryga
4844422a31 Fix online status on clients page (#4307)
Closes #4271
2024-03-25 14:00:42 -06:00
Andrew Dryga
1cb6ab6dc4 chore(Portal): Remove simple forms, change navbar links, fix form styles (#4239)
Closes #4237
Closes #2015

There are new links in the navbar and the floating status badge is
replaced with a link in the burger menu too:


https://github.com/firezone/firezone/assets/1877644/2d72f6d7-a14a-4e56-808d-2e703eca158a
2024-03-25 10:24:24 -06:00
Brian Manifold
f5286d0927 feat(portal): Add styled errors pages (404, 422, 500) (#4231)
Closes #2136 

## Screenshots for `404` and `500`

<img width="781" alt="Screenshot 2024-03-20 at 1 16 46 PM"
src="https://github.com/firezone/firezone/assets/2646332/e08e338f-b5b5-4a6a-adb8-b53fe9e8e137">

<img width="916" alt="Screenshot 2024-03-20 at 1 16 30 PM"
src="https://github.com/firezone/firezone/assets/2646332/e19238bf-804d-4f60-bbb3-8cf3f4c89d1f">
2024-03-22 15:26:00 +00:00
Andrew Dryga
8195ac1893 feat(portal): Sync accounts between stripe and portal (#4173)
Closes #3888
2024-03-20 16:32:07 -06:00
Andrew Dryga
392adc9e45 fix(portal): Fix various issues with presence-triggered table reloads (#4228)
Also, cover that code with tests.
2024-03-20 14:35:52 -06:00
Andrew Dryga
a339828570 chore(portal): DRY live table error handling and handle errors via page reloads (#4205)
I also added whole bunch of tests for the live tables.

Closes #4189
2024-03-19 12:26:41 -06:00
Andrew Dryga
370a45571c Track protocol in activities (#4215)
Closes #4046
Closes #3026
2024-03-19 12:26:12 -06:00
Andrew Dryga
09dbd70dc5 chore(infra): Use Regional Instance Group in the GCP NAT example (#4183)
This example will work once our latest gateway is pushed to GitHub
Container Registry, but to test it for now a few overrides can be added
to the `main.tf` to use our Google Artifact Registry and local module
instead:
```diff
module "gateways" {
--  source = "github.com/firezone/firezone/terraform/modules/google-cloud/apps/gateway-region-instance-group"
++  source = "../../../modules/google-cloud/apps/gateway-region-instance-group"
...
++  container_registry = "us-east1-docker.pkg.dev"
++  image_repo         = "firezone-prod/firezone"
++  image              = "gateway"
}
```

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Signed-off-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-03-19 08:44:14 -06:00
Andrew Dryga
24dc7be6bb Hotfix disabled sign up message 2024-03-18 22:12:08 -06:00
Andrew Dryga
5a0aff1d75 chore(portal): Re-enable Finch as API client for Swoosh (#4197)
Blocked by https://github.com/swoosh/swoosh/issues/881
2024-03-18 17:49:16 -06:00
Andrew Dryga
62df3fb89c Stop using Finch as Swoosh http client 2024-03-18 08:56:05 -06:00
Andrew Dryga
7e3271c205 fix(portal): Start finch pool for swoosh 2024-03-18 08:28:20 -06:00
Brian Manifold
2c7f45cc99 feat(portal): Add sign up override in portal (#3739)
Why:

* In order to allow easy testing of billing / Stripe integration, the
staging environment needs to allow members of the Firezone team access
to create new accounts, while disallowing the general public to create
accounts. The account creation override functionality allows for
multiple domains to be set by ENV variable by passing a comma separated
string of domains.

---------

Co-authored-by: Andrew Dryga <andrew@dryga.com>
2024-03-17 18:12:25 -06:00
Andrew Dryga
cd7cb8f2a9 chore(portal): Fix some typos (#4184)
@bmanifold fixed a few instances in #3739 but I went ahead and replaced
all of them, once we merge it and rebase #3739 on top of it the diff
should be minimal.
2024-03-17 17:33:30 -06:00
Andrew Dryga
f3c8c734ab feat(portal): Filtering, Fulltext Search, Pagination, Preloads (#3751)
On the domain side this PR extends `Domain.Repo` with filtering,
pagination, and ordering, along with some convention changes are
removing the code that is not needed since we have the filtering now.
This required to touch pretty much all contexts and code, but I went
through all public functions and added missing tests to make sure
nothing will be broken.

On the web side I've introduced a `<.live_table />` which is as close as
possible to being a drop-in replacement for the regular `<.table />`
(but requires to structure the LiveView module differently due to
assigns anyways). I've updated all the listing tables to use it.
2024-03-16 13:27:48 -06:00
Andrew Dryga
a85b9ab185 chore(infra): Deploy domain app on a separate instance and enable background jobs on it (#4160)
Closes #3801
2024-03-16 08:58:20 -06:00
Andrew Dryga
7fd3d1a6b1 fix(portal): Increase group name max length (#4128)
Fixes
https://firezonehq.slack.com/archives/C05JUKPT83T/p1710324078226719
2024-03-13 12:38:09 -06:00
Andrew Dryga
f52bcc3e37 fix(portal): Prevent invalid characters when entering account slug at sign in (#3917) 2024-03-11 10:38:17 -06:00
Jamil
c364004e97 fix(portal): Fix broken link to DNS docs (#4036) 2024-03-07 19:33:12 +00:00
Jamil
6419b1d096 chore(portal): Fix static files (#3974)
Fixes issues with static files returning 404s
2024-03-05 17:43:14 +00:00
dependabot[bot]
4664f05cb2 build(deps): Bump @fontsource/source-sans-3 from 5.0.18 to 5.0.19 in /elixir/apps/web/assets (#3947)
Bumps
[@fontsource/source-sans-3](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/source-sans-3)
from 5.0.18 to 5.0.19.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/fontsource/font-files/commits/HEAD/fonts/google/source-sans-3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@fontsource/source-sans-3&package-manager=npm_and_yarn&previous-version=5.0.18&new-version=5.0.19)](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-03-05 15:03:28 +00:00
Jamil
8c59ff7aa1 refactor: Reduce log levels for production releases to avoid filling customer's… (#3899)
Tuning the logging down a bit on our production releases. Prevents
gathering data we don't need to be gathering and prevents filling up
drive space with debug logs.

refs #3618
2024-03-03 17:42:09 -08:00
dependabot[bot]
67cf605d3d build(deps): Bump flowbite from 2.2.1 to 2.3.0 in /elixir/apps/web/assets (#3846)
Bumps [flowbite](https://github.com/themesberg/flowbite) from 2.2.1 to
2.3.0.
<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.3.0</h2>
<ul>
<li>added new <a
href="https://flowbite.com/docs/components/clipboard/">copy to
clipboard</a> component and examples</li>
<li>added new JavaScript tab to the documentation examples</li>
<li>update dependency to Tailwind CSS v3.4.1</li>
<li>fixed carousel component behavior when there’s only one image</li>
<li>added new data attribute to set active and inactive classes for
tabs</li>
<li>Ruby on Rails integration fix for turbo load</li>
<li>minor bug fixes and improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7941f8bb79"><code>7941f8b</code></a>
docs(README): add new clipboard component to readme</li>
<li><a
href="e4f9f16aae"><code>e4f9f16</code></a>
fix(clipboard): target element can be input element too</li>
<li><a
href="5cd600a348"><code>5cd600a</code></a>
feat(changelog): add Ruby on Rails fix mention</li>
<li><a
href="fdf9bfe52a"><code>fdf9bfe</code></a>
chore(versioning): bump all version instances to
<code>v2.3.0</code></li>
<li><a
href="bfbf97db7b"><code>bfbf97d</code></a>
chore(package): update keywords and name</li>
<li><a
href="52ed4101a0"><code>52ed410</code></a>
Merge pull request <a
href="https://redirect.github.com/themesberg/flowbite/issues/804">#804</a>
from themesberg/fix-inconsistencies</li>
<li><a
href="06778c3906"><code>06778c3</code></a>
fix(modals): replace old alternative buttons with the new ones to have
consis...</li>
<li><a
href="bcb1dbf990"><code>bcb1dbf</code></a>
refactor(input fields): add maximum width to search and select
inputs</li>
<li><a
href="03667ef73a"><code>03667ef</code></a>
fix(input-forms): fix bg-color &amp; text-color on:dark for &quot;Form
validation&quot; inp...</li>
<li><a
href="3179d1ffa8"><code>3179d1f</code></a>
fix(forms): toggle switch typo</li>
<li>Additional commits viewable in <a
href="https://github.com/themesberg/flowbite/compare/v2.2.1...v2.3.0">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.2.1&new-version=2.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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01 15:37:24 +00:00
Andrew Dryga
7e9a824870 Fix preloads after token is revoked 2024-03-01 10:07:51 -06:00
Jamil
6d32e30133 fix(docs): Add DNS docs for Linux (#3810)
Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-02-29 21:12:24 +00:00
Andrew Dryga
3c04025be1 fix(portal): Fix IdP syncs (#3816) 2024-02-29 15:19:53 -06:00
Jamil
b9ad2d9c83 fix(portal): Use local image for logo path (#3814)
I saw the link fix, but it might be better to have the image served
locally from the product to keep the website and product decoupled.
2024-02-29 20:22:06 +00:00
Andrew Dryga
f429fd673b Fix GCP logo URL 2024-02-29 10:16:28 -06:00
Jamil
cea7784730 feat: Release 1.0.0-pre.9 (#3579)
This is a staging issue to update docs, website, and perform
infrastructure changes as part of the `1.0.0-pre.9` release.

- [ ]
https://firezonehq.slack.com/archives/C04HRQTFY0Z/p1707763144588859
- [ ] Explain that `Everyone` group is now automatic
- [ ] Migrate existing `sites.routing` data to use managed relays,
explain to customers
- [ ] Manually test gateway upgrade script
- [x] Better client docs

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
Co-authored-by: Brian Manifold <bmanifold@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gabi <gabrielalejandro7@gmail.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-02-28 22:23:29 +00:00
Jamil
127b97e588 fix(portal|website): Fix static paths for website and elixir (#3802)
Phoenix VerifiedRoutes expects directories for `statics` where we were
passing filenames too.

These are removed since they're not required -- all of the top level
files we need to serve at the root don't need VerifiedRoutes.

For the website, the files were named incorrectly.


The above issues were causing 404s on both the website and portal.
2024-02-28 20:03:42 +00:00
Andrew Dryga
9e11ddb1cd Do not crash on disconnect messages in LV (#3795)
This message is sent by the some of the broadcasters and it was
resulting in a process crash (on a socket that will be disconnected
anyways), but this triggered our logging alerts anyways. So we will
simply ignore them globally to suppres the noise.
2024-02-28 11:42:07 -06:00