unleash-server 4.18.0-beta.12 → 4.18.0-beta.13

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 (147) hide show
  1. package/dist/lib/db/api-token-store.js +2 -1
  2. package/dist/lib/db/api-token-store.js.map +1 -1
  3. package/dist/lib/db/favorite-features-store.d.ts +20 -0
  4. package/dist/lib/db/favorite-features-store.js +56 -0
  5. package/dist/lib/db/favorite-features-store.js.map +1 -0
  6. package/dist/lib/db/favorite-projects-store.d.ts +19 -0
  7. package/dist/lib/db/favorite-projects-store.js +56 -0
  8. package/dist/lib/db/favorite-projects-store.js.map +1 -0
  9. package/dist/lib/db/feature-strategy-store.d.ts +11 -4
  10. package/dist/lib/db/feature-strategy-store.js +45 -15
  11. package/dist/lib/db/feature-strategy-store.js.map +1 -1
  12. package/dist/lib/db/feature-toggle-client-store.d.ts +13 -1
  13. package/dist/lib/db/feature-toggle-client-store.js +29 -14
  14. package/dist/lib/db/feature-toggle-client-store.js.map +1 -1
  15. package/dist/lib/db/index.js +5 -1
  16. package/dist/lib/db/index.js.map +1 -1
  17. package/dist/lib/db/project-store.d.ts +4 -2
  18. package/dist/lib/db/project-store.js +21 -5
  19. package/dist/lib/db/project-store.js.map +1 -1
  20. package/dist/lib/db/user-store.d.ts +1 -0
  21. package/dist/lib/db/user-store.js +11 -0
  22. package/dist/lib/db/user-store.js.map +1 -1
  23. package/dist/lib/middleware/pat-middleware.js +1 -0
  24. package/dist/lib/middleware/pat-middleware.js.map +1 -1
  25. package/dist/lib/openapi/index.d.ts +33 -0
  26. package/dist/lib/openapi/spec/feature-schema.d.ts +3 -0
  27. package/dist/lib/openapi/spec/feature-schema.js +3 -0
  28. package/dist/lib/openapi/spec/feature-schema.js.map +1 -1
  29. package/dist/lib/openapi/spec/features-schema.d.ts +3 -0
  30. package/dist/lib/openapi/spec/health-overview-schema.d.ts +6 -0
  31. package/dist/lib/openapi/spec/health-overview-schema.js +3 -0
  32. package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
  33. package/dist/lib/openapi/spec/health-report-schema.d.ts +6 -0
  34. package/dist/lib/openapi/spec/profile-schema.d.ts +3 -0
  35. package/dist/lib/openapi/spec/project-schema.d.ts +3 -0
  36. package/dist/lib/openapi/spec/project-schema.js +3 -0
  37. package/dist/lib/openapi/spec/project-schema.js.map +1 -1
  38. package/dist/lib/openapi/spec/projects-schema.d.ts +3 -0
  39. package/dist/lib/openapi/spec/state-schema.d.ts +6 -0
  40. package/dist/lib/routes/admin-api/favorites.d.ts +22 -0
  41. package/dist/lib/routes/admin-api/favorites.js +106 -0
  42. package/dist/lib/routes/admin-api/favorites.js.map +1 -0
  43. package/dist/lib/routes/admin-api/feature.d.ts +6 -1
  44. package/dist/lib/routes/admin-api/feature.js +7 -3
  45. package/dist/lib/routes/admin-api/feature.js.map +1 -1
  46. package/dist/lib/routes/admin-api/index.js +2 -0
  47. package/dist/lib/routes/admin-api/index.js.map +1 -1
  48. package/dist/lib/routes/admin-api/project/features.d.ts +6 -2
  49. package/dist/lib/routes/admin-api/project/features.js +13 -2
  50. package/dist/lib/routes/admin-api/project/features.js.map +1 -1
  51. package/dist/lib/routes/admin-api/project/health-report.d.ts +2 -1
  52. package/dist/lib/routes/admin-api/project/health-report.js +2 -1
  53. package/dist/lib/routes/admin-api/project/health-report.js.map +1 -1
  54. package/dist/lib/routes/admin-api/project/index.d.ts +3 -2
  55. package/dist/lib/routes/admin-api/project/index.js +2 -1
  56. package/dist/lib/routes/admin-api/project/index.js.map +1 -1
  57. package/dist/lib/services/api-token-service.d.ts +5 -1
  58. package/dist/lib/services/api-token-service.js +18 -0
  59. package/dist/lib/services/api-token-service.js.map +1 -1
  60. package/dist/lib/services/favorites-service.d.ts +26 -0
  61. package/dist/lib/services/favorites-service.js +78 -0
  62. package/dist/lib/services/favorites-service.js.map +1 -0
  63. package/dist/lib/services/feature-toggle-service.d.ts +12 -6
  64. package/dist/lib/services/feature-toggle-service.js +15 -13
  65. package/dist/lib/services/feature-toggle-service.js.map +1 -1
  66. package/dist/lib/services/index.d.ts +2 -1
  67. package/dist/lib/services/index.js +6 -2
  68. package/dist/lib/services/index.js.map +1 -1
  69. package/dist/lib/services/project-health-service.d.ts +4 -2
  70. package/dist/lib/services/project-health-service.js +13 -4
  71. package/dist/lib/services/project-health-service.js.map +1 -1
  72. package/dist/lib/services/project-service.d.ts +1 -1
  73. package/dist/lib/services/project-service.js +6 -3
  74. package/dist/lib/services/project-service.js.map +1 -1
  75. package/dist/lib/services/user-service.d.ts +7 -1
  76. package/dist/lib/services/user-service.js +24 -1
  77. package/dist/lib/services/user-service.js.map +1 -1
  78. package/dist/lib/types/events.d.ts +4 -0
  79. package/dist/lib/types/events.js +6 -2
  80. package/dist/lib/types/events.js.map +1 -1
  81. package/dist/lib/types/experimental.d.ts +2 -0
  82. package/dist/lib/types/experimental.js +3 -2
  83. package/dist/lib/types/experimental.js.map +1 -1
  84. package/dist/lib/types/favorites.d.ts +6 -0
  85. package/dist/lib/types/favorites.js +3 -0
  86. package/dist/lib/types/favorites.js.map +1 -0
  87. package/dist/lib/types/model.d.ts +3 -0
  88. package/dist/lib/types/model.js.map +1 -1
  89. package/dist/lib/types/services.d.ts +2 -0
  90. package/dist/lib/types/stores/favorite-features.d.ts +9 -0
  91. package/dist/lib/types/stores/favorite-features.js +3 -0
  92. package/dist/lib/types/stores/favorite-features.js.map +1 -0
  93. package/dist/lib/types/stores/favorite-projects.d.ts +9 -0
  94. package/dist/lib/types/stores/favorite-projects.js +3 -0
  95. package/dist/lib/types/stores/favorite-projects.js.map +1 -0
  96. package/dist/lib/types/stores/feature-strategies-store.d.ts +4 -3
  97. package/dist/lib/types/stores/feature-toggle-client-store.d.ts +2 -1
  98. package/dist/lib/types/stores/project-store.d.ts +1 -1
  99. package/dist/lib/types/stores/user-store.d.ts +1 -0
  100. package/dist/lib/types/stores.d.ts +5 -1
  101. package/dist/migrations/20221124123914-add-favorites.d.ts +2 -0
  102. package/dist/migrations/20221124123914-add-favorites.js +27 -0
  103. package/dist/migrations/20221124123914-add-favorites.js.map +1 -0
  104. package/dist/server-dev.js +1 -0
  105. package/dist/server-dev.js.map +1 -1
  106. package/dist/test/config/test-config.js +1 -0
  107. package/dist/test/config/test-config.js.map +1 -1
  108. package/dist/test/e2e/api/admin/favorites.e2e.test.d.ts +1 -0
  109. package/dist/test/e2e/api/admin/favorites.e2e.test.js +186 -0
  110. package/dist/test/e2e/api/admin/favorites.e2e.test.js.map +1 -0
  111. package/dist/test/e2e/api/admin/state.e2e.test.js +3 -1
  112. package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
  113. package/dist/test/e2e/custom-auth.test.js +12 -1
  114. package/dist/test/e2e/custom-auth.test.js.map +1 -1
  115. package/dist/test/e2e/services/environment-service.test.js +9 -3
  116. package/dist/test/e2e/services/environment-service.test.js.map +1 -1
  117. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +10 -4
  118. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
  119. package/dist/test/e2e/services/project-health-service.e2e.test.js +4 -1
  120. package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
  121. package/dist/test/e2e/services/project-service.e2e.test.js +3 -1
  122. package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
  123. package/dist/test/fixtures/fake-favorite-features-store.d.ts +12 -0
  124. package/dist/test/fixtures/fake-favorite-features-store.js +26 -0
  125. package/dist/test/fixtures/fake-favorite-features-store.js.map +1 -0
  126. package/dist/test/fixtures/fake-favorite-projects-store.d.ts +12 -0
  127. package/dist/test/fixtures/fake-favorite-projects-store.js +26 -0
  128. package/dist/test/fixtures/fake-favorite-projects-store.js.map +1 -0
  129. package/dist/test/fixtures/fake-feature-strategies-store.d.ts +4 -3
  130. package/dist/test/fixtures/fake-feature-strategies-store.js +8 -10
  131. package/dist/test/fixtures/fake-feature-strategies-store.js.map +1 -1
  132. package/dist/test/fixtures/fake-feature-toggle-client-store.d.ts +2 -1
  133. package/dist/test/fixtures/fake-feature-toggle-client-store.js +1 -1
  134. package/dist/test/fixtures/fake-feature-toggle-client-store.js.map +1 -1
  135. package/dist/test/fixtures/fake-user-store.d.ts +1 -0
  136. package/dist/test/fixtures/fake-user-store.js +4 -0
  137. package/dist/test/fixtures/fake-user-store.js.map +1 -1
  138. package/dist/test/fixtures/store.js +4 -0
  139. package/dist/test/fixtures/store.js.map +1 -1
  140. package/frontend/build/index.html +1 -1
  141. package/frontend/build/static/{FeatureMetricsChart.66acbc72.js → FeatureMetricsChart.df457773.js} +1 -1
  142. package/frontend/build/static/{Playground.b15186be.js → Playground.18fdfcf1.js} +1 -1
  143. package/frontend/build/static/changeRequestProcess.86920003.svg +48 -0
  144. package/frontend/build/static/index.99ae90b2.js +435 -0
  145. package/package.json +1 -1
  146. package/frontend/build/static/changeRequestProcess.0da12075.svg +0 -90
  147. package/frontend/build/static/index.99ace7d7.js +0 -435
