1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-08-18 13:48:58 +02:00
Commit Graph

9622 Commits

Author SHA1 Message Date
Thomas Heartman
ed6b496b23
feat: rename type 2023-11-21 13:18:22 +01:00
Thomas Heartman
7162d82234
feat: disallow additional properties on admin strategies 2023-11-21 13:16:04 +01:00
Thomas Heartman
ae20bcbae0
Merge branch 'main' into feat/api-handling-of-cr-segments 2023-11-21 13:07:46 +01:00
Thomas Heartman
f8db9098fc
Revert "Fix: add the right change"
This reverts commit 9dc64659b7.

Wasn't intended to push to main.
2023-11-21 12:54:45 +01:00
Thomas Heartman
9dc64659b7
Fix: add the right change 2023-11-21 12:53:35 +01:00
Fredrik Strand Oseberg
83fe430a14
Feat/private project badge (#5373)
Adds an icon with tooltip for private projects in ProjectCard and
Project header:

<img width="528" alt="Skjermbilde 2023-11-21 kl 10 58 13"
src="https://github.com/Unleash/unleash/assets/16081982/28004c11-a20d-4740-98f4-127f41639896">
2023-11-21 11:49:50 +01:00
Thomas Heartman
76169085e9
Chore: remove now-dead code. 2023-11-21 11:30:25 +01:00
Tymoteusz Czech
d5049e6197
feat: useTableState hook (#5362)
Simplified logic for handling interaction between URL (query), table state and localstorage.
2023-11-21 11:25:31 +01:00
Thomas Heartman
11715a296b
feat: avoid duplicates in changerequeststrategies 2023-11-21 11:20:37 +01:00
Thomas Heartman
13dde93ee0
feat: make most of the tests pass 2023-11-21 11:18:10 +01:00
Thomas Heartman
cdd0278c79
Fix: cast segment id to number before passing it on. 2023-11-21 11:17:42 +01:00
Nuno Góis
ae375703d2
fix: scheduler job runtime control (#5363)
## PR Description


https://linear.app/unleash/issue/2-1645/address-post-mortem-action-point-all-flags-should-be-runtime

Refactor with the goal of ensuring that flags are runtime controllable,
mostly focused on the current scheduler logic.

This includes the following changes:
 - Moves scheduler into its own "scheduler" feature folder
- Reverts dependency: SchedulerService takes in the MaintenanceService,
not the other way around
- Scheduler now evaluates maintenance mode at runtime instead of relying
only on its mode state (active / paused)
- Favors flag checks to happen inside the scheduled methods, instead of
controlling whether the method is scheduled at all (favor runtime over
startup)
 - Moves "account last seen update" to scheduler
 - Updates tests accordingly
 - Boyscouting

Here's a manual test showing this behavior, where my local instance was
controlled by a remote instance. Whenever I toggle `maintenanceMode`
through a flag remotely, my scheduled functions stop running:


https://github.com/Unleash/unleash/assets/14320932/ae0a7fa9-5165-4c0b-9b0b-53b9fb20de72


Had a look through all of our current flags and it *seems to me* that
they are all used in a runtime controllable way, but would still feel
more comfortable if this was double checked, since it can be complex to
ensure this.

The only exception to this was `migrationLock`, which I believe is OK,
since the migration only happens at the start anyways.

## Discussion / Questions

~~Scheduler `mode` (active / paused) is currently not *really* being
used, along with its respective methods, except in tests. I think this
could be a potential footgun. Should we remove it in favor of only
controlling the scheduler state through maintenance mode?~~ Addressed in
7c52e3f638

~~The config property `disableScheduler` is still a startup
configuration, but perhaps that makes sense to leave as is?~~
[Answered](https://github.com/Unleash/unleash/pull/5363#issuecomment-1819005445)
by @FredrikOseberg, leaving as is.

Are there any other tests we should add?

Is there anything I missed?

Identified some `setInterval` and `setTimeout` that may make sense to
leave as is instead of moving over to the scheduler service:
- ~~`src/lib/metrics` - This is currently considered a `MetricsMonitor`.
Should this be refactored to a service instead and adapt these
setIntervals to use the scheduler instead? Is there anything special
with this we need to take into account? @chriswk @ivarconr~~
[Answered](https://github.com/Unleash/unleash/pull/5363#issuecomment-1820501511)
by @ivarconr, leaving as is.
- ~~`src/lib/proxy/proxy-repository.ts` - This seems to have a complex
and specific logic currently. Perhaps we should leave it alone for now?
@FredrikOseberg~~
[Answered](https://github.com/Unleash/unleash/pull/5363#issuecomment-1819005445)
by @FredrikOseberg, leaving as is.
- `src/lib/services/user-service.ts` - This one also seems to be a bit
more specific, where we generate new timeouts for each receiver id.
Might not belong in the scheduler service. @Tymek
2023-11-21 10:06:38 +00:00
Thomas Heartman
27252f7728
chore: find segment strategies in CRs (#5365)
This PR adds the ability to detect which strategies use a specific
segment in active change requests.

It does not wire this functionality up to anything just yet. Follow-up
PRs will integrate this with the segment service and eventually with the
front end.
2023-11-21 10:29:43 +01:00
Mateusz Kwasniewski
7a8c8c8d29
docs: variants reassignment (#5372) 2023-11-21 10:24:35 +01:00
Jaanus Sellin
e79e30de96
fix: total number should be correct now in search (#5355)
The issue was that we all features were created exactly in same time,
and our feature counter waas expecting time to be unique to feature,
which was not the case.
2023-11-21 09:08:20 +01:00
Fredrik Strand Oseberg
11533bf97a
refactor: remove feature flag for Dora (#5367) 2023-11-21 08:18:00 +01:00
Thomas Heartman
0ba99a6162
fix: handle check against non existing projects (#5368)
Instead of throwing an error when the project doesn't exist, we say that
the names are valid, because we have nothing to say that they're not.
Presumably there is already something in place to prevent you from
importing into a non-existent project.
2023-11-20 16:02:41 +00:00
Thomas Heartman
66d43de8fd
feat: update some tests 2023-11-20 14:37:56 +01:00
Thomas Heartman
a64f6fd4a5
feat: update schema 2023-11-20 14:29:04 +01:00
Thomas Heartman
4bb9737d07
feat: incorporate change request filters 2023-11-20 14:26:57 +01:00
Thomas Heartman
aef8840ad8
Fix: broken test 2023-11-20 13:50:52 +01:00
Thomas Heartman
9e650e0257
Fix: type 2023-11-20 12:47:16 +01:00
Thomas Heartman
cb515d5ba4
feat: revert test 2023-11-20 12:45:08 +01:00
Thomas Heartman
90d6c7c0ba
chore: remove usage of feature naming pattern flag (#5364)
In preparation for this feature going GA
2023-11-20 12:42:24 +01:00
Thomas Heartman
831c468268
feat: fix description 2023-11-20 12:41:38 +01:00
Thomas Heartman
a76d1c13ba
feat: lift tests 2023-11-20 12:28:18 +01:00
Thomas Heartman
697d907708
feat: update test 2023-11-20 12:27:35 +01:00
Thomas Heartman
8666955eab
feat: fix impl 2023-11-20 12:22:24 +01:00
Thomas Heartman
a549f9a017
feat: more tests 2023-11-20 11:44:28 +01:00
Thomas Heartman
706019cd9e
feat: add new test for new test case 2023-11-20 10:47:07 +01:00
Thomas Heartman
f453a97b43
feat: add some new types 2023-11-20 10:46:57 +01:00
Thomas Heartman
6efd78c403
wip: start updating tests in read model 2023-11-20 10:11:10 +01:00
Thomas Heartman
33a57bc3f3
feat: start rearranging tests 2023-11-20 09:17:34 +01:00
Drew Gorton
fd099e242e
Add redirects from 404 logs (#5356)
Add more redirects from the docs refactor
2023-11-17 09:38:33 -06:00
Gastón Fournier
9ef78a5a18
fix: Banners ga (#5361)
It looks like auto-merge is merging before all checks are green.... Fixing the snapshot from https://github.com/Unleash/unleash/pull/5348
2023-11-17 15:09:18 +01:00
Gastón Fournier
4801b64824
feat(banners): enable customer banners (#5348)
## About the changes
This feature allows our Enterprise customers to configure banners to be
displayed on their Unleash instance for all their users to see and
interact with. Previously known as "internal message banners".
2023-11-17 13:56:09 +00:00
Thomas Heartman
be699962b1
chore: remove segments oss splash (#5359)
This change removes the oss segments splash screen that was introduced
in https://github.com/Unleash/unleash/pull/5053.
2023-11-17 13:39:43 +00:00
Thomas Heartman
dab3dca1e1
chore: Update strategy-constraints.md (#5360)
Fix a typo: explored -> explore
2023-11-17 13:01:48 +00:00
Fredrik Strand Oseberg
fd453f5af7
fix: hardcoded stickiness and mode fields (#5342)
This PR fixes an issue where project overview would return hardcoded
project mode and stickiness fields.
2023-11-17 12:32:13 +01:00
Gastón Fournier
572610a0d8
chore: remove tsc when running tests (we do in GHA) (#5357)
Not needed for tests
2023-11-17 11:42:32 +01:00
andreas-unleash
0dc5f306cc
Feat: change request scheduled timeline (#5346)
Adds the scheduled state to the timeline

Closes #
[1-1632](https://linear.app/unleash/issue/1-1632/update-the-progress-bar-for-scheduled-changes)

![Screenshot 2023-11-16 at 10 51
03](https://github.com/Unleash/unleash/assets/104830839/6267299e-d5c3-4cbf-9ab2-25da53f2d526)

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-17 11:20:14 +02:00
Nuno Góis
f8a9d7f355
fix: take into account project segments permission in form (#5352)
https://linear.app/unleash/issue/SR-184/ticket-1106-users-with-createedit-project-segment-dont-see-all-the

https://github.com/Unleash/unleash/pull/5304 did not take into account
permissions further into the Segment form.

This PR fixes the remaining permission checks to take into consideration
the project-level permission: `UPDATE_PROJECT_SEGMENT`.
2023-11-16 11:54:56 +00:00
Fredrik Strand Oseberg
2dd2d520e3
Feat/exp project features (#5351)
This PR adds feature toggle list on the project on a separate page as an
experiment
2023-11-16 12:41:31 +01:00
Gastón Fournier
02da9b1d34
fix: handle concurrent service account updates (#5349) 2023-11-16 11:03:27 +00:00
Jaanus Sellin
f3df3a31bf
feat: fix paging in sql by using common table expressions (#5343)
Optimizations:

1. Removed extra round trip to database  to count environments
2. Removed extra round trip to database to count features

Fixes:

Currently, we were using a very optimistic query to set correct limit
and offset. This breaks as soon we we join tags.

` query = query
            .select(selectColumns)
            .limit(limit * environmentCount)
            .offset(offset * environmentCount);` 

The solution was to use common table expressions, so we could count and
rank features.
2023-11-16 10:34:44 +02:00
Jaanus Sellin
4e1040c849
feat: connect sort table to backend (#5338)
Now FE sorting is done in backend.
2023-11-15 16:01:02 +02:00
Fredrik Strand Oseberg
db77962a72
fix/usefeaturesearch cache (#5340)
Fixes a bug where the closure over the useFeatureSearch hook would not
account for projectId and return the wrong total/initial load
2023-11-15 11:09:13 +01:00
Gastón Fournier
142e322589
docs: POST and PUT body handling (#5319)
## About the changes
While working on Terraform I identified some issues with how our backend
handled some requests. This happened because the Terraform client was
unaware of new fields and was not sending them. This resulted in bad
behavior as some of those missing fields were treated in the backend as
`null` and removed existing data from the DB.

This ADR aims to shed some light on the problem and specifies how our
server should handle these requests.

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2023-11-14 07:56:58 -06:00
Dawit Beyene
80e893fc1d
docs minimal edit into the desc (#5245)
<!-- 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 #

<!-- (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? -->
2023-11-14 07:56:25 -06:00
andreas-unleash
7281e8b2d3
fix: new SCHEDULED_CHANGE_REQUEST_EXECUTED on scheduled cr execution (#5330)
Rename event to SCHEDULED_CHANGE_REQUEST_EXECUTED

This event will be triggered when the executor runs a scheduled change
request.
The ChangeRequestApplied event will remain as is (going out to project
members - but will have a scheduled = true property in the data if it
scheduled.
This new event will fire on execution of the schedule and have a result
= "failed" | "succeeded" property.
Because notifications are tied to events, this notification will go out
to the creator and the applier

---------

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-11-14 14:58:48 +02:00