unleash-server 7.5.1 → 7.6.2

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 (466) hide show
  1. package/dist/lib/addons/feature-event-formatter-md-events.d.ts.map +1 -1
  2. package/dist/lib/addons/feature-event-formatter-md-events.js +16 -1
  3. package/dist/lib/addons/feature-event-formatter-md-events.js.map +1 -1
  4. package/dist/lib/addons/slack-app-definition.d.ts.map +1 -1
  5. package/dist/lib/addons/slack-app-definition.js +4 -1
  6. package/dist/lib/addons/slack-app-definition.js.map +1 -1
  7. package/dist/lib/app.d.ts.map +1 -1
  8. package/dist/lib/app.js +11 -25
  9. package/dist/lib/app.js.map +1 -1
  10. package/dist/lib/create-config.d.ts.map +1 -1
  11. package/dist/lib/create-config.js +3 -0
  12. package/dist/lib/create-config.js.map +1 -1
  13. package/dist/lib/db/api-token-store.d.ts +4 -1
  14. package/dist/lib/db/api-token-store.d.ts.map +1 -1
  15. package/dist/lib/db/api-token-store.js +17 -3
  16. package/dist/lib/db/api-token-store.js.map +1 -1
  17. package/dist/lib/error/bad-gateway-error.d.ts +7 -0
  18. package/dist/lib/error/bad-gateway-error.d.ts.map +1 -0
  19. package/dist/lib/error/bad-gateway-error.js +9 -0
  20. package/dist/lib/error/bad-gateway-error.js.map +1 -0
  21. package/dist/lib/error/gateway-timeout-error.d.ts +7 -0
  22. package/dist/lib/error/gateway-timeout-error.d.ts.map +1 -0
  23. package/dist/lib/error/gateway-timeout-error.js +9 -0
  24. package/dist/lib/error/gateway-timeout-error.js.map +1 -0
  25. package/dist/lib/error/index.d.ts +3 -1
  26. package/dist/lib/error/index.d.ts.map +1 -1
  27. package/dist/lib/error/index.js +3 -1
  28. package/dist/lib/error/index.js.map +1 -1
  29. package/dist/lib/error/unleash-error.d.ts +1 -1
  30. package/dist/lib/error/unleash-error.d.ts.map +1 -1
  31. package/dist/lib/error/unleash-error.js +2 -0
  32. package/dist/lib/error/unleash-error.js.map +1 -1
  33. package/dist/lib/events/index.d.ts +4 -1
  34. package/dist/lib/events/index.d.ts.map +1 -1
  35. package/dist/lib/events/index.js +6 -0
  36. package/dist/lib/events/index.js.map +1 -1
  37. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.d.ts.map +1 -1
  38. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.js +5 -0
  39. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.js.map +1 -1
  40. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.d.ts +2 -0
  41. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.d.ts.map +1 -0
  42. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.js +53 -0
  43. package/dist/lib/features/client-feature-toggles/client-feature-toggle-store.test.js.map +1 -0
  44. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.d.ts.map +1 -1
  45. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.js +5 -0
  46. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.js.map +1 -1
  47. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.d.ts +2 -0
  48. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.d.ts.map +1 -0
  49. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.js +59 -0
  50. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta-read-model.test.js.map +1 -0
  51. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.d.ts +9 -3
  52. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.d.ts.map +1 -1
  53. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js +165 -92
  54. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js.map +1 -1
  55. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js +475 -1
  56. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js.map +1 -1
  57. package/dist/lib/features/client-feature-toggles/delta/delta-cache.d.ts.map +1 -1
  58. package/dist/lib/features/client-feature-toggles/delta/delta-cache.js +3 -0
  59. package/dist/lib/features/client-feature-toggles/delta/delta-cache.js.map +1 -1
  60. package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js +15 -0
  61. package/dist/lib/features/client-feature-toggles/delta/delta-cache.test.js.map +1 -1
  62. package/dist/lib/features/client-feature-toggles/delta/visible-revision.d.ts +3 -0
  63. package/dist/lib/features/client-feature-toggles/delta/visible-revision.d.ts.map +1 -0
  64. package/dist/lib/features/client-feature-toggles/delta/visible-revision.js +16 -0
  65. package/dist/lib/features/client-feature-toggles/delta/visible-revision.js.map +1 -0
  66. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.d.ts +2 -0
  67. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.d.ts.map +1 -0
  68. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.js +25 -0
  69. package/dist/lib/features/client-feature-toggles/delta/visible-revision.test.js.map +1 -0
  70. package/dist/lib/features/context/context.d.ts +0 -1
  71. package/dist/lib/features/context/context.d.ts.map +1 -1
  72. package/dist/lib/features/context/context.js +7 -15
  73. package/dist/lib/features/context/context.js.map +1 -1
  74. package/dist/lib/features/edgetokens/edge-token-store.d.ts +2 -0
  75. package/dist/lib/features/edgetokens/edge-token-store.d.ts.map +1 -1
  76. package/dist/lib/features/edgetokens/edge-token-store.js +20 -0
  77. package/dist/lib/features/edgetokens/edge-token-store.js.map +1 -1
  78. package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts +2 -0
  79. package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts.map +1 -1
  80. package/dist/lib/features/edgetokens/fake-edge-token-store.js +6 -0
  81. package/dist/lib/features/edgetokens/fake-edge-token-store.js.map +1 -1
  82. package/dist/lib/features/events/event-store.d.ts +2 -4
  83. package/dist/lib/features/events/event-store.d.ts.map +1 -1
  84. package/dist/lib/features/events/event-store.js +1 -4
  85. package/dist/lib/features/events/event-store.js.map +1 -1
  86. package/dist/lib/features/feature-search/feature-search-controller.d.ts.map +1 -1
  87. package/dist/lib/features/feature-search/feature-search-controller.js +2 -1
  88. package/dist/lib/features/feature-search/feature-search-controller.js.map +1 -1
  89. package/dist/lib/features/feature-search/feature-search-service.d.ts.map +1 -1
  90. package/dist/lib/features/feature-search/feature-search-service.js +5 -0
  91. package/dist/lib/features/feature-search/feature-search-service.js.map +1 -1
  92. package/dist/lib/features/feature-search/feature-search-store.d.ts.map +1 -1
  93. package/dist/lib/features/feature-search/feature-search-store.js +17 -1
  94. package/dist/lib/features/feature-search/feature-search-store.js.map +1 -1
  95. package/dist/lib/features/feature-search/feature.search.e2e.test.js +56 -1
  96. package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
  97. package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts +1 -2
  98. package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts.map +1 -1
  99. package/dist/lib/features/feature-toggle/configuration-revision-service.js +2 -10
  100. package/dist/lib/features/feature-toggle/configuration-revision-service.js.map +1 -1
  101. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts.map +1 -1
  102. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js +3 -2
  103. package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
  104. package/dist/lib/features/feature-toggle/types/feature-toggle-strategies-store-type.d.ts +1 -0
  105. package/dist/lib/features/feature-toggle/types/feature-toggle-strategies-store-type.d.ts.map +1 -1
  106. package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
  107. package/dist/lib/features/frontend-api/frontend-api-service.js +8 -0
  108. package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
  109. package/dist/lib/features/frontend-api/frontend-api.e2e.test.js +43 -0
  110. package/dist/lib/features/frontend-api/frontend-api.e2e.test.js.map +1 -1
  111. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.d.ts +3 -0
  112. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.d.ts.map +1 -0
  113. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.js +1071 -0
  114. package/dist/lib/features/frontend-api/frontend-api.middleware.e2e.test.js.map +1 -0
  115. package/dist/lib/features/index.d.ts +1 -0
  116. package/dist/lib/features/index.d.ts.map +1 -1
  117. package/dist/lib/features/index.js +1 -0
  118. package/dist/lib/features/index.js.map +1 -1
  119. package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
  120. package/dist/lib/features/instance-stats/instance-stats-service.js +1 -3
  121. package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
  122. package/dist/lib/features/metrics/impact/impact-metrics.e2e.test.js +12 -12
  123. package/dist/lib/features/metrics/impact/impact-metrics.e2e.test.js.map +1 -1
  124. package/dist/lib/features/metrics/impact/metrics-translator.d.ts +5 -2
  125. package/dist/lib/features/metrics/impact/metrics-translator.d.ts.map +1 -1
  126. package/dist/lib/features/metrics/impact/metrics-translator.js +86 -102
  127. package/dist/lib/features/metrics/impact/metrics-translator.js.map +1 -1
  128. package/dist/lib/features/metrics/impact/metrics-translator.test.js +70 -112
  129. package/dist/lib/features/metrics/impact/metrics-translator.test.js.map +1 -1
  130. package/dist/lib/features/project/createProjectService.d.ts.map +1 -1
  131. package/dist/lib/features/project/createProjectService.js +6 -0
  132. package/dist/lib/features/project/createProjectService.js.map +1 -1
  133. package/dist/lib/features/project/project-service.d.ts +2 -1
  134. package/dist/lib/features/project/project-service.d.ts.map +1 -1
  135. package/dist/lib/features/project/project-service.js +3 -1
  136. package/dist/lib/features/project/project-service.js.map +1 -1
  137. package/dist/lib/features/project-environments/project-environments.e2e.test.js +37 -0
  138. package/dist/lib/features/project-environments/project-environments.e2e.test.js.map +1 -1
  139. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts.map +1 -1
  140. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js +2 -5
  141. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js.map +1 -1
  142. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js +2 -2
  143. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js.map +1 -1
  144. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts +2 -1
  145. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts.map +1 -1
  146. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js +20 -3
  147. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js.map +1 -1
  148. package/dist/lib/features/release-plans/release-plan-milestone-strategy.d.ts +2 -0
  149. package/dist/lib/features/release-plans/release-plan-milestone-strategy.d.ts.map +1 -1
  150. package/dist/lib/features/release-plans/release-plan-store.d.ts.map +1 -1
  151. package/dist/lib/features/release-plans/release-plan-store.js +2 -0
  152. package/dist/lib/features/release-plans/release-plan-store.js.map +1 -1
  153. package/dist/lib/features/release-plans/release-plan-template-store.d.ts.map +1 -1
  154. package/dist/lib/features/release-plans/release-plan-template-store.js +4 -3
  155. package/dist/lib/features/release-plans/release-plan-template-store.js.map +1 -1
  156. package/dist/lib/features/release-plans/release-plan-template-store.test.d.ts +2 -0
  157. package/dist/lib/features/release-plans/release-plan-template-store.test.d.ts.map +1 -0
  158. package/dist/lib/features/release-plans/release-plan-template-store.test.js +47 -0
  159. package/dist/lib/features/release-plans/release-plan-template-store.test.js.map +1 -0
  160. package/dist/lib/metric-events.d.ts +3 -2
  161. package/dist/lib/metric-events.d.ts.map +1 -1
  162. package/dist/lib/metric-events.js +2 -1
  163. package/dist/lib/metric-events.js.map +1 -1
  164. package/dist/lib/middleware/api-token-middleware.d.ts.map +1 -1
  165. package/dist/lib/middleware/api-token-middleware.js +1 -5
  166. package/dist/lib/middleware/api-token-middleware.js.map +1 -1
  167. package/dist/lib/middleware/api-token-middleware.test.js +35 -25
  168. package/dist/lib/middleware/api-token-middleware.test.js.map +1 -1
  169. package/dist/lib/middleware/backend-token-middleware.d.ts +5 -0
  170. package/dist/lib/middleware/backend-token-middleware.d.ts.map +1 -0
  171. package/dist/lib/middleware/backend-token-middleware.js +61 -0
  172. package/dist/lib/middleware/backend-token-middleware.js.map +1 -0
  173. package/dist/lib/middleware/backend-token-middleware.test.d.ts +2 -0
  174. package/dist/lib/middleware/backend-token-middleware.test.d.ts.map +1 -0
  175. package/dist/lib/middleware/backend-token-middleware.test.js +73 -0
  176. package/dist/lib/middleware/backend-token-middleware.test.js.map +1 -0
  177. package/dist/lib/middleware/conditional-middleware.d.ts +20 -0
  178. package/dist/lib/middleware/conditional-middleware.d.ts.map +1 -1
  179. package/dist/lib/middleware/conditional-middleware.js +26 -0
  180. package/dist/lib/middleware/conditional-middleware.js.map +1 -1
  181. package/dist/lib/middleware/conditional-middleware.test.d.ts +2 -0
  182. package/dist/lib/middleware/conditional-middleware.test.d.ts.map +1 -0
  183. package/dist/lib/middleware/conditional-middleware.test.js +31 -0
  184. package/dist/lib/middleware/conditional-middleware.test.js.map +1 -0
  185. package/dist/lib/middleware/frontend-token-middleware.d.ts +5 -0
  186. package/dist/lib/middleware/frontend-token-middleware.d.ts.map +1 -0
  187. package/dist/lib/middleware/frontend-token-middleware.js +61 -0
  188. package/dist/lib/middleware/frontend-token-middleware.js.map +1 -0
  189. package/dist/lib/middleware/user-token-client-api-logger-middleware.js +1 -1
  190. package/dist/lib/middleware/user-token-client-api-logger-middleware.js.map +1 -1
  191. package/dist/lib/openapi/spec/event-schema.d.ts +1 -1
  192. package/dist/lib/openapi/spec/event-search-response-schema.d.ts +1 -1
  193. package/dist/lib/openapi/spec/events-schema.d.ts +1 -1
  194. package/dist/lib/openapi/spec/export-result-schema.d.ts +1018 -100
  195. package/dist/lib/openapi/spec/export-result-schema.d.ts.map +1 -1
  196. package/dist/lib/openapi/spec/export-result-schema.js +4 -2
  197. package/dist/lib/openapi/spec/export-result-schema.js.map +1 -1
  198. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.d.ts +168 -0
  199. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.d.ts.map +1 -0
  200. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.js +66 -0
  201. package/dist/lib/openapi/spec/feature-environment-safeguard-schema.js.map +1 -0
  202. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +265 -7
  203. package/dist/lib/openapi/spec/feature-environment-schema.d.ts.map +1 -1
  204. package/dist/lib/openapi/spec/feature-environment-schema.js +13 -0
  205. package/dist/lib/openapi/spec/feature-environment-schema.js.map +1 -1
  206. package/dist/lib/openapi/spec/feature-events-schema.d.ts +1 -1
  207. package/dist/lib/openapi/spec/feature-schema.d.ts +475 -16
  208. package/dist/lib/openapi/spec/feature-schema.d.ts.map +1 -1
  209. package/dist/lib/openapi/spec/feature-schema.js +4 -2
  210. package/dist/lib/openapi/spec/feature-schema.js.map +1 -1
  211. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +688 -14
  212. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts.map +1 -1
  213. package/dist/lib/openapi/spec/feature-search-environment-schema.js +8 -0
  214. package/dist/lib/openapi/spec/feature-search-environment-schema.js.map +1 -1
  215. package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts +10 -1
  216. package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts.map +1 -1
  217. package/dist/lib/openapi/spec/feature-search-query-parameters.js +10 -0
  218. package/dist/lib/openapi/spec/feature-search-query-parameters.js.map +1 -1
  219. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +8097 -155
  220. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts.map +1 -1
  221. package/dist/lib/openapi/spec/feature-search-response-schema.js +22 -0
  222. package/dist/lib/openapi/spec/feature-search-response-schema.js.map +1 -1
  223. package/dist/lib/openapi/spec/health-overview-schema.d.ts +1336 -210
  224. package/dist/lib/openapi/spec/health-overview-schema.d.ts.map +1 -1
  225. package/dist/lib/openapi/spec/health-overview-schema.js +8 -0
  226. package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
  227. package/dist/lib/openapi/spec/health-report-schema.d.ts +1336 -210
  228. package/dist/lib/openapi/spec/health-report-schema.d.ts.map +1 -1
  229. package/dist/lib/openapi/spec/import-toggles-schema.d.ts +2 -2
  230. package/dist/lib/openapi/spec/import-toggles-schema.d.ts.map +1 -1
  231. package/dist/lib/openapi/spec/import-toggles-schema.js +4 -2
  232. package/dist/lib/openapi/spec/import-toggles-schema.js.map +1 -1
  233. package/dist/lib/openapi/spec/index.d.ts +4 -2
  234. package/dist/lib/openapi/spec/index.d.ts.map +1 -1
  235. package/dist/lib/openapi/spec/index.js +4 -2
  236. package/dist/lib/openapi/spec/index.js.map +1 -1
  237. package/dist/lib/openapi/spec/integration-event-schema.d.ts +1 -1
  238. package/dist/lib/openapi/spec/integration-events-schema.d.ts +2 -2
  239. package/dist/lib/openapi/spec/metric-query-schema.d.ts +6 -0
  240. package/dist/lib/openapi/spec/metric-query-schema.d.ts.map +1 -1
  241. package/dist/lib/openapi/spec/metric-query-schema.js +6 -0
  242. package/dist/lib/openapi/spec/metric-query-schema.js.map +1 -1
  243. package/dist/lib/openapi/spec/profile-schema.d.ts +475 -16
  244. package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
  245. package/dist/lib/openapi/spec/project-overview-schema.d.ts +1336 -210
  246. package/dist/lib/openapi/spec/project-overview-schema.d.ts.map +1 -1
  247. package/dist/lib/openapi/spec/project-overview-schema.js +8 -0
  248. package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
  249. package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +1 -1
  250. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +1 -1
  251. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js +1 -1
  252. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js.map +1 -1
  253. package/dist/lib/openapi/spec/{safeguard-schema.d.ts → release-plan-safeguard-schema.d.ts} +16 -4
  254. package/dist/lib/openapi/spec/release-plan-safeguard-schema.d.ts.map +1 -0
  255. package/dist/lib/openapi/spec/{safeguard-schema.js → release-plan-safeguard-schema.js} +3 -3
  256. package/dist/lib/openapi/spec/release-plan-safeguard-schema.js.map +1 -0
  257. package/dist/lib/openapi/spec/release-plan-schema.d.ts +23 -5
  258. package/dist/lib/openapi/spec/release-plan-schema.d.ts.map +1 -1
  259. package/dist/lib/openapi/spec/release-plan-schema.js +3 -3
  260. package/dist/lib/openapi/spec/release-plan-schema.js.map +1 -1
  261. package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +2 -2
  262. package/dist/lib/openapi/spec/release-plan-templates-schema.d.ts +2897 -0
  263. package/dist/lib/openapi/spec/release-plan-templates-schema.d.ts.map +1 -0
  264. package/dist/lib/openapi/spec/release-plan-templates-schema.js +29 -0
  265. package/dist/lib/openapi/spec/release-plan-templates-schema.js.map +1 -0
  266. package/dist/lib/openapi/spec/release-plans-schema.d.ts +45 -9
  267. package/dist/lib/openapi/spec/release-plans-schema.d.ts.map +1 -1
  268. package/dist/lib/openapi/spec/release-plans-schema.js +2 -2
  269. package/dist/lib/openapi/spec/release-plans-schema.js.map +1 -1
  270. package/dist/lib/openapi/spec/search-features-schema.d.ts +13694 -5078
  271. package/dist/lib/openapi/spec/search-features-schema.d.ts.map +1 -1
  272. package/dist/lib/routes/admin-api/api-token.js +1 -1
  273. package/dist/lib/routes/admin-api/api-token.js.map +1 -1
  274. package/dist/lib/routes/admin-api/project/api-token.js +1 -1
  275. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  276. package/dist/lib/routes/logout.js +1 -1
  277. package/dist/lib/routes/logout.js.map +1 -1
  278. package/dist/lib/routes/logout.test.js +4 -4
  279. package/dist/lib/routes/logout.test.js.map +1 -1
  280. package/dist/lib/schema/api-token-schema.d.ts.map +1 -1
  281. package/dist/lib/schema/api-token-schema.js +1 -0
  282. package/dist/lib/schema/api-token-schema.js.map +1 -1
  283. package/dist/lib/server-impl.d.ts +5 -5
  284. package/dist/lib/server-impl.d.ts.map +1 -1
  285. package/dist/lib/server-impl.js +3 -3
  286. package/dist/lib/server-impl.js.map +1 -1
  287. package/dist/lib/services/api-token-service.d.ts +2 -2
  288. package/dist/lib/services/api-token-service.d.ts.map +1 -1
  289. package/dist/lib/services/api-token-service.js +5 -3
  290. package/dist/lib/services/api-token-service.js.map +1 -1
  291. package/dist/lib/services/api-token-service.test.js +5 -4
  292. package/dist/lib/services/api-token-service.test.js.map +1 -1
  293. package/dist/lib/services/edge-service.d.ts +1 -0
  294. package/dist/lib/services/edge-service.d.ts.map +1 -1
  295. package/dist/lib/services/edge-service.js +5 -2
  296. package/dist/lib/services/edge-service.js.map +1 -1
  297. package/dist/lib/services/user-service.d.ts.map +1 -1
  298. package/dist/lib/services/user-service.js +0 -4
  299. package/dist/lib/services/user-service.js.map +1 -1
  300. package/dist/lib/types/experimental.d.ts +1 -1
  301. package/dist/lib/types/experimental.d.ts.map +1 -1
  302. package/dist/lib/types/experimental.js +7 -8
  303. package/dist/lib/types/experimental.js.map +1 -1
  304. package/dist/lib/types/model.d.ts +2 -1
  305. package/dist/lib/types/model.d.ts.map +1 -1
  306. package/dist/lib/types/model.js.map +1 -1
  307. package/dist/lib/types/option.d.ts +2 -0
  308. package/dist/lib/types/option.d.ts.map +1 -1
  309. package/dist/lib/types/stores/api-token-store.d.ts +2 -1
  310. package/dist/lib/types/stores/api-token-store.d.ts.map +1 -1
  311. package/dist/lib/types/stores/edge-store.d.ts +2 -0
  312. package/dist/lib/types/stores/edge-store.d.ts.map +1 -1
  313. package/dist/lib/types/stores/event-store.d.ts +1 -1
  314. package/dist/lib/types/stores/event-store.d.ts.map +1 -1
  315. package/dist/lib/util/clone-db-config.d.ts +3 -0
  316. package/dist/lib/util/clone-db-config.d.ts.map +1 -0
  317. package/dist/lib/util/clone-db-config.js +18 -0
  318. package/dist/lib/util/clone-db-config.js.map +1 -0
  319. package/dist/lib/util/clone-db-config.test.d.ts +2 -0
  320. package/dist/lib/util/clone-db-config.test.d.ts.map +1 -0
  321. package/dist/lib/util/clone-db-config.test.js +40 -0
  322. package/dist/lib/util/clone-db-config.test.js.map +1 -0
  323. package/dist/lib/util/db-lock.d.ts.map +1 -1
  324. package/dist/lib/util/db-lock.js +2 -3
  325. package/dist/lib/util/db-lock.js.map +1 -1
  326. package/dist/lib/util/sortStrategies.d.ts +1 -1
  327. package/dist/lib/util/sortStrategies.d.ts.map +1 -1
  328. package/dist/lib/util/sortStrategies.js +6 -2
  329. package/dist/lib/util/sortStrategies.js.map +1 -1
  330. package/dist/lib/util/sortStrategies.test.js +21 -0
  331. package/dist/lib/util/sortStrategies.test.js.map +1 -1
  332. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.d.ts +3 -0
  333. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.d.ts.map +1 -0
  334. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.js +15 -0
  335. package/dist/migrations/20260309125735-drop-cascade-for-edge-api-token.js.map +1 -0
  336. package/dist/migrations/20260310134100-split-safeguards-table.d.ts +3 -0
  337. package/dist/migrations/20260310134100-split-safeguards-table.d.ts.map +1 -0
  338. package/dist/migrations/20260310134100-split-safeguards-table.js +31 -0
  339. package/dist/migrations/20260310134100-split-safeguards-table.js.map +1 -0
  340. package/dist/migrations/20260311073041-migrate-safeguards-data.d.ts +3 -0
  341. package/dist/migrations/20260311073041-migrate-safeguards-data.d.ts.map +1 -0
  342. package/dist/migrations/20260311073041-migrate-safeguards-data.js +42 -0
  343. package/dist/migrations/20260311073041-migrate-safeguards-data.js.map +1 -0
  344. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.d.ts +3 -0
  345. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.d.ts.map +1 -0
  346. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.js +31 -0
  347. package/dist/migrations/20260312100000-release-plans-fix-cascade-on-env-disconnect.js.map +1 -0
  348. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.d.ts +3 -0
  349. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.d.ts.map +1 -0
  350. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.js +8 -0
  351. package/dist/migrations/20260316113111-update-memory-usage-to-big-int.js.map +1 -0
  352. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.d.ts +3 -0
  353. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.d.ts.map +1 -0
  354. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.js +54 -0
  355. package/dist/migrations/20260316140000-safeguards-fix-cascade-on-env-disconnect.js.map +1 -0
  356. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.d.ts +3 -0
  357. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.d.ts.map +1 -0
  358. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.js +21 -0
  359. package/dist/migrations/20260317140000-safeguards-drop-project-not-null.js.map +1 -0
  360. package/dist/migrations/20260318100000-safeguards-drop-project-column.d.ts +3 -0
  361. package/dist/migrations/20260318100000-safeguards-drop-project-column.d.ts.map +1 -0
  362. package/dist/migrations/20260318100000-safeguards-drop-project-column.js +14 -0
  363. package/dist/migrations/20260318100000-safeguards-drop-project-column.js.map +1 -0
  364. package/dist/migrations/20260406132537-user-access-requests.d.ts +3 -0
  365. package/dist/migrations/20260406132537-user-access-requests.d.ts.map +1 -0
  366. package/dist/migrations/20260406132537-user-access-requests.js +16 -0
  367. package/dist/migrations/20260406132537-user-access-requests.js.map +1 -0
  368. package/dist/migrations/20260406161629-user-access-requests-unique-email.d.ts +3 -0
  369. package/dist/migrations/20260406161629-user-access-requests-unique-email.d.ts.map +1 -0
  370. package/dist/migrations/20260406161629-user-access-requests-unique-email.js +14 -0
  371. package/dist/migrations/20260406161629-user-access-requests-unique-email.js.map +1 -0
  372. package/dist/migrator.d.ts.map +1 -1
  373. package/dist/migrator.js +4 -3
  374. package/dist/migrator.js.map +1 -1
  375. package/dist/server-dev.js +4 -7
  376. package/dist/server-dev.js.map +1 -1
  377. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +5 -5
  378. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
  379. package/dist/test/e2e/api/admin/api-token.e2e.test.js +3 -2
  380. package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
  381. package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js +106 -38
  382. package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js.map +1 -1
  383. package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js +1 -7
  384. package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js.map +1 -1
  385. package/dist/test/e2e/api/admin/project/api-token.e2e.test.js +2 -1
  386. package/dist/test/e2e/api/admin/project/api-token.e2e.test.js.map +1 -1
  387. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js +5 -5
  388. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js.map +1 -1
  389. package/dist/test/e2e/api/admin/project-context.e2e.test.js +1 -7
  390. package/dist/test/e2e/api/admin/project-context.e2e.test.js.map +1 -1
  391. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +34 -1
  392. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
  393. package/dist/test/e2e/services/api-token-service.e2e.test.js +21 -6
  394. package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
  395. package/dist/test/e2e/services/edge-service.e2e.test.js +4 -3
  396. package/dist/test/e2e/services/edge-service.e2e.test.js.map +1 -1
  397. package/dist/test/e2e/stores/api-token-store.e2e.test.js +15 -14
  398. package/dist/test/e2e/stores/api-token-store.e2e.test.js.map +1 -1
  399. package/dist/test/e2e/stores/event-store.e2e.test.js +8 -9
  400. package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
  401. package/dist/test/fixtures/fake-api-token-store.d.ts +2 -1
  402. package/dist/test/fixtures/fake-api-token-store.d.ts.map +1 -1
  403. package/dist/test/fixtures/fake-api-token-store.js +4 -1
  404. package/dist/test/fixtures/fake-api-token-store.js.map +1 -1
  405. package/dist/test/fixtures/fake-event-store.d.ts +1 -1
  406. package/dist/test/fixtures/fake-event-store.d.ts.map +1 -1
  407. package/dist/test/fixtures/fake-event-store.js +1 -1
  408. package/dist/test/fixtures/fake-event-store.js.map +1 -1
  409. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts +2 -2
  410. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts.map +1 -1
  411. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js +3 -2
  412. package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js.map +1 -1
  413. package/frontend/build/index.html +1 -1
  414. package/frontend/build/static/AdvancedPlayground-BTPrG6RW.js +3 -0
  415. package/frontend/build/static/BackendConnections-CRh8Vxoe.js +1 -0
  416. package/frontend/build/static/{CreateProject-DV-Ad8Sn.js → CreateProject-DEMalH1j.js} +1 -1
  417. package/frontend/build/static/EnterpriseEdge-Cp-pGMa0.js +6 -0
  418. package/frontend/build/static/FeatureMetricsChart-DQOE71LA.js +2 -0
  419. package/frontend/build/static/FeatureStaleDialog-B6BfnDiQ.js +689 -0
  420. package/frontend/build/static/{FeatureViewLazyExport-Bsw7-knb.js → FeatureViewLazyExport-BkNTNFqK.js} +4 -7
  421. package/frontend/build/static/FlagMetricsChart-zYDF9bet.js +2 -0
  422. package/frontend/build/static/FrontendNetworkTrafficUsage-CbxdFXH7.js +1 -0
  423. package/frontend/build/static/GridLayoutWrapper-Cq6Bzm36.js +3 -0
  424. package/frontend/build/static/ImpactMetricsPage-CFYXYXPb.js +1 -0
  425. package/frontend/build/static/LazyAdminExport-ByTh4iFa.js +38 -0
  426. package/frontend/build/static/LazyProjectExport-K12Xy3w9.js +46 -0
  427. package/frontend/build/static/{LifecycleChartComponent-cxR-TN3V.js → LifecycleChartComponent-DHvlFNd2.js} +3 -3
  428. package/frontend/build/static/LineChartComponent-BlhKm3cw.js +1 -0
  429. package/frontend/build/static/MarkCompletedDialogue-apmlFjVY.js +1 -0
  430. package/frontend/build/static/{NetworkOverview-DxaPXUzZ.js → NetworkOverview-BiLOuQ4c.js} +1 -1
  431. package/frontend/build/static/{NetworkPrometheusAPIWarning-ltyTlXFF.js → NetworkPrometheusAPIWarning-CYo3j2Tj.js} +1 -1
  432. package/frontend/build/static/{NetworkTraffic-Dhw4yIBs.js → NetworkTraffic-DONL5oIx.js} +1 -1
  433. package/frontend/build/static/NetworkTrafficUsage-DjQiYq0S.js +1 -0
  434. package/frontend/build/static/{PercentageDonut-JGNh2FVZ.js → PercentageDonut-CA9hYg3v.js} +1 -1
  435. package/frontend/build/static/{ReactJSONEditor-GHl7KvdS.js → ReactJSONEditor-9cJL1vJY.js} +31 -31
  436. package/frontend/build/static/{RoleCell-CjVCxBgl.js → RoleCell-ZzU5Oqy8.js} +1 -1
  437. package/frontend/build/static/Safeguard-DY1N4aPz.js +1 -0
  438. package/frontend/build/static/aggregateFeatureMetrics-D6bHft_C.js +1 -0
  439. package/frontend/build/static/{formatTickValue-BZb4ZIL9.js → formatTickValue-BcLsqREh.js} +2 -2
  440. package/frontend/build/static/{index-DcWBU_a4.js → index-B87DWXbl.js} +1 -1
  441. package/frontend/build/static/index-CoLhlfXP.js +565 -0
  442. package/frontend/build/static/loginBackground-CQx0IRYc.png +0 -0
  443. package/frontend/build/static/{networkTrafficUsageHighlightPlugin-BbfAyDiQ.js → networkTrafficUsageHighlightPlugin-CqEM-cK_.js} +1 -1
  444. package/frontend/build/static/passwordSuccess-fcvTEYOw.png +0 -0
  445. package/frontend/build/static/useApiTokens-ClWvohC9.js +1 -0
  446. package/frontend/package.json +50 -42
  447. package/package.json +11 -10
  448. package/dist/lib/openapi/spec/safeguard-schema.d.ts.map +0 -1
  449. package/dist/lib/openapi/spec/safeguard-schema.js.map +0 -1
  450. package/frontend/build/static/AdvancedPlayground-CF0hkpiE.js +0 -3
  451. package/frontend/build/static/BackendConnections-DhZczar-.js +0 -1
  452. package/frontend/build/static/EnterpriseEdge-D1To2ugP.js +0 -3
  453. package/frontend/build/static/FeatureMetricsChart-D8sRgx5P.js +0 -2
  454. package/frontend/build/static/FeatureStaleDialog-DOkhgvaj.js +0 -7
  455. package/frontend/build/static/FlagMetricsChart-CF_kEyQa.js +0 -2
  456. package/frontend/build/static/FrontendNetworkTrafficUsage-C8zJSvoc.js +0 -1
  457. package/frontend/build/static/GridLayoutWrapper-DpJcUbQB.js +0 -3
  458. package/frontend/build/static/ImpactMetricsPage-KLVv-tP4.js +0 -1
  459. package/frontend/build/static/LazyAdminExport-CWQiknO-.js +0 -38
  460. package/frontend/build/static/LazyProjectExport-DsMn4Yxm.js +0 -728
  461. package/frontend/build/static/LineChartComponent-_yZEp3dd.js +0 -1
  462. package/frontend/build/static/MarkCompletedDialogue-DFtLyDN0.js +0 -1
  463. package/frontend/build/static/NetworkTrafficUsage-deKWRhIS.js +0 -1
  464. package/frontend/build/static/aggregateFeatureMetrics-YEdZNNoV.js +0 -1
  465. package/frontend/build/static/index-DMSjiFEm.js +0 -583
  466. package/frontend/build/static/useApiTokens-DBB3NvXL.js +0 -1
