1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
Commit Graph

2906 Commits

Author SHA1 Message Date
Jaanus Sellin
19fbd7a0c4
fix: change application success to checkbox icon (#6417) 2024-03-04 14:16:45 +02: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
Tymoteusz Czech
4fc0a806f1
Insights dashboard refactor (#6404)
- reorganized dashboard components
- added share link
- health chart aggregated data
- refactored chart placeholders
2024-03-04 12:56:17 +01: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
andreas-unleash
0c9838b26a
Feat: metrics chart tooltip refactoring (#6414)
Refactoring after moving aggregation to BE
<img width="1357" alt="Screenshot 2024-03-04 at 12 14 28"
src="https://github.com/Unleash/unleash/assets/104830839/9881ba13-69a3-49d9-bb3f-3316a9287a06">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-04 12:37:03 +01:00
andreas-unleash
6c710f68a7
Feat: metrics chart tooltip (#6409)
Creates the Metrics chart tooltip

Data are summarised per week and grouped per project

<img width="1454" alt="Screenshot 2024-03-01 at 18 14 11"
src="https://github.com/Unleash/unleash/assets/104830839/0707f764-b067-4171-86bb-0592b846fcda">

Post refactoring image (matches)

<img width="1357" alt="Screenshot 2024-03-04 at 12 14 28"
src="https://github.com/Unleash/unleash/assets/104830839/324981e3-ace2-4198-9620-23d7182a9702">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2024-03-04 12:17:48 +02:00
andreas-unleash
7b67f218eb
fix: Project select bug with duplicate values (#6405)
Project select fix for Executive Dashboard and Playground

Extract the select to it's own component and move to `common`
Re-use for both Dashboard and Playground
Adds the id in parenthesis when there are duplicate names

<img width="1406" alt="Screenshot 2024-03-01 at 12 04 22"
src="https://github.com/Unleash/unleash/assets/104830839/379ea11f-d627-493e-8088-a739d58fba61">
<img width="1434" alt="Screenshot 2024-03-01 at 12 36 46"
src="https://github.com/Unleash/unleash/assets/104830839/9c5cf863-002c-4630-ac3a-4a869303a308">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-01 14:28: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
Tymoteusz Czech
ae077558c0
feat: insights project filtering hooks with tests (#6403)
Hooks to filter and aggregate insights data on frontend
2024-03-01 10:15:16 +00:00
Tymoteusz Czech
446b2b2a2d
refactor: improve link field customizability (#6402)
Add ability to reuse "copy link" dialogue in other places
2024-03-01 11:01:58 +01:00
Tymoteusz Czech
d057703b2f
update openapi: add users to insights (#6401)
frontend types update
2024-03-01 10:45:04 +01:00
Mateusz Kwasniewski
677beb190a
feat: outdated SDKs UI (#6391) 2024-02-29 15:48:44 +01:00
Nuno Góis
bddc508582
chore: actions filter constraints (#6389)
https://linear.app/unleash/issue/2-1952/adapt-actions-form-ui-to-unleash-constraint-operators

Implements the new action filters UI, now powered by constraint
operators.

This PR goes through some effort to not touch existing components too
much, especially since they are critical for activation strategies.
Instead, the new feature tries to adapt to the existing components and
styling them appropriately, while still re-using them. We can refactor
this at a later stage if needed.

This UI will face some more drastic changes in the near future due to
the feature rename, so I wanted to keep this PR mostly scoped to the
constraint operators before proceeding with more changes.


![image](https://github.com/Unleash/unleash/assets/14320932/f4bef4e0-33bd-463c-a252-e1cc0c22e843)


![image](https://github.com/Unleash/unleash/assets/14320932/192a3bd4-f11d-4619-b826-bbf5df80050c)


![image](https://github.com/Unleash/unleash/assets/14320932/fcfc0239-a28f-446d-a901-2e73f0add1a2)


As always, did some manual tests and it seems to be working great!
2024-02-29 12:56:48 +00:00
Gastón Fournier
4f638a1c8d
fix: bad segment edit link (#6390)
## About the changes
Fixes a bad link which leads to editing a global segment from project
settings mimicking
67928209ef/frontend/src/component/segments/EditSegmentButton/EditSegmentButton.tsx (L22-L28)
2024-02-29 13:54:31 +01:00
Jaanus Sellin
b4a8b0f780
feat: application environment ordered and timeago min time (#6374) 2024-02-29 14:11:56 +02:00
Jaanus Sellin
2bf11b2ea9
fix: appliction was rendered too early (#6388) 2024-02-29 14:03:36 +02:00
Jaanus Sellin
a958797a8a
feat: add creation buttons to application features and strategies (#6387)
![image](https://github.com/Unleash/unleash/assets/964450/2c8215af-3ab3-43e6-bdeb-1ae36aad3aa3)
2024-02-29 12:25:42 +02:00
Jaanus Sellin
8f30904905
feat: new application header design (#6379)
- remove application icon
- Update font for created text
- change "Delete" button into a trash can button


![image](https://github.com/Unleash/unleash/assets/964450/c956ea23-8ac0-4c0b-9ef4-287f895ecc2f)
2024-02-29 10:38:43 +02:00
Mateusz Kwasniewski
84400323d6
feat: sdk reporting tracker (#6378) 2024-02-28 15:52:03 +01:00
Jaanus Sellin
df93827002
feat: remove applications from project list that do not exist (#6377) 2024-02-28 16:26:53 +02:00
Mateusz Kwasniewski
4392fa5890
fix: break on words not on all (#6370) 2024-02-28 14:18:21 +01:00
Mateusz Kwasniewski
3aff5d80a0
fix: last seen instance with timezone (#6376) 2024-02-28 13:00:07 +01:00
Mateusz Kwasniewski
2bf46d9369
refactor: Information tooltip instances (#6375) 2024-02-28 12:26:15 +01:00
Jaanus Sellin
7af7b32bd5
feat: application overview ux improvements (#6371)
1. Added navigation from environments to instances
2. Last seen is now shown as TimeAgo
3. Added icons for total environments and features
4. Fixed schema


![image](https://github.com/Unleash/unleash/assets/964450/4d0a51a9-7141-4854-ada9-72676e42239c)
2024-02-28 12:39:33 +02:00
Mateusz Kwasniewski
9a12257568
feat: info icon instances for 2 days (#6373) 2024-02-28 11:22:31 +01:00
Tymoteusz Czech
ba2b90af42
Dashboard charts - always show past 3 months (#6372) 2024-02-28 10:33:49 +01:00
andreas-unleash
74c760bf4c
chore: remove changeRequestConflictHandling flag (#6364)
What it says on the tin

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-28 10:16:35 +02:00
Tymoteusz Czech
96c86b221b
feat: improved health chart tooltip (#6359) 2024-02-28 08:58:27 +01:00
Mateusz Kwasniewski
b82a650dab
feat: connected instances support query param for env (#6362) 2024-02-28 08:57:34 +01:00
Mateusz Kwasniewski
b738a2a1bc
fix: application list padding (#6365) 2024-02-27 15:05:37 +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
andreas-unleash
9101c39eb7
chore: remove scheduledConfigurationChanges flag (#6360)
What is says on the box

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-27 14:57:34 +02:00
Tymoteusz Czech
6cefe71534
feat: insights feedback (#6345) 2024-02-27 13:12:18 +01:00
Mateusz Kwasniewski
20a9e1d725
refactor: remove unused components and rename new (#6357) 2024-02-27 12:22:47 +01:00
Jaanus Sellin
9cd324bd7c
feat: projects using this application (#6355)
![image](https://github.com/Unleash/unleash/assets/964450/bcb5a612-3202-46ae-be20-bd23cbd8d6e4)
2024-02-27 12:24:44 +02:00
Mateusz Kwasniewski
c049374a25
chore: remove new strategy configuration flag (#6335) 2024-02-27 11:23:49 +01:00
Mateusz Kwasniewski
e9603f866b
refactor: connected instances extract hook refactoring (#6353) 2024-02-27 10:49:57 +01:00
Mateusz Kwasniewski
d6e0bea2f0
feat: use connected instances api with orval type (#6352) 2024-02-27 09:49:25 +01:00
Tymoteusz Czech
ed44de6c94
feat: simplified insights data fetching (#6342)
Simplify insights data fetching - let charts pick data instead of
preparing labels in hook.
2024-02-27 09:20:45 +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
Tymoteusz Czech
fd87fd4e7d
Insights UI (#6341)
- style for headers in Insights dashboard and project selector
- fixed React element key issue in gauge chart
- fixed React attribute issue in Health stats
- active/inactive user stats from backend
2024-02-26 15:51:14 +01:00
Mateusz Kwasniewski
2c5d4ba0ce
feat: set default env columns in project overview to 3 (#6338) 2024-02-26 13:10:45 +01:00
andreas-unleash
4c340a5224
fix: track conflicts in new strategy screen (#6337)
Fixes a bug where the conflict tracking was only in the old feature
strategy edit screen.
- Ports the conflict tracking to the NewFeatureStrategyEdit screen

Closes #
[1-2093](https://linear.app/unleash/issue/1-2093/cr-conflict-detection-in-new-strategy-edit-screen)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-26 13:59:47 +02:00
Jaanus Sellin
12a085f5a0
chore: generate orval types (#6336) 2024-02-26 13:28:36 +02:00
Mateusz Kwasniewski
d1e93228a3
refactor: paginated data hook (#6333) 2024-02-26 11:24:41 +01:00
Nuno Góis
aa97cc4637
fix: better arrow design in network overview (#6331)
Improves the arrow design in the "Network overview" after aligning with
@nicolaesocaciu
2024-02-23 13:38:54 +00: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
Tymoteusz Czech
153c60d335
Dashboard custom tooltips (#6327)
Initial refactoring for custom tooltips
2024-02-23 11:02:26 +00:00
Jaanus Sellin
822851814a
feat: application overview issues schema (#6329) 2024-02-23 13:01:49 +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
Nuno Góis
a54ef27adc
chore: remove mermaid in favor of react archer (#6320)
https://linear.app/unleash/issue/2-1968/use-react-archer-instead-of-mermaid-in-the-network-overview

This PR removes [mermaid](https://github.com/mermaid-js/mermaid) in
favor of [react-archer](https://github.com/pierpo/react-archer), which
meant adapting `NetworkOverview` to use `react-archer` instead, since
that was the only remaining feature using `mermaid`.

Opted not to use RPS labels in the lines since it was very noisy
visually. Took the liberty to make some visual changes, but we can align
afterwards with @nicolaesocaciu if needed.

### Example with 1 app


![image](https://github.com/Unleash/unleash/assets/14320932/83bf3d52-8bb7-49cc-8fef-1d8f758090b7)

### Example with 3 apps


![image](https://github.com/Unleash/unleash/assets/14320932/c01b820e-92e1-495a-a360-0f8ff5fafe50)

### Example with 30 apps


![image](https://github.com/Unleash/unleash/assets/14320932/49314ee0-ad30-4c67-873e-7b91ca39d009)

### Example in light theme


![image](https://github.com/Unleash/unleash/assets/14320932/1ce7055f-df8f-4b4e-b731-bf0f951bbb0c)
2024-02-23 08:31:14 +00:00
Nuno Góis
ad864049da
fix: only show visible environments for that project in actions (#6318)
https://linear.app/unleash/issue/2-1969/actions-form-only-show-environments-scoped-to-the-current-project

Filters the environment options in actions to only show environments
that are currently visible for that project, safeguarding users from
configuring actions for invalid environments.


![image](https://github.com/Unleash/unleash/assets/14320932/115cc9cd-99a2-4863-aec0-8264459ef18a)
2024-02-23 08:24:32 +00:00
Tymoteusz Czech
7682429839
Dashboard health stats widget (#6262) 2024-02-23 09:05:59 +01:00
Mateusz Kwasniewski
474e53460a
fix: show total applications (#6326) 2024-02-23 07:18:11 +01:00
Mateusz Kwasniewski
42f6843029
refactor: application overview dom improvements and tests (#6325) 2024-02-23 06:56:46 +01:00
Mateusz Kwasniewski
0de0313563
feat: connect application envs to backend (#6324) 2024-02-22 21:58:19 +01:00
Mateusz Kwasniewski
ef021a9464
feat: capped at limit strategy in application usage (#6323) 2024-02-22 20:35:39 +01:00
Mateusz Kwasniewski
24d6d24e24
fix: minimum pagination size (#6322) 2024-02-22 20:30:59 +01:00
Mateusz Kwasniewski
8b0218df6a
test: project applications table (#6321) 2024-02-22 19:03:54 +01:00
Mateusz Kwasniewski
ade7a88d65
test: applications list ui (#6319) 2024-02-22 19:03:11 +01:00
Mateusz Kwasniewski
3dda4a1f0e
feat: switching to paginated applications list (#6316) 2024-02-22 15:15:50 +01:00
Mateusz Kwasniewski
edbd71ac15
feat: paginated hook for applications list (#6315) 2024-02-22 14:37:08 +01:00
Jaanus Sellin
fb63f21d8a
feat: project applications paging backend (#6312) 2024-02-22 15:35:16 +02:00
Mateusz Kwasniewski
dc214d376a
chore: generate orval types (#6310) 2024-02-22 12:50:17 +01:00
Mateusz Kwasniewski
ff70a92956
feat: paginated applications view (#6308) 2024-02-22 11:28:36 +01:00
Mateusz Kwasniewski
c64a780a13
feat: warning mode app env styling (#6305) 2024-02-22 08:41:50 +01:00
Fredrik Strand Oseberg
0ccfc29e26
fix: generalize multi action button (#6294)
This PR moves the CR specific logic out of the MultiActionButton and
generalises so that we can re-use it across the application. The CR
specific logic is moved into:

* ApplyButton.tsx
* ReviewButton.tsx

This fixes a bug where multi action button would be disabled if you
tried to apply an approved change request that you had created yourself.
2024-02-21 14:37:35 +01:00
Mateusz Kwasniewski
ac183e76f8
feat: Application elements lines (#6301) 2024-02-21 14:34:57 +01:00
Mateusz Kwasniewski
56cbe1485e
feat: styled application environment boxes (#6296) 2024-02-21 12:15:54 +01:00
Jaanus Sellin
7baed29c07
feat: application overview schema (#6295) 2024-02-21 12:59:55 +02: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
Thomas Heartman
c7182d8faf
fix: adjust padding of problem detected icon (#6293)
This PR adjusts the vertical position of the problem detected icon in
the environment selector.

<img width="1137" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/ef961bba-6380-4849-a81a-0468fc467b5c">
2024-02-21 10:58:14 +02:00
Mateusz Kwasniewski
e5c07f00cb
feat: rate limit password reset attempts (#6257) 2024-02-21 08:49:54 +01:00
Jaanus Sellin
f3c01545f2
feat: application graph (#6279)
Basic graph, that works with mock data.
Next steps, work on backend and try to put more content and **styling to
nodes**.

![image](https://github.com/Unleash/unleash/assets/964450/545d6527-ecd8-4010-a0fe-8001bc8c1456)
2024-02-21 09:13:18 +02:00
Thomas Heartman
f46d420b10
feat: add warning icons to environments in selector (#6290)
This PR adds warning icons to the environment selector for environments
that have problems detected. However, because we don't have any way
detect problems yet, this PR only adds the icons and the infrastructure
to display them. They're always set to "not displayed" for now.

The icons have "problems detected" as accessible text.

It looks like this when you add them in (for every environment):

<img width="1137" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/c29bfa52-ddee-4b16-b3ac-5c1f8fcc326e">
2024-02-21 13:28:37 +08:00
Thomas Heartman
ddae97080d
feat: wrap buttons in a fieldset and add an explanatory legend. (#6289)
This makes it more obvious to everyone what the buttons do.
2024-02-21 12:15:02 +08:00
Christopher Kolstad
7350c91a1e
fix: display all roles if we can't get project roles 2024-02-20 16:23:25 +01: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
Thomas Heartman
d967d4adb0
feat: add tabs (#6267)
This PR adds a new file "Application.tsx", which is analogous to the
existing Project.tsx file in that it contains the base layout for the
application page, as well as tabs pointing to sub pages. Currently, the
overview tab uses a paragraph with some fallback text, while the
connected instances table displays the instances table.

I have mostly copied the existing ApplicationEdit component and used
that as a base, assuming that we'll delete that component when we're
done with this.

<img width="1449" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/ac574a83-3cf4-4de5-a4de-188575074ecb">
2024-02-20 17:32:33 +08:00
Nuno Góis
7e6a3c7e69
fix: clickable names in inc wh and action tables (#6275)
https://linear.app/unleash/issue/2-1954/make-names-clickable-in-actions-and-incoming-webhooks

Makes names clickable in the incoming webhook and action tables. When
clicked, they open the edit form for that resource.


![image](https://github.com/Unleash/unleash/assets/14320932/973f38c0-2603-4cbf-9352-90ddfe0b6e3f)


![image](https://github.com/Unleash/unleash/assets/14320932/ff733899-b86a-494a-8d2c-65d53e19a356)
2024-02-20 09:28:00 +00:00
andreas-unleash
f71badd255
feat: dashboard project filtering (#6259)
Adds the same project selector Autocomplete as we use in the playground.
Implements the filtering 

Closes: #
[1-2036](https://linear.app/unleash/issue/1-2036/api-project-filtering)

<img width="1508" alt="Screenshot 2024-02-16 at 15 57 24"
src="https://github.com/Unleash/unleash/assets/104830839/4490e43c-17db-41b6-ba75-e7b0f2df0522">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-19 16:28:03 +02:00
Nuno Góis
9b980bb212
fix: small ui/ux adjustments to the actions form (#6269)
Small UI/UX adjustments to the actions form after aligning.


![image](https://github.com/Unleash/unleash/assets/14320932/5ededf9c-af54-4628-8fb3-0fcc6afc87dc)
2024-02-19 13:22:18 +00: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
Thomas Heartman
bd907244c4
chore: don't hide columns in connected instances table (#6264)
Don't hide anything yet, so remove related code. Plus other code we
don't need has been removed.
2024-02-19 14:37:13 +08:00
Thomas Heartman
0e9102fb22
feat: add connected instances table (#6263)
This PR adds a first iteration of the connected instances table on a new
connected instances tab of the application page (hidden behind a flag).

As a first version, it only uses data that we currently return for each
application (so no "connected through" or "last synchronized").

It also uses the existing version of the application data and just
filters it for the "production" environment right now.

Adding query parameters (and potentially a new URL?) to the applications
page (to save state and fetch data) will be done in a follow-up. This
should lay the groundwork for adding a new API too.

<img width="1485" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/4fb68456-d0f5-4f82-9246-5333a273df9c">
2024-02-19 14:12:12 +08: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
Thomas Heartman
e5fe4a7766
chore: add sdkReporting flag to front end (#6253)
It's already in the back end, but wasn't declared in the front end
flags.
2024-02-16 15:43:27 +08:00
Thomas Heartman
a8fa1ae347
fix: hide warnings that you'll overwrite changes on CRs that are already applied (#6214)
The current approach uses adds an extra parameter to the components and
passes it through from the parent components. It's never a lot of
levels, so it feels alright, but it's feels like a bit of a code smell.
I wonder if it would make sense to use a context for each change
request? 🤔

Supersedes: https://github.com/Unleash/unleash/pull/6181
2024-02-16 12:41:14 +08:00
Thomas Heartman
64a6af2858
feat: show info on what would be deleted (#6235)
This PR updates the way we show deleted strategies in the CR UI. Instead
of showing just the strategy name and a diff on hover, we show the same
strategy config as we do for new and updated strategies.

This makes it easier to see what you have deleted.

In doing so, it also fixes two issues:
1. inconsistent border radius for segment changes listed. Due to an
override in `frontend/src/themes/theme.ts`, these would get a border
radius of `theme.shape.borderRadiusLarge` instead of
`theme.shape.borderRadiusMedium`. It does this by adding a class and
making the selector more specific.
2. The background was unset for the strategy rollout box and constraint
item boxes.

It looks like this:

<img width="728" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/7cba28ac-0454-444d-8cfa-f46543ccf2dc">

<img width="728" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/832be653-3def-4afc-b72f-36fcd76ad83d">

Or with more kinds of strategies:
<img width="454" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/f18e5482-7d2e-4cbd-8177-9de6dfb10307">


Note: I'm happy to isolate the color changes to a separate PR if that's
preferable.
2024-02-16 04:13:40 +00:00
Mateusz Kwasniewski
c2b1fd20e5
fix: long descriptions should have tooltips (#6202) 2024-02-15 14:17:55 +01:00
Jaanus Sellin
8dc27204d1
feat: add gen:api:clean for clean orval schemas (#6244)
Created a build script that generates orval schemas with automatic
cleanup. Also generating new ones.

1. yarn gen:api **(generates schemas)**
2. rm -rf src/openapi/apis **(remove apis)**
3.  sed -i '1q' src/openapi/index.ts **(remove all rows except first)**
2024-02-15 11:45:35 +02:00
Nuno Góis
7a699cf68c
fix: refine project actions form (#6242)
https://linear.app/unleash/issue/2-1934/refine-the-actions-form-uiux

First effort in refining the project actions form to look slightly more
like the design, including some refactors.


![image](https://github.com/Unleash/unleash/assets/14320932/ab6e11b4-b3b4-4c58-8bd1-9fcc9cb7014b)
2024-02-15 08:28:20 +00:00
Nuno Góis
6a9f80c554
fix: misc UI/UX fixes (#6241)
https://linear.app/unleash/issue/UNL-338/adjustments-incoming-webhooks-actions

Includes misc UI/UX fixes, including a typo, the vertical alignment of
the Enterprise badge in project settings and the way incoming webhooks
are displayed in non-Enterprise plans.
2024-02-15 08:17:11 +00:00
Thomas Heartman
011008a361
fix: add missing key to list of application projects (#6243)
This is in the applications table. To achieve it, we also wrap the text in a span.
2024-02-15 07:56:26 +00:00
Tymoteusz Czech
0d51bad67b
feat: dashboard lead time gauge (#6225) 2024-02-14 13:32:12 +01:00
Jaanus Sellin
624524819a
chore: update orval types (#6238) 2024-02-14 13:13:34 +02:00
Jaanus Sellin
3d77825493
feat: project applications server side paging and sorting and filtering (#6236)
Uses exactly same pattern as search-store. Nothing too crazy here.
Most code is in tests.
2024-02-14 13:03:44 +02:00
Thomas Heartman
2ab99624d2
feat: show env var conflicts in change requests (#6182)
This PR adds showing of env variant conflicts in change requests.

This is a simple solution that only compares the total state of
variants. We *could* potentially do a modified version where we show
each and every variant as its own property. Because variants have to be
unique by name and because their names can't be changed after their
creation, we could create a map of variant name to their data.

<img width="1105" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/0c67f958-6c4e-453a-9791-0e132fb1f23e">
2024-02-14 10:12:19 +09:00
Jaanus Sellin
e50574dbef
chore: generate orval types (#6224) 2024-02-13 15:22:08 +02:00
Jaanus Sellin
eb5d7a3788
feat: sdk reporting flag and e2e test (#6216)
1. Add flag
2. Add e2e test with more complete example
3. Some bug fixes
2024-02-13 14:13:21 +02:00
andreas-unleash
1ad5b5062a
feat: Make storing to local storage robust (#6139)
Handles non serializable objects like Map and Set and makes the
serialisation/deserialisation process more robust generally.

Closes #
[UNL-322](https://linear.app/unleash/issue/UNL-322/add-types-to-local-storage-and-force-simple-types)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-13 09:36:15 +02: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
Tymoteusz Czech
c224d7dc4c
Feat: chart 'no-data' placeholder (#6172) 2024-02-12 16:10:46 +01:00
Tymoteusz Czech
3e7c2bb30e
Dashboard chart fill (#6167) 2024-02-12 15:30:17 +01:00
Mateusz Kwasniewski
b48d25a226
feat: default stickiness explanation (#6201) 2024-02-12 13:16:51 +01:00
andreas-unleash
3e4f31b588
Chore: add zendesk btn to error dialog (#6187)
Adds the option for a 3rd button in the Dialogue component
Adds a button to open our zendesk support page

Closes #
[1-2024](https://linear.app/unleash/issue/1-2024/review-the-ui-error-dialog)
<img width="1677" alt="Screenshot 2024-02-09 at 11 18 20"
src="https://github.com/Unleash/unleash/assets/104830839/bf69c9c2-456f-4b83-b80e-d72f0d678331">

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-02-12 10:26:45 +02: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
Gastón Fournier
924ea39ea2
feat: project actions UI form (#6115)
## About the changes
Add, delete, and update actions is already working. The UI still needs
some love, but it's functional

![image](https://github.com/Unleash/unleash/assets/455064/f990bc8c-902b-4e00-8a1a-3761c32780a3)

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-02-09 12:13:44 +00: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
4c1dfbefa7
chore: clean up customRootRolesKillSwitch (#6173)
https://linear.app/unleash/issue/2-1308/remove-customrootroleskillswitch-flag

Cleans up the `customRootRolesKillSwitch` flag.
2024-02-09 08:41:40 +00: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
Thomas Heartman
b77f3129f2
feat: show segment conflicts in crs (#6138)
This PR updates the diff calculation to work with both strategy changes
and segment changes. It also adds the corresponding segment change
conflict overview to segment updates.

<img width="1225" alt="image"
src="https://github.com/Unleash/unleash/assets/17786332/688a57a5-5cd7-4b0a-bd1e-df63189594d8">
2024-02-09 16:25:01 +09:00
Mateusz Kwasniewski
7e66a79f9f
feat: add disabled state handling on slow network (#6165) 2024-02-08 10:27:51 +01:00
Nuno Góis
cc2ccb1134
fix: network tab active state (#6154)
https://linear.app/unleash/issue/UNL-335/network-active-tab-state

Fixes the tab active state in Network by using the new `TabLink`
component.


![image](https://github.com/Unleash/unleash/assets/14320932/d8d4cc1e-9554-4b20-9991-b66e49663ae5)
2024-02-07 15:03:44 +00:00
Mateusz Kwasniewski
11bfcd605a
fix: overflowing description (#6150) 2024-02-07 12:51:10 +01:00
Mateusz Kwasniewski
3d1e0a6312
chore: upgrade to msw 2.x with new response declaration (#6148) 2024-02-07 11:33:55 +01:00
Mateusz Kwasniewski
d060427603
chore: update msw (#6147) 2024-02-07 10:58:29 +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
Mateusz Kwasniewski
2d7464f517
feat: make edge explicit in UI (#6132) 2024-02-05 13:34:22 +01:00
Fredrik Strand Oseberg
6a70ba0cd0
fix: add new steps to demo guide (#6112)
This PR adds the necessary steps for the demo guidance to work properly
with the new form
2024-02-05 11:36:15 +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
Mateusz Kwasniewski
1834f9f8bc
fix: show all selected application names (#6110) 2024-02-02 11:35:00 +01:00
Mateusz Kwasniewski
28fc36a1de
fix: exclude columns with commas (#6102) 2024-02-01 14:10:57 +01:00
Mateusz Kwasniewski
4e3ab7186c
feat: time to production chart (#6100) 2024-02-01 12:22:27 +01:00
Thomas Heartman
99b8fa2943
refactor: take chatgpt's suggestions for diff calc algorithm (#6086)
We had to make some updates to let the compiler know about the types and
fix an issue with nested objects not being compared as objects (instead
as strings), but this saves us a few lines and is hopefully more
readable.
2024-02-01 19:57:09 +09:00
Fredrik Strand Oseberg
de0bebd7ad
fix: set correct lables for project charts (#6099) 2024-02-01 10:31:11 +01:00
Jaanus Sellin
bb02ffd8c4
feat: A/B test search feedback variants (#6085)
Search was not getting any feedback. We introduced 3 different variants
to compare conversion rate.


![image](https://github.com/Unleash/unleash/assets/964450/9c4fbcd6-c6d9-4570-9a08-9321087f609a)

![image](https://github.com/Unleash/unleash/assets/964450/6d643d48-1dcb-4a67-9951-7f0c6865f31d)

![image](https://github.com/Unleash/unleash/assets/964450/423dbd54-5dd1-409c-9cd5-295edb9453d9)
2024-01-31 14:32:23 +02:00
Fredrik Strand Oseberg
79e86e1aca
feat: project health widget (#6092)
Adds the project health widget to the edb:

<img width="1243" alt="Skjermbilde 2024-01-31 kl 12 16 23"
src="https://github.com/Unleash/unleash/assets/16081982/7df1e4dc-3245-4c30-bb9e-f21e90697392">
2024-01-31 13:19:28 +01:00
Jaanus Sellin
0f901bbe12
fix: fix skeleton not appearing on feature toggle list (#6093)
The `FeatureToggleListTable` is nested directly within `PageContent`.
`PageContent` was cause for removing the skeleton from the table.
However, this is unnecessary because the table has its own loader that
manages the skeletons. Therefore, `PageContent` does not require a
loader.
2024-01-31 13:26:39 +02:00
Thomas Heartman
5417662f5a
chore: add metrics for conflict creation detection (#6022)
This PR adds a 'change-request-conflict-created' event whenever someone
save a strategy update for a strategy that's used in either pending or
scheduled change requests.

Data for pending change requests will only be sent if change requests
are enabled. Data for scheduled change requests will be sent regardless.

Getting this data is somewhat involved, so I've extracted as much of the
logic into a separate file as possible.

The event re-uses the existing `change_request` metric and sends the
following data for each change request that we discover conflicts on:

```ts 
{
  state: ChangeRequestState,
  changeRequest: string, // <unleash identifier>#<change request id>
  action: 'edit-strategy',
  eventType: 'conflict-created'
}
```

There's only one action for this for now, but we could expand this event
to things such as strategy deletion, feature archival, in the future.
That said, I'd be happy to take it out.

## Discussion points

### Has the strategy actually been updated?

This does not check whether a strategy has actually changed before
emitting the event, only that you save your strategy changes.

This assumes that most people will simply close the modal by
clicking/tapping outside it or using the escape key instead of pressing
save.

However, it will likely lead to some false positives. If we think that
is an issue, I would suggest adding a check that something in the
strategy has actually changed in a follow-up PR.
2024-01-31 18:56:56 +09:00
Tymoteusz Czech
d77e5391ed
refactor: FlagsChart and FlagsProjectChart components (#6087)
Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2024-01-31 09:50:50 +00:00
Tymoteusz Czech
e6ccd83739
refactor: LineChart component (#6072)
Initial version of a reusable trend chart, with a tooltip and vertical highlight
2024-01-31 10:07:29 +01:00
Jaanus Sellin
d7eb950f3a
chore: remove featureSearchAPI flag (#6081) 2024-01-31 10:01:31 +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
Jaanus Sellin
c6a2303026
chore: remove featureSearchFrontend flag (#6066) 2024-01-31 09:22:26 +02:00
Tymoteusz Czech
c9ac4916e8
feat: executive dashboard responsive grid (#6069)
- unified "Widget" component
- column order dependent on screen width
2024-01-30 17:02:13 +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
Tymoteusz Czech
46fb40ca08
fix: dashboard layout (#6063)
Align widgets properly on main screen. Responsive view in next PRs
2024-01-30 09:00:06 +01:00
Mateusz Kwasniewski
8a7e65eaa6
refactor: cleanup fix for persistent set (#6060) 2024-01-29 12:33:01 +01:00
Nuno Góis
c1046079dd
chore: actions modal form (#6057)
https://linear.app/unleash/issue/2-1882/ui-add-actions-modal-and-form

Adds actions modal and form, allowing users to create and edit actions.

The main thing that is missing is adding the remaining fields, which
will be included in a later PR.
2024-01-29 11:15:29 +00: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
Tymoteusz Czech
61c6583e24
Feat/dashboard chart tooltip (#6038)
Initial version of new chart tooltip
2024-01-26 14:33:11 +01:00
Fredrik Strand Oseberg
4a025a4b4b
feat: flag widget (#6047)
This PR adds the flag widget:

<img width="333" alt="Skjermbilde 2024-01-26 kl 14 16 19"
src="https://github.com/Unleash/unleash/assets/16081982/57b8c312-fcd5-4a3f-85f7-76514c671912">
2024-01-26 14:22:16 +01:00
Nuno Góis
6ee4d2724e
fix: actions table UI improvements (#6042)
Includes some small fixes and improvements to the actions table UI:
 - Fix webhook icon not properly loading
 - Make actions execution param names bold in the tooltip
 - Make filters param names bold in the tooltip
2024-01-26 09:52:19 +00:00