Commit Graph

390 Commits

Author SHA1 Message Date
Brian Manifold
4dde7293d5 fix(portal): Fix show page errors when entity was created by API (#7002)
Why:

* A handful of 'show' pages were throwing errors for entities created
using the API. The reason was due to the fact that the
`created_by_actor` was not being preloaded and when the details on the
show page were being rendered. This commit updates the various pages to
preload the `created_by_actor` to allow for both API created entities
and UI created entities.
2024-10-10 15:44:53 +00:00
Brian Manifold
928fab3878 fix(portal): Fix minor UI issues on API Clients show page (#6955)
- Updated revoke button colors and icons.
- Updated the 'Created By' to use a helper function to get an email
address rather than using the provider_identifier which may be a random
string depending on the type of provider the identity was created under.
- Added a link to the actor that created the API token

### Screenshot of updated view
<img width="1168" alt="Screenshot 2024-10-07 at 1 11 43 PM"
src="https://github.com/user-attachments/assets/80444815-f045-49db-b570-dc9dc58c33d2">

Closes #6269
2024-10-08 14:40:40 +00:00
Andrew Dryga
34f42cb761 feat(portal): Accept hardware identifier fields and reset verification when they are changed (#6914)
If previous value is **null then** a new value is persisted and
verification is **not removed**.
If previous value is **not null** then a new value is persisted and
verification is **removed**.

<img width="957" alt="Screenshot 2024-10-02 at 4 59 58 PM"
src="https://github.com/user-attachments/assets/302208ca-3693-40f7-a08a-4521b7c0df05">

---------

Signed-off-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-10-04 01:02:55 -06:00
dependabot[bot]
27469d17d7 build(deps): Bump flowbite from 2.5.1 to 2.5.2 in /elixir/apps/web/assets (#6885)
Bumps [flowbite](https://github.com/themesberg/flowbite) from 2.5.1 to
2.5.2.
<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.5.2</h2>
<ul>
<li>release new <a
href="https://flowbite.com/docs/plugins/wysiwyg/">WYSIWYG text
editor</a> component</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5c8df35e2b"><code>5c8df35</code></a>
docs(readme): add wysiwyg to readme</li>
<li><a
href="26cb313102"><code>26cb313</code></a>
Merge pull request <a
href="https://redirect.github.com/themesberg/flowbite/issues/971">#971</a>
from themesberg/wysiwyg</li>
<li><a
href="933b112fef"><code>933b112</code></a>
chore(wysiwyg) update to <code>v2.5.2</code></li>
<li><a
href="7aa2a6b366"><code>7aa2a6b</code></a>
feat(wysiwyg): finish the component</li>
<li><a
href="e799dc286e"><code>e799dc2</code></a>
feat(wysiwyg): add toggle buttons</li>
<li><a
href="30f5133ec3"><code>30f5133</code></a>
feat(wysiwyg): add next and prev cell navigation butoons</li>
<li><a
href="6e4cb24cf8"><code>6e4cb24</code></a>
feat(wysiwyg): set styles for currently selected cells</li>
<li><a
href="3d3261d3af"><code>3d3261d</code></a>
feat(wysiwyg): delete table feature and organise buttons</li>
<li><a
href="8270c05898"><code>8270c05</code></a>
feat(wysiwyg): add column and row behaviour actions</li>
<li><a
href="145f5617fb"><code>145f561</code></a>
docs(wysiwyg): write js behaviour docs</li>
<li>Additional commits viewable in <a
href="https://github.com/themesberg/flowbite/compare/v2.5.1...v2.5.2">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.5.1&new-version=2.5.2)](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-10-02 18:08:53 +00:00
Andrew Dryga
14544b27cc feat(portal): Allow connection-time conditions for internet resources (#6899)
Closes #6848
2024-10-01 16:10:17 -06:00
Jamil
b298e79d06 fix(portal): Minor UI consistency fixes for resource/group select (#6860)
- [x] Spacing consistency
- [x] Border radius consistency
- [x] Minor grammar
- [x] Dismiss select when item is selected
- [x] Add shadow to stand out from rest of form
- [x] Prevent from opening when disabled
- [x] Use `cursor-not-allowed` when disabled for consistency with other
form elements


Before


<img width="670" alt="Screenshot 2024-09-27 at 5 01 38 PM"
src="https://github.com/user-attachments/assets/79e3a4c6-4d23-4edd-93b2-149acc58c37b">



After


<img width="677" alt="Screenshot 2024-09-27 at 5 11 48 PM"
src="https://github.com/user-attachments/assets/e1453c05-fed7-4d87-a176-6f6ce1267488">

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Andrew Dryga <a@firezone.dev>
2024-10-01 16:14:45 +00:00
Andrew Dryga
c2b8633914 feat(portal): Allow searching for resources and groups while creating and editing policies (#6840)
Closes #4186

Video: 

![demo](https://github.com/user-attachments/assets/c11870f5-b512-4ee1-8c48-ab292f1ff8ea)
2024-09-27 13:54:42 -06:00
Jamil
4c6a64defe fix(portal): Fix order of desc and name (#6796)
Updated to match the precedent set by `new`
2024-09-20 13:50:54 -07:00
Andrew Dryga
0d6c15c787 fix(portal): Do not break Flowbite popovers on DOM patching (#6787)
Closes [#6682](https://github.com/firezone/firezone/issues/6682)
2024-09-19 16:09:38 -06:00
Andrew Dryga
3187c70fb5 fix(portal): Fix flakiness with resource edit UI (#6762) 2024-09-18 14:26:47 -06:00
Andrew Dryga
3652839b1a feat(portal): Allow updating policies and resources (#6690)
Now you can "edit" any fields on the policy, when one of fields that
govern the access is changed (resource, actor group or conditions) a new
policy will be created and an old one is deleted. This will be
broadcasted to the clients right away to minimize downtime. New policy
will have it's own flows to prevent confusion while auditing. To make
experience better for external systems we added `persistent_id` that
will be the same across all versions of a given policy.

Resources work in a similar fashion but when they are replaced we will
also replace all corresponding policies.

An additional nice effect of this approach is that we also got
configuration audit log for resources and policies.

Fixes #2504
2024-09-18 13:06:05 -06:00
Jamil
06e9be62f5 fix(ci): Wait for Sign out link to appear in Elixir acceptance test (#6753)
Maybe this will fix?


https://github.com/firezone/firezone/actions/runs/10923163418/job/30319126211?pr=6750
2024-09-18 10:02:48 -06:00
Brian Manifold
716623a993 feat(portal): Add IDP sync error email notifications (#6483)
This adds a feature that will email all admins in a Firezone Account
when sync errors occur with their Identity Provider.

In order to avoid spamming admins with sync error emails, the error
emails are only sent once every 24 hours. One exception to that is when
there is a successful sync the `sync_error_emailed_at` field is reset,
which means in theory if an identity provider was flip flopping between
successful and unsuccessful syncs the admins would be emailed more than
once in a 24 hours period.

### Sample Email Message
<img width="589" alt="idp-sync-error-message"
src="https://github.com/user-attachments/assets/d7128c7c-c10d-4d02-8283-059e2f1f5db5">
2024-09-18 15:29:50 +00:00
Jamil
f37087808d docs: Update docs to use service account for sync for Google Workspace (#6706)
- Updates docs to show steps for configuring service account for sync
- Minor fixes to the in-portal instructions


Fixes #6489
2024-09-16 23:47:21 +00:00
Jamil
a729d364c9 docs: Add clarified instructions regarding setting up the Internet resource (#6705)
Fixes some UX issues seen by customers.
2024-09-16 23:37:40 +00:00
Andrew Dryga
ab3e42b1b4 fix(portal): Do not show billing limits when they are empty (#6677) 2024-09-13 14:00:26 -06:00
dependabot[bot]
83b330a9f8 build(deps): Bump @fontsource/source-sans-3 from 5.0.20 to 5.1.0 in /elixir/apps/web/assets (#6687)
Bumps
[@fontsource/source-sans-3](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/source-sans-3)
from 5.0.20 to 5.1.0.
<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.20&new-version=5.1.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-09-13 19:01:40 +00:00
Jamil
d0b211ce5e fix(portal): Fix verified shield alignment/spacing (#6683)
Was taking screenshots for the new verification feature and noticed the
alignment / spacing was off, so decided to quickly adjust them.


# Before
<img width="269" alt="Screenshot 2024-09-13 at 9 20 39 AM"
src="https://github.com/user-attachments/assets/6b5ba98f-f38c-4acb-a762-79e89901bd1e">
<img width="785" alt="Screenshot 2024-09-13 at 9 20 15 AM"
src="https://github.com/user-attachments/assets/5ff981bd-0643-474c-8324-5a5aaa3dcb2f">


# After

<img width="293" alt="Screenshot 2024-09-13 at 9 36 58 AM"
src="https://github.com/user-attachments/assets/b5667d2a-2ada-46c3-b3b6-4e1cacde5e18">

<img width="620" alt="Screenshot 2024-09-13 at 9 31 41 AM"
src="https://github.com/user-attachments/assets/586ce7f8-eccc-4ecf-a65b-bca799eddeb6">
2024-09-13 18:48:45 +00:00
dependabot[bot]
cd58bfa941 build(deps): Bump flowbite from 2.4.1 to 2.5.1 in /elixir/apps/web/assets (#6526)
Bumps [flowbite](https://github.com/themesberg/flowbite) from 2.4.1 to
2.5.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.5.1</h2>
<ul>
<li>fix plugin import error from the config file</li>
</ul>
<h2>v2.5.0</h2>
<ul>
<li>added new DataTable plugin and examples</li>
<li>minor bug fixes and improvements</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="362ad079dc"><code>362ad07</code></a>
chore(version): update to <code>v2.5.1</code></li>
<li><a
href="b30fd48555"><code>b30fd48</code></a>
fix(plugin): remove import</li>
<li><a
href="878ced1b62"><code>878ced1</code></a>
docs(datatables): add to readme</li>
<li><a
href="09105b8429"><code>09105b8</code></a>
chore(version): bump to <code>2.5.0</code></li>
<li><a
href="70411d572a"><code>70411d5</code></a>
docs(datatables): add docs for js init, options, and methods</li>
<li><a
href="fc26a5e4c9"><code>fc26a5e</code></a>
feat(datatables): finish coding the dropdowns for exporting</li>
<li><a
href="bab0a3317f"><code>bab0a33</code></a>
feat(datatables): inject export dropdown button inside table header</li>
<li><a
href="f842793de9"><code>f842793</code></a>
feat(datatables): add basic export files feature</li>
<li><a
href="e56f601069"><code>e56f601</code></a>
docs(datatables): finish row selection example and docs</li>
<li><a
href="ba771d4738"><code>ba771d4</code></a>
feat(datatables): add row selection example</li>
<li>Additional commits viewable in <a
href="https://github.com/themesberg/flowbite/compare/v2.4.1...v2.5.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.4.1&new-version=2.5.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-09-13 18:33:00 +00:00
Andrew Dryga
6c811796f7 fix(portal): Do not save new condition with an empty value and handle it properly if it's saved like that (#6624) 2024-09-06 10:43:21 -07:00
Jamil
03cbe660bb fix(portal): Sidebar and logo spacing fixes (#6621)
Fixes margin/sidebar spacing.
2024-09-06 09:04:54 -07:00
Andrew Dryga
ed42f1db9f fix(portal): Show banners when trial is about to expire or is expired (#6579)
Signed-off-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-09-05 17:14:29 -07:00
Andrew Dryga
da81fb7f41 feat(portal): Allow client verification and add a policy condition to enforce it (#6604)
<img width="1414" alt="Screenshot 2024-09-05 at 1 17 08 PM"
src="https://github.com/user-attachments/assets/f50816e5-1e16-413c-be35-15ef9153a95d">
<img width="1404" alt="Screenshot 2024-09-05 at 1 17 13 PM"
src="https://github.com/user-attachments/assets/a5e055d0-321d-417e-9fd8-78e9643498cd">
<img width="1178" alt="Screenshot 2024-09-05 at 1 17 23 PM"
src="https://github.com/user-attachments/assets/6ea45486-98fb-495f-96d9-a96eb01925dd">
<img width="678" alt="Screenshot 2024-09-05 at 1 17 31 PM"
src="https://github.com/user-attachments/assets/45b4e798-d1b8-4574-97b3-a41dec1619fd">
<img width="632" alt="Screenshot 2024-09-05 at 1 17 46 PM"
src="https://github.com/user-attachments/assets/3c7c02e0-fc78-442e-86d3-fa711c9bb77c">
2024-09-05 14:35:38 -07:00
Andrew Dryga
2cf2d447c5 chore(portal): Move Resources above Policies in the menu since they are created first (#6602) 2024-09-05 14:35:24 -07:00
Andrew Dryga
4e08e69c84 fix(portal): Reset the rate limit when user signed in (#6582) 2024-09-04 04:42:08 +00:00
Andrew Dryga
812dc9190c fix(portal): Reduce the timeouts for rate limited emails (#6573)
Fixes #6108
2024-09-03 20:01:46 +00:00
Jamil
5acea60dc6 fix(portal): Fix flash width and hero logo on auth pages (#6482)
# Before

<img width="1131" alt="Screenshot 2024-08-29 at 8 54 21 AM"
src="https://github.com/user-attachments/assets/65aadaaa-dc92-4b2d-8fd4-a8ec776bc697">
<img width="3120" alt="Screenshot 2024-08-29 at 9 00 38 AM"
src="https://github.com/user-attachments/assets/aa9846dc-9a01-4282-b9eb-539b38e7f67d">

<img width="702" alt="Screenshot 2024-08-29 at 9 03 26 AM"
src="https://github.com/user-attachments/assets/39e30430-ed0a-46c6-84a1-f4edecacbdb3">


# After

<img width="1100" alt="Screenshot 2024-08-29 at 8 54 30 AM"
src="https://github.com/user-attachments/assets/9b5ee17a-e95f-4195-8439-f94298d6ecf9">
<img width="3120" alt="Screenshot 2024-08-29 at 9 00 54 AM"
src="https://github.com/user-attachments/assets/be962785-684f-4de1-bf60-31e3567440ca">
<img width="621" alt="Screenshot 2024-08-29 at 9 09 54 AM"
src="https://github.com/user-attachments/assets/33b6d501-b5ad-494d-8c75-faf6bf63068f">
<img width="572" alt="Screenshot 2024-08-29 at 9 14 52 AM"
src="https://github.com/user-attachments/assets/c72cfc5a-8824-49e2-9ba2-984ebd490251">
2024-08-30 16:01:22 +00:00
Andrew Dryga
2a808292d0 feat(portal): Add blocked_tx_bytes to flow activity metrics (#6487)
Closes #4787
2024-08-29 14:21:51 -06:00
Andrew Dryga
3139651db4 feat(portal): Create default site for new accounts (#6488)
Closes #5012
2024-08-29 14:21:39 -06:00
Andrew Dryga
572c5671d0 feat(portal): Use Service Accounts to sync Google Workspace directory (#6390)
We will need to update the docs for the website, some screens to show
where the settings are:
<img width="1728" alt="Screenshot 2024-08-19 at 1 04 23 PM"
src="https://github.com/user-attachments/assets/88ebb06f-241d-44c8-90fa-258d0b78905e">
<img width="1436" alt="Screenshot 2024-08-19 at 1 04 02 PM"
src="https://github.com/user-attachments/assets/5f7a1011-5a53-4348-81cb-da804ee18bed">

Related [#5959](https://github.com/firezone/firezone/issues/5959)

---------

Signed-off-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-08-29 13:30:34 -06:00
Andrew Dryga
4973ac9d4c fix(portal): Replace missed data-confirms with modals (#6485)
Closes #6147
2024-08-29 13:28:55 -06:00
Andrew Dryga
2fb5d6a0ac feat(portal): Allow deleting stale actors even for active providers (#6471) 2024-08-28 16:24:00 -06:00
Andrew Dryga
835fc4c8eb chore(portal): Bump all deps related to portal (#6445) 2024-08-28 10:40:02 -06:00
Andrew Dryga
2d083379c6 feat(portal): Internet resources (#6299)
They will be sent in the API for connlib 1.3 and above.

I think in future we can make a whole menu section called "Internet
Security" which will be a specialized UI for the new resource type (and
now show it in Resources list) to improve the user experience around it.

Closes #5852

---------

Signed-off-by: Andrew Dryga <andrew@dryga.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-08-27 23:11:17 +00:00
Brian Manifold
5d3fc7d0c4 feat(portal): Update Client index page to search all columns (#6377)
Why:

* Currently, when searching on the Client index page in the portal, the
only field being searched is the Client name. This commit adds the
ability to search either the Client name or the Actor name.

Closes: #5738
2024-08-26 21:57:41 +00:00
Andrew Dryga
43dc6c2053 fix(portal): Preload provider on pubsub events for the policy (#6444) 2024-08-26 15:32:13 -06:00
Jamil
c3d5a2a2d7 fix(ux/portal): conditions ux tweaks (#6417)
fixes #6367 

<img width="720" alt="Screenshot 2024-08-22 at 1 58 20 PM"
src="https://github.com/user-attachments/assets/806e4393-17a4-4bdf-9c6c-c1cfad641d78">

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-08-23 05:15:02 +00:00
Jamil
17c48c8b05 fix(ux/portal): Clarify note about IPv4/6 upstreams (#6407)
Closes #5115 

<img width="1155" alt="Screenshot 2024-08-22 at 1 10 56 AM"
src="https://github.com/user-attachments/assets/3138e055-28c5-47cc-a9db-9f78d36e0d40">
2024-08-22 16:18:28 +00:00
Brian Manifold
95ec1871e7 feat(portal): Allow Policies to be searched by Resource/Group (#6286)
Why:

* When using the Portal UI, it can be difficult to find a given Policy
as only 10 are shown on the page at a time. It was also difficult to
determine which Resources a Group had access to and vice versa what
Groups were allowed to access a given Resource. This change allows
searching by either Resource or Group to filter what Policies are shown.

Closes: #5624
2024-08-20 21:13:22 +00:00
Andrew Dryga
a5342256c3 feat(portal): Allow bulk-deleting synced actors (#6352)
Closes #6301
Closes #6217

<img width="1728" alt="Screenshot 2024-08-19 at 12 19 16 PM"
src="https://github.com/user-attachments/assets/0c1b570d-9ea9-413a-a8b5-febcd6d37072">
2024-08-20 13:05:19 -06:00
Jamil
c67cbfad08 fix(portal): Fix helptext grammar for DNS resource (#6306)
Minor helptext fix for the DNS resource helptext.
2024-08-15 22:03:19 +00:00
Jamil
b1b9b552c2 fix(portal): Clarify how synced users count against billing (#6285)
Fixes #6155 

One question we get with almost each new customer is "if I enable sync,
won't that count towards my bill?". This PR aims to answer that question
right when they create the provider.

I will also make sure to update Enterprise accounts in Stripe with
`monthly_active_users_acount` so that they can view this metric on the
Billing page.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-08-14 19:04:25 +00:00
Brian Manifold
4e9bd7334a fix(portal): Fix Resource show error on API created Resource (#6284)
Viewing a Resource created by an API client was crashing the view due to
the function creating the link to the actor not accounting for the API
client case.

Closes #6267
2024-08-13 22:07:00 +00:00
Jamil
4f4f8f83d2 revert: "feat(portal): Add 'temp account' feature for launch HN" (#6275)
Reverts firezone/firezone#6153

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-08-13 18:31:40 +00:00
Andrew Dryga
c922ea29e9 fix(portal): Fix DNS wildcard support for Gateways (#6270) 2024-08-12 12:54:20 -06:00
Andrew Dryga
00b93f6b82 feat(portal): Wildcard dns with backwards compatibility (#6214)
If a new resource is created that will use format not supported by
previous client versions we temporarily show a warning:
<img width="683" alt="Screenshot 2024-08-07 at 2 28 57 PM"
src="https://github.com/user-attachments/assets/bbfdfc96-0c4b-4226-93c5-bc2b5fdb9d30">

It will also be excluded from `resources` list for older clients (below
1.2).

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-08-10 18:25:24 +00:00
Jamil
bf7e41d6c9 chore(ux): Fix minor API beta page UX issues and add reply-to address (#6207)
Fixes help text, opens link in new page, quick polish on flash styling,
and adds `reply-to` so I can handle the email chain directly in HubSpot.

<img width="1233" alt="Screenshot 2024-08-07 at 10 44 36 AM"
src="https://github.com/user-attachments/assets/eb261ab3-9c3f-4aec-b530-fb14bbaf7c3d">
2024-08-07 20:36:36 +00:00
Brian Manifold
e78737c4c8 fix(portal): Refactor API URL config for Web app (#6202)
Why:

* The Swagger UI is currently served from the API application. This
means that the Web application does not have access to the external URL
in the API configuration during/after compilation. Without the API
external URL, we cannot generate a proper link in the portal to the
Swagger UI. This commit refactors how the API external URL is set from
the environment variables and allows the Web app to have access to the
value of the API URL.

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-08-07 19:30:18 +00:00
Andrew Dryga
13c23d3b78 fix(portal): Do not fail when email identity is not found (#6187)
We were generating fake tokens when identity was not found but those had
empty ids so the code crashed. Now we fake the entire token and make
sure it's length is stable.
2024-08-07 10:25:08 -06:00
Thomas Eizinger
94527f9fa1 fix(gateway): always masquerade for docker-deployed gateways (#6169)
Without masquerading, packets sent by the gateway through the TUN
interface use the wrong source address (the TUN device's address)
instead of the gateway's actual network interface.

We set this env variable in all our uses of the gateway, thus we might
as well remove it and always perform unconditionally.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-08-07 03:00:50 +00:00