@@ -402,6 +402,13 @@ export declare const featureSchema: {
402
402
  readonly $ref: "#/components/schemas/releasePlanSchema";
403
403
  };
404
404
  };
405
+ readonly safeguards: {
406
+ readonly type: "array";
407
+ readonly description: "Safeguards for this feature environment";
408
+ readonly items: {
409
+ readonly $ref: "#/components/schemas/featureEnvironmentSafeguardSchema";
410
+ };
411
+ };
405
412
  readonly yes: {
406
413
  readonly type: "integer";
407
414
  readonly description: "How many times the feature evaluated to true (enabled)";
@@ -860,7 +867,7 @@ export declare const featureSchema: {
860
867
  readonly type: "array";
861
868
  readonly description: "An array of safeguards configured for this release plan.";
862
869
  readonly items: {
863
- readonly $ref: "#/components/schemas/safeguardSchema";
870
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
864
871
  };
865
872
  };
866
873
  };
@@ -945,7 +952,7 @@ export declare const featureSchema: {
945
952
  readonly additionalProperties: false;
946
953
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
947
954
  readonly type: "object";
948
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
955
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
949
956
  readonly properties: {
950
957
  readonly id: {
951
958
  readonly type: "string";
@@ -1614,7 +1621,7 @@ export declare const featureSchema: {
1614
1621
  readonly additionalProperties: false;
1615
1622
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
1616
1623
  readonly type: "object";
1617
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
1624
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
1618
1625
  readonly properties: {
1619
1626
  readonly id: {
1620
1627
  readonly type: "string";
@@ -2275,8 +2282,8 @@ export declare const featureSchema: {
2275
2282
  };
2276
2283
  readonly components: {};
2277
2284
  };
2278
- readonly safeguardSchema: {
2279
- readonly $id: "#/components/schemas/safeguardSchema";
2285
+ readonly releasePlanSafeguardSchema: {
2286
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
2280
2287
  readonly type: "object";
2281
2288
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
2282
2289
  readonly description: "A safeguard configuration for a release plan.";
@@ -2345,6 +2352,12 @@ export declare const featureSchema: {
2345
2352
  readonly project: readonly ["default"];
2346
2353
  };
2347
2354
  };
2355
+ readonly source: {
2356
+ readonly type: "string";
2357
+ readonly enum: readonly ["internal", "external"];
2358
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
2359
+ readonly example: "internal";
2360
+ };
2348
2361
  readonly id: {
2349
2362
  readonly type: "string";
2350
2363
  readonly description: "The unique identifier for this impact metric";
@@ -2394,6 +2407,12 @@ export declare const featureSchema: {
2394
2407
  readonly project: readonly ["default"];
2395
2408
  };
2396
2409
  };
2410
+ readonly source: {
2411
+ readonly type: "string";
2412
+ readonly enum: readonly ["internal", "external"];
2413
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
2414
+ readonly example: "internal";
2415
+ };
2397
2416
  };
2398
2417
  readonly components: {};
2399
2418
  };
@@ -2459,6 +2478,12 @@ export declare const featureSchema: {
2459
2478
  readonly project: readonly ["default"];
2460
2479
  };
2461
2480
  };
2481
+ readonly source: {
2482
+ readonly type: "string";
2483
+ readonly enum: readonly ["internal", "external"];
2484
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
2485
+ readonly example: "internal";
2486
+ };
2462
2487
  };
2463
2488
  readonly components: {};
2464
2489
  };
@@ -2565,7 +2590,7 @@ export declare const featureSchema: {
2565
2590
  readonly additionalProperties: false;
2566
2591
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
2567
2592
  readonly type: "object";
2568
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
2593
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
2569
2594
  readonly properties: {
2570
2595
  readonly id: {
2571
2596
  readonly type: "string";
@@ -3234,7 +3259,7 @@ export declare const featureSchema: {
3234
3259
  readonly additionalProperties: false;
3235
3260
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
3236
3261
  readonly type: "object";
3237
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
3262
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
3238
3263
  readonly properties: {
3239
3264
  readonly id: {
3240
3265
  readonly type: "string";
@@ -3842,6 +3867,239 @@ export declare const featureSchema: {
3842
3867
  };
3843
3868
  readonly components: {};
3844
3869
  };
3870
+ readonly featureEnvironmentSafeguardSchema: {
3871
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
3872
+ readonly type: "object";
3873
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
3874
+ readonly description: "A safeguard configuration for a feature environment.";
3875
+ readonly additionalProperties: false;
3876
+ readonly properties: {
3877
+ readonly id: {
3878
+ readonly type: "string";
3879
+ readonly description: "The unique ULID identifier for this safeguard";
3880
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
3881
+ };
3882
+ readonly action: {
3883
+ readonly type: "object";
3884
+ readonly required: readonly ["type", "featureName", "environment", "project"];
3885
+ readonly additionalProperties: false;
3886
+ readonly description: "Disable a feature in an environment when triggered.";
3887
+ readonly properties: {
3888
+ readonly type: {
3889
+ readonly type: "string";
3890
+ readonly description: "The type of action to perform.";
3891
+ readonly example: "disableFeatureEnvironment";
3892
+ };
3893
+ readonly featureName: {
3894
+ readonly type: "string";
3895
+ readonly description: "The feature flag name this safeguard applies to.";
3896
+ };
3897
+ readonly environment: {
3898
+ readonly type: "string";
3899
+ readonly description: "The environment this safeguard applies to.";
3900
+ };
3901
+ readonly project: {
3902
+ readonly type: "string";
3903
+ readonly description: "The project this safeguard applies to.";
3904
+ };
3905
+ };
3906
+ };
3907
+ readonly triggerCondition: {
3908
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
3909
+ readonly description: "The condition that triggers the safeguard.";
3910
+ };
3911
+ readonly impactMetric: {
3912
+ readonly type: "object";
3913
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
3914
+ readonly additionalProperties: false;
3915
+ readonly properties: {
3916
+ readonly metricName: {
3917
+ readonly type: "string";
3918
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
3919
+ readonly example: "unleash_counter_feature_toggle_usage_total";
3920
+ };
3921
+ readonly timeRange: {
3922
+ readonly type: "string";
3923
+ readonly enum: readonly ["hour", "day", "week", "month"];
3924
+ readonly description: "The time range for the metric data.";
3925
+ readonly example: "day";
3926
+ };
3927
+ readonly aggregationMode: {
3928
+ readonly type: "string";
3929
+ readonly description: "The aggregation mode for the metric data.";
3930
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
3931
+ readonly example: "rps";
3932
+ };
3933
+ readonly labelSelectors: {
3934
+ readonly type: "object";
3935
+ readonly additionalProperties: {
3936
+ readonly type: "array";
3937
+ readonly items: {
3938
+ readonly type: "string";
3939
+ };
3940
+ };
3941
+ readonly description: "The selected labels and their values for filtering the metric data.";
3942
+ readonly example: {
3943
+ readonly environment: readonly ["development"];
3944
+ readonly project: readonly ["default"];
3945
+ };
3946
+ };
3947
+ readonly source: {
3948
+ readonly type: "string";
3949
+ readonly enum: readonly ["internal", "external"];
3950
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
3951
+ readonly example: "internal";
3952
+ };
3953
+ readonly id: {
3954
+ readonly type: "string";
3955
+ readonly description: "The unique identifier for this impact metric";
3956
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
3957
+ };
3958
+ };
3959
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
3960
+ };
3961
+ };
3962
+ readonly components: {
3963
+ readonly schemas: {
3964
+ readonly metricQuerySchema: {
3965
+ readonly $id: "#/components/schemas/metricQuerySchema";
3966
+ readonly type: "object";
3967
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
3968
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
3969
+ readonly additionalProperties: false;
3970
+ readonly properties: {
3971
+ readonly metricName: {
3972
+ readonly type: "string";
3973
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
3974
+ readonly example: "unleash_counter_feature_toggle_usage_total";
3975
+ };
3976
+ readonly timeRange: {
3977
+ readonly type: "string";
3978
+ readonly enum: readonly ["hour", "day", "week", "month"];
3979
+ readonly description: "The time range for the metric data.";
3980
+ readonly example: "day";
3981
+ };
3982
+ readonly aggregationMode: {
3983
+ readonly type: "string";
3984
+ readonly description: "The aggregation mode for the metric data.";
3985
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
3986
+ readonly example: "rps";
3987
+ };
3988
+ readonly labelSelectors: {
3989
+ readonly type: "object";
3990
+ readonly additionalProperties: {
3991
+ readonly type: "array";
3992
+ readonly items: {
3993
+ readonly type: "string";
3994
+ };
3995
+ };
3996
+ readonly description: "The selected labels and their values for filtering the metric data.";
3997
+ readonly example: {
3998
+ readonly environment: readonly ["development"];
3999
+ readonly project: readonly ["default"];
4000
+ };
4001
+ };
4002
+ readonly source: {
4003
+ readonly type: "string";
4004
+ readonly enum: readonly ["internal", "external"];
4005
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
4006
+ readonly example: "internal";
4007
+ };
4008
+ };
4009
+ readonly components: {};
4010
+ };
4011
+ readonly safeguardTriggerConditionSchema: {
4012
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
4013
+ readonly type: "object";
4014
+ readonly required: readonly ["operator", "threshold"];
4015
+ readonly additionalProperties: false;
4016
+ readonly description: "The condition that triggers the safeguard.";
4017
+ readonly properties: {
4018
+ readonly operator: {
4019
+ readonly type: "string";
4020
+ readonly enum: readonly [">", "<"];
4021
+ readonly description: "The comparison operator for the threshold check.";
4022
+ readonly example: ">";
4023
+ };
4024
+ readonly threshold: {
4025
+ readonly type: "number";
4026
+ readonly description: "The threshold value to compare against.";
4027
+ readonly example: 100;
4028
+ };
4029
+ };
4030
+ readonly components: {};
4031
+ };
4032
+ };
4033
+ };
4034
+ };
4035
+ readonly safeguardTriggerConditionSchema: {
4036
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
4037
+ readonly type: "object";
4038
+ readonly required: readonly ["operator", "threshold"];
4039
+ readonly additionalProperties: false;
4040
+ readonly description: "The condition that triggers the safeguard.";
4041
+ readonly properties: {
4042
+ readonly operator: {
4043
+ readonly type: "string";
4044
+ readonly enum: readonly [">", "<"];
4045
+ readonly description: "The comparison operator for the threshold check.";
4046
+ readonly example: ">";
4047
+ };
4048
+ readonly threshold: {
4049
+ readonly type: "number";
4050
+ readonly description: "The threshold value to compare against.";
4051
+ readonly example: 100;
4052
+ };
4053
+ };
4054
+ readonly components: {};
4055
+ };
4056
+ readonly metricQuerySchema: {
4057
+ readonly $id: "#/components/schemas/metricQuerySchema";
4058
+ readonly type: "object";
4059
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
4060
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
4061
+ readonly additionalProperties: false;
4062
+ readonly properties: {
4063
+ readonly metricName: {
4064
+ readonly type: "string";
4065
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
4066
+ readonly example: "unleash_counter_feature_toggle_usage_total";
4067
+ };
4068
+ readonly timeRange: {
4069
+ readonly type: "string";
4070
+ readonly enum: readonly ["hour", "day", "week", "month"];
4071
+ readonly description: "The time range for the metric data.";
4072
+ readonly example: "day";
4073
+ };
4074
+ readonly aggregationMode: {
4075
+ readonly type: "string";
4076
+ readonly description: "The aggregation mode for the metric data.";
4077
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
4078
+ readonly example: "rps";
4079
+ };
4080
+ readonly labelSelectors: {
4081
+ readonly type: "object";
4082
+ readonly additionalProperties: {
4083
+ readonly type: "array";
4084
+ readonly items: {
4085
+ readonly type: "string";
4086
+ };
4087
+ };
4088
+ readonly description: "The selected labels and their values for filtering the metric data.";
4089
+ readonly example: {
4090
+ readonly environment: readonly ["development"];
4091
+ readonly project: readonly ["default"];
4092
+ };
4093
+ };
4094
+ readonly source: {
4095
+ readonly type: "string";
4096
+ readonly enum: readonly ["internal", "external"];
4097
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
4098
+ readonly example: "internal";
4099
+ };
4100
+ };
4101
+ readonly components: {};
4102
+ };
3845
4103
  };
3846
4104
  };
3847
4105
  };
@@ -4298,7 +4556,7 @@ export declare const featureSchema: {
4298
4556
  readonly type: "array";
4299
4557
  readonly description: "An array of safeguards configured for this release plan.";
4300
4558
  readonly items: {
4301
- readonly $ref: "#/components/schemas/safeguardSchema";
4559
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
4302
4560
  };
4303
4561
  };
4304
4562
  };
@@ -4383,7 +4641,7 @@ export declare const featureSchema: {
4383
4641
  readonly additionalProperties: false;
4384
4642
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
4385
4643
  readonly type: "object";
4386
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
4644
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
4387
4645
  readonly properties: {
4388
4646
  readonly id: {
4389
4647
  readonly type: "string";
@@ -5052,7 +5310,7 @@ export declare const featureSchema: {
5052
5310
  readonly additionalProperties: false;
5053
5311
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
5054
5312
  readonly type: "object";
5055
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
5313
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
5056
5314
  readonly properties: {
5057
5315
  readonly id: {
5058
5316
  readonly type: "string";
@@ -5713,8 +5971,8 @@ export declare const featureSchema: {
5713
5971
  };
5714
5972
  readonly components: {};
5715
5973
  };
5716
- readonly safeguardSchema: {
5717
- readonly $id: "#/components/schemas/safeguardSchema";
5974
+ readonly releasePlanSafeguardSchema: {
5975
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
5718
5976
  readonly type: "object";
5719
5977
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
5720
5978
  readonly description: "A safeguard configuration for a release plan.";
@@ -5783,6 +6041,12 @@ export declare const featureSchema: {
5783
6041
  readonly project: readonly ["default"];
5784
6042
  };
5785
6043
  };
6044
+ readonly source: {
6045
+ readonly type: "string";
6046
+ readonly enum: readonly ["internal", "external"];
6047
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
6048
+ readonly example: "internal";
6049
+ };
5786
6050
  readonly id: {
5787
6051
  readonly type: "string";
5788
6052
  readonly description: "The unique identifier for this impact metric";
@@ -5832,6 +6096,12 @@ export declare const featureSchema: {
5832
6096
  readonly project: readonly ["default"];
5833
6097
  };
5834
6098
  };
6099
+ readonly source: {
6100
+ readonly type: "string";
6101
+ readonly enum: readonly ["internal", "external"];
6102
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
6103
+ readonly example: "internal";
6104
+ };
5835
6105
  };
5836
6106
  readonly components: {};
5837
6107
  };
@@ -5897,6 +6167,12 @@ export declare const featureSchema: {
5897
6167
  readonly project: readonly ["default"];
5898
6168
  };
5899
6169
  };
6170
+ readonly source: {
6171
+ readonly type: "string";
6172
+ readonly enum: readonly ["internal", "external"];
6173
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
6174
+ readonly example: "internal";
6175
+ };
5900
6176
  };
5901
6177
  readonly components: {};
5902
6178
  };
@@ -6003,7 +6279,7 @@ export declare const featureSchema: {
6003
6279
  readonly additionalProperties: false;
6004
6280
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
6005
6281
  readonly type: "object";
6006
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
6282
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
6007
6283
  readonly properties: {
6008
6284
  readonly id: {
6009
6285
  readonly type: "string";
@@ -6672,7 +6948,7 @@ export declare const featureSchema: {
6672
6948
  readonly additionalProperties: false;
6673
6949
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
6674
6950
  readonly type: "object";
6675
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
6951
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
6676
6952
  readonly properties: {
6677
6953
  readonly id: {
6678
6954
  readonly type: "string";
@@ -7280,8 +7556,8 @@ export declare const featureSchema: {
7280
7556
  };
7281
7557
  readonly components: {};
7282
7558
  };
7283
- readonly safeguardSchema: {
7284
- readonly $id: "#/components/schemas/safeguardSchema";
7559
+ readonly releasePlanSafeguardSchema: {
7560
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
7285
7561
  readonly type: "object";
7286
7562
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
7287
7563
  readonly description: "A safeguard configuration for a release plan.";
@@ -7350,6 +7626,177 @@ export declare const featureSchema: {
7350
7626
  readonly project: readonly ["default"];
7351
7627
  };
7352
7628
  };
7629
+ readonly source: {
7630
+ readonly type: "string";
7631
+ readonly enum: readonly ["internal", "external"];
7632
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
7633
+ readonly example: "internal";
7634
+ };
7635
+ readonly id: {
7636
+ readonly type: "string";
7637
+ readonly description: "The unique identifier for this impact metric";
7638
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7639
+ };
7640
+ };
7641
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
7642
+ };
7643
+ };
7644
+ readonly components: {
7645
+ readonly schemas: {
7646
+ readonly metricQuerySchema: {
7647
+ readonly $id: "#/components/schemas/metricQuerySchema";
7648
+ readonly type: "object";
7649
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
7650
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
7651
+ readonly additionalProperties: false;
7652
+ readonly properties: {
7653
+ readonly metricName: {
7654
+ readonly type: "string";
7655
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7656
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7657
+ };
7658
+ readonly timeRange: {
7659
+ readonly type: "string";
7660
+ readonly enum: readonly ["hour", "day", "week", "month"];
7661
+ readonly description: "The time range for the metric data.";
7662
+ readonly example: "day";
7663
+ };
7664
+ readonly aggregationMode: {
7665
+ readonly type: "string";
7666
+ readonly description: "The aggregation mode for the metric data.";
7667
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7668
+ readonly example: "rps";
7669
+ };
7670
+ readonly labelSelectors: {
7671
+ readonly type: "object";
7672
+ readonly additionalProperties: {
7673
+ readonly type: "array";
7674
+ readonly items: {
7675
+ readonly type: "string";
7676
+ };
7677
+ };
7678
+ readonly description: "The selected labels and their values for filtering the metric data.";
7679
+ readonly example: {
7680
+ readonly environment: readonly ["development"];
7681
+ readonly project: readonly ["default"];
7682
+ };
7683
+ };
7684
+ readonly source: {
7685
+ readonly type: "string";
7686
+ readonly enum: readonly ["internal", "external"];
7687
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
7688
+ readonly example: "internal";
7689
+ };
7690
+ };
7691
+ readonly components: {};
7692
+ };
7693
+ readonly safeguardTriggerConditionSchema: {
7694
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
7695
+ readonly type: "object";
7696
+ readonly required: readonly ["operator", "threshold"];
7697
+ readonly additionalProperties: false;
7698
+ readonly description: "The condition that triggers the safeguard.";
7699
+ readonly properties: {
7700
+ readonly operator: {
7701
+ readonly type: "string";
7702
+ readonly enum: readonly [">", "<"];
7703
+ readonly description: "The comparison operator for the threshold check.";
7704
+ readonly example: ">";
7705
+ };
7706
+ readonly threshold: {
7707
+ readonly type: "number";
7708
+ readonly description: "The threshold value to compare against.";
7709
+ readonly example: 100;
7710
+ };
7711
+ };
7712
+ readonly components: {};
7713
+ };
7714
+ };
7715
+ };
7716
+ };
7717
+ readonly featureEnvironmentSafeguardSchema: {
7718
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
7719
+ readonly type: "object";
7720
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
7721
+ readonly description: "A safeguard configuration for a feature environment.";
7722
+ readonly additionalProperties: false;
7723
+ readonly properties: {
7724
+ readonly id: {
7725
+ readonly type: "string";
7726
+ readonly description: "The unique ULID identifier for this safeguard";
7727
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7728
+ };
7729
+ readonly action: {
7730
+ readonly type: "object";
7731
+ readonly required: readonly ["type", "featureName", "environment", "project"];
7732
+ readonly additionalProperties: false;
7733
+ readonly description: "Disable a feature in an environment when triggered.";
7734
+ readonly properties: {
7735
+ readonly type: {
7736
+ readonly type: "string";
7737
+ readonly description: "The type of action to perform.";
7738
+ readonly example: "disableFeatureEnvironment";
7739
+ };
7740
+ readonly featureName: {
7741
+ readonly type: "string";
7742
+ readonly description: "The feature flag name this safeguard applies to.";
7743
+ };
7744
+ readonly environment: {
7745
+ readonly type: "string";
7746
+ readonly description: "The environment this safeguard applies to.";
7747
+ };
7748
+ readonly project: {
7749
+ readonly type: "string";
7750
+ readonly description: "The project this safeguard applies to.";
7751
+ };
7752
+ };
7753
+ };
7754
+ readonly triggerCondition: {
7755
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
7756
+ readonly description: "The condition that triggers the safeguard.";
7757
+ };
7758
+ readonly impactMetric: {
7759
+ readonly type: "object";
7760
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
7761
+ readonly additionalProperties: false;
7762
+ readonly properties: {
7763
+ readonly metricName: {
7764
+ readonly type: "string";
7765
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7766
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7767
+ };
7768
+ readonly timeRange: {
7769
+ readonly type: "string";
7770
+ readonly enum: readonly ["hour", "day", "week", "month"];
7771
+ readonly description: "The time range for the metric data.";
7772
+ readonly example: "day";
7773
+ };
7774
+ readonly aggregationMode: {
7775
+ readonly type: "string";
7776
+ readonly description: "The aggregation mode for the metric data.";
7777
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7778
+ readonly example: "rps";
7779
+ };
7780
+ readonly labelSelectors: {
7781
+ readonly type: "object";
7782
+ readonly additionalProperties: {
7783
+ readonly type: "array";
7784
+ readonly items: {
7785
+ readonly type: "string";
7786
+ };
7787
+ };
7788
+ readonly description: "The selected labels and their values for filtering the metric data.";
7789
+ readonly example: {
7790
+ readonly environment: readonly ["development"];
7791
+ readonly project: readonly ["default"];
7792
+ };
7793
+ };
7794
+ readonly source: {
7795
+ readonly type: "string";
7796
+ readonly enum: readonly ["internal", "external"];
7797
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
7798
+ readonly example: "internal";
7799
+ };
7353
7800
  readonly id: {
7354
7801
  readonly type: "string";
7355
7802
  readonly description: "The unique identifier for this impact metric";
@@ -7399,6 +7846,12 @@ export declare const featureSchema: {
7399
7846
  readonly project: readonly ["default"];
7400
7847
  };
7401
7848
  };
7849
+ readonly source: {
7850
+ readonly type: "string";
7851
+ readonly enum: readonly ["internal", "external"];
7852
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
7853
+ readonly example: "internal";
7854
+ };
7402
7855
  };
7403
7856
  readonly components: {};
7404
7857
  };
@@ -7464,6 +7917,12 @@ export declare const featureSchema: {
7464
7917
  readonly project: readonly ["default"];
7465
7918
  };
7466
7919
  };
7920
+ readonly source: {
7921
+ readonly type: "string";
7922
+ readonly enum: readonly ["internal", "external"];
7923
+ readonly description: "The Prometheus data source for this metric. Internal is the Unleash-managed Prometheus, external is a customer-provided Prometheus instance. Defaults to internal if not specified.";
7924
+ readonly example: "internal";
7925
+ };
7467
7926
  };
7468
7927
  readonly components: {};
7469
7928
  };