unleash-server 4.0.10 → 4.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/lib/db/project-store.js.map +1 -1
  2. package/dist/lib/db/user-store.d.ts +1 -0
  3. package/dist/lib/db/user-store.js +6 -0
  4. package/dist/lib/db/user-store.js.map +1 -1
  5. package/dist/lib/routes/admin-api/index.js +2 -0
  6. package/dist/lib/routes/admin-api/index.js.map +1 -1
  7. package/dist/lib/routes/admin-api/project/health-report.d.ts +11 -0
  8. package/dist/lib/routes/admin-api/project/health-report.js +30 -0
  9. package/dist/lib/routes/admin-api/project/health-report.js.map +1 -0
  10. package/dist/lib/routes/admin-api/project/index.d.ts +6 -0
  11. package/dist/lib/routes/admin-api/project/index.js +15 -0
  12. package/dist/lib/routes/admin-api/project/index.js.map +1 -0
  13. package/dist/lib/services/index.js +3 -0
  14. package/dist/lib/services/index.js.map +1 -1
  15. package/dist/lib/services/project-health-service.d.ts +18 -0
  16. package/dist/lib/services/project-health-service.js +75 -0
  17. package/dist/lib/services/project-health-service.js.map +1 -0
  18. package/dist/lib/services/user-service.js +2 -2
  19. package/dist/lib/services/user-service.js.map +1 -1
  20. package/dist/lib/types/model.d.ts +110 -0
  21. package/dist/lib/types/model.js +3 -0
  22. package/dist/lib/types/model.js.map +1 -0
  23. package/dist/lib/types/services.d.ts +2 -0
  24. package/dist/lib/util/constants.d.ts +2 -0
  25. package/dist/lib/util/constants.js +6 -0
  26. package/dist/lib/util/constants.js.map +1 -0
  27. package/dist/migrations/20210428103922-patch-role-table.d.ts +2 -0
  28. package/dist/migrations/20210428103922-patch-role-table.js +19 -0
  29. package/dist/migrations/20210428103922-patch-role-table.js.map +1 -0
  30. package/dist/migrations/20210428103924-patch-admin-role-name.d.ts +2 -0
  31. package/dist/migrations/20210428103924-patch-admin-role-name.js +11 -0
  32. package/dist/migrations/20210428103924-patch-admin-role-name.js.map +1 -0
  33. package/dist/migrations/20210428103924-patch-admin_role.d.ts +2 -0
  34. package/dist/migrations/20210428103924-patch-admin_role.js +23 -0
  35. package/dist/migrations/20210428103924-patch-admin_role.js.map +1 -0
  36. package/dist/migrations/20210428103924-patch-role_permissions.d.ts +2 -0
  37. package/dist/migrations/20210428103924-patch-role_permissions.js +50 -0
  38. package/dist/migrations/20210428103924-patch-role_permissions.js.map +1 -0
  39. package/dist/test/e2e/services/user-service.e2e.test.js +12 -0
  40. package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
  41. package/dist/test/fixtures/fake-user-store.d.ts +1 -0
  42. package/dist/test/fixtures/fake-user-store.js +3 -0
  43. package/dist/test/fixtures/fake-user-store.js.map +1 -1
  44. package/docs/api/oas/favicon-16x16.png +0 -0
  45. package/docs/api/oas/favicon-32x32.png +0 -0
  46. package/docs/api/oas/index.html +43 -0
  47. package/docs/api/oas/oauth2-redirect.html +74 -0
  48. package/docs/api/oas/openapi.yaml +1685 -0
  49. package/docs/api/oas/swagger-ui-bundle.js +3 -0
  50. package/docs/api/oas/swagger-ui-bundle.js.map +1 -0
  51. package/docs/api/oas/swagger-ui-es-bundle-core.js +3 -0
  52. package/docs/api/oas/swagger-ui-es-bundle-core.js.map +1 -0
  53. package/docs/api/oas/swagger-ui-es-bundle.js +3 -0
  54. package/docs/api/oas/swagger-ui-es-bundle.js.map +1 -0
  55. package/docs/api/oas/swagger-ui-standalone-preset.js +3 -0
  56. package/docs/api/oas/swagger-ui-standalone-preset.js.map +1 -0
  57. package/docs/api/oas/swagger-ui.css +8906 -0
  58. package/docs/api/oas/swagger-ui.css.map +1 -0
  59. package/docs/api/oas/swagger-ui.js +3 -0
  60. package/docs/api/oas/swagger-ui.js.map +1 -0
  61. package/docs/api/oas/swagger.json +1479 -0
  62. package/package.json +7 -4
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+ exports.up = function (db, cb) {
3
+ db.runSql(`
4
+ DO $$
5
+ declare
6
+ begin
7
+ WITH editor AS (
8
+ SELECT * FROM roles WHERE name in ('Editor', 'Regular') LIMIT 1
9
+ )
10
+
11
+ INSERT INTO role_permission(role_id, project, permission)
12
+ VALUES
13
+ ((SELECT id from editor), '', 'CREATE_STRATEGY'),
14
+ ((SELECT id from editor), '', 'UPDATE_STRATEGY'),
15
+ ((SELECT id from editor), '', 'DELETE_STRATEGY'),
16
+
17
+ ((SELECT id from editor), '', 'UPDATE_APPLICATION'),
18
+
19
+ ((SELECT id from editor), '', 'CREATE_CONTEXT_FIELD'),
20
+ ((SELECT id from editor), '', 'UPDATE_CONTEXT_FIELD'),
21
+ ((SELECT id from editor), '', 'DELETE_CONTEXT_FIELD'),
22
+
23
+ ((SELECT id from editor), '', 'CREATE_PROJECT'),
24
+
25
+ ((SELECT id from editor), '', 'CREATE_ADDON'),
26
+ ((SELECT id from editor), '', 'UPDATE_ADDON'),
27
+ ((SELECT id from editor), '', 'DELETE_ADDON'),
28
+
29
+ ((SELECT id from editor), 'default', 'UPDATE_PROJECT'),
30
+ ((SELECT id from editor), 'default', 'DELETE_PROJECT'),
31
+ ((SELECT id from editor), 'default', 'CREATE_FEATURE'),
32
+ ((SELECT id from editor), 'default', 'UPDATE_FEATURE'),
33
+ ((SELECT id from editor), 'default', 'DELETE_FEATURE');
34
+
35
+ -- Clean up duplicates
36
+ DELETE FROM role_permission p1
37
+ USING role_permission p2
38
+ WHERE p1.created_at < p2.created_at -- select the "older" ones
39
+ AND p1.project = p2.project -- list columns that define duplicates
40
+ AND p1.permission = p2.permission;
41
+ EXCEPTION WHEN OTHERS THEN
42
+ raise notice 'Ignored';
43
+ end;
44
+ $$;`, cb);
45
+ };
46
+ exports.down = function (db, cb) {
47
+ // We can't just remove roles for users as we don't know if there has been any manual additions.
48
+ cb();
49
+ };
50
+ //# sourceMappingURL=20210428103924-patch-role_permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20210428103924-patch-role_permissions.js","sourceRoot":"","sources":["../../src/migrations/20210428103924-patch-role_permissions.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,CAAC,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE;IACzB,EAAE,CAAC,MAAM,CACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCI,EACJ,EAAE,CACL,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE;IAC3B,gGAAgG;IAChG,EAAE,EAAE,CAAC;AACT,CAAC,CAAC"}
@@ -47,6 +47,18 @@ test('should create initial admin user', async () => {
47
47
  await expect(async () => userService.loginUser('admin', 'wrong-password')).rejects.toThrow(Error);
48
48
  await expect(async () => userService.loginUser('admin', 'unleash4all')).toBeTruthy();
49
49
  });
