Jaanus Sellin
ec7bb2dae3
feat: add configurable event for banner goto action ( #6603 )
...
We added banner to get attention of customer, but we are not tracking
its usage.
Added a way to track the **goto action** button.
2024-03-19 12:09:09 +02:00
Christopher Kolstad
53354224fc
chore: Bump biome and configure husky ( #6589 )
...
Upgrades biome to 1.6.1, and updates husky pre-commit hook.
Most changes here are making type imports explicit.
2024-03-18 13:58:05 +01:00
Nuno Góis
a86b8d36b3
chore: redesign action configurations ( #6588 )
...
https://linear.app/unleash/issue/2-2050/redesign-action-definitions-oss
Depends on a PR on Enterprise that will provide a new endpoint with
action configurations.
We should also clean up the now unnecessary constants and hook.
2024-03-18 11:09:49 +00:00
gitar-bot[bot]
3d4aa4abcb
[Remix] Cleaning up stale feature flag: proPlanAutoCharge with value true ( #6581 )
2024-03-15 11:53:30 +02:00
Mateusz Kwasniewski
146fbbb875
fix: format api path for outdated sdks ( #6555 )
2024-03-14 14:09:59 +01:00
Mateusz Kwasniewski
c6fd558da4
feat: show outdated sdks banner ( #6541 )
2024-03-14 10:15:33 +01:00
Tymoteusz Czech
d35ae7827f
feat: insights share events ( #6480 )
...
Figure out how many people are using and sharing insights in Beta.
https://linear.app/unleash/issue/1-2145/track-number-of-opened-share-links
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: andreas-unleash <andreas@getunleash.ai>
2024-03-13 11:45:42 +02:00
Fredrik Strand Oseberg
f381718fd6
fix: icon imports ( #6499 )
...
Based on this article:
https://mui.com/material-ui/guides/minimizing-bundle-size/ importing
from `'@mui/icons-material'` instead of specifying the actual path to
the icon like `import Delete from '@mui/icons-material/Delete';` can be
up to six time slower. This change changes all named imports in Unleash
referencing the `@mui/icons-material` to default imports.
This reduced the amount of modules we had to process when building the
frontend from 15206 to 4746
Before:
<img width="1016" alt="Skjermbilde 2024-03-11 kl 14 19 58"
src="https://github.com/Unleash/unleash/assets/16081982/f137d24a-6557-4183-a40f-f62a33524520 ">
After:
<img width="1237" alt="Skjermbilde 2024-03-11 kl 14 20 32"
src="https://github.com/Unleash/unleash/assets/16081982/05a27d6a-2c3f-4409-9862-7188ab4b9c72 ">
Build time locally decreased by around 50%
Before:
<img width="1504" alt="Skjermbilde 2024-03-11 kl 14 31 45"
src="https://github.com/Unleash/unleash/assets/16081982/bc931559-b022-47ed-9f8f-c87401578518 ">
After:
<img width="1219" alt="Skjermbilde 2024-03-11 kl 14 27 00"
src="https://github.com/Unleash/unleash/assets/16081982/3c3a8d6b-576d-45c3-aa40-cc5f95d9df2b ">
2024-03-12 10:56:10 +01:00
Nuno Góis
7d827442ee
fix: add actions validation ( #6481 )
...
https://linear.app/unleash/issue/2-2022/improve-actions-validation
Improves our current actions form validation.
Empty actions are now ignored on the payload and we get errors in
actions where any of the required fields are empty.
Also refactored our current actions into a constant map that can be
shared across frontend and backend.
2024-03-11 08:18:36 +00:00
andreas-unleash
ec6c439c09
feat: updates per environment type chart ( #6449 )
...
Creates the updates per environment type chart.
(forgive the sample data)
Closes #
[1-2034](https://linear.app/unleash/issue/1-2034/widget-updates-per-environment-type-frontend )
<img width="1385" alt="Screenshot 2024-03-06 at 16 52 18"
src="https://github.com/Unleash/unleash/assets/104830839/b05479f8-de8b-4de7-98a3-a1285737db0d ">
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-07 11:00:18 +02:00
Nuno Góis
64593c57cf
chore: new actions UI ( #6448 )
...
https://linear.app/unleash/issue/2-1995/ui-feature-rename-adapt-the-actions-ui
Refreshes the UI for project actions according to the new designs and
suggestions from @gastonfournier and @nicolaesocaciu
Also includes some refactoring.
![image](https://github.com/Unleash/unleash/assets/14320932/83e8e8ed-46aa-471b-9d1d-0c051a298a9a )
2024-03-06 15:08:15 +00:00
Nuno Góis
68729333e0
chore: rename incoming webhooks to signals ( #6415 )
...
https://linear.app/unleash/issue/2-1994/ui-feature-rename-adapt-the-signals-ui
https://linear.app/unleash/issue/2-1996/rename-feature-in-the-code-base
Implements the feature rename to Signals by adapting the code base and
UI.
2024-03-04 12:08:05 +00:00
Jaanus Sellin
493f8e8a5b
feat: application overview feedback ( #6416 )
...
![image](https://github.com/Unleash/unleash/assets/964450/e8b85b7f-2c8b-42d2-9c6e-3f6ae9e27413 )
2024-03-04 13:45:57 +02:00
Jaanus Sellin
a4a604aebb
feat: application environment level warnings ( #6407 )
...
![image](https://github.com/Unleash/unleash/assets/964450/5e93dfd6-e1c0-48dd-a3c6-587889096510 )
2024-03-01 14:09:55 +02:00
Mateusz Kwasniewski
84400323d6
feat: sdk reporting tracker ( #6378 )
2024-02-28 15:52:03 +01:00
Mateusz Kwasniewski
b82a650dab
feat: connected instances support query param for env ( #6362 )
2024-02-28 08:57:34 +01:00
Nuno Góis
477a9c6cfa
chore: action events UI ( #6358 )
...
https://linear.app/unleash/issue/2-1936/action-events-ui
Implements the UI for action events.
![image](https://github.com/Unleash/unleash/assets/14320932/d2f82ddd-6292-4f61-bfdd-05037f746f52 )
![image](https://github.com/Unleash/unleash/assets/14320932/673816b8-7dee-4b36-adda-d13d419dc5ac )
2024-02-27 13:52:09 +00:00
Tymoteusz Czech
6cefe71534
feat: insights feedback ( #6345 )
2024-02-27 13:12:18 +01:00
Jaanus Sellin
7cebf7b8fe
feat: application issues ( #6347 )
...
![image](https://github.com/Unleash/unleash/assets/964450/90153533-322c-46fd-8a1b-5853cbe0c35c )
2024-02-27 09:57:50 +02:00
Mateusz Kwasniewski
ae257d5957
feat: connected instance ui api integration ( #6343 )
2024-02-27 08:30:31 +01:00
Mateusz Kwasniewski
d1e93228a3
refactor: paginated data hook ( #6333 )
2024-02-26 11:24:41 +01:00
andreas-unleash
bae195add9
feat: show the metrics summary chart ( #6297 )
...
Creates the impressions summary chart
<img width="1358" alt="Screenshot 2024-02-21 at 13 25 05"
src="https://github.com/Unleash/unleash/assets/104830839/ddf15637-34de-4883-9ef7-517e37eab331 ">
Closes #
[1-2060](https://linear.app/unleash/issue/1-2060/impressions-summary-widget-frontend )
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2024-02-23 15:17:58 +02:00
Nuno Góis
12ff4abe6a
chore: incoming webhook events UI ( #6317 )
...
https://linear.app/unleash/issue/2-1937/incoming-webhook-events-ui
This PR implements the UI for incoming webhook events.
We're also introducing a new `SidePanelList` component that we'll be
able to reuse when we tackle action set events. This PR also promotes
`ReactJSONEditor` to a common component and adapts it slightly for this
use case.
![image](https://github.com/Unleash/unleash/assets/14320932/b1abc2e0-3971-4882-b6f6-0ae48d1523d5 )
![image](https://github.com/Unleash/unleash/assets/14320932/ce5c31e4-650a-4df5-a966-2ce06fd6baa8 )
We're refreshing the events view every 5s, so if you're monitoring
events for a specific incoming webhook you can see the latest ones
coming in.
We load 20 (configurable through the hook) events by default. Everytime
you reach the end of the list you can load 20 more events until you
reach the end of the event list.
![image](https://github.com/Unleash/unleash/assets/14320932/94f187a1-8b0f-4138-8dbc-d3ebc9914bfd )
2024-02-23 11:01:27 +00:00
Mateusz Kwasniewski
0de0313563
feat: connect application envs to backend ( #6324 )
2024-02-22 21:58:19 +01:00
Mateusz Kwasniewski
edbd71ac15
feat: paginated hook for applications list ( #6315 )
2024-02-22 14:37:08 +01:00
andreas-unleash
60754b9fca
chore: generate new orval types ( #6292 )
...
what it says on the box
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-21 11:31:06 +02:00
Christopher Kolstad
e9d9db17fe
feat: Adding Project access requires same role ( #6270 )
...
In order to prevent users from being able to assign roles/permissions
they don't have, this PR adds a check that the user performing the
action either is Admin, Project owner or has the same role they are
trying to grant/add.
This addAccess method is only used from Enterprise, so there will be a
separate PR there, updating how we return the roles list for a user, so
that our frontend can only present the roles a user is actually allowed
to grant.
This adds the validation to the backend to ensure that even if the
frontend thinks we're allowed to add any role to any user here, the
backend can be smart enough to stop it.
We should still update frontend as well, so that it doesn't look like we
can add roles we won't be allowed to.
2024-02-20 15:56:53 +01:00
Thomas Heartman
a468c55fc7
feat: add environment selection to connected instances screen ( #6277 )
...
This PR adds an environment selector to the connected instances table,
using query parameters to store the environment selection.
I'm still using the old data to populate this, so it'll show you all
data when nothing is selected and only filtered data when you select an
env. There is no way to unselect an env at the moment: I'm not sure
that's something we'll need to do, so we'll handle that when we know.
I imagine in the future, we might update the component to make separate
calls per environments and a call to determine which envs are available,
but for now, this will do just fine.
<img width="848" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/ef7562d5-c0ab-48c6-ba43-7c0007719ab4 ">
2024-02-20 12:14:44 +02:00
Jaanus Sellin
03929e3031
feat: project applications UI ( #6260 )
...
![image](https://github.com/Unleash/unleash/assets/964450/a1129857-820c-4e93-ac59-ef5f4743d774 )
2024-02-19 09:50:53 +02:00
Gastón Fournier
7a48fb57a6
feat: permission matrix (PoC) ( #6223 )
...
## About the changes
This is a rough initial version as a PoC for a permission matrix.
This is only available after enabling the flag `userAccessUIEnabled`
that is set to true by default in local development.
The access was added to the users' admin page but could be embedded in
different contexts (e.g. when assigning a role to a user):
![image](https://github.com/Unleash/unleash/assets/455064/3f541f46-99bb-409b-a0fe-13f5d3f9572a )
This is how the matrix looks like
![screencapture-localhost-3000-admin-users-3-access-2024-02-13-12_15_44](https://github.com/Unleash/unleash/assets/455064/183deeb6-a0dc-470f-924c-f435c6196407 )
---------
Co-authored-by: Nuno Góis <github@nunogois.com>
2024-02-16 14:31:33 +01:00
Nuno Góis
9511e64027
refactor: project actions ( #6203 )
...
https://linear.app/unleash/issue/2-1938/refactor-project-actions
Refactors project actions to not include the project in the payload.
Includes other misc scouting.
2024-02-12 17:10:33 +00:00
Gastón Fournier
6d26c79fa7
chore: Move actions inside projects ( #6191 )
...
## About the changes
Action should be relative to a project (in general).
2024-02-12 09:26:05 +01:00
Fredrik Strand Oseberg
260ef70309
Feat/UI error observability ( #6169 )
...
This PR adds an endpoint to Unleash that accepts an error message and
option error stack and logs it as an error. This allows us to leverage
errors in logs observability to catch UI errors consistently.
Considered a test, but this endpoint only accepts and logs input, so I'm
not sure how useful it would be.
2024-02-09 13:07:44 +01:00
Nuno Góis
13df715bfd
fix: prevent infinite rerenders in useIncomingWebhooks ( #6176 )
...
React can sometimes be non-intuitive and behave erratically due to the
way it detects changes in hook dependencies.
This prevents infinite re-renders from `useIncomingWebhooks` by using a
static `DEFAULT_DATA` constant, so that its reference is always the
same, so no changes are detected when there are none.
Unrelated scouting, but this PR also removes an unneeded dependency in
the memoized columns in `ProjectActionsTable`.
2024-02-09 08:17:15 +00:00
Mateusz Kwasniewski
7e66a79f9f
feat: add disabled state handling on slow network ( #6165 )
2024-02-08 10:27:51 +01:00
Christopher Kolstad
ea38877b0c
feat: List and delete inactive users
...
Adds a new Inactive Users list component to admin/users for easier cleanup of users that are counted as inactive: No sign of activity (logins or api token usage) in the last 180 days.
---------
Co-authored-by: David Leek <david@getunleash.io>
2024-02-05 14:07:38 +01:00
Thomas Heartman
73c4c62ea3
chore: track metrics for how many CRs are moved into next state with conflicts ( #6109 )
...
Use React's context to track how many CRs are moved into their next
state with conflicts present.
This PR wraps environment change requests and change request overviews
in a change request plausible context that contains a
`willOverwriteStrategyChanges` property. This property is updated by the
diff calculation if there are any conflicts and then read by the
`changeState` function in the `useChangeRequestApi` hook.
As long as at least one of the strategies in the CR contain conflicts,
it will be marked as overwriting changes.
2024-02-05 18:27:11 +09:00
Jaanus Sellin
0cf8396ec2
feat: add posted feedback table ( #6113 )
...
The page can only be navigated if you know direct url `/feedback`
![image](https://github.com/Unleash/unleash/assets/964450/6018a6c0-9fee-4fb2-9b68-2d3e87674441 )
2024-02-02 15:39:29 +02:00
Fredrik Strand Oseberg
aae1d0576f
feat: add project flags component ( #6070 )
...
This PR adds project flags line chart component
2024-01-31 08:48:10 +01:00
Ivar Conradi Østhus
38df2e1831
fix: add instanceName to license display ( #6065 )
...
## About the changes
- Shows the instanceName from the license
- add new feature flag `enableLicenseChecker` used to enforce a valid
license.
2024-01-30 11:05:27 +01:00
Fredrik Strand Oseberg
7d6d4064a8
feat: connect dashboard static widgets to data ( #6062 )
...
This PR connects the static widgets to actual data
2024-01-30 10:07:16 +01:00
Jaanus Sellin
2643ac1356
feat: add CR id to plausible events ( #6035 )
...
Added conflict count to CR metrics and CR id.
Something to think about:
There was idea that we can aggregate this data based on CR id, but CR id
is just a number from 0 to x. So it will not be unique across instances.
---------
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2024-01-30 10:38:39 +02:00
Mateusz Kwasniewski
8a7e65eaa6
refactor: cleanup fix for persistent set ( #6060 )
2024-01-29 12:33:01 +01:00
Nuno Góis
7da9232516
refactor: add temporary ts-expect-error to setGlobalStore in setHiddenEnvironments
2024-01-29 10:26:00 +00:00
Mateusz Kwasniewski
ce219f1b74
fix: hidden envs ( #6050 )
2024-01-26 17:03:10 +01:00
Nuno Góis
32484460ef
chore: project actions table ( #6039 )
...
https://linear.app/unleash/issue/2-1877/ui-add-actions-table
Implements the new project actions table.
![image](https://github.com/Unleash/unleash/assets/14320932/2ce96669-4b8f-46cd-9a87-8b14f0682694 )
![image](https://github.com/Unleash/unleash/assets/14320932/d73327f2-1e1a-4d57-8ef8-1f4518c4b5d9 )
![image](https://github.com/Unleash/unleash/assets/14320932/27b9ffab-4fff-4fdf-808f-b778987fa198 )
2024-01-26 08:20:30 +00:00
Tymoteusz Czech
00b3cbaa8b
Dashboard API hook ( #5990 )
...
Data fetching for dashboard
https://linear.app/unleash/issue/1-1969/dashboard-users-chart-api-hook
2024-01-26 09:03:12 +01:00
Jaanus Sellin
b0ecfd4d34
feat: add plausible change-requests-conflicts ( #6024 )
2024-01-24 21:46:08 +02:00
Jaanus Sellin
e4ca8a3e6c
feat: track search bar events ( #6021 )
...
Adding tracking for 2 views, when users use the new search.
For features view and project view.
2024-01-24 14:23:23 +02:00
Nuno Góis
0847c2e52c
chore: add new action hooks ( #5992 )
...
https://linear.app/unleash/issue/2-1857/create-new-action-hooks-on-the-frontend
Adds action hooks to help us with CRUD operations on the frontend,
similar to https://github.com/Unleash/unleash/pull/5788 and
https://github.com/Unleash/unleash/pull/5790
2024-01-22 17:31:04 +00:00
Mateusz Kwasniewski
b00909db3f
test: show array param decoder ( #5955 )
2024-01-19 09:27:47 +01:00
Nuno Góis
5b56fac66f
Chore inc webhooks modal form ( #5938 )
...
https://linear.app/unleash/issue/2-1818/ui-create-incoming-webhook-newedit-modal
Adds the incoming webhooks modal form, which allows users to create and
edit incoming webhooks, along with their respective tokens.
Follows a logic similar to service accounts and their tokens, and tries
to use the newest form validation flow that we implemented in the roles
form.
![image](https://github.com/Unleash/unleash/assets/14320932/5d37a72e-2777-4c8b-b71b-3c0610959a52 )
2024-01-18 11:38:05 +00:00
Mateusz Kwasniewski
dfeaea8ee9
feat: hours back feature metrics tracking ( #5904 )
2024-01-16 10:30:06 +01:00
Thomas Heartman
39145e2617
refactor: use union types for change request types ( #5870 )
...
This changes the two interfaces IChangeRequest and
IChangeRequestSchedule to be union types instead of interfaces. It also
extracts the constituents of those union types into proper types
themselves (so that they can be used in function type signatures etc).
It also updates the type names.
This turned out to be more work than I had imagined, but I think the end
result pays off, giving us more type safety and control.
I wanted to use just `ChangeRequest` for the IChangeRequest type, but
that caused issues due to naming collisions with the `ChangeRequest`
component that we have, causing tests to fail. I've named it
`ChangeRequestType` as a potential solution, but suggestions are
welcome.
The relevant changes are in
`frontend/src/component/changeRequest/changeRequest.types.ts`.
Everything else is updated references and some necessary refactoring to
respect the new types.
2024-01-12 13:15:43 +05:30
Mateusz Kwasniewski
6ba4591c7f
feat: select multiple apps ( #5860 )
2024-01-12 08:33:52 +01:00
Nuno Góis
b496990f79
chore: add no unused imports biome rule ( #5855 )
...
Adds a Biome rule for "no unused imports", which is something we
sometimes have trouble catching.
We're adding this as a warning for now. It is safely and easily fixable
with `yarn lint:fix`.
![image](https://github.com/Unleash/unleash/assets/14320932/fd84dea8-6b20-4ba5-bfd8-047b9dcf2bff )
![image](https://github.com/Unleash/unleash/assets/14320932/990bb0b0-760a-4c5e-8136-d957e902bf0b )
2024-01-11 12:44:05 +00:00
Nuno Góis
10c3acd27d
chore: adapt integrations layout for incoming webhooks ( #5828 )
...
https://linear.app/unleash/issue/2-1823/adapt-integrations-page-to-incoming-webhooks-tab-layout
Adapts the current integrations page to the incoming webhooks feature,
which includes things like:
- Displaying both configured and available integrations in a single
"page block"
- Implement tabs
- Add "Incoming Webhooks" integration card
- Adapt the existing `IntegrationCard` component to support `onClick`
This also includes a small girl scouting fix: Some tabs (like on the
roles page) did not correctly reflect the active tab.
### `incomingWebhooks` disabled
![image](https://github.com/Unleash/unleash/assets/14320932/f5c1c61b-0eb1-487e-ab5a-c65e9fc168c8 )
### `incomingWebhooks` enabled
Notice the new "Incoming webhooks" tab and integration card.
![image](https://github.com/Unleash/unleash/assets/14320932/f5680ad5-4a00-4acb-bc8d-77160cc91034 )
2024-01-10 10:33:51 +00:00
Nuno Góis
c8fb313004
chore: incoming webhook token hooks ( #5790 )
...
https://linear.app/unleash/issue/2-1814/create-new-incoming-webhook-token-hooks-on-the-frontend
Adds incoming webhook token hooks to help us with CRUD operations on the
frontend.
2024-01-08 15:43:24 +00:00
Nuno Góis
68d7af919d
chore: incoming webhook hooks ( #5788 )
...
https://linear.app/unleash/issue/2-1813/create-new-incoming-webhook-hooks-on-the-frontend
Adds incoming webhook hooks to help us with CRUD operations on the
frontend.
2024-01-08 15:12:47 +00:00
Fredrik Strand Oseberg
46ecce49a8
fix: add checks to remove warnings on project settings ( #5766 )
...
This PR removes warning on the project settings by always making sure we
have the project before rendering the settings and do a conditional
check on the featureLimit number field.
2024-01-05 09:23:12 +01:00
Jaanus Sellin
182901aab6
feat: plausible for feedback ( #5763 )
2024-01-04 14:38:54 +02:00
Jaanus Sellin
b24471c1b4
feat: add dont ask me again button ( #5753 )
2024-01-04 14:10:01 +02:00
Simon Hornby
efa2117ded
chore: update default version in UI ( #4761 )
...
We get a flash of the Unleash scaffold when we first load the page. For
a brief moment, we display version 3 and then overwrite it with the
correct version. Looks kinda silly, we know we're in version 5.x so
let's just do that
2024-01-03 22:23:25 +01:00
Fredrik Strand Oseberg
70600552d2
Feat/add feedback to new strategy form ( #5745 )
...
This PR adds the feedback form to the new create / edit strategy form
behind a feature flag.
* Add feedback form
* Minor refactor to useFeedback
2024-01-03 15:43:22 +01:00
Jaanus Sellin
a73d87a943
feat: make feedback available for OSS ( #5748 )
2024-01-03 15:08:01 +02:00
Ivar Conradi Østhus
fef6935d3a
feat: license checker for self-hosted ( #5239 )
...
Show banner for enterprise self-hosted if they violate their license.
---------
Co-authored-by: Nuno Góis <github@nunogois.com>
2024-01-02 20:06:35 +00:00
Fredrik Strand Oseberg
049c5b9afa
feat: variant name change on create ( #5742 )
...
This PR refactores the StrategyVariants component to be passed in from
the outside to the new form component. This allows us to pass in the
StrategyVariants with an "editable" property in the create form which we
use to determine the editable state of the name input field. If the
editable field is not passed in we keep the old behavior.
Notable changes:
* StrategyVariants is now passed in from the outside, allowing us to
define different props at call time
* Added tests for the new behavior, and for keeping the old behavior
(such as in edit strategy)
* Added tracking
2024-01-02 13:53:04 +01:00
Jaanus Sellin
e4c9a257ad
feat: make local storage work and make feedback url configurable ( #5738 )
...
Make storage work react way.
Make feedback url configurable by env variable.
2023-12-29 13:19:08 +02:00
Jaanus Sellin
55bd0a6760
feat: keep feedback submission in local storage ( #5737 )
...
Now it will track if feedback has been submitted in local storage.
2023-12-29 10:08:19 +02:00
Jaanus Sellin
86da11015c
feat: ui now connects to backend, full e2e ( #5736 )
...
Added API hooks and now frontend actually sends data to database.
2023-12-28 14:31:53 +02:00
Jaanus Sellin
3926ec6c51
feat: tracking feature buttons clicks ( #5714 )
2023-12-21 11:01:16 +02:00
Fredrik Strand Oseberg
59a6ef46e8
fix: separate concerns for ConstraintAccordionList ( #5701 )
...
## Problem
The ConstraintAccordionList component was used in multiple places:
* Playground
* Segment form
* StrategyExecution
* Change requests
* Create strategy
* Edit strategy
This is problematic because some of the views are just pure visual
representations, and other views allow you to interact with and edit the
constraints. This causes a situation where the visual representation
needs to be aware of the implementation details of editing and mutating
constraints. In addition the ConstraintAccordionList is not just a pure
rendering of the list, it also keeps internal state on when to show the
create button and optional headers. This is makes it hard to make
changes when stylings need to be subtly different across components.
## Solution
Taking on the full refactor for this is out of scope, but it's
unfortunate that the ConstraintAccordionList needs all this internal
state. For now I split out the list into it's own component called
ConstraintList. I gathered the functions needed for editing and mutating
the constraints in a reusable hook and isolated the version of the list
used in the new feature strategy edit / create components into it's own
component so that the changes in layout will not affect anything else.
Ideally we should try to move towards a future where the components
don't keep internal state like this but clear boundaries and purposes
for the use.
2023-12-20 15:36:23 +01:00
Jaanus Sellin
bb5b322475
fix: now project overview has skeleton instead of placeholders ( #5696 )
...
Removed `ref` dependency from `useLoading` hook, it was being overly
reactive and breaking skeleton.
2023-12-20 14:59:41 +02:00
Mateusz Kwasniewski
8306073e1f
feat: keep filter order ( #5688 )
2023-12-19 15:35:39 +01:00
andreas-unleash
75bdd73c15
feat: add plausible tracking to scheduling ( #5668 )
...
Adds plausible tracking with actions:
- scheduled-created
- scheduled-updated
- scheduled-rejected
- scheduled-applied
Closes #
[1-1630](https://linear.app/unleash/issue/1-1630/add-plausible-metrics )
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-18 15:06:58 +02:00
Paulo Miranda
fd34f35e0e
feat: add reset password to user manager ( #5580 )
...
## About the changes
This PR adds a reset password functionality to user table (only available to admins). This makes it possible to reset passwords without configuring the email service.
![Screenshot from 2023-12-10
20-41-22](https://github.com/Unleash/unleash/assets/32435715/0209525a-4f3a-4998-b9de-7299469e1a68 )
![Screenshot from 2023-12-16
16-40-36](https://github.com/Unleash/unleash/assets/32435715/556e324c-c0b0-4bb9-b2b5-3bd653f4d329 )
![Screenshot from 2023-12-16
16-40-48](https://github.com/Unleash/unleash/assets/32435715/b0249e9d-9e1a-4cfe-a5ee-0ab22f45ce28 )
---------
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
Co-authored-by: Thomas Heartman <thomasheartman+github@gmail.com>
2023-12-18 13:54:04 +01:00
Mateusz Kwasniewski
0726887bb8
feat: reset persistent table offset on change ( #5650 )
2023-12-15 10:20:55 +01:00
Jaanus Sellin
1c95029319
feat: add plausible tracking ( #5614 )
2023-12-12 15:46:48 +02:00
andreas-unleash
4376697250
feat: show Changes scheduled in feature variants even when CR are dis… ( #5613 )
...
show Changes scheduled in feature variants even when CR are disabled
Modifies existing hook to call the new `change-requests/scheduled`
endpoint that returns the relevant scheduled change requests even when
change requests are disabled
Rename the ChangeRequestIdentityData to ScheduledChangeRequestViewModel
for consistency (finalised schemas will replace the BE and FE types in a
follow up PR)
Closes #
[1-1746](https://linear.app/unleash/issue/1-1746/show-change-scheduled-badge-in-feature-environment-variants-even-if )
<img width="1486" alt="Screenshot 2023-12-12 at 14 24 44"
src="https://github.com/Unleash/unleash/assets/104830839/7c4e92ef-81d8-423e-8b78-9015ede59952 ">
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-12 15:34:32 +02:00
Mateusz Kwasniewski
e88beff2b2
feat: do not cache old search and filter results ( #5600 )
2023-12-12 08:47:57 +01:00
andreas-unleash
e02c252636
fix: show Changes scheduled badge for strategies even if change reque… ( #5599 )
...
show Changes scheduled badge for strategies even if change requests are
disabled
Closes #
[1-1745](https://linear.app/unleash/issue/1-1745/show-changes-scheduled-badge-in-strategy-item-even-if-change-requests )
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-12-12 09:30:57 +02:00
Jaanus Sellin
9bae14a2cc
feat: add tags filter ( #5584 )
2023-12-11 14:10:03 +02:00
Thomas Heartman
879e4c98e5
feat: show potential schedule conflicts when you archive flags ( #5575 )
...
Show change requests that would be impacted by an archive operation
![image](https://github.com/Unleash/unleash/assets/17786332/7b2af89a-7292-4b90-b7a4-768df375e0fb )
2023-12-11 10:45:45 +01:00
Thomas Heartman
cd731cef03
refactor: update the API url for getting scheduled change requests with a strategy ( #5573 )
...
Relates to enterprise PR 889; update the API url
2023-12-08 12:29:54 +01:00
Jaanus Sellin
1173b664da
feat: add created date filter component ( #5569 )
2023-12-08 10:07:57 +02:00
Thomas Heartman
a228f54344
feat: show scheduled CRs using strategies when removing it ( #5560 )
...
Show a warning about how deleting a strategy might mess up scheduled
change requests.
If there are change requests, list them. If there are no conflicts, show
nothing. If we don't know (because of no successful response from the
API), say that it might cause issues.
![image](https://github.com/Unleash/unleash/assets/17786332/2c6a4257-69f5-458a-ab6f-9b2ea2f5d550 )
2023-12-06 15:39:17 +01:00
Mateusz Kwasniewski
2dcf4af7b1
feat: filter persisted in url ( #5549 )
2023-12-05 17:31:23 +01:00
Tymoteusz Czech
ddca82213a
refactor: project overview table state ( #5530 )
...
Use new table state management on project overview and on
project/features
2023-12-04 17:04:28 +01:00
Mateusz Kwasniewski
5c889df9be
test: persistent table state ( #5529 )
2023-12-04 15:47:53 +01:00
Tymoteusz Czech
a506b92544
feat: Refactor Table State Persistence in Feature Toggle List ( #5527 )
...
new custom hook, `usePersistentTableState`
Co-authored-by: Mateusz Kwasniewski <kwasniewski.mateusz@gmail.com>
2023-12-04 13:21:03 +00:00
Jaanus Sellin
a299885e22
feat: update project overview endpoint ( #5518 )
...
1. Created new hook for endpoint
2. Start removing useProject hook, when features not needed.
2023-12-01 20:00:35 +02:00
Tymoteusz Czech
755c22f3b9
feat: features list pagination ( #5496 )
...
New paginated table - tested on /features-new behind a flag
2023-12-01 14:53:05 +00:00
Tymoteusz Czech
f690fe86da
feat: new search for feature toggle list table ( #5454 )
...
Filtering of feature toggles list with backend
2023-11-29 10:42:35 +01:00
Tymoteusz Czech
e476de5faa
feat: update feature search ( #5473 )
2023-11-29 08:45:30 +01:00
renovate[bot]
c7498dcac6
chore(deps): update dependency @biomejs/biome to v1.4.0 ( #5288 )
...
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg )](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev )
([source](https://togithub.com/biomejs/biome )) | [`1.3.3` ->
`1.4.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.3.3/1.4.0 )
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.4.0?slim=true )](https://docs.renovatebot.com/merge-confidence/ )
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.4.0?slim=true )](https://docs.renovatebot.com/merge-confidence/ )
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true )](https://docs.renovatebot.com/merge-confidence/ )
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.3.3/1.4.0?slim=true )](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>biomejs/biome (@​biomejs/biome)</summary>
###
[`v1.4.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#140-2023-11-27 )
[Compare
Source](af24597c18...889593e3f9
)
##### CLI
- Remove the CLI options from the `lsp-proxy`, as they were never meant
to be passed to that command. Contributed by
[@​ematipico](https://togithub.com/ematipico )
- Add option `--config-path` to `lsp-proxy` and `start` commands. It's
now possible to tell the Daemon server to load `biome.json` from a
custom path. Contributed by
[@​ematipico](https://togithub.com/ematipico )
- Add new `--diagnostic-level` option to let users control the level of
diagnostics printed by the CLI. Possible values are: `"info"`, `"warn"`,
`"hint"`. Contributed by
[@​simonxabris](https://togithub.com/simonxabris )
- Add option `--line-feed` to the `format` command. Contributed by
[@​SuperchupuDev](https://togithub.com/SuperchupuDev )
- Add option `--bracket-same-line` to the `format` command. Contributed
by [@​faultyserve](https://togithub.com/faultyserve )
- Add option `--bracket-spacing` to the `format` command. Contributed by
[@​faultyserve](https://togithub.com/faultyserve )
##### Bug fixes
- Fix the command `format`, now it returns a non-zero exit code when if
there pending diffs. Contributed by
[@​ematipico](https://togithub.com/ematipico )
##### Configuration
- Add option `formatter.lineFeed`. Contributed by
[@​SuperchupuDev](https://togithub.com/SuperchupuDev )
- Add option `javascript.formatter.bracketSameLine`. Contributed by
[@​faultyserve](https://togithub.com/faultyserve )
- Add option `javascript.formatter.bracketSpacing`. Contributed by
[@​faultyserve](https://togithub.com/faultyserve )
##### Formatter
##### New features
- Add a new option
[`--line-ending`](https://biomejs.dev/reference/configuration/#formatterlineending ).
This option allows changing the type of line endings. Contributed by
[@​SuperchupuDev](https://togithub.com/SuperchupuDev )
- Added a new option called `--bracket-spacing` to the formatter. This
option allows you to control whether spaces are inserted around the
brackets of object literals.
[#​627](https://togithub.com/biomejs/biome/issues/627 ).
Contributed by [@​faultyserver](https://togithub.com/faultyserver )
- Added a new option called `--bracket-same-line` to the formatter. This
option allows you to control whether spaces are inserted around the
brackets of object literals.
[#​627](https://togithub.com/biomejs/biome/issues/627 ).
Contributed by [@​faultyserver](https://togithub.com/faultyserver )
##### Bug fixes
- Fix [#​832](https://togithub.com/biomejs/biome/issues/832 ), the
formatter no longer keeps an unnecessary trailing comma in type
parameter lists. Contributed by
[@​Conaclos](https://togithub.com/Conaclos )
- Fix [#​301](https://togithub.com/biomejs/biome/issues/301 ), the
formatter should not break before the `in` keyword. Contributed by
[@​ematipico](https://togithub.com/ematipico )
##### Linter
##### Promoted rules
-
[a11y/noInteractiveElementToNoninteractiveRole](https://biomejs.dev/linter/rules/no-interactive-element-to-noninteractive-role )
-
[complexity/noThisInStatic](https://biomejs.dev/linter/rules/no-this-in-static )
-
[complexity/useArrowFunction](https://biomejs.dev/linter/rules/use-arrow-function )
-
[correctness/noEmptyCharacterClassInRegex](https://biomejs.dev/linter/rules/no-empty-character-class-in-regex )
-
[correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin )
-
[style/noUselessElse](https://biomejs.dev/linter/rules/no-useless-else )
-
[style/useAsConstAssertion](https://biomejs.dev/linter/rules/use-as-const-assertion )
-
[style/useShorthandAssign](https://biomejs.dev/linter/rules/use-shorthand-assign )
-
[suspicious/noApproximativeNumericConstant](https://biomejs.dev/linter/rules/no-approximative-numeric-constant )
-
[suspicious/noMisleadingInstantiator](https://biomejs.dev/linter/rules/no-misleading-instantiator )
-
[suspicious/noMisrefactoredShorthandAssign](https://biomejs.dev/linter/rules/no-misrefactored-shorthand-assign )
The following rules are now recommended:
- [a11y/noAccessKey](https://biomejs.dev/linter/rules/no-access-key )
-
[a11y/useHeadingContent](https://biomejs.dev/linter/rules/use-heading-content )
-
[complexity/useSimpleNumberKeys](https://biomejs.dev/linter/use-simple-number-keys )
The following rules are now deprecated:
-
[correctness/noNewSymbol](https://biomejs.dev/linter/rules/no-new-symbol )
The rule is replaced by
[correctness/noInvalidNewBuiltin](https://biomejs.dev/linter/rules/no-invalid-new-builtin )
##### New features
- Add
[noDefaultExport](https://biomejs.dev/linter/rules/no-default-export )
which disallows `export default`. Contributed by
[@​Conaclos](https://togithub.com/Conaclos )
- Add
[noAriaHiddenOnFocusable](https://biomejs.dev/linter/rules/no-aria-hidden-on-focusable )
which reports hidden and focusable elements. Contributed by
[@​vasucp1207](https://togithub.com/vasucp1207 )
- Add
[noImplicitAnyLet](https://biomejs.dev/linter/rules/no-implicit-any-let )
that reports variables declared with `let` and without initialization
and type annotation. Contributed by
[@​TaKO8Ki](https://togithub.com/TaKO8Ki ) and
[@​b4s36t4](https://togithub.com/b4s36t4 )
- Add [useAwait](https://biomejs.dev/linter/rules/use-await ) that
reports `async` functions that don't use an `await` expression.
- Add
[useValidAriaRole](https://biomejs.dev/linter/rules/use-valid-aria-role ).
Contributed by [@​vasucp1207](https://togithub.com/vasucp1207 )
- Add [useRegexLiterals](https://biomejs.dev/linter/use-regex-literals )
that suggests turning call to the regex constructor into regex literals.
COntributed by [@​Yuiki](https://togithub.com/Yuiki )
##### Enhancements
- Add an unsafe code fix for
[a11y/useAriaActivedescendantWithTabindex](https://biomejs.dev/linter/rules/use-aria-activedescendant-with-tabindex )
##### Bug fixes
- Fix [#​639](https://togithub.com/biomejs/biome/issues/639 ) by
ignoring unused TypeScript's mapped key. Contributed by
[@​Conaclos](https://togithub.com/Conaclos )
- Fix [#​565](https://togithub.com/biomejs/biome/issues/565 ) by
handling several `infer` with the same name in extends clauses of
TypeScript's conditional types. Contributed by
[@​Conaclos](https://togithub.com/Conaclos )
- Fix [#​653](https://togithub.com/biomejs/biome/issues/653 ).
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports )
now correctly removes the entire line where the unused `import` is.
Contributed by [@​Conaclos](https://togithub.com/Conaclos )
- Fix [#​607](https://togithub.com/biomejs/biome/issues/609 )
`useExhaustiveDependencies`, ignore optional chaining, Contributed by
[@​msdlisper](https://togithub.com/msdlisper )
- Fix [#​676](https://togithub.com/biomejs/biome/issues/676 ), by
using the correct node for the `"noreferrer"` when applying the code
action. Contributed by
[@​ematipico](https://togithub.com/ematipico )
- Fix [#​455](https://togithub.com/biomejs/biome/issues/455 ). The
CLI can now print complex emojis to the console correctly.
- Fix [#​727](https://togithub.com/biomejs/biome/issues/727 ).
[noInferrableTypes](https://biomejs.dev/linter/rules/no-inferrable-types )
now correctly keeps type annotations when the initialization expression
is `null`. Contributed by
[@​Conaclos](https://togithub.com/Conaclos )
- Fix [#​784](https://togithub.com/biomejs/biome/issues/784 ),
[noSvgWithoutTitle](https://biomejs.dev/linter/rules/no-svg-without-title )
fixes false-positives to `aria-label` and reports svg's role attribute
is implicit. Contributed by
[@​unvalley](https://togithub.com/unvalley )
- Fix [#​834](https://togithub.com/biomejs/biome/issues/834 ) that
made
[noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements )
reports block statements of switch clauses. Contributed by
[@​vasucp1207](https://togithub.com/vasucp1207 )
- Fix [#​783](https://togithub.com/biomejs/biome/issues/834 ) that
made
[noUselessLoneBlockStatements](https://biomejs.dev/linter/rules/no-useless-lone-block-statements )
reports block statements of `try-catch` structures. Contributed by
[@​hougesen](https://togithub.com/hougesen )
- Fix [#​69](https://togithub.com/biomejs/biome/issues/69 ) that
made
[correctness/noUnnecessaryContinue](https://biomejs.dev/linter/rules/no-unnecessary-continue )
incorrectly reports a `continue` used to break a switch clause.
Contributed by [@​TaKO8Ki](https://togithub.com/TaKO8Ki )
- Fix [#​664](https://togithub.com/biomejs/biome/issues/664 ) by
improving the diagnostic of
[style/useNamingConvention](https://biomejs.dev/linter/use-naming-convention )
when double capital are detected in strict camel case mode. Contributed
by [@​vasucp1207](https://togithub.com/vasucp1207 )
- Fix [#​643](https://togithub.com/biomejs/biome/issues/643 ) that
erroneously parsed the option of
[complexity/useExhaustiveDependencies](https://biomejs.dev/linter/use-naming-convention ).
Contributed by [@​arendjr](https://togithub.com/arendjr )
##### Parser
##### Bug fixes
- Fix [#​846](https://togithub.com/biomejs/biome/issues/846 ) that
erroneously parsed `<const T,>() => {}` as a JSX tag instead of an arrow
function when both TypeScript and JSX are enabled.
##### VSCode
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Christopher Kolstad <chriswk@getunleash.io>
2023-11-28 09:32:00 +00:00
Thomas Heartman
b021e7cf85
feat: show strategies used by segments ( #5407 )
...
This PR displays change request usage of segments when such usage is
returned from the API. It expects at least #5406 to have been merged
before it can be merged.
![image](https://github.com/Unleash/unleash/assets/17786332/c74bb1c9-07f9-4bca-95bb-4ca020398444 )
2023-11-27 10:34:34 +00:00
Tymoteusz Czech
dbd897e3bd
Feat/new paginated table ( #5371 )
...
## About the changes
2023-11-24 17:50:58 +01:00
Tymoteusz Czech
d5049e6197
feat: useTableState hook ( #5362 )
...
Simplified logic for handling interaction between URL (query), table state and localstorage.
2023-11-21 11:25:31 +01:00
Gastón Fournier
4801b64824
feat(banners): enable customer banners ( #5348 )
...
## About the changes
This feature allows our Enterprise customers to configure banners to be
displayed on their Unleash instance for all their users to see and
interact with. Previously known as "internal message banners".
2023-11-17 13:56:09 +00:00
Thomas Heartman
be699962b1
chore: remove segments oss splash ( #5359 )
...
This change removes the oss segments splash screen that was introduced
in https://github.com/Unleash/unleash/pull/5053 .
2023-11-17 13:39:43 +00:00
Jaanus Sellin
4e1040c849
feat: connect sort table to backend ( #5338 )
...
Now FE sorting is done in backend.
2023-11-15 16:01:02 +02:00
Fredrik Strand Oseberg
db77962a72
fix/usefeaturesearch cache ( #5340 )
...
Fixes a bug where the closure over the useFeatureSearch hook would not
account for projectId and return the wrong total/initial load
2023-11-15 11:09:13 +01:00
Tymoteusz Czech
fd3a7f12cb
chore: remove featureSwitchRefactor flag ( #5329 )
...
Cleanup. This change has been rolled out to significant number of
customers already, and we have another parallel version behind a flag.
2023-11-14 13:03:23 +01:00
Fredrik Strand Oseberg
834ae1d8a4
Feat/pagination loading ( #5325 )
...
This PR makes changes to how the project overview skeleton screen works.
Important changes:
- Add skeleton screens to missing elements, creating a more
comprehensive loading screen
- Split the page into different loading sections, so that we can load
the table when we fetch the next page without affecting the rest of the
page.
https://www.loom.com/share/e5d30dc897ac488ea80cfae11ffab646
Next steps:
* Hide bar if total is less than 25
* Add FE testing
2023-11-13 14:08:48 +01:00
Nuno Góis
4d1f76e61b
fix: take into account project segments permission ( #5304 )
...
https://linear.app/unleash/issue/SR-164/ticket-1106-user-with-createedit-project-segment-is-not-able-to-edit-a
Fixes a bug where the `UPDATE_PROJECT_SEGMENT` permission is not
respected, both on the UI and on the API. The original intention was
stated
[here](https://github.com/Unleash/unleash/pull/3346#discussion_r1140434517 ).
This was easy to fix on the UI, since we were simply missing the extra
permission on the button permission checks.
Unfortunately the API can be tricky. Our auth middleware tries to grab
the `project` information from either the params or body object, but our
`DELETE` method does not contain this information. There is no body and
the endpoint looks like `/admin/segments/:id`, only including the
segment id.
This means that, in the rbac middleware when we check the permissions,
we need to figure out if we're in such a scenario and fetch the project
information from the DB, which feels a bit hacky, but it's something
we're seemingly already doing for features, so at least it's somewhat
consistent.
Ideally what we could do is leave this API alone and create a separate
one for project segments, with endpoints where we would have project as
a param, like so:
`http://localhost:4242/api/admin/projects/:projectId/segments/1 `.
This PR opts to go with the quick and hacky solution for now since this
is an issue we want to fix quickly, but this is something that we should
be aware of. I'm also unsure if we want to create a new API for project
segments. If we decide that we want a different solution I don't mind
either adapting this PR or creating a follow up.
2023-11-09 09:37:47 +00:00
andreas-unleash
3e9d88f789
Feat/scheduled cr UI tests ( #5296 )
...
Ui tests scheduled change requests
Closes # [1-1598](https://linear.app/unleash/issue/1-1598/e2e-ui-tests )
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2023-11-08 14:28:16 +02:00
Jaanus Sellin
24f9fa3058
feat: connect search and filter with server api ( #5297 )
2023-11-08 14:19:40 +02:00
Jaanus Sellin
4bacd3e055
feat: introduce offset based search instead of cursor ( #5274 )
2023-11-08 11:12:42 +02:00
andreas-unleash
addda5b022
feat: schedule changes dialog ( #5285 )
...
Closes: #
[1-1585](https://linear.app/unleash/issue/1-1585/reschedule-changes-dialog )
[1-1582](https://linear.app/unleash/issue/1-1582/change-apply-changes-apply-or-schedule-changes )
Manually tested e2e -> Approve -> Schedule -> Reschedule ->
Apply/Reject: ui tests verifying it in next pr
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
2023-11-07 10:59:49 +02:00
Fredrik Strand Oseberg
92e2b1890c
Refactor/project overview api calls ( #5279 )
...
This PR reduces the overhead of making API calls on pages with heavy
renders. We forego loading states and default error handling in favor of
more speed by avoiding triggering multiple re-renders from the API call.
2023-11-07 09:19:55 +01:00
Mateusz Kwasniewski
fe61947435
feat: serach and filter input to query param parser ( #5255 )
2023-11-03 10:10:46 +01:00
Mateusz Kwasniewski
bc66fb649f
feat: infinite scroll API trigger ( #5242 )
2023-11-01 15:56:06 +01:00
Mateusz Kwasniewski
d074254b61
feat: connect project overview table to search api ( #5237 )
2023-11-01 12:05:42 +01:00
andreas-unleash
3b0b372f75
feat: playground token input usage tracking ( #5157 )
...
Track usage of the new token input
Closes #
[1-1551](https://linear.app/unleash/issue/1-1551/plausible-track-usage-of-token-input )
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-10-26 14:28:12 +03:00
Fredrik Strand Oseberg
3ee250ee7d
feat: add feature search service ( #5149 )
2023-10-25 15:18:52 +02:00
Nuno Góis
6ffca07d51
feat: use new on/off endpoints in banners toggles ( #5144 )
...
https://linear.app/unleash/issue/2-1556/adapt-toggles-in-banners-table-to-use-the-new-on-and-off-endpoints
Uses the new on/off endpoints in the banners table toggles.
Also includes a missing rename for the `useMessageBannersApi` hook, to
`useBannersApi`.
2023-10-25 12:27:47 +01:00
Nuno Góis
3ca22c7c5c
feat: banner modal ( #5132 )
...
https://linear.app/unleash/issue/2-1548/ui-create-banner-newedit-modal
Adds a new banner modal (and form) that allows admins to create and edit
banners.
Also adds a new `FormSwitch` common component that may be helpful in
different situations where we need a switch on a form.
<img width="1263" alt="image"
src="https://github.com/Unleash/unleash/assets/14320932/1b89db9b-9003-413c-8829-c37d245e2487 ">
2023-10-24 16:26:44 +01:00
Nuno Góis
957546e305
refactor: rename message banners to banners ( #5098 )
...
https://linear.app/unleash/issue/2-1531/rename-message-banners-to-banners
This renames "message banners" to "banners".
I also added support for external banners coming from a `banner` flag
instead of only `messageBanner` flag, so we can eventually migrate to
the new one in the future if we want.
2023-10-19 13:18:25 +01:00
Thomas Heartman
8954277d20
chore(ui): add splash screen for oss segments ( #5053 )
...
This PR adds a splash screen for segments being open-sourced.
It looks like this:
![image](https://github.com/Unleash/unleash/assets/17786332/bf8766e6-b9cc-4f0b-a6d1-f6e89e21d844 )
## About the changes
I've more or less wholesale copied the demo dialog that @nunogois
implemented. I've put it in the `splash` directory for now (because
that's where it seemed most appropriate). The reason for straight
copying it instead of extending existing functionality is primarily that
this should be short-lived and deleted after the next release or so. So
isolating all the changes into a single directory seems like a good
idea.
## Discussion points
Because OSS installations don't connect to Unleash, we can't use feature
flags to control the rollout here. Instead, we must just assume that OSS
users will want to see it. If there is a better way we can control this,
that'd be great. I'd love to be able to use time constraints to not show
this after a certain date, for instance, but I don't think that's
something we can do right now?
The splash is also set to display on any page you're at when you first
load unleash. However, closing the dialog (either by closing or by
asking to see segments) will store that in localstorage, and you won't
be shown the dialog again.
---------
Co-authored-by: Nuno Góis <github@nunogois.com>
2023-10-19 08:28:14 +02:00
Nuno Góis
5456d1d985
feat: add message banner API hooks ( #5078 )
...
https://linear.app/unleash/issue/2-1510/create-message-banner-hooks-that-connect-to-the-new-api-endpoints
Adds new message banner API hooks that will allow us to do CRUD
operations for message banners in the UI.
2023-10-18 18:56:09 +01:00
Mateusz Kwasniewski
e9e110f702
feat: show dependencies only when using pro/enterprise or at least on… ( #5052 )
2023-10-16 20:56:06 +02:00
Mateusz Kwasniewski
092ba2a625
feat: track add and remove dependencies ( #5041 )
2023-10-16 10:57:55 +02:00
Nuno Góis
6c21ed5f74
feat: make maintenance-related 503s more intuitive ( #5018 )
...
This makes maintenance-related 503s more intuitive on our UI by
mentioning that maintenance banner is currently enabled.
![image](https://github.com/Unleash/unleash/assets/14320932/43142c58-6b87-4b2d-9239-50f2bb1409e6 )
2023-10-16 09:27:29 +01:00
Mateusz Kwasniewski
19bc519e1b
feat: Verify archive dependent features UI ( #5024 )
2023-10-13 14:31:37 +02:00
Mateusz Kwasniewski
2f84ac88e6
feat: delete dependnecy button through change request ( #4983 )
2023-10-10 14:38:10 +02:00
Mateusz Kwasniewski
b4c8f92a26
feat: do not allow to manage dependencies directly with cr enabled ( #4971 )
2023-10-10 09:25:03 +02:00
Mateusz Kwasniewski
ab739eb6c3
feat: Change request dependency UI ( #4966 )
2023-10-09 14:06:00 +02:00
andreas-unleash
b07c032d56
fix: update potentially-stale status dynamically ( #4905 )
...
Fixes 2 bugs:
- project-health-service keeping the feature types as an instance
variable and only updating it once was preventing real calculation to
happen if the lifetime value changed for a feature toggle type
- the ui was reading from a predefined map for the lifetime values so
they would never reflect the BE change
Closes #
[SR-66](https://linear.app/unleash/issue/SR-66/slack-question-around-potentially-stale-and-its-uses )
<img width="1680" alt="Screenshot 2023-10-02 at 14 37 17"
src="https://github.com/Unleash/unleash/assets/104830839/7bee8d4a-9054-4214-a1a2-11ad8169c3d5 ">
<img width="1660" alt="Screenshot 2023-10-02 at 14 37 06"
src="https://github.com/Unleash/unleash/assets/104830839/23bf55c7-a380-4423-a732-205ad81d5c3c ">
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-10-04 12:47:16 +03:00
andreas-unleash
c1f8929ddf
fix: separate project and project enterprise settings forms ( #4911 )
...
Separates ProjectForm and ProjectEnterpriseSettings forms
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2023-10-04 10:42:02 +03:00
Nuno Góis
280e21f073
refactor: bubble promise instead of return await ( #4906 )
...
Tiny refactor that bubbles promises instead of using `return await`.
Should be more consistent with the rest of the changes in
https://github.com/Unleash/unleash/pull/4903
2023-10-02 13:59:53 +01:00
Nuno Góis
4167a60588
feat: biome lint frontend ( #4903 )
...
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome
to the frontend as well.
![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65 )
Added a few `biome-ignore` to speed up the process but we may want to
check and fix them in the future.
2023-10-02 13:25:46 +01:00
Mateusz Kwasniewski
751bc465d6
feat: generate orval types with dependent features ( #4902 )
2023-10-02 12:35:20 +02:00
Mateusz Kwasniewski
fbc571dffc
feat: events for dependencies ( #4864 )
2023-09-29 14:02:15 +02:00
Nuno Góis
3cf8761364
fix: permissions in the role payload ( #4861 )
...
Fixes the role payload to include only the needed properties from
permissions. Fixes `400` (oneOf schema validation error) in project role
creation.
2023-09-28 15:55:46 +01:00
Mateusz Kwasniewski
72cca4f450
feat: display dependencies and parents in project details ( #4859 )
2023-09-28 13:37:52 +02:00
Mateusz Kwasniewski
6f4f6f049b
feat: inject project id to dependencies hooks ( #4839 )
2023-09-27 10:09:38 +02:00
Mateusz Kwasniewski
889377a246
feat: show available parent dependency options ( #4837 )
2023-09-27 08:10:15 +02:00
Mateusz Kwasniewski
45aca5b09e
feat: Connect add dependency api ( #4831 )
2023-09-26 11:18:42 +02:00
Nuno Góis
b9946ee35c
docs: Unleash Slack App integration ( #4801 )
...
https://linear.app/unleash/issue/2-1235/docs-slack-app-integration-documentation
This adds a new reference doc for the new Unleash Slack App integration
and marks the previous Slack integration as deprecated.
As a side-effect this PR also fixes an issue where we wouldn't be able
to delete tags with special characters.
---------
Co-authored-by: David Leek <david@getunleash.io>
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
2023-09-22 23:19:17 +01:00
Mateusz Kwasniewski
b4742df8be
feat: UI stub for adding dependent features ( #4814 )
2023-09-22 11:26:45 +02:00
Ivar Conradi Østhus
013efac46b
feat: open-source segments 🚀 ( #4690 )
...
We love all open-source Unleash users. in 2022 we built the [segment
capability](https://docs.getunleash.io/reference/segments ) (v4.13) as an
enterprise feature, simplify life for our customers.
Now it is time to contribute it to the world 🌏
---------
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2023-09-19 11:24:26 +00:00
Mateusz Kwasniewski
4484615321
fix: prevent blur when selecting text ( #4762 )
2023-09-18 14:42:41 +02:00
Simon Hornby
7843c93dc5
feat: add a button to download user access information ( #4746 )
2023-09-15 11:51:29 +02:00
andreas-unleash
f9bca20c78
Feat/project private mode ( #4743 )
...
Adds `private` option to project mode
Update schemas and models to accept and persist
Closes #
[1-1366](https://linear.app/unleash/issue/1-1366/introduce-private-in-collaboration-mode )
---------
Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-09-15 11:01:25 +03:00
Thomas Heartman
ab4c1e0193
feat: add feature naming pattern tracking ( #4678 )
...
This PR adds plausible metrics for feature naming patterns. The changes
are tracked whenever the form is submitted and the naming pattern has
changed. We track three different actions:
- added :: if there was no pattern before and now there is one
- removed :: if there was a pattern before and now there is none
- changed :: if there was a pattern before and now there is a different
one
The corresponding event type has been created in plausible.
2023-09-14 09:32:15 +02:00
Fredrik Strand Oseberg
78273e4ff3
chore: dora cleanup ( #4676 )
...
This PR adds:
* Generated types for useProjectDoraMetrics
* Mobile enhancements
* Tooltips
---------
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
2023-09-13 15:50:42 +02:00
Mateusz Kwasniewski
ba73d9a0d1
feat: keyboard navigation in search ( #4651 )
2023-09-11 12:53:31 +02:00
Tymoteusz Czech
a9ac81a089
feat: useUiFlag shorthand hook ( #4566 )
...
## About the changes
Instead of this:
```ts
const { uiConfig } = useUiConfig();
const myFlag = Boolean(uiConfig?.flags?.myFlag)
```
we can have this:
```ts
const myFlag = useUiFlag("myFlag")
```
With the same type safety, less verbose and more purposeful code.
### Important files
- `frontend/src/hooks/useUiFlag.ts`
## Discussion points
Can we in the future share flags between frontend and backend? Right now
adding a new flag has to be done in 4 different places (backend flag
keys list, backend flags defaults config, backend experimental server
options, frontend type).
Most ergonomic option is to pull config directly from Unleash.
Issue, based on previous user feedback:
https://github.com/Unleash/unleash/issues/4565
Internal feature request document:
[docs.google.com/document/d/1Sx0q...](https://docs.google.com/document/d/1Sx0qKZXUVUCjuY5F4MOh1ieOM1A2_jE58zEA7jaM_1g/edit?usp=sharing )
2023-09-11 10:01:20 +02:00
Fredrik Strand Oseberg
26ade79d66
Fix/dora polish ( #4645 )
...
This PR includes:
* Tests for retrieving lead time per feature toggle and project average
* Feedback component
2023-09-08 14:18:58 +02:00
Jaanus Sellin
0b5a7b7d36
feat: add plausible to integrations ( #4647 )
2023-09-08 15:01:12 +03:00