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
@@ -30,6 +30,7 @@ const defaultContext = {
30
30
  { value: 'south', description: 'south-desc' },
31
31
  ],
32
32
  };
33
+ const defaultFeatureName = 'first_feature';
33
34
  const createToggle = async (toggle, strategy = defaultStrategy, tags = [], projectId = 'default', username = 'test') => {
34
35
  await app.services.featureToggleServiceV2.createFeatureToggle(projectId, toggle, username);
35
36
  if (strategy) {
@@ -52,7 +53,7 @@ const createContext = async (context = defaultContext) => {
52
53
  const createVariants = async (feature, variants) => {
53
54
  await app.services.featureToggleService.saveVariantsOnEnv(types_1.DEFAULT_PROJECT, feature, util_1.DEFAULT_ENV, variants, new user_1.default({ id: 1 }));
54
55
  };
55
- const createProjects = async (projects = [types_1.DEFAULT_PROJECT]) => {
56
+ const createProjects = async (projects = [types_1.DEFAULT_PROJECT], featureLimit = 2) => {
56
57
  await db.stores.environmentStore.create({
57
58
  name: util_1.DEFAULT_ENV,
58
59
  type: 'production',
@@ -63,6 +64,7 @@ const createProjects = async (projects = [types_1.DEFAULT_PROJECT]) => {
63
64
  description: '',
64
65
  id: project,
65
66
  mode: 'open',
67
+ featureLimit,
66
68
  });
67
69
  await app.linkProjectToEnvironment(project, util_1.DEFAULT_ENV);
68
70
  }
@@ -85,6 +87,7 @@ beforeAll(async () => {
85
87
  experimental: {
86
88
  flags: {
87
89
  featuresExportImport: true,
90
+ featureNamingPattern: true,
88
91
  },
89
92
  },
90
93
  }, db.rawDatabase);
@@ -131,13 +134,13 @@ describe('import-export for project-specific segments', () => {
131
134
  segments: [segment.id],
132
135
  };
133
136
  await createToggle({
134
- name: 'first_feature',
137
+ name: defaultFeatureName,
135
138
  description: 'the #1 feature',
136
139
  }, strategy, [], project);
137
140
  const { body } = await app.request
138
141
  .post('/api/admin/features-batch/export')
139
142
  .send({
140
- features: ['first_feature'],
143
+ features: [defaultFeatureName],
141
144
  environment: 'default',
142
145
  })
143
146
  .set('Content-Type', 'application/json')
@@ -146,7 +149,7 @@ describe('import-export for project-specific segments', () => {
146
149
  expect(body).toMatchObject({
147
150
  features: [
148
151
  {
149
- name: 'first_feature',
152
+ name: defaultFeatureName,
150
153
  },
151
154
  ],
152
155
  featureStrategies: [resultStrategy],
@@ -154,7 +157,7 @@ describe('import-export for project-specific segments', () => {
154
157
  {
155
158
  enabled: false,
156
159
  environment: 'default',
157
- featureName: 'first_feature',
160
+ featureName: defaultFeatureName,
158
161
  },
159
162
  ],
160
163
  segments: [
@@ -183,7 +186,7 @@ test('exports features', async () => {
183
186
  segments: [segment.id],
184
187
  };
185
188
  await createToggle({
186
- name: 'first_feature',
189
+ name: defaultFeatureName,
187
190
  description: 'the #1 feature',
188
191
  }, strategy);
189
192
  await createToggle({
@@ -193,7 +196,7 @@ test('exports features', async () => {
193
196
  const { body } = await app.request
194
197
  .post('/api/admin/features-batch/export')
195
198
  .send({
196
- features: ['first_feature'],
199
+ features: [defaultFeatureName],
197
200
  environment: 'default',
198
201
  })
199
202
  .set('Content-Type', 'application/json')
@@ -202,7 +205,7 @@ test('exports features', async () => {
202
205
  expect(body).toMatchObject({
203
206
  features: [
204
207
  {
205
- name: 'first_feature',
208
+ name: defaultFeatureName,
206
209
  },
207
210
  ],
208
211
  featureStrategies: [resultStrategy],
@@ -210,7 +213,7 @@ test('exports features', async () => {
210
213
  {
211
214
  enabled: false,
212
215
  environment: 'default',
213
- featureName: 'first_feature',
216
+ featureName: defaultFeatureName,
214
217
  },
215
218
  ],
216
219
  segments: [
@@ -235,7 +238,7 @@ test('exports features by tag', async () => {
235
238
  ],
236
239
  };
237
240
  await createToggle({
238
- name: 'first_feature',
241
+ name: defaultFeatureName,
239
242
  description: 'the #1 feature',
240
243
  }, strategy, ['mytag']);
241
244
  await createToggle({
@@ -254,7 +257,7 @@ test('exports features by tag', async () => {
254
257
  expect(body).toMatchObject({
255
258
  features: [
256
259
  {
257
- name: 'first_feature',
260
+ name: defaultFeatureName,
258
261
  },
259
262
  ],
260
263
  featureStrategies: [resultStrategy],
@@ -262,7 +265,7 @@ test('exports features by tag', async () => {
262
265
  {
263
266
  enabled: false,
264
267
  environment: 'default',
265
- featureName: 'first_feature',
268
+ featureName: defaultFeatureName,
266
269
  },
267
270
  ],
268
271
  });
@@ -298,7 +301,7 @@ test('should export custom context fields from strategies and variants', async (
298
301
  ],
299
302
  };
300
303
  await createToggle({
301
- name: 'first_feature',
304
+ name: defaultFeatureName,
302
305
  description: 'the #1 feature',
303
306
  }, strategy);
304
307
  const variantStickinessContext = {
@@ -317,7 +320,7 @@ test('should export custom context fields from strategies and variants', async (
317
320
  };
318
321
  await createContext(variantStickinessContext);
319
322
  await createContext(variantOverridesContext);
320
- await createVariants('first_feature', [
323
+ await createVariants(defaultFeatureName, [
321
324
  {
322
325
  name: 'irrelevant',
323
326
  weight: 1000,
@@ -334,7 +337,7 @@ test('should export custom context fields from strategies and variants', async (
334
337
  const { body } = await app.request
335
338
  .post('/api/admin/features-batch/export')
336
339
  .send({
337
- features: ['first_feature'],
340
+ features: [defaultFeatureName],
338
341
  environment: 'default',
339
342
  })
340
343
  .set('Content-Type', 'application/json')
@@ -343,7 +346,7 @@ test('should export custom context fields from strategies and variants', async (
343
346
  expect(body).toMatchObject({
344
347
  features: [
345
348
  {
346
- name: 'first_feature',
349
+ name: defaultFeatureName,
347
350
  },
348
351
  ],
349
352
  featureStrategies: [resultStrategy],
@@ -351,7 +354,7 @@ test('should export custom context fields from strategies and variants', async (
351
354
  {
352
355
  enabled: false,
353
356
  environment: 'default',
354
- featureName: 'first_feature',
357
+ featureName: defaultFeatureName,
355
358
  },
356
359
  ],
357
360
  contextFields: [
@@ -363,7 +366,7 @@ test('should export custom context fields from strategies and variants', async (
363
366
  });
364
367
  });
365
368
  test('should export tags', async () => {
366
- const featureName = 'first_feature';
369
+ const featureName = defaultFeatureName;
367
370
  await createProjects();
368
371
  await createToggle({
369
372
  name: featureName,
@@ -372,7 +375,7 @@ test('should export tags', async () => {
372
375
  const { body } = await app.request
373
376
  .post('/api/admin/features-batch/export')
374
377
  .send({
375
- features: ['first_feature'],
378
+ features: [defaultFeatureName],
376
379
  environment: 'default',
377
380
  })
378
381
  .set('Content-Type', 'application/json')
@@ -381,7 +384,7 @@ test('should export tags', async () => {
381
384
  expect(body).toMatchObject({
382
385
  features: [
383
386
  {
384
- name: 'first_feature',
387
+ name: defaultFeatureName,
385
388
  },
386
389
  ],
387
390
  featureStrategies: [resultStrategy],
@@ -389,7 +392,7 @@ test('should export tags', async () => {
389
392
  {
390
393
  enabled: false,
391
394
  environment: 'default',
392
- featureName: 'first_feature',
395
+ featureName: defaultFeatureName,
393
396
  },
394
397
  ],
395
398
  featureTags: [{ featureName, tagValue: 'tag1' }],
@@ -398,7 +401,7 @@ test('should export tags', async () => {
398
401
  test('returns no features, when no feature was requested', async () => {
399
402
  await createProjects();
400
403
  await createToggle({
401
- name: 'first_feature',
404
+ name: defaultFeatureName,
402
405
  description: 'the #1 feature',
403
406
  });
404
407
  await createToggle({
@@ -415,7 +418,6 @@ test('returns no features, when no feature was requested', async () => {
415
418
  .expect(200);
416
419
  expect(body.features).toHaveLength(0);
417
420
  });
418
- const defaultFeature = 'first_feature';
419
421
  const variants = [
420
422
  {
421
423
  name: 'variantA',
@@ -442,7 +444,7 @@ const variants = [
442
444
  ];
443
445
  const exportedFeature = {
444
446
  project: 'old_project',
445
- name: 'first_feature',
447
+ name: defaultFeatureName,
446
448
  type: 'release',
447
449
  };
448
450
  const anotherExportedFeature = {
@@ -459,7 +461,7 @@ const constraints = [
459
461
  },
460
462
  ];
461
463
  const exportedStrategy = {
462
- featureName: defaultFeature,
464
+ featureName: defaultFeatureName,
463
465
  id: '798cb25a-2abd-47bd-8a95-40ec13472309',
464
466
  name: 'default',
465
467
  parameters: {},
@@ -467,17 +469,17 @@ const exportedStrategy = {
467
469
  };
468
470
  const tags = [
469
471
  {
470
- featureName: defaultFeature,
472
+ featureName: defaultFeatureName,
471
473
  tagType: 'simple',
472
474
  tagValue: 'tag1',
473
475
  },
474
476
  {
475
- featureName: defaultFeature,
477
+ featureName: defaultFeatureName,
476
478
  tagType: 'simple',
477
479
  tagValue: 'tag2',
478
480
  },
479
481
  {
480
- featureName: defaultFeature,
482
+ featureName: defaultFeatureName,
481
483
  tagType: 'special_tag',
482
484
  tagValue: 'feature_tagged',
483
485
  },
@@ -500,8 +502,8 @@ const defaultImportPayload = {
500
502
  {
501
503
  enabled: true,
502
504
  environment: 'irrelevant',
503
- featureName: defaultFeature,
504
- name: defaultFeature,
505
+ featureName: defaultFeatureName,
506
+ name: defaultFeatureName,
505
507
  variants,
506
508
  },
507
509
  ],
@@ -552,20 +554,20 @@ const validateImport = (importPayload, status = 200) => app.request
552
554
  test('import features to existing project and environment', async () => {
553
555
  await createProjects();
554
556
  await app.importToggles(defaultImportPayload);
555
- const { body: importedFeature } = await getFeature(defaultFeature);
557
+ const { body: importedFeature } = await getFeature(defaultFeatureName);
556
558
  expect(importedFeature).toMatchObject({
557
- name: 'first_feature',
559
+ name: defaultFeatureName,
558
560
  project: types_1.DEFAULT_PROJECT,
559
561
  variants,
560
562
  });
561
- const { body: importedFeatureEnvironment } = await getFeatureEnvironment(defaultFeature);
563
+ const { body: importedFeatureEnvironment } = await getFeatureEnvironment(defaultFeatureName);
562
564
  expect(importedFeatureEnvironment).toMatchObject({
563
- name: defaultFeature,
565
+ name: defaultFeatureName,
564
566
  environment: util_1.DEFAULT_ENV,
565
567
  enabled: true,
566
568
  strategies: [
567
569
  {
568
- featureName: defaultFeature,
570
+ featureName: defaultFeatureName,
569
571
  parameters: {},
570
572
  constraints,
571
573
  sortOrder: 0,
@@ -573,7 +575,7 @@ test('import features to existing project and environment', async () => {
573
575
  },
574
576
  ],
575
577
  });
576
- const { body: importedTags } = await getTags(defaultFeature);
578
+ const { body: importedTags } = await getTags(defaultFeatureName);
577
579
  expect(importedTags).toMatchObject({
578
580
  tags: resultTags,
579
581
  });
@@ -592,6 +594,11 @@ test('import multiple features with same tag', async () => {
592
594
  tags: [{ value: 'tag1', type: 'simple' }],
593
595
  });
594
596
  });
597
+ test('import too many feature exceeding limit', async () => {
598
+ const featureLimit = 1;
599
+ await createProjects([types_1.DEFAULT_PROJECT], featureLimit);
600
+ await app.importToggles(importWithMultipleFeatures, 403);
601
+ });
595
602
  test('can update toggles on subsequent import', async () => {
596
603
  await createProjects();
597
604
  await app.importToggles(defaultImportPayload);
@@ -602,21 +609,21 @@ test('can update toggles on subsequent import', async () => {
602
609
  features: [{ ...exportedFeature, type: 'operational' }],
603
610
  },
604
611
  });
605
- const { body: importedFeature } = await getFeature(defaultFeature);
612
+ const { body: importedFeature } = await getFeature(defaultFeatureName);
606
613
  expect(importedFeature).toMatchObject({
607
- name: 'first_feature',
614
+ name: defaultFeatureName,
608
615
  project: types_1.DEFAULT_PROJECT,
609
616
  type: 'operational',
610
617
  variants,
611
618
  });
612
- const { body: importedFeatureEnvironment } = await getFeatureEnvironment(defaultFeature);
619
+ const { body: importedFeatureEnvironment } = await getFeatureEnvironment(defaultFeatureName);
613
620
  expect(importedFeatureEnvironment).toMatchObject({
614
- name: defaultFeature,
621
+ name: defaultFeatureName,
615
622
  environment: util_1.DEFAULT_ENV,
616
623
  enabled: true,
617
624
  strategies: [
618
625
  {
619
- featureName: defaultFeature,
626
+ featureName: defaultFeatureName,
620
627
  parameters: {},
621
628
  constraints,
622
629
  sortOrder: 0,
@@ -671,10 +678,11 @@ test('reject import with duplicate features', async () => {
671
678
  },
672
679
  };
673
680
  const { body } = await app.importToggles(importPayloadWithContextFields, 409);
674
- expect(body.details[0].description).toBe('Feature first_feature already exists');
681
+ expect(body.details[0].description).toBe('A toggle with that name already exists');
675
682
  });
676
683
  test('validate import data', async () => {
677
- await createProjects();
684
+ const featureLimit = 1;
685
+ await createProjects([types_1.DEFAULT_PROJECT], featureLimit);
678
686
  const contextField = {
679
687
  name: 'validate_context_field',
680
688
  legalValues: [{ value: 'Value1' }],
@@ -683,13 +691,18 @@ test('validate import data', async () => {
683
691
  name: 'created_context_field',
684
692
  legalValues: [{ value: 'new_value' }],
685
693
  };
686
- await app.createFeature(defaultFeature);
687
- await app.archiveFeature(defaultFeature);
694
+ await app.createFeature(defaultFeatureName);
695
+ await app.archiveFeature(defaultFeatureName);
688
696
  await app.createContextField(contextField);
689
697
  const importPayloadWithContextFields = {
690
698
  ...defaultImportPayload,
691
699
  data: {
692
700
  ...defaultImportPayload.data,
701
+ features: [
702
+ exportedFeature,
703
+ exportedFeature,
704
+ anotherExportedFeature,
705
+ ],
693
706
  featureStrategies: [{ name: 'customStrategy' }],
694
707
  segments: [{ id: 1, name: 'customSegment' }],
695
708
  contextFields: [
@@ -701,6 +714,15 @@ test('validate import data', async () => {
701
714
  ],
702
715
  },
703
716
  };
717
+ // note: this must be done after creating the feature on the earlier lines,
718
+ // to prevent the pattern from blocking the creation.
719
+ await projectStore.update({
720
+ id: types_1.DEFAULT_PROJECT,
721
+ name: 'default',
722
+ description: '',
723
+ mode: 'open',
724
+ featureNaming: { pattern: 'testpattern.+' },
725
+ });
704
726
  const { body } = await validateImport(importPayloadWithContextFields, 200);
705
727
  expect(body).toMatchObject({
706
728
  errors: [
@@ -712,11 +734,26 @@ test('validate import data', async () => {
712
734
  message: 'We detected the following context fields that do not have matching legal values with the imported ones:',
713
735
  affectedItems: [contextField.name],
714
736
  },
737
+ {
738
+ message: 'We detected the following features are duplicate in your import data:',
739
+ affectedItems: [defaultFeatureName],
740
+ },
741
+ {
742
+ message: expect.stringMatching(/\btestpattern.+\b/),
743
+ affectedItems: [
744
+ defaultFeatureName,
745
+ anotherExportedFeature.name,
746
+ ],
747
+ },
748
+ {
749
+ message: 'We detected you want to create 2 new features to a project that already has 0 existing features, exceeding the maximum limit of 1.',
750
+ affectedItems: [],
751
+ },
715
752
  ],
716
753
  warnings: [
717
754
  {
718
755
  message: 'The following features will not be imported as they are currently archived. To import them, please unarchive them first:',
719
- affectedItems: [defaultFeature],
756
+ affectedItems: [defaultFeatureName],
720
757
  },
721
758
  ],
722
759
  permissions: [],
@@ -742,24 +779,57 @@ test('should create new context', async () => {
742
779
  test('should not import archived features tags', async () => {
743
780
  await createProjects();
744
781
  await app.importToggles(defaultImportPayload);
745
- await app.archiveFeature(defaultFeature);
782
+ await app.archiveFeature(defaultFeatureName);
746
783
  await app.importToggles({
747
784
  ...defaultImportPayload,
748
785
  data: {
749
786
  ...defaultImportPayload.data,
750
787
  featureTags: [
751
788
  {
752
- featureName: defaultFeature,
789
+ featureName: defaultFeatureName,
753
790
  tagType: 'simple',
754
791
  tagValue: 'tag2',
755
792
  },
756
793
  ],
757
794
  },
758
795
  });
759
- await unArchiveFeature(defaultFeature);
760
- const { body: importedTags } = await getTags(defaultFeature);
796
+ await unArchiveFeature(defaultFeatureName);
797
+ const { body: importedTags } = await getTags(defaultFeatureName);
761
798
  expect(importedTags).toMatchObject({
762
799
  tags: resultTags,
763
800
  });
764
801
  });
802
+ test(`should give errors with flag names if the flags don't match the project pattern`, async () => {
803
+ await db.stores.environmentStore.create({
804
+ name: util_1.DEFAULT_ENV,
805
+ type: 'production',
806
+ });
807
+ const pattern = 'testpattern.+';
808
+ for (const project of [types_1.DEFAULT_PROJECT]) {
809
+ await db.stores.projectStore.create({
810
+ name: project,
811
+ description: '',
812
+ id: project,
813
+ mode: 'open',
814
+ featureNaming: { pattern },
815
+ });
816
+ await app.linkProjectToEnvironment(project, util_1.DEFAULT_ENV);
817
+ }
818
+ const flagName = 'unusedfeaturenamethatdoesntmatchpattern';
819
+ const { body } = await app.importToggles({
820
+ ...defaultImportPayload,
821
+ data: {
822
+ ...defaultImportPayload.data,
823
+ features: [
824
+ {
825
+ project: 'old_project',
826
+ name: flagName,
827
+ type: 'release',
828
+ },
829
+ ],
830
+ },
831
+ }, 400);
832
+ expect(body.message).toContain(pattern);
833
+ expect(body.message).toContain(flagName);
834
+ });
765
835
  //# sourceMappingURL=export-import.e2e.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export-import.e2e.test.js","sourceRoot":"","sources":["../../../../src/lib/features/export-import-toggles/export-import.e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-import.e2e.test.js","sourceRoot":"","sources":["../../../../src/lib/features/export-import-toggles/export-import.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { IImportTogglesStore } from './import-toggles-store-type';
2
2
  import { AccessService, ContextService, TagTypeService } from '../../services';
3
3
  import { ImportTogglesSchema } from '../../openapi';
4
4
  import User from '../../types/user';
5
- declare type Mode = 'regular' | 'change_request';
5
+ export declare type Mode = 'regular' | 'change_request';
6
6
  export declare class ImportPermissionsService {
7
7
  private importTogglesStore;
8
8
  private accessService;
@@ -14,4 +14,3 @@ export declare class ImportPermissionsService {
14
14
  getMissingPermissions(dto: ImportTogglesSchema, user: User, mode: Mode): Promise<string[]>;
15
15
  verifyPermissions(dto: ImportTogglesSchema, user: User, mode: Mode): Promise<void>;
16
16
  }
17
- export {};
@@ -1,3 +1,8 @@
1
+ export interface ProjectFeaturesLimit {
2
+ limit: number;
3
+ newFeaturesCount: number;
4
+ currentFeaturesCount: number;
5
+ }
1
6
  export interface IImportTogglesStore {
2
7
  deleteStrategiesForFeatures(featureNames: string[], environment: string): Promise<void>;
3
8
  getArchivedFeatures(featureNames: string[]): Promise<string[]>;
@@ -6,6 +11,7 @@ export interface IImportTogglesStore {
6
11
  project: string;
7
12
  }[]>;
8
13
  getFeaturesInProject(featureNames: string[], project: string): Promise<string[]>;
14
+ getProjectFeaturesLimit(featureNames: string[], project: string): Promise<ProjectFeaturesLimit>;
9
15
  deleteTagsForFeatures(tags: string[]): Promise<void>;
10
16
  strategiesExistForFeatures(featureNames: string[], environment: string): Promise<boolean>;
11
17
  getDisplayPermissions(names: string[]): Promise<{
@@ -1,4 +1,4 @@
1
- import { IImportTogglesStore } from './import-toggles-store-type';
1
+ import { IImportTogglesStore, ProjectFeaturesLimit } from './import-toggles-store-type';
2
2
  import { Db } from '../../db/db';
3
3
  export declare class ImportTogglesStore implements IImportTogglesStore {
4
4
  private db;
@@ -16,5 +16,6 @@ export declare class ImportTogglesStore implements IImportTogglesStore {
16
16
  project: string;
17
17
  }[]>;
18
18
  getFeaturesInProject(featureNames: string[], project: string): Promise<string[]>;
19
+ getProjectFeaturesLimit(featureNames: string[], project: string): Promise<ProjectFeaturesLimit>;
19
20
  deleteTagsForFeatures(features: string[]): Promise<void>;
20
21
  }
@@ -5,6 +5,7 @@ const T = {
5
5
  featureStrategies: 'feature_strategies',
6
6
  features: 'features',
7
7
  featureTag: 'feature_tag',
8
+ projectSettings: 'project_settings',
8
9
  };
9
10
  class ImportTogglesStore {
10
11
  constructor(db) {
@@ -60,6 +61,30 @@ class ImportTogglesStore {
60
61
  .whereIn('name', featureNames);
61
62
  return rows.map((row) => row.name);
62
63
  }
64
+ async getProjectFeaturesLimit(featureNames, project) {
65
+ const row = await this.db(T.projectSettings)
66
+ .select(['feature_limit'])
67
+ .where('project', project)
68
+ .first();
69
+ const limit = row?.feature_limit ?? Number.MAX_SAFE_INTEGER;
70
+ const existingFeaturesCount = await this.db(T.features)
71
+ .whereIn('name', featureNames)
72
+ .andWhere('project', project)
73
+ .where('archived_at', null)
74
+ .count()
75
+ .then((res) => Number(res[0].count));
76
+ const newFeaturesCount = featureNames.length - existingFeaturesCount;
77
+ const currentFeaturesCount = await this.db(T.features)
78
+ .where('project', project)
79
+ .count()
80
+ .where('archived_at', null)
81
+ .then((res) => Number(res[0].count));
82
+ return {
83
+ limit,
84
+ newFeaturesCount,
85
+ currentFeaturesCount,
86
+ };
87
+ }
63
88
  async deleteTagsForFeatures(features) {
64
89
  return this.db(T.featureTag).whereIn('feature_name', features).del();
65
90
  }