50
+ test('should not init default user if we already have users', async () => {
51
+ await userService.createUser({
52
+ username: 'test',
53
+ password: 'A very strange P4ssw0rd_',
54
+ rootRole: adminRole.id,
55
+ });
56
+ await userService.initAdminUser();
57
+ const users = await userService.getAll();
58
+ expect(users).toHaveLength(1);
59
+ expect(users[0].username).toBe('test');
60
+ await expect(async () => userService.loginUser('admin', 'unleash4all')).rejects.toThrow(Error);
61
+ });
50
62
  test('should not be allowed to create existing user', async () => {
51
63
  await userStore.insert({ username: 'test', name: 'Hans Mola' });
52
64
  await expect(async () => userService.createUser({ username: 'test', rootRole: adminRole.id })).rejects.toThrow(Error);
@@ -1 +1 @@
1
- {"version":3,"file":"user-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/user-service.e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/user-service.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ declare class UserStoreMock extends UserStore {
5
5
  idSeq: number;
6
6
  constructor();
7
7
  hasUser({ id, username, email, }: IUserLookup): Promise<number | undefined>;
8
+ count(): Promise<number>;
8
9
  insert(user: User): Promise<User>;
9
10
  update(id: number, user: User): Promise<User>;
10
11
  get({ id, username, email }: IUserLookup): Promise<User>;
@@ -23,6 +23,9 @@ class UserStoreMock extends user_store_1.default {
23
23
  });
24
24
  return user;
25
25
  }
26
+ async count() {
27
+ return Promise.resolve(this.data.length);
28
+ }
26
29
  async insert(user) {
27
30
  // eslint-disable-next-line no-param-reassign
28
31
  user.id = this.idSeq;
@@ -1 +1 @@
1
- {"version":3,"file":"fake-user-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-user-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-user-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-user-store.ts"],"names":[],"mappings":";;;;;AAAA,yEAAiE;AAEjE,4DAA2C;AAE3C,MAAM,aAAc,SAAQ,oBAAS;IAKjC;QACI,KAAK,CAAC,SAAS,EAAE,mBAAgB,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACV,EAAE,EACF,QAAQ,EACR,KAAK,GACK;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;YACnC,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACrD,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC5C,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK;QACP,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAU;QACnB,6CAA6C;QAC7C,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAU;QAC/B,6CAA6C;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC1B,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,OAAO,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAe;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;YACrC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACvD,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC9C,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,EAAE;YACN,OAAO,IAAI,CAAC;SACf;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM;QACR,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,YAAoB;QACtD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC;QAC9B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAU;QAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,eAAe;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ;AAED,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC;AAE/B,kBAAe,aAAa,CAAC"}
Binary file
Binary file
@@ -0,0 +1,43 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>ReDoc</title>
5
+ <!-- needed for adaptive design -->
6
+ <meta charset="utf-8"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
9
+
10
+ <!--
11
+ ReDoc doesn't change outer page styles
12
+ -->
13
+ <style>
14
+ body {
15
+ margin: 0;
16
+ padding: 0;
17
+ }
18
+ </style>
19
+ </head>
20
+ <body>
21
+
22
+ <!-- ### DEFAULT REDOC - NO 'TRY' FEATURE -->
23
+ <!-- <redoc spec-url='openapi.yaml'></redoc> -->
24
+ <!-- <script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script> -->
25
+ <!-- ### REDOC WITH SWAGGER UI'S 'TRY' FEATURE WITHIN REDOC -->
26
+ <!-- From https://github.com/wll8/redoc-try -->
27
+ <div id="redoc-container"></div>
28
+ <script src="//cdn.jsdelivr.net/npm/redoc@2.0.0-rc.28/bundles/redoc.standalone.min.js"> </script>
29
+ <script src="//cdn.jsdelivr.net/gh/wll8/redoc-try/dist/try.js"></script>
30
+ <script>
31
+ var unleashRedoc = {
32
+ openApi: `openapi.yaml`,
33
+ onlySwagger: false, // Set to true to switch to Swagger UI output
34
+ tryText: `Try it out`, // Try button text
35
+ trySwaggerInApi: false, // Do not display Swagger debugging window under API
36
+ redocOptions: {hideDownloadButton: true, noAutoAuth: true, sortPropsAlphabetically: true, theme: {spacing: {sectionVertical: '5px',}},},
37
+ swaggerOptions: {dom_id: `#swagger-ui`},
38
+ }
39
+ initTry(unleashRedoc);
40
+ </script>
41
+
42
+ </body>
43
+ </html>
@@ -0,0 +1,74 @@
1
+ <!doctype html>
2
+ <html lang="en-US">
3
+ <head>
4
+ <title>Swagger UI: OAuth2 Redirect</title>
5
+ </head>
6
+ <body>
7
+ </body>
8
+ </html>
9
+ <script>
10
+ 'use strict';
11
+ function run () {
12
+ var oauth2 = window.opener.swaggerUIRedirectOauth2;
13
+ var sentState = oauth2.state;
14
+ var redirectUrl = oauth2.redirectUrl;
15
+ var isValid, qp, arr;
16
+
17
+ if (/code|token|error/.test(window.location.hash)) {
18
+ qp = window.location.hash.substring(1);
19
+ } else {
20
+ qp = location.search.substring(1);
21
+ }
22
+
23
+ arr = qp.split("&")
24
+ arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';})
25
+ qp = qp ? JSON.parse('{' + arr.join() + '}',
26
+ function (key, value) {
27
+ return key === "" ? value : decodeURIComponent(value)
28
+ }
29
+ ) : {}
30
+
31
+ isValid = qp.state === sentState
32
+
33
+ if ((
34
+ oauth2.auth.schema.get("flow") === "accessCode"||
35
+ oauth2.auth.schema.get("flow") === "authorizationCode"
36
+ ) && !oauth2.auth.code) {
37
+ if (!isValid) {
38
+ oauth2.errCb({
39
+ authId: oauth2.auth.name,
40
+ source: "auth",
41
+ level: "warning",
42
+ message: "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"
43
+ });
44
+ }
45
+
46
+ if (qp.code) {
47
+ delete oauth2.state;
48
+ oauth2.auth.code = qp.code;
49
+ oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
50
+ } else {
51
+ let oauthErrorMsg
52
+ if (qp.error) {
53
+ oauthErrorMsg = "["+qp.error+"]: " +
54
+ (qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
55
+ (qp.error_uri ? "More info: "+qp.error_uri : "");
56
+ }
57
+
58
+ oauth2.errCb({
59
+ authId: oauth2.auth.name,
60
+ source: "auth",
61
+ level: "error",
62
+ message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server"
63
+ });
64
+ }
65
+ } else {
66
+ oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
67
+ }
68
+ window.close();
69
+ }
70
+
71
+ window.addEventListener('DOMContentLoaded', function () {
72
+ run();
73
+ });
74
+ </script>