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

3281 Commits

Author SHA1 Message Date
Thomas Heartman
6e34ae4ada
fix: project icon sizing and color (#7672)
This PR fixes the project icon sizing and color in the create feature
form. However, it includes a little more cleanup work.

1. I've switched out the previous project icon with a new one. The
difference? The old one had lots of whitespace around it, which made
sizing it awkward.
2. I've added a wrapping Icon component to common. The idea was taken
from this thread on the MUI GitHub about how to make imported icons
behave consistently with MUI icons.
3. Because I've switched the icon and added a new component, I've also
gone and updated the other places we used the old icon, so that we're
consistent about the usage.

In create dialog form:

![image](https://github.com/user-attachments/assets/9b5caed7-cd50-437b-82bb-1d7ccbfaac3f)

Updated icon in:
Project card component

![image](https://github.com/user-attachments/assets/4ce809f4-4083-4554-ac4c-3597d9bf42df)


Project creation form

![image](https://github.com/user-attachments/assets/4227416f-a56d-41ed-96a4-99b71a11dbf7)


Sidebar and command bar (it's actually larger here, but maybe that's
okay? Previous project was kinda small):

![image](https://github.com/user-attachments/assets/72b8aa2e-6970-4c11-9a4d-250648b44ad9)

(Previous sidebar and command bar):

![image](https://github.com/user-attachments/assets/bcef9208-9819-4742-87a1-3a20d50d741c)


I'd be willing to leave the sidebar and command bar for now if we think
it's better to leave them using the same size as previously, but we can
talk about that. I think it's better in the sidebar; undecided about the
command bar.

Bonus changes: I fixed some typos
2024-07-26 10:26:16 +02:00
Thomas Heartman
d96da453a4
fix: show the selected project's name on the button, not its ID (#7671)
This change makes it so that we show the name of the project that is
selected on the selection button instead of the ID. There is a chance
that the name is not unique, but I'm willing to take that risk (plus
it's how we do it today).

I've used a useMemo for this, because we have to scan through a list
to find the right project. Sure, it's always a small list (less than
500 items, I should think), but still nice to avoid doing it every
render. Happy to remove it if you think it obfuscates something.

We *could* also use a `useState` hook and initialize it with the right
value, update when it changes, but I actually think this is a better
option (requires less code and less "remember to update this when that
changes").
2024-07-26 09:27:25 +02:00
Thomas Heartman
464568dace
fix: Hide project selection option in CreateFeatureDialog when OSS (#7669)
This change wraps the project selection option in the
CreateFeatureDialog in a conditional that hides it when Unleash is
OSS.

OSS doesn't have access to the project creation API, so there's no
point in showing this.
2024-07-25 17:59:47 +02:00
Thomas Heartman
2c41cbbd3c
fix: validate project names on blur (#7668)
This fix validates the project name when you blur the field in the new
project form. The only instances where it'll be wrong is if you have
just whitespace or an empty string, but you'll be notified immediately.

Also removes some unused variables and parameters that I found.
2024-07-25 12:43:38 +00:00
Thomas Heartman
dc37503b7d
fix: Capitalize input labels (#7667)
This change makes it so that all form input labels start with a
capital letter, regardless of the data we use to generate them.

Also fixes a leftover toggle -> flag renaming.
2024-07-25 12:27:46 +00:00
Jaanus Sellin
10489c7534
feat: added PoC for the new feature creation dialog (#7666)
![image](https://github.com/user-attachments/assets/82412746-34b3-48f2-95b1-1cdfdeb1ea72)
2024-07-25 15:12:48 +03:00
Thomas Heartman
eb7208025f
chore: create shared dialog form template (#7663)
This PR extracts the dialog form that we created for the new project
form into a shared component in the `common` folder.

Most of the code has been lifted and shifted, but there's been some
minor adjustments along the way. The main file is
`frontend/src/component/common/DialogFormTemplate/DialogFormTemplate.tsx`.
Everything else is just cleanup.
2024-07-25 13:41:09 +02:00
Tymoteusz Czech
369518cd7d
Feat: webhook markdown (#7658)
Add ability to format format event as Markdown in generic webhooks,
similar to Datadog integration.
Closes https://github.com/Unleash/unleash/issues/7646

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-25 09:45:20 +00:00
Thomas Heartman
245c3e119d
chore: add flag configuration for the new flag creation flow (#7662)
Add a new flag and default it to true for local development.
2024-07-25 11:12:58 +02:00
Nuno Góis
d8c5466099
chore: show latest integration event on card (#7656)
https://linear.app/unleash/issue/2-2443/show-the-latest-integration-event-result-on-that-integrations-card

Shows the latest event on the integration card.

Also renames one of the folders to make its contents clearer.

<img width="1184" alt="image"
src="https://github.com/user-attachments/assets/2465d68b-d580-4fc9-9376-c6d55d0f19e0">
2024-07-24 14:23:29 +01:00
Nuno Góis
8a20ae999f
chore: keep latest integration events for each integration configuration (#7652)
https://linear.app/unleash/issue/2-2469/keep-the-latest-event-for-each-integration-configuration

This makes it so we keep the latest event for each integration
configuration, along with the previous logic of keeping the latest 100
events of the last 2 hours.

This should be a cheap nice-to-have, since now we can always know what
the latest integration event looked like for each integration
configuration. This will tie-in nicely with the next task of making the
latest integration event state visible in the integration card.

Also improved the clarity of the auto-deletion explanation in the modal.
2024-07-24 13:52:57 +01:00
Jaanus Sellin
3f76882465
fix: recently visit should only use main paths (#7655)
Recently visited should only be main paths, so look like this
**/segments** **/projects** and not have multiple slashes inside.
2024-07-24 15:04:33 +03:00
Jaanus Sellin
647ba7b9cb
feat: separate command bar and search hotkeys (#7651)
Currently, the command bar and search hotkeys are conflicting. I am now
separating them and assigning search an extra modifier key: Shift.
2024-07-24 12:46:03 +03:00
Thomas Heartman
e2b90ae91d
fix: add workaround for tooltip (#7649)
This PR adds the UI part of feature flag collaborators. Collaborators are hidden on windows smaller than size XL because we're not sure how to deal with them in those cases yet.
2024-07-24 09:33:29 +00:00
Nuno Góis
e63503e832
chore: add integration events modal (#7648)
https://linear.app/unleash/issue/2-2441/create-integration-events-modal

Adds the integration events modal to the UI, allowing us to visualize
them. This is the core of the UI work for this feature.

<img width="587" alt="image"
src="https://github.com/user-attachments/assets/f64cbb8c-1c01-4638-a661-5943ad7a890c">

### Example: Success

<img width="1277" alt="image"
src="https://github.com/user-attachments/assets/578bc7dc-d37d-4c0a-b74a-4bd33e859b51">

### Example: Success with errors

<img width="1255" alt="image"
src="https://github.com/user-attachments/assets/f784104d-7f11-4146-829d-6b3a3808815b">

### Example: Failed

<img width="1254" alt="image"
src="https://github.com/user-attachments/assets/543f857d-3877-4c17-92eb-58e6f038b8ac">
2024-07-24 08:14:16 +01:00
Nuno Góis
cf4435ca2d
chore: integration events hook (#7641)
https://linear.app/unleash/issue/2-2440/create-new-integration-event-hooks

Adds a frontend hook for integration events, allowing us to easily fetch
paginated integration events for a specific integration configuration
id.
2024-07-23 10:27:40 +01:00
Nuno Góis
3acaaf6719
fix: check for admin in signal endpoints hook (#7642)
This avoids a 403 on `api/admin/signal-endpoints` for non-admins when
browsing the integrations page.
2024-07-22 15:32:35 +01:00
Thomas Heartman
0f0a680af3
chore: don't ask OSS users to reach out to CS (#7633)
The limit card says to contact cs@getunleash if you're at the limits,
but we probably don't want to show that to OSS customers (it's not
terrible, just not very helpful), so let's hide it for OSS.

Instead, we'll ask them to try the community slack.

Screenie:


![image](https://github.com/user-attachments/assets/5a5dc292-3878-4181-98ac-f1ce4583d8a3)
2024-07-22 11:03:10 +02:00
Mateusz Kwasniewski
a0ba44d9f4
chore: feature collaborators flag (#7623) 2024-07-19 10:11:39 +02:00
Tymoteusz Czech
242f59ba4e
New health stats component (#7620)
New style for widget
2024-07-18 15:48:47 +02:00
Mateusz Kwasniewski
d1959dd0e2
feat: filter project flags by state (#7618) 2024-07-18 14:52:27 +02:00
Thomas Heartman
41203340fd
fix: use a fullscreen loader for the initial redirect load (#7619)
This PR fixes a minor visual glitch where the initial Unleash load might
display a jumping loading icon. The reason was that the initial
redirect's loader wasn't marked as a fullscreen loader.
2024-07-18 14:50:59 +02:00
Tymoteusz Czech
19121f234e
Insights layout (#7610)
Refactored insights page - stats and charts relevant to the same metric
are now combined into a single widget.
2024-07-18 12:43:52 +02:00
Thomas Heartman
906edec1b6
feat: show info on healthy flags in health tooltip (#7611)
This PR updates the tooltips for the health chart to also include
information on how healthy flags there are. The user could make this
calculation themselves before, but it'd require them to subtract the sum
of stale and potentially stale flags from the total. This makes it so
that they don't have to do the calculation.

I've also included a bar for the healthy flags in the overview, so that
it's easier to see how large a portion it is compared to the others.

Also: clean up some uses of the now-deprecated VFC.


![image](https://github.com/user-attachments/assets/fa33b5ec-b5aa-472d-8ee3-329c5ed0d0c6)
2024-07-18 10:24:58 +02:00
Mateusz Kwasniewski
06f5073fce
test: insights filtering (#7612) 2024-07-17 15:03:02 +02:00
Christopher Kolstad
d397819fd3
feat: Make SAML dialog aware that it might be configured via env (#7606)
Same as the OIDC changes we merged yesterday, this makes the frontend
ready for disabling SAML configuration page, if the SAML_ environment
variables are set.

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-17 10:57:34 +00:00
Tymoteusz Czech
6e4e58aee8
fix: insights sticky header (#7607)
Insights header should show below banners in insights v2
2024-07-17 10:02:55 +00:00
Mateusz Kwasniewski
39f6cbd66c
feat: insights filters (#7608) 2024-07-17 11:30:58 +02:00
Mateusz Kwasniewski
d2ef9e27ed
refactor: insights actions container relaxed width (#7603) 2024-07-16 17:27:11 +02:00
Thomas Heartman
cfd20703b2
fix: toast error doesn't tell you what the error is (#7601)
This change improves the toast error message for auth settings by
preferring the message from the error's details list if it exists. If
it doesn't it'll still fall back to the original error message.

Before:

![image](https://github.com/user-attachments/assets/6ecb425c-7d6d-4cb9-844e-c7c2ff7088b2)

After:

![image](https://github.com/user-attachments/assets/87d827a8-7f52-40c1-a2c6-ca2d1d3abfb4)
2024-07-16 15:10:44 +02:00
Mateusz Kwasniewski
248f879553
chore: remove share insights button (#7600) 2024-07-16 15:10:34 +02:00
Tymoteusz Czech
7b2532ea4f
New insights layout - feature flag (#7598)
Preparing insights component for refactoring and enhancements.
2024-07-16 12:24:30 +00:00
Christopher Kolstad
7ed1d770a8
feat: make frontend aware that OIDC can be configured through env (#7597)
Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-16 13:53:30 +02:00
Thomas Heartman
e43109a2cb
fix: prevent long names from breaking form layouts (#7591)
This PR fixes a couple instances where long resource names would break
form and input layouts.

I've added comments to the various files to explain what they're doing
and why.

## Discussion point:

I've now set the width of project selector to be as narrow as it can
with wrapped text. In the main interfaces, it's much better, but on the
page where you can move a flag, it is quite narrow. However, I still
think it's better (no chance of it being wider than the whole screen).
We might want to find another way, but regardless, it'll only show up
with real edge cases.

## Fixes (screenies)

### API token creation form

**Files**:
- `frontend/src/component/common/FormTemplate/FormTemplate.styles.ts`
- `frontend/src/component/common/FormTemplate/FormTemplate.tsx`

Before:

![image](https://github.com/user-attachments/assets/cef31208-2cce-479e-902e-ed7d3c3c9571)

After:

![image](https://github.com/user-attachments/assets/b0832193-11f5-427d-9df1-d9baca0a91e7)


### New feature flag form

**Files**:
- `frontend/src/component/common/GeneralSelect/GeneralSelect.tsx`

Before:

![image](https://github.com/user-attachments/assets/2ac6f791-af19-4f7e-a8ea-2fc356f18fb2)

After:

![image](https://github.com/user-attachments/assets/13b91812-c00a-49e8-9409-67fab4eaaf01)

### Project select popover

**Files**

- `frontend/src/component/common/GeneralSelect/GeneralSelect.tsx`
-
`frontend/src/component/feature/FeatureView/FeatureSettings/FeatureSettingsProject/FeatureProjectSelect/FeatureProjectSelect.tsx`

Before:

![image](https://github.com/user-attachments/assets/e81a4cef-1402-4b9c-b1a8-c22493c794bd)

After:

![image](https://github.com/user-attachments/assets/604dada9-6555-48e3-a81d-dda72bd9ccf0)

But also:

![image](https://github.com/user-attachments/assets/7e935fe5-b7f0-4674-8d94-a8c8a6176a3c)
2024-07-16 10:47:46 +02:00
Jaanus Sellin
7d88b901a3
feat: remove first item selection (#7596) 2024-07-16 11:27:37 +03:00
Jaanus Sellin
0a4ef3b49f
feat: select first item after query (#7592)
Now after search is done, the first item will be selected
2024-07-16 09:28:34 +03:00
Jaanus Sellin
aaf66022af
feat: show all results in the same time (#7590)
Previously, when the result box was loading, it returned projects and
menu items first. After the feature search response came back, it also
showed the features, but this made the component jump around too much.
Now, everything is shown when the feature result comes back, reducing
the jumping around.
2024-07-15 16:37:11 +03:00
Thomas Heartman
d32990ec4c
fix: make loader not exlpode to 100vh in unnecessary locations (#7589)
This change fixes an issue with the loader where it would explode its
parent component to 100vh even when that was not called for.

To do so, I've added the a new `type` prop to the component, to
distinguish between `fullscreen` and `inline` usage. The `fullscreen`
type sets the height to 100vh, while the `inline` type sets it to
100%.

Now, this doesn't directly make the loader fullscreen (it just makes
sure it's at least as tall as the screen), so maybe the prop name is
misleading. I'd be happy to change it (or to even extract this into
two separate components) if that's preferable. Other potential prop
names could be `height`, which is very direct, or `usage`, which I
think better describes what we do. Like with `type`, I'd like to
communicate the intended behavior more that the actual implementation,
so I'm leaning towards either `type` or `usage`.

## Screenies

I've gone through all the usages of the loader, and checked how each one
works. Here they are:

### Loader in environment variants

I wasn't able to trigger this manually, but it's apparently there

Old (ignore the banner placement; that's firefox's screenshot tool
acting up)

![image](https://github.com/user-attachments/assets/f5d0a709-6815-4838-9ad4-c8f79a54ad0e)

New:

![image](https://github.com/user-attachments/assets/c7538146-b8af-4253-89ed-55d1eb37d6a5)

### Project setting forms

Old:

![image](https://github.com/user-attachments/assets/f8b55899-4483-470a-8d3a-3d11761ec8c7)

New:

![image](https://github.com/user-attachments/assets/29157004-6662-494b-9939-2f34977a9c63)

### Rollout strategy

Old:

![image](https://github.com/user-attachments/assets/5c699a06-37bd-4b3b-a3e3-f613ca7c88d5)

New (no discernible change):

![image](https://github.com/user-attachments/assets/f52178fe-9d26-4ebb-bd48-8a1c4a7e2f04)

### Advanced playground

Old:

![image](https://github.com/user-attachments/assets/43f7183b-cefc-4e29-961e-5d7e18d29be9)

New:

![image](https://github.com/user-attachments/assets/082d94dc-36e0-483c-b7a9-bd75e727c0d5)

### Loading screen / initial redirect

Old:

![image](https://github.com/user-attachments/assets/dbb8b1af-d585-4d48-8431-5379afd4f653)

New (no new component props):

![image](https://github.com/user-attachments/assets/842e766f-0ea7-4396-9696-b88509e24d77)

New (with new props):

![image](https://github.com/user-attachments/assets/e6ffd303-f24e-478d-88d9-b4fa57f307e4)
2024-07-15 14:41:45 +02:00
Mateusz Kwasniewski
3ade609956
feat: user seats component (#7583) 2024-07-12 15:39:37 +02:00
Thomas Heartman
9d7eec5951
fix: update cache, even when the total is 0 (#7582)
This PR fixes a bug where we wouldn't update the `useFeatureSearch`
hook's cached `total` value if the new total was `0`. The reason this
failed is that we would only update it if `data?.total`. Because `0` is
a falsy value, the check would fail.
2024-07-12 14:47:50 +02:00
Tymoteusz Czech
e7627becec
feat: API Tokens limit - UI (#7561)
When approaching limit or limit reached for the number of API tokens, we
show a corresponding message.
2024-07-12 14:44:46 +02:00
Thomas Heartman
f0b49db06a
docs: document resource limits (#7567)
This PR adds the first version of the resource limit documentation. It
also corrects the link in the `Limit` component.

In addition to the new limits from the soft limits project, I've also
added the limits from the signals project.

## Discussion points

I've set the Pro resource limits to projects and envs to the same value
as on the [plans & pricing](https://www.getunleash.io/pricing) page
instead of the actual hard soft limit. I think that makes messaging
easier and more consistent.

However, this does present us with a bit of a problem. Because we've
been pretty consistent at saying "no, you can't have more projects" for
Pro. But we're saying it's easy to change (when in actuality the limit
isn't enforced 💁🏼 )

## Screenie

It looks a little bit like this (but check the files or preview for the
actual text content)

![image](https://github.com/Unleash/unleash/assets/17786332/56cadc00-5a8e-4820-8b11-d059112934da)
2024-07-11 14:10:49 +02:00
Tymoteusz Czech
d440d3230a
feat: show orphaned API tokens (#7569)
Add a visual indication that a token was scoped to projects that have
been deleted.
2024-07-11 14:06:22 +02:00
Thomas Heartman
d7adee3f64
chore: fix project name overflow (#7575)
Fix overflow in long project names. Show ellipsis where it overflows.


![image](https://github.com/Unleash/unleash/assets/17786332/4723134b-b667-47ab-83e8-02cb3cda9093)


![image](https://github.com/Unleash/unleash/assets/17786332/7f4f0b5b-bc03-460d-8ba1-e0cda51e9a5c)


![image](https://github.com/Unleash/unleash/assets/17786332/8b6528f0-2ed8-4a26-9d22-42fa356583c8)
2024-07-11 10:00:38 +02:00
Christopher Kolstad
f65afff6c1
feat: Disallow repeating last 5 passwords. (#7552)
We'll store hashes for the last 5 passwords, fetch them all for the user
wanting to change their password, and make sure the password does not
verify against any of the 5 stored hashes.

Includes some password-related UI/UX improvements and refactors. Also
some fixes related to reset password rate limiting (instead of an
unhandled exception), and token expiration on error.

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2024-07-09 16:18:35 +02:00
Tymoteusz Czech
f6c05eb877
API tokens - virtualized table (#7531)
API tokens table in both main list and project API tokens list can now
support more items - it doesn't slow the browser down if there is >500
items.
2024-07-09 13:22:55 +02:00
Mateusz Kwasniewski
2aea6e688c
feat: project limits ui (#7558) 2024-07-09 11:04:23 +02:00
Mateusz Kwasniewski
46b1eedcc7
feat: constraints values limit in a strategy UI (#7557) 2024-07-08 15:08:16 +02:00
Thomas Heartman
8f8ff13cc5
feat: add limit warning for feature flags (#7556)
This PR adds the Limit component to the feature flag creation form.

At the limit: 

![image](https://github.com/Unleash/unleash/assets/17786332/86f17565-5c75-4265-8e3b-5200222345ec)

Approaching the limit:

![image](https://github.com/Unleash/unleash/assets/17786332/af041d78-fcd3-4aa6-b415-9738cbfbae1b)

Below the limit threshold (no change):

![image](https://github.com/Unleash/unleash/assets/17786332/79ddc3ee-6e52-44d3-8d0b-0ebae90707a7)
2024-07-08 15:06:21 +02:00
Mateusz Kwasniewski
5ed4ccc981
feat: constraints limit in a strategy UI (#7555) 2024-07-08 13:10:00 +02:00