Commit Graph

253 Commits

Author SHA1 Message Date
Youssef 10c1b56e38 add lastupdate to health report 2021-11-30 14:05:44 +01:00
Ivar Conradi Østhus eb8265922d Fix/enable standard environments (#1134) 2021-11-26 15:31:36 +01:00
Christopher Kolstad 5829ec7b3d task: Sort variants by name (#1132) 2021-11-26 13:06:36 +01:00
Christopher Kolstad 5cdb3f665a task: Ban changes to variants through feature (#1130)
* task: Ban changes to variants through feature

After adding the new `/variants` endpoint for features we now have a way
to access control adding/modifying variants, so the /:featureName
endpoint should no longer allow editing/adding variants.

This removes variants as a known field from the featureMetadata schema
and tells joi to stripUnknown, thus making sure we never include
variants in the initial creation or future update calls.

For the old features v1 API we allow it to declare that it has already
validated the data coming with its own schema, so we should use the data
we get from it. Thus keeping the old v1 functionality intact

Co-authored-by: Simon Hornby <simon@getunleash.ai>
2021-11-25 14:53:58 +01:00
Ivar Conradi Østhus b47b507e18 fix: metrics v2 should await for the clearer (#1114) 2021-11-25 14:18:35 +01:00
Christopher Kolstad c9ff3972e2 fix: Stop healthrating from including archived (#1128)
- Since the archived toggles are not visible in the health dashboard,
  including them in the health rating calculation makes for some really
  confusing dashboards. This PR makes sure we only include non-archived
  toggles when calculating health.
2021-11-25 10:09:23 +01:00
Christopher Kolstad 72092e4a1c fix: make new variant api validate name uniqueness (#1126) 2021-11-24 14:22:28 +01:00
Christopher Kolstad 6c6001619c Feat/variant api (#1119)
Add a new .../:feature/variants API

This adds
- `GET /api/admin/projects/:projectId/features/:featureName/variants` which returns 
```json
{ version: '1', variants: IVariant[] }
```
- `PATCH /api/admin/projects/:projectId/features/:featureName/variants` which accepts a json patch set and updates the feature's variants field and then returns 
```json
{ version: '1', variants: IVariant[] }
```
- `PUT /api/admin/projects/:projectId/features/:featureName/variants`
 which accepts a IVariant[] and overwrites the current variants list for the feature defined in :featureName and returns
```json
{ version: '1', variants: IVariant[] }

- This also makes sure the total weight of all variants is == 1000
- Validates that there is at least 1 'variable' variant if there are variants
- Validates that 'fix' variants total weight can't exceed 1000
- Adds tests for all these invariants.


Co-authored-by: Simon Hornby <simon@getunleash.ai>
2021-11-24 13:08:04 +01:00
Fredrik Strand Oseberg c369b77b24 Merge branch 'master' into feat/splash 2021-11-12 13:19:36 +01:00
Youssef 2d03b8c61e fix: return be object instead of array 2021-11-12 13:19:06 +01:00
Ivar Conradi Østhus d8478dd928 feat: clean up events (#1089)
Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
2021-11-12 13:15:51 +01:00
Youssef 0199d1f211 fix: remove req.body from the splash object when update 2021-11-12 12:44:33 +01:00
Youssef Khedher 314c60393f Merge branch 'master' into feat/splash 2021-11-12 11:30:08 +01:00
Youssef c4e56aae09 fix: remove record splash and update sql query in add-splash-entry 2021-11-12 10:49:09 +01:00
Martin Lehmann 064599c942 fix: refactor client-metrics list and ttl-list to TypeScript (#1080)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-11-11 20:29:40 +01:00
Ivar Conradi Østhus f0895cf653 fix: prevent deadlock for batchinserting usage metrics (#1100)
* fix: prevent deadlock for batchinserting usage metrics

In client metrics v2 we utilize postgres to count the usage
across a few dimentions (featureName, app_name, environment).

It turns out that if the UPDATE values are not executed in a predictable
order we can end up in a deadlock scenario with postgresql.

In this fix we thus sort the metrics on the feature_name, app_name and
envrionment, to make sure they always are executed in a predictabel
order, and thus avoiding independent inserts colliding in to a deadlock
waiting for eachother.

* fix: tests cannot assume order
2021-11-11 16:05:29 +01:00
Youssef c4da3e89c5 fix: styling 2021-11-09 20:55:23 +01:00
Youssef 96f2514fc5 send splash data in the user object 2021-11-09 20:39:13 +01:00
Youssef cc516618a1 add splash-controller and cascade migration 2021-11-09 14:16:34 +01:00
Fredrik Oseberg d73293c576 fix: add migration 2021-11-09 11:52:02 +01:00
Youssef 875fb7734c create splash migration store and service file 2021-11-08 16:31:38 +01:00
Ivar Conradi Østhus 645a8bce05 fix: convert iso-strings from db to date object 2021-11-04 22:16:48 +01:00
Ivar Conradi Østhus 053956b45e fix/projectId cannot change for strategy configs (#1084) 2021-11-04 21:24:55 +01:00
Fredrik Strand Oseberg ec60f4485c fix: disable projects (#1085) 2021-11-04 21:09:52 +01:00
Lennart 759b592d90 fix: update mime library method signature to 2.X (#1078)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-11-02 23:43:16 +01:00
Martin Lehmann b47e228181 fix: be explicit when specifying time & replace moment with date-fns (#1072) 2021-11-02 15:13:46 +01:00
Ivar Conradi Østhus b04b6b3ef7 chore: mute expected test errors 2021-10-29 11:22:40 +02:00
Ivar Conradi Østhus 4fb1bcb524 feat: Disable password based login (#1046)
This commit will introduce a new setting used to disbaled
simple password based authention.

The setting itself is an enterprise setting.
2021-10-29 10:25:42 +02:00
Ivar Conradi Østhus 9e73ed8f47 chore: remvoe console.error for tests expecting error 2021-10-29 09:25:47 +02:00
Ivar Conradi Østhus 0e3813f5f6 fix: lint 2021-10-28 16:32:50 +02:00
Ivar Conradi Østhus 3ef7fd2420 fix: legacy feature stale on/off needs to return full toggle 2021-10-28 15:48:07 +02:00
Ivar Conradi Østhus d0b2ce3170 fix: add enpoint for fetching a single user (#1074)
* fix: add enpoint for fetching a single user

* fix add api docs
2021-10-28 14:24:09 +02:00
Ivar Conradi Østhus 8040abb1c4 fix: reuse message formatter for addons (#1058) 2021-10-28 14:09:11 +02:00
Ivar Conradi Østhus 131eeeaa78 fix: demo-auth should use /auth path 2021-10-26 23:04:44 +02:00
Martin Lehmann 607b2a6657 fix: use date-fns for date/time maths instead of (wrong) Date#setHours (#1070)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-10-26 20:13:30 +02:00
Ivar Conradi Østhus 07202a9910 fix: removing a strategy from a toggle should only require UPDATE_FEATURE permission 2021-10-25 11:14:38 +02:00
Christopher Kolstad 6914bd7908 fix: Only trigger environment enabled/disabled events if different f… (#1053)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-10-21 22:33:50 +02:00
Ivar Conradi Østhus 1924961efa fix: simplify how we update projects 2021-10-21 21:06:56 +02:00
Christopher Kolstad f0dfe204ee fix: Remove duplicate FEATURE_METADATA_UPDATED from events list for webhook addon (#1052) 2021-10-21 20:54:03 +02:00
Ivar Conradi Østhus a0d5b04388 fix: only send FEATURE_UPDATED for legacy (#1054)
Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
2021-10-21 20:53:39 +02:00
Christopher Kolstad b7b5f0caa0 fix: add constraint for changing project. (#1049)
- In order for a feature toggle to be allowed to change project, the
  target project must have the same enabled environments.
- If the feature toggle has an environment which is not in use that does
  not exist in target project, this is ok.

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>

Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
2021-10-21 10:29:09 +02:00
Ivar Conradi Østhus 3484340cd0 fix: only add project environments if enabled (#1050) 2021-10-21 10:14:35 +02:00
Christopher Kolstad 62b121285c Create a apiuser for demo auth. (#1045)
- If api token middleware is disabled, still allow calls to /api/client with a
  populated fake api user with client access.
2021-10-20 13:16:07 +02:00
Christopher Kolstad 28d0238732 add try-catch to demo auth middleware (#1044)
- Since we validate email used in auth the route function needs to
  handle the possibility that userService.loginUserWithoutPassword can
  throw.
2021-10-19 14:24:23 +02:00
Christopher Kolstad 1f37b0bf4b fix: make hasPermission call handle api tokens (#1041) 2021-10-19 11:34:56 +02:00
Christopher Kolstad 26407cc02e Fix/feature strategies needs project update (#1040)
* Make sure feature_strategies follow feature to new project
2021-10-19 09:49:43 +02:00
Ivar Conradi Østhus 3b925902d7 fix: event-log 2021-10-15 20:11:51 +02:00
Ivar Conradi Østhus 5f6758d8f0 fix: update context field does not await the response (#1027) 2021-10-14 08:30:36 +02:00
Ivar Conradi Østhus ae03390331 fix: add support for experimental flags (#1025) 2021-10-13 20:52:44 +02:00
Ivar Conradi Østhus 41574e3938 fix: create admin users if enabled and zero users already 2021-10-12 21:39:57 +02:00