unleash-server 7.4.1 → 7.4.3

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 (478) hide show
  1. package/README.md +6 -1
  2. package/dist/lib/addons/feature-event-formatter-md.d.ts.map +1 -1
  3. package/dist/lib/addons/feature-event-formatter-md.js +1 -0
  4. package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
  5. package/dist/lib/addons/feature-event-formatter-md.test.js +45 -2
  6. package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
  7. package/dist/lib/create-config.d.ts.map +1 -1
  8. package/dist/lib/create-config.js +6 -1
  9. package/dist/lib/create-config.js.map +1 -1
  10. package/dist/lib/db/feature-environment-store.d.ts.map +1 -1
  11. package/dist/lib/db/feature-environment-store.js.map +1 -1
  12. package/dist/lib/db/index.d.ts.map +1 -1
  13. package/dist/lib/db/index.js +5 -2
  14. package/dist/lib/db/index.js.map +1 -1
  15. package/dist/lib/{routes/admin-api/constraints.d.ts → features/constraints/constraints-controller.d.ts} +5 -5
  16. package/dist/lib/features/constraints/constraints-controller.d.ts.map +1 -0
  17. package/dist/lib/{routes/admin-api/constraints.js → features/constraints/constraints-controller.js} +6 -6
  18. package/dist/lib/features/constraints/constraints-controller.js.map +1 -0
  19. package/dist/lib/features/constraints/constraints-read-model-type.d.ts +6 -0
  20. package/dist/lib/features/constraints/constraints-read-model-type.d.ts.map +1 -0
  21. package/dist/lib/features/constraints/constraints-read-model-type.js +2 -0
  22. package/dist/lib/features/constraints/constraints-read-model-type.js.map +1 -0
  23. package/dist/lib/features/constraints/constraints-read-model.d.ts +11 -0
  24. package/dist/lib/features/constraints/constraints-read-model.d.ts.map +1 -0
  25. package/dist/lib/features/constraints/constraints-read-model.js +55 -0
  26. package/dist/lib/features/constraints/constraints-read-model.js.map +1 -0
  27. package/dist/lib/features/constraints/constraints-read-model.test.d.ts +2 -0
  28. package/dist/lib/features/constraints/constraints-read-model.test.d.ts.map +1 -0
  29. package/dist/lib/features/constraints/constraints-read-model.test.js +388 -0
  30. package/dist/lib/features/constraints/constraints-read-model.test.js.map +1 -0
  31. package/dist/lib/features/constraints/constraints.e2e.test.d.ts.map +1 -0
  32. package/dist/{test/e2e/api/admin → lib/features/constraints}/constraints.e2e.test.js +4 -4
  33. package/dist/lib/features/constraints/constraints.e2e.test.js.map +1 -0
  34. package/dist/lib/features/constraints/createConstraintsReadModel.d.ts +5 -0
  35. package/dist/lib/features/constraints/createConstraintsReadModel.d.ts.map +1 -0
  36. package/dist/lib/features/constraints/createConstraintsReadModel.js +9 -0
  37. package/dist/lib/features/constraints/createConstraintsReadModel.js.map +1 -0
  38. package/dist/lib/features/constraints/fake-constraints-read-model.d.ts +7 -0
  39. package/dist/lib/features/constraints/fake-constraints-read-model.d.ts.map +1 -0
  40. package/dist/lib/features/constraints/fake-constraints-read-model.js +11 -0
  41. package/dist/lib/features/constraints/fake-constraints-read-model.js.map +1 -0
  42. package/dist/lib/features/context/context.d.ts.map +1 -1
  43. package/dist/lib/features/context/context.js +16 -10
  44. package/dist/lib/features/context/context.js.map +1 -1
  45. package/dist/lib/features/context/createContextService.js +1 -1
  46. package/dist/lib/features/context/createContextService.js.map +1 -1
  47. package/dist/lib/features/dependent-features/dependent-features-controller.d.ts.map +1 -1
  48. package/dist/lib/features/dependent-features/dependent-features-controller.js +0 -1
  49. package/dist/lib/features/dependent-features/dependent-features-controller.js.map +1 -1
  50. package/dist/lib/features/edgetokens/edge-hmac-verifier.d.ts +4 -0
  51. package/dist/lib/features/edgetokens/edge-hmac-verifier.d.ts.map +1 -0
  52. package/dist/lib/features/edgetokens/edge-hmac-verifier.js +83 -0
  53. package/dist/lib/features/edgetokens/edge-hmac-verifier.js.map +1 -0
  54. package/dist/lib/features/edgetokens/edge-token-store.d.ts +16 -0
  55. package/dist/lib/features/edgetokens/edge-token-store.d.ts.map +1 -0
  56. package/dist/lib/features/edgetokens/edge-token-store.js +101 -0
  57. package/dist/lib/features/edgetokens/edge-token-store.js.map +1 -0
  58. package/dist/lib/features/edgetokens/edge-tokens.d.ts +2 -0
  59. package/dist/lib/features/edgetokens/edge-tokens.d.ts.map +1 -0
  60. package/dist/lib/features/edgetokens/edge-tokens.js +16 -0
  61. package/dist/lib/features/edgetokens/edge-tokens.js.map +1 -0
  62. package/dist/lib/features/edgetokens/edge-tokens.test.d.ts +2 -0
  63. package/dist/lib/features/edgetokens/edge-tokens.test.d.ts.map +1 -0
  64. package/dist/lib/features/edgetokens/edge-tokens.test.js +22 -0
  65. package/dist/lib/features/edgetokens/edge-tokens.test.js.map +1 -0
  66. package/dist/lib/features/edgetokens/edge-verification.d.ts +3 -0
  67. package/dist/lib/features/edgetokens/edge-verification.d.ts.map +1 -0
  68. package/dist/lib/features/edgetokens/edge-verification.js +25 -0
  69. package/dist/lib/features/edgetokens/edge-verification.js.map +1 -0
  70. package/dist/lib/features/edgetokens/edge-verification.test.d.ts +2 -0
  71. package/dist/lib/features/edgetokens/edge-verification.test.d.ts.map +1 -0
  72. package/dist/lib/features/edgetokens/edge-verification.test.js +18 -0
  73. package/dist/lib/features/edgetokens/edge-verification.test.js.map +1 -0
  74. package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts +11 -0
  75. package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts.map +1 -0
  76. package/dist/lib/features/edgetokens/fake-edge-token-store.js +21 -0
  77. package/dist/lib/features/edgetokens/fake-edge-token-store.js.map +1 -0
  78. package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.d.ts.map +1 -1
  79. package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.js +6 -3
  80. package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.js.map +1 -1
  81. package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.d.ts.map +1 -1
  82. package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.js +2 -1
  83. package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.js.map +1 -1
  84. package/dist/lib/features/feature-links/feature-link-controller.d.ts.map +1 -1
  85. package/dist/lib/features/feature-links/feature-link-controller.js +6 -3
  86. package/dist/lib/features/feature-links/feature-link-controller.js.map +1 -1
  87. package/dist/lib/features/feature-search/feature.search.e2e.test.js +3 -3
  88. package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
  89. package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.d.ts +1 -1
  90. package/dist/lib/features/feature-toggle/createFeatureToggleService.d.ts +2 -0
  91. package/dist/lib/features/feature-toggle/createFeatureToggleService.d.ts.map +1 -1
  92. package/dist/lib/features/feature-toggle/createFeatureToggleService.js +8 -2
  93. package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
  94. package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts +6 -6
  95. package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
  96. package/dist/lib/features/feature-toggle/feature-toggle-service.js +6 -44
  97. package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
  98. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts.map +1 -1
  99. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js +6 -0
  100. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
  101. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.d.ts +2 -0
  102. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.d.ts.map +1 -0
  103. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.js +185 -0
  104. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.js.map +1 -0
  105. package/dist/lib/features/frontend-api/createFrontendApiService.d.ts.map +1 -1
  106. package/dist/lib/features/frontend-api/createFrontendApiService.js +2 -0
  107. package/dist/lib/features/frontend-api/createFrontendApiService.js.map +1 -1
  108. package/dist/lib/features/index.d.ts +2 -0
  109. package/dist/lib/features/index.d.ts.map +1 -1
  110. package/dist/lib/features/index.js +2 -0
  111. package/dist/lib/features/index.js.map +1 -1
  112. package/dist/lib/features/instance-stats/createInstanceStatsService.d.ts.map +1 -1
  113. package/dist/lib/features/instance-stats/createInstanceStatsService.js +0 -1
  114. package/dist/lib/features/instance-stats/createInstanceStatsService.js.map +1 -1
  115. package/dist/lib/features/metrics/last-seen/tests/last-seen-service.test.js +2 -2
  116. package/dist/lib/features/metrics/last-seen/tests/last-seen-service.test.js.map +1 -1
  117. package/dist/lib/features/metrics/shared/schema.d.ts.map +1 -1
  118. package/dist/lib/features/metrics/shared/schema.js +10 -2
  119. package/dist/lib/features/metrics/shared/schema.js.map +1 -1
  120. package/dist/lib/features/metrics/shared/schema.test.js +18 -0
  121. package/dist/lib/features/metrics/shared/schema.test.js.map +1 -1
  122. package/dist/lib/features/pat/createPatService.d.ts +6 -0
  123. package/dist/lib/features/pat/createPatService.d.ts.map +1 -0
  124. package/dist/lib/features/pat/createPatService.js +15 -0
  125. package/dist/lib/features/pat/createPatService.js.map +1 -0
  126. package/dist/lib/features/pat/fake-pat-store.d.ts +18 -0
  127. package/dist/lib/features/pat/fake-pat-store.d.ts.map +1 -0
  128. package/dist/lib/features/pat/fake-pat-store.js +52 -0
  129. package/dist/lib/features/pat/fake-pat-store.js.map +1 -0
  130. package/dist/lib/{services → features/pat}/pat-service.d.ts +3 -3
  131. package/dist/lib/features/pat/pat-service.d.ts.map +1 -0
  132. package/dist/lib/{services → features/pat}/pat-service.js +5 -5
  133. package/dist/lib/features/pat/pat-service.js.map +1 -0
  134. package/dist/lib/{types/stores/pat-store.d.ts → features/pat/pat-store-type.d.ts} +2 -2
  135. package/dist/lib/features/pat/pat-store-type.d.ts.map +1 -0
  136. package/dist/lib/features/pat/pat-store-type.js +2 -0
  137. package/dist/lib/features/pat/pat-store-type.js.map +1 -0
  138. package/dist/lib/{db → features/pat}/pat-store.d.ts +4 -4
  139. package/dist/lib/features/pat/pat-store.d.ts.map +1 -0
  140. package/dist/lib/{db → features/pat}/pat-store.js +1 -1
  141. package/dist/lib/features/pat/pat-store.js.map +1 -0
  142. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts.map +1 -1
  143. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js +4 -2
  144. package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js.map +1 -1
  145. package/dist/lib/features/playground/feature-evaluator/constraint.d.ts +2 -1
  146. package/dist/lib/features/playground/feature-evaluator/constraint.d.ts.map +1 -1
  147. package/dist/lib/features/playground/feature-evaluator/constraint.js +18 -0
  148. package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -1
  149. package/dist/lib/features/playground/offline-unleash-client.test.js +105 -0
  150. package/dist/lib/features/playground/offline-unleash-client.test.js.map +1 -1
  151. package/dist/lib/features/project-status/project-status-controller.d.ts.map +1 -1
  152. package/dist/lib/features/project-status/project-status-controller.js +2 -1
  153. package/dist/lib/features/project-status/project-status-controller.js.map +1 -1
  154. package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.d.ts +12 -0
  155. package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.d.ts.map +1 -0
  156. package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.js +26 -0
  157. package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.js.map +1 -0
  158. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts +20 -0
  159. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts.map +1 -0
  160. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js +37 -0
  161. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js.map +1 -0
  162. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.d.ts +2 -0
  163. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.d.ts.map +1 -0
  164. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js +69 -0
  165. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js.map +1 -0
  166. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts +10 -2
  167. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts.map +1 -1
  168. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js +0 -1
  169. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js.map +1 -1
  170. package/dist/lib/features/scheduler/schedule-services.d.ts.map +1 -1
  171. package/dist/lib/features/scheduler/schedule-services.js +3 -2
  172. package/dist/lib/features/scheduler/schedule-services.js.map +1 -1
  173. package/dist/lib/features/segment/admin-segment.e2e.test.js +117 -0
  174. package/dist/lib/features/segment/admin-segment.e2e.test.js.map +1 -1
  175. package/dist/lib/features/segment/createSegmentService.d.ts.map +1 -1
  176. package/dist/lib/features/segment/createSegmentService.js +7 -2
  177. package/dist/lib/features/segment/createSegmentService.js.map +1 -1
  178. package/dist/lib/features/segment/segment-controller.d.ts.map +1 -1
  179. package/dist/lib/features/segment/segment-controller.js +1 -1
  180. package/dist/lib/features/segment/segment-controller.js.map +1 -1
  181. package/dist/lib/features/segment/segment-service.d.ts +3 -1
  182. package/dist/lib/features/segment/segment-service.d.ts.map +1 -1
  183. package/dist/lib/features/segment/segment-service.js +4 -1
  184. package/dist/lib/features/segment/segment-service.js.map +1 -1
  185. package/dist/lib/features/users/user-store.d.ts.map +1 -1
  186. package/dist/lib/features/users/user-store.js +6 -0
  187. package/dist/lib/features/users/user-store.js.map +1 -1
  188. package/dist/lib/features/users/user-updates-read-model.d.ts +2 -0
  189. package/dist/lib/features/users/user-updates-read-model.d.ts.map +1 -1
  190. package/dist/lib/features/users/user-updates-read-model.js +2 -0
  191. package/dist/lib/features/users/user-updates-read-model.js.map +1 -1
  192. package/dist/lib/middleware/conditional-middleware.d.ts +1 -1
  193. package/dist/lib/middleware/conditional-middleware.d.ts.map +1 -1
  194. package/dist/lib/middleware/response-time-metrics.test.js +4 -0
  195. package/dist/lib/middleware/response-time-metrics.test.js.map +1 -1
  196. package/dist/lib/openapi/spec/admin-segment-schema.d.ts +1 -1
  197. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +4 -4
  198. package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +8 -8
  199. package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +17 -17
  200. package/dist/lib/openapi/spec/client-feature-schema.d.ts +2 -2
  201. package/dist/lib/openapi/spec/client-features-delta-schema.d.ts +5 -5
  202. package/dist/lib/openapi/spec/client-features-schema.d.ts +5 -5
  203. package/dist/lib/openapi/spec/client-features-schema.test.js +12 -0
  204. package/dist/lib/openapi/spec/client-features-schema.test.js.map +1 -1
  205. package/dist/lib/openapi/spec/client-metrics-schema.d.ts +1 -0
  206. package/dist/lib/openapi/spec/client-metrics-schema.d.ts.map +1 -1
  207. package/dist/lib/openapi/spec/client-metrics-schema.js +1 -0
  208. package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
  209. package/dist/lib/openapi/spec/client-segment-schema.d.ts +1 -1
  210. package/dist/lib/openapi/spec/constraint-schema.d.ts +2 -2
  211. package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +1 -1
  212. package/dist/lib/openapi/spec/create-user-response-schema.d.ts +12 -0
  213. package/dist/lib/openapi/spec/create-user-response-schema.d.ts.map +1 -1
  214. package/dist/lib/openapi/spec/edge-environment-projects-list-schema.d.ts +41 -0
  215. package/dist/lib/openapi/spec/edge-environment-projects-list-schema.d.ts.map +1 -0
  216. package/dist/lib/openapi/spec/edge-environment-projects-list-schema.js +39 -0
  217. package/dist/lib/openapi/spec/edge-environment-projects-list-schema.js.map +1 -0
  218. package/dist/lib/openapi/spec/edge-token-schema.d.ts +6 -1
  219. package/dist/lib/openapi/spec/edge-token-schema.d.ts.map +1 -1
  220. package/dist/lib/openapi/spec/edge-token-schema.js +6 -1
  221. package/dist/lib/openapi/spec/edge-token-schema.js.map +1 -1
  222. package/dist/lib/openapi/spec/environment-project-schema.d.ts +2 -2
  223. package/dist/lib/openapi/spec/environments-project-schema.d.ts +4 -4
  224. package/dist/lib/openapi/spec/export-result-schema.d.ts +68 -68
  225. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +17 -17
  226. package/dist/lib/openapi/spec/feature-schema.d.ts +34 -34
  227. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +34 -34
  228. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +36 -36
  229. package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +1 -1
  230. package/dist/lib/openapi/spec/group-schema.d.ts +24 -0
  231. package/dist/lib/openapi/spec/group-schema.d.ts.map +1 -1
  232. package/dist/lib/openapi/spec/group-user-model-schema.d.ts +12 -0
  233. package/dist/lib/openapi/spec/group-user-model-schema.d.ts.map +1 -1
  234. package/dist/lib/openapi/spec/groups-schema.d.ts +48 -0
  235. package/dist/lib/openapi/spec/groups-schema.d.ts.map +1 -1
  236. package/dist/lib/openapi/spec/health-overview-schema.d.ts +69 -69
  237. package/dist/lib/openapi/spec/health-report-schema.d.ts +69 -69
  238. package/dist/lib/openapi/spec/index.d.ts +3 -0
  239. package/dist/lib/openapi/spec/index.d.ts.map +1 -1
  240. package/dist/lib/openapi/spec/index.js +3 -0
  241. package/dist/lib/openapi/spec/index.js.map +1 -1
  242. package/dist/lib/openapi/spec/me-schema.d.ts +12 -0
  243. package/dist/lib/openapi/spec/me-schema.d.ts.map +1 -1
  244. package/dist/lib/openapi/spec/playground-constraint-schema.d.ts +1 -1
  245. package/dist/lib/openapi/spec/playground-feature-schema.d.ts +4 -4
  246. package/dist/lib/openapi/spec/playground-response-schema.d.ts +9 -9
  247. package/dist/lib/openapi/spec/playground-segment-schema.d.ts +1 -1
  248. package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +2 -2
  249. package/dist/lib/openapi/spec/profile-schema.d.ts +34 -34
  250. package/dist/lib/openapi/spec/project-environment-schema.d.ts +1 -1
  251. package/dist/lib/openapi/spec/project-overview-schema.d.ts +69 -69
  252. package/dist/lib/openapi/spec/public-signup-token-schema.d.ts +12 -0
  253. package/dist/lib/openapi/spec/public-signup-token-schema.d.ts.map +1 -1
  254. package/dist/lib/openapi/spec/public-signup-tokens-schema.d.ts +24 -0
  255. package/dist/lib/openapi/spec/public-signup-tokens-schema.d.ts.map +1 -1
  256. package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +4 -4
  257. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +2 -2
  258. package/dist/lib/openapi/spec/release-plan-schema.d.ts +8 -8
  259. package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +8 -8
  260. package/dist/lib/openapi/spec/search-features-schema.d.ts +72 -72
  261. package/dist/lib/openapi/spec/segment-schema.d.ts +1 -1
  262. package/dist/lib/openapi/spec/segments-schema.d.ts +2 -2
  263. package/dist/lib/openapi/spec/signup-data-schema.d.ts +42 -0
  264. package/dist/lib/openapi/spec/signup-data-schema.d.ts.map +1 -0
  265. package/dist/lib/openapi/spec/signup-data-schema.js +40 -0
  266. package/dist/lib/openapi/spec/signup-data-schema.js.map +1 -0
  267. package/dist/lib/openapi/spec/submit-signup-data-schema.d.ts +50 -0
  268. package/dist/lib/openapi/spec/submit-signup-data-schema.d.ts.map +1 -0
  269. package/dist/lib/openapi/spec/submit-signup-data-schema.js +26 -0
  270. package/dist/lib/openapi/spec/submit-signup-data-schema.js.map +1 -0
  271. package/dist/lib/openapi/spec/ui-config-schema.d.ts +5 -0
  272. package/dist/lib/openapi/spec/ui-config-schema.d.ts.map +1 -1
  273. package/dist/lib/openapi/spec/ui-config-schema.js +5 -0
  274. package/dist/lib/openapi/spec/ui-config-schema.js.map +1 -1
  275. package/dist/lib/openapi/spec/update-feature-schema.d.ts +1 -1
  276. package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts +18 -2
  277. package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts.map +1 -1
  278. package/dist/lib/openapi/spec/update-feature-strategy-schema.js +17 -1
  279. package/dist/lib/openapi/spec/update-feature-strategy-schema.js.map +1 -1
  280. package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +1 -1
  281. package/dist/lib/openapi/spec/user-access-overview-schema.d.ts +12 -0
  282. package/dist/lib/openapi/spec/user-access-overview-schema.d.ts.map +1 -1
  283. package/dist/lib/openapi/spec/user-schema.d.ts +12 -0
  284. package/dist/lib/openapi/spec/user-schema.d.ts.map +1 -1
  285. package/dist/lib/openapi/spec/user-schema.js +12 -0
  286. package/dist/lib/openapi/spec/user-schema.js.map +1 -1
  287. package/dist/lib/openapi/spec/users-groups-base-schema.d.ts +48 -0
  288. package/dist/lib/openapi/spec/users-groups-base-schema.d.ts.map +1 -1
  289. package/dist/lib/openapi/spec/users-schema.d.ts +12 -0
  290. package/dist/lib/openapi/spec/users-schema.d.ts.map +1 -1
  291. package/dist/lib/openapi/spec/users-search-schema.d.ts +12 -0
  292. package/dist/lib/openapi/spec/users-search-schema.d.ts.map +1 -1
  293. package/dist/lib/openapi/spec/validated-edge-tokens-schema.d.ts +6 -1
  294. package/dist/lib/openapi/spec/validated-edge-tokens-schema.d.ts.map +1 -1
  295. package/dist/lib/openapi/util/api-operation.d.ts +23 -3
  296. package/dist/lib/openapi/util/api-operation.d.ts.map +1 -1
  297. package/dist/lib/openapi/util/api-stability.d.ts +3 -0
  298. package/dist/lib/openapi/util/api-stability.d.ts.map +1 -0
  299. package/dist/lib/openapi/util/api-stability.js +49 -0
  300. package/dist/lib/openapi/util/api-stability.js.map +1 -0
  301. package/dist/lib/openapi/util/api-stability.test.d.ts +2 -0
  302. package/dist/lib/openapi/util/api-stability.test.d.ts.map +1 -0
  303. package/dist/lib/openapi/util/api-stability.test.js +140 -0
  304. package/dist/lib/openapi/util/api-stability.test.js.map +1 -0
  305. package/dist/lib/openapi/util/openapi-tags.d.ts +6 -6
  306. package/dist/lib/openapi/util/openapi-tags.d.ts.map +1 -1
  307. package/dist/lib/openapi/util/openapi-tags.js +4 -4
  308. package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
  309. package/dist/lib/routes/admin-api/index.js +1 -1
  310. package/dist/lib/routes/admin-api/index.js.map +1 -1
  311. package/dist/lib/routes/admin-api/project/variants.d.ts.map +1 -1
  312. package/dist/lib/routes/admin-api/project/variants.js +5 -1
  313. package/dist/lib/routes/admin-api/project/variants.js.map +1 -1
  314. package/dist/lib/routes/admin-api/user/user.d.ts +1 -0
  315. package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
  316. package/dist/lib/routes/admin-api/user/user.js +12 -1
  317. package/dist/lib/routes/admin-api/user/user.js.map +1 -1
  318. package/dist/lib/routes/admin-api/user-admin.d.ts.map +1 -1
  319. package/dist/lib/routes/admin-api/user-admin.js +4 -4
  320. package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
  321. package/dist/lib/routes/edge-api/index.d.ts +4 -3
  322. package/dist/lib/routes/edge-api/index.d.ts.map +1 -1
  323. package/dist/lib/routes/edge-api/index.js +39 -7
  324. package/dist/lib/routes/edge-api/index.js.map +1 -1
  325. package/dist/lib/schema/feature-schema.test.js +1 -1
  326. package/dist/lib/schema/feature-schema.test.js.map +1 -1
  327. package/dist/lib/server-impl.d.ts +5 -4
  328. package/dist/lib/server-impl.d.ts.map +1 -1
  329. package/dist/lib/server-impl.js +6 -3
  330. package/dist/lib/server-impl.js.map +1 -1
  331. package/dist/lib/services/api-token-service.d.ts.map +1 -1
  332. package/dist/lib/services/api-token-service.js.map +1 -1
  333. package/dist/lib/services/edge-service.d.ts +22 -7
  334. package/dist/lib/services/edge-service.d.ts.map +1 -1
  335. package/dist/lib/services/edge-service.js +87 -9
  336. package/dist/lib/services/edge-service.js.map +1 -1
  337. package/dist/lib/services/index.d.ts +8 -3
  338. package/dist/lib/services/index.d.ts.map +1 -1
  339. package/dist/lib/services/index.js +23 -6
  340. package/dist/lib/services/index.js.map +1 -1
  341. package/dist/lib/services/openapi-service.d.ts +8 -2
  342. package/dist/lib/services/openapi-service.d.ts.map +1 -1
  343. package/dist/lib/services/openapi-service.js +49 -7
  344. package/dist/lib/services/openapi-service.js.map +1 -1
  345. package/dist/lib/services/openapi-service.test.d.ts +2 -0
  346. package/dist/lib/services/openapi-service.test.d.ts.map +1 -0
  347. package/dist/lib/services/openapi-service.test.js +41 -0
  348. package/dist/lib/services/openapi-service.test.js.map +1 -0
  349. package/dist/lib/services/user-service.d.ts +3 -1
  350. package/dist/lib/services/user-service.d.ts.map +1 -1
  351. package/dist/lib/services/user-service.js +7 -2
  352. package/dist/lib/services/user-service.js.map +1 -1
  353. package/dist/lib/services/user-service.test.js +4 -28
  354. package/dist/lib/services/user-service.test.js.map +1 -1
  355. package/dist/lib/types/experimental.d.ts +1 -1
  356. package/dist/lib/types/experimental.d.ts.map +1 -1
  357. package/dist/lib/types/experimental.js +6 -0
  358. package/dist/lib/types/experimental.js.map +1 -1
  359. package/dist/lib/types/model.d.ts +4 -0
  360. package/dist/lib/types/model.d.ts.map +1 -1
  361. package/dist/lib/types/model.js.map +1 -1
  362. package/dist/lib/types/option.d.ts +5 -0
  363. package/dist/lib/types/option.d.ts.map +1 -1
  364. package/dist/lib/types/stores/edge-store.d.ts +14 -0
  365. package/dist/lib/types/stores/edge-store.d.ts.map +1 -0
  366. package/dist/lib/types/stores/edge-store.js +2 -0
  367. package/dist/lib/types/stores/edge-store.js.map +1 -0
  368. package/dist/lib/types/stores/user-store.d.ts +4 -0
  369. package/dist/lib/types/stores/user-store.d.ts.map +1 -1
  370. package/dist/lib/types/stores.d.ts +6 -4
  371. package/dist/lib/types/stores.d.ts.map +1 -1
  372. package/dist/lib/types/stores.js +1 -1
  373. package/dist/lib/types/stores.js.map +1 -1
  374. package/dist/lib/types/user.d.ts +8 -1
  375. package/dist/lib/types/user.d.ts.map +1 -1
  376. package/dist/lib/types/user.js +3 -1
  377. package/dist/lib/types/user.js.map +1 -1
  378. package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
  379. package/dist/lib/ui-config/ui-config-service.js +1 -0
  380. package/dist/lib/ui-config/ui-config-service.js.map +1 -1
  381. package/dist/lib/ui-config/ui-config.test.js +5 -1
  382. package/dist/lib/ui-config/ui-config.test.js.map +1 -1
  383. package/dist/lib/util/constants.d.ts +2 -1
  384. package/dist/lib/util/constants.d.ts.map +1 -1
  385. package/dist/lib/util/constants.js +2 -0
  386. package/dist/lib/util/constants.js.map +1 -1
  387. package/dist/lib/util/validators/constraint-types.d.ts +1 -0
  388. package/dist/lib/util/validators/constraint-types.d.ts.map +1 -1
  389. package/dist/lib/util/validators/constraint-types.js +12 -0
  390. package/dist/lib/util/validators/constraint-types.js.map +1 -1
  391. package/dist/lib/util/validators/constraint-types.test.js +25 -1
  392. package/dist/lib/util/validators/constraint-types.test.js.map +1 -1
  393. package/dist/mailtemplates/getting-started/getting-started.html.mustache +7 -2
  394. package/dist/mailtemplates/getting-started/getting-started.plain.mustache +6 -1
  395. package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.d.ts +3 -0
  396. package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.d.ts.map +1 -0
  397. package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.js +39 -0
  398. package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.js.map +1 -0
  399. package/dist/migrations/20260213095258-users-company-role-and-email-consent.d.ts +3 -0
  400. package/dist/migrations/20260213095258-users-company-role-and-email-consent.d.ts.map +1 -0
  401. package/dist/migrations/20260213095258-users-company-role-and-email-consent.js +12 -0
  402. package/dist/migrations/20260213095258-users-company-role-and-email-consent.js.map +1 -0
  403. package/dist/server-dev.js +3 -0
  404. package/dist/server-dev.js.map +1 -1
  405. package/dist/test/arbitraries.test.d.ts.map +1 -1
  406. package/dist/test/arbitraries.test.js +3 -9
  407. package/dist/test/arbitraries.test.js.map +1 -1
  408. package/dist/test/e2e/api/admin/context.e2e.test.js +1 -1
  409. package/dist/test/e2e/api/admin/context.e2e.test.js.map +1 -1
  410. package/dist/test/e2e/api/admin/project/variants.e2e.test.js +19 -0
  411. package/dist/test/e2e/api/admin/project/variants.e2e.test.js.map +1 -1
  412. package/dist/test/e2e/api/edge/create-token-request.test.d.ts +2 -0
  413. package/dist/test/e2e/api/edge/create-token-request.test.d.ts.map +1 -0
  414. package/dist/test/e2e/api/edge/create-token-request.test.js +215 -0
  415. package/dist/test/e2e/api/edge/create-token-request.test.js.map +1 -0
  416. package/dist/test/e2e/services/edge-service.e2e.test.js +106 -3
  417. package/dist/test/e2e/services/edge-service.e2e.test.js.map +1 -1
  418. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts +17 -0
  419. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts.map +1 -0
  420. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js +44 -0
  421. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js.map +1 -0
  422. package/dist/test/fixtures/store.d.ts.map +1 -1
  423. package/dist/test/fixtures/store.js +5 -2
  424. package/dist/test/fixtures/store.js.map +1 -1
  425. package/frontend/build/index.html +1 -1
  426. package/frontend/build/static/{AdvancedPlayground-B70Djk8B.js → AdvancedPlayground-BVQjoHnr.js} +2 -2
  427. package/frontend/build/static/BackendConnections-bRvUo06H.js +1 -0
  428. package/frontend/build/static/{CreateProject-Dnggz6io.js → CreateProject-z7K5-k8g.js} +1 -1
  429. package/frontend/build/static/{EnterpriseEdge-Dnk6MbDj.js → EnterpriseEdge-CAkbmuGs.js} +2 -2
  430. package/frontend/build/static/{FeatureMetricsChart-CFEixeGp.js → FeatureMetricsChart-TPw8l2qi.js} +2 -2
  431. package/frontend/build/static/FeatureStaleDialog-DwV5Mzh6.js +7 -0
  432. package/frontend/build/static/{FeatureViewLazyExport-CUnXEEwm.js → FeatureViewLazyExport-CBpSqVMU.js} +3 -3
  433. package/frontend/build/static/{FlagMetricsChart-ujKp_v58.js → FlagMetricsChart-DLcy8CzE.js} +2 -2
  434. package/frontend/build/static/FrontendNetworkTrafficUsage-CYJZFmkc.js +1 -0
  435. package/frontend/build/static/{GridLayoutWrapper-Cg_xypvQ.js → GridLayoutWrapper-CixVvIgD.js} +1 -1
  436. package/frontend/build/static/{ImpactMetricsPage-ZRSvDBg4.js → ImpactMetricsPage-AS6DHn5C.js} +1 -1
  437. package/frontend/build/static/{LazyAdminExport-B8GV3V8t.js → LazyAdminExport-dyqU9IvB.js} +14 -14
  438. package/frontend/build/static/{LazyProjectExport-B9SJl4_L.js → LazyProjectExport-B1vRaljX.js} +19 -19
  439. package/frontend/build/static/{LifecycleChartComponent-DulnIgCV.js → LifecycleChartComponent-BGuUP9oF.js} +3 -3
  440. package/frontend/build/static/{LineChartComponent-BVdLj0q6.js → LineChartComponent-DA6kG8Ei.js} +1 -1
  441. package/frontend/build/static/{MarkCompletedDialogue-Cu7y0hRZ.js → MarkCompletedDialogue-D2TM3HgS.js} +1 -1
  442. package/frontend/build/static/{NetworkOverview-CUmX-taY.js → NetworkOverview-aNdwr7xF.js} +1 -1
  443. package/frontend/build/static/{NetworkPrometheusAPIWarning-BwnVz0CY.js → NetworkPrometheusAPIWarning-f1m-ZHgX.js} +1 -1
  444. package/frontend/build/static/{NetworkTraffic-DCMn8UWo.js → NetworkTraffic-CzH9_YqS.js} +1 -1
  445. package/frontend/build/static/{NetworkTrafficUsage-DSZK447X.js → NetworkTrafficUsage-BqpcQ4JO.js} +1 -1
  446. package/frontend/build/static/{PercentageDonut-B2OwM0Er.js → PercentageDonut-cKg6eF-p.js} +1 -1
  447. package/frontend/build/static/{ReactJSONEditor-BPlzE1Zx.js → ReactJSONEditor-BH7GX57b.js} +1 -1
  448. package/frontend/build/static/RoleCell-D01N1lHV.js +1 -0
  449. package/frontend/build/static/{aggregateFeatureMetrics-Bcfo39hn.js → aggregateFeatureMetrics-DJ_IwcyH.js} +1 -1
  450. package/frontend/build/static/{formatTickValue-CqTJlzJZ.js → formatTickValue-ClJtK_xN.js} +2 -2
  451. package/frontend/build/static/index-Cz4lAJ3Y.js +568 -0
  452. package/frontend/build/static/{networkTrafficUsageHighlightPlugin-Dmm54dMG.js → networkTrafficUsageHighlightPlugin-Ce-A3Xr6.js} +1 -1
  453. package/frontend/build/static/unleash_logo_dark_no_label-DHgOj_XN.svg +6 -0
  454. package/frontend/build/static/unleash_logo_white_no_label-BazgWvcx.svg +6 -0
  455. package/frontend/build/static/{useApiTokens-D1XvAIIA.js → useApiTokens-Dx2wjhgw.js} +1 -1
  456. package/frontend/package.json +9 -7
  457. package/package.json +16 -13
  458. package/dist/lib/db/pat-store.d.ts.map +0 -1
  459. package/dist/lib/db/pat-store.js.map +0 -1
  460. package/dist/lib/routes/admin-api/constraints.d.ts.map +0 -1
  461. package/dist/lib/routes/admin-api/constraints.js.map +0 -1
  462. package/dist/lib/services/pat-service.d.ts.map +0 -1
  463. package/dist/lib/services/pat-service.js.map +0 -1
  464. package/dist/lib/types/stores/pat-store.d.ts.map +0 -1
  465. package/dist/lib/types/stores/pat-store.js +0 -2
  466. package/dist/lib/types/stores/pat-store.js.map +0 -1
  467. package/dist/test/e2e/api/admin/constraints.e2e.test.d.ts.map +0 -1
  468. package/dist/test/e2e/api/admin/constraints.e2e.test.js.map +0 -1
  469. package/dist/test/fixtures/fake-pat-store.d.ts +0 -16
  470. package/dist/test/fixtures/fake-pat-store.d.ts.map +0 -1
  471. package/dist/test/fixtures/fake-pat-store.js +0 -35
  472. package/dist/test/fixtures/fake-pat-store.js.map +0 -1
  473. package/frontend/build/static/BackendConnections-mlK6EAYQ.js +0 -1
  474. package/frontend/build/static/FeatureStaleDialog-DZoiwwdR.js +0 -7
  475. package/frontend/build/static/FrontendNetworkTrafficUsage-Dq8wwaXR.js +0 -1
  476. package/frontend/build/static/RoleCell-D5skjCJn.js +0 -1
  477. package/frontend/build/static/index-g9pKMnOR.js +0 -542
  478. /package/dist/{test/e2e/api/admin → lib/features/constraints}/constraints.e2e.test.d.ts +0 -0