@@ -25,6 +25,7 @@ const tokenRowReducer = (acc, tokenRow) => {
25
25
  expiresAt: token.expires_at,
26
26
  createdAt: token.created_at,
27
27
  alias: token.alias,
28
+ seenAt: token.seen_at,
28
29
  };
29
30
  }
30
31
  const currentToken = acc[tokenRow.secret];
@@ -132,7 +133,7 @@ class ApiTokenStore {
132
133
  const now = new Date();
133
134
  try {
134
135
  await this.db(TABLE)
135
- .whereIn('secrets', secrets)
136
+ .whereIn('secret', secrets)
136
137
  .update({ seen_at: now });
137
138
  }
138
139
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"api-token-store.js","sourceRoot":"","sources":["../../../src/lib/db/api-token-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-token-store.js","sourceRoot":"","sources":["../../../src/lib/db/api-token-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" />
2
+ import EventEmitter from 'events';
3
+ import { IFavoriteFeaturesStore } from '../types';
4
+ import { LogProvider } from '../logger';
5
+ import { Knex } from 'knex';
6
+ import { IFavoriteFeatureKey } from '../types/stores/favorite-features';
7
+ import { IFavoriteFeature } from '../types/favorites';
8
+ export declare class FavoriteFeaturesStore implements IFavoriteFeaturesStore {
9
+ private logger;
10
+ private eventBus;
11
+ private db;
12
+ constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider);
13
+ addFavoriteFeature({ userId, feature, }: IFavoriteFeatureKey): Promise<IFavoriteFeature>;
14
+ delete({ userId, feature }: IFavoriteFeatureKey): Promise<void>;
15
+ deleteAll(): Promise<void>;
16
+ destroy(): void;
17
+ exists({ userId, feature }: IFavoriteFeatureKey): Promise<boolean>;
18
+ get({ userId, feature, }: IFavoriteFeatureKey): Promise<IFavoriteFeature>;
19
+ getAll(): Promise<IFavoriteFeature[]>;
20
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FavoriteFeaturesStore = void 0;
4
+ const T = {
5
+ FAVORITE_FEATURES: 'favorite_features',
6
+ };
7
+ const rowToFavorite = (row) => {
8
+ return {
9
+ userId: row.user_id,
10
+ feature: row.feature,
11
+ createdAt: row.created_at,
12
+ };
13
+ };
14
+ class FavoriteFeaturesStore {
15
+ constructor(db, eventBus, getLogger) {
16
+ this.db = db;
17
+ this.eventBus = eventBus;
18
+ this.logger = getLogger('lib/db/favorites-store.ts');
19
+ }
20
+ async addFavoriteFeature({ userId, feature, }) {
21
+ const insertedFeature = await this.db(T.FAVORITE_FEATURES)
22
+ .insert({ feature, user_id: userId })
23
+ .onConflict(['user_id', 'feature'])
24
+ .merge()
25
+ .returning('*');
26
+ return rowToFavorite(insertedFeature[0]);
27
+ }
28
+ async delete({ userId, feature }) {
29
+ return this.db(T.FAVORITE_FEATURES)
30
+ .where({ feature, user_id: userId })
31
+ .del();
32
+ }
33
+ async deleteAll() {
34
+ await this.db(T.FAVORITE_FEATURES).del();
35
+ }
36
+ destroy() { }
37
+ async exists({ userId, feature }) {
38
+ const result = await this.db.raw(`SELECT EXISTS (SELECT 1 FROM ${T.FAVORITE_FEATURES} WHERE user_id = ? AND feature = ?) AS present`, [userId, feature]);
39
+ const { present } = result.rows[0];
40
+ return present;
41
+ }
42
+ async get({ userId, feature, }) {
43
+ const favorite = await this.db
44
+ .table(T.FAVORITE_FEATURES)
45
+ .select()
46
+ .where({ feature, user_id: userId })
47
+ .first();
48
+ return rowToFavorite(favorite);
49
+ }
50
+ async getAll() {
51
+ const groups = await this.db(T.FAVORITE_FEATURES).select();
52
+ return groups.map(rowToFavorite);
53
+ }
54
+ }
55
+ exports.FavoriteFeaturesStore = FavoriteFeaturesStore;
56
+ //# sourceMappingURL=favorite-features-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favorite-features-store.js","sourceRoot":"","sources":["../../../src/lib/db/favorite-features-store.ts"],"names":[],"mappings":";;;AAOA,MAAM,CAAC,GAAG;IACN,iBAAiB,EAAE,mBAAmB;CACzC,CAAC;AAQF,MAAM,aAAa,GAAG,CAAC,GAAwB,EAAE,EAAE;IAC/C,OAAO;QACH,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC5B,CAAC;AACN,CAAC,CAAC;AAEF,MAAa,qBAAqB;IAO9B,YAAY,EAAQ,EAAE,QAAsB,EAAE,SAAsB;QAChE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EACrB,MAAM,EACN,OAAO,GACW;QAClB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,EAAE,CACjC,CAAC,CAAC,iBAAiB,CACtB;aACI,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACpC,UAAU,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aAClC,KAAK,EAAE;aACP,SAAS,CAAC,GAAG,CAAC,CAAC;QAEpB,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAuB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;aAC9B,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACnC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS;QACX,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAuB;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B,gCAAgC,CAAC,CAAC,iBAAiB,gDAAgD,EACnG,CAAC,MAAM,EAAE,OAAO,CAAC,CACpB,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EACN,MAAM,EACN,OAAO,GACW;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE;aACzB,KAAK,CAAsB,CAAC,CAAC,iBAAiB,CAAC;aAC/C,MAAM,EAAE;aACR,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACnC,KAAK,EAAE,CAAC;QAEb,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CACxB,CAAC,CAAC,iBAAiB,CACtB,CAAC,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;CACJ;AApED,sDAoEC"}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import EventEmitter from 'events';
3
+ import { LogProvider } from '../logger';
4
+ import { Knex } from 'knex';
5
+ import { IFavoriteProject } from '../types/favorites';
6
+ import { IFavoriteProjectKey, IFavoriteProjectsStore } from '../types/stores/favorite-projects';
7
+ export declare class FavoriteProjectsStore implements IFavoriteProjectsStore {
8
+ private logger;
9
+ private eventBus;
10
+ private db;
11
+ constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider);
12
+ addFavoriteProject({ userId, project, }: IFavoriteProjectKey): Promise<IFavoriteProject>;
13
+ delete({ userId, project }: IFavoriteProjectKey): Promise<void>;
14
+ deleteAll(): Promise<void>;
15
+ destroy(): void;
16
+ exists({ userId, project }: IFavoriteProjectKey): Promise<boolean>;
17
+ get({ userId, project, }: IFavoriteProjectKey): Promise<IFavoriteProject>;
18
+ getAll(): Promise<IFavoriteProject[]>;
19
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FavoriteProjectsStore = void 0;
4
+ const T = {
5
+ FAVORITE_PROJECTS: 'favorite_projects',
6
+ };
7
+ const rowToFavorite = (row) => {
8
+ return {
9
+ userId: row.user_id,
10
+ project: row.project,
11
+ createdAt: row.created_at,
12
+ };
13
+ };
14
+ class FavoriteProjectsStore {
15
+ constructor(db, eventBus, getLogger) {
16
+ this.db = db;
17
+ this.eventBus = eventBus;
18
+ this.logger = getLogger('lib/db/favorites-store.ts');
19
+ }
20
+ async addFavoriteProject({ userId, project, }) {
21
+ const insertedProject = await this.db(T.FAVORITE_PROJECTS)
22
+ .insert({ project, user_id: userId })
23
+ .onConflict(['user_id', 'project'])
24
+ .merge()
25
+ .returning('*');
26
+ return rowToFavorite(insertedProject[0]);
27
+ }
28
+ async delete({ userId, project }) {
29
+ return this.db(T.FAVORITE_PROJECTS)
30
+ .where({ project, user_id: userId })
31
+ .del();
32
+ }
33
+ async deleteAll() {
34
+ await this.db(T.FAVORITE_PROJECTS).del();
35
+ }
36
+ destroy() { }
37
+ async exists({ userId, project }) {
38
+ const result = await this.db.raw(`SELECT EXISTS(SELECT 1 FROM ${T.FAVORITE_PROJECTS} WHERE user_id = ? AND project = ?) AS present`, [userId, project]);
39
+ const { present } = result.rows[0];
40
+ return present;
41
+ }
42
+ async get({ userId, project, }) {
43
+ const favorite = await this.db
44
+ .table(T.FAVORITE_PROJECTS)
45
+ .select()
46
+ .where({ project, user_id: userId })
47
+ .first();
48
+ return rowToFavorite(favorite);
49
+ }
50
+ async getAll() {
51
+ const groups = await this.db(T.FAVORITE_PROJECTS).select();
52
+ return groups.map(rowToFavorite);
53
+ }
54
+ }
55
+ exports.FavoriteProjectsStore = FavoriteProjectsStore;
56
+ //# sourceMappingURL=favorite-projects-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favorite-projects-store.js","sourceRoot":"","sources":["../../../src/lib/db/favorite-projects-store.ts"],"names":[],"mappings":";;;AASA,MAAM,CAAC,GAAG;IACN,iBAAiB,EAAE,mBAAmB;CACzC,CAAC;AAQF,MAAM,aAAa,GAAG,CAAC,GAAwB,EAAE,EAAE;IAC/C,OAAO;QACH,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC5B,CAAC;AACN,CAAC,CAAC;AAEF,MAAa,qBAAqB;IAO9B,YAAY,EAAQ,EAAE,QAAsB,EAAE,SAAsB;QAChE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EACrB,MAAM,EACN,OAAO,GACW;QAClB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,EAAE,CACjC,CAAC,CAAC,iBAAiB,CACtB;aACI,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACpC,UAAU,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aAClC,KAAK,EAAE;aACP,SAAS,CAAC,GAAG,CAAC,CAAC;QAEpB,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAuB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;aAC9B,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACnC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS;QACX,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,KAAU,CAAC;IAElB,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAuB;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B,+BAA+B,CAAC,CAAC,iBAAiB,gDAAgD,EAClG,CAAC,MAAM,EAAE,OAAO,CAAC,CACpB,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EACN,MAAM,EACN,OAAO,GACW;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE;aACzB,KAAK,CAAsB,CAAC,CAAC,iBAAiB,CAAC;aAC/C,MAAM,EAAE;aACR,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACnC,KAAK,EAAE,CAAC;QAEb,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CACxB,CAAC,CAAC,iBAAiB,CACtB,CAAC,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;CACJ;AApED,sDAoEC"}
@@ -6,6 +6,13 @@ import { FeatureToggleWithEnvironment, IFeatureOverview, IFeatureStrategy } from
6
6
  import { IFeatureStrategiesStore } from '../types/stores/feature-strategies-store';
7
7
  import { PartialSome } from '../types/partial';
8
8
  import { IFlagResolver } from '../types/experimental';
9
+ import { IFeatureProjectUserParams } from '../routes/admin-api/project/features';
10
+ export interface ILoadFeatureToggleWithEnvsParams {
11
+ featureName: string;
12
+ archived: boolean;
13
+ withEnvironmentVariants: boolean;
14
+ userId?: number;
15
+ }
9
16
  declare class FeatureStrategiesStore implements IFeatureStrategiesStore {
10
17
  private db;
11
18
  private logger;
@@ -21,15 +28,15 @@ declare class FeatureStrategiesStore implements IFeatureStrategiesStore {
21
28
  removeAllStrategiesForFeatureEnv(featureName: string, environment: string): Promise<void>;
22
29
  getAll(): Promise<IFeatureStrategy[]>;
23
30
  getStrategiesForFeatureEnv(projectId: string, featureName: string, environment: string): Promise<IFeatureStrategy[]>;
24
- getFeatureToggleWithEnvs(featureName: string, archived?: boolean): Promise<FeatureToggleWithEnvironment>;
25
- getFeatureToggleWithVariantEnvs(featureName: string, archived?: boolean): Promise<FeatureToggleWithEnvironment>;
26
- loadFeatureToggleWithEnvs(featureName: string, archived: boolean, withEnvironmentVariants: boolean): Promise<FeatureToggleWithEnvironment>;
31
+ getFeatureToggleWithEnvs(featureName: string, userId?: number, archived?: boolean): Promise<FeatureToggleWithEnvironment>;
32
+ getFeatureToggleWithVariantEnvs(featureName: string, userId?: number, archived?: boolean): Promise<FeatureToggleWithEnvironment>;
33
+ loadFeatureToggleWithEnvs({ featureName, archived, withEnvironmentVariants, userId, }: ILoadFeatureToggleWithEnvsParams): Promise<FeatureToggleWithEnvironment>;
27
34
  private addSegmentIdsToStrategy;
28
35
  private static getEnvironment;
29
36
  private addTag;
30
37
  private isNewTag;
31
38
  private static rowToTag;
32
- getFeatureOverview(projectId: string, archived?: boolean): Promise<IFeatureOverview[]>;
39
+ getFeatureOverview({ projectId, archived, userId, }: IFeatureProjectUserParams): Promise<IFeatureOverview[]>;
33
40
  getStrategyById(id: string): Promise<IFeatureStrategy>;
34
41
  updateSortOrder(id: string, sortOrder: number): Promise<void>;
35
42
  updateStrategy(id: string, updates: Partial<IFeatureStrategy>): Promise<IFeatureStrategy>;
@@ -136,17 +136,38 @@ class FeatureStrategiesStore {
136
136
  stopTimer();
137
137
  return rows.map(mapRow);
138
138
  }
139
- async getFeatureToggleWithEnvs(featureName, archived = false) {
140
- return this.loadFeatureToggleWithEnvs(featureName, archived, false);
139
+ async getFeatureToggleWithEnvs(featureName, userId, archived = false) {
140
+ return this.loadFeatureToggleWithEnvs({
141
+ featureName,
142
+ archived,
143
+ withEnvironmentVariants: false,
144
+ userId,
145
+ });
141
146
  }
142
- async getFeatureToggleWithVariantEnvs(featureName, archived = false) {
143
- return this.loadFeatureToggleWithEnvs(featureName, archived, true);
147
+ async getFeatureToggleWithVariantEnvs(featureName, userId, archived = false) {
148
+ return this.loadFeatureToggleWithEnvs({
149
+ featureName,
150
+ archived,
151
+ withEnvironmentVariants: true,
152
+ userId,
153
+ });
144
154
  }
145
- async loadFeatureToggleWithEnvs(featureName, archived, withEnvironmentVariants) {
155
+ async loadFeatureToggleWithEnvs({ featureName, archived, withEnvironmentVariants, userId, }) {
146
156
  const stopTimer = this.timer('getFeatureAdmin');
147
- const rows = await this.db('features_view')
157
+ let query = this.db('features_view')
148
158
  .where('name', featureName)
149
159
  .modify(feature_toggle_store_1.default.filterByArchived, archived);
160
+ let selectColumns = ['features_view.*'];
161
+ if (userId && this.flagResolver.isEnabled('favorites')) {
162
+ query = query.leftJoin(`favorite_features`, function () {
163
+ this.on('favorite_features.feature', 'features_view.name').andOnVal('favorite_features.user_id', '=', userId);
164
+ });
165
+ selectColumns = [
166
+ ...selectColumns,
167
+ this.db.raw('favorite_features.feature is not null as favorite'),
168
+ ];
169
+ }
170
+ const rows = await query.select(selectColumns);
150
171
  stopTimer();
151
172
  if (rows.length > 0) {
152
173
  const featureToggle = rows.reduce((acc, r) => {
@@ -154,6 +175,7 @@ class FeatureStrategiesStore {
154
175
  acc.environments = {};
155
176
  }
156
177
  acc.name = r.name;
178
+ acc.favorite = r.favorite;
157
179
  acc.impressionData = r.impression_data;
158
180
  acc.description = r.description;
159
181
  acc.project = r.project;
@@ -238,7 +260,12 @@ class FeatureStrategiesStore {
238
260
  type: r.tag_type,
239
261
  };
240
262
  }
241
- async getFeatureOverview(projectId, archived = false) {
263
+ async getFeatureOverview({ projectId, archived, userId, }) {
264
+ let query = this.db('features')
265
+ .where({ project: projectId })
266
+ .modify(feature_toggle_store_1.default.filterByArchived, archived)
267
+ .leftJoin('feature_environments', 'feature_environments.feature_name', 'features.name')
268
+ .leftJoin('environments', 'feature_environments.environment', 'environments.name');
242
269
  let selectColumns = [
243
270
  'features.name as feature_name',
244
271
  'features.type as type',
@@ -251,21 +278,23 @@ class FeatureStrategiesStore {
251
278
  'environments.sort_order as environment_sort_order',
252
279
  ];
253
280
  if (this.flagResolver.isEnabled('toggleTagFiltering')) {
281
+ query = query.leftJoin('feature_tag as ft', 'ft.feature_name', 'features.name');
254
282
  selectColumns = [
255
283
  ...selectColumns,
256
284
  'ft.tag_value as tag_value',
257
285
  'ft.tag_type as tag_type',
258
286
  ];
259
287
  }
260
- let query = this.db('features')
261
- .where({ project: projectId })
262
- .select(selectColumns)
263
- .modify(feature_toggle_store_1.default.filterByArchived, archived)
264
- .leftJoin('feature_environments', 'feature_environments.feature_name', 'features.name')
265
- .leftJoin('environments', 'feature_environments.environment', 'environments.name');
266
- if (this.flagResolver.isEnabled('toggleTagFiltering')) {
267
- query = query.leftJoin('feature_tag as ft', 'ft.feature_name', 'features.name');
288
+ if (userId && this.flagResolver.isEnabled('favorites')) {
289
+ query = query.leftJoin(`favorite_features`, function () {
290
+ this.on('favorite_features.feature', 'features.name').andOnVal('favorite_features.user_id', '=', userId);
291
+ });
292
+ selectColumns = [
293
+ ...selectColumns,
294
+ this.db.raw('favorite_features.feature is not null as favorite'),
295
+ ];
268
296
  }
297
+ query = query.select(selectColumns);
269
298
  const rows = await query;
270
299
  if (rows.length > 0) {
271
300
  const overview = rows.reduce((acc, r) => {
@@ -278,6 +307,7 @@ class FeatureStrategiesStore {
278
307
  else {
279
308
  acc[r.feature_name] = {
280
309
  type: r.type,
310
+ favorite: r.favorite,
281
311
  name: r.feature_name,
282
312
  createdAt: r.created_at,
283
313
  lastSeenAt: r.last_seen_at,
@@ -1 +1 @@
1
- {"version":3,"file":"feature-strategy-store.js","sourceRoot":"","sources":["../../../src/lib/db/feature-strategy-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-strategy-store.js","sourceRoot":"","sources":["../../../src/lib/db/feature-strategy-store.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,18 @@ export interface FeaturesTable {
15
15
  last_seen_at?: Date;
16
16
  created_at?: Date;
17
17
  }
18
+ export interface IGetAllFeatures {
19
+ featureQuery?: IFeatureToggleQuery;
20
+ archived: boolean;
21
+ isAdmin: boolean;
22
+ includeStrategyIds?: boolean;
23
+ userId?: number;
24
+ }
25
+ export interface IGetAdminFeatures {
26
+ featureQuery?: IFeatureToggleQuery;
27
+ archived?: boolean;
28
+ userId?: number;
29
+ }
18
30
  export default class FeatureToggleClientStore implements IFeatureToggleClientStore {
19
31
  private db;
20
32
  private logger;
@@ -32,5 +44,5 @@ export default class FeatureToggleClientStore implements IFeatureToggleClientSto
32
44
  private addSegmentToStrategy;
33
45
  private addSegmentIdsToStrategy;
34
46
  getClient(featureQuery?: IFeatureToggleQuery, includeStrategyIds?: boolean): Promise<IFeatureToggleClient[]>;
35
- getAdmin(featureQuery?: IFeatureToggleQuery, archived?: boolean): Promise<IFeatureToggleClient[]>;
47
+ getAdmin({ featureQuery, userId, archived, }: IGetAdminFeatures): Promise<IFeatureToggleClient[]>;
36
48
  }
@@ -20,7 +20,7 @@ class FeatureToggleClientStore {
20
20
  });
21
21
  this.flagResolver = flagResolver;
22
22
  }
23
- async getAll(featureQuery, archived = false, isAdmin = true, includeStrategyIds) {
23
+ async getAll({ featureQuery, archived, isAdmin, includeStrategyIds, userId, }) {
24
24
  const environment = featureQuery?.environment || constants_1.DEFAULT_ENV;
25
25
  const stopTimer = this.timer('getFeatureAdmin');
26
26
  let selectColumns = [
@@ -42,15 +42,7 @@ class FeatureToggleClientStore {
42
42
  'segments.id as segment_id',
43
43
  'segments.constraints as segment_constraints',
44
44
  ];
45
- if (isAdmin && this.flagResolver.isEnabled('toggleTagFiltering')) {
46
- selectColumns = [
47
- ...selectColumns,
48
- 'ft.tag_value as tag_value',
49
- 'ft.tag_type as tag_type',
50
- ];
51
- }
52
45
  let query = this.db('features')
53
- .select(selectColumns)
54
46
  .modify(feature_toggle_store_1.default.filterByArchived, archived)
55
47
  .leftJoin(this.db('feature_strategies')
56
48
  .select('*')
@@ -62,9 +54,26 @@ class FeatureToggleClientStore {
62
54
  .as('fe'), 'fe.feature_name', 'features.name')
63
55
  .leftJoin('feature_strategy_segment as fss', `fss.feature_strategy_id`, `fs.id`)
64
56
  .leftJoin('segments', `segments.id`, `fss.segment_id`);
65
- if (isAdmin && this.flagResolver.isEnabled('toggleTagFiltering')) {
66
- query = query.leftJoin('feature_tag as ft', 'ft.feature_name', 'features.name');
57
+ if (isAdmin) {
58
+ if (this.flagResolver.isEnabled('toggleTagFiltering')) {
59
+ query = query.leftJoin('feature_tag as ft', 'ft.feature_name', 'features.name');
60
+ selectColumns = [
61
+ ...selectColumns,
62
+ 'ft.tag_value as tag_value',
63
+ 'ft.tag_type as tag_type',
64
+ ];
65
+ }
66
+ if (userId && this.flagResolver.isEnabled('favorites')) {
67
+ query = query.leftJoin(`favorite_features`, function () {
68
+ this.on('favorite_features.feature', 'features.name').andOnVal('favorite_features.user_id', '=', userId);
69
+ });
70
+ selectColumns = [
71
+ ...selectColumns,
72
+ this.db.raw('favorite_features.feature is not null as favorite'),
73
+ ];
74
+ }
67
75
  }
76
+ query = query.select(selectColumns);
68
77
  if (featureQuery) {
69
78
  if (featureQuery.tag) {
70
79
  const tagQuery = this.db
@@ -102,6 +111,7 @@ class FeatureToggleClientStore {
102
111
  feature.impressionData = r.impression_data;
103
112
  feature.enabled = !!r.enabled;
104
113
  feature.name = r.name;
114
+ feature.favorite = r.favorite;
105
115
  feature.description = r.description;
106
116
  feature.project = r.project;
107
117
  feature.stale = r.stale;
@@ -174,10 +184,15 @@ class FeatureToggleClientStore {
174
184
  strategy.segments.push(row.segment_id);
175
185
  }
176
186
  async getClient(featureQuery, includeStrategyIds) {
177
- return this.getAll(featureQuery, false, false, includeStrategyIds);
187
+ return this.getAll({
188
+ featureQuery,
189
+ archived: false,
190
+ isAdmin: false,
191
+ includeStrategyIds,
192
+ });
178
193
  }
179
- async getAdmin(featureQuery, archived = false) {
180
- return this.getAll(featureQuery, archived, true);
194
+ async getAdmin({ featureQuery, userId, archived, }) {
195
+ return this.getAll({ featureQuery, archived, isAdmin: true, userId });
181
196
  }
182
197
  }
183
198
  exports.default = FeatureToggleClientStore;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-toggle-client-store.js","sourceRoot":"","sources":["../../../src/lib/db/feature-toggle-client-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-toggle-client-store.js","sourceRoot":"","sources":["../../../src/lib/db/feature-toggle-client-store.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,8 @@ const segment_store_1 = __importDefault(require("./segment-store"));
34
34
  const group_store_1 = __importDefault(require("./group-store"));
35
35
  const pat_store_1 = __importDefault(require("./pat-store"));
36
36
  const public_signup_token_store_1 = require("./public-signup-token-store");
37
+ const favorite_features_store_1 = require("./favorite-features-store");
38
+ const favorite_projects_store_1 = require("./favorite-projects-store");
37
39
  const createStores = (config, db) => {
38
40
  const { getLogger, eventBus } = config;
39
41
  const eventStore = new event_store_1.default(db, getLogger);
@@ -48,7 +50,7 @@ const createStores = (config, db) => {
48
50
  contextFieldStore: new context_field_store_1.default(db, getLogger),
49
51
  settingStore: new setting_store_1.default(db, getLogger),
50
52
  userStore: new user_store_1.default(db, getLogger),
51
- projectStore: new project_store_1.default(db, eventBus, getLogger),
53
+ projectStore: new project_store_1.default(db, eventBus, getLogger, config.flagResolver),
52
54
  tagStore: new tag_store_1.default(db, eventBus, getLogger),
53
55
  tagTypeStore: new tag_type_store_1.default(db, eventBus, getLogger),
54
56
  addonStore: new addon_store_1.default(db, eventBus, getLogger),
@@ -68,6 +70,8 @@ const createStores = (config, db) => {
68
70
  groupStore: new group_store_1.default(db),
69
71
  publicSignupTokenStore: new public_signup_token_store_1.PublicSignupTokenStore(db, eventBus, getLogger),
70
72
  patStore: new pat_store_1.default(db, getLogger),
73
+ favoriteFeaturesStore: new favorite_features_store_1.FavoriteFeaturesStore(db, eventBus, getLogger),
74
+ favoriteProjectsStore: new favorite_projects_store_1.FavoriteProjectsStore(db, eventBus, getLogger),
71
75
  };
72
76
  };
73
77
  exports.createStores = createStores;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/db/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/db/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { LogProvider } from '../logger';
4
4
  import { IEnvironment, IProject, IProjectWithCount } from '../types/model';
5
5
  import { IProjectHealthUpdate, IProjectInsert, IProjectQuery, IProjectStore } from '../types/stores/project-store';
6
6
  import EventEmitter from 'events';
7
+ import { IFlagResolver } from '../types';
7
8
  export interface IEnvironmentProjectLink {
8
9
  environmentName: string;
9
10
  projectId: string;
@@ -15,12 +16,13 @@ export interface IProjectMembersCount {
15
16
  declare class ProjectStore implements IProjectStore {
16
17
  private db;
17
18
  private logger;
19
+ private flagResolver;
18
20
  private timer;
19
- constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider);
21
+ constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider, flagResolver: IFlagResolver);
20
22
  fieldToRow(data: any): IProjectInsert;
21
23
  destroy(): void;
22
24
  exists(id: string): Promise<boolean>;
23
- getProjectsWithCounts(query?: IProjectQuery): Promise<IProjectWithCount[]>;
25
+ getProjectsWithCounts(query?: IProjectQuery, userId?: number): Promise<IProjectWithCount[]>;
24
26
  mapProjectWithCountRow(row: any): IProjectWithCount;
25
27
  getAll(query?: IProjectQuery): Promise<IProject[]>;
26
28
  get(id: string): Promise<IProject>;