Ivar
e679d5d975
Fix formatting
2020-02-20 08:34:00 +01:00
Martin Lehmann
c957aeba94
Fix feature name validation regex
2020-02-20 08:33:47 +01:00
ivaosthu
12ef0db1f1
Bugfix: use basUrl when logging actual request path
2020-02-20 08:33:47 +01:00
Clint Brown
3e7098578b
Allow underscores in name validation
2020-02-20 08:33:47 +01:00
Ivar
d58289540c
Include module version number in /api reponse
2020-02-20 08:33:46 +01:00
Ivar
6bc23f04da
Added option to disable legacy routes. Closes #244
2020-02-20 08:33:46 +01:00
Ivar
eb346756d2
Clean up intervals.
...
We use intervals in three places and we could probably organise them
better in the future. As long as they all do unref they do not form
any issues for us and I will just let them be as is for now.
This closes #186
2020-02-20 08:33:46 +01:00
Simen Bekkhus
54ca4ffc77
Upgrade prom-client and add gc-stats
2020-02-20 08:33:46 +01:00
Simen Bekkhus
3b260abbfe
Replace sinon with lolex
2020-02-20 08:33:46 +01:00
ivaosthu
e97a3820a2
Added validation of provided LoggerProvider
2020-02-20 08:33:33 +01:00
ivaosthu
f5e9ca3bbe
Implement support for logger provider.
...
This allows the users of 'unleash-server' to programatically
change the logger implemnentation. #175
2020-02-20 08:33:33 +01:00
ivaosthu
f2cc426ed7
Fix assert
2020-02-20 08:33:33 +01:00
ivaosthu
f91a24eabe
Add metrics validation to avoid NaN #253
2020-02-20 08:33:33 +01:00
ivaosthu
18afb520d0
Strip uknown fields in client requests. closes #245
2020-02-20 08:33:33 +01:00
ivaosthu
f826c837fd
Disable x-powered-by express header
2020-02-20 08:33:33 +01:00
sveisvei
b137cf0eaa
add editable tests
2020-02-20 08:33:16 +01:00
sveisvei
a9b783443b
shoulda woulda
2020-02-20 08:33:16 +01:00
sveisvei
ae245293f4
protection against edit on built in strategies
2020-02-20 08:30:52 +01:00
Ivar
915158212c
Add support for sdkVersion in client registration
2020-02-20 08:30:52 +01:00
sveisvei
1131440535
auto disable, and do not serve archived toggle
2020-02-20 08:30:52 +01:00
Simen Bekkhus
e1cc0b2e99
Upgrade prom-client and yargs
2020-02-20 08:30:51 +01:00
sveisvei
93bb1ac66d
should expose one feature
2020-02-20 08:30:51 +01:00
sveisvei
0ae24c68e6
Refactor routes setup, move test files, cleanup legacy
2020-02-20 08:30:51 +01:00
sveisvei
71815a1320
Remove legacy data support
2020-02-20 08:30:51 +01:00
sveisvei
375a8b1d4f
Prettier/lint
2020-02-20 08:30:50 +01:00
Simen Bekkhus
e85ac8a52f
Log client error ( #225 )
...
* Log client error
* Log all errors
2020-02-20 08:30:50 +01:00
sveisvei
6e4a22bf54
use object.assign and pass along options
2020-02-20 08:30:50 +01:00
sveisvei
fa6c28de8f
pass along hooks, add test to server impl
2020-02-20 08:30:50 +01:00
sveisvei
86ac44908d
validate configures strategy shape
2020-02-20 08:30:49 +01:00
Simen Bekkhus
21e0522116
Remove uncaught exception logging
...
This is the responsibility of the app
2020-02-20 08:30:48 +01:00
vsandvold
743a597f42
provides a more helpful error msg when a new feature is created with an existing name
2020-02-20 08:30:46 +01:00
sveisvei
07dc23d23d
use post instead of put
2020-02-20 08:30:46 +01:00
sveisvei
32a0b93096
add toggle endpoint
2020-02-20 08:30:46 +01:00
ivaosthu
8beb4b8876
Add simple API resource #191
2020-02-20 08:30:46 +01:00
ivaosthu
df7ad8c8bf
Strategy name can be up to 100chars . Closes #195
2020-02-20 08:30:45 +01:00
sveisvei
925e42045f
add sanity tests for metrics
2020-02-20 08:30:45 +01:00
sveisvei
ae195b5674
evict if new item directly is not eligible
2020-02-20 08:30:45 +01:00
sveisvei
efc9ae2f5d
fix typ0 that broke time.now
2020-02-20 08:30:45 +01:00
sveisvei
17c58e77f2
add hook tests
2020-02-20 08:30:45 +01:00
sveisvei
2f1680d9c0
add app hooks
2020-02-20 08:30:45 +01:00
sveisvei
1d3faca238
fix lint
2020-02-20 08:30:45 +01:00
ivaosthu
744e41f9aa
Strategy parameter description is allowed to be empty
2020-02-20 08:30:43 +01:00
ivaosthu
79de8fb7ed
Added api for updating a strategy
...
relates to #184
2020-02-20 08:30:43 +01:00
ivaosthu
bc1f647f92
use fake timers for ttl test
2020-02-20 08:30:43 +01:00
sveisvei
f5578d986e
check toggles and strategies in clientapps
2020-02-20 08:30:43 +01:00
ivaosthu
c8a9b39f27
Add schema validation for strategies
2020-02-20 08:30:43 +01:00
ivaosthu
ba5810506f
Fix failing tests
2020-02-20 08:30:43 +01:00
ivaosthu
97f6731140
Strategy list should be sorted by name
2020-02-20 08:30:43 +01:00
sveisvei
381e7d4763
inject metadata on toplevel
2020-02-20 08:30:43 +01:00
sveisvei
d160fe933f
serve with metadata
2020-02-20 08:30:43 +01:00
sveisvei
76d642069b
Revert "Remove /api/client/seen-toggles as we don't need it anyway"
...
This reverts commit 63e6931265
.
2020-02-20 08:30:42 +01:00
ivaosthu
52fcfb4a2b
Remove /api/client/seen-toggles as we don't need it anyway
2020-02-20 08:30:42 +01:00
ivaosthu
51442a6cc4
Remove client_strategies table
...
We can just have a strategies column in the client_applications
table. This solves all our needs, and thus avoids the need
for an extra table.
2020-02-20 08:30:42 +01:00
ivaosthu
8764b952b3
A client-register should upsert client_applications table
2020-02-20 08:30:42 +01:00
sveisvei
5ad5127f81
fix lint and mock
2020-02-20 08:30:42 +01:00
sveisvei
3a6e7d02ef
client applications
2020-02-20 08:30:42 +01:00
sveisvei
066fe5fdd2
recieve togglename to archive or revive via path
2020-02-20 08:30:42 +01:00
sveisvei
92111890d9
uppercase event type key constants
2020-02-20 08:30:42 +01:00
Ivar Conradi Østhus
377ad43bab
Delete app.js
2020-02-20 08:30:42 +01:00
ivaosthu
9c6fad83c2
Added enpoint for fetching application implementing a strategy
...
`/api/client/applications?strategyName=foo` now returns list of
apps implementing that strategy!
2020-02-20 08:30:42 +01:00
sveisvei
803fc6752d
send toggleName back
2020-02-20 08:30:42 +01:00
ivaosthu
b12a188faf
amend prev commit
2020-02-20 08:30:42 +01:00
ivaosthu
6cdffb22d0
fix strateiges format for /client/applications
2020-02-20 08:30:42 +01:00
sveisvei
a959dc777d
fetch seen apps instead
2020-02-20 08:30:42 +01:00
sveisvei
7609d0abeb
add getAppsFromToggleName
2020-02-20 08:30:42 +01:00
sveisvei
d3063073b3
fix typ0
2020-02-20 08:30:42 +01:00
sveisvei
a1303f4c42
only log if num of cleaned is above 0
2020-02-20 08:30:41 +01:00
sveisvei
b5b846835b
add single toggle metric endpoint
2020-02-20 08:30:41 +01:00
sveisvei
f425597640
fix lint
2020-02-20 08:30:41 +01:00
ivaosthu
d4d63af2b0
Option to disable request logging.
...
Because all request details are available via
prometheus there is no need to also log all requests.
This solves #164 but we should still replace log4j with something else.
2020-02-20 08:30:41 +01:00
ivaosthu
7057d11553
replace commander with yargs
2020-02-20 08:30:41 +01:00
ivaosthu
bec646d797
more tests
2020-02-20 08:30:41 +01:00
ivaosthu
35ad3aa072
cleanup bin
2020-02-20 08:30:40 +01:00
ivaosthu
f1a24be0e2
minor cleanup
2020-02-20 08:30:40 +01:00
ivaosthu
471518b41d
Simplify metrics: We only need timings as it includes counts for free
2020-02-20 08:30:40 +01:00
ivaosthu
e075917136
cleanup
2020-02-20 08:30:40 +01:00
ivaosthu
8e6bcafa24
Server Metrics: add response time and status codes
2020-02-20 08:30:40 +01:00
ivaosthu
84e0810d64
Some Metrics API cleanups
2020-02-20 08:30:40 +01:00
ivaosthu
f7a89b8223
more tests
2020-02-20 08:30:40 +01:00
ivaosthu
b8014fdddf
Server Metrics with Prometheus
...
Implementation use internal eventBus to enable loose counting in the app.
read more at https://prometheus.io/
Closes #98
2020-02-20 08:30:40 +01:00
ivaosthu
93c37b30c0
Metrics: wrte api documentation
2020-02-20 08:30:40 +01:00
sveisvei
e55378e1c4
Better client informations from the API.
...
Impelements:
- http://unleash.host.com/api/client/seen-toggles
- http://unleash.host.com/api/metrics/feature-toggles
- http://localhost:4242/api/client/applications
- http://localhost:4242/api/client/applications/:appName
2020-02-20 08:30:40 +01:00
ivaosthu
13a93dcf43
Should not expose legacy fields to whole system
2020-02-20 08:30:40 +01:00
Ivar
3fa930baf0
Added strategies validation when creating/updating toggles
2020-02-20 08:30:39 +01:00
sveisvei
a34ee105fe
add count to app state
2020-02-20 08:30:39 +01:00
sveisvei
68ac0c71c9
fix typ0
2020-02-20 08:30:39 +01:00
sveisvei
1dab39f0f9
move app and server-impl into lib folder
2020-02-20 08:30:39 +01:00
sveisvei
067b93abfd
add tests, rename folders to ava defaults for helpers/fixtures, remove migration og
2020-02-20 08:30:39 +01:00
sveisvei
e730937849
add more unit tests for metrics
2020-02-20 08:30:39 +01:00
sveisvei
cad07cc6ec
use options obj
2020-02-20 08:30:39 +01:00
ivaosthu
14deebae1f
options to specify different db-schema
2020-02-20 08:30:38 +01:00
ivaosthu
39b5f26f56
Add unit-test for /health route
2020-02-20 08:30:38 +01:00
ivaosthu
5735b0931a
Cleanup route/metrics a bit
2020-02-20 08:30:38 +01:00
ivaosthu
a665b1b999
Started on unit test for metrics-route
2020-02-20 08:30:38 +01:00
ivaosthu
aa4140141e
upgrade log4js to 1.0.1
2020-02-20 08:30:38 +01:00
ivaosthu
46bc109ff9
fix tests
2020-02-20 08:30:37 +01:00
ivaosthu
90859701c6
remove all lerna stuff
2020-02-20 08:30:37 +01:00
sveisvei
7bacad7b90
use lerna for multipackaging
2020-02-20 08:30:26 +01:00
Ivar
1c092484f7
Remove finn config #133
2020-02-20 08:30:26 +01:00
Ivar
b2e9f38965
Statefull modules should be injected from top
2020-02-20 08:30:25 +01:00
Ivar
5282ebfcc9
Move all custom-scripts to /scripts folder
2020-02-20 08:30:25 +01:00
ivaosthu
0325cd92fb
Move all routes to a routes folder
2020-02-20 08:30:24 +01:00
ivaosthu
1caf2ddc53
seems like knex 0.11 is more restrict about not using undefined
2020-02-20 08:30:24 +01:00
ivaosthu
2e6f4187c5
upgrade knex
2020-02-20 08:30:24 +01:00
Anders Olsen Sandvik
a96a9f38ce
#108 Add eslint-config-spt and remove jshint ( #111 )
...
* #108 Add eslint-config-spt
* #108 Ignore bundle.js file
* #108 Change eslint ignore path to a glob file
* Remove jshint and follow more of eslint rules
2020-02-20 08:30:24 +01:00
ivaosthu
94f10a3a4b
upgrade node to 4.2.2. Closes #106
2020-02-20 08:30:24 +01:00
giacung
98cd0663ff
Health check should verify that it can talk to the toggle-store (aka DB).
...
This commit fixes #103 by doing a simple select against the features table.
2020-02-20 08:30:24 +01:00
Ivar Conradi Østhus
d35666e353
Added poller to keep the store in sync with server.
2020-02-20 08:30:21 +01:00
Jari Bakken
8b9c0a6e85
Reduce logging in production.
2020-02-20 08:30:21 +01:00
andsandv
0552e588ae
Check if strategy exsit before deleting it
2020-02-20 08:30:21 +01:00
andsandv
d600cdd359
#80 More renaming
2020-02-20 08:30:21 +01:00
andsandv
806da1eb44
#80 Rename event ypes
2020-02-20 08:30:20 +01:00
andsandv
de5dc7bfc6
Revert " #80 Change all event types to past tense"
...
This reverts commit a754fcb3a9
.
Might break database so I'll send a pull request.
2020-02-20 08:30:20 +01:00
andsandv
5298b50cb7
#80 Change all event types to past tense
2020-02-20 08:30:20 +01:00
Ivar Conradi Østhus
6819b7a1e0
When the user enters his username in to the field
...
a username cookie is updated and will be available
in all subsequent requests.
THIS IS NOT AUTHENTICATION! it is not safe and is
only implemented as a first edition. It does how ever
solve the issue where we are not able to see who
canged what.
2020-02-20 08:30:20 +01:00
Jari Bakken
12710a6d04
log views: show event diffs by default, toggle to show the full event.
2020-02-20 08:30:20 +01:00
ivaosthu
1024493d63
Added archived toggles feature #43
2020-02-20 08:30:19 +01:00
ivaosthu
658e3ac2bc
API and gui for archiving #43
2020-02-20 08:30:19 +01:00
Jari Bakken
f999388e03
Use TEST_DATABASE_URL for running test against a separate DB.
2020-02-20 08:30:19 +01:00
Jari Bakken
745de6867d
Skip API and create test data in the DB directly (since the API is async)
2020-02-20 08:30:18 +01:00
Jari Bakken
642c06f6ba
Begin work on running tests against the database:
...
* Add Travis postgresql setup.
* Replace "db mocks" with a before hook that creates the same data
through the HTTP API.
* Reset DB and re-create all fixtures for each test. We'll need
something better here.
* CAVEAT: no concept of a dev vs test database. Running tests will
clear data from the currently configured database.
2020-02-20 08:30:18 +01:00
ivaosthu
32125ca4fb
Clean up strategyApi with chained-promises
2020-02-20 08:30:18 +01:00
ivaosthu
91651979d0
Syntax
2020-02-20 08:30:18 +01:00
ivaosthu
b1ccb2e999
Validation logic should probably not be in the db-code
2020-02-20 08:30:18 +01:00
ivaosthu
ae0fdce395
Cleaned up and changed promises used in the feature API
2020-02-20 08:30:18 +01:00
ivaosthu
c2a809a819
changed order for feature toggles.
2020-02-20 08:30:18 +01:00
ivaosthu
c20252d9d7
Implemented server side API for deleting strategies.
...
relates to #60
2020-02-20 08:30:18 +01:00
ivaosthu
03c84c086c
strategies should be order after createdAt ASC
2020-02-20 08:30:17 +01:00
Jari Bakken
a169ec1352
Add ability to create custom stratgies. Closes #11 .
2020-02-20 08:30:17 +01:00
Ivar Østhus
a2f486c0d4
strategies should be fetched from DB
2020-02-20 08:30:17 +01:00
Ivar Østhus
fe17b51bd9
Added the default strategies via migration
2020-02-20 08:30:16 +01:00
Gard Rimestad
c8c7f57cfb
Improvements on log view
2020-02-20 08:30:16 +01:00
Jari Bakken
b4f6166afb
Fix getFeature() semantics
...
It will always reject if the feature is not found, not resolve to null.
2020-02-20 08:30:16 +01:00
Jari Bakken
1371560840
Use knex' map()
2020-02-20 08:30:16 +01:00
Jari Bakken
412067c42f
Use knex for DB access. Closes #46 .
2020-02-20 08:30:16 +01:00
Jari Bakken
d2ce90b394
Replace PATCH with PUT, which enables editing multiple fields at once.
...
Closes #47 .
2020-02-20 08:30:16 +01:00
Gard Rimestad
1777b5a510
Fix event api
2020-02-20 08:30:16 +01:00
Gard Rimestad
78434a7ca1
Adding events/:name
2020-02-20 08:30:16 +01:00
Jari Bakken
fdf324a9f5
Add features.description to db and ui
2020-02-20 08:30:15 +01:00
Jari Bakken
86e168ec84
Reduce duplication when adding a new migration.
2020-02-20 08:30:15 +01:00
Ivar Østhus
dd75e69ac6
Strategies should also have description #34
2020-02-20 08:30:14 +01:00
Jari Bakken
971559a5be
Get rid of deprecation warnings.
2020-02-20 08:30:14 +01:00
ivaosthu
b1b3d408f7
Simple tab-based menu to have a contianer for strategies
2020-02-20 08:30:13 +01:00
ivaosthu
b2d4cbf5de
added server side validation of feature name
2020-02-20 08:30:13 +01:00
Jari Bakken
f06a4a8a51
Move unleash-server to top level.
2020-02-20 08:30:13 +01:00