1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-07-17 13:46:47 +02:00
Commit Graph

31 Commits

Author SHA1 Message Date
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
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
Mateusz Kwasniewski
9911fe89be
feat: lifecycle count query (#9824) 2025-04-24 09:36:06 +02:00
Gastón Fournier
5e9698fe63
chore: Create test db from template (#9265)
## About the changes
Based on the first hypothesis from
https://github.com/Unleash/unleash/pull/9264, I decided to find an
alternative way of initializing the DB, mainly trying to run migrations
only once and removing that from the actual test run.

I found in [Postgres template
databases](https://www.postgresql.org/docs/current/manage-ag-templatedbs.html)
an interesting option in combination with jest global initializer.

### Changes on how we use DBs for testing

Previously, we were relying on a single DB with multiple schemas to
isolate tests, but each schema was empty and required migrations or
custom DB initialization scripts.

With this method, we don't need to use different schema names
(apparently there's no templating for schemas), and we can use new
databases. We can also eliminate custom initialization code.

### Legacy tests

This method also highlighted some wrong assumptions in existing tests.
One example is the existence of `default` environment, that because of
being deprecated is no longer available, but because tests are creating
the expected db state manually, they were not updated to match the
existing db state.

To keep tests running green, I've added a configuration to use the
`legacy` test setup (24 tests). By migrating these, we'll speed up
tests, but the code of these tests has to be modified, so I leave this
for another PR.

## Downsides
1. The template db initialization happens at the beginning of any test,
so local development may suffer from slower unit tests. As a workaround
we could define an environment variable to disable the db migration
2. Proliferation of test dbs. In ephemeral environments, this is not a
problem, but for local development we should clean up from time to time.
There's the possibility of cleaning up test dbs using the db name as a
pattern:
2ed2e1c274/scripts/jest-setup.ts (L13-L18)
but I didn't want to add this code yet. Opinions?

## Benefits
1. It allows us migrate only once and still get the benefits of having a
well known state for tests.
3. It removes some of the custom setup for tests (which in some cases
ends up testing something not realistic)
4. It removes the need of testing migrations:
https://github.com/Unleash/unleash/blob/main/src/test/e2e/migrator.e2e.test.ts
as migrations are run at the start
5. Forces us to keep old tests up to date when we modify our database
2025-02-11 13:01:43 +01:00
Mateusz Kwasniewski
5c7f4d5fc1
feat: backfill archived features lifecycle (#8824) 2024-11-21 14:41:20 +01:00
Mateusz Kwasniewski
b65e593c23
chore: remove featureLifecycle and featureLifecycleMetrics flags (#7808) 2024-08-08 13:45:23 +02:00
Mateusz Kwasniewski
d29230cd49
feat: transactional complete/uncomplete feature (#7451) 2024-06-26 09:05:17 +02:00
Mateusz Kwasniewski
3a3b6a29ff
feat: lifecycle stage entered counter (#7449) 2024-06-25 14:40:16 +02:00
Mateusz Kwasniewski
6a9a2c687d
feat: stage count by project metric (#7441) 2024-06-25 09:54:26 +02:00
Mateusz Kwasniewski
c14c67f476
feat: lifecycle stage count (#7434) 2024-06-25 09:11:46 +02:00
Mateusz Kwasniewski
cedf19d2ec
fix: lifecycle metrics on metrics insert (#7322) 2024-06-07 15:55:15 +02:00
Jaanus Sellin
d17ae37800
feat: now CLIENT_METRICS event will be emitted with new structure (#7210)
1. CLIENT_METRICS event will be emitted with new structure
2. CLIENT_METRICS event will be emitted from bulkMetrics endpoint
2024-05-31 12:40:46 +03:00
Christopher Kolstad
7e38d6bae1
Node20 (#7095)
Upgrades workflows, nvmrc and package.json to use Node 20.
2024-05-23 14:14:09 +02:00
Mateusz Kwasniewski
45eff83a8a
test: fix flaky lifecycle test (#7093) 2024-05-21 13:40:14 +02:00
Mateusz Kwasniewski
9281d6b694
fix: reached stage should emit feature name (#7068) 2024-05-16 12:11:13 +02:00
Mateusz Kwasniewski
6b59b30846
feat: backfill current stage on startup (#7057) 2024-05-15 12:47:01 +02:00
Mateusz Kwasniewski
dfc065500d
feat: kept and discarded read model (#7045) 2024-05-13 14:24:31 +02:00
Jaanus Sellin
28a7797aea
feat: feature lifecycle completed schema (#7021)
1. Added new schema and tests
2. Controller also accepts the data
3. Also sending fake data from frontend currently

Next steps, implement service/store layer and frontend
2024-05-09 09:51:44 +03:00
Mateusz Kwasniewski
49e84d3a91
feat: Check production enabled live stage (#6952) 2024-04-26 13:38:25 +02:00
Mateusz Kwasniewski
1739f8e11d
feat: pre-live is non production not just dev (#6946) 2024-04-26 12:43:10 +02:00
Jaanus Sellin
78b9299ff1
feat: feature lifecycle complete and uncomplete (#6927)
Creating a way to complete and uncomplete feature.
2024-04-26 11:38:42 +03:00
Mateusz Kwasniewski
31ab38e162
fix: ignore metrics for non-existent features (#6945) 2024-04-26 10:30:12 +02:00
Mateusz Kwasniewski
8ed15165d2
feat: revived feature goes to initial lifecycle stage (#6944) 2024-04-26 09:50:13 +02:00
Mateusz Kwasniewski
574eb284b9
fix: client metrics structure lifecycle (#6924) 2024-04-25 09:27:20 +02:00
Mateusz Kwasniewski
f5061bc3ff
feat: return lifecycle state in feature overview (#6920) 2024-04-24 14:27:26 +02:00
Mateusz Kwasniewski
7cb9910b05
feat: handle invalid metrics (#6795) 2024-04-08 12:09:20 +02:00
Mateusz Kwasniewski
9dc9fb3586
feat: Feature lifecycle sql store (#6790) 2024-04-08 08:54:41 +02:00
Mateusz Kwasniewski
e868c3291f
feat: feature lifecycle metrics from event bus (#6789) 2024-04-05 15:34:08 +02:00
Mateusz Kwasniewski
28a3a064b9
feat: Feature lifecycle controller (#6788) 2024-04-05 13:57:27 +02:00