@@ -16,7 +16,13 @@ export class ContextController extends Controller {
16
16
  this.openApiService = openApiService;
17
17
  this.transactionalContextService = transactionalContextService;
18
18
  const prefix = mode === 'global' ? '' : '/:projectId/context';
19
- const beta = mode === 'project';
19
+ const rootLevelContextFieldsRelease = undefined; // this represents the legacy behavior
20
+ const projectLevelContextFieldsRelease = {
21
+ beta: '7.4.0', // project context fields introduced in 7.4.0
22
+ };
23
+ const release = mode === 'project'
24
+ ? projectLevelContextFieldsRelease
25
+ : rootLevelContextFieldsRelease;
20
26
  this.flagResolver = config.flagResolver;
21
27
  this.route({
22
28
  method: 'get',
@@ -26,7 +32,7 @@ export class ContextController extends Controller {
26
32
  middleware: [
27
33
  openApiService.validPath({
28
34
  tags: ['Context'],
29
- beta,
35
+ release,
30
36
  summary: 'Gets configured context fields',
31
37
  description: 'Returns all configured [Context fields](https://docs.getunleash.io/concepts/unleash-context) that have been created.',
32
38
  operationId: resolveOperationId('getContextFields', mode),
@@ -45,7 +51,7 @@ export class ContextController extends Controller {
45
51
  middleware: [
46
52
  openApiService.validPath({
47
53
  tags: ['Context'],
48
- beta,
54
+ release,
49
55
  summary: 'Gets context field',
50
56
  description: 'Returns specific [context field](https://docs.getunleash.io/concepts/unleash-context) identified by the name in the path',
51
57
  operationId: resolveOperationId('getContextField', mode),
@@ -63,7 +69,7 @@ export class ContextController extends Controller {
63
69
  middleware: [
64
70
  openApiService.validPath({
65
71
  tags: ['Strategies'],
66
- beta,
72
+ release,
67
73
  operationId: resolveOperationId('getStrategiesByContextField', mode),
68
74
  summary: 'Get strategies that use a context field',
69
75
  description: "Retrieves a list of all strategies that use the specified context field. If the context field doesn't exist, returns an empty list of strategies",
@@ -82,7 +88,7 @@ export class ContextController extends Controller {
82
88
  middleware: [
83
89
  openApiService.validPath({
84
90
  tags: ['Context'],
85
- beta,
91
+ release,
86
92
  operationId: resolveOperationId('createContextField', mode),
87
93
  summary: 'Create a context field',
88
94
  description: 'Endpoint that allows creation of [custom context fields](https://docs.getunleash.io/concepts/unleash-context#custom-context-fields)',
@@ -101,7 +107,7 @@ export class ContextController extends Controller {
101
107
  middleware: [
102
108
  openApiService.validPath({
103
109
  tags: ['Context'],
104
- beta,
110
+ release,
105
111
  summary: 'Update an existing context field',
106
112
  description: `Endpoint that allows updating a custom context field. Used to toggle stickiness and add/remove legal values for this context field`,
107
113
  operationId: resolveOperationId('updateContextField', mode),
@@ -120,7 +126,7 @@ export class ContextController extends Controller {
120
126
  middleware: [
121
127
  openApiService.validPath({
122
128
  tags: ['Context'],
123
- beta,
129
+ release,
124
130
  summary: 'Add or update legal value for the context field',
125
131
  description: `Endpoint that allows adding or updating a single custom context field legal value. If the legal value already exists, it will be updated with the new description`,
126
132
  operationId: resolveOperationId('updateContextFieldLegalValue', mode),
@@ -140,7 +146,7 @@ export class ContextController extends Controller {
140
146
  middleware: [
141
147
  openApiService.validPath({
142
148
  tags: ['Context'],
143
- beta,
149
+ release,
144
150
  summary: 'Delete legal value for the context field',
145
151
  description: `Removes the specified custom context field legal value. Does not validate that the legal value is not in use and does not remove usage from constraints that use it.`,
146
152
  operationId: resolveOperationId('deleteContextFieldLegalValue', mode),
@@ -159,7 +165,7 @@ export class ContextController extends Controller {
159
165
  middleware: [
160
166
  openApiService.validPath({
161
167
  tags: ['Context'],
162
- beta,
168
+ release,
163
169
  summary: 'Delete an existing context field',
164
170
  description: 'Endpoint that allows deletion of a custom context field. Does not validate that context field is not in use, but since context field configuration is stored in a json blob for the strategy, existing strategies are safe.',
165
171
  operationId: resolveOperationId('deleteContextField', mode),
@@ -177,7 +183,7 @@ export class ContextController extends Controller {
177
183
  middleware: [
178
184
  openApiService.validPath({
179
185
  tags: ['Context'],
180
- beta,
186
+ release,
181
187
  summary: 'Validate a context field',
182
188
  description: 'Check whether the provided data can be used to create a context field. If the data is not valid, returns a 400 status code with the reason why it is not valid.',
183
189
  operationId: resolveOperationId('validateContextFieldName', mode),
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/lib/features/context/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/lib/features/context/context.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export const createContextService = (config) => (db) => {
20
20
  }, eventService, privateProjectChecker);
21
21
  };
22
22
  export const createFakeContextService = (config) => {
23
- const { getLogger, flagResolver, eventBus, isEnterprise } = config;
23
+ const { getLogger, flagResolver } = config;
24
24
  const contextFieldStore = new FakeContextFieldStore();
25
25
  const featureStrategiesStore = new FakeFeatureStrategiesStore();
26
26
  const eventService = createFakeEventsService(config);
@@ -1 +1 @@
1
- {"version":3,"file":"createContextService.js","sourceRoot":"","sources":["../../../../src/lib/features/context/createContextService.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,sBAAsB,MAAM,sDAAsD,CAAC;AAC1F,OAAO,EACH,mBAAmB,EACnB,uBAAuB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,0BAA0B,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAE5F,MAAM,CAAC,MAAM,oBAAoB,GAC7B,CAAC,MAAsB,EAAE,EAAE,CAC3B,CAAC,EAAM,EAAkB,EAAE;IACvB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACnE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAC3C,EAAE,EACF,SAAS,EACT,YAAY,CACf,CAAC;IACF,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CACrD,EAAE,EACF,QAAQ,EACR,SAAS,EACT,YAAY,CACf,CAAC;IACF,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CACnD,EAAE,mBAAmB,EAAE,EACvB,EAAE,YAAY,EAAE,CACnB,CAAC;IACF,OAAO,IAAI,cAAc,CACrB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,EAC7C;QACI,SAAS;QACT,YAAY;KACf,EACD,YAAY,EACZ,qBAAqB,CACxB,CAAC;AACN,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACpC,MAAsB,EACR,EAAE;IAChB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACnE,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACtD,MAAM,sBAAsB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IAChE,MAAM,YAAY,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,qBAAqB,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC9D,OAAO,IAAI,cAAc,CACrB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,EAC7C;QACI,SAAS;QACT,YAAY;KACf,EACD,YAAY,EACZ,qBAAqB,CACxB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"createContextService.js","sourceRoot":"","sources":["../../../../src/lib/features/context/createContextService.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,sBAAsB,MAAM,sDAAsD,CAAC;AAC1F,OAAO,EACH,mBAAmB,EACnB,uBAAuB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,mBAAmB,MAAM,2CAA2C,CAAC;AAC5E,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,0BAA0B,MAAM,0DAA0D,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAE5F,MAAM,CAAC,MAAM,oBAAoB,GAC7B,CAAC,MAAsB,EAAE,EAAE,CAC3B,CAAC,EAAM,EAAkB,EAAE;IACvB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACnE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAC3C,EAAE,EACF,SAAS,EACT,YAAY,CACf,CAAC;IACF,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CACrD,EAAE,EACF,QAAQ,EACR,SAAS,EACT,YAAY,CACf,CAAC;IACF,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CACnD,EAAE,mBAAmB,EAAE,EACvB,EAAE,YAAY,EAAE,CACnB,CAAC;IACF,OAAO,IAAI,cAAc,CACrB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,EAC7C;QACI,SAAS;QACT,YAAY;KACf,EACD,YAAY,EACZ,qBAAqB,CACxB,CAAC;AACN,CAAC,CAAC;AAEN,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACpC,MAAsB,EACR,EAAE;IAChB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAC3C,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACtD,MAAM,sBAAsB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IAChE,MAAM,YAAY,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,qBAAqB,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC9D,OAAO,IAAI,cAAc,CACrB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,EAC7C;QACI,SAAS;QACT,YAAY;KACf,EACD,YAAY,EACZ,qBAAqB,CACxB,CAAC;AACN,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependent-features-controller.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/dependent-features/dependent-features-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAEH,KAAK,cAAc,EAGtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,KAAK,4BAA4B,EAMjC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAElC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAIlE,UAAU,aAAa;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAc,SAAQ,aAAa;IACzC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAqB,SAAQ,aAAa;IAChD,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,sBAAuB,SAAQ,aAAa;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAUD,KAAK,yBAAyB,GAAG,IAAI,CACjC,gBAAgB,EAChB,uCAAuC,GAAG,gBAAgB,CAC7D,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,UAAU;IAC/D,OAAO,CAAC,wBAAwB,CAA8C;IAE9E,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAG5B,MAAM,EAAE,cAAc,EACtB,EACI,qCAAqC,EACrC,cAAc,GACjB,EAAE,yBAAyB;IAsI1B,oBAAoB,CACtB,GAAG,EAAE,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,4BAA4B,CAAC,EACnE,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAoBV,uBAAuB,CACzB,GAAG,EAAE,YAAY,CAAC,sBAAsB,EAAE,GAAG,EAAE,GAAG,CAAC,EACnD,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAiBV,yBAAyB,CAC3B,GAAG,EAAE,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,EAC1C,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAcV,yBAAyB,CAC3B,GAAG,EAAE,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,EAC1C,GAAG,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC;IAgBV,yBAAyB,CAC3B,GAAG,EAAE,YAAY,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAG,CAAC,EACjD,GAAG,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC;IAgBV,sBAAsB,CACxB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;CAOnB"}
1
+ {"version":3,"file":"dependent-features-controller.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/dependent-features/dependent-features-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAEH,KAAK,cAAc,EAGtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,KAAK,4BAA4B,EAMjC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAElC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAIlE,UAAU,aAAa;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAc,SAAQ,aAAa;IACzC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAqB,SAAQ,aAAa;IAChD,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,sBAAuB,SAAQ,aAAa;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAUD,KAAK,yBAAyB,GAAG,IAAI,CACjC,gBAAgB,EAChB,uCAAuC,GAAG,gBAAgB,CAC7D,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,UAAU;IAC/D,OAAO,CAAC,wBAAwB,CAA8C;IAE9E,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAG5B,MAAM,EAAE,cAAc,EACtB,EACI,qCAAqC,EACrC,cAAc,GACjB,EAAE,yBAAyB;IAsI1B,oBAAoB,CACtB,GAAG,EAAE,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,4BAA4B,CAAC,EACnE,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAoBV,uBAAuB,CACzB,GAAG,EAAE,YAAY,CAAC,sBAAsB,EAAE,GAAG,EAAE,GAAG,CAAC,EACnD,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAiBV,yBAAyB,CAC3B,GAAG,EAAE,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,EAC1C,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;IAcV,yBAAyB,CAC3B,GAAG,EAAE,YAAY,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,EAC1C,GAAG,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC;IAgBV,yBAAyB,CAC3B,GAAG,EAAE,YAAY,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAG,CAAC,EACjD,GAAG,EAAE,QAAQ,CAAC,0BAA0B,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC;IAgBV,sBAAsB,CACxB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,QAAQ,GACd,OAAO,CAAC,IAAI,CAAC;CAKnB"}
@@ -161,7 +161,6 @@ export default class DependentFeaturesController extends Controller {
161
161
  this.openApiService.respondWithValidation(200, res, parentVariantOptionsSchema.$id, options);
162
162
  }
163
163
  async checkDependenciesExist(req, res) {
164
- const { child } = req.params;
165
164
  const exist = await this.dependentFeaturesService.checkDependenciesExist();
166
165
  res.send(exist);
167
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependent-features-controller.js","sourceRoot":"","sources":["../../../../src/lib/features/dependent-features/dependent-features-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependent-features-controller.js","sourceRoot":"","sources":["../../../../src/lib/features/dependent-features/dependent-features-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { RequestHandler } from 'express';
2
+ import type { EdgeService } from '../../services/index.js';
3
+ export declare const hmacSignatureVerifyTokenRequest: (edgeService: EdgeService) => RequestHandler;
4
+ //# sourceMappingURL=edge-hmac-verifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-hmac-verifier.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-hmac-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D,eAAO,MAAM,+BAA+B,GACxC,aAAa,WAAW,KACzB,cA4FF,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { createHash, createHmac } from 'node:crypto';
2
+ import { timingSafeEqual } from 'crypto';
3
+ const REQUEST_LIFETIME = 5 * 60 * 1000;
4
+ export const hmacSignatureVerifyTokenRequest = (edgeService) => {
5
+ return async (req, res, next) => {
6
+ try {
7
+ const auth = req.headers.authorization || '';
8
+ const m = auth.match(/^HMAC ([^:]+):(.+)$/);
9
+ if (!m) {
10
+ res.status(401).json({
11
+ error: 'Missing HMAC authorization header',
12
+ });
13
+ return;
14
+ }
15
+ const clientId = m[1];
16
+ const providedSig = m[2];
17
+ const timestamp = req.headers['x-timestamp'];
18
+ const nonce = req.headers['x-nonce'];
19
+ const bodyHash = req.headers['content-sha256'];
20
+ if (!timestamp || !nonce || !bodyHash) {
21
+ res.status(401).json({ error: 'Missing content headers' });
22
+ return;
23
+ }
24
+ const now = Date.now();
25
+ const ts = Date.parse(timestamp);
26
+ if (Math.abs(now - ts) > REQUEST_LIFETIME) {
27
+ res.status(401).json({ error: 'Stale request' });
28
+ return;
29
+ }
30
+ const safeToUse = await edgeService.notSeenBefore({
31
+ clientId,
32
+ nonce,
33
+ expiresAt: new Date(now + 5 * 60 * 1000),
34
+ });
35
+ if (!safeToUse) {
36
+ res.status(401).json({ error: 'Replay detected' });
37
+ return;
38
+ }
39
+ const client = await edgeService.loadClient(clientId);
40
+ if (!client) {
41
+ res.status(401).json({ error: 'Unknown client' });
42
+ return;
43
+ }
44
+ const bodyAsString = JSON.stringify(req.body || '');
45
+ const computedHash = createHash('sha256')
46
+ .update(bodyAsString)
47
+ .digest('hex');
48
+ if (computedHash !== bodyHash) {
49
+ res.status(401).json({ error: 'Body tampering detected' });
50
+ return;
51
+ }
52
+ const canonical = req.method.toUpperCase() +
53
+ '\n' +
54
+ '/edge/issue-token' +
55
+ '\n' +
56
+ timestamp +
57
+ '\n' +
58
+ nonce +
59
+ '\n' +
60
+ bodyHash;
61
+ const secret = edgeService
62
+ .decryptedClientSecret(client)
63
+ .toString('utf-8');
64
+ const expectedSig = createHmac('sha256', Buffer.from(secret, 'base64url'))
65
+ .update(canonical)
66
+ .digest('base64url');
67
+ if (!timingSafeEqual(Buffer.from(expectedSig), Buffer.from(providedSig))) {
68
+ res.status(401).json({ error: 'Signature mismatch' });
69
+ return;
70
+ }
71
+ res.locals.clientId = clientId;
72
+ next();
73
+ }
74
+ catch (e) {
75
+ console.error('Error authenticating HMAC request:', e);
76
+ res.status(401).json({
77
+ error: 'Authenticating request failed',
78
+ });
79
+ return;
80
+ }
81
+ };
82
+ };
83
+ //# sourceMappingURL=edge-hmac-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-hmac-verifier.js","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-hmac-verifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { EdgeClient, IEdgeTokenStore } from '../../types/stores/edge-store.js';
2
+ import type { Db } from '../../db/db.js';
3
+ import type EventEmitter from 'events';
4
+ import { type IApiToken, type IUnleashConfig } from '../../types/index.js';
5
+ export declare class EdgeTokenStore implements IEdgeTokenStore {
6
+ private db;
7
+ private readonly timer;
8
+ constructor(db: Db, eventBus: EventEmitter, { getLogger }: Pick<IUnleashConfig, 'getLogger'>);
9
+ registerNonce(clientId: string, nonce: string, expiresAt: Date): Promise<void>;
10
+ saveToken(clientId: string, apiToken: IApiToken): Promise<void>;
11
+ getToken(clientId: string, environment: string, projects: string[]): Promise<IApiToken | undefined>;
12
+ loadClient(clientId: string): Promise<EdgeClient | undefined>;
13
+ saveClient(clientId: string, secretEnc: Buffer): Promise<void>;
14
+ cleanExpiredNonces(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=edge-token-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-token-store.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-token-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,eAAe,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAEH,KAAK,SAAS,EACd,KAAK,cAAc,EACtB,MAAM,sBAAsB,CAAC;AAmB9B,qBAAa,cAAe,YAAW,eAAe;IAClD,OAAO,CAAC,EAAE,CAAK;IAEf,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;gBAG7B,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,YAAY,EACtB,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC;IAU9C,aAAa,CACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,GAChB,OAAO,CAAC,IAAI,CAAC;IAUV,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D,QAAQ,CACV,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IA8B3B,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAY7D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAO5C"}
@@ -0,0 +1,101 @@
1
+ import metricsHelper from '../../util/metrics-helper.js';
2
+ import { DB_TIME } from '../../metric-events.js';
3
+ import { ApiTokenType, } from '../../types/index.js';
4
+ import { scopeHash } from './edge-tokens.js';
5
+ import { ulid } from 'ulidx';
6
+ const T = {
7
+ apiTokens: 'api_tokens',
8
+ edgeApiTokens: 'edge_api_tokens',
9
+ edgeHmacClients: 'edge_hmac_clients',
10
+ edgeHmacNonces: 'edge_hmac_nonces',
11
+ };
12
+ export class EdgeTokenStore {
13
+ constructor(db, eventBus, { getLogger }) {
14
+ this.db = db;
15
+ this.timer = (action) => metricsHelper.wrapTimer(eventBus, DB_TIME, {
16
+ store: 'edge-store',
17
+ action,
18
+ });
19
+ }
20
+ async registerNonce(clientId, nonce, expiresAt) {
21
+ const stop = this.timer('check_nonce');
22
+ await this.db(T.edgeHmacNonces).insert({
23
+ client_id: clientId,
24
+ nonce,
25
+ expires_at: expiresAt,
26
+ });
27
+ stop();
28
+ }
29
+ async saveToken(clientId, apiToken) {
30
+ const stop = this.timer('save_token');
31
+ const hash = scopeHash(apiToken.environment, apiToken.projects);
32
+ await this.db(T.edgeApiTokens).insert({
33
+ id: ulid(),
34
+ client_id: clientId,
35
+ environment: apiToken.environment,
36
+ projects: JSON.stringify(apiToken.projects),
37
+ scope_hash: hash,
38
+ token_value: apiToken.secret,
39
+ });
40
+ stop();
41
+ }
42
+ async getToken(clientId, environment, projects) {
43
+ const stop = this.timer('get_token');
44
+ const hash = scopeHash(environment, projects);
45
+ const tokens = await this.db(T.edgeApiTokens)
46
+ .where('client_id', clientId)
47
+ .andWhere('scope_hash', hash)
48
+ .leftJoin(T.apiTokens, 'token_value', `${T.apiTokens}.secret`)
49
+ .select([
50
+ `${T.edgeApiTokens}.environment`,
51
+ `${T.edgeApiTokens}.projects`,
52
+ `${T.edgeApiTokens}.token_value`,
53
+ `${T.edgeApiTokens}.created_at`,
54
+ `${T.apiTokens}.token_name`,
55
+ ]);
56
+ stop();
57
+ if (tokens && tokens.length > 0) {
58
+ const token = tokens[0];
59
+ return {
60
+ createdAt: token.created_at,
61
+ projects: token.projects,
62
+ project: '',
63
+ environment: token.environment,
64
+ secret: token.token_value,
65
+ type: ApiTokenType.BACKEND,
66
+ tokenName: token.token_name,
67
+ };
68
+ }
69
+ return undefined;
70
+ }
71
+ async loadClient(clientId) {
72
+ const stop = this.timer('load_client');
73
+ const client = await this.db(T.edgeHmacClients)
74
+ .where({ id: clientId })
75
+ .select('id', 'secret_enc');
76
+ stop();
77
+ if (client && client.length > 0) {
78
+ return client[0];
79
+ }
80
+ return undefined;
81
+ }
82
+ async saveClient(clientId, secretEnc) {
83
+ const stop = this.timer('save_client');
84
+ await this.db(T.edgeHmacClients)
85
+ .insert({
86
+ id: clientId,
87
+ secret_enc: secretEnc,
88
+ })
89
+ .onConflict(['id'])
90
+ .merge({ secret_enc: secretEnc, created_at: new Date() });
91
+ stop();
92
+ }
93
+ async cleanExpiredNonces() {
94
+ const stop = this.timer('clean_expired_nonces');
95
+ await this.db(T.edgeHmacNonces)
96
+ .where('expires_at', '<', new Date())
97
+ .delete();
98
+ stop();
99
+ }
100
+ }
101
+ //# sourceMappingURL=edge-token-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-token-store.js","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-token-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const scopeHash: (environment: string, projects: string[]) => string;
2
+ //# sourceMappingURL=edge-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-tokens.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-tokens.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAI,aAAa,MAAM,EAAE,UAAU,MAAM,EAAE,KAAG,MAYnE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { createHash } from 'crypto';
2
+ export const scopeHash = (environment, projects) => {
3
+ let hash = createHash('sha256').update(environment);
4
+ const wildcard = projects.find((p) => p === '*');
5
+ if (wildcard !== undefined) {
6
+ hash = hash.update('[*]');
7
+ }
8
+ else {
9
+ const sorted = projects.sort();
10
+ sorted.forEach((project) => {
11
+ hash = hash.update(`[${project}]`);
12
+ });
13
+ }
14
+ return hash.digest('base64url');
15
+ };
16
+ //# sourceMappingURL=edge-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-tokens.js","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,QAAkB,EAAU,EAAE;IACzE,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACvB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=edge-tokens.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-tokens.test.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-tokens.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { scopeHash } from './edge-tokens.js';
2
+ describe('Scope hashing tokens', () => {
3
+ test(`order of projects doesn't matter`, () => {
4
+ const first = scopeHash('development', ['a', 'c', 'd']);
5
+ const second = scopeHash('development', ['d', 'a', 'c']);
6
+ expect(first).toStrictEqual(second);
7
+ });
8
+ test('Same project list but different environment should be different', () => {
9
+ const projects = ['projecta', 'default', 'eg', 'dx'];
10
+ const devHash = scopeHash('development', projects);
11
+ const prodHash = scopeHash('production', projects);
12
+ expect(devHash).not.toStrictEqual(prodHash);
13
+ });
14
+ test('If wildcard project is in list, rest of project list is not relevant', () => {
15
+ const projects = ['projecta', 'projectb', '*'];
16
+ const otherList = ['eg', 'dx', '*'];
17
+ const projectsHash = scopeHash('development', projects);
18
+ const otherHash = scopeHash('development', otherList);
19
+ expect(projectsHash).toStrictEqual(otherHash);
20
+ });
21
+ });
22
+ //# sourceMappingURL=edge-tokens.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-tokens.test.js","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-tokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function decryptSecret(masterKey: Buffer, secretEnc: Buffer): Buffer;
2
+ export declare function encryptSecret(masterKey: Buffer, secretPlain: string): Buffer;
3
+ //# sourceMappingURL=edge-verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-verification.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-verification.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAY1E;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAa5E"}
@@ -0,0 +1,25 @@
1
+ import { randomBytes, createCipheriv, createDecipheriv } from 'node:crypto';
2
+ const IV_LEN = 12;
3
+ const TAG_LEN = 16;
4
+ export function decryptSecret(masterKey, secretEnc) {
5
+ if (!Buffer.isBuffer(secretEnc)) {
6
+ throw new Error('secretEnc must be a buffer');
7
+ }
8
+ const iv = secretEnc.subarray(0, IV_LEN);
9
+ const tag = secretEnc.subarray(secretEnc.length - TAG_LEN);
10
+ const cipher = secretEnc.subarray(IV_LEN, secretEnc.length - TAG_LEN);
11
+ const decipher = createDecipheriv('aes-256-gcm', masterKey, iv);
12
+ decipher.setAuthTag(tag);
13
+ return Buffer.concat([decipher.update(cipher), decipher.final()]);
14
+ }
15
+ export function encryptSecret(masterKey, secretPlain) {
16
+ const iv = randomBytes(12);
17
+ const cipher = createCipheriv('aes-256-gcm', masterKey, iv);
18
+ const ciphertext = Buffer.concat([
19
+ cipher.update(secretPlain, 'utf8'),
20
+ cipher.final(),
21
+ ]);
22
+ const tag = cipher.getAuthTag();
23
+ return Buffer.concat([iv, ciphertext, tag]);
24
+ }
25
+ //# sourceMappingURL=edge-verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-verification.js","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,SAAiB;IAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IAEtE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAChE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,WAAmB;IAChE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAE3B,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC;QAClC,MAAM,CAAC,KAAK,EAAE;KACjB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEhC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=edge-verification.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-verification.test.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-verification.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { decryptSecret, encryptSecret } from './edge-verification.js';
2
+ import { randomBytes } from 'node:crypto';
3
+ test('decrypt/encrypt round trip works', () => {
4
+ const clientSecret = 'enterprise-edge-secret';
5
+ const masterSecret = 'EzyLvZ7WF22dH8LzKg4Sk8cMvqzspAm4s6RlmniATT4=';
6
+ const masterBuffer = Buffer.from(masterSecret, 'base64');
7
+ const encrypted = encryptSecret(masterBuffer, clientSecret);
8
+ const decrypted = decryptSecret(masterBuffer, encrypted);
9
+ expect(decrypted.toString('utf-8')).toBe(clientSecret);
10
+ });
11
+ test('decrypt/encrypt with random strings also works', () => {
12
+ const clientSecret = randomBytes(32).toString('base64url');
13
+ const masterSecret = randomBytes(32);
14
+ const encrypted = encryptSecret(masterSecret, clientSecret);
15
+ const decrypted = decryptSecret(masterSecret, encrypted);
16
+ expect(decrypted.toString('utf-8')).toEqual(clientSecret);
17
+ });
18
+ //# sourceMappingURL=edge-verification.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-verification.test.js","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/edge-verification.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC1C,MAAM,YAAY,GAAG,wBAAwB,CAAC;IAC9C,MAAM,YAAY,GAAG,8CAA8C,CAAC;IACpE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IACxD,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { IApiToken, IEdgeTokenStore } from '../../types/index.js';
2
+ import type { EdgeClient } from '../../types/stores/edge-store.js';
3
+ export declare class FakeEdgeTokenStore implements IEdgeTokenStore {
4
+ registerNonce(clientId: string, nonce: string, expiresAt: Date): Promise<void>;
5
+ getToken(clientId: string, environment: string, projects: string[]): Promise<IApiToken | undefined>;
6
+ loadClient(clientId: string): Promise<EdgeClient | undefined>;
7
+ saveToken(clientId: string, token: IApiToken): Promise<void>;
8
+ saveClient(clientId: string, secretEnc: Buffer): Promise<void>;
9
+ cleanExpiredNonces(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=fake-edge-token-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake-edge-token-store.d.ts","sourceRoot":"","sources":["../../../../src/lib/features/edgetokens/fake-edge-token-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,qBAAa,kBAAmB,YAAW,eAAe;IACtD,aAAa,CACT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,GAChB,OAAO,CAAC,IAAI,CAAC;IAIhB,QAAQ,CACJ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAIjC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAI7D,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}