1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-05 17:53:12 +02:00
Commit Graph

14295 Commits

Author SHA1 Message Date
renovate[bot]
27fd7998e8
chore(deps): update dependency path-to-regexp to v8 2025-09-03 01:37:41 +00:00
Nuno Góis
9a7f2c520a
chore: add server-side search to archived flags (#10600)
https://linear.app/unleash/issue/2-3842/archived-flag-not-showing

Adds server-side search to archived flags.

In the future we'll probably want to dedicate a project to this page, to
bring it up to speed with the flags overview page. In the meantime, this
bandaid fix at least allows us to search outside the 50 results limit.

Also added a small alert to better explain the current behavior: 

<img width="902" height="275" alt="image"
src="https://github.com/user-attachments/assets/ab3da3ca-3408-471a-a74a-abb65e95e012"
/>
2025-09-02 16:44:28 +01:00
Thomas Heartman
c69634fda0
chore: Use custom highlighter for archive:creation chart (#10589)
Uses the same custom highlighter that we've used for the other analytics
charts, but customizes it for the archive : creation ratio chart. Also
removes the color change on hover from the bars.

Because this plugin (or a version of it) is also used in the network
traffic graphs, I've consolidated all the uses into a more configurable
one (because I was mistakenly working in the wrong file).

Before:
<img width="596" height="392" alt="image"
src="https://github.com/user-attachments/assets/d4270a6d-b1c6-47ff-8e98-424d0e7fe089"
/>


After:

<img width="1141" height="476" alt="image"
src="https://github.com/user-attachments/assets/aa10aa87-e111-4a75-8dce-4a2fec7af8ad"
/>
2025-09-02 15:20:12 +02:00
unleash-bot[bot]
dfa89d7d58
chore(AI): reportUnknownFlags flag cleanup (#10596)
This PR cleans up the reportUnknownFlags flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #10595

## 🧹 AI Flag Cleanup Summary
This change removes the `reportUnknownFlags` feature flag and makes its
functionality a permanent part of the application. The "Unknown flags"
feature
is now always enabled.
### 🚮 Removed
- **Flag Definitions**
- Removed `reportUnknownFlags` from `IFlagKey` and `UiFlags` types.
- Removed `reportUnknownFlags` from the experimental flags configuration
in `src/lib/types/experimental.ts`.
- Removed the flag from development and test configurations
(`src/server-dev.ts`, `unknown-flags.e2e.test.ts`).
- **Conditional Logic**
- Removed conditional checks for `reportUnknownFlags` in backend
services
(`UnknownFlagsService`, `ClientMetricsServiceV2`) and API controllers
(`UnknownFlagsController`).
- Removed `useUiFlag('reportUnknownFlags')` and related conditional
rendering from frontend components (`UnknownFlagsTable`,
`FeatureToggleListTable`). The UI elements are now always visible.
- Modified the `useUnknownFlags` hook to always fetch data.
### 🛠 Kept
- **Core Functionality**
- The feature to report and display unknown flags is now always active.
- The "Unknown flags" link is now permanently visible on the feature
flags
overview page.
- Backend logic for processing and storing unknown flags is now always
executed.
### 📝 Why
The `reportUnknownFlags` feature flag was marked as completed with the
feature
being kept. This cleanup removes the flag and its associated conditional
logic,
simplifying the code and making the unknown flags reporting a permanent
feature.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Nuno Góis <github@nunogois.com>
2025-09-02 14:18:35 +01:00
Thomas Heartman
5b7f069705
fix: show first date in archived to created chart (#10598)
Ensures that the first date of the data is also shown.

Before:
<img width="1144" height="441" alt="image"
src="https://github.com/user-attachments/assets/33da968a-4f44-4ca9-825e-d19471cff00a"
/>


After:
<img width="1132" height="435" alt="image"
src="https://github.com/user-attachments/assets/65d009d4-5bcb-40d0-abb6-05be81c9a361"
/>
2025-09-02 12:21:01 +00:00
Mateusz Kwasniewski
e9f651e2f5
feat: impact metrics migration (#10551) 2025-09-02 13:40:34 +02:00
Mateusz Kwasniewski
88d384573f
feat: read feature impact metrics (#10597) 2025-09-02 13:16:57 +02:00
Jaanus
6c11b57c53
fix: remove lifecycle backfill on every startup 2025-09-02 13:55:18 +03:00
Nuno Góis
597456d4b5
chore: make create feature flag button in unknown flags a text button (#10592)
https://linear.app/unleash/issue/2-3835/make-create-feature-flag-a-variant=text-button-instead-of-an-icon

Makes "create feature flag" button in unknown flags a text button.

<img width="1130" height="480" alt="image"
src="https://github.com/user-attachments/assets/2a5cb8f9-d0d1-486e-aaf9-cc02f39a2b6f"
/>
2025-09-02 11:52:43 +01:00
Nuno Góis
c70c864b81
chore: promote unknown flags to a stable OpenAPI tag (#10594)
https://linear.app/unleash/issue/2-3832/promote-api-to-a-stable-openapi-tag

Promotes the Unknown Flags API to a stable OpenAPI tag as we prepare for
GA.
2025-09-02 11:45:21 +01:00
Nuno Góis
ed28d9f2b4
chore: one unknown flag per row (#10590)
https://linear.app/unleash/issue/2-3833/show-one-flag-name-per-row

Groups unknown flags by flag name, showing a single flag name per row.
This greatly simplifies the way we show unknown flags.

Just to be safe, we're limiting the app names we're showing to 20, and
environments per app name to 10.

Required some plumbing.

### Basic example
<img width="1350" height="866" alt="image"
src="https://github.com/user-attachments/assets/ad8ee198-e5f8-45e4-8e3b-f2d8b7701cf9"
/>

### App name search example, with highlight

<img width="367" height="204" alt="image"
src="https://github.com/user-attachments/assets/a1cc27ee-9ca1-4980-a3af-c08302c1d617"
/>
2025-09-02 10:47:02 +01:00
Jaanus Sellin
2442e5c973
fix: lifecycle metrics will now be posted across all environments (#10586) 2025-09-02 10:37:34 +03:00
unleash-bot[bot]
547f7ac14e
chore(AI): changeRequestApproverEmails flag cleanup (#10572) 2025-09-02 08:51:00 +02:00
Nuno Góis
9ef81be488
chore: add unknown flags link in flags overview (#10591)
https://linear.app/unleash/issue/2-3834/add-link-to-unknown-flags-in-flags-overview

Adds an "Unknown flags" link on the top right corner of the flags
overview page.

Even though we're planning to remove the flag soon, this is still
controlled by the flag, just in case.

<img width="1370" height="311" alt="image"
src="https://github.com/user-attachments/assets/073725c3-35af-47fb-b7d4-5bc70c0c68cf"
/>
2025-09-01 18:18:07 +01:00
Mateusz Kwasniewski
bc075a4915
chore: orval feature impact metrics (#10588) 2025-09-01 16:10:54 +02:00
Jaanus Sellin
829c2c5bc3
feat: start trackign db calls for feature environments (#10585) 2025-09-01 13:38:15 +03:00
Nuno Góis
96c74578b5
chore: add Release Templates OpenAPI tag (#10584)
https://linear.app/unleash/issue/2-3813/make-sure-we-promote-api-to-ga

Adds a new "Release Templates" OpenAPI tag.
2025-09-01 11:20:35 +01:00
Thomas Heartman
7cc3c32eb2
fix: date localizations for chart (#10581)
Adds date localization to the charts on the analytics page. In doing so,
I have extracted the default locales that we allow the user to set into
constants, so that we can reference it from other places. I have also
sorted the list and added my personal favorite format (ja) to it.

Because we have multiple charts on the analytics page, it felt weird
that only one chart should follow your preferred format. It also aligns
the existing charts' tooltip date format with the new one (`P` instead
of `PPP`).

In short: previously, the charts would show you only your system locale
(I think), which for me defaults to en-US, regardless of what setting
you'd set in your profile. Now we respect your setting as long as it's
one of the default ones.

Before (date formatting is en-US):
<img width="1444" height="1658" alt="image"
src="https://github.com/user-attachments/assets/99a893c7-efb6-4e55-b47c-9df66bf97636"
/>


After (date formatting is sv-SE):
<img width="1383" height="1653" alt="image"
src="https://github.com/user-attachments/assets/d408afd9-a8a7-46f3-8c13-9f7fde608cc4"
/>
2025-09-01 09:29:45 +00:00
Mateusz Kwasniewski
901ffdf3c8
chore: node sdk bump with poll mode switch fix (#10583) 2025-09-01 11:20:32 +02:00
Jaanus Sellin
a1a43d1177
feat: start tracking database calls for lifecycle (#10582)
Start tracking db calls for lifecycle store.
2025-09-01 12:19:27 +03:00
Thomas Heartman
c7cb5465ff
chore: chart bar adjustments (#10555)
Updates chart bars with explicit border radii.

Before:
<img width="995" height="425" alt="image"
src="https://github.com/user-attachments/assets/d52c56a7-e022-4d27-8651-8897a49012e6"
/>


After:
<img width="1120" height="490" alt="image"
src="https://github.com/user-attachments/assets/b8660eb2-580b-48b7-8800-c5711b8a45a5"
/>
2025-09-01 10:30:27 +02:00
Thomas Heartman
5c74c34cbf
chore: Add date to archive vs creation tooltip (#10578)
Makes it easier to understand what piece of data you're looking at. The
raw date isn't available directly, but we have the formatted version for
the tooltip, so we'll display that.

This PR changes the format to be more in line with the UX sketches (just
numbers and separators instead of words). In theory, it should also be
possible to [adjust the
locale](https://www.npmjs.com/package/chartjs-adapter-date-fns#locale-support-via-scale-options)
(in this case, it should be to the user's chosen locale), but I can't
seem to make that option work. I don't want to spend more time on that
right now, unless we get feedback on it. However, _yes_ the format is
american, and _yes_, that puts months ahead of days. However, you also
have the date in longer form on the x axis, so I think you'll be able to
work it out.


Before:
<img width="279" height="139" alt="image"
src="https://github.com/user-attachments/assets/5c71e708-9d9f-412a-acbb-7d28e5071d5a"
/>


After: 
<img width="246" height="154" alt="image"
src="https://github.com/user-attachments/assets/13a4f5b3-281b-4003-8aae-a248578fead8"
/>
2025-09-01 07:19:47 +00:00
Thomas Heartman
a7c8f527bd
chore: show N/A for ratio if we can't calculate it (#10580)
Also, change the widget title to reflect the order of the ratio.

Before:
<img width="214" height="105" alt="image"
src="https://github.com/user-attachments/assets/0e08e107-b142-4913-af06-a8ab7eed8cb7"
/>

<img width="280" height="153" alt="image"
src="https://github.com/user-attachments/assets/967ff1b4-ec44-4811-9a34-ad4979dbb761"
/>



After:
<img width="242" height="117" alt="image"
src="https://github.com/user-attachments/assets/ff43efee-81ad-4c6c-8513-960656b095b8"
/>

<img width="249" height="153" alt="image"
src="https://github.com/user-attachments/assets/47271484-1ba4-42c3-a85f-5db62e6560c3"
/>


Closes 1-4039
2025-09-01 09:14:02 +02:00
Thomas Heartman
758ea69f4f
Update chart colors to increase contrasts between the A series. (#10579)
Makes it easier to tell the difference between a1 and a2 in particular.

Before: 
<img width="1468" height="499" alt="image"
src="https://github.com/user-attachments/assets/a77c4e61-33c1-4c87-8b39-f9919122137d"
/>

After:
<img width="1384" height="486" alt="image"
src="https://github.com/user-attachments/assets/b35e856a-e6d3-44b4-adea-dfeb15bcdfcc"
/>
2025-09-01 08:22:44 +02:00
Melinda Fekete
f827d5e832
docs: update links in main readme (#10577) 2025-08-29 15:49:26 +02:00
Nuno Góis
0035f18370
chore: allows you to add a flag from the unknown flags list (#10569)
https://linear.app/unleash/issue/2-3826/allow-you-to-create-the-flag-from-the-unknown-flags-list

Allows you to add a flag from the unknown flags list.

<img width="1515" height="896" alt="image"
src="https://github.com/user-attachments/assets/4dc20639-9bdb-457d-aef3-9df74fb9566c"
/>

<img width="1391" height="662" alt="image"
src="https://github.com/user-attachments/assets/c6531b62-3379-4bf9-b6a8-4da3a3cc8340"
/>
2025-08-29 12:19:28 +01:00
Thomas Heartman
718a731d2f
fix: Show 100% instead of Infinity% if you've not created any flags (#10575)
JS gives you positive infinity if you divide a positive number by 0,
which isn't very helpful here. Instead, let's show 100%. If you divide 0
by 0, then you get NaN, which we also need to handle explicitly because
it doesn't work with math.min.

Before:
<img width="472" height="273" alt="image"
src="https://github.com/user-attachments/assets/006ba5c1-4783-4794-b876-f64085937258"
/>

<img width="1365" height="484" alt="image"
src="https://github.com/user-attachments/assets/beec7e18-758c-49eb-97c8-febe6cb63119"
/>


After:
<img width="388" height="252" alt="image"
src="https://github.com/user-attachments/assets/bc326c25-ee63-4055-a765-a6016b51e35a"
/>
<img width="1365" height="488" alt="image"
src="https://github.com/user-attachments/assets/eaafc5c3-79d6-49a3-b1f2-cd42c5d16dae"
/>


Fixes 1-4033.
2025-08-29 09:31:13 +00:00
Mateusz Kwasniewski
924325f623
feat: make impact metrics config save call (#10576) 2025-08-29 11:26:11 +02:00
Nuno Góis
e7b757d7e1
chore: unknown flags should not include flags that exist in Unleash (#10568)
https://linear.app/unleash/issue/2-3825/fetching-unknown-flags-should-not-include-flags-that-currently-exist

Fetching unknown flags should not include flags that currently exist in
Unleash.

This is especially noticeable if you create a flag with an unknown
flag's name, since it won't go away from the list right away.
2025-08-29 10:20:43 +01:00
David Leek
31a924dd4b
chore: rollback hashing of release-plans and templates (#10574)
Rolls back hashing of the newly added releasePlans and releaseTemplates
fields
2025-08-29 11:19:20 +02:00
Mateusz Kwasniewski
c36d1554c7
chore: orval with impact metrics (#10573) 2025-08-29 09:23:38 +02:00
unleash-bot[bot]
af28fb110d
chore(AI): filterFlagsToArchive flag cleanup (#10565)
---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com>
2025-08-29 08:44:28 +02:00
Gastón Fournier
091aa2e8e9
chore: improve openapi diff output (#10570)
This will output the comment of openapi diffs in proper markdown format.
2025-08-28 18:15:18 -03:00
Melinda Fekete
8364498c22
docs: add feature and versioning info (#10547) 2025-08-28 17:51:52 +02:00
Nuno Góis
4c5b869140
chore: show release templates in license info in the UI (#10563)
https://linear.app/unleash/issue/2-3823/show-release-templates-in-license-info-in-ui

Shows release templates in license info in the UI.

<img width="1173" height="687" alt="image"
src="https://github.com/user-attachments/assets/b93cb510-282d-4027-bd39-2269ec138cc6"
/>
2025-08-28 15:23:48 +01:00
Thomas Heartman
709a890bd8
fix: incorrect current calculation of ratio (#10567)
Looks like the sinner was looking at the last entry of each data list,
when they are sorted by most recent first.
2025-08-28 15:53:25 +02:00
Thomas Heartman
016d269675
Chore: Use step size of 1 for created vs archived. (#10566)
You can't archive half a flag.

Closes 1-4034.
2025-08-28 15:53:04 +02:00
unleash-bot[bot]
3e4edfbfa9
chore(AI): etagByEnv flag cleanup (#10560)
This PR cleans up the etagByEnv flag. These changes were automatically
generated by AI and should be reviewed carefully.

Fixes #10556

## 🧹 AI Flag Cleanup Summary
This change removes the `etagByEnv` feature flag and makes its
functionality
permanent. This modifies the ETag generation for client API requests to
be
environment-specific, improving caching efficiency. The cleanup involved
removing the flag definition, updating the controller logic to
permanently use
the environment-specific ETag calculation, and refactoring the
corresponding E2E
tests to only cover the enabled behavior.
### 🚮 Removed
- **Flag Definition**
- The `etagByEnv` flag from `IFlagKey` in
`src/lib/types/experimental.ts`.
- **Conditional Logic**
- The check for the `etagByEnv` flag in `calculateMeta` method in

`src/lib/features/client-feature-toggles/client-feature-toggle.controller.ts`.
- **Tests**
- Test cases in `src/test/e2e/api/client/feature.optimal304.e2e.test.ts`
that
covered the disabled state of the `etagByEnv` flag.
### 🛠 Kept
- **Environment-Specific ETags**
- The behavior of generating environment-specific ETags is now the
default and
only behavior.
- **Tests**
- E2E tests verifying the functionality of environment-specific ETags
have
been retained and simplified.
### 📝 Why
The `etagByEnv` feature has been successfully rolled out and validated.
By
removing the feature flag and associated conditional logic, we simplify
the
codebase, reduce complexity, and make it easier to maintain. This change
makes
the improved ETag generation strategy a permanent part of the system.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2025-08-28 10:41:04 -03:00
Thomas Heartman
b071b17dd6
Fix: created vs archived rendering errors; memoize options (#10562)
Fixes the rendering / max update depth exceeded errors we were seeing in
the console for this chart by memoizing the options.

<img width="1710" height="1420" alt="image"
src="https://github.com/user-attachments/assets/9a24d4e5-b563-4a3c-9a76-915e0a5fda24"
/>

Now the chart doesn't throw any errors anymore.
2025-08-28 14:48:53 +02:00
David Leek
7fb523e348
chore: add release plans/templates count to instance stats (#10540) 2025-08-28 14:44:24 +02:00
Github Actions Bot
e355506bb9 7.1.2 2025-08-28 12:11:41 +00:00
Github Actions Bot
baa0859445 docs: Update CHANGELOG.md 2025-08-28 12:11:31 +00:00
Gastón Fournier
3b467238a5
fix: backend tokens mapped to client tokens (#10561)
Edge does not support backend token type, so until then, we need to keep
returning backend token type as if they're client token types.
2025-08-28 13:57:03 +02:00
unleash-bot[bot]
fa7857dff1
chore(AI): debugEtag flag cleanup (#10558)
This PR cleans up the debugEtag flag. These changes were automatically
generated by AI and should be reviewed carefully.

Fixes #10557

## 🧹 AI Flag Cleanup Summary
This removes the `debugEtag` feature flag from the codebase. This flag
was used
to enable additional logging for debugging ETag generation for the
client
features endpoint.
### 🚮 Removed
- **Flag Definition**
- The `debugEtag` flag from the `IFlagKey` type in
`src/lib/types/experimental.ts`.
- **Conditional Logging**
- Removed logging statements guarded by the `debugEtag` flag in
`client-feature-toggle.controller.ts` and
`configuration-revision-service.ts`.
### 🛠 Kept
- **Default Behavior**
- The existing code paths for when the flag was disabled, which is now
the
only behavior.
### 📝 Why
The `debugEtag` flag was marked as completed with the outcome
"discarded". The
debugging functionality it provided is no longer needed. This change
removes the
dead code associated with the flag, simplifying the codebase.

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
2025-08-28 07:54:38 -03:00
Jaanus Sellin
b8521121a1
fix: feature link should return same id as it sends to db (#10553)
During feature link creation, we should return same id as it sends to
db.
2025-08-28 11:43:46 +03:00
Thomas Heartman
9eb872de82
Show tooltip on group instead of single graph bar (#10546)
The tooltip should show you the ratio of the group and the numbers for
both archived and created.

The tooltip's position is averaged between all the bars in the group.

<img width="335" height="262" alt="image"
src="https://github.com/user-attachments/assets/d62a4bdc-ba07-4eea-8cbf-6e42793804b2"
/>


This still throws the same errors as before. Not sure exactly what's
going on with the custom tooltip, but I'll investigate it in a
follow-up.

Closes 1-4017.
2025-08-28 10:26:46 +02:00
Gastón Fournier
8ba36ee9a2
fix: consider both client and backend token types from the DB (#10552)
## About the changes
In the previous fix: https://github.com/Unleash/unleash/pull/10543, we
made sure client token types were displayed in the UI. Here, we're also
making sure that the Backend token types are displayed as well.

1. A test validates that if a backend token exists in the db it will be
returned in the API response.
2. The UI has been adapted to also consider backend token types
2025-08-28 04:02:56 -03:00
Fredrik Strand Oseberg
8da040b89a
Fix/website performance (#10489) 2025-08-27 15:54:32 +02:00
Mateusz Kwasniewski
64eaf21928
feat: add impact metrics flag modal (#10550) 2025-08-27 15:28:03 +02:00
Mateusz Kwasniewski
32392f201f
feat: add feature impact metrics initial area (#10548) 2025-08-27 13:24:41 +02:00