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

7679 Commits

Author SHA1 Message Date
Jaanus Sellin
a5f1b89b4a
feat: bulk delete features (#3314) 2023-03-15 15:08:08 +02:00
Tymoteusz Czech
ac1be475e4
re-generate fontend openapi schema 2023-03-15 13:30:07 +01:00
Tymoteusz Czech
2acfe8f110
don't add version header to generated api schema 2023-03-15 13:29:18 +01:00
GitHub Actions Bot
380b867a58 4.22.0-beta.74 2023-03-15 12:24:54 +00:00
Nuno Góis
4e36981c96
feat: improve variants modal UI/UX (#3307)
https://linear.app/unleash/issue/2-758/add-variant-improve-the-flow


![image](https://user-images.githubusercontent.com/14320932/225064841-7fdb3b23-a06d-4078-b33a-50166e54a8b8.png)

![image](https://user-images.githubusercontent.com/14320932/225063913-ff92a563-7aa8-493f-a0dd-ef16f1474151.png)

### Variants form

- Fix variants edit form to follow natural tab order;
- Update variants form UI to new design with multiple improvements and
fixes, including a sticky header;
- New variants are now added at the bottom of the edit form instead of
at the top, with a smooth scroll and focus;

### Change requests

- On the variants diff, use variant names instead of index;
- Use an object-based diff logic (instead of array-based) for cleaner
diffs on variants (thanks @thomasheartman !);
- Display a table with the new variants data and display the diff on a
`TooltipLink`;
- Adapt strategy CR changes to the new `TooltipLink` logic for
consistency;

### Other

- `TooltipLink` and `Badge` components are now tab-selectable;
- Small enhancements, refactors and improvements;

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2023-03-15 12:22:06 +00:00
GitHub Actions Bot
6aeadfff33 4.22.0-beta.73 2023-03-15 12:17:53 +00:00
Gastón Fournier
8cdd68914e
chore: avoid building frontend when possible (#3278)
## About the changes
This is based on @nunogois suggestion to split the build in two, so we
don't build the frontend every time we run `yarn`

e2e frontend tests were forced to run by modifying frontend/README.md

### Important files
Some github actions had to be updated to also build the frontend. The
Dockerfile building our docker image was also looked into but it should
work as is


## Discussion points
This is a potentially risky operation as we might overlook something
that requires building the frontend which might lead to invalid builds.
We need to make sure when we do this we don't have any release planned.
2023-03-15 13:17:32 +01:00
GitHub Actions Bot
c2d51e4549 4.22.0-beta.72 2023-03-15 11:28:27 +00:00
Mateusz Kwasniewski
9fd84abaa5
feat: Default project mode open (#3316) 2023-03-15 12:28:06 +01:00
GitHub Actions Bot
647f75fa8b 4.22.0-beta.71 2023-03-15 09:35:46 +00:00
andreas-unleash
efd9e523ed
feat: Generate new OAS types, tags component upgrade (#3269)
<!-- 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! ❤️ -->
Create/Add/Remove at the same time per tag type


## 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-769](https://linear.app/unleash/issue/1-769/refactor-existing-tag-component-to-also-allow-removing-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? -->

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2023-03-15 11:35:24 +02:00
GitHub Actions Bot
b194bee4ff 4.22.0-beta.70 2023-03-15 06:37:24 +00:00
Jaanus Sellin
6c813ab066
feat: bulk stale features (#3311) 2023-03-15 08:37:06 +02:00
GitHub Actions Bot
240bb7b027 4.22.0-beta.69 2023-03-14 15:28:24 +00:00
Mateusz Kwasniewski
7753082660
feat: expose project members (#3310) 2023-03-14 16:27:57 +01:00
GitHub Actions Bot
b32197b0b5 4.22.0-beta.68 2023-03-14 13:43:33 +00:00
Mateusz Kwasniewski
5b8d023184
feat: project settings migration (#3313) 2023-03-14 14:43:14 +01:00
GitHub Actions Bot
9b26bbd052 4.22.0-beta.67 2023-03-14 09:32:22 +00:00
Mateusz Kwasniewski
3837cceafe
fix: type checker happy (#3306) 2023-03-14 10:32:00 +01:00
Tymoteusz Czech
30a753b93f
UI/bulk select (#3267)
Select multiple toggles on project overview.
2023-03-14 08:56:03 +00:00
GitHub Actions Bot
cb75a68cc3 4.22.0-beta.66 2023-03-14 08:48:55 +00:00
Jaanus Sellin
1746a951c2
feat: bulk archive features (#3286)
Bulk archiving features logic.
2023-03-14 10:48:29 +02:00
GitHub Actions Bot
1ef0ca4ebf 4.22.0-beta.65 2023-03-13 12:23:12 +00:00
andreas-unleash
de73fd3554
feat: default stickiness per project in settings (#3299)
<!-- 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! ❤️ -->

Introduces 2 new endpoints (behind flag `projectScopedStickiness` to set
and get the setting

## 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 #

<!-- (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? -->

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-03-13 14:22:47 +02:00
dependabot[bot]
c9d8710279
chore(deps): bump @sideway/formula from 3.0.0 to 3.0.1 in /website (#3302) 2023-03-13 10:43:29 +00:00
dependabot[bot]
5e43eb1880
chore(deps): bump @sideway/formula from 3.0.0 to 3.0.1 in /docker (#3303) 2023-03-13 11:36:19 +01:00
GitHub Actions Bot
0dd71cf566 4.22.0-beta.64 2023-03-13 10:26:10 +00:00
Nuno Góis
fe1e3566ee
fix: assume undefined instead of null on segment project (#3304)
Assume `undefined` instead of `null` for project in terms of interfacing
with segments: If the `project` field is not present, that means that it
is not set, which means we're dealing with a "global" segment. If we
want to unset `project` and make a segment global, we simply don't send
the `project` property on our PUT method.
2023-03-13 10:25:48 +00:00
GitHub Actions Bot
9e8094f97c 4.22.0-beta.63 2023-03-13 09:13:06 +00:00
Mateusz Kwasniewski
8fdb263d64
feat: disable verbosity from db-migrate (#3301) 2023-03-13 10:12:43 +01:00
GitHub Actions Bot
ca02ca794a 4.22.0-beta.62 2023-03-10 13:45:28 +00:00
David Leek
792d0e42de
feat: add projectid to the segments table (#3287)
https://linear.app/unleash/issue/2-742/add-an-extra-column-in-global-segments-configuration-to-display-the

<!-- 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. -->

Adds projectid column to the segments table and defaults to the value
"Global" if none is set.


![image](https://user-images.githubusercontent.com/707867/224053267-e52a398a-6f89-4d27-bd52-72b73eedc99a.png)


<!-- (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? -->
SegmentTable.tsx

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

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2023-03-10 14:45:10 +01:00
GitHub Actions Bot
f7efdddc60 4.22.0-beta.61 2023-03-10 13:27:08 +00:00
Nuno Góis
db8d4d6f49
fix: segment project null handling (#3300)
~~Should we handle this on the store layer instead~~? 🤔
Fixing this on the store layer. Effectively, frontend is able to send
`project: null` and even if that gets magically converted to `""` it's
OK since we're covering that use case on the store layer. Backend
response will be `project: null` as well, so it should be consistent.
2023-03-10 13:26:48 +00:00
GitHub Actions Bot
55c69610ad 4.22.0-beta.60 2023-03-10 11:44:00 +00:00
Gastón Fournier
71a0514901
fix: ignore null check on tsc-watch (#3297)
## About the changes
This allows us to run start:dev
2023-03-10 11:43:41 +00:00
GitHub Actions Bot
3caf50db4b 4.22.0-beta.59 2023-03-10 11:12:36 +00:00
Mateusz Kwasniewski
10f7d57f13
fix: remove remaining warnings in tests (#3296) 2023-03-10 12:12:17 +01:00
GitHub Actions Bot
10bf75a2ab 4.22.0-beta.58 2023-03-10 10:28:25 +00:00
andreas-unleash
3193423d2d
feat: Project scoped stickiness (#3289)
Project scoped stickiness 
<!-- 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! ❤️ -->

Adds `projectScopedStickiness` flag to experimental.ts
Refactor Stickiness select for reusability
Modify FlexibleStrategy to respect the setting.
Modify EnvironmentVariantModal to respect the setting

## 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 #

<!-- (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? -->

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-03-10 12:28:02 +02:00
GitHub Actions Bot
99a5b96c20 4.22.0-beta.57 2023-03-10 09:38:30 +00:00
Gastón Fournier
fecbdd48a9
chore: add project-specific-segment permission (#3295)
## About the changes
This adds new permission to control access to project specific segments 

This should be used later for
https://linear.app/unleash/issue/2-743/have-a-project-specific-configuration-section:
![image
(11)](https://user-images.githubusercontent.com/455064/224277399-338ed0e6-f5e3-4318-a2cd-ac1300b60603.png)
2023-03-10 10:34:26 +01:00
GitHub Actions Bot
3956a85f34 4.22.0-beta.56 2023-03-10 09:28:14 +00:00
Gastón Fournier
8109c13e66
chore: enable strictNullCheck but ignore problems at compile time (#3273)
## About the changes
This enables strictNullChecks which will give us nice hints in our IDEs
to avoid introducing more and hopefully will encourage us to fix some of
the existing problems.

Also:
1. The compiler explicitly ignores these errors
2. The "null checks action" still verifies we're not introducing new
ones.

The combination of these two things should help us to reduce the number
of nulls

For testing that the action still works (cause it was modified), [a
commit](5c4b818d1a)
was added introducing a bunch of null check errors:
https://github.com/Unleash/unleash/actions/runs/4364648191/jobs/7632224720
2023-03-10 10:27:56 +01:00
Tymoteusz Czech
85b63bd8f7
Update frontend OpenAPI schema (#3294) 2023-03-10 09:36:31 +01:00
GitHub Actions Bot
c7f408b406 4.22.0-beta.55 2023-03-10 08:17:24 +00:00
Nuno Góis
ff7185fe5b
feat: allow adding project to segment (#3290)
https://linear.app/unleash/issue/2-741/add-project-dropdown-into-creation-of-segments

Allows users to bind a segment to a project when creating or editing a
segment.

<img width="1051" alt="image"
src="https://user-images.githubusercontent.com/14320932/224103846-1fe1f849-496c-4a77-9831-53bcb36f822e.png">
2023-03-10 08:16:54 +00:00
GitHub Actions Bot
9b563f60e6 4.22.0-beta.54 2023-03-10 08:03:49 +00:00
Simon Hornby
5088409c4d
fix: polling in proxy repository now stops correctly (#3268)
### What

This patches two very subtle bugs in the proxy repository that cause it
to never actually stop polling the db in the background

## Details - Issue 1

We've recently started to get the following output when running `yarn
test`:

` Attempted to log "Error: Unable to acquire a connection
at Object.queryBuilder
(/home/simon/dev/unleash/node_modules/knex/lib/knex-builder/make-knex.js:111:26)`
        
This seems to occur for every test suite after running the proxy tests
and the full stack trace doesn't point to anything related to the
running tests that produce this output. Running a `git bisect` points to
this commit:
6e44a65c58
being the culprit but I believe that this may have surfaced the bug
rather than causing it.

Layering in a few console logs and running Unleash, seems to point to
the proxy repository setting up data polling but never actually
terminating it when `stop` was called, which is inline with the output
here - effectively the tests were continuing to run the polling in the
background after the suite had exited and jest freaks out that an async
task is running when it shouldn't be. This is easy to reproduce once the
console logs are in place in the `dataPolling` function, by running
Unleash - creating and deleting a front end token never terminates the
poll cycle.

I believe the cause here is some subtlety around using async functions
with timers - stop was being called, which results in the timer being
cleared but a scheduled async call was already on the stack, causing the
recursive call to resolve after stop, resurrecting the timer and
reinitializing the poll cycle.

I've moved the terminating code into the async callback. Which seems to
solve the problem here.

## Details - Issue 2

Related to the first issue, when the proxy service stops the underlying
Unleash Client, it never actually calls destroy on the client, it only
removes it from its internal map. That in turn means that the Client
never calls stop on the injected repository, it only removes it from
memory. However, the scheduled task is `async` and `unref`, meaning it
continues to spin in the background until every other process also
exits. This is patched by simply calling destroy on the client when
cleaning up

## The Ugly

This is really hard to test effectively, mostly because this is an issue
caused by internals within NodeJS and async. I've added a test that
reads the output from the debug log (and also placed a debug log in the
termination code). This also requires the test code to wait until the
async task completes. This is horribly fragile so if someone has a
better idea on how to prove this I would be a very happy human.

The second ugly part is that this is a subtle issue in complex code that
really, really needs to work correctly. I'm nervous about making changes
here without lots of eyes on this
2023-03-10 10:03:32 +02:00
Simon Hornby
035daf675f
makes the 'Should update last seen for known toggles test' no longer … (#3293)
The patched test is currently depending on runtime to take more than a
millisecond to update the tested property. That's not always true and
more so on a fast machine, which makes this test flakey. This forces the
old timestamp to be 100 ms in the past so that the checked property must be at least 100 ms different if the update occurred
2023-03-10 09:58:43 +02:00