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

309 Commits

Author SHA1 Message Date
Jaanus Sellin
5574d27861
feat: Instance stats for export/import (#3121)
feat: instance stats for export/import
2023-02-15 14:39:16 +02:00
Nuno Góis
8729f082d2
refactor: remove variants per environment feature flag (#3102)
https://linear.app/unleash/issue/2-428/clean-up-feature-flag-once-were-done-with-the-migration

Cleans up the variants per environment feature flag due to GA.
2023-02-14 14:02:02 +00:00
Mateusz Kwasniewski
57bce6e039
feat: validate import permissions (#3097) 2023-02-14 08:11:45 +01:00
Gastón Fournier
354b5b2976
chore: service accounts GA (#3059)
## About the changes
This PR prepares the GA of service accounts: OpenAPI tags, documentation
and flag removal

Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#2942

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2023-02-08 11:59:24 +01:00
Mateusz Kwasniewski
377e0e9d3e
fix: remove all warnings (#3055) 2023-02-07 11:20:44 +01:00
Tymoteusz Czech
0656fddbc4
Refactor: Project Overview fetching (#3035) 2023-02-07 08:57:28 +01:00
Gastón Fournier
fbd2d99d97
fix: use the correct hook for permissions and CR (#3050)
## About the changes
When checking for permissions we have 2 methods, one that is not change
request aware and one that is. We were using the one that is not aware
of CR while the feature we developed is aware of CR.

This PR switches to the correct method and documents the hooks
2023-02-06 16:00:58 +01:00
andreas-unleash
e589e56373
Add multiple tags (#3032)
Add Tag dialog redesign to allow batch add

Some Refactoring

Signed-off-by: andreas-unleash <andreas@getunleash.ai>

<!-- Thanks for creating a PR! To make it easier for reviewers and
everyone else to understand what your changes relate to, please add some
relevant content to the headings below. Feel free to ignore or delete
sections that you don't think are relevant. Thank you! ❤️ -->

## About the changes
<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

<!-- Does it close an issue? Multiple? -->
Closes
[1-611](https://linear.app/unleash/issue/1-611/create-a-auto-complete-component-for-tags)

<!-- (For internal contributors): Does it relate to an issue on public
roadmap? -->
<!--
Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#
-->

### Important files
<!-- PRs can contain a lot of changes, but not all changes are equally
important. Where should a reviewer start looking to get an overview of
the changes? Are any files particularly important? -->


## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->


https://user-images.githubusercontent.com/104830839/216286897-4e392822-57c2-4e50-a5d8-e89d006b3fa5.mov

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-02-03 12:28:06 +02:00
Nuno Góis
054c590813
fix: limit creation of other users PATs (adapting) (#3019)
https://linear.app/unleash/issue/2-656/limit-the-ability-of-creating-a-token-on-behalf-of-another-user

Adapts to the refactor that reverts the initial experimental idea of
Service Accounts before they existed in the current implementation:
Managing other user's PATs.
2023-01-31 08:40:23 +00:00
Fredrik Strand Oseberg
1c4ba4cc97
Feat/project stats types (#3012)
Update type for project stats
2023-01-27 17:19:27 +01:00
Fredrik Strand Oseberg
897e97330a
Feat/project stats members (#3009)
This PR adds project members to the project stats and connects the stats
to the UI.
2023-01-27 13:13:41 +01:00
Gastón Fournier
d821b1ead1
fix: missing formatApiPath (#3006)
## About the changes
Archive page is not loading archived feature toggles.

When fetching from the server is not including the baseUrl
2023-01-27 11:18:32 +01:00
Nuno Góis
4d1a004b5d
feat: adds CR to variants per env UI (#2989)
https://linear.app/unleash/issue/2-585/add-cr-to-variants-per-environment-ui

Adds CR to the variants per environment UI. This is basically the point
where we have CRs integrated but can e.g. only update the weight once
per CR. Adapting the UI to better fit CR logic will come next.


![image](https://user-images.githubusercontent.com/14320932/214563512-664a432f-f2eb-49f7-9721-cbd6785a9320.png)
2023-01-25 14:10:35 +00:00
Mateusz Kwasniewski
decb7f320d
feat: import stage (#2985) 2023-01-25 12:34:28 +01:00
Gastón Fournier
3713764a4b
feat: add push to all button to UI (#2969)
## About the changes
This adds the push to all button to the UI


Relates to [roadmap](https://github.com/orgs/Unleash/projects/10) item:
#2254

### UI
![Screenshot from 2023-01-16
12-25-49](https://user-images.githubusercontent.com/455064/214073136-999c32f3-d119-4d55-ae29-47f6a9304e84.png)

Co-authored-by: Nuno Góis <github@nunogois.com>
2023-01-24 10:22:02 +01:00
Mateusz Kwasniewski
a3404328ea
validation stage (#2970) 2023-01-23 20:02:05 +01:00
sjaanus
467eb57fb8
Import first super early version of UI (#2932)
Import first super early version of UI
2023-01-19 10:42:58 +00:00
Nuno Góis
7d73d772df
feat: add the account abstraction logic (#2918)
https://linear.app/unleash/issue/2-579/improve-user-like-behaviour-for-service-accounts-accounts-concept

Builds on top of https://github.com/Unleash/unleash/pull/2917 by moving
the responsibility of handling both account types from `users` to
`accounts`.

Ideally:
 - `users` - Should only handle users;
 - `service-accounts` - Should only handle service accounts;
 - `accounts` - Should handle any type of account;

This should hopefully also provide a good building block in case we
later decide to refactor this further down the `accounts` path.
2023-01-18 16:08:07 +00:00
Nuno Góis
d63b3c69fe
feat: adapt user logic to better adapt to SAs (#2917)
https://linear.app/unleash/issue/2-579/improve-user-like-behaviour-for-service-accounts-accounts-concept

<img width="803" alt="image"
src="https://user-images.githubusercontent.com/14320932/213011584-75870595-988d-49bc-a7bf-cd1ffd146bca.png">

Makes SAs behave more like users. 

Even though they share the same `users` database table, the `is_service`
column distinguishes them. This PR makes the distinction a bit less
obvious by not filtering out SAs for some methods in the user store,
returning both account types and their respective account type
information so we can handle them properly on the UI.

We felt like this was a good enough approach for now, and a decent
compromise to move SAs forward. In the future, we may want to make a
full refactor with the `accounts` concept in mind, which we've
experimented with in the
[accounts-refactoring](https://github.com/Unleash/unleash/tree/accounts-refactoring)
branches (both OSS and Enterprise).
 
https://github.com/Unleash/unleash/pull/2918 - Moves this a bit further,
by introducing the account service and store.
2023-01-18 12:12:44 +00:00
Fredrik Strand Oseberg
1f6db91fde
Fix/redirect woes (#2899)
This PR fixes two problems: 

(1) The initial redirect put us into an infinite loop when redirecting,
because trying to go back to the root would always trigger the initial
redirect component. Throwing you back to project screen.

(2) Using UI config in the useLastViewedProject to get the basePath
introduced a race condition where you needed data from the uiConfig in
order to fetch the correct key from local storage. The fix here was to
use the basePath coded into the HTML file, so we can synchronously
retrieve the correct key at startup.

Co-authored-by: kwasniew <kwasniewski.mateusz@gmail.com>
2023-01-17 13:33:52 +01:00
Fredrik Strand Oseberg
dd7d3de76a
feat: export ui api integration (#2888)
Adds API integration with the new export API
2023-01-12 16:09:13 +01:00
Fredrik Strand Oseberg
ea31154d9a
Fix/use swr bug (#2884)
This PR fixes an error where useSWR would throw a TypeError: `subs[i] is
not a function`: https://github.com/vercel/swr/issues/2357

I can't be totally sure why this is happening but we had a design flaw
in our setup that caused our group overview to first fetch all groups,
and then subsequently fetch each individual group after the groups were
rendered. This was happening because GroupCard was rendering the
EditGroupUsers component which used the `useGroup(groupId)` getter.

The flow in the old version looked like this: 

1. Fetch all the groups
2. Use the groups data to render all the `GroupCard` elements
3. Once the GroupCard was rendered the EditGroupComponent would be
mounted and set up a recurring GET on the individual group, causing each
group to be fetched recurringly in the Group overview.

The useSWR error seems to be connected to setting up these
subscriptions, and then removing the element from the DOM. We were able
to trigger this error by removing the group.

## How did we fix it? 

We refactored the components concerned with editing group users and
removing groups to exist outside of the `GroupCard` and have the group
card supply the base data through a state setter. This pattern is also
better for the remove functionality because the remove functionality in
its current state could trigger a react update on a component removed
from the DOM if you awaited the refetching of the data. This is because
the groups data is controlling the rendering of the `GroupCard` and when
the `RemoveGroup` modal is nested underneath the `GroupCard` a refetch
would trigger an update, re-render the overview and remove the entire
`GroupCard` and the associated `RemoveGroup` component.

I'm still not sure if this is a bug with SWR or a side-effect of how we
architected the functionality, but this change seems to remove the
problem.
2023-01-12 11:25:42 +01:00
andreas-unleash
aa19ad57eb
Conditionally fetch change request config to fix 404 (#2874) 2023-01-12 11:18:11 +01:00
sjaanus
3a25b5f2db
Maintenance mode fix (#2876)
Maintenance mode fix
2023-01-11 14:56:55 +02:00
sjaanus
11d5a157c4
Remove E flag (#2832) 2023-01-11 09:00:26 +02:00
Nuno Góis
6be21fc1bd
feat: track uncaught UI errors in plausible (#2860)
https://linear.app/unleash/issue/2-567/add-plausible-tracking-to-unknown-uncaught-frontend-errors

Based on the discussion from
https://github.com/Unleash/unleash/pull/2851, something like this could
help us track uncaught/unknown errors on the frontend.

Just a quick suggestion, since there might be something better we could
use for this.
2023-01-10 10:33:56 +00:00
Nuno Góis
997dbbbea5
Feat sa table info (#2848)
https://linear.app/unleash/issue/2-543/show-relevant-information-on-the-service-accounts-table

Shows relevant information on the table, like total PATs and the last
time a service account was active based on latest seen PAT for that
account. Adapts to the latest related PR on enterprise.


![image](https://user-images.githubusercontent.com/14320932/211312719-c4ed940a-723b-4b2e-a79e-8e7cdbda7c58.png)
2023-01-09 16:18:37 +00:00
sjaanus
d13401b6ed
Plausible for hidden environments (#2837)
Plausible for hidden environments
2023-01-09 15:36:10 +02:00
Nuno Góis
b10d9c435e
feat: manage SA tokens through UI (#2840)
https://linear.app/unleash/issue/2-542/manage-service-account-tokens-through-the-ui


![image](https://user-images.githubusercontent.com/14320932/210998202-b3cd14ca-0ae2-4301-8a6e-9fb887b9b517.png)
2023-01-06 12:56:54 +00:00
Tymoteusz Czech
1653b0449a
Orval generator POC (#2724)
for #2715
2023-01-05 11:57:53 +01:00
Nuno Góis
11f4435a9e
feat: service accounts (hooks) (#2732)
https://linear.app/unleash/issue/2-539/hooks-for-service-accounts

Creates and adapts hooks for the Service Accounts feature, to be used by
the FE.
2023-01-04 14:05:40 +00:00
sjaanus
88d649d239
Allow hiding environments from the feature overview screen (#2727) 2023-01-03 15:41:34 +02:00
sjaanus
8a8cd1bf27
UI Flags cleanup (#2778) 2023-01-02 15:41:43 +02:00
sjaanus
6c621bf65b
Fix crashing search bars (#2765) 2022-12-28 12:35:27 +02:00
Nuno Góis
aaa96f71cb
feat: message banner (#2726)
Related to:
https://linear.app/unleash/issue/2-511/exploration-build-data-for-the-possibility-of-showing-an-alert-to-the
Namely:
https://unleash-internal.slack.com/archives/C046LV85N3C/p1671443897386729

The idea is to have a general message banner that can be controlled
through a feature flag in Unleash to display announcements, warnings,
informations, etc.

Currently using mock feature flags, but the idea is to bind this to a
feature flag we can manage in our Unleash instance, and use its payload
to provide information to end users whenever we want.

Co-authored-by: Gastón Fournier <gaston@getunleash.ai>
2022-12-22 15:16:51 +00:00
sjaanus
e533b44c5b
Adds tracking to maintenance feature (#2723)
Adds tracking with plausible to maintenance feature
2022-12-21 16:16:15 +02:00
sjaanus
a0619e963d
Maintenance mode for users (#2716) 2022-12-21 13:23:44 +02:00
Gastón Fournier
4b519ead4f
perf: Simplify queries to prometheus (#2706)
## About the changes
This PR improves our queries to Prometheus (instead of making multiple queries do only one) and improves the UI and the code. 

The reports aggregate all HTTP methods (GET, POST, PUT, DELETE, OPTIONS, HEAD and PATCH) without distinction under the same "endpoint" (a relative path inside unleash up to a certain depth)

Co-authored-by: Nuno Góis <nuno@getunleash.ai>
2022-12-19 17:06:59 +01:00
sjaanus
2d5455d203
Maintenance mode middleware (#2707) 2022-12-19 09:01:04 +02:00
Nuno Góis
a3ac96f763
Feat network overview (#2708)
https://linear.app/unleash/issue/2-512/exploration-network-overview-represented-as-a-flow-chart

<img width="1307" alt="image"
src="https://user-images.githubusercontent.com/14320932/208110067-294a0b91-d52e-49d1-9024-fa5e8530e2d8.png">
2022-12-16 14:12:36 +00:00
Nuno Góis
1d1219a055
Use new useConditionallyHiddenColumns hook (#2695)
https://linear.app/unleash/issue/2-515/adapt-tables-to-use-the-new-useconditionallyhiddencolumns-hook

Uses the new `useConditionallyHiddenColumns` hook, like mentioned here:
https://github.com/Unleash/unleash/pull/2691
Also includes small fixes for things I caught along the way. See
comments below.
2022-12-16 10:46:04 +01:00
sjaanus
d42e90544f
Maintenance mode UI (#2704) 2022-12-15 16:07:22 +02:00
Mateusz Kwasniewski
f4480d516b
remove change request flag (#2703) 2022-12-15 13:43:06 +01:00
Mateusz Kwasniewski
2e615cdd35
refresh change request, add conflict margin, set time ago (#2700) 2022-12-15 10:49:16 +01:00
Christopher Kolstad
23094b016e
feat: first draft of chart for instance traffic in frontend (#2670)
## What
We've already added the backend for this. This is the initial work for
drawing a chart for instance traffic in the frontend. It requires the environment variable `PROMETHEUS_API` set to a valid prometheus-query-language (promql) supported backend, such as Prometheus itself or Victoria Metrics. Besides, at the moment we're hiding this functionality behind the flag `UNLEASH_EXPERIMENTAL_NETWORK_VIEW` which has to be set to true

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
Co-authored-by: Gastón Fournier <gaston@getunleash.ai>
2022-12-15 08:47:07 +00:00
Nuno Góis
db7b39af2d
fix: upgrades useHiddenColumns hook to fix related issues (#2691)
https://linear.app/unleash/issue/2-514/fix-issues-with-conditionally-hidden-table-columns

This upgrades the old `useHiddenColumns` to a new
`useConditionallyHiddenColumns`. This implementation covers some issues
and edge cases, and should hopefully be the standard way of achieving
responsive visibility for table columns from now on.

Some of these issues included incorrectly showing/hiding table columns,
whether when resizing the window or at page load, even when the proper
conditions were met to toggle their visibility.

This PR adapts the tables that were already using `useHiddenColumns` to
use the new approach.
I'll create a new PR after this one to adapt our other existing tables
to use this new approach as well.
2022-12-14 15:22:38 +00:00
Mateusz Kwasniewski
a54d53a117
added contraints checking in change request permissions (#2690) 2022-12-14 13:00:51 +01:00
Mateusz Kwasniewski
cb0398ca63
loosen permissions for change requests (#2682) 2022-12-14 10:00:14 +01:00
Nuno Góis
4afd505164
feat: make favorites a global preference (#2685)
https://linear.app/unleash/issue/2-508/make-pinned-favorites-a-global-preference

Also introduces a `useGlobalLocalStorage` hook where system-wide
preferences that are stored in LocalStorage can be maintained.
2022-12-13 13:20:43 +00:00
Nuno Góis
1bd95d44e5
fix: use instance status too many reqs (#2651)
Same as https://github.com/Unleash/unleash/pull/2650 but for
`useInstanceStatus`, since it followed a similar pattern.
2022-12-09 11:53:31 +01:00