1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-03-04 00:18:40 +01:00
Commit Graph

189 Commits

Author SHA1 Message Date
Tymoteusz Czech
fd3a7f12cb
chore: remove featureSwitchRefactor flag (#5329)
Cleanup. This change has been rolled out to significant number of
customers already, and we have another parallel version behind a flag.
2023-11-14 13:03:23 +01:00
Jaanus Sellin
5d762dcb39
feat: sort favorites on the backend (#5326)
Now favorites will be always on first page, if pinned.
2023-11-14 09:22:35 +02:00
Jaanus Sellin
5782efa6c0
chore: move sort order validation closer to store due to possible SQL injection (#5322) 2023-11-13 12:43:12 +02:00
Jaanus Sellin
00327c359d
chore: optimize sql query to not concatenate (#5321) 2023-11-13 08:42:19 +02:00
Thomas Heartman
ece5a634bf
feat: API prevents you from deleting segments in crs (#5308)
This PR hooks up the changes introduced in #5301 to the API and puts
them behind a feature flag. A new test has been added and the test setup
has been slightly tweaked to allow this test.

When the flag is enabled, the API will now not let you delete a segment
that's used in any active CRs.
2023-11-09 12:09:39 +01:00
Nuno Góis
4d1f76e61b
fix: take into account project segments permission (#5304)
https://linear.app/unleash/issue/SR-164/ticket-1106-user-with-createedit-project-segment-is-not-able-to-edit-a

Fixes a bug where the `UPDATE_PROJECT_SEGMENT` permission is not
respected, both on the UI and on the API. The original intention was
stated
[here](https://github.com/Unleash/unleash/pull/3346#discussion_r1140434517).

This was easy to fix on the UI, since we were simply missing the extra
permission on the button permission checks.

Unfortunately the API can be tricky. Our auth middleware tries to grab
the `project` information from either the params or body object, but our
`DELETE` method does not contain this information. There is no body and
the endpoint looks like `/admin/segments/:id`, only including the
segment id.

This means that, in the rbac middleware when we check the permissions,
we need to figure out if we're in such a scenario and fetch the project
information from the DB, which feels a bit hacky, but it's something
we're seemingly already doing for features, so at least it's somewhat
consistent.

Ideally what we could do is leave this API alone and create a separate
one for project segments, with endpoints where we would have project as
a param, like so:
`http://localhost:4242/api/admin/projects/:projectId/segments/1`.

This PR opts to go with the quick and hacky solution for now since this
is an issue we want to fix quickly, but this is something that we should
be aware of. I'm also unsure if we want to create a new API for project
segments. If we decide that we want a different solution I don't mind
either adapting this PR or creating a follow up.
2023-11-09 09:37:47 +00:00
Jaanus Sellin
8c2a052a68
fix: project overview and search returning just single tag (#5305) 2023-11-09 10:58:34 +02:00
Thomas Heartman
2695e38ed5
fix: make test for last seen by env not rely on array order (#5303)
This test was flaky because it relied on the order of the array
returned. To make it less flaky, we now turn the array into an object
instead and compare that.
2023-11-08 15:23:24 +01:00
Jaanus Sellin
a5288ae0b1
feat: also allow searching partial tags (#5299) 2023-11-08 16:05:22 +02:00
Thomas Heartman
f45454fbfd
refactor: extract segment usage read model (#5301)
This PR adds a way to tell if a specific segment is being used in any
active change requests. It's the first step towards preventing segments
that are being used in change requests from being deleted.

It does that by checking the db for any unclosed CRs and using those CR
ids to look for "addStrategy" and "updateStrategy" events in the cr
events table.

## Upcoming PRs

This only puts in a way to detect it, but doesn't add that to anything.
That'll be in an upcoming iteration.
2023-11-08 14:50:12 +01:00
Jaanus Sellin
24f9fa3058
feat: connect search and filter with server api (#5297) 2023-11-08 14:19:40 +02:00
Fredrik Strand Oseberg
fa85e10eac
refactor: remove separate admin api feature flag (#5228)
This PR will remove the feature flag to separate the admin and client
api
2023-11-08 12:24:11 +01:00
Jaanus Sellin
4bacd3e055
feat: introduce offset based search instead of cursor (#5274) 2023-11-08 11:12:42 +02:00
Gastón Fournier
f16ad4e899
chore: import IUser instead of User for auth (#5269)
## About the changes
A very subtle change in the way we import IUser makes a huge difference
because previously, instead of importing IUser interface we were
importing User and naming it IUser here:

6f8f21fd48/src/lib/routes/unleash-types.ts (L2)
whereas the correct way of importing the interface is:

eec64b119e/src/lib/routes/unleash-types.ts (L2)
2023-11-06 10:46:59 +01:00
Mateusz Kwasniewski
43298e16e2
feat: Server side sort by (#5250) 2023-11-03 13:15:12 +01:00
Mateusz Kwasniewski
cbc89f6a92
feat: sort parent options alphabetically (#5238) 2023-11-01 21:18:19 +01:00
Mateusz Kwasniewski
bc66fb649f
feat: infinite scroll API trigger (#5242) 2023-11-01 15:56:06 +01:00
Jaanus Sellin
598d022a5a
fix: do not allow segment deletion when used in private projects (#5236) 2023-11-01 11:01:23 +02:00
Mateusz Kwasniewski
74bbc7799e
feat: total count in search results (#5235) 2023-11-01 09:19:42 +01:00
Mateusz Kwasniewski
e5bbe5829f
feat: Cursor based hateoas (#5230) 2023-10-31 14:10:31 +01:00
Gastón Fournier
b1ea2c3b88
chore: expose instanceId so it can be used from addons (#5231)
## About the changes
A bit of boy scouting trying to expose the instanceId
2023-10-31 12:38:21 +01:00
Jaanus Sellin
406b2383da
fix: private projects early exit when not root viewer (#5232) 2023-10-31 13:37:09 +02:00
Fredrik Strand Oseberg
7d65615335
refactor: remove deep diff (#5217)
For a while we ran a diffing algorithm in production to verify that the
results of the refactor did not differ from the previous results. As the
experiment has run it's course and new attributes have been added on top
of the new flow, this will remove the logging and associated code.
2023-10-30 13:30:21 +01:00
Fredrik Strand Oseberg
28c72ec957
fix: ft overview last seen at (#5212)
Fixes an issue where the query in the feature toggle overview would
return excess rows
2023-10-30 13:09:27 +01:00
Mateusz Kwasniewski
b54d481fc8
fix: variant hashing in playground (#5213) 2023-10-30 12:38:32 +01:00
Mateusz Kwasniewski
6d17c3b320
feat: cursor based pagination in search (#5174) 2023-10-27 14:16:29 +02:00
Mateusz Kwasniewski
1c8fab63e2
feat: filter by environment status (#5165) 2023-10-27 08:54:03 +02:00
Mateusz Kwasniewski
46d7cb236d
feat: filter by tags (#5163) 2023-10-26 17:20:57 +02:00
Mateusz Kwasniewski
0c8d0704f3
feat: filter features by type (#5160) 2023-10-26 15:29:30 +02:00
Fredrik Strand Oseberg
87fd924be3
refactor: optimize queries (#5158)
This commit will change the join to only get results for either archived
or non-archived features based on the query
2023-10-26 13:38:22 +02:00
Mateusz Kwasniewski
065e588e64
Search by tag (#5156)
add tag search for feature search API
2023-10-26 12:50:02 +02:00
Mateusz Kwasniewski
2c7b7c90e0
refactor: type query params (#5153) 2023-10-26 10:05:47 +02:00
Mateusz Kwasniewski
de540e09f3
feat: feature search basic functionality (#5150) 2023-10-25 16:12:21 +02:00
Fredrik Strand Oseberg
3ee250ee7d
feat: add feature search service (#5149) 2023-10-25 15:18:52 +02:00
Mateusz Kwasniewski
705ca1514e
feat: feature search stub (#5143) 2023-10-25 10:50:59 +02:00
Fredrik Strand Oseberg
898c1b4bc7
fix: only get rows for toggles in project (#5141) 2023-10-24 17:26:18 +02:00
Christopher Kolstad
c60bca777f
feat: replace gravatar-url with inline function (#5128)
As #4475 says, MD5 is not available in secure places anymore. This PR
swaps out gravatar-url with an inline function using crypto:sha256 which
is FIPS-140-2 compliant. Since we only used this method for generating
avatar URLs the extra customization wasn't needed and we could hard code
the URL parameters.
 
fixes: Linear
https://linear.app/unleash/issue/SR-112/gh-support-swap-out-gravatar-url-lib
closes: #4475
2023-10-24 10:07:26 +02:00
Mateusz Kwasniewski
8d8a975c6c
Client instance service (#5126) 2023-10-23 15:22:30 +02:00
Mateusz Kwasniewski
828e463e38
refactor: move version service scheduling to scheduler (#5120) 2023-10-23 09:34:03 +00:00
Fredrik Strand Oseberg
71431c7a1d
refactor/last seen at archived (#5102)
Refactor global archive view and project archive view to include last
seen at by environment
2023-10-20 13:17:41 +02:00
Tymoteusz Czech
6fab6633c9
feat: add hasStrategies and hasEnabledStrategies on feature environments (#5012) 2023-10-20 10:50:57 +02:00
Mateusz Kwasniewski
b890df6e12
feat: show warning about dependencies removed on archive (#5104) 2023-10-20 08:58:03 +02:00
Gastón Fournier
3d9f31f839
feat: ensure at least one owner on remove user/group access (#5085)
## About the changes
This makes sure that projects have at least one owner, either a group or
a user. This is to prevent accidentally losing access to a project.

We check this when removing a user/group or when changing the role of a
user/group

**Note**: We can still leave a group empty as the only owner of the
project, but that's okay because we can still add more users to the
group
2023-10-19 14:14:59 +02:00
andreas-unleash
6760fc0723
fix: add project filter to feature-toggle-list-builder (#5099)
Adds `forProject` filter to FeatureToggleQueryBuilder
Filters playground results for an array of projects

Closes #
[1-1525](https://linear.app/unleash/issue/1-1525/getting-results-for-all-projects-when-defining-a-single-project-in-the)

Signed-off-by: andreas-unleash <andreas@getunleash.ai>
2023-10-19 15:05:56 +03:00
Mateusz Kwasniewski
de237d844d
feat: detect grandchild dependency (#5094) 2023-10-19 13:14:32 +02:00
Mateusz Kwasniewski
56892c54d9
feat: check if child and parent are in the same project (#5093) 2023-10-19 11:11:05 +02:00
Fredrik Strand Oseberg
7195a63e56
Refactor/last seen at ft list (#5089)
Refactor last seen at for the feature toggle list
2023-10-19 10:58:10 +02:00
Mateusz Kwasniewski
f8855f8234
feat: prevent self dependencies (#5090) 2023-10-19 08:57:23 +02:00
Fredrik Strand Oseberg
cd864ed09e
fix: add sort to deep diff (#5084)
Sort array items before running compare. Feature flag certain properties
of strategy that were previously not present in the /api/admin/features
endpoint.
2023-10-18 16:34:42 +02:00
Fredrik Strand Oseberg
3ac8ab898a
fix: log diff (#5072)
Add a deep diff function to investigate diff in logs
2023-10-18 09:25:25 +02:00