Commit Graph

91 Commits

Author SHA1 Message Date
Christopher Kolstad 063d3f0e4a Make feature-toggle-store return 409
- After seeing frontend behaviour where the user could add the same
tag multiple times, and not get errors or be stopped doing so, we'll
change the backend to return a 409 if you tag a feature with a tag it
already has.

- Previous to this commit, the setup was to do `onConflict().ignore()`
  which caused the frontend to not get any help from the backend as to
  whether or not the operation was allowed

- This fix adds a custom error and adds a branch to the handleError util
  method for handling just that error type with a 409.

- This caused a couple of tests to receive 409, probably due to
  insufficient cleanup between tests. Adding faker as a dev-dependency and randomising
  toggle names and tag values for each test reduces the chance that
  we'll run into duplicate issues in the future for the tests that
  touches this problem

fixes: #711
2021-02-08 16:22:15 +01:00
Ivar Conradi Østhus 17c8fe7710 feat: Introduce addon framework
fixes: #587

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
2021-02-05 15:20:00 +01:00
Ivar Conradi Østhus 9607ebce75 fix: should wait for seen apps 2021-02-04 15:54:29 +01:00
Christopher Kolstad bd94f358c3 feat: Added tags to events table and emitted events
fixes: #695
2021-01-29 09:53:27 +01:00
Christopher Kolstad e555118cb1 feat: Add filterquery support for toggles
- For now supports
   - tag
   - project
   - namePrefix

fixes: #690
2021-01-26 14:14:07 +01:00
Christopher Kolstad 5f736ccf18 Make sure we deny deprecating default strategy 2021-01-22 10:03:01 +01:00
Christopher Kolstad ef19dfa7cb Support deprecating and reactivating strategies
fixes: #682
2021-01-21 15:53:24 +01:00
Christopher Kolstad c17a1980a2 Add service layer
This simplifies stores to just be storage interaction, they no longer react to events.

Controllers now call services and awaits the result from the call.

When the service calls are returned the database is updated.
This simplifies testing dramatically, cause you know that your state is
updated when returned from a call, rather than hoping the store has
picked up the event (which really was a command) and reacted to it.

Events are still emitted from eventStore, so other parts of the app can
react to events as they're being sent out.

As part of the move to services, we now also emit an application-created
event when we see a new client application.

Fixes: #685
Fixes: #595
2021-01-21 10:59:19 +01:00
Christopher Kolstad 43801f1f13 Add Tags and tag types
- First iteration of api for tags and tag-types
- Documentation in place
- Adds three new tables
   - tag_types
   - tags
   - feature_tag
- Tagging a feature is adding a row in the feature_tag
  join table

* #665

Co-authored-by: Simen Bekkhus <sbekkhus91@gmail.com>
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-01-14 13:09:05 +01:00
Ivar Conradi Østhus a1ac0249a9 fix: cleanup test console output 2021-01-06 18:06:56 +01:00
Ivar Conradi Østhus cdfba8f7b1 feat: Adds last-seen dat on toggles
When an application updates metrics for a toggle we now
stores the timestamp on the toggle when it was last seen
used by an application. This will make it much easier to
detect toggles not in use anymore.

