1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-11-24 20:06:55 +01:00
Commit Graph

926 Commits

Author SHA1 Message Date
Jaanus Sellin
89cff9d533
fix: tear down also event handlers in addon service (#10295) 2025-07-03 12:09:35 +03:00
unleash-bot[bot]
f7fcd1c4df
chore(AI): registerFrontendClient flag cleanup (#10297) 2025-07-03 10:52:48 +02:00
Jaanus Sellin
778fb2ee17
feat: now also sorting by id if in same transaction/date (#10290)
Also sort events by id, so they will be in correct order if done inside
transaction.
2025-07-03 09:26:38 +03:00
Jaanus Sellin
7e85de8f65
feat: now it is possible to search events by group id (#10275)
Now when you put group ID as query param, it will filter based on
transaction id.

I am not sure if its best naming, whether it should be groupId or
transactionId, I will leave as group for now, but its simple change
later.


![image](https://github.com/user-attachments/assets/e0caaf57-f93f-40ee-a332-d3aed249c4ca)
2025-07-02 10:16:13 +03:00
Nuno Góis
a251a9808a
fix: private projects visibility for users in editor and admin groups (#10265)
https://linear.app/unleash/issue/2-3665/viewer-role-in-admin-group-cannot-access-private-projects

Fixes a bug where private projects were not visible for viewers that
belonged to Editor or Admin groups.
2025-07-01 17:16:52 +01:00
Mateusz Kwasniewski
661fd6febf
feat: bulk impact metrics (#10251) 2025-07-01 09:50:44 +02:00
Jaanus Sellin
681ce3bfd9
feat: start storing every transaction id in events table (#10236)
Every time an event gets inserted, we check if there is transaction
data, that we can include.
2025-06-30 16:00:57 +03:00
Gastón Fournier
0f9774800e
feat: ability to search events by type with pagination (#10217)
This helps us to use this feature to implement partial user sync by
observing the changes in the audit log
2025-06-26 14:42:29 +02:00
Mateusz Kwasniewski
7c31ec71a1
feat: Count errors and gauge for heap memory (#10203) 2025-06-25 08:03:15 +02:00
Mateusz Kwasniewski
3f9db9195c
feat: count created feature links with impact metrics (#10201) 2025-06-24 13:18:06 +02:00
Tymoteusz Czech
daa6461d9b
chore: bulk metrics - remove a flag (#10190) 2025-06-23 13:25:25 +02:00
Ivar Conradi Østhus
2ecb4b0a4f
Chore/remove flag disable bulk toggle (#10183)
Prompt used:

![image](https://github.com/user-attachments/assets/17d35ab4-cc2c-4f90-9bee-7fdc3550e1ec)

LLM: Gemini 2.5 Pro (preview)

@kwasniew do we still need this kill-switch?
2025-06-20 13:18:50 +02:00
Mateusz Kwasniewski
632f3a04cb
feat: validate impact metrics (#10181) 2025-06-19 14:46:36 +02:00
Jaanus Sellin
40840c98cf
feat: support event id in search (#10176)
We added `id` as one of the query parameters for searching events.
2025-06-19 14:46:14 +03:00
Mateusz Kwasniewski
63a354ab6f
test: impact metrics e2e (#10178) 2025-06-19 12:34:22 +02:00
Simon Hornby
40c7c25db9
feat: ingest new impact metrics (#10169)
Accepts the new impact metrics into the singleton registry and then does
nothing with them. If the relevant flag is off, the metrics are stripped
from the existing metrics data format and dropped on the floor
2025-06-19 11:31:51 +02:00
Mateusz Kwasniewski
2444bd7ccd
test: impact metrics collection e2e (#10162) 2025-06-18 13:44:55 +02:00
Mateusz Kwasniewski
6f7f48a361
Revert "chore: use logger instead of console.error" (#10153)
Reverts Unleash/unleash#10150
2025-06-17 17:20:39 +02:00
Gastón Fournier
0bad9101fc
chore: use logger instead of console.error (#10150) 2025-06-17 15:37:57 +02:00
Mateusz Kwasniewski
02876a1c08
feat: expose impact metrics (#10151) 2025-06-17 14:17:46 +02:00
Mateusz Kwasniewski
d2b9751e01
feat: translate impact metrics to prom format (#10147) 2025-06-17 11:52:41 +02:00
Christopher Kolstad
c165e87d74
chore: now expose IFeatureUsageInfo to override telemetry checking (#10149)
Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2025-06-17 11:27:47 +02:00
Christopher Kolstad
c13ab85b1c
feat: report hostedBy and licenseType (#10141)
Added two new fields to FeatureInfo (what gets reported as telemetry)
reporting license type and hostedBy. Will be overriden in Enterprise.
2025-06-13 12:44:21 +00:00
Christopher Kolstad
b70f862f93
fix: md5 is deprecated and fails FEDRAMP. Replace with sha256 (#10125)
#10121 points out that we're using md5 functions still. This PR updates
our migrations to no longer use md5 at all (so if you haven't run the
migrations, you won't get email hashes until you get to the included
migration with this PR). If you've already run the migrations, we'll
drop the existing `email_hash varchar(32)` column and replace it with a
`email_hash TEXT` column.

We're also replacing the md5 function with `encode(sha256(email),
'hex')`. encode has been supported since PG10, sha256 came with PG11.

Do we want an index on the email_hash? I wasn't sure, but if we want to
do lookup we probably should have an index on it (though not a unique
one)
2025-06-13 09:41:40 +02:00
Gastón Fournier
37a125f0b5
feat: ability to query users with pagination (#10130)
Made a few QoL improvements:
- Don't use default export for class
- Move users store to a feature package (didn't move the interface as it
might be referenced elsewhere)
- Add types for query builders (and ts-expect-error when needed)
2025-06-12 17:43:22 +02:00
Tymoteusz Czech
4e48d90ed8
fix: use technicalDebt property from backend (#10111)
Frontend should load `technicaDebt` from backend instead of
re-calculating it.
2025-06-12 16:50:29 +02:00
Tymoteusz Czech
a5e5ea0436
feat: update backend to include technicalDebt field (#10088)
Deprecate `health` for a more descriptive `technicalDebt` in project-related services and schemas.
2025-06-06 16:27:41 +02:00
Gastón Fournier
bdb763c9d5
chore!: remove deprecated default env from new installs (#10080)
**BREAKING CHANGE**: DEFAULT_ENV changed from `default` (should not be
used anymore) to `development`

## About the changes
- Only delete default env if the install is fresh new.
- Consider development the new default. The main consequence of this
change is that the default is no longer considered `type=production`
environment but also for frontend tokens due to this assumption:
724c4b78a2/src/lib/schema/api-token-schema.test.ts (L54-L59)
(I believe this is mostly due to the [support for admin
tokens](https://github.com/Unleash/unleash/pull/10080#discussion_r2126871567))
- `feature_toggle_update_total` metric reports `n/a` in environment and
environment type as it's not environment specific
2025-06-06 12:02:21 +02:00
Gastón Fournier
f1c2706db7
chore: prepare to remove default env (#10087)
Use DEFAULT_ENV instead of just 'default'
2025-06-06 09:20:16 +02:00
David Leek
1aadbb3641
chore(apitoken)!: remove ILegacyApiTokenCreate (#10072) 2025-06-04 11:41:37 +02:00
Christopher Kolstad
8d7a0fdd7f
chore(adminapi)!: Remove deprecated project overview (#10069)
BREAKING CHANGE: As part of the preparation for a new major (7.0) this
removes /api/admin/projects/{projectId} endpoint. It has been deprecated
since 5.8, and we don't use it anymore in our frontend.
2025-06-04 09:59:36 +02:00
Gastón Fournier
5019f4fcbc
chore!: removing userId strategy for new installations of Unleash (#9800)
This removes a strategy that was already deprecated, but only for new
installations.

I tested starting with an installation with this strategy being used and
then updating, and I was still able to edit the strategy, so this should
not impact current users.

On a fresh install the strategy is no longer available.

---------

Co-authored-by: Nuno Góis <github@nunogois.com>
2025-06-04 09:30:13 +02:00
Christopher Kolstad
8050f25add
chore(adminapi)!: Remove feature variant endpoints (#10071)
BREAKING CHANGE: This removes the
GET /api/admin/projects/{project}/features/{featureName}/variants 
PATCH /api/admin/projects/{project}/features/{featureName}/variants 
PUT /api/admin/projects/{project}/features/{featureName}/variants
endpoints

Users should move to environment or strategy specific variant methods
rather than feature level variant methods.
2025-06-04 09:09:52 +02:00
Mateusz Kwasniewski
0819b2cf32
chore: remove link flags (#10076) 2025-06-03 13:47:24 +02:00
Mateusz Kwasniewski
68660e1e1f
chore: remove flag removeInactiveApplications (#10075) 2025-06-03 13:22:11 +02:00
Nuno Góis
6d70265edd
chore: clean up project related tech debt (#10065)
https://linear.app/unleash/issue/2-3581/remove-project-related-legacy-code

Identified some clean up opportunities during deprecated endpoint
removal, mostly related to project insights.
2025-06-03 09:21:55 +01:00
Gastón Fournier
63bf01d211
chore: print out 10 unknown flag names (#10062)
- Move logs, and replace a debug log with just the info log while adding
appName to it
- Print out at most 10 invalid flag names
2025-05-30 12:24:41 +02:00
Jaanus Sellin
d8c83fb824
fix: do not allow creating cr for same environment (#10010)
If there are two concurrent requests to create or edit change requests,
two separate ones may be created in parallel. The UI does not currently
handle this scenario, and if additional changes are made, they might be
added to a random existing change request—resulting in a messy and
unpredictable state.

This PR adds a unique index to the `change_requests` table 
```
on (created_by, project, environment)
WHERE state NOT IN ('Applied', 'Cancelled', 'Rejected', 'Scheduled').
```

In the extremely rare case where such conflicting data already exists in
a database, the migration will automatically cancel one of the
conflicting change requests.
2025-05-30 08:20:11 +03:00
Nuno Góis
eef32b7cf5
chore!: remove deprecated put project groups roles endpoint (#10059)
https://linear.app/unleash/issue/2-3361/remove-put-apiadminprojectsprojectidgroupsgroupidrolesroleid

Removes PUT
`/api/admin/projects/{projectId}/groups/{groupId}/roles/{roleId}` which
was deprecated in v5.5.
Also cleans up related code.
2025-05-29 14:03:59 +01:00
Nuno Góis
1f4aa0ed34
chore!: remove deprecated delete project groups roles endpoint (#10036)
https://linear.app/unleash/issue/2-3362/remove-delete-apiadminprojectsprojectidgroupsgroupidrolesroleid

Removes DELETE
`/api/admin/projects/{projectId}/groups/{groupId}/roles/{roleId}` which
was deprecated in v5.5.
Also cleans up related code.
2025-05-28 12:11:17 +01:00
Nuno Góis
a419b8e098
chore: prefer searchEvents over deprecated methods (#10031)
https://linear.app/unleash/issue/2-3577/prefer-the-new-searchevents-method-over-deprecated-methods

We should favor our new `searchEvents` method over the other deprecated
methods. This PR removes these deprecated methods, replaces them with
the new `searchEvents` and `searchEventsCount` methods, and marks the
old endpoints as deprecated.

Follow-up to: https://github.com/Unleash/unleash/pull/10030
2025-05-27 16:19:10 +01:00
Jaanus Sellin
2879ce9dd6
fix: make revision id not be so reactive (#10032)
Unleash is being too reactive to events inside Unleash. We should not
update etag if feature is created or tag is added to feature.

This PR adds this condition and adds test for it.
2025-05-27 16:16:26 +03:00
Nuno Góis
290ef6ca40
chore!: remove deprecated POST events search endpoint (#10030)
https://linear.app/unleash/issue/2-3368/remove-post-apiadmineventssearch-deprecated-in-610

Removes POST `/api/admin/events/search` which was deprecated in v6.1.
Also cleans up related code.
2025-05-27 09:12:36 +01:00
Nuno Góis
e52fcd11e0
chore!: remove deprecated POST ui-config endpoint (#10027)
https://linear.app/unleash/issue/2-3472/remove-post-apiadminui-config-deprecated-in-690

Removes POST `/api/admin/ui-config` which was deprecated in v6.9.
Also cleans up related code.
2025-05-26 10:22:16 +01:00
Gastón Fournier
27781fea47
chore: remove console.log and reuse package scripts (#10025)
Make `start:dev` re-use `dev:backend`, the only difference is start:dev
runs a clean before running
2025-05-23 12:24:03 +02:00
Jaanus Sellin
5fb718efcd
feat: custom metrics poc (#10018)
Now we can receive custom metrics, return those for UI and have extra
prometheus endpoint for it.

---------

Co-authored-by: Christopher Kolstad <chriswk@getunleash.io>
2025-05-21 16:55:30 +03:00
Thomas Heartman
9955267d39
Chore(1-3753)!: block deletion of context fields in use (#10005)
Blocks deletion of context fields that are in use and updates the
"active usage" count to exclude use in archived flags.

- Before allowing you to delete a context field, checks if it is in use
by any strategies. If so, returns a 409 error.
- Updates what we count as "in use" to exclude flags that have been
archived.

BREAKING CHANGE: Context fields can no longer be deleted if they are in
use by active (non-archived) flags.
2025-05-19 13:02:01 +02:00
Tymoteusz Czech
b0954f213c
chore: remove flagsReleaseManagementUI and flagsOverviewSearch flags (#10011)
Removing the `flagsReleaseManagementUI` and `flagsOverviewSearch`
feature flags - we're keeping these enabled.
2025-05-16 15:13:32 +02:00
Christopher Kolstad
b681702b77
task: migrate tests to vitest
Vitest Pros:
* Automated failing test comments on github PRs
* A nice local UI with incremental testing when changing files (`yarn
test:ui`)
* Also nicely supported in all major IDEs, click to run test works (so
we won't miss what we had with jest).
* Works well with ESM

Vitest Cons:
* The ESBuild transformer vitest uses takes a little longer to transform
than our current SWC/jest setup, however, it is possible to setup SWC as
the transformer for vitest as well (though it only does one transform,
so we're paying ~7-10 seconds instead of ~ 2-3 seconds in transform
phase).
* Exposes how slow our tests are (tongue in cheek here)
2025-05-16 11:19:10 +02:00
Nuno Góis
4d1b44818f
chore: remove filterExistingFlagNames feature flag (#9957)
https://linear.app/unleash/issue/2-3564/remove-filterexistingflagnames-feature-flag

We're removing the `filterExistingFlagNames` feature flag since we've
decided we want this to be the default behavior.

We don't need to rush to merge it, just in case we need to disable this
for any reason. However it should also be pretty easy to just revert if
needed.

Changes in tests are a bit tricky since they assumed the previous
behavior where we always registered metrics, even for non existing flag
names. `cachedFeatureNames` is also memoized with a TTL of 10s, so the
easiest way to overcome this was to override `cachedFeatureNames` to
return what we expected. As long as they return the same flag names that
we expect, we're able to register their metrics.

Let me know if you can think of a better approach.
2025-05-16 08:52:27 +01:00
Thomas Heartman
082a03afd7
Fix(1-3485)/handle deleted constraints (#9999)
Improves handling of constraints in use that have been deleted.

This change implments a few small changes on both the front and the back
end on how we deal with constraints that have been deleted.

The most important change is on the back end, in the
`/constraints/validate` endpoint. We used to throw here if the
constraint couldn't be found, but the only reason we wanted to look for
the constraint in the db was to check for legal values. Now, instead,
we'll allow you to pass a constraint field that doesn't exist in the
database. We'll still check the values against the operator for
validity, we just don't control legal values anymore (because there
aren't any).

On the front end, we improve the handling by showing the deleted context
filed in the dropdown, both when the selector dropdown is closed and
when it is open. However, if you change the context field, we remove the
deleted field from the list. This seems like a sensible tradeoff. Means
you can't select it if you've deselected it.
2025-05-15 13:08:54 +02:00
Tymoteusz Czech
4d92d54f9a
feat: track last seen clients using bulk update (#9981)
Let's not update `lastSeen` in the db on each client call
2025-05-15 13:06:54 +02:00
Gastón Fournier
abe160eb7d
feat: Unleash v7 ESM migration (#9877)
We're migrating to ESM, which will allow us to import the latest
versions of our dependencies.

Co-Authored-By: Christopher Kolstad <chriswk@getunleash.io>
2025-05-14 09:47:12 +02:00
Nuno Góis
e7da79d974
refactor: clean up dead code after removing deprecated project role access endpoint (#9949)
https://linear.app/unleash/issue/2-3363/remove-post-apiadminprojectsprojectidroleroleidaccess-deprecated-in

Cleans up dead code after removing POST
`/api/admin/projects/{projectId}/role/{roleId}/access` which was
deprecated in v5.5.

Should only be merged after the Enterprise PR.
2025-05-13 13:52:13 +01:00
Fredrik Strand Oseberg
94c73bbc5d
feat: event log environment filter (#9979)
Add Environment Filter to Event Log
2025-05-13 13:45:22 +02:00
Nuno Góis
c0c7005859
refactor: remove deprecated post project role access endpoint (#9948)
https://linear.app/unleash/issue/2-3363/remove-post-apiadminprojectsprojectidroleroleidaccess-deprecated-in

Removes POST `/api/admin/projects/{projectId}/role/{roleId}/access`
which was deprecated in v5.5.
Also cleans up related code.

Needs follow up PRs.
2025-05-13 12:28:44 +01:00
Tymoteusz Czech
57d11ae6b3
feat: link templates applied on flags (#9976) 2025-05-13 13:16:26 +02:00
Nuno Góis
0429c1985a
refactor: remove deprecated get archive featured by project endpoint (#9938)
https://linear.app/unleash/issue/2-3367/remove-get-apiadminarchivefeaturesprojectid-deprecated-in-4110

Removes GET `/api/admin/archive/features/{projectId}` which was
deprecated in v4.11.
Also cleans up related code.

I leveraged our search features endpoint where needed, since that's what
we're using now in our UI (to see archived features you filter by
archived=true).

Builds on top of https://github.com/Unleash/unleash/pull/9924 — Since
they're both related.
2025-05-13 12:09:52 +01:00
Nuno Góis
42b6fc810e
refactor: remove deprecated GET archive features endpoint (#9924)
https://linear.app/unleash/issue/2-3366/remove-get-apiadminarchivefeatures-deprecated-in-4100

Removes GET `/api/admin/archive/features` which was deprecated in v4.10.
Also cleans up related code.

May include some slight scouting.

**P.S.** Should we merge this into main, or is there a `v7` branch we
should be targeting instead?
2025-05-13 11:45:03 +01:00
Mateusz Kwasniewski
410142cb42
feat: make all feature toggle service write methods transactional (#9973) 2025-05-13 12:16:20 +02:00
Tymoteusz Czech
309816ca38
feat: add getProjectLinkTemplates method (#9971)
Add `getProjectLinkTemplates` method to ProjectStore and corresponding
test. Ideally this should be in a read-model, but let's finish link
templates end to end
2025-05-13 11:21:18 +02:00
Mateusz Kwasniewski
9c05e56c4a
refactor: simplify feature toggle service deps (#9964) 2025-05-13 09:42:37 +02:00
Mateusz Kwasniewski
d175a5705a
feat: Import feature links (#9958) 2025-05-12 13:59:18 +02:00
Tymoteusz Czech
520d708978
fix: ensure linkTemplates defaults to an empty array if not provided 2025-05-12 13:21:06 +02:00
Mateusz Kwasniewski
5708acb5b7
feat: export feature links (#9954) 2025-05-12 12:07:00 +02:00
Tymoteusz Czech
f55ea5f387
chore: remove embedProxy flag (#9874)
Clean up old flags
2025-05-12 10:28:31 +02:00
Mateusz Kwasniewski
e414c4446d
feat: remove instances older than 1 day not 2 days (#9944) 2025-05-09 13:58:52 +02:00
Tymoteusz Czech
f02c883da5
feat: external link templates (#9927)
Adds support for link templates in projects, allowing reusable URL
patterns with placeholders. Includes validation, database changes,
updated API schemas, and tests.
2025-05-09 12:40:14 +02:00
Nuno Góis
bfc583b5b7
chore: prevent duplicate key errors in unknown flags (#9940)
https://linear.app/unleash/issue/2-3561/fix-duplicate-key-errors-in-unknown-flags

This should prevent `duplicate_key` errors in unknown flags.

Follow-up to: https://github.com/Unleash/unleash/pull/9837

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-09 10:02:38 +01:00
Mateusz Kwasniewski
43efaf7c47
feat: report feature links by domain (#9936) 2025-05-09 09:39:15 +02:00
Mateusz Kwasniewski
857ee7da5c
feat: prevent more than 10 links in the UI and backend (#9937) 2025-05-08 21:21:28 +02:00
Mateusz Kwasniewski
a3ac624deb
feat: report top used domains (#9934) 2025-05-08 14:06:10 +02:00
Mateusz Kwasniewski
28e5f39548
feat: store domain for links (#9931) 2025-05-08 13:33:41 +02:00
Mateusz Kwasniewski
3865fb41ae
fix: project environments have info about required approvals (#9929) 2025-05-08 11:37:15 +02:00
Mateusz Kwasniewski
c8ebaa49fc
feat: order links by insertion order (#9928) 2025-05-08 10:46:26 +02:00
Nuno Góis
eb238f502a
chore: unknown flags (#9837)
https://linear.app/unleash/issue/2-3406/hold-unknown-flags-in-memory-and-show-them-in-the-ui-somehow

This PR introduces a suggestion for a “unknown flags” feature.

When clients report metrics for flags that don’t exist in Unleash (e.g.
due to typos), we now track a limited set of these unknown flag names
along with the appnames that reported them. The goal is to help users
identify and clean up incorrect flag usage across their apps.

We store up to 10 unknown flag + appName combinations, keeping only the
most recent reports. Data is collected in-memory and flushed
periodically to the DB, with deduplication and merging to ensure we
don’t exceed the cap even across pods.

We were especially careful to make this implementation defensive, as
unknown flags could be reported in very high volumes. Writes are
batched, deduplicated, and hard-capped to avoid DB pressure.

No UI has been added yet — this is backend-only for now and intended as
a step toward better visibility into client misconfigurations.

I would suggest starting with a simple banner that opens a dialog
showing the list of unknown flags and which apps reported them.

<img width="497" alt="image"
src="https://github.com/user-attachments/assets/b7348e0d-0163-4be4-a7f8-c072e8464331"
/>
2025-05-07 11:48:36 +01:00
Mateusz Kwasniewski
20a80142d3
feat: normalize urls in feature links (#9911) 2025-05-06 19:08:04 +02:00
Mateusz Kwasniewski
b9f1d8414c
feat: add links to feature read model (#9905) 2025-05-06 14:57:52 +02:00
Mateusz Kwasniewski
c6ab2a1cf7
feat: sql feature link persistence (#9901) 2025-05-06 11:46:15 +02:00
Mateusz Kwasniewski
4860d73bf7
chore: feature links flag (#9896) 2025-05-06 09:46:18 +02:00
Mateusz Kwasniewski
002233e7f6
feat: feature link backend stub (#9893) 2025-05-06 09:31:45 +02:00
David Leek
1166d00e6d
chore: flag cleanup simplifyDisableFeature (#9892) 2025-05-06 08:41:03 +02:00
Mateusz Kwasniewski
1b9c0e5000
feat: bulk apps should respect multi projects and multi envs (#9879) 2025-05-02 10:12:41 +02:00
Mateusz Kwasniewski
b0223e38ef
refactor: stabilize frontend apps reporting (#9880) 2025-05-01 15:43:03 +02:00
Mateusz Kwasniewski
3ef32dca93
feat: handle nullable sdk type (#9872) 2025-04-30 12:36:18 +02:00
Mateusz Kwasniewski
58a01d0c47
feat: separate frontend and backend applications from edge (#9863) 2025-04-29 15:42:47 +02:00
Mateusz Kwasniewski
3980cfa2a8
feat: show backend and frontend sdks separately (#9857) 2025-04-29 10:36:02 +02:00
Mateusz Kwasniewski
1ccc6cae19
feat: Spike frontend applications registration (#9846) 2025-04-28 09:01:07 +02:00
Mateusz Kwasniewski
bd78a75177
chore: remove flag for global change request config (#9840) 2025-04-25 12:47:18 +02:00
Mateusz Kwasniewski
d24bcff404
feat: remove inactive applications (#9835) 2025-04-24 15:17:47 +02:00
Mateusz Kwasniewski
9911fe89be
feat: lifecycle count query (#9824) 2025-04-24 09:36:06 +02:00
Mateusz Kwasniewski
67d59d6141
chore: aggregate daily metrics query time instrumentation (#9764) 2025-04-15 14:52:03 +02:00
Mateusz Kwasniewski
0efa2585fe
fix: improve status job performance (#9755) 2025-04-15 09:33:13 +02:00
Mateusz Kwasniewski
ff3c17ffa7
refactor: extract flags overview sql builders (#9751) 2025-04-14 10:56:28 +02:00
Mateusz Kwasniewski
b2471633b4
refactor: move release plan stores to OSS (#9747) 2025-04-11 11:37:06 +02:00
Mateusz Kwasniewski
8f117ac18e
feat: add milestones to search results (#9739) 2025-04-10 10:25:39 +02:00
Mateusz Kwasniewski
e876e6438d
feat: total count respect lifecycle filter (#9724) 2025-04-09 08:54:19 +02:00
Nuno Góis
1078dd1c41
fix: return bad data error when failing to patch env variants (#9708)
https://linear.app/unleash/issue/2-3483/variants-endpoint-should-return-400-or-other-more-appropriate-status

Throws BadDataError (returns 400) instead of 500 by wrapping the patch
logic with a try catch.

Added a test that validates the new behavior.
2025-04-08 09:32:40 +01:00
Mateusz Kwasniewski
588e35e759
feat: search by lifecycle stage (#9705) 2025-04-07 14:00:01 +02:00
Mateusz Kwasniewski
4130e06d17
feat: flag overview change requests (#9702) 2025-04-04 14:20:42 +02:00