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
@@ -110,6 +110,13 @@ export declare const featureSearchEnvironmentSchema: {
110
110
  readonly $ref: "#/components/schemas/releasePlanSchema";
111
111
  };
112
112
  };
113
+ readonly safeguards: {
114
+ readonly type: "array";
115
+ readonly description: "Safeguards for this feature environment";
116
+ readonly items: {
117
+ readonly $ref: "#/components/schemas/featureEnvironmentSafeguardSchema";
118
+ };
119
+ };
113
120
  };
114
121
  readonly components: {
115
122
  readonly schemas: {
@@ -492,6 +499,13 @@ export declare const featureSearchEnvironmentSchema: {
492
499
  readonly $ref: "#/components/schemas/releasePlanSchema";
493
500
  };
494
501
  };
502
+ readonly safeguards: {
503
+ readonly type: "array";
504
+ readonly description: "Safeguards for this feature environment";
505
+ readonly items: {
506
+ readonly $ref: "#/components/schemas/featureEnvironmentSafeguardSchema";
507
+ };
508
+ };
495
509
  readonly yes: {
496
510
  readonly type: "integer";
497
511
  readonly description: "How many times the feature evaluated to true (enabled)";
@@ -950,7 +964,7 @@ export declare const featureSearchEnvironmentSchema: {
950
964
  readonly type: "array";
951
965
  readonly description: "An array of safeguards configured for this release plan.";
952
966
  readonly items: {
953
- readonly $ref: "#/components/schemas/safeguardSchema";
967
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
954
968
  };
955
969
  };
956
970
  };
@@ -1035,7 +1049,7 @@ export declare const featureSearchEnvironmentSchema: {
1035
1049
  readonly additionalProperties: false;
1036
1050
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
1037
1051
  readonly type: "object";
1038
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
1052
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
1039
1053
  readonly properties: {
1040
1054
  readonly id: {
1041
1055
  readonly type: "string";
@@ -1704,7 +1718,7 @@ export declare const featureSearchEnvironmentSchema: {
1704
1718
  readonly additionalProperties: false;
1705
1719
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
1706
1720
  readonly type: "object";
1707
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
1721
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
1708
1722
  readonly properties: {
1709
1723
  readonly id: {
1710
1724
  readonly type: "string";
@@ -2365,8 +2379,8 @@ export declare const featureSearchEnvironmentSchema: {
2365
2379
  };
2366
2380
  readonly components: {};
2367
2381
  };
2368
- readonly safeguardSchema: {
2369
- readonly $id: "#/components/schemas/safeguardSchema";
2382
+ readonly releasePlanSafeguardSchema: {
2383
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
2370
2384
  readonly type: "object";
2371
2385
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
2372
2386
  readonly description: "A safeguard configuration for a release plan.";
@@ -2435,6 +2449,12 @@ export declare const featureSearchEnvironmentSchema: {
2435
2449
  readonly project: readonly ["default"];
2436
2450
  };
2437
2451
  };
2452
+ readonly source: {
2453
+ readonly type: "string";
2454
+ readonly enum: readonly ["internal", "external"];
2455
+ 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.";
2456
+ readonly example: "internal";
2457
+ };
2438
2458
  readonly id: {
2439
2459
  readonly type: "string";
2440
2460
  readonly description: "The unique identifier for this impact metric";
@@ -2484,6 +2504,12 @@ export declare const featureSearchEnvironmentSchema: {
2484
2504
  readonly project: readonly ["default"];
2485
2505
  };
2486
2506
  };
2507
+ readonly source: {
2508
+ readonly type: "string";
2509
+ readonly enum: readonly ["internal", "external"];
2510
+ 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.";
2511
+ readonly example: "internal";
2512
+ };
2487
2513
  };
2488
2514
  readonly components: {};
2489
2515
  };
@@ -2549,6 +2575,12 @@ export declare const featureSearchEnvironmentSchema: {
2549
2575
  readonly project: readonly ["default"];
2550
2576
  };
2551
2577
  };
2578
+ readonly source: {
2579
+ readonly type: "string";
2580
+ readonly enum: readonly ["internal", "external"];
2581
+ 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.";
2582
+ readonly example: "internal";
2583
+ };
2552
2584
  };
2553
2585
  readonly components: {};
2554
2586
  };
@@ -2655,7 +2687,7 @@ export declare const featureSearchEnvironmentSchema: {
2655
2687
  readonly additionalProperties: false;
2656
2688
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
2657
2689
  readonly type: "object";
2658
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
2690
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
2659
2691
  readonly properties: {
2660
2692
  readonly id: {
2661
2693
  readonly type: "string";
@@ -3324,7 +3356,7 @@ export declare const featureSearchEnvironmentSchema: {
3324
3356
  readonly additionalProperties: false;
3325
3357
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
3326
3358
  readonly type: "object";
3327
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
3359
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
3328
3360
  readonly properties: {
3329
3361
  readonly id: {
3330
3362
  readonly type: "string";
@@ -3932,6 +3964,239 @@ export declare const featureSearchEnvironmentSchema: {
3932
3964
  };
3933
3965
  readonly components: {};
3934
3966
  };
3967
+ readonly featureEnvironmentSafeguardSchema: {
3968
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
3969
+ readonly type: "object";
3970
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
3971
+ readonly description: "A safeguard configuration for a feature environment.";
3972
+ readonly additionalProperties: false;
3973
+ readonly properties: {
3974
+ readonly id: {
3975
+ readonly type: "string";
3976
+ readonly description: "The unique ULID identifier for this safeguard";
3977
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
3978
+ };
3979
+ readonly action: {
3980
+ readonly type: "object";
3981
+ readonly required: readonly ["type", "featureName", "environment", "project"];
3982
+ readonly additionalProperties: false;
3983
+ readonly description: "Disable a feature in an environment when triggered.";
3984
+ readonly properties: {
3985
+ readonly type: {
3986
+ readonly type: "string";
3987
+ readonly description: "The type of action to perform.";
3988
+ readonly example: "disableFeatureEnvironment";
3989
+ };
3990
+ readonly featureName: {
3991
+ readonly type: "string";
3992
+ readonly description: "The feature flag name this safeguard applies to.";
3993
+ };
3994
+ readonly environment: {
3995
+ readonly type: "string";
3996
+ readonly description: "The environment this safeguard applies to.";
3997
+ };
3998
+ readonly project: {
3999
+ readonly type: "string";
4000
+ readonly description: "The project this safeguard applies to.";
4001
+ };
4002
+ };
4003
+ };
4004
+ readonly triggerCondition: {
4005
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
4006
+ readonly description: "The condition that triggers the safeguard.";
4007
+ };
4008
+ readonly impactMetric: {
4009
+ readonly type: "object";
4010
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
4011
+ readonly additionalProperties: false;
4012
+ readonly properties: {
4013
+ readonly metricName: {
4014
+ readonly type: "string";
4015
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
4016
+ readonly example: "unleash_counter_feature_toggle_usage_total";
4017
+ };
4018
+ readonly timeRange: {
4019
+ readonly type: "string";
4020
+ readonly enum: readonly ["hour", "day", "week", "month"];
4021
+ readonly description: "The time range for the metric data.";
4022
+ readonly example: "day";
4023
+ };
4024
+ readonly aggregationMode: {
4025
+ readonly type: "string";
4026
+ readonly description: "The aggregation mode for the metric data.";
4027
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
4028
+ readonly example: "rps";
4029
+ };
4030
+ readonly labelSelectors: {
4031
+ readonly type: "object";
4032
+ readonly additionalProperties: {
4033
+ readonly type: "array";
4034
+ readonly items: {
4035
+ readonly type: "string";
4036
+ };
4037
+ };
4038
+ readonly description: "The selected labels and their values for filtering the metric data.";
4039
+ readonly example: {
4040
+ readonly environment: readonly ["development"];
4041
+ readonly project: readonly ["default"];
4042
+ };
4043
+ };
4044
+ readonly source: {
4045
+ readonly type: "string";
4046
+ readonly enum: readonly ["internal", "external"];
4047
+ 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.";
4048
+ readonly example: "internal";
4049
+ };
4050
+ readonly id: {
4051
+ readonly type: "string";
4052
+ readonly description: "The unique identifier for this impact metric";
4053
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
4054
+ };
4055
+ };
4056
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
4057
+ };
4058
+ };
4059
+ readonly components: {
4060
+ readonly schemas: {
4061
+ readonly metricQuerySchema: {
4062
+ readonly $id: "#/components/schemas/metricQuerySchema";
4063
+ readonly type: "object";
4064
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
4065
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
4066
+ readonly additionalProperties: false;
4067
+ readonly properties: {
4068
+ readonly metricName: {
4069
+ readonly type: "string";
4070
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
4071
+ readonly example: "unleash_counter_feature_toggle_usage_total";
4072
+ };
4073
+ readonly timeRange: {
4074
+ readonly type: "string";
4075
+ readonly enum: readonly ["hour", "day", "week", "month"];
4076
+ readonly description: "The time range for the metric data.";
4077
+ readonly example: "day";
4078
+ };
4079
+ readonly aggregationMode: {
4080
+ readonly type: "string";
4081
+ readonly description: "The aggregation mode for the metric data.";
4082
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
4083
+ readonly example: "rps";
4084
+ };
4085
+ readonly labelSelectors: {
4086
+ readonly type: "object";
4087
+ readonly additionalProperties: {
4088
+ readonly type: "array";
4089
+ readonly items: {
4090
+ readonly type: "string";
4091
+ };
4092
+ };
4093
+ readonly description: "The selected labels and their values for filtering the metric data.";
4094
+ readonly example: {
4095
+ readonly environment: readonly ["development"];
4096
+ readonly project: readonly ["default"];
4097
+ };
4098
+ };
4099
+ readonly source: {
4100
+ readonly type: "string";
4101
+ readonly enum: readonly ["internal", "external"];
4102
+ 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.";
4103
+ readonly example: "internal";
4104
+ };
4105
+ };
4106
+ readonly components: {};
4107
+ };
4108
+ readonly safeguardTriggerConditionSchema: {
4109
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
4110
+ readonly type: "object";
4111
+ readonly required: readonly ["operator", "threshold"];
4112
+ readonly additionalProperties: false;
4113
+ readonly description: "The condition that triggers the safeguard.";
4114
+ readonly properties: {
4115
+ readonly operator: {
4116
+ readonly type: "string";
4117
+ readonly enum: readonly [">", "<"];
4118
+ readonly description: "The comparison operator for the threshold check.";
4119
+ readonly example: ">";
4120
+ };
4121
+ readonly threshold: {
4122
+ readonly type: "number";
4123
+ readonly description: "The threshold value to compare against.";
4124
+ readonly example: 100;
4125
+ };
4126
+ };
4127
+ readonly components: {};
4128
+ };
4129
+ };
4130
+ };
4131
+ };
4132
+ readonly safeguardTriggerConditionSchema: {
4133
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
4134
+ readonly type: "object";
4135
+ readonly required: readonly ["operator", "threshold"];
4136
+ readonly additionalProperties: false;
4137
+ readonly description: "The condition that triggers the safeguard.";
4138
+ readonly properties: {
4139
+ readonly operator: {
4140
+ readonly type: "string";
4141
+ readonly enum: readonly [">", "<"];
4142
+ readonly description: "The comparison operator for the threshold check.";
4143
+ readonly example: ">";
4144
+ };
4145
+ readonly threshold: {
4146
+ readonly type: "number";
4147
+ readonly description: "The threshold value to compare against.";
4148
+ readonly example: 100;
4149
+ };
4150
+ };
4151
+ readonly components: {};
4152
+ };
4153
+ readonly metricQuerySchema: {
4154
+ readonly $id: "#/components/schemas/metricQuerySchema";
4155
+ readonly type: "object";
4156
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
4157
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
4158
+ readonly additionalProperties: false;
4159
+ readonly properties: {
4160
+ readonly metricName: {
4161
+ readonly type: "string";
4162
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
4163
+ readonly example: "unleash_counter_feature_toggle_usage_total";
4164
+ };
4165
+ readonly timeRange: {
4166
+ readonly type: "string";
4167
+ readonly enum: readonly ["hour", "day", "week", "month"];
4168
+ readonly description: "The time range for the metric data.";
4169
+ readonly example: "day";
4170
+ };
4171
+ readonly aggregationMode: {
4172
+ readonly type: "string";
4173
+ readonly description: "The aggregation mode for the metric data.";
4174
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
4175
+ readonly example: "rps";
4176
+ };
4177
+ readonly labelSelectors: {
4178
+ readonly type: "object";
4179
+ readonly additionalProperties: {
4180
+ readonly type: "array";
4181
+ readonly items: {
4182
+ readonly type: "string";
4183
+ };
4184
+ };
4185
+ readonly description: "The selected labels and their values for filtering the metric data.";
4186
+ readonly example: {
4187
+ readonly environment: readonly ["development"];
4188
+ readonly project: readonly ["default"];
4189
+ };
4190
+ };
4191
+ readonly source: {
4192
+ readonly type: "string";
4193
+ readonly enum: readonly ["internal", "external"];
4194
+ 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.";
4195
+ readonly example: "internal";
4196
+ };
4197
+ };
4198
+ readonly components: {};
4199
+ };
3935
4200
  };
3936
4201
  };
3937
4202
  };
@@ -4098,7 +4363,7 @@ export declare const featureSearchEnvironmentSchema: {
4098
4363
  readonly type: "array";
4099
4364
  readonly description: "An array of safeguards configured for this release plan.";
4100
4365
  readonly items: {
4101
- readonly $ref: "#/components/schemas/safeguardSchema";
4366
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
4102
4367
  };
4103
4368
  };
4104
4369
  };
@@ -4183,7 +4448,7 @@ export declare const featureSearchEnvironmentSchema: {
4183
4448
  readonly additionalProperties: false;
4184
4449
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
4185
4450
  readonly type: "object";
4186
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
4451
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
4187
4452
  readonly properties: {
4188
4453
  readonly id: {
4189
4454
  readonly type: "string";
@@ -4852,7 +5117,7 @@ export declare const featureSearchEnvironmentSchema: {
4852
5117
  readonly additionalProperties: false;
4853
5118
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
4854
5119
  readonly type: "object";
4855
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
5120
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
4856
5121
  readonly properties: {
4857
5122
  readonly id: {
4858
5123
  readonly type: "string";
@@ -5513,8 +5778,8 @@ export declare const featureSearchEnvironmentSchema: {
5513
5778
  };
5514
5779
  readonly components: {};
5515
5780
  };
5516
- readonly safeguardSchema: {
5517
- readonly $id: "#/components/schemas/safeguardSchema";
5781
+ readonly releasePlanSafeguardSchema: {
5782
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
5518
5783
  readonly type: "object";
5519
5784
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
5520
5785
  readonly description: "A safeguard configuration for a release plan.";
@@ -5583,6 +5848,12 @@ export declare const featureSearchEnvironmentSchema: {
5583
5848
  readonly project: readonly ["default"];
5584
5849
  };
5585
5850
  };
5851
+ readonly source: {
5852
+ readonly type: "string";
5853
+ readonly enum: readonly ["internal", "external"];
5854
+ 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.";
5855
+ readonly example: "internal";
5856
+ };
5586
5857
  readonly id: {
5587
5858
  readonly type: "string";
5588
5859
  readonly description: "The unique identifier for this impact metric";
@@ -5632,6 +5903,12 @@ export declare const featureSearchEnvironmentSchema: {
5632
5903
  readonly project: readonly ["default"];
5633
5904
  };
5634
5905
  };
5906
+ readonly source: {
5907
+ readonly type: "string";
5908
+ readonly enum: readonly ["internal", "external"];
5909
+ 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.";
5910
+ readonly example: "internal";
5911
+ };
5635
5912
  };
5636
5913
  readonly components: {};
5637
5914
  };
@@ -5697,6 +5974,12 @@ export declare const featureSearchEnvironmentSchema: {
5697
5974
  readonly project: readonly ["default"];
5698
5975
  };
5699
5976
  };
5977
+ readonly source: {
5978
+ readonly type: "string";
5979
+ readonly enum: readonly ["internal", "external"];
5980
+ 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.";
5981
+ readonly example: "internal";
5982
+ };
5700
5983
  };
5701
5984
  readonly components: {};
5702
5985
  };
@@ -5803,7 +6086,7 @@ export declare const featureSearchEnvironmentSchema: {
5803
6086
  readonly additionalProperties: false;
5804
6087
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
5805
6088
  readonly type: "object";
5806
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
6089
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
5807
6090
  readonly properties: {
5808
6091
  readonly id: {
5809
6092
  readonly type: "string";
@@ -6472,7 +6755,7 @@ export declare const featureSearchEnvironmentSchema: {
6472
6755
  readonly additionalProperties: false;
6473
6756
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
6474
6757
  readonly type: "object";
6475
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
6758
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
6476
6759
  readonly properties: {
6477
6760
  readonly id: {
6478
6761
  readonly type: "string";
@@ -6853,6 +7136,397 @@ export declare const featureSearchEnvironmentSchema: {
6853
7136
  };
6854
7137
  readonly components: {};
6855
7138
  };
7139
+ readonly releasePlanSafeguardSchema: {
7140
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
7141
+ readonly type: "object";
7142
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
7143
+ readonly description: "A safeguard configuration for a release plan.";
7144
+ readonly additionalProperties: false;
7145
+ readonly properties: {
7146
+ readonly id: {
7147
+ readonly type: "string";
7148
+ readonly description: "The unique ULID identifier for this safeguard";
7149
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7150
+ };
7151
+ readonly action: {
7152
+ readonly type: "object";
7153
+ readonly required: readonly ["type", "id"];
7154
+ readonly additionalProperties: false;
7155
+ readonly description: "The action to take when the safeguard is triggered.";
7156
+ readonly properties: {
7157
+ readonly type: {
7158
+ readonly type: "string";
7159
+ readonly description: "The type of action to perform.";
7160
+ readonly example: "pauseReleasePlanProgressions";
7161
+ };
7162
+ readonly id: {
7163
+ readonly type: "string";
7164
+ readonly description: "The ID of the release plan this safeguard applies to.";
7165
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW2";
7166
+ };
7167
+ };
7168
+ };
7169
+ readonly triggerCondition: {
7170
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
7171
+ readonly description: "The condition that triggers the safeguard.";
7172
+ };
7173
+ readonly impactMetric: {
7174
+ readonly type: "object";
7175
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
7176
+ readonly additionalProperties: false;
7177
+ readonly properties: {
7178
+ readonly metricName: {
7179
+ readonly type: "string";
7180
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7181
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7182
+ };
7183
+ readonly timeRange: {
7184
+ readonly type: "string";
7185
+ readonly enum: readonly ["hour", "day", "week", "month"];
7186
+ readonly description: "The time range for the metric data.";
7187
+ readonly example: "day";
7188
+ };
7189
+ readonly aggregationMode: {
7190
+ readonly type: "string";
7191
+ readonly description: "The aggregation mode for the metric data.";
7192
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7193
+ readonly example: "rps";
7194
+ };
7195
+ readonly labelSelectors: {
7196
+ readonly type: "object";
7197
+ readonly additionalProperties: {
7198
+ readonly type: "array";
7199
+ readonly items: {
7200
+ readonly type: "string";
7201
+ };
7202
+ };
7203
+ readonly description: "The selected labels and their values for filtering the metric data.";
7204
+ readonly example: {
7205
+ readonly environment: readonly ["development"];
7206
+ readonly project: readonly ["default"];
7207
+ };
7208
+ };
7209
+ readonly source: {
7210
+ readonly type: "string";
7211
+ readonly enum: readonly ["internal", "external"];
7212
+ 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.";
7213
+ readonly example: "internal";
7214
+ };
7215
+ readonly id: {
7216
+ readonly type: "string";
7217
+ readonly description: "The unique identifier for this impact metric";
7218
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7219
+ };
7220
+ };
7221
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
7222
+ };
7223
+ };
7224
+ readonly components: {
7225
+ readonly schemas: {
7226
+ readonly metricQuerySchema: {
7227
+ readonly $id: "#/components/schemas/metricQuerySchema";
7228
+ readonly type: "object";
7229
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
7230
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
7231
+ readonly additionalProperties: false;
7232
+ readonly properties: {
7233
+ readonly metricName: {
7234
+ readonly type: "string";
7235
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7236
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7237
+ };
7238
+ readonly timeRange: {
7239
+ readonly type: "string";
7240
+ readonly enum: readonly ["hour", "day", "week", "month"];
7241
+ readonly description: "The time range for the metric data.";
7242
+ readonly example: "day";
7243
+ };
7244
+ readonly aggregationMode: {
7245
+ readonly type: "string";
7246
+ readonly description: "The aggregation mode for the metric data.";
7247
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7248
+ readonly example: "rps";
7249
+ };
7250
+ readonly labelSelectors: {
7251
+ readonly type: "object";
7252
+ readonly additionalProperties: {
7253
+ readonly type: "array";
7254
+ readonly items: {
7255
+ readonly type: "string";
7256
+ };
7257
+ };
7258
+ readonly description: "The selected labels and their values for filtering the metric data.";
7259
+ readonly example: {
7260
+ readonly environment: readonly ["development"];
7261
+ readonly project: readonly ["default"];
7262
+ };
7263
+ };
7264
+ readonly source: {
7265
+ readonly type: "string";
7266
+ readonly enum: readonly ["internal", "external"];
7267
+ 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.";
7268
+ readonly example: "internal";
7269
+ };
7270
+ };
7271
+ readonly components: {};
7272
+ };
7273
+ readonly safeguardTriggerConditionSchema: {
7274
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
7275
+ readonly type: "object";
7276
+ readonly required: readonly ["operator", "threshold"];
7277
+ readonly additionalProperties: false;
7278
+ readonly description: "The condition that triggers the safeguard.";
7279
+ readonly properties: {
7280
+ readonly operator: {
7281
+ readonly type: "string";
7282
+ readonly enum: readonly [">", "<"];
7283
+ readonly description: "The comparison operator for the threshold check.";
7284
+ readonly example: ">";
7285
+ };
7286
+ readonly threshold: {
7287
+ readonly type: "number";
7288
+ readonly description: "The threshold value to compare against.";
7289
+ readonly example: 100;
7290
+ };
7291
+ };
7292
+ readonly components: {};
7293
+ };
7294
+ };
7295
+ };
7296
+ };
7297
+ readonly featureEnvironmentSafeguardSchema: {
7298
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
7299
+ readonly type: "object";
7300
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
7301
+ readonly description: "A safeguard configuration for a feature environment.";
7302
+ readonly additionalProperties: false;
7303
+ readonly properties: {
7304
+ readonly id: {
7305
+ readonly type: "string";
7306
+ readonly description: "The unique ULID identifier for this safeguard";
7307
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7308
+ };
7309
+ readonly action: {
7310
+ readonly type: "object";
7311
+ readonly required: readonly ["type", "featureName", "environment", "project"];
7312
+ readonly additionalProperties: false;
7313
+ readonly description: "Disable a feature in an environment when triggered.";
7314
+ readonly properties: {
7315
+ readonly type: {
7316
+ readonly type: "string";
7317
+ readonly description: "The type of action to perform.";
7318
+ readonly example: "disableFeatureEnvironment";
7319
+ };
7320
+ readonly featureName: {
7321
+ readonly type: "string";
7322
+ readonly description: "The feature flag name this safeguard applies to.";
7323
+ };
7324
+ readonly environment: {
7325
+ readonly type: "string";
7326
+ readonly description: "The environment this safeguard applies to.";
7327
+ };
7328
+ readonly project: {
7329
+ readonly type: "string";
7330
+ readonly description: "The project this safeguard applies to.";
7331
+ };
7332
+ };
7333
+ };
7334
+ readonly triggerCondition: {
7335
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
7336
+ readonly description: "The condition that triggers the safeguard.";
7337
+ };
7338
+ readonly impactMetric: {
7339
+ readonly type: "object";
7340
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
7341
+ readonly additionalProperties: false;
7342
+ readonly properties: {
7343
+ readonly metricName: {
7344
+ readonly type: "string";
7345
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7346
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7347
+ };
7348
+ readonly timeRange: {
7349
+ readonly type: "string";
7350
+ readonly enum: readonly ["hour", "day", "week", "month"];
7351
+ readonly description: "The time range for the metric data.";
7352
+ readonly example: "day";
7353
+ };
7354
+ readonly aggregationMode: {
7355
+ readonly type: "string";
7356
+ readonly description: "The aggregation mode for the metric data.";
7357
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7358
+ readonly example: "rps";
7359
+ };
7360
+ readonly labelSelectors: {
7361
+ readonly type: "object";
7362
+ readonly additionalProperties: {
7363
+ readonly type: "array";
7364
+ readonly items: {
7365
+ readonly type: "string";
7366
+ };
7367
+ };
7368
+ readonly description: "The selected labels and their values for filtering the metric data.";
7369
+ readonly example: {
7370
+ readonly environment: readonly ["development"];
7371
+ readonly project: readonly ["default"];
7372
+ };
7373
+ };
7374
+ readonly source: {
7375
+ readonly type: "string";
7376
+ readonly enum: readonly ["internal", "external"];
7377
+ 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.";
7378
+ readonly example: "internal";
7379
+ };
7380
+ readonly id: {
7381
+ readonly type: "string";
7382
+ readonly description: "The unique identifier for this impact metric";
7383
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7384
+ };
7385
+ };
7386
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
7387
+ };
7388
+ };
7389
+ readonly components: {
7390
+ readonly schemas: {
7391
+ readonly metricQuerySchema: {
7392
+ readonly $id: "#/components/schemas/metricQuerySchema";
7393
+ readonly type: "object";
7394
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
7395
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
7396
+ readonly additionalProperties: false;
7397
+ readonly properties: {
7398
+ readonly metricName: {
7399
+ readonly type: "string";
7400
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7401
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7402
+ };
7403
+ readonly timeRange: {
7404
+ readonly type: "string";
7405
+ readonly enum: readonly ["hour", "day", "week", "month"];
7406
+ readonly description: "The time range for the metric data.";
7407
+ readonly example: "day";
7408
+ };
7409
+ readonly aggregationMode: {
7410
+ readonly type: "string";
7411
+ readonly description: "The aggregation mode for the metric data.";
7412
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7413
+ readonly example: "rps";
7414
+ };
7415
+ readonly labelSelectors: {
7416
+ readonly type: "object";
7417
+ readonly additionalProperties: {
7418
+ readonly type: "array";
7419
+ readonly items: {
7420
+ readonly type: "string";
7421
+ };
7422
+ };
7423
+ readonly description: "The selected labels and their values for filtering the metric data.";
7424
+ readonly example: {
7425
+ readonly environment: readonly ["development"];
7426
+ readonly project: readonly ["default"];
7427
+ };
7428
+ };
7429
+ readonly source: {
7430
+ readonly type: "string";
7431
+ readonly enum: readonly ["internal", "external"];
7432
+ 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.";
7433
+ readonly example: "internal";
7434
+ };
7435
+ };
7436
+ readonly components: {};
7437
+ };
7438
+ readonly safeguardTriggerConditionSchema: {
7439
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
7440
+ readonly type: "object";
7441
+ readonly required: readonly ["operator", "threshold"];
7442
+ readonly additionalProperties: false;
7443
+ readonly description: "The condition that triggers the safeguard.";
7444
+ readonly properties: {
7445
+ readonly operator: {
7446
+ readonly type: "string";
7447
+ readonly enum: readonly [">", "<"];
7448
+ readonly description: "The comparison operator for the threshold check.";
7449
+ readonly example: ">";
7450
+ };
7451
+ readonly threshold: {
7452
+ readonly type: "number";
7453
+ readonly description: "The threshold value to compare against.";
7454
+ readonly example: 100;
7455
+ };
7456
+ };
7457
+ readonly components: {};
7458
+ };
7459
+ };
7460
+ };
7461
+ };
7462
+ readonly metricQuerySchema: {
7463
+ readonly $id: "#/components/schemas/metricQuerySchema";
7464
+ readonly type: "object";
7465
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
7466
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
7467
+ readonly additionalProperties: false;
7468
+ readonly properties: {
7469
+ readonly metricName: {
7470
+ readonly type: "string";
7471
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7472
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7473
+ };
7474
+ readonly timeRange: {
7475
+ readonly type: "string";
7476
+ readonly enum: readonly ["hour", "day", "week", "month"];
7477
+ readonly description: "The time range for the metric data.";
7478
+ readonly example: "day";
7479
+ };
7480
+ readonly aggregationMode: {
7481
+ readonly type: "string";
7482
+ readonly description: "The aggregation mode for the metric data.";
7483
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7484
+ readonly example: "rps";
7485
+ };
7486
+ readonly labelSelectors: {
7487
+ readonly type: "object";
7488
+ readonly additionalProperties: {
7489
+ readonly type: "array";
7490
+ readonly items: {
7491
+ readonly type: "string";
7492
+ };
7493
+ };
7494
+ readonly description: "The selected labels and their values for filtering the metric data.";
7495
+ readonly example: {
7496
+ readonly environment: readonly ["development"];
7497
+ readonly project: readonly ["default"];
7498
+ };
7499
+ };
7500
+ readonly source: {
7501
+ readonly type: "string";
7502
+ readonly enum: readonly ["internal", "external"];
7503
+ 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.";
7504
+ readonly example: "internal";
7505
+ };
7506
+ };
7507
+ readonly components: {};
7508
+ };
7509
+ readonly safeguardTriggerConditionSchema: {
7510
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
7511
+ readonly type: "object";
7512
+ readonly required: readonly ["operator", "threshold"];
7513
+ readonly additionalProperties: false;
7514
+ readonly description: "The condition that triggers the safeguard.";
7515
+ readonly properties: {
7516
+ readonly operator: {
7517
+ readonly type: "string";
7518
+ readonly enum: readonly [">", "<"];
7519
+ readonly description: "The comparison operator for the threshold check.";
7520
+ readonly example: ">";
7521
+ };
7522
+ readonly threshold: {
7523
+ readonly type: "number";
7524
+ readonly description: "The threshold value to compare against.";
7525
+ readonly example: 100;
7526
+ };
7527
+ };
7528
+ readonly components: {};
7529
+ };
6856
7530
  readonly createFeatureStrategySchema: {
6857
7531
  readonly $id: "#/components/schemas/createFeatureStrategySchema";
6858
7532
  readonly type: "object";