unleash-server 5.4.3 → 5.5.0

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 (586) hide show
  1. package/README.md +5 -3
  2. package/dist/lib/addons/addon-schema.js +2 -1
  3. package/dist/lib/addons/addon-schema.js.map +1 -1
  4. package/dist/lib/addons/datadog-definition.js +22 -7
  5. package/dist/lib/addons/datadog-definition.js.map +1 -1
  6. package/dist/lib/addons/datadog.d.ts +7 -1
  7. package/dist/lib/addons/datadog.js +16 -3
  8. package/dist/lib/addons/datadog.js.map +1 -1
  9. package/dist/lib/addons/datadog.test.js +62 -0
  10. package/dist/lib/addons/datadog.test.js.map +1 -1
  11. package/dist/lib/addons/index.js +3 -11
  12. package/dist/lib/addons/index.js.map +1 -1
  13. package/dist/lib/addons/slack-app-definition.js +5 -24
  14. package/dist/lib/addons/slack-app-definition.js.map +1 -1
  15. package/dist/lib/addons/slack-app.d.ts +0 -1
  16. package/dist/lib/addons/slack-app.js +5 -17
  17. package/dist/lib/addons/slack-app.js.map +1 -1
  18. package/dist/lib/addons/slack-app.test.js +39 -25
  19. package/dist/lib/addons/slack-app.test.js.map +1 -1
  20. package/dist/lib/addons/slack-definition.js +11 -4
  21. package/dist/lib/addons/slack-definition.js.map +1 -1
  22. package/dist/lib/addons/teams-definition.js +5 -4
  23. package/dist/lib/addons/teams-definition.js.map +1 -1
  24. package/dist/lib/addons/webhook-definition.js +10 -12
  25. package/dist/lib/addons/webhook-definition.js.map +1 -1
  26. package/dist/lib/create-config.js +13 -1
  27. package/dist/lib/create-config.js.map +1 -1
  28. package/dist/lib/create-config.test.js +14 -0
  29. package/dist/lib/create-config.test.js.map +1 -1
  30. package/dist/lib/db/access-store.d.ts +23 -5
  31. package/dist/lib/db/access-store.js +263 -17
  32. package/dist/lib/db/access-store.js.map +1 -1
  33. package/dist/lib/db/access-store.test.js +83 -0
  34. package/dist/lib/db/access-store.test.js.map +1 -0
  35. package/dist/lib/db/client-applications-store.d.ts +1 -3
  36. package/dist/lib/db/client-applications-store.js +13 -24
  37. package/dist/lib/db/client-applications-store.js.map +1 -1
  38. package/dist/lib/db/event-store.js +1 -0
  39. package/dist/lib/db/event-store.js.map +1 -1
  40. package/dist/lib/db/feature-toggle-client-store.js +17 -4
  41. package/dist/lib/db/feature-toggle-client-store.js.map +1 -1
  42. package/dist/lib/db/feature-toggle-store.js +1 -1
  43. package/dist/lib/db/feature-toggle-store.js.map +1 -1
  44. package/dist/lib/db/group-store.d.ts +4 -2
  45. package/dist/lib/db/group-store.js +24 -0
  46. package/dist/lib/db/group-store.js.map +1 -1
  47. package/dist/lib/db/index.d.ts +1 -2
  48. package/dist/lib/db/index.js +5 -1
  49. package/dist/lib/db/index.js.map +1 -1
  50. package/dist/lib/db/project-stats-store.d.ts +2 -0
  51. package/dist/lib/db/project-stats-store.js +27 -0
  52. package/dist/lib/db/project-stats-store.js.map +1 -1
  53. package/dist/lib/db/project-store.d.ts +7 -1
  54. package/dist/lib/db/project-store.js +34 -1
  55. package/dist/lib/db/project-store.js.map +1 -1
  56. package/dist/lib/error/bad-data-error.d.ts +1 -1
  57. package/dist/lib/error/index.d.ts +2 -1
  58. package/dist/lib/error/index.js +3 -1
  59. package/dist/lib/error/index.js.map +1 -1
  60. package/dist/lib/error/pattern-error.d.ts +10 -0
  61. package/dist/lib/error/pattern-error.js +20 -0
  62. package/dist/lib/error/pattern-error.js.map +1 -0
  63. package/dist/lib/features/dependent-features/createDependentFeaturesService.d.ts +3 -0
  64. package/dist/lib/features/dependent-features/createDependentFeaturesService.js +11 -0
  65. package/dist/lib/features/dependent-features/createDependentFeaturesService.js.map +1 -0
  66. package/dist/lib/features/dependent-features/dependent-features-controller.d.ts +28 -0
  67. package/dist/lib/features/dependent-features/dependent-features-controller.js +151 -0
  68. package/dist/lib/features/dependent-features/dependent-features-controller.js.map +1 -0
  69. package/dist/lib/features/dependent-features/dependent-features-service.d.ts +11 -0
  70. package/dist/lib/features/dependent-features/dependent-features-service.js +40 -0
  71. package/dist/lib/features/dependent-features/dependent-features-service.js.map +1 -0
  72. package/dist/lib/features/dependent-features/dependent-features-store-type.d.ts +8 -0
  73. package/dist/lib/features/dependent-features/dependent-features-store-type.js +3 -0
  74. package/dist/lib/features/dependent-features/dependent-features-store-type.js.map +1 -0
  75. package/dist/lib/features/dependent-features/dependent-features-store.d.ts +12 -0
  76. package/dist/lib/features/dependent-features/dependent-features-store.js +56 -0
  77. package/dist/lib/features/dependent-features/dependent-features-store.js.map +1 -0
  78. package/dist/lib/features/dependent-features/dependent-features.d.ts +14 -0
  79. package/dist/lib/features/dependent-features/dependent-features.js +3 -0
  80. package/dist/lib/features/dependent-features/dependent-features.js.map +1 -0
  81. package/dist/lib/features/dependent-features/dependent.features.e2e.test.d.ts +1 -0
  82. package/dist/lib/features/dependent-features/dependent.features.e2e.test.js +82 -0
  83. package/dist/lib/features/dependent-features/dependent.features.e2e.test.js.map +1 -0
  84. package/dist/lib/features/dependent-features/fake-dependent-features-store.d.ts +8 -0
  85. package/dist/lib/features/dependent-features/fake-dependent-features-store.js +22 -0
  86. package/dist/lib/features/dependent-features/fake-dependent-features-store.js.map +1 -0
  87. package/dist/lib/features/export-import-toggles/createExportImportService.js +6 -3
  88. package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
  89. package/dist/lib/features/export-import-toggles/export-import-service.d.ts +9 -3
  90. package/dist/lib/features/export-import-toggles/export-import-service.js +51 -21
  91. package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
  92. package/dist/lib/features/export-import-toggles/export-import.e2e.test.js +120 -50
  93. package/dist/lib/features/export-import-toggles/export-import.e2e.test.js.map +1 -1
  94. package/dist/lib/features/export-import-toggles/import-permissions-service.d.ts +1 -2
  95. package/dist/lib/features/export-import-toggles/import-toggles-store-type.d.ts +6 -0
  96. package/dist/lib/features/export-import-toggles/import-toggles-store.d.ts +2 -1
  97. package/dist/lib/features/export-import-toggles/import-toggles-store.js +25 -0
  98. package/dist/lib/features/export-import-toggles/import-toggles-store.js.map +1 -1
  99. package/dist/lib/features/export-import-toggles/import-validation-messages.d.ts +18 -2
  100. package/dist/lib/features/export-import-toggles/import-validation-messages.js +27 -11
  101. package/dist/lib/features/export-import-toggles/import-validation-messages.js.map +1 -1
  102. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.d.ts +14 -0
  103. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.js +46 -0
  104. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.js.map +1 -0
  105. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.d.ts +1 -0
  106. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js +116 -0
  107. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js.map +1 -0
  108. package/dist/lib/features/feature-toggle/createFeatureToggleService.js +11 -2
  109. package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
  110. package/dist/lib/features/instance-stats/getActiveUsers.d.ts +9 -0
  111. package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.d.ts +1 -0
  112. package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.js +141 -0
  113. package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.js.map +1 -0
  114. package/dist/lib/features/instance-stats/getActiveUsers.js +33 -0
  115. package/dist/lib/features/instance-stats/getActiveUsers.js.map +1 -0
  116. package/dist/lib/{services → features/instance-stats}/instance-stats-service.d.ts +13 -7
  117. package/dist/lib/{services → features/instance-stats}/instance-stats-service.js +16 -7
  118. package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -0
  119. package/dist/lib/features/instance-stats/instance-stats-service.test.d.ts +1 -0
  120. package/dist/lib/{services → features/instance-stats}/instance-stats-service.test.js +6 -5
  121. package/dist/lib/features/instance-stats/instance-stats-service.test.js.map +1 -0
  122. package/dist/lib/features/playground/advanced-playground.test.js +2 -3
  123. package/dist/lib/features/playground/advanced-playground.test.js.map +1 -1
  124. package/dist/lib/features/playground/feature-evaluator/variant.d.ts +1 -1
  125. package/dist/lib/features/playground/generateObjectCombinations.d.ts +1 -1
  126. package/dist/lib/features/playground/generateObjectCombinations.js +14 -4
  127. package/dist/lib/features/playground/generateObjectCombinations.js.map +1 -1
  128. package/dist/lib/features/playground/generateObjectCombinations.test.js +21 -0
  129. package/dist/lib/features/playground/generateObjectCombinations.test.js.map +1 -1
  130. package/dist/lib/features/playground/playground-service.d.ts +5 -3
  131. package/dist/lib/features/playground/playground-service.js +18 -3
  132. package/dist/lib/features/playground/playground-service.js.map +1 -1
  133. package/dist/lib/features/playground/playground.d.ts +2 -1
  134. package/dist/lib/features/playground/playground.js +2 -1
  135. package/dist/lib/features/playground/playground.js.map +1 -1
  136. package/dist/lib/features/private-project/createPrivateProjectChecker.d.ts +5 -0
  137. package/dist/lib/features/private-project/createPrivateProjectChecker.js +22 -0
  138. package/dist/lib/features/private-project/createPrivateProjectChecker.js.map +1 -0
  139. package/dist/lib/features/private-project/fakePrivateProjectChecker.d.ts +7 -0
  140. package/dist/lib/features/private-project/fakePrivateProjectChecker.js +15 -0
  141. package/dist/lib/features/private-project/fakePrivateProjectChecker.js.map +1 -0
  142. package/dist/lib/features/private-project/privateProjectChecker.d.ts +10 -0
  143. package/dist/lib/features/private-project/privateProjectChecker.js +22 -0
  144. package/dist/lib/features/private-project/privateProjectChecker.js.map +1 -0
  145. package/dist/lib/features/private-project/privateProjectCheckerType.d.ts +5 -0
  146. package/dist/lib/features/private-project/privateProjectCheckerType.js +3 -0
  147. package/dist/lib/features/private-project/privateProjectCheckerType.js.map +1 -0
  148. package/dist/lib/features/private-project/privateProjectStore.d.ts +18 -0
  149. package/dist/lib/features/private-project/privateProjectStore.js +70 -0
  150. package/dist/lib/features/private-project/privateProjectStore.js.map +1 -0
  151. package/dist/lib/features/private-project/privateProjectStoreType.d.ts +4 -0
  152. package/dist/lib/features/private-project/privateProjectStoreType.js +3 -0
  153. package/dist/lib/features/private-project/privateProjectStoreType.js.map +1 -0
  154. package/dist/lib/features/project/createProjectService.js +5 -8
  155. package/dist/lib/features/project/createProjectService.js.map +1 -1
  156. package/dist/lib/features/segment/createSegmentService.js +5 -2
  157. package/dist/lib/features/segment/createSegmentService.js.map +1 -1
  158. package/dist/lib/features/segment/segment-controller.d.ts +39 -0
  159. package/dist/lib/features/segment/segment-controller.js +291 -0
  160. package/dist/lib/features/segment/segment-controller.js.map +1 -0
  161. package/dist/lib/metrics.d.ts +1 -1
  162. package/dist/lib/metrics.js +30 -1
  163. package/dist/lib/metrics.js.map +1 -1
  164. package/dist/lib/metrics.test.js +3 -2
  165. package/dist/lib/metrics.test.js.map +1 -1
  166. package/dist/lib/middleware/rbac-middleware.d.ts +2 -0
  167. package/dist/lib/middleware/rbac-middleware.js +2 -0
  168. package/dist/lib/middleware/rbac-middleware.js.map +1 -1
  169. package/dist/lib/middleware/secure-headers.js +18 -0
  170. package/dist/lib/middleware/secure-headers.js.map +1 -1
  171. package/dist/lib/openapi/index.js +13 -0
  172. package/dist/lib/openapi/index.js.map +1 -1
  173. package/dist/lib/openapi/meta-schema-rules.test.js +14 -4
  174. package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
  175. package/dist/lib/openapi/spec/addon-type-schema.d.ts +6 -1
  176. package/dist/lib/openapi/spec/addon-type-schema.js +6 -1
  177. package/dist/lib/openapi/spec/addon-type-schema.js.map +1 -1
  178. package/dist/lib/openapi/spec/addons-schema.d.ts +8 -3
  179. package/dist/lib/openapi/spec/addons-schema.js +8 -3
  180. package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
  181. package/dist/lib/openapi/spec/admin-segment-schema.d.ts +115 -0
  182. package/dist/lib/openapi/spec/admin-segment-schema.js +75 -0
  183. package/dist/lib/openapi/spec/admin-segment-schema.js.map +1 -0
  184. package/dist/lib/openapi/spec/admin-segment-schema.test.d.ts +1 -0
  185. package/dist/lib/openapi/spec/admin-segment-schema.test.js +39 -0
  186. package/dist/lib/openapi/spec/admin-segment-schema.test.js.map +1 -0
  187. package/dist/lib/openapi/spec/admin-strategies-schema.d.ts +46 -0
  188. package/dist/lib/openapi/spec/admin-strategies-schema.js +54 -0
  189. package/dist/lib/openapi/spec/admin-strategies-schema.js.map +1 -0
  190. package/dist/lib/openapi/spec/admin-strategies-schema.test.d.ts +1 -0
  191. package/dist/lib/openapi/spec/admin-strategies-schema.test.js +40 -0
  192. package/dist/lib/openapi/spec/admin-strategies-schema.test.js.map +1 -0
  193. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +51 -6
  194. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js +3 -1
  195. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js.map +1 -1
  196. package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +101 -11
  197. package/dist/lib/openapi/spec/advanced-playground-feature-schema.js +2 -0
  198. package/dist/lib/openapi/spec/advanced-playground-feature-schema.js.map +1 -1
  199. package/dist/lib/openapi/spec/advanced-playground-request-schema.d.ts +1 -0
  200. package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +203 -22
  201. package/dist/lib/openapi/spec/advanced-playground-response-schema.js +2 -0
  202. package/dist/lib/openapi/spec/advanced-playground-response-schema.js.map +1 -1
  203. package/dist/lib/openapi/spec/client-feature-schema.d.ts +41 -6
  204. package/dist/lib/openapi/spec/client-feature-schema.js +9 -0
  205. package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
  206. package/dist/lib/openapi/spec/client-features-schema.d.ts +75 -12
  207. package/dist/lib/openapi/spec/client-features-schema.js +2 -0
  208. package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
  209. package/dist/lib/openapi/spec/context-field-strategies-schema.d.ts +1 -1
  210. package/dist/lib/openapi/spec/context-field-strategies-schema.js +1 -1
  211. package/dist/lib/openapi/spec/context-field-strategies-schema.js.map +1 -1
  212. package/dist/lib/openapi/spec/create-api-token-schema.d.ts +1 -139
  213. package/dist/lib/openapi/spec/create-api-token-schema.js +16 -20
  214. package/dist/lib/openapi/spec/create-api-token-schema.js.map +1 -1
  215. package/dist/lib/openapi/spec/create-dependent-feature-schema.d.ts +29 -0
  216. package/dist/lib/openapi/spec/create-dependent-feature-schema.js +31 -0
  217. package/dist/lib/openapi/spec/create-dependent-feature-schema.js.map +1 -0
  218. package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.d.ts +29 -0
  219. package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.js +33 -0
  220. package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.js.map +1 -0
  221. package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +2 -2
  222. package/dist/lib/openapi/spec/create-strategy-schema.d.ts +15 -0
  223. package/dist/lib/openapi/spec/create-strategy-schema.js +15 -0
  224. package/dist/lib/openapi/spec/create-strategy-schema.js.map +1 -1
  225. package/dist/lib/openapi/spec/create-strategy-variant-schema.d.ts +2 -2
  226. package/dist/lib/openapi/spec/create-strategy-variant-schema.js +2 -2
  227. package/dist/lib/openapi/spec/create-strategy-variant-schema.js.map +1 -1
  228. package/dist/lib/openapi/spec/dependent-feature-schema.d.ts +30 -0
  229. package/dist/lib/openapi/spec/dependent-feature-schema.js +14 -0
  230. package/dist/lib/openapi/spec/dependent-feature-schema.js.map +1 -0
  231. package/dist/lib/openapi/spec/dora-features-schema.d.ts +20 -0
  232. package/dist/lib/openapi/spec/dora-features-schema.js +22 -0
  233. package/dist/lib/openapi/spec/dora-features-schema.js.map +1 -0
  234. package/dist/lib/openapi/spec/environment-project-schema.d.ts +4 -4
  235. package/dist/lib/openapi/spec/environments-project-schema.d.ts +4 -4
  236. package/dist/lib/openapi/spec/event-schema.d.ts +3 -3
  237. package/dist/lib/openapi/spec/events-schema.d.ts +3 -3
  238. package/dist/lib/openapi/spec/export-query-schema.d.ts +22 -15
  239. package/dist/lib/openapi/spec/export-query-schema.js +16 -15
  240. package/dist/lib/openapi/spec/export-query-schema.js.map +1 -1
  241. package/dist/lib/openapi/spec/export-result-schema.d.ts +26 -26
  242. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +6 -6
  243. package/dist/lib/openapi/spec/feature-events-schema.d.ts +3 -3
  244. package/dist/lib/openapi/spec/feature-schema.d.ts +12 -12
  245. package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +2 -2
  246. package/dist/lib/openapi/spec/feature-variants-schema.d.ts +2 -2
  247. package/dist/lib/openapi/spec/features-schema.d.ts +24 -24
  248. package/dist/lib/openapi/spec/health-overview-schema.d.ts +63 -33
  249. package/dist/lib/openapi/spec/health-overview-schema.js +6 -1
  250. package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
  251. package/dist/lib/openapi/spec/health-report-schema.d.ts +63 -33
  252. package/dist/lib/openapi/spec/import-toggles-schema.d.ts +52 -52
  253. package/dist/lib/openapi/spec/index.d.ts +9 -0
  254. package/dist/lib/openapi/spec/index.js +9 -0
  255. package/dist/lib/openapi/spec/index.js.map +1 -1
  256. package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +42 -0
  257. package/dist/lib/openapi/spec/instance-admin-stats-schema.js +42 -0
  258. package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
  259. package/dist/lib/openapi/spec/parent-feature-options-schema.d.ts +11 -0
  260. package/dist/lib/openapi/spec/parent-feature-options-schema.js +13 -0
  261. package/dist/lib/openapi/spec/parent-feature-options-schema.js.map +1 -0
  262. package/dist/lib/openapi/spec/playground-feature-schema.d.ts +5 -5
  263. package/dist/lib/openapi/spec/playground-request-schema.d.ts +1 -0
  264. package/dist/lib/openapi/spec/playground-response-schema.d.ts +12 -10
  265. package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +4 -4
  266. package/dist/lib/openapi/spec/playground-strategy-schema.js +1 -1
  267. package/dist/lib/openapi/spec/playground-strategy-schema.js.map +1 -1
  268. package/dist/lib/openapi/spec/profile-schema.d.ts +12 -12
  269. package/dist/lib/openapi/spec/project-dora-metrics-schema.d.ts +44 -0
  270. package/dist/lib/openapi/spec/project-dora-metrics-schema.js +28 -0
  271. package/dist/lib/openapi/spec/project-dora-metrics-schema.js.map +1 -0
  272. package/dist/lib/openapi/spec/project-environment-schema.d.ts +4 -4
  273. package/dist/lib/openapi/spec/project-overview-schema.d.ts +63 -33
  274. package/dist/lib/openapi/spec/project-overview-schema.js +6 -1
  275. package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
  276. package/dist/lib/openapi/spec/project-schema.d.ts +1 -1
  277. package/dist/lib/openapi/spec/project-schema.js +1 -1
  278. package/dist/lib/openapi/spec/project-schema.js.map +1 -1
  279. package/dist/lib/openapi/spec/projects-schema.d.ts +1 -1
  280. package/dist/lib/openapi/spec/push-variants-schema.d.ts +2 -2
  281. package/dist/lib/openapi/spec/sdk-context-schema.d.ts +1 -0
  282. package/dist/lib/openapi/spec/sdk-context-schema.js +1 -0
  283. package/dist/lib/openapi/spec/sdk-context-schema.js.map +1 -1
  284. package/dist/lib/openapi/spec/sdk-flat-context-schema.d.ts +46 -0
  285. package/dist/lib/openapi/spec/sdk-flat-context-schema.js +15 -0
  286. package/dist/lib/openapi/spec/sdk-flat-context-schema.js.map +1 -0
  287. package/dist/lib/openapi/spec/search-events-schema.d.ts +1 -1
  288. package/dist/lib/openapi/spec/segments-schema.d.ts +177 -0
  289. package/dist/lib/openapi/spec/segments-schema.js +26 -0
  290. package/dist/lib/openapi/spec/segments-schema.js.map +1 -0
  291. package/dist/lib/openapi/spec/segments-schema.test.d.ts +1 -0
  292. package/dist/lib/openapi/spec/segments-schema.test.js +16 -0
  293. package/dist/lib/openapi/spec/segments-schema.test.js.map +1 -0
  294. package/dist/lib/openapi/spec/state-schema.d.ts +23 -23
  295. package/dist/lib/openapi/spec/strategy-variant-schema.d.ts +2 -2
  296. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.d.ts +35 -0
  297. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.js +37 -0
  298. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.js.map +1 -0
  299. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.d.ts +1 -0
  300. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.js +19 -0
  301. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.js.map +1 -0
  302. package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +8 -15
  303. package/dist/lib/openapi/spec/upsert-segment-schema.js +8 -17
  304. package/dist/lib/openapi/spec/upsert-segment-schema.js.map +1 -1
  305. package/dist/lib/openapi/spec/upsert-segment-schema.test.d.ts +1 -0
  306. package/dist/lib/openapi/spec/upsert-segment-schema.test.js +35 -0
  307. package/dist/lib/openapi/spec/upsert-segment-schema.test.js.map +1 -0
  308. package/dist/lib/openapi/spec/validate-feature-schema.d.ts +6 -0
  309. package/dist/lib/openapi/spec/validate-feature-schema.js +6 -0
  310. package/dist/lib/openapi/spec/validate-feature-schema.js.map +1 -1
  311. package/dist/lib/openapi/spec/variant-schema.d.ts +2 -2
  312. package/dist/lib/openapi/spec/variant-schema.js +2 -2
  313. package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
  314. package/dist/lib/openapi/spec/variants-schema.d.ts +2 -2
  315. package/dist/lib/openapi/util/all-of.d.ts +3 -0
  316. package/dist/lib/openapi/util/all-of.js +34 -0
  317. package/dist/lib/openapi/util/all-of.js.map +1 -0
  318. package/dist/lib/openapi/util/openapi-tags.d.ts +46 -58
  319. package/dist/lib/openapi/util/openapi-tags.js +27 -34
  320. package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
  321. package/dist/lib/openapi/util/openapi-tags.test.d.ts +1 -0
  322. package/dist/lib/openapi/util/openapi-tags.test.js +15 -0
  323. package/dist/lib/openapi/util/openapi-tags.test.js.map +1 -0
  324. package/dist/lib/openapi/validate.js +0 -1
  325. package/dist/lib/openapi/validate.js.map +1 -1
  326. package/dist/lib/routes/admin-api/archive.d.ts +1 -1
  327. package/dist/lib/routes/admin-api/archive.js +3 -2
  328. package/dist/lib/routes/admin-api/archive.js.map +1 -1
  329. package/dist/lib/routes/admin-api/context.js +2 -1
  330. package/dist/lib/routes/admin-api/context.js.map +1 -1
  331. package/dist/lib/routes/admin-api/feature.js +2 -1
  332. package/dist/lib/routes/admin-api/feature.js.map +1 -1
  333. package/dist/lib/routes/admin-api/index.js +2 -0
  334. package/dist/lib/routes/admin-api/index.js.map +1 -1
  335. package/dist/lib/routes/admin-api/instance-admin.d.ts +2 -2
  336. package/dist/lib/routes/admin-api/instance-admin.js +7 -1
  337. package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
  338. package/dist/lib/routes/admin-api/metrics.d.ts +2 -1
  339. package/dist/lib/routes/admin-api/metrics.js +2 -1
  340. package/dist/lib/routes/admin-api/metrics.js.map +1 -1
  341. package/dist/lib/routes/admin-api/project/api-token.d.ts +2 -1
  342. package/dist/lib/routes/admin-api/project/api-token.js +12 -3
  343. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  344. package/dist/lib/routes/admin-api/project/environments.d.ts +2 -1
  345. package/dist/lib/routes/admin-api/project/environments.js +3 -1
  346. package/dist/lib/routes/admin-api/project/environments.js.map +1 -1
  347. package/dist/lib/routes/admin-api/project/index.d.ts +2 -1
  348. package/dist/lib/routes/admin-api/project/index.js +31 -0
  349. package/dist/lib/routes/admin-api/project/index.js.map +1 -1
  350. package/dist/lib/routes/admin-api/strategy.d.ts +1 -1
  351. package/dist/lib/routes/admin-api/strategy.js.map +1 -1
  352. package/dist/lib/routes/client-api/metrics.js +14 -8
  353. package/dist/lib/routes/client-api/metrics.js.map +1 -1
  354. package/dist/lib/routes/client-api/metrics.test.js +27 -0
  355. package/dist/lib/routes/client-api/metrics.test.js.map +1 -1
  356. package/dist/lib/routes/controller.d.ts +1 -1
  357. package/dist/lib/routes/controller.js +17 -10
  358. package/dist/lib/routes/controller.js.map +1 -1
  359. package/dist/lib/routes/proxy-api/index.js +5 -0
  360. package/dist/lib/routes/proxy-api/index.js.map +1 -1
  361. package/dist/lib/schema/role-schema.js +3 -1
  362. package/dist/lib/schema/role-schema.js.map +1 -1
  363. package/dist/lib/schema/role-schema.test.js +1 -1
  364. package/dist/lib/schema/role-schema.test.js.map +1 -1
  365. package/dist/lib/segments/segment-service-interface.d.ts +1 -1
  366. package/dist/lib/services/access-service.d.ts +29 -11
  367. package/dist/lib/services/access-service.js +53 -10
  368. package/dist/lib/services/access-service.js.map +1 -1
  369. package/dist/lib/services/access-service.test.js +2 -1
  370. package/dist/lib/services/access-service.test.js.map +1 -1
  371. package/dist/lib/services/addon-service.js +4 -2
  372. package/dist/lib/services/addon-service.js.map +1 -1
  373. package/dist/lib/services/addon-service.test.js +65 -0
  374. package/dist/lib/services/addon-service.test.js.map +1 -1
  375. package/dist/lib/services/client-metrics/instance-service.d.ts +5 -2
  376. package/dist/lib/services/client-metrics/instance-service.js +22 -3
  377. package/dist/lib/services/client-metrics/instance-service.js.map +1 -1
  378. package/dist/lib/services/client-metrics/instance-service.test.js +5 -4
  379. package/dist/lib/services/client-metrics/instance-service.test.js.map +1 -1
  380. package/dist/lib/services/context-service.d.ts +6 -2
  381. package/dist/lib/services/context-service.js +16 -2
  382. package/dist/lib/services/context-service.js.map +1 -1
  383. package/dist/lib/services/feature-service-potentially-stale.test.js +1 -1
  384. package/dist/lib/services/feature-service-potentially-stale.test.js.map +1 -1
  385. package/dist/lib/services/feature-toggle-service.d.ts +20 -7
  386. package/dist/lib/services/feature-toggle-service.js +109 -41
  387. package/dist/lib/services/feature-toggle-service.js.map +1 -1
  388. package/dist/lib/services/group-service.d.ts +4 -4
  389. package/dist/lib/services/group-service.js +17 -16
  390. package/dist/lib/services/group-service.js.map +1 -1
  391. package/dist/lib/services/index.d.ts +3 -2
  392. package/dist/lib/services/index.js +31 -17
  393. package/dist/lib/services/index.js.map +1 -1
  394. package/dist/lib/services/project-schema.js +9 -1
  395. package/dist/lib/services/project-schema.js.map +1 -1
  396. package/dist/lib/services/project-service.d.ts +16 -12
  397. package/dist/lib/services/project-service.js +127 -17
  398. package/dist/lib/services/project-service.js.map +1 -1
  399. package/dist/lib/services/scheduler-service.d.ts +1 -1
  400. package/dist/lib/services/scheduler-service.js +3 -3
  401. package/dist/lib/services/scheduler-service.js.map +1 -1
  402. package/dist/lib/services/scheduler-service.test.js +15 -15
  403. package/dist/lib/services/scheduler-service.test.js.map +1 -1
  404. package/dist/lib/services/segment-service.d.ts +4 -2
  405. package/dist/lib/services/segment-service.js +17 -10
  406. package/dist/lib/services/segment-service.js.map +1 -1
  407. package/dist/lib/services/state-service.test.js +13 -3
  408. package/dist/lib/services/state-service.test.js.map +1 -1
  409. package/dist/lib/services/version-service.test.js +3 -0
  410. package/dist/lib/services/version-service.test.js.map +1 -1
  411. package/dist/lib/types/events.d.ts +61 -1
  412. package/dist/lib/types/events.js +66 -4
  413. package/dist/lib/types/events.js.map +1 -1
  414. package/dist/lib/types/experimental.d.ts +1 -1
  415. package/dist/lib/types/experimental.js +9 -5
  416. package/dist/lib/types/experimental.js.map +1 -1
  417. package/dist/lib/types/group.d.ts +2 -2
  418. package/dist/lib/types/model.d.ts +31 -2
  419. package/dist/lib/types/model.js.map +1 -1
  420. package/dist/lib/types/no-auth-user.d.ts +1 -0
  421. package/dist/lib/types/no-auth-user.js +3 -1
  422. package/dist/lib/types/no-auth-user.js.map +1 -1
  423. package/dist/lib/types/option.d.ts +7 -0
  424. package/dist/lib/types/services.d.ts +6 -1
  425. package/dist/lib/types/stores/access-store.d.ts +23 -4
  426. package/dist/lib/types/stores/feature-strategies-store.d.ts +2 -1
  427. package/dist/lib/types/stores/group-store.d.ts +4 -2
  428. package/dist/lib/types/stores/project-stats-store-type.d.ts +2 -0
  429. package/dist/lib/types/stores/project-store.d.ts +7 -14
  430. package/dist/lib/types/stores/strategy-store.d.ts +3 -17
  431. package/dist/lib/types/stores.d.ts +5 -1
  432. package/dist/lib/util/findDuplicates.d.ts +1 -0
  433. package/dist/lib/util/findDuplicates.js +18 -0
  434. package/dist/lib/util/findDuplicates.js.map +1 -0
  435. package/dist/lib/util/findDuplicates.test.d.ts +1 -0
  436. package/dist/lib/util/findDuplicates.test.js +23 -0
  437. package/dist/lib/util/findDuplicates.test.js.map +1 -0
  438. package/dist/migrations/20230830121352-update-client-applications-usage-table.d.ts +2 -0
  439. package/dist/migrations/20230830121352-update-client-applications-usage-table.js +16 -0
  440. package/dist/migrations/20230830121352-update-client-applications-usage-table.js.map +1 -0
  441. package/dist/migrations/20230905122605-add-feature-naming-description.d.ts +2 -0
  442. package/dist/migrations/20230905122605-add-feature-naming-description.js +13 -0
  443. package/dist/migrations/20230905122605-add-feature-naming-description.js.map +1 -0
  444. package/dist/migrations/20230919104006-dependent-features.d.ts +2 -0
  445. package/dist/migrations/20230919104006-dependent-features.js +21 -0
  446. package/dist/migrations/20230919104006-dependent-features.js.map +1 -0
  447. package/dist/migrations/20230927071830-reset-pnps-feedback.d.ts +2 -0
  448. package/dist/migrations/20230927071830-reset-pnps-feedback.js +10 -0
  449. package/dist/migrations/20230927071830-reset-pnps-feedback.js.map +1 -0
  450. package/dist/server-dev.js +7 -4
  451. package/dist/server-dev.js.map +1 -1
  452. package/dist/test/e2e/api/admin/addon.e2e.test.js +0 -1
  453. package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
  454. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +8 -12
  455. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
  456. package/dist/test/e2e/api/admin/event.e2e.test.js +9 -2
  457. package/dist/test/e2e/api/admin/event.e2e.test.js.map +1 -1
  458. package/dist/test/e2e/api/admin/metrics.e2e.test.js +2 -10
  459. package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
  460. package/dist/test/e2e/api/admin/project/environments.e2e.test.js +8 -0
  461. package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -1
  462. package/dist/test/e2e/api/admin/project/features.e2e.test.js +41 -15
  463. package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
  464. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js +30 -3
  465. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js.map +1 -1
  466. package/dist/test/e2e/api/admin/segment.e2e.test.d.ts +1 -0
  467. package/dist/test/e2e/api/admin/segment.e2e.test.js +272 -0
  468. package/dist/test/e2e/api/admin/segment.e2e.test.js.map +1 -0
  469. package/dist/test/e2e/api/admin/state.e2e.test.js +0 -11
  470. package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
  471. package/dist/test/e2e/api/admin/strategy.e2e.test.js +1 -1
  472. package/dist/test/e2e/api/client/feature.e2e.test.js +27 -3
  473. package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
  474. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +2 -2
  475. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
  476. package/dist/test/e2e/api/client/segment.e2e.test.js +1 -1
  477. package/dist/test/e2e/api/client/segment.e2e.test.js.map +1 -1
  478. package/dist/test/e2e/api/proxy/proxy.e2e.test.js +34 -9
  479. package/dist/test/e2e/api/proxy/proxy.e2e.test.js.map +1 -1
  480. package/dist/test/e2e/helpers/app.utils.d.ts +6 -0
  481. package/dist/test/e2e/helpers/app.utils.js +16 -0
  482. package/dist/test/e2e/helpers/app.utils.js.map +1 -0
  483. package/dist/test/e2e/helpers/database.json +24 -0
  484. package/dist/test/e2e/services/access-service.e2e.test.js +549 -135
  485. package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
  486. package/dist/test/e2e/services/api-token-service.e2e.test.js +4 -2
  487. package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
  488. package/dist/test/e2e/services/client-metrics-service.e2e.test.js +2 -1
  489. package/dist/test/e2e/services/client-metrics-service.e2e.test.js.map +1 -1
  490. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +38 -5
  491. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
  492. package/dist/test/e2e/services/group-service.e2e.test.js +16 -11
  493. package/dist/test/e2e/services/group-service.e2e.test.js.map +1 -1
  494. package/dist/test/e2e/services/playground-service.test.js +5 -2
  495. package/dist/test/e2e/services/playground-service.test.js.map +1 -1
  496. package/dist/test/e2e/services/project-health-service.e2e.test.js +4 -2
  497. package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
  498. package/dist/test/e2e/services/project-service.e2e.test.js +242 -60
  499. package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
  500. package/dist/test/fixtures/access-service-mock.d.ts +3 -4
  501. package/dist/test/fixtures/access-service-mock.js.map +1 -1
  502. package/dist/test/fixtures/fake-access-store.d.ts +15 -5
  503. package/dist/test/fixtures/fake-access-store.js +30 -3
  504. package/dist/test/fixtures/fake-access-store.js.map +1 -1
  505. package/dist/test/fixtures/fake-group-store.d.ts +4 -2
  506. package/dist/test/fixtures/fake-group-store.js +3 -0
  507. package/dist/test/fixtures/fake-group-store.js.map +1 -1
  508. package/dist/test/fixtures/fake-project-stats-store.d.ts +1 -0
  509. package/dist/test/fixtures/fake-project-stats-store.js +3 -0
  510. package/dist/test/fixtures/fake-project-stats-store.js.map +1 -1
  511. package/dist/test/fixtures/fake-project-store.d.ts +2 -1
  512. package/dist/test/fixtures/fake-project-store.js +3 -0
  513. package/dist/test/fixtures/fake-project-store.js.map +1 -1
  514. package/dist/test/fixtures/no-logger.d.ts +2 -1
  515. package/dist/test/fixtures/no-logger.js +8 -4
  516. package/dist/test/fixtures/no-logger.js.map +1 -1
  517. package/dist/test/fixtures/store.js +3 -0
  518. package/dist/test/fixtures/store.js.map +1 -1
  519. package/frontend/README.md +7 -1
  520. package/frontend/build/index.html +2 -2
  521. package/frontend/build/static/{AdvancedPlayground-1748fcdd.js → AdvancedPlayground-20059178.js} +11 -11
  522. package/frontend/build/static/CreateProject-6955728f.js +4 -0
  523. package/frontend/build/static/{Error-cbce6b64.js → Error-f56339ab.js} +1 -1
  524. package/frontend/build/static/FeatureArchiveDialog-33dc3a5b.js +10 -0
  525. package/frontend/build/static/{FeatureMetricsChart-8fd8a304.js → FeatureMetricsChart-5ad514bc.js} +2 -2
  526. package/frontend/build/static/FeatureViewLazyExport-85a68ed0.js +7 -0
  527. package/frontend/build/static/LazyAdminExport-e2677758.js +35 -0
  528. package/frontend/build/static/LazyProjectExport-969bb54e.js +24 -0
  529. package/frontend/build/static/Logo-android-218bddbb.svg +1 -0
  530. package/frontend/build/static/Logo-flutter-cc3c706f.svg +1 -0
  531. package/frontend/build/static/Logo-go-02475b3d.svg +1 -0
  532. package/frontend/build/static/Logo-java-6e556b26.svg +1 -0
  533. package/frontend/build/static/Logo-javascript-caebc06e.svg +1 -0
  534. package/frontend/build/static/Logo-net-0a33abee.svg +1 -0
  535. package/frontend/build/static/Logo-node-318ed025.svg +1 -0
  536. package/frontend/build/static/Logo-php-201f18c3.svg +1 -0
  537. package/frontend/build/static/Logo-python-4305760e.svg +1 -0
  538. package/frontend/build/static/Logo-react-18e98687.svg +1 -0
  539. package/frontend/build/static/Logo-ruby-58f46832.svg +1 -0
  540. package/frontend/build/static/Logo-rust-c83a80f9.svg +1 -0
  541. package/frontend/build/static/Logo-svelte-97dcb624.svg +1 -0
  542. package/frontend/build/static/Logo-swift-315f842b.svg +5 -0
  543. package/frontend/build/static/Logo-vue-0de73099.svg +1 -0
  544. package/frontend/build/static/{NetworkOverview-349a7bdd.js → NetworkOverview-894877e6.js} +2 -2
  545. package/frontend/build/static/{NetworkTraffic-60478e50.js → NetworkTraffic-81eff1ae.js} +1 -1
  546. package/frontend/build/static/ReactJSONEditor-59c8a094.js +129 -0
  547. package/frontend/build/static/RoleCell-35857d41.js +1 -0
  548. package/frontend/build/static/{StrategyItemContainer-a4caeace.js → StrategyItemContainer-b250f2d4.js} +1 -1
  549. package/frontend/build/static/{chartjs-adapter-date-fns.esm-03d2fbea.js → chartjs-adapter-date-fns.esm-c51fe022.js} +1 -1
  550. package/frontend/build/static/cr-db7653ac.png +0 -0
  551. package/frontend/build/static/datadog-543762b6.svg +5 -0
  552. package/frontend/build/static/edge-daisy-chaining-012bfdef.svg +48 -0
  553. package/frontend/build/static/edge-mode-5d25949b.svg +22 -0
  554. package/frontend/build/static/edge-offline-f6a0f761.svg +19 -0
  555. package/frontend/build/static/{flowchart-elk-definition-170a3958-fc100c77.js → flowchart-elk-definition-170a3958-a8c4a86a.js} +1 -1
  556. package/frontend/build/static/{index-866f9bf9.js → index-0515f416.js} +1 -1
  557. package/frontend/build/static/index-942e9eeb.js +463 -0
  558. package/frontend/build/static/{index-3c63138f.js → index-a59b2d65.js} +1 -1
  559. package/frontend/build/static/{is_dark-31c253e9.js → is_dark-464961a8.js} +1 -1
  560. package/frontend/build/static/jira-1abe7cbf.svg +17 -0
  561. package/frontend/build/static/{mindmap-definition-44684416-398682f9.js → mindmap-definition-44684416-3a71a9a5.js} +1 -1
  562. package/frontend/build/static/slack-36ce798a.svg +18 -0
  563. package/frontend/build/static/style-97d3ef98.css +1 -0
  564. package/frontend/build/static/teams-4e30b51f.svg +45 -0
  565. package/frontend/build/static/{timeline-definition-8e5a9bc6-04a0ae08.js → timeline-definition-8e5a9bc6-da4ebc88.js} +1 -1
  566. package/frontend/build/static/{unknownify-b8618d88.js → unknownify-3563456b.js} +1 -1
  567. package/frontend/build/static/unleash-integration-949d8966.svg +1 -0
  568. package/frontend/build/static/webhooks-b1b44207.svg +16 -0
  569. package/frontend/package.json +20 -18
  570. package/package.json +23 -23
  571. package/dist/lib/services/instance-stats-service.js.map +0 -1
  572. package/dist/lib/services/instance-stats-service.test.js.map +0 -1
  573. package/frontend/build/static/CreateProject-972fa820.js +0 -4
  574. package/frontend/build/static/FeatureArchiveDialog-8a281845.js +0 -10
  575. package/frontend/build/static/FeatureViewLazyExport-a215d53b.js +0 -7
  576. package/frontend/build/static/LazyAdminExport-ba7d55ca.js +0 -35
  577. package/frontend/build/static/LazyProjectExport-12bccd40.js +0 -17
  578. package/frontend/build/static/RoleCell-144e7eca.js +0 -1
  579. package/frontend/build/static/datadog-591b6a73.svg +0 -1
  580. package/frontend/build/static/index-17d74ac9.js +0 -454
  581. package/frontend/build/static/slack-c0af31c6.svg +0 -1
  582. package/frontend/build/static/style-770afaee.css +0 -1
  583. package/frontend/build/static/teams-62e72076.svg +0 -26
  584. package/frontend/build/static/webhooks-ffa904ac.svg +0 -1
  585. /package/dist/lib/{services/instance-stats-service.test.d.ts → db/access-store.test.d.ts} +0 -0
  586. /package/frontend/build/static/{jira-d9eb9af9.svg → jira-comment-d9eb9af9.svg} +0 -0