closes #642
2020-12-22 11:05:00 +01:00
Ivar Conradi Østhus 79fc089a35 fix: stateService undefined 2020-12-17 19:43:01 +01:00
Ivar Conradi Østhus b644071a34 feat: Add technical support for projects 2020-11-23 21:47:51 +01:00
Ivar Conradi Østhus 00ce76f9c5 fix: Allow spaces/special chars in application names
closes #534
2020-11-03 15:15:16 +01:00
Ivar Conradi Østhus 9c384dfae7 feat: Allow migration style import (#645) 2020-11-03 14:56:07 +01:00
Ivar Conradi Østhus 3c860d7bce fix: constriants must have at least one value defined
closes #640
2020-10-30 16:40:29 +01:00
Ivar Conradi Østhus 4f3a94cb86 fix: do not allow empty ('') constrain values.
related #640
2020-10-30 10:31:58 +01:00
Ivar Conradi Østhus 24347adbfb fix: context legalValues should be at max 100 chars 2020-10-04 20:36:40 +02:00
Ivar Conradi Østhus ef5b67974d fix: use validated and stripped data when updating 2020-10-01 22:40:47 +02:00
Ivar Conradi Østhus 192c292ecf fix: should use stripped update data for featureToggle 2020-10-01 22:34:28 +02:00
Ivar Conradi Østhus 0204a52d9b fix: failing tests for 409 2020-09-25 22:31:35 +02:00
Ivar Conradi Østhus 1e26c64912 fix: Name conflict should return 409
closes #509
2020-09-25 22:14:31 +02:00
Ivar Conradi Østhus 4a3c136167 feat: Remove applications (#635) 2020-09-25 09:39:12 +02:00
Ivar Conradi Østhus 83dda55172 feat: add stale property on toggle (#619) 2020-08-07 10:46:35 +02:00
Ivar Conradi Østhus 6568457ed8 feat: Add support for toggle types (#618) 2020-08-06 11:18:52 +02:00
Ivar Conradi Østhus 1bb0d03855 fix: version should be part of ui-config (#616) 2020-08-03 13:34:10 +02:00
Ivar Conradi Østhus e42337e523 feat: add weightType as legal property on variant schema (#614) 2020-08-03 13:24:51 +02:00
Ivar Conradi Østhus acc674c0e7 fix: replace @hapi/joi with joi 2020-07-31 22:15:09 +02:00
Ivar Conradi Østhus 91eab0550c fix: exporting only feature toggles as yaml should not crash
fixes #615
2020-07-30 23:57:17 +02:00
Ivar Conradi Østhus d01c9d2dac fix: use airbnb lint rules directly (#583)
This drops usage of finn-eslint rules as they are no
longer maintained.
2020-04-14 22:29:11 +02:00
Ivar Conradi Østhus 333601eaea fix: Logout should not be xhr call (#576)
closes #520
2020-03-29 22:22:19 +02:00
Ivar Conradi Østhus 7a410508cb feat: api supports context fields (#564)
* feat: api supports context fields

* fix: typo for cotnext group in event-differ
2020-02-27 21:26:18 +01:00
Ivar Conradi Østhus 8d90aa1b0b fix: upgrade @hapi/joi to version 17.1.0 2020-02-21 22:14:40 +01:00
Ivar Conradi Østhus 9e79d70060 fix: variant weights can be up to 1000 2020-02-20 08:34:33 +01:00
Ivar Conradi Østhus b532c86695 fix: Upgrade to @hapi/joi (#543) 2020-02-20 08:34:32 +01:00
ivaosthu 459f49866c fix: constraints should be part of toggle schema 2020-02-20 08:34:31 +01:00
Ivar Conradi Østhus c9c26e249c fix: Add admin api for context-field definitions 2020-02-20 08:34:30 +01:00
ivaosthu 9c32a28597 fix: Application fields should be optional. 2020-02-20 08:34:24 +01:00
ivaosthu ccaab0c47b fix: LogProvider as option injected to unleash.
Instead of instructing users to do static calls
in to Unleash, she should instead be allwed to
specify the log provider as an option to Unleash.

This commit introduces the "getLogger" option,
a function responsible for creating a logger.
2020-02-20 08:34:24 +01:00
ivaosthu c66545e11e fix(package): update mime to version 2.4.1
closes #418
2020-02-20 08:34:23 +01:00
Ivar Conradi Østhus 42cfd93820 fix: trigger actual logout on request 2020-02-20 08:34:22 +01:00
Benjamin Ludewig e11e036d2d fix: import should use mime.lookup() for filename 2020-02-20 08:34:22 +01:00
Benjamin Ludewig a06d2c04bb Refactored state-service, schemas, added e2e tests #395 2020-02-20 08:34:22 +01:00
Benjamin Ludewig 9065c5ee88 feat: Added import & export through stateService #395 2020-02-20 08:34:22 +01:00
ivaosthu bb396b6c62 feat: Add customizable ui config 2020-02-20 08:34:22 +01:00
ivaosthu 1c1b1edd83 fix: Add explicit endpoints for toggle on/off
closes #394
2020-02-20 08:34:21 +01:00
ivaosthu c3798d5858 fix: Variants should be allowed to be 'null' 2020-02-20 08:34:21 +01:00
ivaosthu f51500ec78 fix: override field changed name to contextName 2020-02-20 08:34:20 +01:00
ivaosthu df5ef09008 feat: Add suppport for variant overrides 2020-02-20 08:34:20 +01:00
ivaosthu c25e994322 fix: Update variant protocol 2020-02-20 08:34:20 +01:00