* Make sure we keep the announced status of each app
- Since we were running onConflict().merge() we were keeping our entire
new object from our remapRow method, and that was overwriting the
current announcement status of the row back to false, unless we'd by
random chance actually set the announced property on our row to be
inserted.
* Add migration for cleaning up application-created events
-
fixes: #769
- Due to applying a primary key constraint on app_name, instance_id,
active installations with client_instances that have already violated
this unique constraint will fail to migrate.
- This commit drops all but the latest instance of each (app_name,
instance_id) tuple, thus preparing the database for applying the
unique constraint
Co-authored-by: Ivar Conradi Osthus <ivarconr@gmail.com>
Co-authored-by: Fredrik Strand Oseberg <fredrik.no@gmail.com>
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.
* 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
* 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
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