@@ -1,6 +1,8 @@
1
- import { IUnleashConfig } from '../types/option';
2
- import { IUnleashStores } from '../types/stores';
3
- import VersionService from './version-service';
1
+ import { IUnleashConfig } from '../../types/option';
2
+ import { IUnleashStores } from '../../types/stores';
3
+ import VersionService from '../../services/version-service';
4
+ import { type GetActiveUsers } from './getActiveUsers';
5
+ import { ProjectModeCount } from '../../db/project-store';
4
6
  export declare type TimeRange = 'allTime' | '30d' | '7d';
5
7
  export interface InstanceStats {
6
8
  instanceId: string;
@@ -9,7 +11,7 @@ export interface InstanceStats {
9
11
  versionEnterprise?: string;
10
12
  users: number;
11
13
  featureToggles: number;
12
- projects: number;
14
+ projects: ProjectModeCount[];
13
15
  contextFields: number;
14
16
  roles: number;
15
17
  customRootRoles: number;
@@ -26,10 +28,12 @@ export interface InstanceStats {
26
28
  range: TimeRange;
27
29
  count: number;
28
30
  }[];
31
+ activeUsers: Awaited<ReturnType<GetActiveUsers>>;
29
32
  }
30
- export interface InstanceStatsSigned extends InstanceStats {
33
+ export declare type InstanceStatsSigned = Omit<InstanceStats, 'projects'> & {
34
+ projects: number;
31
35
  sum: string;
32
- }
36
+ };
33
37
  export declare class InstanceStatsService {
34
38
  private logger;
35
39
  private strategyStore;
@@ -47,8 +51,10 @@ export declare class InstanceStatsService {
47
51
  private clientInstanceStore;
48
52
  private snapshot?;
49
53
  private appCount?;
50
- constructor({ featureToggleStore, userStore, projectStore, environmentStore, strategyStore, contextFieldStore, groupStore, segmentStore, roleStore, settingStore, clientInstanceStore, eventStore, }: Pick<IUnleashStores, 'featureToggleStore' | 'userStore' | 'projectStore' | 'environmentStore' | 'strategyStore' | 'contextFieldStore' | 'groupStore' | 'segmentStore' | 'roleStore' | 'settingStore' | 'clientInstanceStore' | 'eventStore'>, { getLogger }: Pick<IUnleashConfig, 'getLogger'>, versionService: VersionService);
54
+ private getActiveUsers;
55
+ constructor({ featureToggleStore, userStore, projectStore, environmentStore, strategyStore, contextFieldStore, groupStore, segmentStore, roleStore, settingStore, clientInstanceStore, eventStore, }: Pick<IUnleashStores, 'featureToggleStore' | 'userStore' | 'projectStore' | 'environmentStore' | 'strategyStore' | 'contextFieldStore' | 'groupStore' | 'segmentStore' | 'roleStore' | 'settingStore' | 'clientInstanceStore' | 'eventStore'>, { getLogger }: Pick<IUnleashConfig, 'getLogger'>, versionService: VersionService, getActiveUsers: GetActiveUsers);
51
56
  refreshStatsSnapshot(): Promise<void>;
57
+ getProjectModeCount(): Promise<ProjectModeCount[]>;
52
58
  getToggleCount(): Promise<number>;
53
59
  hasOIDC(): Promise<boolean>;
54
60
  hasSAML(): Promise<boolean>;
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InstanceStatsService = void 0;
4
4
  const js_sha256_1 = require("js-sha256");
5
- const types_1 = require("../types");
6
- const util_1 = require("../util");
5
+ const types_1 = require("../../types");
6
+ const util_1 = require("../../util");
7
7
  class InstanceStatsService {
8
- constructor({ featureToggleStore, userStore, projectStore, environmentStore, strategyStore, contextFieldStore, groupStore, segmentStore, roleStore, settingStore, clientInstanceStore, eventStore, }, { getLogger }, versionService) {
8
+ constructor({ featureToggleStore, userStore, projectStore, environmentStore, strategyStore, contextFieldStore, groupStore, segmentStore, roleStore, settingStore, clientInstanceStore, eventStore, }, { getLogger }, versionService, getActiveUsers) {
9
9
  this.strategyStore = strategyStore;
10
10
  this.userStore = userStore;
11
11
  this.featureToggleStore = featureToggleStore;
@@ -20,6 +20,7 @@ class InstanceStatsService {
20
20
  this.eventStore = eventStore;
21
21
  this.clientInstanceStore = clientInstanceStore;
22
22
  this.logger = getLogger('services/stats-service.js');
23
+ this.getActiveUsers = getActiveUsers;
23
24
  }
24
25
  async refreshStatsSnapshot() {
25
26
  try {
@@ -34,6 +35,9 @@ class InstanceStatsService {
34
35
  this.logger.warn('Unable to retrieve statistics. This will be retried', error);
35
36
  }
36
37
  }
38
+ getProjectModeCount() {
39
+ return this.projectStore.getProjectModeCounts();
40
+ }
37
41
  getToggleCount() {
38
42
  return this.featureToggleStore.count({
39
43
  archived: false,
@@ -52,10 +56,11 @@ class InstanceStatsService {
52
56
  */
53
57
  async getStats() {
54
58
  const versionInfo = this.versionService.getVersionInfo();
55
- const [featureToggles, users, projects, contextFields, groups, roles, customRootRoles, customRootRolesInUse, environments, segments, strategies, SAMLenabled, OIDCenabled, clientApps, featureExports, featureImports,] = await Promise.all([
59
+ const [featureToggles, users, activeUsers, projects, contextFields, groups, roles, customRootRoles, customRootRolesInUse, environments, segments, strategies, SAMLenabled, OIDCenabled, clientApps, featureExports, featureImports,] = await Promise.all([
56
60
  this.getToggleCount(),
57
61
  this.userStore.count(),
58
- this.projectStore.count(),
62
+ this.getActiveUsers(),
63
+ this.getProjectModeCount(),
59
64
  this.contextFieldStore.count(),
60
65
  this.groupStore.count(),
61
66
  this.roleStore.count(),
@@ -76,6 +81,7 @@ class InstanceStatsService {
76
81
  versionOSS: versionInfo.current.oss,
77
82
  versionEnterprise: versionInfo.current.enterprise,
78
83
  users,
84
+ activeUsers,
79
85
  featureToggles,
80
86
  projects,
81
87
  contextFields,
@@ -117,8 +123,11 @@ class InstanceStatsService {
117
123
  }
118
124
  async getSignedStats() {
119
125
  const instanceStats = await this.getStats();
120
- const sum = (0, js_sha256_1.sha256)(`${instanceStats.instanceId}${instanceStats.users}${instanceStats.featureToggles}${instanceStats.projects}${instanceStats.roles}${instanceStats.groups}${instanceStats.environments}${instanceStats.segments}`);
121
- return { ...instanceStats, sum };
126
+ const totalProjects = instanceStats.projects
127
+ .map((p) => p.count)
128
+ .reduce((a, b) => a + b, 0);
129
+ const sum = (0, js_sha256_1.sha256)(`${instanceStats.instanceId}${instanceStats.users}${instanceStats.featureToggles}${totalProjects}${instanceStats.roles}${instanceStats.groups}${instanceStats.environments}${instanceStats.segments}`);
130
+ return { ...instanceStats, sum, projects: totalProjects };
122
131
  }
123
132
  }
124
133
  exports.InstanceStatsService = InstanceStatsService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-stats-service.js","sourceRoot":"","sources":["../../../../src/lib/features/instance-stats/instance-stats-service.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const test_config_1 = require("../../test/config/test-config");
6
+ const test_config_1 = require("../../../test/config/test-config");
7
7
  const instance_stats_service_1 = require("./instance-stats-service");
8
- const store_1 = __importDefault(require("../../test/fixtures/store"));
9
- const version_service_1 = __importDefault(require("./version-service"));
8
+ const store_1 = __importDefault(require("../../../test/fixtures/store"));
9
+ const version_service_1 = __importDefault(require("../../services/version-service"));
10
+ const getActiveUsers_1 = require("./getActiveUsers");
10
11
  let instanceStatsService;
11
12
  let versionService;
12
13
  beforeEach(() => {
13
14
  const config = (0, test_config_1.createTestConfig)();
14
15
  const stores = (0, store_1.default)();
15
16
  versionService = new version_service_1.default(stores, config);
16
- instanceStatsService = new instance_stats_service_1.InstanceStatsService(stores, config, versionService);
17
+ instanceStatsService = new instance_stats_service_1.InstanceStatsService(stores, config, versionService, (0, getActiveUsers_1.createFakeGetActiveUsers)());
17
18
  jest.spyOn(instanceStatsService, 'refreshStatsSnapshot');
18
19
  jest.spyOn(instanceStatsService, 'getStats');
19
20
  // validate initial state without calls to these methods
@@ -26,7 +27,7 @@ test('get snapshot should not call getStats', async () => {
26
27
  // subsequent calls to getStatsSnapshot don't call getStats
27
28
  for (let i = 0; i < 3; i++) {
28
29
  const stats = instanceStatsService.getStatsSnapshot();
29
- expect(stats.clientApps).toStrictEqual([
30
+ expect(stats?.clientApps).toStrictEqual([
30
31
  { range: 'allTime', count: 0 },
31
32
  { range: '30d', count: 0 },
32
33
  { range: '7d', count: 0 },
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-stats-service.test.js","sourceRoot":"","sources":["../../../../src/lib/features/instance-stats/instance-stats-service.test.ts"],"names":[],"mappings":";;;;;AAAA,kEAAoE;AACpE,qEAAgE;AAChE,yEAAwD;AACxD,qFAA4D;AAC5D,qDAA4D;AAE5D,IAAI,oBAA0C,CAAC;AAC/C,IAAI,cAA8B,CAAC;AAEnC,UAAU,CAAC,GAAG,EAAE;IACZ,MAAM,MAAM,GAAG,IAAA,8BAAgB,GAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAA,eAAY,GAAE,CAAC;IAC9B,cAAc,GAAG,IAAI,yBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,oBAAoB,GAAG,IAAI,6CAAoB,CAC3C,MAAM,EACN,MAAM,EACN,cAAc,EACd,IAAA,yCAAwB,GAAE,CAC7B,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAE7C,wDAAwD;IACxD,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;IACrD,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;IAClD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAEzD,2DAA2D;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;QACtD,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,aAAa,CAAC;YACpC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;YAC9B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;YAC1B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;SAC5B,CAAC,CAAC;KACN;IACD,yEAAyE;IACzE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;IAC9E,MAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;AAC3E,CAAC,CAAC,CAAC"}
@@ -9,15 +9,14 @@ const no_logger_1 = __importDefault(require("../../../test/fixtures/no-logger"))
9
9
  let app;
10
10
  let db;
11
11
  beforeAll(async () => {
12
- db = await (0, database_init_1.default)('advanced_playground', no_logger_1.default, {
13
- experimental: { flags: { strategyVariant: true } },
14
- });
12
+ db = await (0, database_init_1.default)('advanced_playground', no_logger_1.default);
15
13
  app = await (0, test_helper_1.setupAppWithCustomConfig)(db.stores, {
16
14
  experimental: {
17
15
  flags: {
18
16
  advancedPlayground: true,
19
17
  strictSchemaValidation: true,
20
18
  strategyVariant: true,
19
+ privateProjects: true,
21
20
  },
22
21
  },
23
22
  }, db.rawDatabase);
@@ -1 +1 @@
1
- {"version":3,"file":"advanced-playground.test.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/advanced-playground.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advanced-playground.test.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/advanced-playground.test.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ interface Override {
5
5
  values: string[];
6
6
  }
7
7
  export interface Payload {
8
- type: 'string' | 'csv' | 'json';
8
+ type: 'string' | 'csv' | 'json' | 'number';
9
9
  value: string;
10
10
  }
11
11
  export interface VariantDefinition {
@@ -1,5 +1,5 @@
1
1
  declare type Dict<T> = {
2
- [K in keyof T]: string[];
2
+ [K in keyof T]: (string | number)[];
3
3
  };
4
4
  export declare const splitByComma: <T extends Record<string, unknown>>(obj: T) => Dict<T>;
5
5
  export declare const generateCombinations: <T extends Record<string, unknown>>(obj: Dict<T>) => T[];
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateObjectCombinations = exports.generateCombinations = exports.splitByComma = void 0;
4
- const splitByComma = (obj) => Object.fromEntries(Object.entries(obj).map(([key, value]) => [
5
- key,
6
- typeof value === 'string' ? value.split(',') : [value],
7
- ]));
4
+ const splitByComma = (obj) => {
5
+ return Object.entries(obj).reduce((acc, [key, value]) => {
6
+ if (key === 'properties' && typeof value === 'object') {
7
+ const nested = (0, exports.splitByComma)(value);
8
+ return { ...acc, ...nested };
9
+ }
10
+ else if (typeof value === 'string') {
11
+ return { ...acc, [key]: value.split(',') };
12
+ }
13
+ else {
14
+ return { ...acc, [key]: [value] };
15
+ }
16
+ }, {});
17
+ };
8
18
  exports.splitByComma = splitByComma;
9
19
  const generateCombinations = (obj) => {
10
20
  const keys = Object.keys(obj);
@@ -1 +1 @@
1
- {"version":3,"file":"generateObjectCombinations.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/generateObjectCombinations.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,CACxB,GAAM,EACC,EAAE,CACT,MAAM,CAAC,WAAW,CACd,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IACtC,GAAG;IACH,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;CACzD,CAAC,CACM,CAAC;AARJ,QAAA,YAAY,gBAQR;AAEV,MAAM,oBAAoB,GAAG,CAChC,GAAY,EACT,EAAE;IACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB,CAAC;IAE7C,OAAO,IAAI,CAAC,MAAM,CACd,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACb,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACvB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CACzD,EACL,CAAC,EAAE,CAAiB,CAChB,CAAC;AACb,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B;AAEK,MAAM,0BAA0B,GAAG,CACtC,GAAM,EACH,EAAE;IACL,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC;IACnC,OAAO,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AALW,QAAA,0BAA0B,8BAKrC"}
1
+ {"version":3,"file":"generateObjectCombinations.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/generateObjectCombinations.ts"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,CACxB,GAAM,EACC,EAAE;IACT,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpD,IAAI,GAAG,KAAK,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACnD,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,KAAY,CAAC,CAAC;YAC1C,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;SAChC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAClC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;SAC9C;aAAM;YACH,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;SACrC;IACL,CAAC,EAAE,EAAa,CAAC,CAAC;AACtB,CAAC,CAAC;AAbW,QAAA,YAAY,gBAavB;AAEK,MAAM,oBAAoB,GAAG,CAChC,GAAY,EACT,EAAE;IACL,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB,CAAC;IAE7C,OAAO,IAAI,CAAC,MAAM,CACd,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CACb,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACvB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CACzD,EACL,CAAC,EAAE,CAAiB,CAChB,CAAC;AACb,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B;AAEK,MAAM,0BAA0B,GAAG,CACtC,GAAM,EACH,EAAE;IACL,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC;IACnC,OAAO,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AALW,QAAA,0BAA0B,8BAKrC"}
@@ -31,4 +31,25 @@ test('should generate all combinations correctly when only one combination', ()
31
31
  const actualCombinations = (0, generateObjectCombinations_1.generateObjectCombinations)(obj);
32
32
  expect(actualCombinations).toEqual(expectedCombinations);
33
33
  });
34
+ test('should generate combinations with nested properties', () => {
35
+ const obj = {
36
+ sessionId: '1,2',
37
+ nonString: 2,
38
+ properties: {
39
+ nonString: 1,
40
+ channels: 'internet',
41
+ appName: 'a,b,c',
42
+ },
43
+ };
44
+ const expectedCombinations = [
45
+ { sessionId: '1', appName: 'a', channels: 'internet', nonString: 1 },
46
+ { sessionId: '1', appName: 'b', channels: 'internet', nonString: 1 },
47
+ { sessionId: '1', appName: 'c', channels: 'internet', nonString: 1 },
48
+ { sessionId: '2', appName: 'a', channels: 'internet', nonString: 1 },
49
+ { sessionId: '2', appName: 'b', channels: 'internet', nonString: 1 },
50
+ { sessionId: '2', appName: 'c', channels: 'internet', nonString: 1 },
51
+ ];
52
+ const actualCombinations = (0, generateObjectCombinations_1.generateObjectCombinations)(obj);
53
+ expect(actualCombinations).toEqual(expectedCombinations);
54
+ });
34
55
  //# sourceMappingURL=generateObjectCombinations.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateObjectCombinations.test.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/generateObjectCombinations.test.ts"],"names":[],"mappings":";;AAAA,6EAA0E;AAE1E,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACpD,MAAM,GAAG,GAAG;QACR,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,CAAC;KACf,CAAC;IAEF,MAAM,oBAAoB,GAAG;QACzB,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;QACpE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;QACpE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;QACpE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;QACpE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;QACpE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;KACvE,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,uDAA0B,EAAC,GAAG,CAAC,CAAC;IAE3D,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;IAC9E,MAAM,GAAG,GAAG;QACR,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,UAAU;KACvB,CAAC;IAEF,MAAM,oBAAoB,GAAG;QACzB,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE;KACzD,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,uDAA0B,EAAC,GAAG,CAAC,CAAC;IAE3D,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"generateObjectCombinations.test.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/generateObjectCombinations.test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ALL } from '../../types/models/api-token';
4
4
  import { PlaygroundFeatureSchema } from 'lib/openapi/spec/playground-feature-schema';
5
5
  import { IUnleashConfig } from 'lib/types';
6
6
  import { EvaluatedPlaygroundStrategy } from 'lib/features/playground/feature-evaluator/client';
7
- import { AdvancedPlaygroundFeatureSchema } from '../../openapi/spec/advanced-playground-feature-schema';
7
+ import { AdvancedPlaygroundFeatureSchema } from '../../openapi';
8
8
  import { AdvancedPlaygroundEnvironmentFeatureSchema } from '../../openapi/spec/advanced-playground-environment-feature-schema';
9
9
  import { playgroundStrategyEvaluation } from 'lib/openapi';
10
10
  export declare type AdvancedPlaygroundEnvironmentFeatureEvaluationResult = Omit<AdvancedPlaygroundEnvironmentFeatureSchema, 'strategies'> & {
@@ -26,8 +26,10 @@ export declare class PlaygroundService {
26
26
  private readonly logger;
27
27
  private readonly featureToggleService;
28
28
  private readonly segmentService;
29
- constructor(config: IUnleashConfig, { featureToggleServiceV2, segmentService, }: Pick<IUnleashServices, 'featureToggleServiceV2' | 'segmentService'>);
30
- evaluateAdvancedQuery(projects: typeof ALL | string[], environments: string[], context: SdkContextSchema, limit: number): Promise<AdvancedPlaygroundFeatureEvaluationResult[]>;
29
+ private flagResolver;
30
+ private privateProjectChecker;
31
+ constructor(config: IUnleashConfig, { featureToggleServiceV2, segmentService, privateProjectChecker, }: Pick<IUnleashServices, 'featureToggleServiceV2' | 'segmentService' | 'privateProjectChecker'>);
32
+ evaluateAdvancedQuery(projects: typeof ALL | string[], environments: string[], context: SdkContextSchema, limit: number, userId: number): Promise<AdvancedPlaygroundFeatureEvaluationResult[]>;
31
33
  private evaluate;
32
34
  private resolveFeatures;
33
35
  evaluateQuery(projects: typeof ALL | string[], environment: string, context: SdkContextSchema): Promise<PlaygroundFeatureEvaluationResult[]>;
@@ -11,14 +11,29 @@ const lodash_groupby_1 = __importDefault(require("lodash.groupby"));
11
11
  const util_1 = require("../../util");
12
12
  const validateQueryComplexity_1 = require("./validateQueryComplexity");
13
13
  class PlaygroundService {
14
- constructor(config, { featureToggleServiceV2, segmentService, }) {
14
+ constructor(config, { featureToggleServiceV2, segmentService, privateProjectChecker, }) {
15
15
  this.logger = config.getLogger('services/playground-service.ts');
16
+ this.flagResolver = config.flagResolver;
16
17
  this.featureToggleService = featureToggleServiceV2;
17
18
  this.segmentService = segmentService;
19
+ this.privateProjectChecker = privateProjectChecker;
18
20
  }
19
- async evaluateAdvancedQuery(projects, environments, context, limit) {
21
+ async evaluateAdvancedQuery(projects, environments, context, limit, userId) {
20
22
  const segments = await this.segmentService.getActive();
21
- const environmentFeatures = await Promise.all(environments.map((env) => this.resolveFeatures(projects, env)));
23
+ let filteredProjects;
24
+ if (this.flagResolver.isEnabled('privateProjects')) {
25
+ const projectAccess = await this.privateProjectChecker.getUserAccessibleProjects(userId);
26
+ if (projectAccess.mode === 'all') {
27
+ filteredProjects = projects;
28
+ }
29
+ else if (projects === api_token_1.ALL) {
30
+ filteredProjects = projectAccess.projects;
31
+ }
32
+ else {
33
+ filteredProjects = projects.filter((project) => projectAccess.projects.includes(project));
34
+ }
35
+ }
36
+ const environmentFeatures = await Promise.all(environments.map((env) => this.resolveFeatures(filteredProjects, env)));
22
37
  const contexts = (0, generateObjectCombinations_1.generateObjectCombinations)(context);
23
38
  (0, validateQueryComplexity_1.validateQueryComplexity)(environments.length, environmentFeatures[0]?.features.length ?? 0, contexts.length, limit);
24
39
  const results = await Promise.all(environmentFeatures.flatMap(({ features, featureProject, environment }) => contexts.map((singleContext) => this.evaluate({
@@ -1 +1 @@
1
- {"version":3,"file":"playground-service.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/playground-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playground-service.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/playground-service.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,12 @@ import { PlaygroundResponseSchema } from '../../openapi/spec/playground-response
6
6
  import { PlaygroundRequestSchema } from '../../openapi/spec/playground-request-schema';
7
7
  import { AdvancedPlaygroundRequestSchema } from '../../openapi/spec/advanced-playground-request-schema';
8
8
  import { AdvancedPlaygroundResponseSchema } from '../../openapi/spec/advanced-playground-response-schema';
9
+ import { IAuthRequest } from '../../routes/unleash-types';
9
10
  export default class PlaygroundController extends Controller {
10
11
  private openApiService;
11
12
  private playgroundService;
12
13
  private flagResolver;
13
14
  constructor(config: IUnleashConfig, { openApiService, playgroundService, }: Pick<IUnleashServices, 'openApiService' | 'playgroundService'>);
14
15
  evaluateContext(req: Request<any, any, PlaygroundRequestSchema>, res: Response<PlaygroundResponseSchema>): Promise<void>;
15
- evaluateAdvancedContext(req: Request<any, any, AdvancedPlaygroundRequestSchema>, res: Response<AdvancedPlaygroundResponseSchema>): Promise<void>;
16
+ evaluateAdvancedContext(req: IAuthRequest<any, any, AdvancedPlaygroundRequestSchema>, res: Response<AdvancedPlaygroundResponseSchema>): Promise<void>;
16
17
  }
@@ -61,12 +61,13 @@ class PlaygroundController extends controller_1.default {
61
61
  this.openApiService.respondWithValidation(200, res, playground_response_schema_1.playgroundResponseSchema.$id, response);
62
62
  }
63
63
  async evaluateAdvancedContext(req, res) {
64
+ const { user } = req;
64
65
  // used for runtime control, do not remove
65
66
  const { payload } = this.flagResolver.getVariant('advancedPlayground');
66
67
  const limit = payload?.value && Number.isInteger(parseInt(payload?.value))
67
68
  ? parseInt(payload?.value)
68
69
  : 15000;
69
- const result = await this.playgroundService.evaluateAdvancedQuery(req.body.projects || '*', req.body.environments, req.body.context, limit);
70
+ const result = await this.playgroundService.evaluateAdvancedQuery(req.body.projects || '*', req.body.environments, req.body.context, limit, user.id);
70
71
  const response = (0, playground_view_model_1.advancedPlaygroundViewModel)(req.body, result);
71
72
  res.json(response);
72
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playground.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/playground.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playground.js","sourceRoot":"","sources":["../../../../src/lib/features/playground/playground.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Db, IUnleashConfig } from 'lib/server-impl';
2
+ import { PrivateProjectChecker } from './privateProjectChecker';
3
+ import { FakePrivateProjectChecker } from './fakePrivateProjectChecker';
4
+ export declare const createPrivateProjectChecker: (db: Db, config: IUnleashConfig) => PrivateProjectChecker;
5
+ export declare const createFakePrivateProjectChecker: () => FakePrivateProjectChecker;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createFakePrivateProjectChecker = exports.createPrivateProjectChecker = void 0;
7
+ const privateProjectStore_1 = __importDefault(require("./privateProjectStore"));
8
+ const privateProjectChecker_1 = require("./privateProjectChecker");
9
+ const fakePrivateProjectChecker_1 = require("./fakePrivateProjectChecker");
10
+ const createPrivateProjectChecker = (db, config) => {
11
+ const { getLogger } = config;
12
+ const privateProjectStore = new privateProjectStore_1.default(db, getLogger);
13
+ return new privateProjectChecker_1.PrivateProjectChecker({
14
+ privateProjectStore: privateProjectStore,
15
+ }, config);
16
+ };
17
+ exports.createPrivateProjectChecker = createPrivateProjectChecker;
18
+ const createFakePrivateProjectChecker = () => {
19
+ return new fakePrivateProjectChecker_1.FakePrivateProjectChecker();
20
+ };
21
+ exports.createFakePrivateProjectChecker = createFakePrivateProjectChecker;
22
+ //# sourceMappingURL=createPrivateProjectChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPrivateProjectChecker.js","sourceRoot":"","sources":["../../../../src/lib/features/private-project/createPrivateProjectChecker.ts"],"names":[],"mappings":";;;;;;AACA,gFAAwD;AACxD,mEAAgE;AAChE,2EAAwE;AAEjE,MAAM,2BAA2B,GAAG,CACvC,EAAM,EACN,MAAsB,EACD,EAAE;IACvB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC7B,MAAM,mBAAmB,GAAG,IAAI,6BAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAEnE,OAAO,IAAI,6CAAqB,CAC5B;QACI,mBAAmB,EAAE,mBAAmB;KAC3C,EACD,MAAM,CACT,CAAC;AACN,CAAC,CAAC;AAbW,QAAA,2BAA2B,+BAatC;AAEK,MAAM,+BAA+B,GACxC,GAA8B,EAAE;IAC5B,OAAO,IAAI,qDAAyB,EAAE,CAAC;AAC3C,CAAC,CAAC;AAHO,QAAA,+BAA+B,mCAGtC"}
@@ -0,0 +1,7 @@
1
+ import { IPrivateProjectChecker } from './privateProjectCheckerType';
2
+ import { Promise } from 'ts-toolbelt/out/Any/Promise';
3
+ import { ProjectAccess } from './privateProjectStore';
4
+ export declare class FakePrivateProjectChecker implements IPrivateProjectChecker {
5
+ getUserAccessibleProjects(userId: number): Promise<ProjectAccess>;
6
+ hasAccessToProject(userId: number, projectId: string): Promise<boolean>;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FakePrivateProjectChecker = void 0;
4
+ class FakePrivateProjectChecker {
5
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
6
+ async getUserAccessibleProjects(userId) {
7
+ throw new Error('Method not implemented.');
8
+ }
9
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
+ hasAccessToProject(userId, projectId) {
11
+ throw new Error('Method not implemented.');
12
+ }
13
+ }
14
+ exports.FakePrivateProjectChecker = FakePrivateProjectChecker;
15
+ //# sourceMappingURL=fakePrivateProjectChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakePrivateProjectChecker.js","sourceRoot":"","sources":["../../../../src/lib/features/private-project/fakePrivateProjectChecker.ts"],"names":[],"mappings":";;;AAIA,MAAa,yBAAyB;IAClC,6DAA6D;IAC7D,KAAK,CAAC,yBAAyB,CAAC,MAAc;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,6DAA6D;IAC7D,kBAAkB,CAAC,MAAc,EAAE,SAAiB;QAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;CACJ;AAVD,8DAUC"}
@@ -0,0 +1,10 @@
1
+ import { IUnleashConfig, IUnleashStores } from '../../types';
2
+ import { IPrivateProjectChecker } from './privateProjectCheckerType';
3
+ import { ProjectAccess } from './privateProjectStore';
4
+ export declare class PrivateProjectChecker implements IPrivateProjectChecker {
5
+ private privateProjectStore;
6
+ private isEnterprise;
7
+ constructor({ privateProjectStore }: Pick<IUnleashStores, 'privateProjectStore'>, { isEnterprise }: Pick<IUnleashConfig, 'isEnterprise'>);
8
+ getUserAccessibleProjects(userId: number): Promise<ProjectAccess>;
9
+ hasAccessToProject(userId: number, projectId: string): Promise<boolean>;
10
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrivateProjectChecker = void 0;
4
+ const privateProjectStore_1 = require("./privateProjectStore");
5
+ class PrivateProjectChecker {
6
+ constructor({ privateProjectStore }, { isEnterprise }) {
7
+ this.privateProjectStore = privateProjectStore;
8
+ this.isEnterprise = isEnterprise;
9
+ }
10
+ async getUserAccessibleProjects(userId) {
11
+ return this.isEnterprise
12
+ ? this.privateProjectStore.getUserAccessibleProjects(userId)
13
+ : Promise.resolve(privateProjectStore_1.ALL_PROJECT_ACCESS);
14
+ }
15
+ async hasAccessToProject(userId, projectId) {
16
+ const projectAccess = await this.getUserAccessibleProjects(userId);
17
+ return (projectAccess.mode === 'all' ||
18
+ projectAccess.projects.includes(projectId));
19
+ }
20
+ }
21
+ exports.PrivateProjectChecker = PrivateProjectChecker;
22
+ //# sourceMappingURL=privateProjectChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privateProjectChecker.js","sourceRoot":"","sources":["../../../../src/lib/features/private-project/privateProjectChecker.ts"],"names":[],"mappings":";;;AAGA,+DAA0E;AAE1E,MAAa,qBAAqB;IAK9B,YACI,EAAE,mBAAmB,EAA+C,EACpE,EAAE,YAAY,EAAwC;QAEtD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,MAAc;QAC1C,OAAO,IAAI,CAAC,YAAY;YACpB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAC5D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAkB,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACpB,MAAc,EACd,SAAiB;QAEjB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACnE,OAAO,CACH,aAAa,CAAC,IAAI,KAAK,KAAK;YAC5B,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC7C,CAAC;IACN,CAAC;CACJ;AA7BD,sDA6BC"}
@@ -0,0 +1,5 @@
1
+ import { ProjectAccess } from './privateProjectStore';
2
+ export interface IPrivateProjectChecker {
3
+ getUserAccessibleProjects(userId: number): Promise<ProjectAccess>;
4
+ hasAccessToProject(userId: number, projectId: string): Promise<boolean>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=privateProjectCheckerType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privateProjectCheckerType.js","sourceRoot":"","sources":["../../../../src/lib/features/private-project/privateProjectCheckerType.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { Db } from '../../db/db';
2
+ import { LogProvider } from '../../logger';
3
+ import { IPrivateProjectStore } from './privateProjectStoreType';
4
+ export declare type ProjectAccess = {
5
+ mode: 'all';
6
+ } | {
7
+ mode: 'limited';
8
+ projects: string[];
9
+ };
10
+ export declare const ALL_PROJECT_ACCESS: ProjectAccess;
11
+ declare class PrivateProjectStore implements IPrivateProjectStore {
12
+ private db;
13
+ private logger;
14
+ constructor(db: Db, getLogger: LogProvider);
15
+ destroy(): void;
16
+ getUserAccessibleProjects(userId: number): Promise<ProjectAccess>;
17
+ }
18
+ export default PrivateProjectStore;