Commit Graph

297 Commits

Author SHA1 Message Date
Brian Manifold
3edbbfc8a2 fix(portal): Fix placement of 'sign-in w/ providers' heading (#6106)
Small UI/UX change. The 'Sign in with a configured provider' header was
always being shown, even if the account didn't have an OIDC provider
configured (i.e. all new accounts)

### Before
<img width="607" alt="Screenshot 2024-07-31 at 11 17 29 AM"
src="https://github.com/user-attachments/assets/e6d6d79d-509d-4d29-a051-7d836aa5b720">

### After
<img width="593" alt="Screenshot 2024-07-31 at 12 21 58 PM"
src="https://github.com/user-attachments/assets/db02979a-12b6-4620-b84c-0309931a6b52">

<img width="696" alt="Screenshot 2024-07-31 at 12 18 35 PM"
src="https://github.com/user-attachments/assets/db2b94b1-05e1-4f81-a2c5-e2befb19957e">
2024-07-31 16:42:40 +00:00
Brian Manifold
edc80129c8 feat(portal): Add REST API closed beta page (#6027)
Why:

* Before the REST API is release to all Firezone users a closed beta
program will be run. Rather than blurring out the API Clients page for
users that are not apart of the closed beta program, a 'beta' page will
be shown that will allow users to request access to the closed beta.
Once the REST API is released to all accounts, all of this can be
removed.

Closes: #5920 

### Screenshot
<img width="1445" alt="Screenshot 2024-07-24 at 6 55 36 PM"
src="https://github.com/user-attachments/assets/a09591bc-190c-4bd4-9716-9a74a0f09e0a">
2024-07-29 22:06:59 +00:00
Jamil
2b8ec89ec5 fix(ui): Center account name (#6053) 2024-07-25 13:23:52 -07:00
Jamil
6bed7ed4c1 fix(ux): Improve styling of sign in / sign up pages (#6036)
- Use consistently-sized titles and spacing for form sections
- Use larger and centered hero logo to match Welcome screen in client
apps
- If more than one action exists, use `style=info` instead of showing
multiple primary CTA buttons

Fixes #5730 
Fixes a regression that was originally fixed in #3390 
refs #5032 

## Before

<img width="1159" alt="Screenshot 2024-07-24 at 11 38 29 PM"
src="https://github.com/user-attachments/assets/a5261982-4975-4a8c-a30b-4d136a3b9b0f">
<img width="1159" alt="Screenshot 2024-07-24 at 11 38 21 PM"
src="https://github.com/user-attachments/assets/49a8d0c0-0753-4bfb-98db-c0654a3e4805">
<img width="1159" alt="Screenshot 2024-07-24 at 11 38 17 PM"
src="https://github.com/user-attachments/assets/9ef8f105-d3f6-4b36-8e9f-d05296c5b3e1">


## After

<img width="1159" alt="Screenshot 2024-07-24 at 11 32 19 PM"
src="https://github.com/user-attachments/assets/85535cdb-a2d2-4002-a742-8a99f24cd465">
<img width="1159" alt="Screenshot 2024-07-24 at 11 32 15 PM"
src="https://github.com/user-attachments/assets/3bf7bc55-fb8e-45c4-88aa-03a22f999426">
<img width="1159" alt="Screenshot 2024-07-24 at 11 32 10 PM"
src="https://github.com/user-attachments/assets/535de033-02ab-45c1-906e-180fdeabf03d">
2024-07-25 19:40:10 +00:00
Jamil
4839d8821c fix(ux): Make 'New' page title consistent (#6040)
Fixes a couple items missed from #5938
2024-07-25 08:03:03 -07:00
Jamil
881377cbe2 fix(ux): Redirect to policies/new after creating Resource (#5938)
Fixes a UX issue somewhat introduced by
https://github.com/firezone/firezone/pull/5870 where we changed behavior
to make the redirect consistent with other CRUD operations.

The behavior we had prior to
https://github.com/firezone/firezone/pull/5870 was to redirect to
Resource show, but feedback from customer (which makes sense) is that
you almost _always_ create a Policy after creating a Resource, so this
PR streamlines the hot path flow there.

This has occurred to a couple users in Discord as well, so by taking
them directly to policies/new it hopefully make clear the user needs to
create a Policy after creating a Resource.

This papercut occurred while customer was demo'ing Firezone to another
potential customer.

Fixes #5929 

cc @jameswinegar
2024-07-24 15:43:31 -07:00
Andrew Dryga
40748306ca fix(portal): Use modal for confirmation dialogs (#5833)
Still need to replace a few more `data-confirm` actions (have an issue
with HTML <dialog> positioning when it's defined inside Tailwind
tables.)

Closes https://github.com/firezone/firezone/issues/5794
Closes #5766
Closes #5887

---------

Signed-off-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-24 16:29:53 -06:00
Jamil
bfa410f7df docs: Make it more clear that synced users have User role (#5934)
Fixes #5906
2024-07-24 17:21:46 +00:00
Jamil
b9af724944 fix(ux): Improve resource creation form and traffic filters (#5983)
- Adds `radio_button_group` to style radio buttons as big buttons
- Tweaks `inline_errors` so that `w-full` doesn't apply; this fixes the
input width from jumping when errors pop up
- Fixes #4979 
- Fixes #5239 


<img width="1616" alt="Screenshot 2024-07-23 at 5 45 12 PM"
src="https://github.com/user-attachments/assets/847c7a80-4cb6-4c4b-9095-1e7a08be479f">
2024-07-24 05:19:33 +00:00
Brian Manifold
2b93361719 refactor(portal): Temporarily remove time based policy conditions (#5981)
This PR temporarily removes the time based policy conditions. This is
only until #5861 is finished.

Closes #5979
2024-07-24 05:09:59 +00:00
Jamil
2f016a84d6 feat: add platform status link to 500 page (#5937)
Fixes #5933
2024-07-24 04:52:56 +00:00
Jamil
6ae494904e docs: Update 'user guides' -> 'client apps' (#5940)
- This terminology / naming makes things more clear for most
admins/users.
- Fixes layout of /kb/client-apps to align better

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Not Applicable <ReactorScram@users.noreply.github.com>
2024-07-23 14:04:07 +00:00
Jamil
286ca77725 fix(ux): Rename Magic Link to Email (OTP) (#5939)
Fixes #5927 

See https://www.firezone.dev/kb/authenticate/email


<img width="1258" alt="Screenshot 2024-07-21 at 11 29 59 AM"
src="https://github.com/user-attachments/assets/07d5596f-b74c-4bc7-91df-3565ae552f15">
2024-07-22 02:42:58 +00:00
Jamil
f0b4ce45a2 fix(portal): Disable submit button for synchronous forms upon submit (#5882)
https://github.com/user-attachments/assets/3b7153c5-4c08-470b-9258-fadc08a12be8


The `cursor-wait` graphic is corrupted due to a Quicktime recording bug,
but it's working live.

Fixes #5881
2024-07-18 18:19:20 +00:00
Jamil
0e2a13148f fix(portal): redirect back to resources / sites after edit (#5870)
- Updates `new` and `edit` flows to redirect back to sites or resources
after save
- Adds flash message pertaining to the above

Fixes #5776
2024-07-16 16:10:21 +00:00
Jamil
6003f2b424 fix(portal): Clarify label (#5774)
Label isn't quite accurate
2024-07-07 23:02:04 +00: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
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
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
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
Jamil
eaf981597b fix(gateway): Add default RUST_LOG level to Docker-deployed Gateways (#5639)
This has been an issue for some time(!)

Fixes #5141
2024-06-30 00:41:19 +00:00
Andrew
a5a60d253e Bump constant time for welcome emails 2024-06-26 12:54:17 -06:00
Andrew Dryga
40d7889dd1 fix(portal): Adopt LiveView 1.0 breaking changes (#5549)
Closes https://github.com/firezone/firezone/issues/5545
2024-06-25 13:30:46 -06:00
Jamil
a0bfe9070c fix(portal): fix search box width (#5518)
I was taking screenshots and needed to fix this text.

## before
<img width="257" alt="Screenshot 2024-06-24 at 1 00 07 PM"
src="https://github.com/firezone/firezone/assets/167144/a6ed1603-2f77-4469-abfa-4b8c17d09863">

## after

<img width="274" alt="Screenshot 2024-06-24 at 12 59 55 PM"
src="https://github.com/firezone/firezone/assets/167144/95fbafc6-085c-45ad-9f7a-f5a2c9b57430">
2024-06-24 20:22:28 +00:00
Andrew Dryga
52d1b07a2a chore(portal): Bump Alpine to 3.20, Erlang/OTP to 27 and Elixir to 1.17 (#5349)
Two blocking issues:
-
57470a1229
to be released (its used by WorkOS package; I think in future we should
contribute to them replacing that with Finch or Req);
- https://github.com/elixir-cldr/cldr_calendars/issues/19
2024-06-24 12:27:19 -06:00
Jamil
0316f480d6 refactor: Add icons to policy conditions (#5486)
As I was taking screenshots of the new policy conditions feature I
realized it would be quick and easy to add icons corresponding to the
titles to continue the theme of adding visual hints to break up the
text-heavy sections.

It also looks nice in the screenshots for the blog post and newsletter
posts.

<img width="669" alt="Screenshot 2024-06-21 at 10 00 14 AM"
src="https://github.com/firezone/firezone/assets/167144/61d5d61d-4d4c-4f6f-b325-dbcb81c2c9b7">
2024-06-21 21:01:26 +00:00
Andrew Dryga
ecf3944848 fix(portal): Rate limit outbount emails (#5455) 2024-06-19 20:23:37 -06:00
Jamil
8d74f2ae8e fix(portal): Fix Enum.find_value to extract actor name in confirmation dialog (#5430)
Fixes #4884 
Fixes #5425
2024-06-19 16:47:11 +00:00
Jamil
11d76c4941 docs: Add JumpCloud SSO + sync docs (#5390)
Adds a step-by-step guide for setting up the new JumpCloud connector and
optionally directory sync.

Fixes #4950
2024-06-18 19:38:03 +00:00
Andrew Dryga
37f078c379 fix(portal): Verify email in constant time and sign it's value to prevent text injection (#5418)
You still can generate a link that will inject a text as long as it has
`@` in it - there is no good ways to validate emails other than just
check for that. The only *reliable* ways to fix that is to either remove
that text (making users more confused) or only show it if identity was
found (leaking the fact of it's existence).
2024-06-18 13:42:52 -06:00
Jamil
c1d68340a7 fix(portal): Fix all website links in product (#5401)
Adds a dedicated `anchor` attr to the `website_link` component because
the order of components in a URL must be `/path?params#anchor`.
2024-06-17 17:59:43 +00:00
Jamil
27e6672a5d fix(portal): Make Conditions label color match other labels (#5389)
Very minor thing I noticed today.
2024-06-17 14:05:05 +00:00
Andrew Dryga
526f9ca269 fix(portal): Fix various production bugs with IdPs (#5342)
Closes #5335
2024-06-12 20:01:51 -06:00
Jamil
e2d5ae5cac fix(portal): Fix nil error for address_description (#5346)
We try to parse `address_description` as a link on the resources/show
page, but it can be nil.
2024-06-12 18:54:48 -07:00
Jamil
fd3d66293c feat(portal): Enable address_description field to provide hint for accessing Resources in Clients (#5273)
Fixes #5270 

- Relaxes the `NOT NULL` constraint because in Clients we already
account for empty address descriptions (by showing the address in its
place if missing). We may want to simply hide the Resource altogether if
the description is missing (based on user feedback). With a blank field,
we can differentiate between not entered vs entered an address.
- Updates help text a bit

```[tasklist]
- [x] Update docs with examples
```

<img width="772" alt="Screenshot 2024-06-06 at 12 01 48 PM"
src="https://github.com/firezone/firezone/assets/167144/523aa0ff-f30d-44cb-bb3c-5d5cda7236e6">

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-06-12 16:21:56 +00:00
Jamil
77d979e67b fix(portal): fix email sent flash when using oidc (#5128) (#5267)
For oidc users, `provider_identifier` is an id and not the email of the
user.

Contributed by @Intuinewin

---------

Co-authored-by: Antoine <antoinelabarussias@gmail.com>
2024-06-12 16:21:30 +00:00
Brian Manifold
26d8f7eab3 feat(portal): Add WorkOS/JumpCloud integration (#5269)
Why:

* JumpCloud directory sync was requested from customers. JumpCloud only
offers the ability to use it's API with an admin level access token that
is tied to a specific user within a given JumpCloud account. This would
require Firezone customers to give an access token with much more
permissions that needed for our directory sync. To avoid this, we've
decide to use WorkOS to provide SCIM support between JumpCloud and
WorkOS, which will allow Firezone to then easily and safely retrieve
JumpCloud directory info from WorkOS.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-06-12 15:45:33 +00:00
Jamil
8700a680d5 chore: Bump versions to point to new artifacts (#5337)
Currently dl links are broken due to the updated format.
2024-06-12 00:01:59 -07:00
Jamil
2e436f7f77 chore(portal): Fix policy creation for conditions disabled; tweak design (#5301)
- Fixes policy creation when `policy_conditions` is disabled
- Updates design so that items are a little more aligned and text has
more / consistent spacing around.



https://github.com/firezone/firezone/assets/167144/b9c29110-ae1c-4841-b999-a0da022f4a38



Test is failing though. Before sinking more time into this I wanted to
open this PR to get @AndrewDryga's input.
2024-06-11 11:41:06 -07:00
Andrew Dryga
650d7d7998 feat(portal): Add Policy conditions (#5144)
Now policies can have additional conditions based on Client location
(country or IP range), IdP provider used for sign in or the current time
of the day at a given timezone. This covers use cases where employees
can access the production system only from certain countries (states can
be added later) or when contractors can only access internal tools
during working hours.

Closes https://github.com/firezone/firezone/issues/4743
Closes #4742
Closes #4741
Closes #4740


<img width="1728" alt="Screenshot 2024-05-31 at 13 50 53"
src="https://github.com/firezone/firezone/assets/1877644/55f509f2-0f49-4edb-8c03-7a5a6d884ccc">
<img width="1728" alt="Screenshot 2024-05-31 at 13 50 56"
src="https://github.com/firezone/firezone/assets/1877644/756bb03f-4024-4978-ac85-6daa918ae037">
<img width="1728" alt="Screenshot 2024-05-31 at 13 51 01"
src="https://github.com/firezone/firezone/assets/1877644/cf159a86-077f-4ada-9952-9e8d399d0dc1">
<img width="1728" alt="Screenshot 2024-05-31 at 13 51 03"
src="https://github.com/firezone/firezone/assets/1877644/c070719e-2d4b-41bd-ad03-430baf2dbe9b">
<img width="676" alt="Screenshot 2024-05-31 at 14 56 06"
src="https://github.com/firezone/firezone/assets/1877644/435a4951-479d-4371-99c4-29a055348175">
2024-06-09 12:46:35 -06:00
Jamil
ba6685e2f2 fix(ux): Align filters horizontally on md breakpoints and higher (#5265)
Fixes #5231 
Fixes #5232 


<img width="636" alt="Screenshot 2024-06-05 at 7 26 19 PM"
src="https://github.com/firezone/firezone/assets/167144/8e40ba37-9757-4f83-98ad-24c61efbad36">
<img width="1792" alt="Screenshot 2024-06-05 at 7 26 11 PM"
src="https://github.com/firezone/firezone/assets/167144/eca5084b-ce35-4df6-bb30-474811944ea2">
<img width="720" alt="Screenshot 2024-06-05 at 7 26 03 PM"
src="https://github.com/firezone/firezone/assets/167144/c3eccdba-b3c0-467a-91c0-5197e2a74ed6">

<img width="1791" alt="Screenshot 2024-06-05 at 7 32 16 PM"
src="https://github.com/firezone/firezone/assets/167144/64d417e3-cf74-4f20-9cf5-22b7c0cd620c">
<img width="748" alt="Screenshot 2024-06-05 at 7 32 07 PM"
src="https://github.com/firezone/firezone/assets/167144/11cd2f3a-f8ee-4098-bad9-ab21fd6c000c">
<img width="1792" alt="Screenshot 2024-06-05 at 7 31 50 PM"
src="https://github.com/firezone/firezone/assets/167144/c601eec9-956b-4229-a1c4-484c4bca5001">
<img width="1792" alt="Screenshot 2024-06-05 at 7 31 48 PM"
src="https://github.com/firezone/firezone/assets/167144/2bd2c61a-e39b-4215-8e76-b7b3835dd5aa">
<img width="1792" alt="Screenshot 2024-06-05 at 7 31 43 PM"
src="https://github.com/firezone/firezone/assets/167144/c06d431d-37c1-4ca1-8ab2-67a879cf609b">
2024-06-06 20:01:45 +00:00
Jamil
c26869cf34 fix(ux): Use icon sizes consistent with text size (#5256)
Fixes #5229 

<img width="303" alt="Screenshot 2024-06-05 at 9 54 29 AM"
src="https://github.com/firezone/firezone/assets/167144/b234ba01-b0e2-4d6b-ab49-48f90933f4de">
<img width="282" alt="Screenshot 2024-06-05 at 9 54 24 AM"
src="https://github.com/firezone/firezone/assets/167144/126b35d6-ba39-45a0-b828-48ea50f450f5">
2024-06-06 13:12:15 +00:00
Jamil
bafa9e0625 fix(ux): Prevent <Enter> from submitting filters forms (#5213)
Fixes #5211
2024-06-06 12:48:38 +00:00
Jamil
9db3518e76 fix(ux): Remove some padding around vertical_table (#5260)
# Before

<img width="616" alt="Screenshot 2024-06-05 at 2 08 20 PM"
src="https://github.com/firezone/firezone/assets/167144/90935c5e-3e19-499c-afdc-764280b8a306">


# After
<img width="522" alt="Screenshot 2024-06-05 at 2 11 58 PM"
src="https://github.com/firezone/firezone/assets/167144/8e22b64f-6169-4e98-9408-d796f690f3c8">

Fixes #5228

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-06-06 11:49:22 +00:00
Jamil
402be27802 fix(ux): Adjust table column widths and overflow badges by truncating them (#5258)
Fixes #5230 
Fixes #5244
Fixes #5233 
Fixes #5245 
Fixes #5247 
Fixes #5237 
Fixes #5235 
Fixes #5252 

Updates the sidebar to collapse at the `xl` breakpoint, allowing to stay
closed for more screen realestate on smaller screens.

<img width="879" alt="Screenshot 2024-06-05 at 1 06 49 PM"
src="https://github.com/firezone/firezone/assets/167144/ff864e57-ba6b-42ee-bdf5-f6b046e46717">

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-06-05 23:19:33 +00:00
Jamil
0a22589c9e fix(ux): consistent pagination size of 10 (#5255)
Fixes #5226
2024-06-05 21:31:55 +00:00
Jamil
352b3865bf fix(ux): Settings linebreak (#5254)
Fixes #5253 
<img width="463" alt="Screenshot 2024-06-05 at 8 23 31 AM"
src="https://github.com/firezone/firezone/assets/167144/878f8be7-2cbc-4b8c-b2c8-41a6926f7e2a">
2024-06-05 15:39:39 +00:00
Reactor Scram
55834e9e79 docs(gateway): make portal and KB consistent (#5166)
Closes #5149
2024-05-31 17:40:28 +00:00