1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
Commit Graph

9001 Commits

Author SHA1 Message Date
Thomas Heartman
392beee114
feat: add implicit surrounding ^ and $ to patterns (#4664)
This PR updates the back-end handling of feature naming patterns to add
implicit leading `^`s and trailing `$`s to the regexes when comparing
them.

It also adds tests for the new behavior, both for new flag names and for
examples.

## Discussion points

Regarding stripping incoming ^ and $: We don't actually need to strip
incoming `^`s and `$`s: it appears that `^^^^^x$$$$$` is just as valid
as `^x$`. As such, we can leave that in. However, if we think it's
better to strip, we can do that too.

Second, I'm considering moving the flag naming validation into a
dedicated module to encapsulate everything a little better. Not sure if
this is the time or where it would live, but open to hearing
suggestions.
2023-09-13 10:50:37 +02:00
andreas-unleash
8b452084f3
fix: validation for variant payload number type (#4671)
Adds validation to number type for variants

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-09-13 10:23:39 +03:00
Nuno Góis
4de8ea2553
fix: post global events even when filtering by env (#4672)
https://linear.app/unleash/issue/2-1276/deal-with-events-without-an-environment

This makes it so that global events (events not tied to a specific
environment) are always received, no matter the configured environment
filter.

It also includes a respective test and small sentence on the UI
explaining the behavior.


![image](https://github.com/Unleash/unleash/assets/14320932/021a3622-78fe-45af-b68c-dde0813f32f0)
2023-09-13 08:22:18 +01:00
Thomas Heartman
43878230b7
UI: make project settings / creation form full-width (#4675)
This PR makes the project settings / creation forms grow to take up the
full available width, so that it is in line with the new designs.
2023-09-13 06:38:18 +00:00
Thomas Heartman
f49cc8cd33
feat: update UI to add hints about implicit ^ and $ (#4667)
This PR updates the UI to reflect the changes to the implicit ^ and $
that we now add. The changes are:

1. Show input adornments for ^ and $ when you create a pattern.
2. Mention that ^ and $ are added implicitly in description.
3. Checks the example you provide against the pattern with added ^ and $
+ adds a test for that.

Points 1 and 2:

![image](https://github.com/Unleash/unleash/assets/17786332/88c610b4-444b-4a83-a50a-4b7639614a86)


## Discussion point:

I have not touched the information about the pattern yet as the PR that
updates that is still in review (#4656), but it would be prudent to also
update that info to make it clearer. I can address that in a follow-up
PR.
2023-09-13 06:22:55 +00:00
Thomas Heartman
03d6ed0c32
ui: update design for feature naming pattern info (#4656)
This PR updates the design for the feature naming pattern info. In doing
so, I've extracted the information into a single component.

It also, on @nicolaesocaciu's behest, makes the new toggle form inputs
wider when they have room to grow.

Light mode:

![image](https://github.com/Unleash/unleash/assets/17786332/0923cf95-18e3-4524-8402-7f42a0ac94ec)


Dark mode:

![image](https://github.com/Unleash/unleash/assets/17786332/c2a07f73-8973-42d0-b94a-d7dc4ec38a25)

For copying features it looks like this:


![image](https://github.com/Unleash/unleash/assets/17786332/2a39f17b-4d86-408c-8f3b-5f2b24e82c81)
2023-09-13 08:05:58 +02:00
Gastón Fournier
c39d815516
fix: API improvements aligning the types to our schemas (#4650)
Some of our types in OSS have drifted apart from our OpenAPI schemas.
This will help them be aligned again
2023-09-12 15:40:57 +02:00
Mateusz Kwasniewski
2b2f5e20fa
feat: Import limit validation (#4669) 2023-09-12 15:36:19 +02:00
Tymoteusz Czech
ed6547b6f1
fix: integrations UI (#4670)
## About the changes
UI adjustments - text, spacing

Co-authored-by: NicolaeUnleash <103567375+NicolaeUnleash@users.noreply.github.com>
2023-09-12 15:45:51 +03:00
Tymoteusz Czech
dbaa386697
feat: Edge integration page (#4657)
## About the changes

![image](https://github.com/Unleash/unleash/assets/2625371/6f4dcf7f-c3cf-45a2-9525-2965c31b6d89)
2023-09-12 14:25:38 +02:00
Thomas Heartman
44db4fb0c3
1-1360: explain implicit ^ and $ in docs (#4668)
Update docs to explain that ^ and $ are implicit in the regexes used.
2023-09-12 14:23:19 +02:00
Mateusz Kwasniewski
4dcbb4b997
feat: check toggle limit on import (#4665) 2023-09-12 13:53:04 +02:00
Jaanus Sellin
0cd0d2f153
fix: last seen environment remove duplicate entries (#4663) 2023-09-12 11:43:01 +03:00
Thomas Heartman
9114969869
feat: make import/export work with project patterns (#4652)
This PR adds feature name pattern validation to the import validation
step. When errors occur, they are rendered with all the offending
features, the pattern to match, plus the pattern's description and
example if available.


![image](https://github.com/Unleash/unleash/assets/17786332/69956090-afc6-41c8-8f6e-fb45dfaf0a9d)

To achieve this I've added an extra method to the feature toggle service
that checks feature names without throwing errors (because catching `n`
async errors in a loop became tricky and hard to grasp). This method is
also reused in the existing feature name validation method and handles
the feature enabled chcek.

In doing so, I've also added tests to check that the pattern is applied.
2023-09-12 10:19:40 +02:00
Jaanus Sellin
980461ef18
feat: hide project settings for OSS (#4662) 2023-09-12 09:39:55 +03:00
andreas-unleash
1cd0edb11a
feat: variant with number payload (#4654)
Adds `number` as possible payload type for variant.
Adds a flag to enable the feature
Updates all relevant models and schemas
Adds the option to the UI

Closes: #
[1-1357](https://linear.app/unleash/issue/1-1357/support-number-in-variant-payload)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-09-11 16:57:42 +03:00
Nuno Góis
c6af38b12b
docs: add mention of multiple project roles (#4648)
https://linear.app/unleash/issue/2-1130/documentation-about-multiple-project-roles

- Adds a section for the feature in the "Role-based Access control"
reference doc;
- Removes the mention that "Groups that *do* have a root role can't be
assigned to a project." which is no longer true;
- Adds a reference to multiple project roles in the "How to create and
assign custom project roles" guide;
- Fixes a wrong sentence in the "Assigning custom project roles" section
of the aforementioned guide;

---------

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
2023-09-11 14:41:47 +01:00
Thomas Heartman
4de3ff3d2f
docs: feature flag naming patterns (#4632)
This PR adds a reference doc and a how-to doc for feature flag naming
patterns.

Extra thanks to @sebastian-bury for the draft from the offsite 👏🏼
2023-09-11 15:28:10 +02:00
Tymoteusz Czech
f88e15c45c
Fix: integrations form (#4655)
## About the changes
Fix submitting integrations form
2023-09-11 12:26:40 +00:00
Mateusz Kwasniewski
ba73d9a0d1
feat: keyboard navigation in search (#4651) 2023-09-11 12:53:31 +02:00
Jaanus Sellin
77fbac01e4
feat: remove newApplicationsList feature flag (#4653) 2023-09-11 12:28:43 +02:00
Tymoteusz Czech
a9ac81a089
feat: useUiFlag shorthand hook (#4566)
## About the changes
Instead of this:
```ts
const { uiConfig } = useUiConfig();
const myFlag = Boolean(uiConfig?.flags?.myFlag)
```
we can have this:
```ts
const myFlag = useUiFlag("myFlag")
```
With the same type safety, less verbose and more purposeful code.

### Important files
- `frontend/src/hooks/useUiFlag.ts`


## Discussion points
Can we in the future share flags between frontend and backend? Right now
adding a new flag has to be done in 4 different places (backend flag
keys list, backend flags defaults config, backend experimental server
options, frontend type).

Most ergonomic option is to pull config directly from Unleash. 
Issue, based on previous user feedback:
https://github.com/Unleash/unleash/issues/4565
Internal feature request document:
[docs.google.com/document/d/1Sx0q...](https://docs.google.com/document/d/1Sx0qKZXUVUCjuY5F4MOh1ieOM1A2_jE58zEA7jaM_1g/edit?usp=sharing)
2023-09-11 10:01:20 +02:00
Fredrik Strand Oseberg
f6a157f2f5
fix: add experimental flag (#4649) 2023-09-08 16:52:10 +03:00
Fredrik Strand Oseberg
26ade79d66
Fix/dora polish (#4645)
This PR includes:
* Tests for retrieving lead time per feature toggle and project average
* Feedback component
2023-09-08 14:18:58 +02:00
Jaanus Sellin
0b5a7b7d36
feat: add plausible to integrations (#4647) 2023-09-08 15:01:12 +03:00
Nuno Góis
61174a1d9c
fix: multi project roles UI improvements (#4646)
https://linear.app/unleash/issue/2-1373/small-ui-fixes-and-improvements

- Update group root role `HelpIcon` tooltip to reflect the new behavior;
- Fixes a crash on groups search where `description` could be
`undefined`;
 - Improves `RoleDescription` design;
 - Fixes the role label in `ProjectGroupView`;
 

![image](https://github.com/Unleash/unleash/assets/14320932/f16ebe98-9408-4edd-8e2b-1e56ba2ad5c6)
2023-09-08 11:42:58 +01:00
David Leek
10a62642d7
chore: return 404 when adding environment to project that doesnt exist (#4635)
## About the changes

Returns a 404 response instead of 500 when trying to set an environment
on a project that doesn't exist
2023-09-08 12:36:13 +02:00
Tymoteusz Czech
2aa63fbacd
fix: addon schema validation (#4643)
Fix addon schema breaking build
2023-09-08 09:39:57 +00:00
Tymoteusz Czech
b835efc0ad
feat: edge integrations page (#4639) 2023-09-08 10:49:30 +02:00
Tymoteusz Czech
042e8d097a
feat: link to request integration (#4634)
## About the changes

![image](https://github.com/Unleash/unleash/assets/2625371/5c0852d2-28cf-4272-8892-e36de782ab61)

https://linear.app/unleash/issue/1-1343/request-integration
2023-09-08 11:46:27 +03:00
Tymoteusz Czech
dff0420ca8
feat: proxy and edge integration cards (#4636) 2023-09-08 10:45:37 +02:00
Simon Hornby
2b210a85fd
docs: update compatibility matrix with strategy variants (#4626) 2023-09-08 10:34:04 +02:00
Jaanus Sellin
bc0c6fcb62
fix: fix failing group service test (#4642) 2023-09-08 11:32:21 +03:00
Jaanus Sellin
c59b83b07b
feat: integration urls, ux (#4640) 2023-09-08 10:21:11 +03:00
Gastón Fournier
feab6db76e
Revert "fix: api token schema" (#4638)
Reverts Unleash/unleash#4633 because of
https://github.com/Unleash/unleash/pull/4633#issuecomment-1710122769
2023-09-07 15:25:49 +02:00
Jaanus Sellin
cd2eac23ef
feat: official sdks (#4637) 2023-09-07 16:19:52 +03:00
Tymoteusz Czech
e97859af91
Integrations form (#4622)
## About the changes
Redesigned/refactored integrations form.


![image](https://github.com/Unleash/unleash/assets/2625371/9f3ad019-e367-4f89-932d-539d7a370f88)

Closes
[1-1298/resesign-of-integrations-form](https://linear.app/unleash/issue/1-1298/resesign-of-integrations-form)
2023-09-07 10:27:46 +00:00
Gastón Fournier
fe51b501e6
fix: api token schema (#4633)
## About the changes
Create api token schema can either provide the field `project` or its
plural: `projects` so the joi validation makes them optional:
2be77fb55e/src/lib/schema/api-token-schema.ts (L20-L24)

This means that when returning the token, the response will either
contain `project` or `projects` depending on what was provided as input.
Therefore we need to make both fields optional in the response
2023-09-07 12:23:53 +02:00
Tymoteusz Czech
2be77fb55e
feat: integration sections (#4631)
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2023-09-07 09:20:12 +00:00
Jaanus Sellin
1d414db982
feat: jira plugin page (#4627)
![image](https://github.com/Unleash/unleash/assets/964450/b58d3d27-4939-42b0-bf0d-51a31aa93dde)


![image](https://github.com/Unleash/unleash/assets/964450/acceedc4-9d53-461a-910f-b60dae0d6b6a)
2023-09-07 11:51:50 +03:00
Thomas Heartman
3b754ec7ed
1-1342: show flag naming pattern info when you copy toggles (#4629)
Because you need to match the pattern when copying toggles, it's
important that we show the required information to the user.

This change adds information about the pattern to the page. This isn't
its final design, but it's more important that the information is
there (to avoid user frustration) than that it is pretty.
2023-09-07 10:22:13 +02:00
Nuno Góis
cfbf47d6bd
refactor: clean up no longer used PAT methods (#4621)
This cleans up some PAT-related methods that are no longer used.
2023-09-07 09:48:55 +02:00
Thomas Heartman
90395b974b
1-1315: revalidate feature name whenever the project changes (#4628)
This change makes it so that the flag name is revalidated against the
new
project pattern whenever you change the target project for a flag.

The validation is not run if the name is empty, if there is no
pattern, or if there is no validation method.

This solves the case where you input a name, then change the project,
and where the name isn't valid for the new project. Previously, it
wouldn't revalidate, but now it does.
2023-09-07 09:15:59 +02:00
Mateusz Kwasniewski
15015f78f3
feat: Plausible search (#4625) 2023-09-07 08:21:37 +02:00
Thomas Heartman
31ed96d8f3
1-1320: allow you to update example with no pattern + update state better (#4623)
While having a pattern when you have no example doesn't make a lot of
sense, it's a problem that you can't delete the example after deleting
the pattern: you previously had to remove the example before the
pattern.

This PR fixes that by always allowing you to update the example, even if
there is no pattern. Our server doesn't currently accept submitting an
example with no pattern, but we could allow that if we want to (and
probably just discard it on the back-end).

This PR also updates the validation of the example and the regex. There
were more unhandled edge cases previously where the validation would
disappear or be wrong. This should be fixed now. The new logic is that,
whenever you update the either the pattern or the example, we check:
- if you have an error in your pattern, no pattern, or no example, then
delete the example error if it exists
- have a well-formed pattern and an example then check if the example
matches the pattern and add/delete an error accordingly

This does have some consequences: editing the pattern can render your
example invalid. You'll also get immediate feedback instead of when you
switch focus. I think this is often a bad pattern (giving the user too
much negative feedback), but in terms of working with regexes, I think
it might be a good thing. We also give immediate feedback today, so I
don't think this is a regression.

Any thoughts are welcome.
2023-09-07 08:18:18 +02:00
Mateusz Kwasniewski
a0fbad26bf
feat: persistent search queries (#4624) 2023-09-06 15:46:10 +02:00
Nuno Góis
af9756e1e1
fix: prevent 404 on auth settings hook (#4619)
Since `auth/{auth_type}/settings` is an Enterprise route, this prevents
404s when we try to use the hook to fetch auth settings in
non-Enterprise instances by using the conditional `useEnterpriseSWR`
hook.
2023-09-06 13:35:02 +01:00
Thomas Heartman
34d595b5a6
refactor: use conditionally render instead of && (#4620)
For consistency and readability.
2023-09-06 11:51:04 +00:00
Mateusz Kwasniewski
caff040a88
feat: Clickable search filter options (#4618) 2023-09-06 12:50:42 +02:00
Thomas Heartman
f55c67fe2e
1-1334: show short error message when validation fails (#4617)
The error message only tells the user that the name doesn't match the
pattern. Because we already show the pattern above the input, we don't
need to repeat it in the error message. This makes for a shorter and
more concise message and better UX.

At the same time, for API users, we can keep the more detailed message
that includes info about the pattern, the example, and the description.


![image](https://github.com/Unleash/unleash/assets/17786332/0492f2ad-810d-435e-bfe6-785afee96892)
2023-09-06 10:20:10 +00:00