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

3120 Commits

Author SHA1 Message Date
Melinda Fekete
28fa4240b7
docs: updates for 7.3 (#10913) 2025-11-06 10:56:15 +01:00
Jaanus Sellin
fe2d63ad9b
feat: add safeguards migration (#10928)
Safeguards migration
2025-11-06 11:03:40 +02:00
unleash-bot[bot]
1030feee38
chore(AI): envAddStrategySuggestion flag cleanup (#10916) 2025-11-05 11:02:42 +01:00
unleash-bot[bot]
11a2860700
chore(AI): newStrategyModal flag cleanup (#10912)
This PR cleans up the newStrategyModal flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #10911



🧹 AI Flag Cleanup Summary

This change removes the newStrategyModal feature flag, making the new
"Add
strategy" modal the default and only experience for adding strategies to
a
feature.

I've removed the flag checks and the legacy code paths for the old
strategy
menu. The FeatureStrategyMenu component is now simplified to only render
the new
modal experience. I have also removed the flag from backend
configurations and
frontend interfaces.

🚮 Removed

• Feature Flag: newStrategyModal flag definition and configuration from
experimental.ts, server-dev.ts, and uiConfig.ts.
• Conditional Logic: All checks for the newStrategyModal flag in
FeatureStrategyMenu.tsx.
• Legacy Components: The old strategy menu
(LegacyFeatureStrategyMenuCards) and
related dialogs (LegacyReleasePlanReviewDialog) have been removed from
FeatureStrategyMenu.tsx.
• Unused Code: Unused state variables, functions
(openDefaultStrategyCreationModal, openReleasePlans), and imports
related to
the legacy strategy menu have been cleaned up.

🛠 Kept

• New "Add strategy" modal: The new modal for adding strategies is now
the only
implementation. Its user experience is preserved and made default.

📝 Why

The newStrategyModal feature has been completed, and the decision was to
keep
the new user experience. This cleanup removes the complexity of
maintaining two
different UI paths for adding strategies, making the code cleaner and
easier to
maintain.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Nuno Góis <github@nunogois.com>
2025-11-05 08:59:18 +00:00
unleash-bot[bot]
8d00eea66a
chore(AI): newUiConfigService flag cleanup (#10910)
This PR cleans up the newUiConfigService flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #10909

## 🧹 AI Flag Cleanup Summary
This PR removes the `newUiConfigService` feature flag and makes its
functionality permanent. The `UiConfigController` now exclusively uses
the
`UiConfigService` to generate the UI configuration, removing the old,
now-dead
code path.
As a result of this change, several services that were only used in the
old
implementation have been removed from `UiConfigController`, along with
their
associated types and imports, simplifying the controller significantly.
### 🚮 Removed
- **Flag Definitions**
- `newUiConfigService` flag definition from
`src/lib/types/experimental.ts`.
- Development override for `newUiConfigService` in `src/server-dev.ts`.
- **Conditional Logic**
- The `if` block checking for `newUiConfigService` in
`UiConfigController.getUiConfig`.
- **Dead Code**
- The legacy implementation of building the UI config object inside
`UiConfigController`.
- Several unused service dependencies (`VersionService`,
`SettingService`,
`EmailService`, `SessionService`, `MaintenanceService`) and
`IFlagResolver` from
`UiConfigController`.
### 🛠 Kept
- **New `getUiConfig` implementation**
- The `UiConfigController.getUiConfig` method now solely relies on
`UiConfigService` to fetch the UI configuration.
### 📝 Why
The `newUiConfigService` feature flag was fully rolled out and marked as
completed. This cleanup removes the flag and the legacy code path,
simplifying
the `UiConfigController` and making the new UI config service the
standard way
of providing UI configuration.

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
2025-11-04 15:49:44 +00:00
Nuno Góis
699f9e6ce2
fix: enterprise edge stats should take into account full month (#10898)
https://linear.app/unleash/issue/2-3993/fix-enterprise-edge-stats

Fixes Enterprise Edge stats to correctly reflect the average across the
whole month.

Now returns a rounded average with 3 decimal places.

Also includes the average of the last 12 months.
2025-11-03 13:45:38 +00:00
Mateusz Kwasniewski
bbff52eb7b
feat: milestone progression paused at (#10907) 2025-11-03 14:08:37 +01:00
Simon Hornby
0afcba27bf
chore: add a flag to deny streaming for non edge connections (#10905) 2025-11-03 14:45:23 +02:00
Mateusz Kwasniewski
d452e45f37
chore: safeguards flag (#10906) 2025-11-03 12:05:26 +01:00
Gastón Fournier
bf19b62079
feat: ability to disable custom strategies (#10885)
## About the changes
This adds the ability to disable custom strategy creation and editing by
using two env variables: `UNLEASH_DISABLE_CUSTOM_STRATEGY_CREATION` and
`UNLEASH_DISABLE_CUSTOM_STRATEGY_EDITING`.

Fixes: #9593

This could be useful if you want to remove the ability to create new
custom strategies and rely on the built-in ones
2025-11-03 09:27:15 +01:00
renovate[bot]
f74c1dc482
fix(deps): update dependency normalize-url to v8 (#10193) 2025-10-29 14:30:51 +01:00
Gastón Fournier
bcfad0a250
feat: include readiness check option (#10850)
## About the changes
This introduces a new endpoint to allow users to check for readiness of
Unleash to serve traffic, in particular validating that the DB is up.
It's an opt-in feature that has to be enabled with the environment
variable `CHECK_DB_ON_READY=true` or via the configuration option
`checkDbOnReady`.

Closes #10742
2025-10-29 13:11:23 +01:00
Mateusz Kwasniewski
9a23bc36f8
chore: remove unused events (#10883) 2025-10-29 10:29:04 +01:00
unleash-bot[bot]
25abe054a4
chore(AI): originMiddlewareRequestLogging flag cleanup (#10864)
This PR cleans up the originMiddlewareRequestLogging flag. These changes
were automatically generated by AI and should be reviewed carefully.

Fixes #10863

## 🧹 AI Flag Cleanup Summary
This change removes the `originMiddlewareRequestLogging` feature flag
and its
associated code. The flag's outcome was to be discarded, so the logging
it
controlled has been removed from `originMiddleware`.
### 🚮 Removed
- **Flag Definition**
- Removed `originMiddlewareRequestLogging` from the `IFlagKey` type in
`src/lib/types/experimental.ts`.
- Removed the flag from the development server configuration in
`src/server-dev.ts`.
- **Logic**
- Removed the conditional logging of API requests from
`originMiddleware`.
- **Tests**
- Removed the test case for API request logging in
`origin-middleware.test.ts`.
- Removed the flag setup from the test configuration.
### 🛠 Kept
- **Core functionality**
- The core logic of the `originMiddleware` for emitting `REQUEST_ORIGIN`
metric events for UI and API requests remains unchanged.
### 📝 Why
The `originMiddlewareRequestLogging` feature flag was completed and its
outcome
was 'discarded'. This cleanup removes the flag and the now-dead code
related to
it, simplifying the middleware and tests.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2025-10-28 18:42:10 +01:00
Mateusz Kwasniewski
2f315545a3
fix: missing await in user splash update (#10878) 2025-10-28 09:43:17 +01:00
Mateusz Kwasniewski
8b95cb5386
fix: update splash nonexistent user (#10873) 2025-10-27 16:49:58 +01:00
Mateusz Kwasniewski
31e78d7536
refactor: milestone progression natural key (#10869) 2025-10-27 15:14:52 +01:00
Jaanus Sellin
0e1de4c511
chore: increase performance of application upsert (#10870)
This is our most longest running database query. Takes most time to
execute overall.

<img width="2233" height="381" alt="Screenshot from 2025-10-27 15-29-33"
src="https://github.com/user-attachments/assets/241abb84-1606-40b4-9a1c-bc706a1f7e20"
/>
2025-10-27 16:11:18 +02:00
Jaanus Sellin
a0c296ee3b
chore: bulk add instances once every 10 seconds (#10871)
This is most executed method by far and almost always hits db layer. We
should make it less frequent.
2025-10-27 16:11:00 +02:00
Mateusz Kwasniewski
bbee498b3e
feat: fake impact metrics improvements (#10866) 2025-10-27 10:43:53 +01:00
Melinda Fekete
b6694cd925
docs: update import export page (#10854) 2025-10-24 14:53:32 +02:00
Mateusz Kwasniewski
fd4fa815a9
chore: expose fake impact metrics resolver (#10861) 2025-10-24 13:53:06 +02:00
Jaanus Sellin
dc745cfac8
feat: add timers to all SQL queries in client applications store (#10855)
I know that creating new applications is one of the hot paths. We were
missing timers on this store. Adding them.
2025-10-24 09:11:50 +03:00
Jaanus Sellin
b0f3252632
feat: add plausibleMetrics feature flag (#10847) 2025-10-23 10:42:12 +03:00
Nuno Góis
8ba35507cd
chore: add edge instances to instance stats (#10839)
https://linear.app/unleash/issue/2-3979/add-edge-instances-to-self-reported-instance-stats

Adds edge instances to instance stats.
2025-10-22 16:40:43 +01:00
Mateusz Kwasniewski
859e3bbdde
feat: unified milestone progression changed event (#10836) 2025-10-21 13:21:57 +02:00
Mateusz Kwasniewski
902c4cd7b8
chore: expose fake change request access read model (#10818) 2025-10-16 14:31:43 +02:00
Gastón Fournier
653b67b172
chore: remove uuid from the backend (#10807)
Backend only of: https://github.com/Unleash/unleash/pull/10806

This PR drops the uuid package from node modules and replaces it with
standard randomUUID usage that is available from 14.17 onwards, and we
have a minimum requirement of node 20 at Unleash.

[Node.js crypto](https://nodejs.org/api/crypto.html#cryptorandomuuidoptions)
[Web crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID)

Co-authored-by: Anastasiia Hladina <anastasiia.hladina@gmail.com>
2025-10-15 16:48:08 +02:00
Nuno Góis
4ff41fa6a9
chore: add warning about release plans in import-export (#10805)
https://linear.app/unleash/issue/2-3965/add-a-note-if-were-exporting-that-we-dont-understand-release-plans-in

Adds a warning about release plans in import/export.

It's not trivial to know every flag that will be exported in every
scenario, and whether they have release plans, so our logic here is
"have you configured release templates?"

<img width="706" height="516" alt="image"
src="https://github.com/user-attachments/assets/68ba8618-9887-491c-b46e-256b45700d74"
/>

<img width="732" height="503" alt="image"
src="https://github.com/user-attachments/assets/086e37d4-78ae-4647-93a2-5d1845c2758a"
/>
2025-10-15 14:44:30 +01:00
Mateusz Kwasniewski
f9ed38ca98
feat: milestone progression events more data (#10798) 2025-10-14 16:50:01 +02:00
Mateusz Kwasniewski
712943ed29
feat: milestone progression events (#10797) 2025-10-14 16:29:57 +02:00
Tymoteusz Czech
b5d1f6e075
chore: remove legacy flag UI (#10781) 2025-10-14 11:00:51 +02:00
Mateusz Kwasniewski
331d00b329
feat: make milestone progressions for source milestone unique (#10789) 2025-10-13 15:53:11 +02:00
Mateusz Kwasniewski
c74ca0d8ed
feat: measure time in release plan read model (#10788) 2025-10-13 15:06:56 +02:00
Mateusz Kwasniewski
6e6524be4d
refactor: remove unused release plan store method (#10787) 2025-10-13 14:37:30 +02:00
Mateusz Kwasniewski
7ef140c6dc
chore: remove type prefix (#10786) 2025-10-13 13:34:20 +02:00
Mateusz Kwasniewski
ffe91129e6
chore: move read model to value space (#10785) 2025-10-13 13:22:36 +02:00
Mateusz Kwasniewski
0d466b258b
chore: expose release plan read model (#10784) 2025-10-13 12:54:06 +02:00
Mateusz Kwasniewski
9db7bcffd5
feat: disallow negative condition interval (#10783) 2025-10-13 11:47:53 +02:00
Mateusz Kwasniewski
ea9f92bd88
fix: knex returns timestamp dates (#10782) 2025-10-13 11:15:00 +02:00
Mateusz Kwasniewski
3016da9146
fix: knex returns timestamp dates (#10780) 2025-10-13 11:01:19 +02:00
Mateusz Kwasniewski
8879cc4b46
fix: add transitive transition condition schema (#10776) 2025-10-10 12:44:34 +02:00
Mateusz Kwasniewski
0b7c141e70
feat: improved transition condition schema to be more explicit (#10773) 2025-10-10 12:16:58 +02:00
Mateusz Kwasniewski
d5a91a60e1
fix: release plan write model (#10772) 2025-10-10 09:38:14 +02:00
Mateusz Kwasniewski
fce4c5bbab
feat: milestone progression executed at in read model (#10771) 2025-10-10 09:00:15 +02:00
Simon Hornby
346b063f45
chore: add migration for tracking connected downstream edge nodes (#10765)
https://linear.app/unleash/issue/2-3938/endpoint-in-unleash-edge-validate-license

Database migration for a new `edge_node_presence` table and
`bucket_edge_heartbeat` function.
2025-10-09 15:38:07 +02:00
andrii-st
247dd3af51
docs: clarify archived query param syntax for api/admin/search/features (#10538)
## About the changes
This PR updates the [Search and filter
features](https://docs.getunleash.io/reference/api/unleash/search-features)
doc to clearly indicate `IS:` query syntax requirement for `archived`
query param.
2025-10-09 11:40:35 +03:00
Mateusz Kwasniewski
97297dd40f
feat: milestone executed at migration (#10767) 2025-10-09 10:33:08 +02:00
Nuno Góis
4722fd4081
chore: export environment and project stores (#10766)
https://linear.app/unleash/issue/2-3932/cloned-environments-enable-disabled-strategies-unexpectedly

This allows us to use them in Enterprise.
2025-10-09 08:56:59 +01:00
Mateusz Kwasniewski
cf018020df
chore: feature release plans flag (#10762) 2025-10-08 14:19:22 +02:00