1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-11-01 19:07:38 +01:00
Commit Graph

334 Commits

Author SHA1 Message Date
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
Christopher Kolstad
20a4aeff97
Make Appinstance registration include environment (#1014) 2021-10-12 10:39:28 +02:00
Christopher Kolstad
d176028a00 Trigger STALE events when patching stale field
- Also moved the patch function into service, instead of performing the
  operation in the controller
2021-10-11 11:27:20 +02:00
Ivar Conradi Østhus
fc455811f8
feat/metricsV2 (#1005)
Adds a new way of handling usage metrics where we push it directly to the database and performs aggregation on the fly. All metrics are aggregated in to buckets of hours. We will for now store metrics for the 48 hours with the following dimensions:

- featureName
- projectName
- envrionment
- yes (the actual count)
- no (the actual count)
2021-10-08 10:09:22 +02:00
Ivar Conradi Østhus
3612884501
feat: clone feature toggle API (#1006) 2021-10-08 09:37:27 +02:00
Christopher Kolstad
a401580228
task: Disables feature_environments without strategies (#1003) 2021-10-06 09:25:34 +02:00
Ivar Conradi Østhus
54a99460ce
fix: add projects api for oss as well 2021-10-01 10:59:43 +02:00
renovate[bot]
120eb2b2fa
fix(deps): update dependency js-yaml to v4 (#985)
* fix(deps): update dependency js-yaml to v4

* fix: upgrade to js-yaml v4

* fix: upgrade to js-yaml 4.1.0

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-09-28 20:53:39 +02:00
Ivar Conradi Østhus
4b7e1f4a81
feat: rename :global: env to "default" (#947)
Our testing and internal validation has proven that
the :global: environment concept confuses people more
than the problems it solves. We have thus decided to
group all configuration that was created before the
environment concept was introduced in to the "default
environment. This would still make everything work
as before in addition to introducing the env concept.

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
2021-09-24 13:55:00 +02:00
Christopher Kolstad
132e801836
Add UPDATE and DELETE TAG_TYPE permissions (#951) 2021-09-24 09:01:15 +02:00
Christopher Kolstad
f85f66d4f5
feat: add project and environment columns to events (#942)
* feat: add project and environment columns to events

* Added events for feature_strategy update

* fix duplicate test key for dbInit

* Fix argument list for toggleService calls in tests
2021-09-20 12:13:38 +02:00
Christopher Kolstad
37d6c4886a
Respect sort order when displaying strategies (#943) 2021-09-17 15:11:17 +02:00
Ivar Conradi Østhus
c4b697b57d
Feat/api key scoping (#941)
Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
2021-09-15 20:28:10 +02:00
Ivar Conradi Østhus
80291dffcf
fix: convert api-def.js to tyoescript 2021-09-14 20:07:05 +02:00
Ivar Conradi Østhus
e2177da114
fix: convert xtract-user.js to typescript 2021-09-14 19:58:48 +02:00
Fredrik Strand Oseberg
26c9d53b89
feat: Move environments to enterprise (#935)
- Adding, updating and renaming environments are meant to be
  enterprise only features, as such, this PR moves these operations out
  of this server

- We still keep sortOrder updating, toggling on/off and getting one,
  getting all, so we can still work with environments in the OSS version
  as well.

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
2021-09-13 15:57:38 +02:00
Ivar Conradi Østhus
90962434d9
fix: Cleanup new features API with env support (#929) 2021-09-13 10:23:57 +02:00
Ivar Conradi Østhus
d28df3e3fa
Fix/feature events (#924) 2021-08-26 13:59:11 +02:00
Fredrik Strand Oseberg
cdc2e7daee
fix: add properties to legacy endpoints (#919)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-08-19 13:34:24 +02:00
Ivar Conradi Østhus
d3fbaa6587
fix: add member and toggle count to project list (#918) 2021-08-19 13:25:36 +02:00
Christopher Kolstad
45f5d1fb1a
feat: Adds sendEmail flag to body of create user request (#894)
This allows frontend to support a toggle for admins wanting to create
users and passwords manually, without sending emails to users they
create.

Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-08-13 10:50:48 +02:00
Ivar Conradi Østhus
2bcdb5ec31
fix: Controller wraps handler with try/catch (#909)
By having the controller perform try/catch around the
handler function allows us to add extra safety to all
our controllers and safeguards that we will always catch
exceptions thrown by a controller method.
2021-08-13 10:36:19 +02:00
Ivar Conradi Østhus
5760d10e70
Revert "fix: upgrade js-yaml to 4.1.0"
This reverts commit 4852d67049.
2021-08-12 23:00:47 +02:00
Ivar Conradi Østhus
4852d67049
fix: upgrade js-yaml to 4.1.0 2021-08-12 22:47:44 +02:00
Christopher Kolstad
ff7be7696c
fix: Stores as typescript and with interfaces. (#902)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-08-12 15:04:37 +02:00
Ivar Conradi Østhus
0ff89ebdf3
fix: logout-controller should support logoutUrl override (#881) 2021-07-18 21:42:36 +02:00
Ivar Conradi Østhus
815a75a5b4
Wip/environments (#880)
Adds environment support

This PR adds environments as a first-class concept in Unleash.

It necessitated a full rewrite on how we connect feature <-> strategy, as well as a rethink on which levels environments makes sense.

This enables PUTs on strategy configurations for a feature, since all strategies now have ids.

This also updates export/import format. The importer handles both formats, but export is no longer possible in version 1 of the export format, only in version 2, with strategy configurations for a feature as a separate object.

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-07-07 10:46:50 +02:00
checketts
2f013bacbf
chore: Convert client metrics controller to typescript (#831)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-06-24 19:22:12 +02:00
Ivar Conradi Østhus
8e3e973f22
fix: make sure routes/user handles api calls 2021-06-08 20:15:03 +02:00
Fredrik Strand Oseberg
9f33285b03
Feat/pnps feedback (#862)
* feat: setup user feedback service

* fix: map rows

* feat: add tests

* wrap service calls in try catch

* fix: add test for retrieving feedback on user

* feat: add fake user feedback store

* fix: check ffor feedback id in controller

* feat: add test for bad request
2021-06-07 11:11:42 +02:00
Christopher Kolstad
3a65847aa7
Migrate to jest (#854)
* Migrate to jest
* Use --force-exit until dns close handle issue https://github.com/facebook/jest/issues/9982

Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-05-28 11:10:24 +02:00
Ivar Conradi Østhus
e095691c1e
fix: lint 2021-05-21 19:16:08 +02:00
Ivar Conradi Østhus
bcc2d913cc
fix: more docs 2021-05-18 13:22:28 +02:00
Ivar Conradi Østhus
1691efbcae
fix: remove errornered envrionment=test 2021-05-11 15:10:14 +02:00
Ivar Conradi Østhus
f57e056368
fix: versionInfo as part of ui-config 2021-05-11 14:59:38 +02:00
Fredrik Strand Oseberg
52d3e9eb77
fix: report email as not sent to fe if it throws (#844) 2021-05-11 12:15:20 +02:00
Christopher Kolstad
5565dd8c4b
chore: expose an endpoint to really delete a toggle (#808)
* chore: expose an endpoint to really delete a toggle

- To provide a way to run end-to-end tests without cluttering
  our demo instance with way too many feature-toggles, making this
  endpoint available will allow end-to-end tests to clean up properly
  after themselves
2021-05-06 14:11:56 +02:00
Ivar Conradi Østhus
01ab4e1604
feat: global events requires admin role 2021-05-04 22:11:30 +02:00
Fredrik Strand Oseberg
28b186150d
fix: remove toast info from bootstrap controller (#834)
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-05-04 21:43:14 +02:00
Fredrik Strand Oseberg
5091f287f2
fix: set name type to be min 1 character (#833) 2021-05-04 21:42:42 +02:00
Ivar Conradi Østhus
185aee70df
fix: /api/admin/user should not allow caching 2021-05-04 21:33:32 +02:00
Fredrik Strand Oseberg
2099bbea73
fix: match bootstrap uiConfig with expected data format (#830)
* fix: match bootstrap uiConfig with expected data format

* fix: default to empty object for ui and experimental properties on config

* fix: update text
2021-05-04 10:00:25 +02:00
Ivar Conradi Østhus
0bed8f605e
fix: regular users are not API users 2021-05-03 19:33:37 +02:00
Ivar Conradi Østhus
841e2a6e07
fix: more types 2021-05-02 21:11:17 +02:00
Ivar Conradi Østhus
4b48c08e0e
fix: move permission to types 2021-05-02 20:58:02 +02:00
Ivar Conradi Østhus
886e0bb008
feat: add user create/update/delete events (#807) 2021-04-27 20:47:11 +02:00
Christopher Kolstad
d0b17af770
fix: handle password being undefined when validating (#809) 2021-04-27 15:35:10 +02:00
Christopher Kolstad
578078e03f
fix: active sessions are now destroyed if auth/reset and auth/validate endpoints are used (#806) 2021-04-27 09:16:44 +02:00
Christopher Kolstad
0de4c98a58
fix: send email on process.nextTick (#805)
To avoid users having to wait while we wait for a response from the email provider, we now send the mail on nextTick
2021-04-27 09:05:46 +02:00
Christopher Kolstad
97d77d84cc fix: emailservice now just returns if email was configured 2021-04-23 15:24:32 +02:00
Ivar Conradi Østhus
b406d3c7cf
fix: should allow revive toggles 2021-04-23 13:29:24 +02:00
Fredrik Strand Oseberg
c58612fc8f
Feat/add new user email (#793)
* feat: send email when adding a new user

* fix: rename method

* fix: create welcome email

* fix: update email templates

* fix: add name to templates

* refactor: reduce database calls to one

* fix: alter tests

* fix: remove console logs
2021-04-23 10:58:47 +02:00
Ivar Conradi Østhus
b0e6d8c363
fix: User should require a ID field set (#799) 2021-04-22 23:40:52 +02:00
Christopher Kolstad
18f66ef732
feat: Add change-password endpoint to user-controller (#800)
fixes: #801 

Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2021-04-22 16:05:59 +02:00
Ivar Conradi Østhus
4b10356325
fix: only ADMIN can list all users 2021-04-22 12:13:41 +02:00
Christopher Kolstad
240c6a77a1
Feat/options need types (#794)
feat: options are now typed

- This makes it easier to know what to send to unleash.start / unleash.create
- Using a Partial to instantiate the config, then melding it with defaults to get a config object with all fields set either to their defaults or to whatever is passed in.


Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
2021-04-22 10:07:10 +02:00
Christopher Kolstad
4246baee16
feat: add ui-bootstrap endpoint (#790)
* feat: add ui-bootstrap endpoint

- Reducing calls needed for frontend to 1 instead of the current 6

fixes: #789
2021-04-20 12:32:02 +02:00
Ivar Conradi Østhus
332f1c4544
feat: expose user permissions (#791) 2021-04-20 09:58:23 +02:00
Christopher Kolstad
b55c85783b
Reset token (#786)
feat: Add Reset token functionality

This allows admin users to create a reset token for other users. Thus allowing resetting their password.

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

fixes: #778
2021-04-16 15:29:23 +02:00
Ivar Conradi Østhus
c45c19fedb
fix: remove unused import 2021-04-15 22:23:04 +02:00
Ivar Conradi Østhus
06a7bb323c
fix: fully remove enableLegacyRoutes option 2021-04-15 22:16:14 +02:00
Ivar Conradi Østhus
5214a7f88e
fix: failing tests 2021-04-15 11:35:45 +02:00
Ivar Conradi Østhus
9f3ca73075
fix: expose auth-type in ui-config 2021-04-15 11:29:53 +02:00
Ivar Conradi Østhus
2c01fd088b
fix: should only do checkRbac if it exists 2021-04-13 11:41:22 +02:00
Ivar Conradi Østhus
0eb132c025
feat: unleash v4 will require node 14 or higher (#784) 2021-04-13 09:22:37 +02:00
Ivar Conradi Østhus
469e87a923
fix: remove enableLegacyRoutes option from v2 2021-04-13 09:04:25 +02:00
Ivar Conradi Østhus
9e7d2f845a
fix: migrate all permissions to rbac (#782)
* fix: migrate all permissions to rbac
* fix: update migration guide

fixes #782
2021-04-12 20:25:03 +02:00
Ivar Conradi Østhus
9bd425c193
feat: Add username/password authentication (#777) 2021-04-09 13:46:53 +02:00
Christopher Kolstad
99fd210392
feat: added basic email-service (#780)
* feat: added basic email-service
* feat: preview endpoint for plaintext/html templates
* chore: Updated docs
fixes: #757
2021-04-09 11:16:06 +02:00
Christopher Kolstad
2850052cc5 fix: Clear-Site-Data header needs to be double quoted 2021-04-06 16:09:09 +02:00
Ivar Conradi Østhus
dfb890c638
Feat: Api-Tokens (#774)
fixes: #774
2021-03-29 19:58:11 +02:00
Christopher Kolstad
289cf85a3c
Add import/export for tags and projects (#754)
* Add import/export for tags and projects

Tags includes (tags, tag-types and feature-tags)

fixes: #752
2021-03-12 11:08:10 +01:00
Ivar Conradi Østhus
e1fbe9d013
feat: Default roles and RBAC permission checker. (#735)
This PR Introduces first steps towards RBAC according to our specifications. Rbac will assume users to exist in the Unleash user table with a unique id. This is required to make correct mappings between users and roles.
2021-03-11 22:51:58 +01:00
Fredrik Strand Oseberg
8e0bae7352
feat/return feature on create (#742)
* feat: return feature on create

* refactor: change test to verify returning object

* fix: return undefined instead of null
2021-03-04 13:28:31 +01:00
Christopher Kolstad
4808eb32ff
feat: add support for bulk operations on client apps/instance registr… (#744)
* feat: add support for bulk operations on client apps/instance registration
-- stores client registrations for 5 seconds, then runs distinct and inserts them into db

fixes: #732
2021-03-04 12:54:13 +01:00
Christopher Kolstad
44af41547e
feat: make client features endpoint memoizable (#734) 2021-02-24 12:29:39 +01:00
Clint Checketts
5f83fbc43d chore: Add eslint rules and fix strings to pass rules 2021-02-22 22:20:10 -07:00
Clint Checketts
6643de66a5 chore: Begin converting files from JS to TypeScript 2021-02-22 21:57:58 -07:00
Christopher Kolstad
b83387a84a
Add a version service (#729)
- Checks versions against https://version.unleash.run
- Generates a unique instance id (uuid)
2021-02-19 11:13:25 +01:00
Ivar Conradi Østhus
b17e9a4bda
feat: Introduce specific "feature stale" events (#727)
fixes: #776
2021-02-18 09:18:04 +01:00
Christopher Kolstad
d017ec7cdc
feat: add db-session store (#722)
* Moves to db managed sessions.
2021-02-18 09:03:21 +01:00
Christopher Kolstad
8bf4214ddb
feat: Handle database connection errors with 500 (#725)
* feat: Handle database connection errors with 500

- If database goes away while unleash is running, unleash now stays
  running, but all api endpoints will return 500.
- This includes our health endpoint, which allows k8s or similar
  orchestrators to decide what should be done, rather than Unleash
  terminating unexpectedly
2021-02-17 15:24:43 +01:00
Fredrik Strand Oseberg
c1aab06798
Feature/setup typescript
This sets up the typescript compiler.

Allowing gradual migration to typescript.

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
Co-authored-by: Fredrik Oseberg <fredrik.oseberg@getunleash.ai>
Co-authored-by: Clint Checkett <clintchecketts@churchofjesuschrist.org>

fixes: #676
2021-02-12 11:42:00 +01:00