1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-01 00:08:27 +01:00
Commit Graph

663 Commits

Author SHA1 Message Date
David Leek
20da40d38d
feat: move recording recently visited into separate component (#7494) 2024-07-01 10:35:02 +02:00
Mateusz Kwasniewski
3525928fea
feat: configurable strategies limit (#7488) 2024-07-01 10:03:26 +02:00
Jaanus Sellin
82a53fa9b3
feat: introduce large cache for swr (#7470)
Previously, clearing the SWR cache cleared all entries. Now you can
configure the cache size.

1. This makes the search more fluid. Previously, if you went back and
forth on pages, you were always sent to the loading state.
2. This also solves the issue where the command bar search cleared the
cache for all other searches.
3. Additionally, it addresses the problem where the global search
cleared the cache for project search.
2024-06-28 10:44:35 +03:00
Jaanus Sellin
82822a735b
feat: command bar track events (#7469)
Start tracking plausible events

1. Log the search keywords that returned 0 results
2. Track all clicks, based on source(search/recents/pages), type etc.
2024-06-27 12:48:57 +03:00
David Leek
507a2bca83
chore: add some tests for the useRecentlyVisited hook (#7380) 2024-06-13 08:38:51 +02:00
David Leek
576dd04dc5
feat: command bar poc (#7350)
Command bar PoC using clone of search

---------

Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-06-11 15:27:59 +03:00
Jaanus Sellin
3acb3ad2c2
feat: upgrade from react v17 to v18 (#7265)
**Upgrade to React v18 for Unleash v6. Here's why I think it's a good
time to do it:**
- Command Bar project: We've begun work on the command bar project, and
there's a fantastic library we want to use. However, it requires React
v18 support.
- Straightforward Upgrade: I took a look at the upgrade guide
https://react.dev/blog/2022/03/08/react-18-upgrade-guide and it seems
fairly straightforward. In fact, I was able to get React v18 running
with minimal changes in just 10 minutes!
- Dropping IE Support: React v18 no longer supports Internet Explorer
(IE), which is no longer supported by Microsoft as of June 15, 2022.
Upgrading to v18 in v6 would be a good way to align with this change.

TS updates:
* FC children has to be explicit:
https://stackoverflow.com/questions/71788254/react-18-typescript-children-fc
* forcing version 18 types in resolutions:
https://sentry.io/answers/type-is-not-assignable-to-type-reactnode/

Test updates:
* fixing SWR issue that we have always had but it manifests more in new
React (https://github.com/vercel/swr/issues/2373)

---------

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2024-06-11 13:59:52 +03:00
Mateusz Kwasniewski
a91b77a7ce
feat: filter by created by (#7306) 2024-06-06 12:59:11 +02:00
Christopher Kolstad
0db5bc193f
task: upgraded semver dependency (and biome) (#7272)
Sorry for the extra noise here, but this seems to be the biome upgrade
altering formatting slightly.
2024-06-04 15:01:43 +02:00
Mateusz Kwasniewski
95f5f7a20b
feat: Recent flags (#7211) 2024-05-29 16:01:52 +02:00
Mateusz Kwasniewski
439ee63387
feat: Synced last viewed projects (#7208) 2024-05-29 12:58:14 +02:00
Mateusz Kwasniewski
dbc14fa7e9
feat: last viewed project (#7191) 2024-05-28 15:47:26 +02:00
David Leek
9ea66e8850
chore: remove deprecated legacy features endpoint (#7129)
This PR is part of #4380 - Remove legacy `/api/feature` endpoint.

## About the changes

### Frontend
- Removes the useFeatures hook
- Removes the part of StrategyView that displays features using this
strategy (not been working since v4.4)
- Removes 2 unused features entries from routes 

### Backend
- Removes the /api/admin/features endpoint
- Moves a couple of non-feature related tests (auth etc) to use
/admin/projects endpoint instead
- Removes a test that was directly related to the removed endpoint
- Moves a couple of tests to the projects/features endpoint
- Reworks some tests to fetch features from projects features endpoint
and strategies from project strategies
2024-05-27 09:24:09 +02:00
Mateusz Kwasniewski
68427f841b
feat: Persist navigation settings (#7144) 2024-05-24 13:21:12 +02:00
Jaanus Sellin
2fb95339ef
chore: change toggle to flag #3 (#7101) 2024-05-22 09:58:53 +03:00
Jaanus Sellin
8897f2ea75
chore: rename toggle to flag #1 (#7092)
Rename feature toggle to feature flag in the UI and code.
Starting with low hanging fruits.
Trying to keep these ~100 LoC.
2024-05-21 15:18:00 +03:00
Mateusz Kwasniewski
8a6daeee1e
refactor: replace useProject with useProjectOverview (#7087) 2024-05-20 15:15:24 +02:00
Mateusz Kwasniewski
ee92001bf5
fix: deprecate useProjectNameOrId (#7086) 2024-05-20 14:20:13 +02:00
Jaanus Sellin
17e340ab40
feat: project level outdated sdks, project level banner (#7083)
At first, I was creating a new component, Project Banner, which was 90%
of the old banner and 10% new code, but it did not feel right. The
current banner is actually smart enough to be used in any container. So
now, I have moved the outdated SDK banner to the project level.

I like the simplicity of the change.


![image](https://github.com/Unleash/unleash/assets/964450/e57c1ace-e8f9-4866-a063-6f9ae561c6c0)
2024-05-20 14:15:39 +03:00
David Leek
dfc0c3c63f
feat: refactor data usage into hooks, estimate monthly added fees (#7048)
- Refactors data processing and overage calculations to separate hooks
- Adds support for estimating traffic costs based on monthly usage up to
current point
- Adds accrued traffic charges to the billing page


![image](https://github.com/Unleash/unleash/assets/707867/39a837c2-5092-49b8-8bbf-46d8757635c0)


![image](https://github.com/Unleash/unleash/assets/707867/55ecfa5e-afe1-4cb6-9aa4-7dd67db4248c)
2024-05-17 15:27:32 +02:00
David Leek
793cd76e93
feat: move SCIM config into separate tab (#7055)
Moves SCIM config back into separate tab


![image](https://github.com/Unleash/unleash/assets/707867/910f2128-08de-4460-a9e8-a606342669cd)
2024-05-16 08:01:32 +02:00
Mateusz Kwasniewski
56f2dd658e
feat: track complete event (#7047) 2024-05-13 14:51:28 +02:00
Jaanus Sellin
3f983d061a
feat: mark completed ui selector (#7025)
![image](https://github.com/Unleash/unleash/assets/964450/c6baa90b-5abb-4ba4-a3d9-36af6b426ed6)
2024-05-09 16:55:09 +03:00
Jaanus Sellin
28a7797aea
feat: feature lifecycle completed schema (#7021)
1. Added new schema and tests
2. Controller also accepts the data
3. Also sending fake data from frontend currently

Next steps, implement service/store layer and frontend
2024-05-09 09:51:44 +03:00
Thomas Heartman
b043bcdd4a
feat: front end can create projects without ids (#7009)
This PR updates the new project creation form to not include the project
ID in the payload (because it's generated by the back end now).
2024-05-08 14:57:07 +02:00
Ivar Conradi Østhus
64c10f9eff
poc: many strategies pagination (#7011)
This fixes the case when a customer have thousands of strategies causing
the react UI to crash. We still consider it incorrect to use that amount
of strategies and this is more a workaround to help the customer out of
a crashing state.

We put it behind a flag called `manyStrategiesPagination` and plan to
only enable it for the customer in trouble.
2024-05-08 14:20:51 +02:00
Thomas Heartman
bd0cd018c9
support setting mode and stickiness in new project form (#6972)
This PR is a combination of two PRs:

This PR adds a functioning environment selection button to the new project creation form. Selected environments are added to the payload and to the API preview.

The implementation is mostly lifted from the existing FilterItem component we have for search filters. However, our need here is less complex, so I've removed some of the things we don't need. There is still more cleanup to be done, however, but I'd like to implement the rest of the submenus first, to see what we really do need in the end.

---

This PR adds support for stickiness and project mode in the new project
creation form.

Achieve this, it does a few things:

1. Moves `resolveStickinessOptions` from
`frontend/src/component/feature/StrategyTypes/FlexibleStrategy/StickinessSelect/StickinessSelect.tsx`
and into a separate hook. This component was used by the old project
creation form. Because the new form has a different input, but needs the
same option, moved that code into a reusable hook.
2. It adds functioning buttons for project stickiness and mode.
3. It adds labels to the search inputs for the dropdowns. Inputs *must*
have labels to meet a11y requirements. However, the designs don't have
labels, so we can hide them visually. Though that leads to another issue
(refer to the screen shot below).
4. It updates the `SelectionButton` component to handle both single- and
multiselect cases. It instead exports these two subcomponents. These are
currently in one file, but I'll split them out into their separate files
in a later PR.

As a side effect of working with the selection buttons, it also improves
how we handle keyboard interaction for these buttons.

Here's what it looks like for single-select lists. Notice the missing
part of the input's border around the top (where the label *would* be if
we showed it). We should figure out how best to handle it. I've done
like this for now, but we can sort it out later.


![image](https://github.com/Unleash/unleash/assets/17786332/5af979c2-6635-481e-8d3e-5aad1c0ab46f)
2024-05-03 07:27:13 +02:00
Jaanus Sellin
7022ce8afb
feat: rever to live connected to backend (#6951)
![Screenshot from 2024-04-26
13-30-48](https://github.com/Unleash/unleash/assets/964450/03c57c62-bf51-440b-935d-46da729e3157)
![Screenshot from 2024-04-26
13-15-45](https://github.com/Unleash/unleash/assets/964450/c5ac44be-39dc-4b6c-97ec-5fc56b0cc111)
2024-04-26 13:43:38 +03:00
Jaanus Sellin
7d01dbb748
feat: feature completed connected to backend (#6947)
Connects feature complete to backend
2024-04-26 12:20:34 +03:00
David Leek
d1bb65bebd
feat: scim assume control UI - move scim into sso configs (#6929)
- Adds support for the configuration option for SCIM taking over control
of users and groups
- Moves SCIM settings into SSO config pages (OIDC and SAML). SCIM
registers a callback to be invoked when saving in a parent SSO config
page
2024-04-25 15:39:56 +02:00
Jaanus Sellin
f0ef7a6f31
feat: feature lifecycle getter hook (#6876) 2024-04-18 09:02:03 +03:00
Thomas Heartman
442327eb07
fix: don't add project flag table state config to browser history (#6824)
This change specifies the update type as `replace` for the
`useQueryParams` hook used to set table state.

Primarily, this prevents the column selection from being added to the
browser
history and more importantly prevents you from changing your config by
navigating through browser history.

However, this also affects other table state, such as changing sorting
order etc. These will also no longer be added to the browser history.

---

Bug description:

In the project flag table, you can select which env columns to show.
However, adding and removing these envs get added as steps in your
browser history. This means that if you add 3 envs, you:

1. have to go back three times to get back to the previous page
2. In doing so, you also inadvertently revert the choices you mean,
which can be confusing.

Steps to reproduce:

1. Navigate to the project screen
2. Use the column selector to add/remove projects. Notice that the URL
changes for each selection you make.
3. After making one or more changes, use the browser's
back-functionality. Notice that you stay on the same page but that the
selected envs (and the URL) change.
2024-04-12 10:58:17 +02:00
Nuno Góis
f4ef06f69b
chore: SCIM guard for users (#6836)
https://linear.app/unleash/issue/2-2093/api-should-not-allow-manual-management-of-scim-managed-users-in

Introduces a SCIM guard for SCIM users. SCIM users should be managed
exclusively by the SCIM client, not Unleash.

We decided to be restrictive for now, completely covering all of the
write methods, but may fine-tune some of this at a later stage.

Will eventually be followed up by a UI-centric PR.
2024-04-12 08:23:35 +01:00
Fredrik Strand Oseberg
7f1c46a576
fix: show loading features only when loading is happening (#6817)
Previously, the dummy data would persist when there is no data coming
from the API. This causes us to display dummy data in the dora metrics
table which is not correct. This PR fixes that by only showing the
loading features when we are actually loading.
2024-04-10 12:43:22 +02:00
Nuno Góis
032419aa76
chore: SCIM settings UI (#6800)
https://linear.app/unleash/issue/2-1981/ui-allow-users-to-set-up-scim

Adds UI for Provisioning (SCIM) settings.


![image](https://github.com/Unleash/unleash/assets/14320932/e24cf4dd-09d5-459d-bf8a-dd75a966d8eb)


![image](https://github.com/Unleash/unleash/assets/14320932/090a8279-1e98-4d4a-8e21-98cf311f1721)


![image](https://github.com/Unleash/unleash/assets/14320932/aca67619-6748-4848-8f1f-4de1deb90860)
2024-04-09 15:26:35 +01:00
Jaanus Sellin
a664a449ef
chore: remove strategy form feedback (#6769) 2024-04-03 12:16:58 +02:00
Mateusz Kwasniewski
2cbb45de85
fix: loading state (#6765) 2024-04-03 10:20:04 +02:00
Mateusz Kwasniewski
7f043c7cab
feat: variant dependencies ui (#6739) 2024-03-29 19:28:49 +01:00
Jaanus Sellin
e8c50f55d5
feat: feedback for project overview (#6712) 2024-03-27 15:30:01 +02:00
Jaanus Sellin
f89c2aa829
chore: useProject cleanup (#6700) 2024-03-27 10:28:43 +02:00
Mateusz Kwasniewski
d4f52cdb54
refactor: remove change requests from project insights api (#6685) 2024-03-25 14:44:32 +01:00
Mateusz Kwasniewski
501da974d6
feat: fetch change request overview in project overview (#6683) 2024-03-25 14:02:06 +01:00
David Leek
e0994b088a
feat: traffic visibility UI and store (#6659)
Provides store method for retrieving traffic usage data based on
period parameter, and UI + ui hook with the new chart for displaying
traffic usage data spread out over selectable month.

![Skjermbilde 2024-03-21 kl 12 40
38](https://github.com/Unleash/unleash/assets/707867/539c6c98-b6f6-488a-97fb-baf4fccec687)

In this PR we copied and adapted a plugin written by DX for highlighting
a column in the chart:


![image](https://github.com/Unleash/unleash/assets/707867/70532b22-44ed-44c0-a9b4-75f65ed6a63d)

There are some minor improvements planned which will come in a separate
PR, reversing the order in legend and tooltip so the colors go from
light to dark, and adding a month -sum below the legend

## Discussion points

- Should any of this be extracted as a separate reusable component?

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-03-22 11:54:33 +01:00
andreas-unleash
e6150def36
chore: call new insights endpoint (#6664)
What is says on the tin

Closes
#[1-2217](https://linear.app/unleash/issue/1-2217/point-fe-to-new-endpoint)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-22 09:04:15 +02:00
andreas-unleash
9be15d4976
Chore/rename dashboard files to insights (#6662)
Renames everything related to `executive dashboard` to `insights`

Closes: # [1-2213](https://linear.app/unleash/issue/1-2213/rename-in-fe)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2024-03-21 16:39:03 +02:00
Jaanus Sellin
c41ec49615
feat: remove active/inactive members (#6654)
![image](https://github.com/Unleash/unleash/assets/964450/769ef8bb-834d-4917-898f-b2ba17a9062b)
2024-03-21 11:27:37 +02:00
Mateusz Kwasniewski
f0e5d075a7
feat: Fetch backend api data insights (#6622) 2024-03-20 10:54:21 +01:00
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