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
@@ -548,6 +548,13 @@ export declare const exportResultSchema: {
548
548
  readonly $ref: "#/components/schemas/releasePlanSchema";
549
549
  };
550
550
  };
551
+ readonly safeguards: {
552
+ readonly type: "array";
553
+ readonly description: "Safeguards for this feature environment";
554
+ readonly items: {
555
+ readonly $ref: "#/components/schemas/featureEnvironmentSafeguardSchema";
556
+ };
557
+ };
551
558
  readonly yes: {
552
559
  readonly type: "integer";
553
560
  readonly description: "How many times the feature evaluated to true (enabled)";
@@ -1006,7 +1013,7 @@ export declare const exportResultSchema: {
1006
1013
  readonly type: "array";
1007
1014
  readonly description: "An array of safeguards configured for this release plan.";
1008
1015
  readonly items: {
1009
- readonly $ref: "#/components/schemas/safeguardSchema";
1016
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
1010
1017
  };
1011
1018
  };
1012
1019
  };
@@ -1091,7 +1098,7 @@ export declare const exportResultSchema: {
1091
1098
  readonly additionalProperties: false;
1092
1099
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
1093
1100
  readonly type: "object";
1094
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
1101
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
1095
1102
  readonly properties: {
1096
1103
  readonly id: {
1097
1104
  readonly type: "string";
@@ -1760,7 +1767,7 @@ export declare const exportResultSchema: {
1760
1767
  readonly additionalProperties: false;
1761
1768
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
1762
1769
  readonly type: "object";
1763
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
1770
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
1764
1771
  readonly properties: {
1765
1772
  readonly id: {
1766
1773
  readonly type: "string";
@@ -2421,8 +2428,8 @@ export declare const exportResultSchema: {
2421
2428
  };
2422
2429
  readonly components: {};
2423
2430
  };
2424
- readonly safeguardSchema: {
2425
- readonly $id: "#/components/schemas/safeguardSchema";
2431
+ readonly releasePlanSafeguardSchema: {
2432
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
2426
2433
  readonly type: "object";
2427
2434
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
2428
2435
  readonly description: "A safeguard configuration for a release plan.";
@@ -2491,6 +2498,12 @@ export declare const exportResultSchema: {
2491
2498
  readonly project: readonly ["default"];
2492
2499
  };
2493
2500
  };
2501
+ readonly source: {
2502
+ readonly type: "string";
2503
+ readonly enum: readonly ["internal", "external"];
2504
+ 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.";
2505
+ readonly example: "internal";
2506
+ };
2494
2507
  readonly id: {
2495
2508
  readonly type: "string";
2496
2509
  readonly description: "The unique identifier for this impact metric";
@@ -2540,6 +2553,12 @@ export declare const exportResultSchema: {
2540
2553
  readonly project: readonly ["default"];
2541
2554
  };
2542
2555
  };
2556
+ readonly source: {
2557
+ readonly type: "string";
2558
+ readonly enum: readonly ["internal", "external"];
2559
+ 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.";
2560
+ readonly example: "internal";
2561
+ };
2543
2562
  };
2544
2563
  readonly components: {};
2545
2564
  };
@@ -2605,6 +2624,12 @@ export declare const exportResultSchema: {
2605
2624
  readonly project: readonly ["default"];
2606
2625
  };
2607
2626
  };
2627
+ readonly source: {
2628
+ readonly type: "string";
2629
+ readonly enum: readonly ["internal", "external"];
2630
+ 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.";
2631
+ readonly example: "internal";
2632
+ };
2608
2633
  };
2609
2634
  readonly components: {};
2610
2635
  };
@@ -2711,7 +2736,7 @@ export declare const exportResultSchema: {
2711
2736
  readonly additionalProperties: false;
2712
2737
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
2713
2738
  readonly type: "object";
2714
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
2739
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
2715
2740
  readonly properties: {
2716
2741
  readonly id: {
2717
2742
  readonly type: "string";
@@ -3380,7 +3405,7 @@ export declare const exportResultSchema: {
3380
3405
  readonly additionalProperties: false;
3381
3406
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
3382
3407
  readonly type: "object";
3383
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
3408
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
3384
3409
  readonly properties: {
3385
3410
  readonly id: {
3386
3411
  readonly type: "string";
@@ -3988,6 +4013,239 @@ export declare const exportResultSchema: {
3988
4013
  };
3989
4014
  readonly components: {};
3990
4015
  };
4016
+ readonly featureEnvironmentSafeguardSchema: {
4017
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
4018
+ readonly type: "object";
4019
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
4020
+ readonly description: "A safeguard configuration for a feature environment.";
4021
+ readonly additionalProperties: false;
4022
+ readonly properties: {
4023
+ readonly id: {
4024
+ readonly type: "string";
4025
+ readonly description: "The unique ULID identifier for this safeguard";
4026
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
4027
+ };
4028
+ readonly action: {
4029
+ readonly type: "object";
4030
+ readonly required: readonly ["type", "featureName", "environment", "project"];
4031
+ readonly additionalProperties: false;
4032
+ readonly description: "Disable a feature in an environment when triggered.";
4033
+ readonly properties: {
4034
+ readonly type: {
4035
+ readonly type: "string";
4036
+ readonly description: "The type of action to perform.";
4037
+ readonly example: "disableFeatureEnvironment";
4038
+ };
4039
+ readonly featureName: {
4040
+ readonly type: "string";
4041
+ readonly description: "The feature flag name this safeguard applies to.";
4042
+ };
4043
+ readonly environment: {
4044
+ readonly type: "string";
4045
+ readonly description: "The environment this safeguard applies to.";
4046
+ };
4047
+ readonly project: {
4048
+ readonly type: "string";
4049
+ readonly description: "The project this safeguard applies to.";
4050
+ };
4051
+ };
4052
+ };
4053
+ readonly triggerCondition: {
4054
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
4055
+ readonly description: "The condition that triggers the safeguard.";
4056
+ };
4057
+ readonly impactMetric: {
4058
+ readonly type: "object";
4059
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
4060
+ readonly additionalProperties: false;
4061
+ readonly properties: {
4062
+ readonly metricName: {
4063
+ readonly type: "string";
4064
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
4065
+ readonly example: "unleash_counter_feature_toggle_usage_total";
4066
+ };
4067
+ readonly timeRange: {
4068
+ readonly type: "string";
4069
+ readonly enum: readonly ["hour", "day", "week", "month"];
4070
+ readonly description: "The time range for the metric data.";
4071
+ readonly example: "day";
4072
+ };
4073
+ readonly aggregationMode: {
4074
+ readonly type: "string";
4075
+ readonly description: "The aggregation mode for the metric data.";
4076
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
4077
+ readonly example: "rps";
4078
+ };
4079
+ readonly labelSelectors: {
4080
+ readonly type: "object";
4081
+ readonly additionalProperties: {
4082
+ readonly type: "array";
4083
+ readonly items: {
4084
+ readonly type: "string";
4085
+ };
4086
+ };
4087
+ readonly description: "The selected labels and their values for filtering the metric data.";
4088
+ readonly example: {
4089
+ readonly environment: readonly ["development"];
4090
+ readonly project: readonly ["default"];
4091
+ };
4092
+ };
4093
+ readonly source: {
4094
+ readonly type: "string";
4095
+ readonly enum: readonly ["internal", "external"];
4096
+ 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.";
4097
+ readonly example: "internal";
4098
+ };
4099
+ readonly id: {
4100
+ readonly type: "string";
4101
+ readonly description: "The unique identifier for this impact metric";
4102
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
4103
+ };
4104
+ };
4105
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
4106
+ };
4107
+ };
4108
+ readonly components: {
4109
+ readonly schemas: {
4110
+ readonly metricQuerySchema: {
4111
+ readonly $id: "#/components/schemas/metricQuerySchema";
4112
+ readonly type: "object";
4113
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
4114
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
4115
+ readonly additionalProperties: false;
4116
+ readonly properties: {
4117
+ readonly metricName: {
4118
+ readonly type: "string";
4119
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
4120
+ readonly example: "unleash_counter_feature_toggle_usage_total";
4121
+ };
4122
+ readonly timeRange: {
4123
+ readonly type: "string";
4124
+ readonly enum: readonly ["hour", "day", "week", "month"];
4125
+ readonly description: "The time range for the metric data.";
4126
+ readonly example: "day";
4127
+ };
4128
+ readonly aggregationMode: {
4129
+ readonly type: "string";
4130
+ readonly description: "The aggregation mode for the metric data.";
4131
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
4132
+ readonly example: "rps";
4133
+ };
4134
+ readonly labelSelectors: {
4135
+ readonly type: "object";
4136
+ readonly additionalProperties: {
4137
+ readonly type: "array";
4138
+ readonly items: {
4139
+ readonly type: "string";
4140
+ };
4141
+ };
4142
+ readonly description: "The selected labels and their values for filtering the metric data.";
4143
+ readonly example: {
4144
+ readonly environment: readonly ["development"];
4145
+ readonly project: readonly ["default"];
4146
+ };
4147
+ };
4148
+ readonly source: {
4149
+ readonly type: "string";
4150
+ readonly enum: readonly ["internal", "external"];
4151
+ 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.";
4152
+ readonly example: "internal";
4153
+ };
4154
+ };
4155
+ readonly components: {};
4156
+ };
4157
+ readonly safeguardTriggerConditionSchema: {
4158
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
4159
+ readonly type: "object";
4160
+ readonly required: readonly ["operator", "threshold"];
4161
+ readonly additionalProperties: false;
4162
+ readonly description: "The condition that triggers the safeguard.";
4163
+ readonly properties: {
4164
+ readonly operator: {
4165
+ readonly type: "string";
4166
+ readonly enum: readonly [">", "<"];
4167
+ readonly description: "The comparison operator for the threshold check.";
4168
+ readonly example: ">";
4169
+ };
4170
+ readonly threshold: {
4171
+ readonly type: "number";
4172
+ readonly description: "The threshold value to compare against.";
4173
+ readonly example: 100;
4174
+ };
4175
+ };
4176
+ readonly components: {};
4177
+ };
4178
+ };
4179
+ };
4180
+ };
4181
+ readonly safeguardTriggerConditionSchema: {
4182
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
4183
+ readonly type: "object";
4184
+ readonly required: readonly ["operator", "threshold"];
4185
+ readonly additionalProperties: false;
4186
+ readonly description: "The condition that triggers the safeguard.";
4187
+ readonly properties: {
4188
+ readonly operator: {
4189
+ readonly type: "string";
4190
+ readonly enum: readonly [">", "<"];
4191
+ readonly description: "The comparison operator for the threshold check.";
4192
+ readonly example: ">";
4193
+ };
4194
+ readonly threshold: {
4195
+ readonly type: "number";
4196
+ readonly description: "The threshold value to compare against.";
4197
+ readonly example: 100;
4198
+ };
4199
+ };
4200
+ readonly components: {};
4201
+ };
4202
+ readonly metricQuerySchema: {
4203
+ readonly $id: "#/components/schemas/metricQuerySchema";
4204
+ readonly type: "object";
4205
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
4206
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
4207
+ readonly additionalProperties: false;
4208
+ readonly properties: {
4209
+ readonly metricName: {
4210
+ readonly type: "string";
4211
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
4212
+ readonly example: "unleash_counter_feature_toggle_usage_total";
4213
+ };
4214
+ readonly timeRange: {
4215
+ readonly type: "string";
4216
+ readonly enum: readonly ["hour", "day", "week", "month"];
4217
+ readonly description: "The time range for the metric data.";
4218
+ readonly example: "day";
4219
+ };
4220
+ readonly aggregationMode: {
4221
+ readonly type: "string";
4222
+ readonly description: "The aggregation mode for the metric data.";
4223
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
4224
+ readonly example: "rps";
4225
+ };
4226
+ readonly labelSelectors: {
4227
+ readonly type: "object";
4228
+ readonly additionalProperties: {
4229
+ readonly type: "array";
4230
+ readonly items: {
4231
+ readonly type: "string";
4232
+ };
4233
+ };
4234
+ readonly description: "The selected labels and their values for filtering the metric data.";
4235
+ readonly example: {
4236
+ readonly environment: readonly ["development"];
4237
+ readonly project: readonly ["default"];
4238
+ };
4239
+ };
4240
+ readonly source: {
4241
+ readonly type: "string";
4242
+ readonly enum: readonly ["internal", "external"];
4243
+ 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.";
4244
+ readonly example: "internal";
4245
+ };
4246
+ };
4247
+ readonly components: {};
4248
+ };
3991
4249
  };
3992
4250
  };
3993
4251
  };
@@ -4444,7 +4702,7 @@ export declare const exportResultSchema: {
4444
4702
  readonly type: "array";
4445
4703
  readonly description: "An array of safeguards configured for this release plan.";
4446
4704
  readonly items: {
4447
- readonly $ref: "#/components/schemas/safeguardSchema";
4705
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
4448
4706
  };
4449
4707
  };
4450
4708
  };
@@ -4529,7 +4787,7 @@ export declare const exportResultSchema: {
4529
4787
  readonly additionalProperties: false;
4530
4788
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
4531
4789
  readonly type: "object";
4532
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
4790
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
4533
4791
  readonly properties: {
4534
4792
  readonly id: {
4535
4793
  readonly type: "string";
@@ -5198,7 +5456,7 @@ export declare const exportResultSchema: {
5198
5456
  readonly additionalProperties: false;
5199
5457
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
5200
5458
  readonly type: "object";
5201
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
5459
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
5202
5460
  readonly properties: {
5203
5461
  readonly id: {
5204
5462
  readonly type: "string";
@@ -5859,8 +6117,8 @@ export declare const exportResultSchema: {
5859
6117
  };
5860
6118
  readonly components: {};
5861
6119
  };
5862
- readonly safeguardSchema: {
5863
- readonly $id: "#/components/schemas/safeguardSchema";
6120
+ readonly releasePlanSafeguardSchema: {
6121
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
5864
6122
  readonly type: "object";
5865
6123
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
5866
6124
  readonly description: "A safeguard configuration for a release plan.";
@@ -5929,6 +6187,12 @@ export declare const exportResultSchema: {
5929
6187
  readonly project: readonly ["default"];
5930
6188
  };
5931
6189
  };
6190
+ readonly source: {
6191
+ readonly type: "string";
6192
+ readonly enum: readonly ["internal", "external"];
6193
+ 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.";
6194
+ readonly example: "internal";
6195
+ };
5932
6196
  readonly id: {
5933
6197
  readonly type: "string";
5934
6198
  readonly description: "The unique identifier for this impact metric";
@@ -5978,6 +6242,12 @@ export declare const exportResultSchema: {
5978
6242
  readonly project: readonly ["default"];
5979
6243
  };
5980
6244
  };
6245
+ readonly source: {
6246
+ readonly type: "string";
6247
+ readonly enum: readonly ["internal", "external"];
6248
+ 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.";
6249
+ readonly example: "internal";
6250
+ };
5981
6251
  };
5982
6252
  readonly components: {};
5983
6253
  };
@@ -6043,6 +6313,12 @@ export declare const exportResultSchema: {
6043
6313
  readonly project: readonly ["default"];
6044
6314
  };
6045
6315
  };
6316
+ readonly source: {
6317
+ readonly type: "string";
6318
+ readonly enum: readonly ["internal", "external"];
6319
+ 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.";
6320
+ readonly example: "internal";
6321
+ };
6046
6322
  };
6047
6323
  readonly components: {};
6048
6324
  };
@@ -6149,7 +6425,7 @@ export declare const exportResultSchema: {
6149
6425
  readonly additionalProperties: false;
6150
6426
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
6151
6427
  readonly type: "object";
6152
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
6428
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
6153
6429
  readonly properties: {
6154
6430
  readonly id: {
6155
6431
  readonly type: "string";
@@ -6818,7 +7094,7 @@ export declare const exportResultSchema: {
6818
7094
  readonly additionalProperties: false;
6819
7095
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
6820
7096
  readonly type: "object";
6821
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
7097
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
6822
7098
  readonly properties: {
6823
7099
  readonly id: {
6824
7100
  readonly type: "string";
@@ -7426,8 +7702,8 @@ export declare const exportResultSchema: {
7426
7702
  };
7427
7703
  readonly components: {};
7428
7704
  };
7429
- readonly safeguardSchema: {
7430
- readonly $id: "#/components/schemas/safeguardSchema";
7705
+ readonly releasePlanSafeguardSchema: {
7706
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
7431
7707
  readonly type: "object";
7432
7708
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
7433
7709
  readonly description: "A safeguard configuration for a release plan.";
@@ -7496,6 +7772,12 @@ export declare const exportResultSchema: {
7496
7772
  readonly project: readonly ["default"];
7497
7773
  };
7498
7774
  };
7775
+ readonly source: {
7776
+ readonly type: "string";
7777
+ readonly enum: readonly ["internal", "external"];
7778
+ 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.";
7779
+ readonly example: "internal";
7780
+ };
7499
7781
  readonly id: {
7500
7782
  readonly type: "string";
7501
7783
  readonly description: "The unique identifier for this impact metric";
@@ -7545,6 +7827,12 @@ export declare const exportResultSchema: {
7545
7827
  readonly project: readonly ["default"];
7546
7828
  };
7547
7829
  };
7830
+ readonly source: {
7831
+ readonly type: "string";
7832
+ readonly enum: readonly ["internal", "external"];
7833
+ 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.";
7834
+ readonly example: "internal";
7835
+ };
7548
7836
  };
7549
7837
  readonly components: {};
7550
7838
  };
@@ -7572,33 +7860,198 @@ export declare const exportResultSchema: {
7572
7860
  };
7573
7861
  };
7574
7862
  };
7575
- readonly metricQuerySchema: {
7576
- readonly $id: "#/components/schemas/metricQuerySchema";
7863
+ readonly featureEnvironmentSafeguardSchema: {
7864
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
7577
7865
  readonly type: "object";
7578
- readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
7579
- readonly description: "Common metric query configuration for selecting and filtering metric data.";
7866
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
7867
+ readonly description: "A safeguard configuration for a feature environment.";
7580
7868
  readonly additionalProperties: false;
7581
7869
  readonly properties: {
7582
- readonly metricName: {
7583
- readonly type: "string";
7584
- readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7585
- readonly example: "unleash_counter_feature_toggle_usage_total";
7586
- };
7587
- readonly timeRange: {
7588
- readonly type: "string";
7589
- readonly enum: readonly ["hour", "day", "week", "month"];
7590
- readonly description: "The time range for the metric data.";
7591
- readonly example: "day";
7592
- };
7593
- readonly aggregationMode: {
7870
+ readonly id: {
7594
7871
  readonly type: "string";
7595
- readonly description: "The aggregation mode for the metric data.";
7596
- readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7597
- readonly example: "rps";
7872
+ readonly description: "The unique ULID identifier for this safeguard";
7873
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7598
7874
  };
7599
- readonly labelSelectors: {
7875
+ readonly action: {
7600
7876
  readonly type: "object";
7601
- readonly additionalProperties: {
7877
+ readonly required: readonly ["type", "featureName", "environment", "project"];
7878
+ readonly additionalProperties: false;
7879
+ readonly description: "Disable a feature in an environment when triggered.";
7880
+ readonly properties: {
7881
+ readonly type: {
7882
+ readonly type: "string";
7883
+ readonly description: "The type of action to perform.";
7884
+ readonly example: "disableFeatureEnvironment";
7885
+ };
7886
+ readonly featureName: {
7887
+ readonly type: "string";
7888
+ readonly description: "The feature flag name this safeguard applies to.";
7889
+ };
7890
+ readonly environment: {
7891
+ readonly type: "string";
7892
+ readonly description: "The environment this safeguard applies to.";
7893
+ };
7894
+ readonly project: {
7895
+ readonly type: "string";
7896
+ readonly description: "The project this safeguard applies to.";
7897
+ };
7898
+ };
7899
+ };
7900
+ readonly triggerCondition: {
7901
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
7902
+ readonly description: "The condition that triggers the safeguard.";
7903
+ };
7904
+ readonly impactMetric: {
7905
+ readonly type: "object";
7906
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
7907
+ readonly additionalProperties: false;
7908
+ readonly properties: {
7909
+ readonly metricName: {
7910
+ readonly type: "string";
7911
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7912
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7913
+ };
7914
+ readonly timeRange: {
7915
+ readonly type: "string";
7916
+ readonly enum: readonly ["hour", "day", "week", "month"];
7917
+ readonly description: "The time range for the metric data.";
7918
+ readonly example: "day";
7919
+ };
7920
+ readonly aggregationMode: {
7921
+ readonly type: "string";
7922
+ readonly description: "The aggregation mode for the metric data.";
7923
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7924
+ readonly example: "rps";
7925
+ };
7926
+ readonly labelSelectors: {
7927
+ readonly type: "object";
7928
+ readonly additionalProperties: {
7929
+ readonly type: "array";
7930
+ readonly items: {
7931
+ readonly type: "string";
7932
+ };
7933
+ };
7934
+ readonly description: "The selected labels and their values for filtering the metric data.";
7935
+ readonly example: {
7936
+ readonly environment: readonly ["development"];
7937
+ readonly project: readonly ["default"];
7938
+ };
7939
+ };
7940
+ readonly source: {
7941
+ readonly type: "string";
7942
+ readonly enum: readonly ["internal", "external"];
7943
+ 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.";
7944
+ readonly example: "internal";
7945
+ };
7946
+ readonly id: {
7947
+ readonly type: "string";
7948
+ readonly description: "The unique identifier for this impact metric";
7949
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
7950
+ };
7951
+ };
7952
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
7953
+ };
7954
+ };
7955
+ readonly components: {
7956
+ readonly schemas: {
7957
+ readonly metricQuerySchema: {
7958
+ readonly $id: "#/components/schemas/metricQuerySchema";
7959
+ readonly type: "object";
7960
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
7961
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
7962
+ readonly additionalProperties: false;
7963
+ readonly properties: {
7964
+ readonly metricName: {
7965
+ readonly type: "string";
7966
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
7967
+ readonly example: "unleash_counter_feature_toggle_usage_total";
7968
+ };
7969
+ readonly timeRange: {
7970
+ readonly type: "string";
7971
+ readonly enum: readonly ["hour", "day", "week", "month"];
7972
+ readonly description: "The time range for the metric data.";
7973
+ readonly example: "day";
7974
+ };
7975
+ readonly aggregationMode: {
7976
+ readonly type: "string";
7977
+ readonly description: "The aggregation mode for the metric data.";
7978
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
7979
+ readonly example: "rps";
7980
+ };
7981
+ readonly labelSelectors: {
7982
+ readonly type: "object";
7983
+ readonly additionalProperties: {
7984
+ readonly type: "array";
7985
+ readonly items: {
7986
+ readonly type: "string";
7987
+ };
7988
+ };
7989
+ readonly description: "The selected labels and their values for filtering the metric data.";
7990
+ readonly example: {
7991
+ readonly environment: readonly ["development"];
7992
+ readonly project: readonly ["default"];
7993
+ };
7994
+ };
7995
+ readonly source: {
7996
+ readonly type: "string";
7997
+ readonly enum: readonly ["internal", "external"];
7998
+ 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.";
7999
+ readonly example: "internal";
8000
+ };
8001
+ };
8002
+ readonly components: {};
8003
+ };
8004
+ readonly safeguardTriggerConditionSchema: {
8005
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
8006
+ readonly type: "object";
8007
+ readonly required: readonly ["operator", "threshold"];
8008
+ readonly additionalProperties: false;
8009
+ readonly description: "The condition that triggers the safeguard.";
8010
+ readonly properties: {
8011
+ readonly operator: {
8012
+ readonly type: "string";
8013
+ readonly enum: readonly [">", "<"];
8014
+ readonly description: "The comparison operator for the threshold check.";
8015
+ readonly example: ">";
8016
+ };
8017
+ readonly threshold: {
8018
+ readonly type: "number";
8019
+ readonly description: "The threshold value to compare against.";
8020
+ readonly example: 100;
8021
+ };
8022
+ };
8023
+ readonly components: {};
8024
+ };
8025
+ };
8026
+ };
8027
+ };
8028
+ readonly metricQuerySchema: {
8029
+ readonly $id: "#/components/schemas/metricQuerySchema";
8030
+ readonly type: "object";
8031
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
8032
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
8033
+ readonly additionalProperties: false;
8034
+ readonly properties: {
8035
+ readonly metricName: {
8036
+ readonly type: "string";
8037
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
8038
+ readonly example: "unleash_counter_feature_toggle_usage_total";
8039
+ };
8040
+ readonly timeRange: {
8041
+ readonly type: "string";
8042
+ readonly enum: readonly ["hour", "day", "week", "month"];
8043
+ readonly description: "The time range for the metric data.";
8044
+ readonly example: "day";
8045
+ };
8046
+ readonly aggregationMode: {
8047
+ readonly type: "string";
8048
+ readonly description: "The aggregation mode for the metric data.";
8049
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
8050
+ readonly example: "rps";
8051
+ };
8052
+ readonly labelSelectors: {
8053
+ readonly type: "object";
8054
+ readonly additionalProperties: {
7602
8055
  readonly type: "array";
7603
8056
  readonly items: {
7604
8057
  readonly type: "string";
@@ -7610,6 +8063,12 @@ export declare const exportResultSchema: {
7610
8063
  readonly project: readonly ["default"];
7611
8064
  };
7612
8065
  };
8066
+ readonly source: {
8067
+ readonly type: "string";
8068
+ readonly enum: readonly ["internal", "external"];
8069
+ 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.";
8070
+ readonly example: "internal";
8071
+ };
7613
8072
  };
7614
8073
  readonly components: {};
7615
8074
  };
@@ -7963,6 +8422,13 @@ export declare const exportResultSchema: {
7963
8422
  readonly $ref: "#/components/schemas/releasePlanSchema";
7964
8423
  };
7965
8424
  };
8425
+ readonly safeguards: {
8426
+ readonly type: "array";
8427
+ readonly description: "Safeguards for this feature environment";
8428
+ readonly items: {
8429
+ readonly $ref: "#/components/schemas/featureEnvironmentSafeguardSchema";
8430
+ };
8431
+ };
7966
8432
  readonly yes: {
7967
8433
  readonly type: "integer";
7968
8434
  readonly description: "How many times the feature evaluated to true (enabled)";
@@ -8421,7 +8887,7 @@ export declare const exportResultSchema: {
8421
8887
  readonly type: "array";
8422
8888
  readonly description: "An array of safeguards configured for this release plan.";
8423
8889
  readonly items: {
8424
- readonly $ref: "#/components/schemas/safeguardSchema";
8890
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
8425
8891
  };
8426
8892
  };
8427
8893
  };
@@ -8506,7 +8972,7 @@ export declare const exportResultSchema: {
8506
8972
  readonly additionalProperties: false;
8507
8973
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
8508
8974
  readonly type: "object";
8509
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
8975
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
8510
8976
  readonly properties: {
8511
8977
  readonly id: {
8512
8978
  readonly type: "string";
@@ -9175,7 +9641,7 @@ export declare const exportResultSchema: {
9175
9641
  readonly additionalProperties: false;
9176
9642
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
9177
9643
  readonly type: "object";
9178
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
9644
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
9179
9645
  readonly properties: {
9180
9646
  readonly id: {
9181
9647
  readonly type: "string";
@@ -9836,8 +10302,8 @@ export declare const exportResultSchema: {
9836
10302
  };
9837
10303
  readonly components: {};
9838
10304
  };
9839
- readonly safeguardSchema: {
9840
- readonly $id: "#/components/schemas/safeguardSchema";
10305
+ readonly releasePlanSafeguardSchema: {
10306
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
9841
10307
  readonly type: "object";
9842
10308
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
9843
10309
  readonly description: "A safeguard configuration for a release plan.";
@@ -9906,6 +10372,12 @@ export declare const exportResultSchema: {
9906
10372
  readonly project: readonly ["default"];
9907
10373
  };
9908
10374
  };
10375
+ readonly source: {
10376
+ readonly type: "string";
10377
+ readonly enum: readonly ["internal", "external"];
10378
+ 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.";
10379
+ readonly example: "internal";
10380
+ };
9909
10381
  readonly id: {
9910
10382
  readonly type: "string";
9911
10383
  readonly description: "The unique identifier for this impact metric";
@@ -9955,6 +10427,12 @@ export declare const exportResultSchema: {
9955
10427
  readonly project: readonly ["default"];
9956
10428
  };
9957
10429
  };
10430
+ readonly source: {
10431
+ readonly type: "string";
10432
+ readonly enum: readonly ["internal", "external"];
10433
+ 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.";
10434
+ readonly example: "internal";
10435
+ };
9958
10436
  };
9959
10437
  readonly components: {};
9960
10438
  };
@@ -10020,6 +10498,12 @@ export declare const exportResultSchema: {
10020
10498
  readonly project: readonly ["default"];
10021
10499
  };
10022
10500
  };
10501
+ readonly source: {
10502
+ readonly type: "string";
10503
+ readonly enum: readonly ["internal", "external"];
10504
+ 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.";
10505
+ readonly example: "internal";
10506
+ };
10023
10507
  };
10024
10508
  readonly components: {};
10025
10509
  };
@@ -10126,7 +10610,7 @@ export declare const exportResultSchema: {
10126
10610
  readonly additionalProperties: false;
10127
10611
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
10128
10612
  readonly type: "object";
10129
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
10613
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
10130
10614
  readonly properties: {
10131
10615
  readonly id: {
10132
10616
  readonly type: "string";
@@ -10795,7 +11279,7 @@ export declare const exportResultSchema: {
10795
11279
  readonly additionalProperties: false;
10796
11280
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
10797
11281
  readonly type: "object";
10798
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
11282
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
10799
11283
  readonly properties: {
10800
11284
  readonly id: {
10801
11285
  readonly type: "string";
@@ -11336,69 +11820,302 @@ export declare const exportResultSchema: {
11336
11820
  };
11337
11821
  };
11338
11822
  };
11339
- readonly createStrategyVariantSchema: {
11340
- readonly $id: "#/components/schemas/createStrategyVariantSchema";
11823
+ readonly createStrategyVariantSchema: {
11824
+ readonly $id: "#/components/schemas/createStrategyVariantSchema";
11825
+ readonly type: "object";
11826
+ readonly description: "This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants.";
11827
+ readonly required: readonly ["name", "weight", "weightType", "stickiness"];
11828
+ readonly properties: {
11829
+ readonly name: {
11830
+ readonly type: "string";
11831
+ readonly description: "The variant name. Must be unique for this feature flag";
11832
+ readonly example: "blue_group";
11833
+ };
11834
+ readonly weight: {
11835
+ readonly type: "integer";
11836
+ readonly description: "The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information";
11837
+ readonly minimum: 0;
11838
+ readonly maximum: 1000;
11839
+ };
11840
+ readonly weightType: {
11841
+ readonly description: "Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight).";
11842
+ readonly type: "string";
11843
+ readonly example: "fix";
11844
+ readonly enum: readonly ["variable", "fix"];
11845
+ };
11846
+ readonly stickiness: {
11847
+ readonly type: "string";
11848
+ readonly description: "The [stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time";
11849
+ readonly example: "custom.context.field";
11850
+ };
11851
+ readonly payload: {
11852
+ readonly type: "object";
11853
+ readonly required: readonly ["type", "value"];
11854
+ readonly description: "Extra data configured for this variant";
11855
+ readonly properties: {
11856
+ readonly type: {
11857
+ readonly description: "The type of the value. Commonly used types are string, number, json and csv.";
11858
+ readonly type: "string";
11859
+ readonly enum: readonly ["json", "csv", "string", "number"];
11860
+ };
11861
+ readonly value: {
11862
+ readonly description: "The actual value of payload";
11863
+ readonly type: "string";
11864
+ };
11865
+ };
11866
+ readonly example: {
11867
+ readonly type: "json";
11868
+ readonly value: "{\"color\": \"red\"}";
11869
+ };
11870
+ };
11871
+ };
11872
+ readonly components: {};
11873
+ };
11874
+ readonly transitionConditionSchema: {
11875
+ readonly $id: "#/components/schemas/transitionConditionSchema";
11876
+ readonly type: "object";
11877
+ readonly additionalProperties: false;
11878
+ readonly required: readonly ["intervalMinutes"];
11879
+ readonly description: "A transition condition for milestone progression";
11880
+ readonly properties: {
11881
+ readonly intervalMinutes: {
11882
+ readonly type: "integer";
11883
+ readonly minimum: 1;
11884
+ readonly description: "The interval in minutes before transitioning";
11885
+ readonly example: 30;
11886
+ };
11887
+ };
11888
+ readonly components: {};
11889
+ };
11890
+ readonly featureEnvironmentSafeguardSchema: {
11891
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
11892
+ readonly type: "object";
11893
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
11894
+ readonly description: "A safeguard configuration for a feature environment.";
11895
+ readonly additionalProperties: false;
11896
+ readonly properties: {
11897
+ readonly id: {
11898
+ readonly type: "string";
11899
+ readonly description: "The unique ULID identifier for this safeguard";
11900
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
11901
+ };
11902
+ readonly action: {
11903
+ readonly type: "object";
11904
+ readonly required: readonly ["type", "featureName", "environment", "project"];
11905
+ readonly additionalProperties: false;
11906
+ readonly description: "Disable a feature in an environment when triggered.";
11907
+ readonly properties: {
11908
+ readonly type: {
11909
+ readonly type: "string";
11910
+ readonly description: "The type of action to perform.";
11911
+ readonly example: "disableFeatureEnvironment";
11912
+ };
11913
+ readonly featureName: {
11914
+ readonly type: "string";
11915
+ readonly description: "The feature flag name this safeguard applies to.";
11916
+ };
11917
+ readonly environment: {
11918
+ readonly type: "string";
11919
+ readonly description: "The environment this safeguard applies to.";
11920
+ };
11921
+ readonly project: {
11922
+ readonly type: "string";
11923
+ readonly description: "The project this safeguard applies to.";
11924
+ };
11925
+ };
11926
+ };
11927
+ readonly triggerCondition: {
11928
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
11929
+ readonly description: "The condition that triggers the safeguard.";
11930
+ };
11931
+ readonly impactMetric: {
11932
+ readonly type: "object";
11933
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
11934
+ readonly additionalProperties: false;
11935
+ readonly properties: {
11936
+ readonly metricName: {
11937
+ readonly type: "string";
11938
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
11939
+ readonly example: "unleash_counter_feature_toggle_usage_total";
11940
+ };
11941
+ readonly timeRange: {
11942
+ readonly type: "string";
11943
+ readonly enum: readonly ["hour", "day", "week", "month"];
11944
+ readonly description: "The time range for the metric data.";
11945
+ readonly example: "day";
11946
+ };
11947
+ readonly aggregationMode: {
11948
+ readonly type: "string";
11949
+ readonly description: "The aggregation mode for the metric data.";
11950
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
11951
+ readonly example: "rps";
11952
+ };
11953
+ readonly labelSelectors: {
11954
+ readonly type: "object";
11955
+ readonly additionalProperties: {
11956
+ readonly type: "array";
11957
+ readonly items: {
11958
+ readonly type: "string";
11959
+ };
11960
+ };
11961
+ readonly description: "The selected labels and their values for filtering the metric data.";
11962
+ readonly example: {
11963
+ readonly environment: readonly ["development"];
11964
+ readonly project: readonly ["default"];
11965
+ };
11966
+ };
11967
+ readonly source: {
11968
+ readonly type: "string";
11969
+ readonly enum: readonly ["internal", "external"];
11970
+ 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.";
11971
+ readonly example: "internal";
11972
+ };
11973
+ readonly id: {
11974
+ readonly type: "string";
11975
+ readonly description: "The unique identifier for this impact metric";
11976
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
11977
+ };
11978
+ };
11979
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
11980
+ };
11981
+ };
11982
+ readonly components: {
11983
+ readonly schemas: {
11984
+ readonly metricQuerySchema: {
11985
+ readonly $id: "#/components/schemas/metricQuerySchema";
11986
+ readonly type: "object";
11987
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
11988
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
11989
+ readonly additionalProperties: false;
11990
+ readonly properties: {
11991
+ readonly metricName: {
11992
+ readonly type: "string";
11993
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
11994
+ readonly example: "unleash_counter_feature_toggle_usage_total";
11995
+ };
11996
+ readonly timeRange: {
11997
+ readonly type: "string";
11998
+ readonly enum: readonly ["hour", "day", "week", "month"];
11999
+ readonly description: "The time range for the metric data.";
12000
+ readonly example: "day";
12001
+ };
12002
+ readonly aggregationMode: {
12003
+ readonly type: "string";
12004
+ readonly description: "The aggregation mode for the metric data.";
12005
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
12006
+ readonly example: "rps";
12007
+ };
12008
+ readonly labelSelectors: {
12009
+ readonly type: "object";
12010
+ readonly additionalProperties: {
12011
+ readonly type: "array";
12012
+ readonly items: {
12013
+ readonly type: "string";
12014
+ };
12015
+ };
12016
+ readonly description: "The selected labels and their values for filtering the metric data.";
12017
+ readonly example: {
12018
+ readonly environment: readonly ["development"];
12019
+ readonly project: readonly ["default"];
12020
+ };
12021
+ };
12022
+ readonly source: {
12023
+ readonly type: "string";
12024
+ readonly enum: readonly ["internal", "external"];
12025
+ 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.";
12026
+ readonly example: "internal";
12027
+ };
12028
+ };
12029
+ readonly components: {};
12030
+ };
12031
+ readonly safeguardTriggerConditionSchema: {
12032
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
12033
+ readonly type: "object";
12034
+ readonly required: readonly ["operator", "threshold"];
12035
+ readonly additionalProperties: false;
12036
+ readonly description: "The condition that triggers the safeguard.";
12037
+ readonly properties: {
12038
+ readonly operator: {
12039
+ readonly type: "string";
12040
+ readonly enum: readonly [">", "<"];
12041
+ readonly description: "The comparison operator for the threshold check.";
12042
+ readonly example: ">";
12043
+ };
12044
+ readonly threshold: {
12045
+ readonly type: "number";
12046
+ readonly description: "The threshold value to compare against.";
12047
+ readonly example: 100;
12048
+ };
12049
+ };
12050
+ readonly components: {};
12051
+ };
12052
+ };
12053
+ };
12054
+ };
12055
+ readonly safeguardTriggerConditionSchema: {
12056
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
11341
12057
  readonly type: "object";
11342
- readonly description: "This is an experimental property. It may change or be removed as we work on it. Please don't depend on it yet. A strategy variant allows you to attach any data to strategies instead of only returning `true`/`false`. Strategy variants take precedence over feature variants.";
11343
- readonly required: readonly ["name", "weight", "weightType", "stickiness"];
12058
+ readonly required: readonly ["operator", "threshold"];
12059
+ readonly additionalProperties: false;
12060
+ readonly description: "The condition that triggers the safeguard.";
11344
12061
  readonly properties: {
11345
- readonly name: {
12062
+ readonly operator: {
11346
12063
  readonly type: "string";
11347
- readonly description: "The variant name. Must be unique for this feature flag";
11348
- readonly example: "blue_group";
12064
+ readonly enum: readonly [">", "<"];
12065
+ readonly description: "The comparison operator for the threshold check.";
12066
+ readonly example: ">";
11349
12067
  };
11350
- readonly weight: {
11351
- readonly type: "integer";
11352
- readonly description: "The weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight) for more information";
11353
- readonly minimum: 0;
11354
- readonly maximum: 1000;
12068
+ readonly threshold: {
12069
+ readonly type: "number";
12070
+ readonly description: "The threshold value to compare against.";
12071
+ readonly example: 100;
11355
12072
  };
11356
- readonly weightType: {
11357
- readonly description: "Set to `fix` if this variant must have exactly the weight allocated to it. If the type is `variable`, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the [variant weight documentation](https://docs.getunleash.io/concepts/feature-flag-variants#variant-weight).";
12073
+ };
12074
+ readonly components: {};
12075
+ };
12076
+ readonly metricQuerySchema: {
12077
+ readonly $id: "#/components/schemas/metricQuerySchema";
12078
+ readonly type: "object";
12079
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
12080
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
12081
+ readonly additionalProperties: false;
12082
+ readonly properties: {
12083
+ readonly metricName: {
11358
12084
  readonly type: "string";
11359
- readonly example: "fix";
11360
- readonly enum: readonly ["variable", "fix"];
12085
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
12086
+ readonly example: "unleash_counter_feature_toggle_usage_total";
11361
12087
  };
11362
- readonly stickiness: {
12088
+ readonly timeRange: {
11363
12089
  readonly type: "string";
11364
- readonly description: "The [stickiness](https://docs.getunleash.io/concepts/feature-flag-variants#variant-stickiness) to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time";
11365
- readonly example: "custom.context.field";
12090
+ readonly enum: readonly ["hour", "day", "week", "month"];
12091
+ readonly description: "The time range for the metric data.";
12092
+ readonly example: "day";
11366
12093
  };
11367
- readonly payload: {
12094
+ readonly aggregationMode: {
12095
+ readonly type: "string";
12096
+ readonly description: "The aggregation mode for the metric data.";
12097
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
12098
+ readonly example: "rps";
12099
+ };
12100
+ readonly labelSelectors: {
11368
12101
  readonly type: "object";
11369
- readonly required: readonly ["type", "value"];
11370
- readonly description: "Extra data configured for this variant";
11371
- readonly properties: {
11372
- readonly type: {
11373
- readonly description: "The type of the value. Commonly used types are string, number, json and csv.";
11374
- readonly type: "string";
11375
- readonly enum: readonly ["json", "csv", "string", "number"];
11376
- };
11377
- readonly value: {
11378
- readonly description: "The actual value of payload";
12102
+ readonly additionalProperties: {
12103
+ readonly type: "array";
12104
+ readonly items: {
11379
12105
  readonly type: "string";
11380
12106
  };
11381
12107
  };
12108
+ readonly description: "The selected labels and their values for filtering the metric data.";
11382
12109
  readonly example: {
11383
- readonly type: "json";
11384
- readonly value: "{\"color\": \"red\"}";
12110
+ readonly environment: readonly ["development"];
12111
+ readonly project: readonly ["default"];
11385
12112
  };
11386
12113
  };
11387
- };
11388
- readonly components: {};
11389
- };
11390
- readonly transitionConditionSchema: {
11391
- readonly $id: "#/components/schemas/transitionConditionSchema";
11392
- readonly type: "object";
11393
- readonly additionalProperties: false;
11394
- readonly required: readonly ["intervalMinutes"];
11395
- readonly description: "A transition condition for milestone progression";
11396
- readonly properties: {
11397
- readonly intervalMinutes: {
11398
- readonly type: "integer";
11399
- readonly minimum: 1;
11400
- readonly description: "The interval in minutes before transitioning";
11401
- readonly example: 30;
12114
+ readonly source: {
12115
+ readonly type: "string";
12116
+ readonly enum: readonly ["internal", "external"];
12117
+ 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.";
12118
+ readonly example: "internal";
11402
12119
  };
11403
12120
  };
11404
12121
  readonly components: {};
@@ -12128,7 +12845,7 @@ export declare const exportResultSchema: {
12128
12845
  readonly type: "array";
12129
12846
  readonly description: "An array of safeguards configured for this release plan.";
12130
12847
  readonly items: {
12131
- readonly $ref: "#/components/schemas/safeguardSchema";
12848
+ readonly $ref: "#/components/schemas/releasePlanSafeguardSchema";
12132
12849
  };
12133
12850
  };
12134
12851
  };
@@ -12213,7 +12930,7 @@ export declare const exportResultSchema: {
12213
12930
  readonly additionalProperties: false;
12214
12931
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
12215
12932
  readonly type: "object";
12216
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
12933
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
12217
12934
  readonly properties: {
12218
12935
  readonly id: {
12219
12936
  readonly type: "string";
@@ -12882,7 +13599,7 @@ export declare const exportResultSchema: {
12882
13599
  readonly additionalProperties: false;
12883
13600
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
12884
13601
  readonly type: "object";
12885
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
13602
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
12886
13603
  readonly properties: {
12887
13604
  readonly id: {
12888
13605
  readonly type: "string";
@@ -13543,8 +14260,8 @@ export declare const exportResultSchema: {
13543
14260
  };
13544
14261
  readonly components: {};
13545
14262
  };
13546
- readonly safeguardSchema: {
13547
- readonly $id: "#/components/schemas/safeguardSchema";
14263
+ readonly releasePlanSafeguardSchema: {
14264
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
13548
14265
  readonly type: "object";
13549
14266
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
13550
14267
  readonly description: "A safeguard configuration for a release plan.";
@@ -13613,6 +14330,12 @@ export declare const exportResultSchema: {
13613
14330
  readonly project: readonly ["default"];
13614
14331
  };
13615
14332
  };
14333
+ readonly source: {
14334
+ readonly type: "string";
14335
+ readonly enum: readonly ["internal", "external"];
14336
+ 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.";
14337
+ readonly example: "internal";
14338
+ };
13616
14339
  readonly id: {
13617
14340
  readonly type: "string";
13618
14341
  readonly description: "The unique identifier for this impact metric";
@@ -13662,6 +14385,12 @@ export declare const exportResultSchema: {
13662
14385
  readonly project: readonly ["default"];
13663
14386
  };
13664
14387
  };
14388
+ readonly source: {
14389
+ readonly type: "string";
14390
+ readonly enum: readonly ["internal", "external"];
14391
+ 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.";
14392
+ readonly example: "internal";
14393
+ };
13665
14394
  };
13666
14395
  readonly components: {};
13667
14396
  };
@@ -13727,6 +14456,12 @@ export declare const exportResultSchema: {
13727
14456
  readonly project: readonly ["default"];
13728
14457
  };
13729
14458
  };
14459
+ readonly source: {
14460
+ readonly type: "string";
14461
+ readonly enum: readonly ["internal", "external"];
14462
+ 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.";
14463
+ readonly example: "internal";
14464
+ };
13730
14465
  };
13731
14466
  readonly components: {};
13732
14467
  };
@@ -13833,7 +14568,7 @@ export declare const exportResultSchema: {
13833
14568
  readonly additionalProperties: false;
13834
14569
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
13835
14570
  readonly type: "object";
13836
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
14571
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
13837
14572
  readonly properties: {
13838
14573
  readonly id: {
13839
14574
  readonly type: "string";
@@ -14502,7 +15237,7 @@ export declare const exportResultSchema: {
14502
15237
  readonly additionalProperties: false;
14503
15238
  readonly description: "Schema representing the creation of a release plan milestone strategy.";
14504
15239
  readonly type: "object";
14505
- readonly required: readonly ["id", "milestoneId", "sortOrder", "strategyName"];
15240
+ readonly required: readonly ["id", "milestoneId", "sortOrder", "name", "strategyName"];
14506
15241
  readonly properties: {
14507
15242
  readonly id: {
14508
15243
  readonly type: "string";
@@ -15110,8 +15845,8 @@ export declare const exportResultSchema: {
15110
15845
  };
15111
15846
  readonly components: {};
15112
15847
  };
15113
- readonly safeguardSchema: {
15114
- readonly $id: "#/components/schemas/safeguardSchema";
15848
+ readonly releasePlanSafeguardSchema: {
15849
+ readonly $id: "#/components/schemas/releasePlanSafeguardSchema";
15115
15850
  readonly type: "object";
15116
15851
  readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
15117
15852
  readonly description: "A safeguard configuration for a release plan.";
@@ -15180,6 +15915,177 @@ export declare const exportResultSchema: {
15180
15915
  readonly project: readonly ["default"];
15181
15916
  };
15182
15917
  };
15918
+ readonly source: {
15919
+ readonly type: "string";
15920
+ readonly enum: readonly ["internal", "external"];
15921
+ 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.";
15922
+ readonly example: "internal";
15923
+ };
15924
+ readonly id: {
15925
+ readonly type: "string";
15926
+ readonly description: "The unique identifier for this impact metric";
15927
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
15928
+ };
15929
+ };
15930
+ readonly description: "The metric configuration used to evaluate the safeguard condition.";
15931
+ };
15932
+ };
15933
+ readonly components: {
15934
+ readonly schemas: {
15935
+ readonly metricQuerySchema: {
15936
+ readonly $id: "#/components/schemas/metricQuerySchema";
15937
+ readonly type: "object";
15938
+ readonly required: readonly ["metricName", "timeRange", "aggregationMode", "labelSelectors"];
15939
+ readonly description: "Common metric query configuration for selecting and filtering metric data.";
15940
+ readonly additionalProperties: false;
15941
+ readonly properties: {
15942
+ readonly metricName: {
15943
+ readonly type: "string";
15944
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
15945
+ readonly example: "unleash_counter_feature_toggle_usage_total";
15946
+ };
15947
+ readonly timeRange: {
15948
+ readonly type: "string";
15949
+ readonly enum: readonly ["hour", "day", "week", "month"];
15950
+ readonly description: "The time range for the metric data.";
15951
+ readonly example: "day";
15952
+ };
15953
+ readonly aggregationMode: {
15954
+ readonly type: "string";
15955
+ readonly description: "The aggregation mode for the metric data.";
15956
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
15957
+ readonly example: "rps";
15958
+ };
15959
+ readonly labelSelectors: {
15960
+ readonly type: "object";
15961
+ readonly additionalProperties: {
15962
+ readonly type: "array";
15963
+ readonly items: {
15964
+ readonly type: "string";
15965
+ };
15966
+ };
15967
+ readonly description: "The selected labels and their values for filtering the metric data.";
15968
+ readonly example: {
15969
+ readonly environment: readonly ["development"];
15970
+ readonly project: readonly ["default"];
15971
+ };
15972
+ };
15973
+ readonly source: {
15974
+ readonly type: "string";
15975
+ readonly enum: readonly ["internal", "external"];
15976
+ 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.";
15977
+ readonly example: "internal";
15978
+ };
15979
+ };
15980
+ readonly components: {};
15981
+ };
15982
+ readonly safeguardTriggerConditionSchema: {
15983
+ readonly $id: "#/components/schemas/safeguardTriggerConditionSchema";
15984
+ readonly type: "object";
15985
+ readonly required: readonly ["operator", "threshold"];
15986
+ readonly additionalProperties: false;
15987
+ readonly description: "The condition that triggers the safeguard.";
15988
+ readonly properties: {
15989
+ readonly operator: {
15990
+ readonly type: "string";
15991
+ readonly enum: readonly [">", "<"];
15992
+ readonly description: "The comparison operator for the threshold check.";
15993
+ readonly example: ">";
15994
+ };
15995
+ readonly threshold: {
15996
+ readonly type: "number";
15997
+ readonly description: "The threshold value to compare against.";
15998
+ readonly example: 100;
15999
+ };
16000
+ };
16001
+ readonly components: {};
16002
+ };
16003
+ };
16004
+ };
16005
+ };
16006
+ readonly featureEnvironmentSafeguardSchema: {
16007
+ readonly $id: "#/components/schemas/featureEnvironmentSafeguardSchema";
16008
+ readonly type: "object";
16009
+ readonly required: readonly ["id", "action", "triggerCondition", "impactMetric"];
16010
+ readonly description: "A safeguard configuration for a feature environment.";
16011
+ readonly additionalProperties: false;
16012
+ readonly properties: {
16013
+ readonly id: {
16014
+ readonly type: "string";
16015
+ readonly description: "The unique ULID identifier for this safeguard";
16016
+ readonly example: "01JB9GGTGQYEQ9D40R17T3YVW1";
16017
+ };
16018
+ readonly action: {
16019
+ readonly type: "object";
16020
+ readonly required: readonly ["type", "featureName", "environment", "project"];
16021
+ readonly additionalProperties: false;
16022
+ readonly description: "Disable a feature in an environment when triggered.";
16023
+ readonly properties: {
16024
+ readonly type: {
16025
+ readonly type: "string";
16026
+ readonly description: "The type of action to perform.";
16027
+ readonly example: "disableFeatureEnvironment";
16028
+ };
16029
+ readonly featureName: {
16030
+ readonly type: "string";
16031
+ readonly description: "The feature flag name this safeguard applies to.";
16032
+ };
16033
+ readonly environment: {
16034
+ readonly type: "string";
16035
+ readonly description: "The environment this safeguard applies to.";
16036
+ };
16037
+ readonly project: {
16038
+ readonly type: "string";
16039
+ readonly description: "The project this safeguard applies to.";
16040
+ };
16041
+ };
16042
+ };
16043
+ readonly triggerCondition: {
16044
+ readonly $ref: "#/components/schemas/safeguardTriggerConditionSchema";
16045
+ readonly description: "The condition that triggers the safeguard.";
16046
+ };
16047
+ readonly impactMetric: {
16048
+ readonly type: "object";
16049
+ readonly required: readonly ["id", "metricName", "timeRange", "aggregationMode", "labelSelectors"];
16050
+ readonly additionalProperties: false;
16051
+ readonly properties: {
16052
+ readonly metricName: {
16053
+ readonly type: "string";
16054
+ readonly description: "The Prometheus metric series to query. It includes both unleash prefix and metric type and display name";
16055
+ readonly example: "unleash_counter_feature_toggle_usage_total";
16056
+ };
16057
+ readonly timeRange: {
16058
+ readonly type: "string";
16059
+ readonly enum: readonly ["hour", "day", "week", "month"];
16060
+ readonly description: "The time range for the metric data.";
16061
+ readonly example: "day";
16062
+ };
16063
+ readonly aggregationMode: {
16064
+ readonly type: "string";
16065
+ readonly description: "The aggregation mode for the metric data.";
16066
+ readonly enum: readonly ["rps", "count", "avg", "sum", "p95", "p99", "p50"];
16067
+ readonly example: "rps";
16068
+ };
16069
+ readonly labelSelectors: {
16070
+ readonly type: "object";
16071
+ readonly additionalProperties: {
16072
+ readonly type: "array";
16073
+ readonly items: {
16074
+ readonly type: "string";
16075
+ };
16076
+ };
16077
+ readonly description: "The selected labels and their values for filtering the metric data.";
16078
+ readonly example: {
16079
+ readonly environment: readonly ["development"];
16080
+ readonly project: readonly ["default"];
16081
+ };
16082
+ };
16083
+ readonly source: {
16084
+ readonly type: "string";
16085
+ readonly enum: readonly ["internal", "external"];
16086
+ 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.";
16087
+ readonly example: "internal";
16088
+ };
15183
16089
  readonly id: {
15184
16090
  readonly type: "string";
15185
16091
  readonly description: "The unique identifier for this impact metric";
@@ -15229,6 +16135,12 @@ export declare const exportResultSchema: {
15229
16135
  readonly project: readonly ["default"];
15230
16136
  };
15231
16137
  };
16138
+ readonly source: {
16139
+ readonly type: "string";
16140
+ readonly enum: readonly ["internal", "external"];
16141
+ 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.";
16142
+ readonly example: "internal";
16143
+ };
15232
16144
  };
15233
16145
  readonly components: {};
15234
16146
  };
@@ -15294,6 +16206,12 @@ export declare const exportResultSchema: {
15294
16206
  readonly project: readonly ["default"];
15295
16207
  };
15296
16208
  };
16209
+ readonly source: {
16210
+ readonly type: "string";
16211
+ readonly enum: readonly ["internal", "external"];
16212
+ 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.";
16213
+ readonly example: "internal";
16214
+ };
15297
16215
  };
15298
16216
  readonly components: {};
15299
16217
  };