@stacksjs/ts-cloud 0.7.56 → 0.7.57

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 (467) hide show
  1. package/dist/alerts/alerts.test.d.ts +1 -0
  2. package/dist/alerts/delivery.d.ts +45 -0
  3. package/dist/alerts/evaluator.d.ts +12 -0
  4. package/dist/alerts/health.d.ts +34 -0
  5. package/dist/alerts/index.d.ts +6 -0
  6. package/dist/alerts/model.d.ts +170 -0
  7. package/dist/alerts/store.d.ts +90 -0
  8. package/dist/alerts/telemetry.d.ts +3 -0
  9. package/dist/api/client.d.ts +197 -0
  10. package/dist/api/handler.d.ts +18 -0
  11. package/dist/api/handler.test.d.ts +1 -0
  12. package/dist/api/index.d.ts +6 -0
  13. package/dist/api/openapi.d.ts +2 -0
  14. package/dist/api/service.d.ts +28 -0
  15. package/dist/api/types.d.ts +119 -0
  16. package/dist/auth/encryption.d.ts +3 -0
  17. package/dist/auth/index.d.ts +8 -0
  18. package/dist/auth/mailer.d.ts +9 -0
  19. package/dist/auth/oidc.d.ts +36 -0
  20. package/dist/auth/oidc.test.d.ts +1 -0
  21. package/dist/auth/store.d.ts +121 -0
  22. package/dist/auth/store.test.d.ts +1 -0
  23. package/dist/auth/totp.d.ts +11 -0
  24. package/dist/auth/totp.test.d.ts +1 -0
  25. package/dist/auth/types.d.ts +138 -0
  26. package/dist/automation/index.d.ts +2 -0
  27. package/dist/automation/store.d.ts +46 -0
  28. package/dist/automation/store.test.d.ts +1 -0
  29. package/dist/automation/types.d.ts +66 -0
  30. package/dist/aws/acm.d.ts +0 -4
  31. package/dist/aws/application-autoscaling.d.ts +0 -5
  32. package/dist/aws/backup.d.ts +42 -0
  33. package/dist/aws/bedrock.d.ts +0 -5
  34. package/dist/aws/client.d.ts +3 -6
  35. package/dist/aws/cloudformation.d.ts +0 -4
  36. package/dist/aws/cloudfront-media.test.d.ts +1 -0
  37. package/dist/aws/cloudfront-origin.test.d.ts +1 -0
  38. package/dist/aws/cloudfront.d.ts +87 -3
  39. package/dist/aws/cloudwatch-logs.d.ts +2 -4
  40. package/dist/aws/cloudwatch.d.ts +1 -1
  41. package/dist/aws/comprehend.d.ts +0 -5
  42. package/dist/aws/connect.d.ts +0 -4
  43. package/dist/aws/cost-explorer-cache.d.ts +1 -15
  44. package/dist/aws/cost-explorer.d.ts +18 -9
  45. package/dist/aws/cost-explorer.test.d.ts +1 -0
  46. package/dist/aws/dynamodb.d.ts +0 -4
  47. package/dist/aws/ec2.d.ts +0 -4
  48. package/dist/aws/ecr.d.ts +0 -4
  49. package/dist/aws/ecs.d.ts +17 -7
  50. package/dist/aws/efs.d.ts +0 -4
  51. package/dist/aws/elasticache.d.ts +0 -4
  52. package/dist/aws/elbv2.d.ts +0 -7
  53. package/dist/aws/email.d.ts +0 -10
  54. package/dist/aws/eventbridge.d.ts +0 -4
  55. package/dist/aws/iam.d.ts +1 -5
  56. package/dist/aws/imap-server.d.ts +0 -7
  57. package/dist/aws/index.d.ts +4 -3
  58. package/dist/aws/index.js +31 -31
  59. package/dist/aws/kendra.d.ts +0 -5
  60. package/dist/aws/lambda.d.ts +3 -5
  61. package/dist/aws/opensearch.d.ts +0 -4
  62. package/dist/aws/personalize.d.ts +0 -5
  63. package/dist/aws/polly.d.ts +0 -5
  64. package/dist/aws/rds.d.ts +59 -4
  65. package/dist/aws/rekognition.d.ts +0 -5
  66. package/dist/aws/route53-domains.d.ts +0 -4
  67. package/dist/aws/route53.d.ts +0 -4
  68. package/dist/aws/s3.d.ts +10 -6
  69. package/dist/aws/scheduler.d.ts +0 -4
  70. package/dist/aws/secrets-manager.d.ts +0 -4
  71. package/dist/aws/setup-sms.d.ts +0 -14
  72. package/dist/aws/sms.d.ts +0 -10
  73. package/dist/aws/smtp-server.d.ts +0 -11
  74. package/dist/aws/sns.d.ts +0 -4
  75. package/dist/aws/sqs.d.ts +0 -4
  76. package/dist/aws/ssm.d.ts +0 -4
  77. package/dist/aws/sts.d.ts +0 -4
  78. package/dist/aws/support.d.ts +0 -4
  79. package/dist/aws/textract.d.ts +0 -5
  80. package/dist/aws/transcribe.d.ts +0 -4
  81. package/dist/aws/translate.d.ts +0 -5
  82. package/dist/aws/voice.d.ts +0 -11
  83. package/dist/aws/xray.d.ts +1 -0
  84. package/dist/backups/aws-database-source.d.ts +19 -0
  85. package/dist/backups/aws-database-source.test.d.ts +1 -0
  86. package/dist/backups/aws-infrastructure-source.d.ts +43 -0
  87. package/dist/backups/aws-infrastructure-source.test.d.ts +1 -0
  88. package/dist/backups/control-plane-source.d.ts +16 -0
  89. package/dist/backups/control-plane-source.test.d.ts +1 -0
  90. package/dist/backups/docker-volume-source.d.ts +31 -0
  91. package/dist/backups/docker-volume-source.test.d.ts +1 -0
  92. package/dist/backups/filesystem-source.d.ts +34 -0
  93. package/dist/backups/filesystem-source.test.d.ts +1 -0
  94. package/dist/backups/index.d.ts +10 -0
  95. package/dist/backups/logical-database-source.d.ts +16 -0
  96. package/dist/backups/logical-database-source.test.d.ts +1 -0
  97. package/dist/backups/model.d.ts +121 -0
  98. package/dist/backups/s3-destination.d.ts +85 -0
  99. package/dist/backups/s3-destination.test.d.ts +1 -0
  100. package/dist/backups/service.d.ts +80 -0
  101. package/dist/backups/service.test.d.ts +1 -0
  102. package/dist/backups/store.d.ts +30 -0
  103. package/dist/backups/store.test.d.ts +1 -0
  104. package/dist/bin/cli.js +3360 -1802
  105. package/dist/{chunk-tjjgajbh.js → chunk-01d86gt1.js} +301 -9
  106. package/dist/{chunk-73vcqg6z.js → chunk-0z43x8re.js} +7 -7
  107. package/dist/{chunk-tnztxpcb.js → chunk-32e7ya18.js} +61 -49
  108. package/dist/{chunk-qpj3edwz.js → chunk-4cjrg98a.js} +3 -7
  109. package/dist/{chunk-hsk6fe6x.js → chunk-50jpda9q.js} +2 -2
  110. package/dist/{chunk-93hjhs78.js → chunk-703nkybg.js} +1 -1
  111. package/dist/{chunk-d5vqwj8s.js → chunk-9m6b4m74.js} +755 -720
  112. package/dist/chunk-e05phx5f.js +10 -0
  113. package/dist/{chunk-f29w04w5.js → chunk-exbcsab2.js} +10 -4
  114. package/dist/{chunk-eq08r166.js → chunk-f55nkpvb.js} +2 -2
  115. package/dist/{chunk-3bfv1z4v.js → chunk-fv1bj3yt.js} +63 -56
  116. package/dist/chunk-fw3q88wk.js +48641 -0
  117. package/dist/{chunk-3knnr7wh.js → chunk-he9a874b.js} +170 -2
  118. package/dist/{chunk-zn0nxxa8.js → chunk-hpv68b4a.js} +1070 -1070
  119. package/dist/chunk-k114qwg9.js +12 -0
  120. package/dist/{chunk-r16e02bc.js → chunk-vdk53yyq.js} +3900 -4101
  121. package/dist/{chunk-jp2a8yad.js → chunk-vvkd46k1.js} +15 -13
  122. package/dist/{chunk-vd87cpvn.js → chunk-wj3s95p9.js} +62 -46
  123. package/dist/{chunk-mj1tmhte.js → chunk-x9s0cqfx.js} +1 -1
  124. package/dist/{chunk-3rsfns7x.js → chunk-ybcz6sxc.js} +2048 -387
  125. package/dist/{chunk-arsh1g5h.js → chunk-zqtpg06c.js} +14 -11
  126. package/dist/compose/index.d.ts +6 -0
  127. package/dist/compose/parser.d.ts +13 -0
  128. package/dist/compose/parser.test.d.ts +1 -0
  129. package/dist/compose/runtime.d.ts +10 -0
  130. package/dist/compose/service.d.ts +18 -0
  131. package/dist/compose/store.d.ts +59 -0
  132. package/dist/compose/store.test.d.ts +1 -0
  133. package/dist/compose/templates.d.ts +17 -0
  134. package/dist/compose/types.d.ts +164 -0
  135. package/dist/configuration/backends.d.ts +66 -0
  136. package/dist/configuration/backends.test.d.ts +1 -0
  137. package/dist/configuration/dotenv.d.ts +14 -0
  138. package/dist/configuration/dotenv.test.d.ts +1 -0
  139. package/dist/configuration/index.d.ts +6 -0
  140. package/dist/configuration/migrate.d.ts +10 -0
  141. package/dist/configuration/migrate.test.d.ts +1 -0
  142. package/dist/configuration/model.d.ts +50 -0
  143. package/dist/configuration/service.d.ts +144 -0
  144. package/dist/configuration/service.test.d.ts +1 -0
  145. package/dist/configuration/store.d.ts +33 -0
  146. package/dist/configuration/store.test.d.ts +1 -0
  147. package/dist/control-plane/authorization.d.ts +24 -0
  148. package/dist/control-plane/authorization.test.d.ts +1 -0
  149. package/dist/control-plane/index.d.ts +8 -0
  150. package/dist/control-plane/migrations.d.ts +7 -0
  151. package/dist/control-plane/search.d.ts +25 -0
  152. package/dist/control-plane/store.d.ts +117 -0
  153. package/dist/control-plane/store.test.d.ts +1 -0
  154. package/dist/control-plane/types.d.ts +381 -0
  155. package/dist/cost/reporting.d.ts +24 -0
  156. package/dist/cost/reporting.test.d.ts +1 -0
  157. package/dist/cost/resource-inventory.d.ts +32 -0
  158. package/dist/cost/resource-inventory.test.d.ts +1 -0
  159. package/dist/cost/resource-optimization.d.ts +59 -0
  160. package/dist/cost/resource-optimization.test.d.ts +1 -0
  161. package/dist/data-services/adapters.d.ts +39 -0
  162. package/dist/data-services/aws-transports.d.ts +29 -0
  163. package/dist/data-services/aws-transports.test.d.ts +1 -0
  164. package/dist/data-services/capabilities.d.ts +2 -0
  165. package/dist/data-services/data-services.test.d.ts +1 -0
  166. package/dist/data-services/docker-transport.d.ts +55 -0
  167. package/dist/data-services/docker-transport.test.d.ts +1 -0
  168. package/dist/data-services/index.d.ts +8 -0
  169. package/dist/data-services/model.d.ts +79 -0
  170. package/dist/data-services/secrets.d.ts +13 -0
  171. package/dist/data-services/secrets.test.d.ts +1 -0
  172. package/dist/data-services/service.d.ts +51 -0
  173. package/dist/data-services/store.d.ts +17 -0
  174. package/dist/deploy/container-image.d.ts +28 -0
  175. package/dist/deploy/container-image.test.d.ts +1 -0
  176. package/dist/deploy/dashboard-audit.test.d.ts +1 -0
  177. package/dist/deploy/dashboard-auth.d.ts +4 -23
  178. package/dist/deploy/dashboard-backups.integration.test.d.ts +1 -0
  179. package/dist/deploy/dashboard-configuration.integration.test.d.ts +1 -0
  180. package/dist/deploy/dashboard-control-plane.d.ts +37 -0
  181. package/dist/deploy/dashboard-control-plane.test.d.ts +1 -0
  182. package/dist/deploy/dashboard-data-services.integration.test.d.ts +1 -0
  183. package/dist/deploy/dashboard-environment-scope.test.d.ts +1 -0
  184. package/dist/deploy/dashboard-guard.d.ts +12 -0
  185. package/dist/deploy/dashboard-guard.test.d.ts +1 -0
  186. package/dist/deploy/dashboard-identities.d.ts +15 -0
  187. package/dist/deploy/dashboard-identities.test.d.ts +1 -0
  188. package/dist/deploy/dashboard-jobs.integration.test.d.ts +1 -0
  189. package/dist/deploy/dashboard-login-page.d.ts +5 -5
  190. package/dist/deploy/dashboard-login-page.test.d.ts +1 -0
  191. package/dist/deploy/dashboard-oidc.integration.test.d.ts +1 -0
  192. package/dist/deploy/dashboard-onboarding.integration.test.d.ts +1 -0
  193. package/dist/deploy/dashboard-policy.d.ts +4 -2
  194. package/dist/deploy/dashboard-queue-worker.integration.test.d.ts +1 -0
  195. package/dist/deploy/dashboard-release.integration.test.d.ts +1 -0
  196. package/dist/deploy/dashboard-route-manifest.d.ts +14 -0
  197. package/dist/deploy/dashboard-route-manifest.test.d.ts +1 -0
  198. package/dist/deploy/dashboard-security.integration.test.d.ts +1 -0
  199. package/dist/deploy/dashboard-session.d.ts +3 -14
  200. package/dist/deploy/dashboard-source.integration.test.d.ts +1 -0
  201. package/dist/deploy/dashboard-users.d.ts +3 -0
  202. package/dist/deploy/fullstack-container.d.ts +87 -0
  203. package/dist/deploy/fullstack-container.test.d.ts +1 -0
  204. package/dist/deploy/index.d.ts +7 -2
  205. package/dist/deploy/index.js +65 -25
  206. package/dist/deploy/local-dashboard-server.d.ts +30 -0
  207. package/dist/deploy/quick-deploy.d.ts +1 -1
  208. package/dist/deploy/serverless-operations.d.ts +1 -0
  209. package/dist/deploy/site-target.d.ts +16 -0
  210. package/dist/deploy/static-api-origin.d.ts +107 -0
  211. package/dist/deploy/static-api-origin.test.d.ts +1 -0
  212. package/dist/deploy/static-site-helper.d.ts +0 -16
  213. package/dist/deploy/telemetry-access.d.ts +5 -0
  214. package/dist/deploy/telemetry-access.test.d.ts +1 -0
  215. package/dist/deploy/telemetry-collection.d.ts +44 -0
  216. package/dist/deploy/telemetry-collection.test.d.ts +1 -0
  217. package/dist/dns/index.js +3 -3
  218. package/dist/dns/route53-adapter.d.ts +1 -1
  219. package/dist/drivers/hetzner/cloud-init.d.ts +1 -1
  220. package/dist/drivers/index.d.ts +2 -2
  221. package/dist/drivers/index.js +6 -6
  222. package/dist/drivers/shared/notifications.d.ts +1 -1
  223. package/dist/drivers/shared/rpx-gateway.d.ts +1 -0
  224. package/dist/fleet/fleet.test.d.ts +1 -0
  225. package/dist/fleet/index.d.ts +144 -0
  226. package/dist/fleet/queue.d.ts +3 -0
  227. package/dist/fleet/ssh-driver.d.ts +34 -0
  228. package/dist/index.d.ts +28 -4
  229. package/dist/index.js +1132 -424
  230. package/dist/jobs/adapters.d.ts +23 -0
  231. package/dist/jobs/index.d.ts +7 -0
  232. package/dist/jobs/jobs.test.d.ts +1 -0
  233. package/dist/jobs/model.d.ts +100 -0
  234. package/dist/jobs/provider-adapters.d.ts +49 -0
  235. package/dist/jobs/reconcile.d.ts +19 -0
  236. package/dist/jobs/schedule.d.ts +9 -0
  237. package/dist/jobs/service.d.ts +30 -0
  238. package/dist/jobs/store.d.ts +48 -0
  239. package/dist/maintenance/drivers.d.ts +117 -0
  240. package/dist/maintenance/index.d.ts +6 -0
  241. package/dist/maintenance/maintenance.test.d.ts +1 -0
  242. package/dist/maintenance/manifest.d.ts +15 -0
  243. package/dist/maintenance/queue.d.ts +9 -0
  244. package/dist/maintenance/service.d.ts +31 -0
  245. package/dist/maintenance/store.d.ts +84 -0
  246. package/dist/maintenance/types.d.ts +192 -0
  247. package/dist/media.d.ts +62 -0
  248. package/dist/media.test.d.ts +1 -0
  249. package/dist/object-storage/index.d.ts +0 -24
  250. package/dist/onboarding/archive.d.ts +12 -0
  251. package/dist/onboarding/artifact-store.d.ts +22 -0
  252. package/dist/onboarding/detection.d.ts +8 -0
  253. package/dist/onboarding/index.d.ts +9 -0
  254. package/dist/onboarding/migrations.d.ts +3 -0
  255. package/dist/onboarding/onboarding.test.d.ts +1 -0
  256. package/dist/onboarding/plan.d.ts +3 -0
  257. package/dist/onboarding/registry.d.ts +41 -0
  258. package/dist/onboarding/service.d.ts +16 -0
  259. package/dist/onboarding/store.d.ts +30 -0
  260. package/dist/onboarding/types.d.ts +204 -0
  261. package/dist/placement/builds.d.ts +20 -0
  262. package/dist/placement/drivers.d.ts +54 -0
  263. package/dist/placement/index.d.ts +6 -0
  264. package/dist/placement/placement.test.d.ts +1 -0
  265. package/dist/placement/queue.d.ts +4 -0
  266. package/dist/placement/service.d.ts +34 -0
  267. package/dist/placement/store.d.ts +49 -0
  268. package/dist/placement/types.d.ts +109 -0
  269. package/dist/preview/index.d.ts +3 -0
  270. package/dist/preview/service.d.ts +45 -0
  271. package/dist/preview/service.test.d.ts +1 -0
  272. package/dist/preview/store.d.ts +47 -0
  273. package/dist/preview/store.test.d.ts +1 -0
  274. package/dist/preview/types.d.ts +99 -0
  275. package/dist/push/apns.d.ts +0 -26
  276. package/dist/push/fcm.d.ts +0 -23
  277. package/dist/push/index.d.ts +2 -2
  278. package/dist/push/index.js +1 -1
  279. package/dist/queue/deployment-handlers.d.ts +27 -0
  280. package/dist/queue/deployment-handlers.test.d.ts +1 -0
  281. package/dist/queue/index.d.ts +4 -0
  282. package/dist/queue/queue.d.ts +57 -0
  283. package/dist/queue/queue.test.d.ts +1 -0
  284. package/dist/queue/types.d.ts +93 -0
  285. package/dist/queue/worker.d.ts +32 -0
  286. package/dist/queue/worker.test.d.ts +1 -0
  287. package/dist/regions/drivers.d.ts +139 -0
  288. package/dist/regions/index.d.ts +5 -0
  289. package/dist/regions/queue.d.ts +4 -0
  290. package/dist/regions/regions.test.d.ts +1 -0
  291. package/dist/regions/service.d.ts +23 -0
  292. package/dist/regions/store.d.ts +41 -0
  293. package/dist/regions/types.d.ts +132 -0
  294. package/dist/release/index.d.ts +6 -0
  295. package/dist/release/queue.d.ts +15 -0
  296. package/dist/release/queue.test.d.ts +1 -0
  297. package/dist/release/runtime.d.ts +35 -0
  298. package/dist/release/runtime.test.d.ts +1 -0
  299. package/dist/release/service.d.ts +28 -0
  300. package/dist/release/store.d.ts +88 -0
  301. package/dist/release/store.test.d.ts +1 -0
  302. package/dist/release/strategy.d.ts +8 -0
  303. package/dist/release/types.d.ts +103 -0
  304. package/dist/runtime/adapters/aws.d.ts +5 -0
  305. package/dist/runtime/adapters/docker.d.ts +53 -0
  306. package/dist/runtime/adapters/systemd.d.ts +26 -0
  307. package/dist/runtime/index.d.ts +9 -0
  308. package/dist/runtime/inventory.d.ts +6 -0
  309. package/dist/runtime/model.d.ts +130 -0
  310. package/dist/runtime/normalize.d.ts +5 -0
  311. package/dist/runtime/operations.d.ts +113 -0
  312. package/dist/runtime/service.d.ts +32 -0
  313. package/dist/runtime/streams.d.ts +49 -0
  314. package/dist/security/artifacts.d.ts +105 -0
  315. package/dist/security/artifacts.test.d.ts +1 -0
  316. package/dist/security/container-release.d.ts +35 -0
  317. package/dist/security/container-release.test.d.ts +1 -0
  318. package/dist/security/index.d.ts +8 -0
  319. package/dist/security/integration.d.ts +41 -0
  320. package/dist/security/integration.test.d.ts +1 -0
  321. package/dist/security/posture-store.d.ts +80 -0
  322. package/dist/security/posture-store.test.d.ts +1 -0
  323. package/dist/security/pre-deploy-scanner.d.ts +0 -4
  324. package/dist/security/scanners.d.ts +81 -0
  325. package/dist/security/scanners.test.d.ts +1 -0
  326. package/dist/security/types.d.ts +150 -0
  327. package/dist/source/git-workspace.d.ts +26 -0
  328. package/dist/source/git-workspace.test.d.ts +1 -0
  329. package/dist/source/index.d.ts +6 -0
  330. package/dist/source/providers.d.ts +199 -0
  331. package/dist/source/providers.test.d.ts +1 -0
  332. package/dist/source/service.d.ts +18 -0
  333. package/dist/source/store.d.ts +149 -0
  334. package/dist/source/store.test.d.ts +1 -0
  335. package/dist/source/types.d.ts +191 -0
  336. package/dist/source/webhooks.d.ts +33 -0
  337. package/dist/source/webhooks.test.d.ts +1 -0
  338. package/dist/ssl/acme-client.d.ts +0 -6
  339. package/dist/storage/compose.d.ts +4 -0
  340. package/dist/storage/compose.test.d.ts +1 -0
  341. package/dist/storage/drivers.d.ts +107 -0
  342. package/dist/storage/drivers.test.d.ts +1 -0
  343. package/dist/storage/index.d.ts +5 -0
  344. package/dist/storage/model.d.ts +112 -0
  345. package/dist/storage/service.d.ts +95 -0
  346. package/dist/storage/storage.test.d.ts +1 -0
  347. package/dist/storage/store.d.ts +40 -0
  348. package/dist/telemetry/correlation.test.d.ts +1 -0
  349. package/dist/telemetry/index.d.ts +4 -0
  350. package/dist/telemetry/model.d.ts +145 -0
  351. package/dist/telemetry/policy.d.ts +8 -0
  352. package/dist/telemetry/policy.test.d.ts +1 -0
  353. package/dist/telemetry/redaction.d.ts +9 -0
  354. package/dist/telemetry/store.d.ts +34 -0
  355. package/dist/telemetry/store.test.d.ts +1 -0
  356. package/dist/ui/404.html +1506 -17
  357. package/dist/ui/accept-invitation.html +1163 -0
  358. package/dist/ui/{server/backups.html → access-denied.html} +344 -55
  359. package/dist/ui/account/automation.html +1669 -0
  360. package/dist/ui/account/security.html +1646 -0
  361. package/dist/ui/applications/compose.html +1590 -0
  362. package/dist/ui/applications/new.html +1868 -0
  363. package/dist/ui/data/backups.html +1757 -0
  364. package/dist/ui/data/services.html +1723 -0
  365. package/dist/ui/data/volumes.html +1639 -0
  366. package/dist/ui/index.html +392 -29
  367. package/dist/ui/integrations.html +1865 -0
  368. package/dist/ui/operations/alerts.html +1610 -0
  369. package/dist/ui/operations/configuration.html +1746 -0
  370. package/dist/ui/operations/jobs.html +1709 -0
  371. package/dist/ui/operations/maintenance.html +1540 -0
  372. package/dist/ui/operations/observability.html +1742 -0
  373. package/dist/ui/{serverless/scheduler.html → operations/previews.html} +447 -46
  374. package/dist/ui/operations/queue.html +1615 -0
  375. package/dist/ui/{server/workers.html → operations/regions.html} +413 -49
  376. package/dist/ui/operations/releases.html +1596 -0
  377. package/dist/ui/operations/workloads.html +1775 -0
  378. package/dist/ui/security.html +1767 -0
  379. package/dist/ui/server/actions.html +446 -57
  380. package/dist/ui/server/activity.html +346 -1
  381. package/dist/ui/server/capacity.html +1542 -0
  382. package/dist/ui/server/database.html +443 -36
  383. package/dist/ui/server/deployments.html +439 -53
  384. package/dist/ui/server/diagnostics.html +346 -1
  385. package/dist/ui/server/firewall.html +476 -50
  386. package/dist/ui/server/fleet.html +1577 -0
  387. package/dist/ui/server/logs.html +389 -25
  388. package/dist/ui/server/metrics.html +346 -1
  389. package/dist/ui/server/security.html +346 -1
  390. package/dist/ui/server/services.html +421 -46
  391. package/dist/ui/server/sites.html +476 -95
  392. package/dist/ui/server/ssh-keys.html +476 -46
  393. package/dist/ui/server/team.html +700 -77
  394. package/dist/ui/server/terminal.html +444 -54
  395. package/dist/ui/serverless/alarms.html +430 -42
  396. package/dist/ui/serverless/assets.html +421 -46
  397. package/dist/ui/serverless/cost.html +346 -1
  398. package/dist/ui/serverless/data.html +422 -47
  399. package/dist/ui/serverless/deployments.html +421 -46
  400. package/dist/ui/serverless/firewall.html +346 -1
  401. package/dist/ui/serverless/functions.html +423 -48
  402. package/dist/ui/serverless/logs.html +389 -25
  403. package/dist/ui/serverless/metrics.html +346 -1
  404. package/dist/ui/serverless/queues.html +448 -62
  405. package/dist/ui/serverless/secrets.html +448 -42
  406. package/dist/ui/serverless/traces.html +350 -5
  407. package/dist/ui/serverless.html +434 -58
  408. package/dist/ui-src/pages/404.stx +18 -0
  409. package/dist/ui-src/pages/accept-invitation.stx +50 -0
  410. package/dist/ui-src/pages/access-denied.stx +18 -0
  411. package/dist/ui-src/pages/account/automation.stx +187 -0
  412. package/dist/ui-src/pages/account/security.stx +249 -0
  413. package/dist/ui-src/pages/applications/compose.stx +38 -0
  414. package/dist/ui-src/pages/applications/new.stx +76 -0
  415. package/dist/ui-src/pages/data/backups.stx +214 -0
  416. package/dist/ui-src/pages/data/services.stx +257 -0
  417. package/dist/ui-src/pages/data/volumes.stx +40 -0
  418. package/dist/ui-src/pages/index.stx +24 -10
  419. package/dist/ui-src/pages/integrations.stx +186 -0
  420. package/dist/ui-src/pages/operations/alerts.stx +40 -0
  421. package/dist/ui-src/pages/operations/configuration.stx +164 -0
  422. package/dist/ui-src/pages/operations/jobs.stx +238 -0
  423. package/dist/ui-src/pages/operations/maintenance.stx +15 -0
  424. package/dist/ui-src/pages/operations/observability.stx +76 -0
  425. package/dist/ui-src/pages/operations/previews.stx +62 -0
  426. package/dist/ui-src/pages/operations/queue.stx +158 -0
  427. package/dist/ui-src/pages/operations/regions.stx +12 -0
  428. package/dist/ui-src/pages/operations/releases.stx +39 -0
  429. package/dist/ui-src/pages/operations/workloads.stx +151 -0
  430. package/dist/ui-src/pages/partials/head.stx +148 -15
  431. package/dist/ui-src/pages/partials/nav.stx +491 -74
  432. package/dist/ui-src/pages/partials/op-confirm.stx +6 -6
  433. package/dist/ui-src/pages/security.stx +264 -0
  434. package/dist/ui-src/pages/server/actions.stx +17 -26
  435. package/dist/ui-src/pages/server/capacity.stx +16 -0
  436. package/dist/ui-src/pages/server/database.stx +31 -16
  437. package/dist/ui-src/pages/server/deployments.stx +28 -30
  438. package/dist/ui-src/pages/server/firewall.stx +25 -30
  439. package/dist/ui-src/pages/server/fleet.stx +10 -0
  440. package/dist/ui-src/pages/server/logs.stx +11 -9
  441. package/dist/ui-src/pages/server/metrics.stx +8 -16
  442. package/dist/ui-src/pages/server/services.stx +19 -28
  443. package/dist/ui-src/pages/server/sites.stx +75 -72
  444. package/dist/ui-src/pages/server/ssh-keys.stx +24 -30
  445. package/dist/ui-src/pages/server/team.stx +286 -149
  446. package/dist/ui-src/pages/server/terminal.stx +6 -28
  447. package/dist/ui-src/pages/serverless/alarms.stx +17 -31
  448. package/dist/ui-src/pages/serverless/assets.stx +13 -22
  449. package/dist/ui-src/pages/serverless/cost.stx +15 -3
  450. package/dist/ui-src/pages/serverless/data.stx +12 -25
  451. package/dist/ui-src/pages/serverless/deployments.stx +14 -23
  452. package/dist/ui-src/pages/serverless/firewall.stx +5 -1
  453. package/dist/ui-src/pages/serverless/functions.stx +20 -26
  454. package/dist/ui-src/pages/serverless/logs.stx +11 -10
  455. package/dist/ui-src/pages/serverless/metrics.stx +18 -17
  456. package/dist/ui-src/pages/serverless/queues.stx +34 -42
  457. package/dist/ui-src/pages/serverless/secrets.stx +31 -34
  458. package/dist/ui-src/pages/serverless/traces.stx +2 -6
  459. package/dist/ui-src/pages/serverless.stx +40 -74
  460. package/package.json +11 -11
  461. package/dist/chunk-b17vf1g1.js +0 -13787
  462. package/dist/chunk-b82pbxyp.js +0 -1572
  463. package/dist/chunk-pqfzdg68.js +0 -12
  464. package/dist/chunk-z58fqnjm.js +0 -10
  465. package/dist/ui-src/pages/server/backups.stx +0 -91
  466. package/dist/ui-src/pages/server/workers.stx +0 -99
  467. package/dist/ui-src/pages/serverless/scheduler.stx +0 -89
@@ -0,0 +1,93 @@
1
+ import type { ControlPlaneOperation, CreateOperationInput, JsonValue, OperationState } from '../control-plane';
2
+ export interface QueueConcurrencyLimits {
3
+ project: number;
4
+ environment: number;
5
+ provider: number;
6
+ builds: number;
7
+ }
8
+ export interface EnqueueOperationInput extends CreateOperationInput {
9
+ lockKey?: string;
10
+ providerKey?: string;
11
+ buildSlot?: boolean;
12
+ maxAttempts?: number;
13
+ availableAt?: string;
14
+ timeoutSeconds?: number;
15
+ retryClasses?: string[];
16
+ resumePolicy?: 'fail' | 'requeue';
17
+ cancellationMode?: 'cooperative' | 'provider_non_cancellable';
18
+ retentionDays?: number;
19
+ }
20
+ export interface OperationJob {
21
+ operationId: string;
22
+ lockKey?: string;
23
+ providerKey?: string;
24
+ buildSlot: boolean;
25
+ maxAttempts: number;
26
+ availableAt: string;
27
+ timeoutSeconds: number;
28
+ heartbeatAt?: string;
29
+ currentStep?: string;
30
+ blockedReason?: string;
31
+ retryClasses: string[];
32
+ resumePolicy: 'fail' | 'requeue';
33
+ cancellationMode: 'cooperative' | 'provider_non_cancellable';
34
+ retentionUntil: string;
35
+ createdAt: string;
36
+ updatedAt: string;
37
+ }
38
+ export interface OperationLogEntry {
39
+ sequence: number;
40
+ id: string;
41
+ operationId: string;
42
+ stream: 'stdout' | 'stderr' | 'system' | 'step';
43
+ step?: string;
44
+ message: string;
45
+ redacted: boolean;
46
+ truncated: boolean;
47
+ createdAt: string;
48
+ }
49
+ export interface QueueOperationView {
50
+ operation: ControlPlaneOperation;
51
+ job: OperationJob;
52
+ approximatePosition?: {
53
+ ahead: number;
54
+ precision: 'bounded';
55
+ };
56
+ }
57
+ export interface QueueLogInput {
58
+ stream?: OperationLogEntry['stream'];
59
+ step?: string;
60
+ secrets?: string[];
61
+ }
62
+ export interface QueueExecutionContext {
63
+ operation: ControlPlaneOperation;
64
+ signal: AbortSignal;
65
+ log: (message: string, input?: QueueLogInput) => OperationLogEntry;
66
+ checkpoint: (step: string, message?: string) => void;
67
+ heartbeat: () => void;
68
+ cancellationRequested: () => boolean;
69
+ throwIfCancellationRequested: () => void;
70
+ }
71
+ export type QueueOperationHandler = (context: QueueExecutionContext) => Promise<JsonValue | void>;
72
+ export interface QueueRunResult {
73
+ operation?: ControlPlaneOperation;
74
+ handled: boolean;
75
+ terminalState?: Extract<OperationState, 'succeeded' | 'failed' | 'cancelled' | 'timed_out'>;
76
+ requeued?: boolean;
77
+ }
78
+ export interface QueueRecoveryResult {
79
+ requeued: number;
80
+ failed: number;
81
+ cancelled: number;
82
+ }
83
+ export declare class QueueCancellationError extends Error {
84
+ constructor();
85
+ }
86
+ export declare class QueueTimeoutError extends Error {
87
+ readonly timeoutSeconds: number;
88
+ constructor(timeoutSeconds: number);
89
+ }
90
+ export declare class RetryableOperationError extends Error {
91
+ readonly errorClass: string;
92
+ constructor(message: string, errorClass: string);
93
+ }
@@ -0,0 +1,32 @@
1
+ import type { DurableOperationQueue } from './queue';
2
+ import type { QueueOperationHandler, QueueRunResult } from './types';
3
+ export interface DurableQueueWorkerOptions {
4
+ parallelism?: number;
5
+ pollIntervalMs?: number;
6
+ onResult?: (result: QueueRunResult) => void;
7
+ onError?: (error: unknown) => void;
8
+ }
9
+ /**
10
+ * Runs a fixed number of durable polling lanes. The database queue remains the
11
+ * source of truth for claims, resource locks, and per-scope concurrency.
12
+ */
13
+ export declare class DurableQueueWorker {
14
+ private readonly queue;
15
+ private readonly handlers;
16
+ private readonly parallelism;
17
+ private readonly pollIntervalMs;
18
+ private readonly onResult?;
19
+ private readonly onError?;
20
+ private readonly waits;
21
+ private lanes;
22
+ private running;
23
+ constructor(queue: DurableOperationQueue, handlers: Record<string, QueueOperationHandler>, options?: DurableQueueWorkerOptions);
24
+ get active(): boolean;
25
+ start(): this;
26
+ stop(): void;
27
+ settled(): Promise<void>;
28
+ /** Execute all currently claimable work, using the configured lane bound. */
29
+ drain(): Promise<QueueRunResult[]>;
30
+ private wait;
31
+ private runLane;
32
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,139 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { RegionalProviderDriver, RegionalTarget, RegionalTopology, RegionalTrafficRoute, ReplicationChannel } from './types';
3
+ export interface AwsRegionalTransport {
4
+ applyCloudFormation(input: {
5
+ region: string;
6
+ stackId?: string;
7
+ revision: string;
8
+ manifest: JsonValue;
9
+ }): Promise<{
10
+ stackId: string;
11
+ }>;
12
+ deleteCloudFormation(input: {
13
+ region: string;
14
+ stackId: string;
15
+ retainData: boolean;
16
+ }): Promise<void>;
17
+ stackHealth(input: {
18
+ region: string;
19
+ stackId: string;
20
+ }): Promise<{
21
+ healthy: boolean;
22
+ evidence: Record<string, JsonValue>;
23
+ }>;
24
+ configureS3Replication(input: {
25
+ sourceRegion: string;
26
+ targetRegion: string;
27
+ config: Record<string, JsonValue>;
28
+ }): Promise<{
29
+ checkpoint: string;
30
+ lagSeconds: number;
31
+ }>;
32
+ configureDynamoGlobalTable(input: {
33
+ sourceRegion: string;
34
+ targetRegion: string;
35
+ config: Record<string, JsonValue>;
36
+ }): Promise<{
37
+ checkpoint: string;
38
+ lagSeconds: number;
39
+ }>;
40
+ replicateSecrets(input: {
41
+ sourceRegion: string;
42
+ targetRegion: string;
43
+ config: Record<string, JsonValue>;
44
+ }): Promise<{
45
+ checkpoint: string;
46
+ lagSeconds: number;
47
+ }>;
48
+ verifyReplication(input: {
49
+ kind: ReplicationChannel['kind'];
50
+ sourceRegion: string;
51
+ targetRegion: string;
52
+ checkpoint?: string;
53
+ }): Promise<{
54
+ healthy: boolean;
55
+ checkpoint: string;
56
+ lagSeconds: number;
57
+ }>;
58
+ applyEdge(input: {
59
+ hostname: string;
60
+ weights: Record<string, number>;
61
+ route53: boolean;
62
+ cloudFront: boolean;
63
+ waf: boolean;
64
+ }): Promise<{
65
+ providerState: Record<string, JsonValue>;
66
+ }>;
67
+ }
68
+ export declare class AwsRegionalDriver implements RegionalProviderDriver {
69
+ private transport;
70
+ readonly provider = "aws";
71
+ constructor(transport: AwsRegionalTransport);
72
+ applyStack({ target, revision, manifest, }: {
73
+ target: RegionalTarget;
74
+ revision: string;
75
+ manifest: JsonValue;
76
+ signal: AbortSignal;
77
+ }): Promise<{
78
+ stackId: string;
79
+ }>;
80
+ deleteStack({ target, retainData, }: {
81
+ target: RegionalTarget;
82
+ retainData: boolean;
83
+ signal: AbortSignal;
84
+ }): Promise<void>;
85
+ health({ target, }: {
86
+ target: RegionalTarget;
87
+ }): Promise<{
88
+ healthy: boolean;
89
+ evidence: Record<string, JsonValue>;
90
+ }>;
91
+ configureReplication({ channel, }: {
92
+ channel: ReplicationChannel;
93
+ topology: RegionalTopology;
94
+ }): Promise<{
95
+ checkpoint: string;
96
+ lagSeconds: number;
97
+ }>;
98
+ verifyReplication({ channel, }: {
99
+ channel: ReplicationChannel;
100
+ topology: RegionalTopology;
101
+ }): Promise<{
102
+ healthy: boolean;
103
+ checkpoint: string;
104
+ lagSeconds: number;
105
+ }>;
106
+ applyTraffic({ route, weights, }: {
107
+ route: RegionalTrafficRoute;
108
+ topology: RegionalTopology;
109
+ weights: Record<string, number>;
110
+ }): Promise<{
111
+ providerState: Record<string, JsonValue>;
112
+ }>;
113
+ }
114
+ export declare class UnavailableRegionalDriver implements RegionalProviderDriver {
115
+ readonly provider: string;
116
+ private reason;
117
+ constructor(provider: string, reason?: string);
118
+ private fail;
119
+ applyStack(): Promise<{
120
+ stackId: string;
121
+ }>;
122
+ deleteStack(): Promise<void>;
123
+ health(): Promise<{
124
+ healthy: boolean;
125
+ evidence: Record<string, JsonValue>;
126
+ }>;
127
+ configureReplication(): Promise<{
128
+ checkpoint: string;
129
+ lagSeconds: number;
130
+ }>;
131
+ verifyReplication(): Promise<{
132
+ healthy: boolean;
133
+ checkpoint: string;
134
+ lagSeconds: number;
135
+ }>;
136
+ applyTraffic(): Promise<{
137
+ providerState: Record<string, JsonValue>;
138
+ }>;
139
+ }
@@ -0,0 +1,5 @@
1
+ export * from './types';
2
+ export * from './store';
3
+ export * from './service';
4
+ export * from './queue';
5
+ export * from './drivers';
@@ -0,0 +1,4 @@
1
+ import type { QueueOperationHandler } from '../queue';
2
+ import type { RegionalProviderDriver } from './types';
3
+ import { RegionStore } from './store';
4
+ export declare function createRegionQueueHandlers(store: RegionStore, drivers: readonly RegionalProviderDriver[]): Record<string, QueueOperationHandler>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import type { ControlPlaneOperation, JsonValue } from '../control-plane';
2
+ import type { RegionalExecution, RegionalOperationKind, RegionalTopology } from './types';
3
+ import { DurableOperationQueue } from '../queue';
4
+ import { RegionStore } from './store';
5
+ export declare class RegionService {
6
+ readonly store: RegionStore;
7
+ readonly queue: DurableOperationQueue;
8
+ constructor(store: RegionStore, queue?: DurableOperationQueue);
9
+ create(input: Parameters<RegionStore['create']>[0]): RegionalTopology;
10
+ plan(id: string, kind: RegionalOperationKind, target?: string): string[];
11
+ enqueue(input: {
12
+ topologyId: string;
13
+ kind: RegionalOperationKind;
14
+ targetRegion?: string;
15
+ revision?: string;
16
+ manifest?: JsonValue;
17
+ confirmation?: string;
18
+ deleteData?: boolean;
19
+ }): {
20
+ execution: RegionalExecution;
21
+ operation: ControlPlaneOperation;
22
+ };
23
+ }
@@ -0,0 +1,41 @@
1
+ import type { ControlPlaneStore } from '../control-plane';
2
+ import type { RegionalExecution, RegionalOperationKind, RegionalTarget, RegionalTopology, RegionalTrafficRoute, ReplicationChannel } from './types';
3
+ export declare class RegionStore {
4
+ readonly control: ControlPlaneStore;
5
+ private now;
6
+ private id;
7
+ constructor(control: ControlPlaneStore, now?: () => Date, id?: () => string);
8
+ create(input: {
9
+ organizationId: string;
10
+ projectId: string;
11
+ environmentId?: string;
12
+ name: string;
13
+ hostname: string;
14
+ regions: RegionalTopology['regions'];
15
+ trafficPolicy: RegionalTopology['trafficPolicy'];
16
+ dataPolicy: RegionalTopology['dataPolicy'];
17
+ dnsProvider?: string;
18
+ cdnEnabled?: boolean;
19
+ wafEnabled?: boolean;
20
+ }): RegionalTopology;
21
+ get(id: string): RegionalTopology | undefined;
22
+ list(projectId: string): RegionalTopology[];
23
+ targets(id: string): RegionalTarget[];
24
+ channels(id: string): ReplicationChannel[];
25
+ route(id: string): RegionalTrafficRoute | undefined;
26
+ updateTopology(id: string, patch: Partial<Pick<RegionalTopology, 'status' | 'activeRegion' | 'revision' | 'regions'>>): RegionalTopology;
27
+ updateTarget(id: string, patch: Partial<Pick<RegionalTarget, 'role' | 'stackId' | 'stackRevision' | 'status' | 'health' | 'lastHealthyAt'>>): RegionalTarget;
28
+ updateChannel(id: string, patch: Partial<Pick<ReplicationChannel, 'status' | 'checkpoint' | 'lagSeconds' | 'lastVerifiedAt'>>): ReplicationChannel;
29
+ updateRoute(id: string, patch: Partial<Pick<RegionalTrafficRoute, 'weights' | 'desiredWeights' | 'status' | 'providerState'>>): RegionalTrafficRoute;
30
+ createExecution(input: {
31
+ topologyId: string;
32
+ operationId?: string;
33
+ kind: RegionalOperationKind;
34
+ requestedRegion?: string;
35
+ revision?: string;
36
+ plan: string[];
37
+ }): RegionalExecution;
38
+ execution(id: string): RegionalExecution | undefined;
39
+ executions(id: string): RegionalExecution[];
40
+ updateExecution(id: string, patch: Partial<Pick<RegionalExecution, 'operationId' | 'currentStep' | 'completedSteps' | 'status' | 'error'>>): RegionalExecution;
41
+ }
@@ -0,0 +1,132 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ export type RegionalOperationKind = 'rollout' | 'failover' | 'failback' | 'destroy' | 'reconcile';
3
+ export interface RegionalTarget {
4
+ id: string;
5
+ topologyId: string;
6
+ region: string;
7
+ role: 'primary' | 'secondary';
8
+ provider: string;
9
+ stackId?: string;
10
+ stackRevision?: string;
11
+ status: 'pending' | 'provisioning' | 'ready' | 'degraded' | 'failed' | 'deleting' | 'deleted';
12
+ health: Record<string, JsonValue>;
13
+ lastHealthyAt?: string;
14
+ version: number;
15
+ createdAt: string;
16
+ updatedAt: string;
17
+ }
18
+ export interface ReplicationChannel {
19
+ id: string;
20
+ topologyId: string;
21
+ kind: 's3' | 'dynamodb' | 'secrets';
22
+ sourceRegion: string;
23
+ targetRegion: string;
24
+ config: Record<string, JsonValue>;
25
+ status: 'pending' | 'configuring' | 'in_sync' | 'lagging' | 'failed' | 'disabled';
26
+ checkpoint?: string;
27
+ lagSeconds?: number;
28
+ lastVerifiedAt?: string;
29
+ version: number;
30
+ createdAt: string;
31
+ updatedAt: string;
32
+ }
33
+ export interface RegionalTrafficRoute {
34
+ id: string;
35
+ topologyId: string;
36
+ hostname: string;
37
+ dnsProvider: string;
38
+ cdnEnabled: boolean;
39
+ wafEnabled: boolean;
40
+ weights: Record<string, number>;
41
+ desiredWeights: Record<string, number>;
42
+ status: 'pending' | 'applying' | 'in_sync' | 'failed' | 'drained';
43
+ providerState: Record<string, JsonValue>;
44
+ version: number;
45
+ createdAt: string;
46
+ updatedAt: string;
47
+ }
48
+ export interface RegionalTopology {
49
+ id: string;
50
+ organizationId: string;
51
+ projectId: string;
52
+ environmentId?: string;
53
+ name: string;
54
+ hostname: string;
55
+ homeRegion: string;
56
+ regions: Array<{
57
+ region: string;
58
+ role: 'primary' | 'secondary';
59
+ provider: string;
60
+ }>;
61
+ trafficPolicy: 'active_passive' | 'weighted' | 'latency';
62
+ dataPolicy: {
63
+ replicate: Array<'s3' | 'dynamodb' | 'secrets'>;
64
+ maxLagSeconds: number;
65
+ retainOnDestroy: boolean;
66
+ };
67
+ status: 'draft' | 'provisioning' | 'ready' | 'degraded' | 'failing_over' | 'failed_over' | 'failing_back' | 'destroying' | 'destroyed' | 'failed';
68
+ activeRegion: string;
69
+ revision?: string;
70
+ version: number;
71
+ createdAt: string;
72
+ updatedAt: string;
73
+ }
74
+ export interface RegionalExecution {
75
+ id: string;
76
+ topologyId: string;
77
+ operationId?: string;
78
+ kind: RegionalOperationKind;
79
+ requestedRegion?: string;
80
+ revision?: string;
81
+ plan: string[];
82
+ currentStep?: string;
83
+ completedSteps: string[];
84
+ status: 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled';
85
+ error?: string;
86
+ createdAt: string;
87
+ updatedAt: string;
88
+ }
89
+ export interface RegionalProviderDriver {
90
+ provider: string;
91
+ applyStack(input: {
92
+ target: RegionalTarget;
93
+ revision: string;
94
+ manifest: JsonValue;
95
+ signal: AbortSignal;
96
+ }): Promise<{
97
+ stackId: string;
98
+ }>;
99
+ deleteStack(input: {
100
+ target: RegionalTarget;
101
+ retainData: boolean;
102
+ signal: AbortSignal;
103
+ }): Promise<void>;
104
+ health(input: {
105
+ target: RegionalTarget;
106
+ }): Promise<{
107
+ healthy: boolean;
108
+ evidence: Record<string, JsonValue>;
109
+ }>;
110
+ configureReplication(input: {
111
+ channel: ReplicationChannel;
112
+ topology: RegionalTopology;
113
+ }): Promise<{
114
+ checkpoint: string;
115
+ lagSeconds: number;
116
+ }>;
117
+ verifyReplication(input: {
118
+ channel: ReplicationChannel;
119
+ topology: RegionalTopology;
120
+ }): Promise<{
121
+ healthy: boolean;
122
+ checkpoint: string;
123
+ lagSeconds: number;
124
+ }>;
125
+ applyTraffic(input: {
126
+ route: RegionalTrafficRoute;
127
+ topology: RegionalTopology;
128
+ weights: Record<string, number>;
129
+ }): Promise<{
130
+ providerState: Record<string, JsonValue>;
131
+ }>;
132
+ }
@@ -0,0 +1,6 @@
1
+ export * from './types';
2
+ export * from './strategy';
3
+ export * from './store';
4
+ export * from './service';
5
+ export * from './runtime';
6
+ export * from './queue';
@@ -0,0 +1,15 @@
1
+ import type { ControlPlaneStore, JsonValue } from '../control-plane';
2
+ import type { QueueOperationHandler } from '../queue';
3
+ import type { ReleaseActivationDriver } from './runtime';
4
+ import type { ReleaseRecord } from './types';
5
+ export declare const RELEASE_QUEUE_KINDS: readonly ['release.activate', 'release.rollback'];
6
+ export type ReleaseDriverResolver = (release: ReleaseRecord) => ReleaseActivationDriver | Promise<ReleaseActivationDriver>;
7
+ export declare function createReleaseQueueHandlers(input: {
8
+ store: ControlPlaneStore;
9
+ resolveDriver: ReleaseDriverResolver;
10
+ resolveHealthGate?: (name: string, release: ReleaseRecord) => Promise<{
11
+ healthy: boolean;
12
+ evidence?: JsonValue;
13
+ message?: string;
14
+ }>;
15
+ }): Record<string, QueueOperationHandler>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { ReleaseArtifact, ReleaseRecord, ReleaseStrategyCapability } from './types';
3
+ export interface ReleaseTrafficTransition {
4
+ step: string;
5
+ trafficPercent: number;
6
+ waitSeconds: number;
7
+ requiresHealth: boolean;
8
+ }
9
+ export interface ReleaseActivationContext {
10
+ release: ReleaseRecord;
11
+ artifact: ReleaseArtifact;
12
+ previous?: ReleaseRecord;
13
+ transitions: ReleaseTrafficTransition[];
14
+ }
15
+ export interface ReleaseActivationResult {
16
+ activated: boolean;
17
+ healthy: boolean;
18
+ providerVersion?: string;
19
+ resourceVersions: Record<string, string>;
20
+ transitions: Array<{
21
+ trafficPercent: number;
22
+ healthy: boolean;
23
+ observed: JsonValue;
24
+ }>;
25
+ error?: string;
26
+ }
27
+ export interface ReleaseActivationDriver {
28
+ name: string;
29
+ capability: (context: Pick<ReleaseActivationContext, 'release' | 'artifact' | 'previous'>) => ReleaseStrategyCapability;
30
+ activate: (context: ReleaseActivationContext) => Promise<ReleaseActivationResult>;
31
+ rollback: (context: ReleaseActivationContext) => Promise<ReleaseActivationResult>;
32
+ }
33
+ export declare function releaseTrafficPlan(release: ReleaseRecord): ReleaseTrafficTransition[];
34
+ export declare function activateImmutableRelease(driver: ReleaseActivationDriver, input: Omit<ReleaseActivationContext, 'transitions'>): Promise<ReleaseActivationResult>;
35
+ export declare function rollbackImmutableRelease(driver: ReleaseActivationDriver, input: Omit<ReleaseActivationContext, 'transitions'>): Promise<ReleaseActivationResult>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ import type { ControlPlaneOperation, ControlPlaneStore, JsonValue } from '../control-plane';
2
+ import type { ReleaseRecord } from './types';
3
+ import { DurableOperationQueue } from '../queue';
4
+ import { ReleaseStore } from './store';
5
+ export declare class ReleaseService {
6
+ readonly controlPlane: ControlPlaneStore;
7
+ readonly releases: ReleaseStore;
8
+ readonly queue: DurableOperationQueue;
9
+ constructor(controlPlane: ControlPlaneStore);
10
+ enqueueActivation(release: ReleaseRecord, input?: {
11
+ actorId?: string;
12
+ action?: 'activate' | 'rollback';
13
+ targetReleaseId?: string;
14
+ }): ControlPlaneOperation;
15
+ completeHealthGate(releaseId: string, input: {
16
+ healthy: boolean;
17
+ operationId?: string;
18
+ health?: JsonValue;
19
+ message?: string;
20
+ }): {
21
+ release: ReleaseRecord;
22
+ rollbackOperation?: ControlPlaneOperation;
23
+ };
24
+ enqueueRollback(release: ReleaseRecord, input?: {
25
+ actorId?: string;
26
+ targetReleaseId?: string;
27
+ }): ControlPlaneOperation;
28
+ }
@@ -0,0 +1,88 @@
1
+ import type { ControlPlaneStore, JsonValue } from '../control-plane';
2
+ import type { ReleaseApproval, ReleaseArtifact, ReleaseCompare, ReleaseDeployableKind, ReleaseHealthGate, ReleaseHookCompatibility, ReleaseRecord, ReleaseStatus, ReleaseStrategy, ReleaseTransition } from './types';
3
+ export declare class ReleaseStore {
4
+ readonly controlPlane: ControlPlaneStore;
5
+ private readonly now;
6
+ private readonly id;
7
+ constructor(controlPlane: ControlPlaneStore, options?: {
8
+ now?: () => Date;
9
+ id?: () => string;
10
+ });
11
+ registerArtifact(input: {
12
+ organizationId: string;
13
+ digest: string;
14
+ kind: ReleaseDeployableKind;
15
+ uri: string;
16
+ size: number;
17
+ mediaType?: string;
18
+ provenance?: JsonValue;
19
+ attestation?: JsonValue;
20
+ }): ReleaseArtifact;
21
+ getArtifact(id: string): ReleaseArtifact | undefined;
22
+ create(input: {
23
+ organizationId: string;
24
+ projectId: string;
25
+ environmentId: string;
26
+ resourceId: string;
27
+ artifactId: string;
28
+ kind: ReleaseDeployableKind;
29
+ sourceSha?: string;
30
+ config: JsonValue;
31
+ manifest: JsonValue;
32
+ provenance?: JsonValue;
33
+ strategy: ReleaseStrategy;
34
+ healthGate?: ReleaseHealthGate;
35
+ hooks?: ReleaseHookCompatibility;
36
+ drainSeconds?: number;
37
+ graceSeconds?: number;
38
+ automaticRollback?: boolean;
39
+ promotedFromReleaseId?: string;
40
+ actorId?: string;
41
+ trigger?: string;
42
+ approvalRequired?: boolean;
43
+ replicas?: number;
44
+ }): ReleaseRecord;
45
+ get(id: string): ReleaseRecord | undefined;
46
+ list(input?: {
47
+ projectId?: string;
48
+ environmentId?: string;
49
+ resourceId?: string;
50
+ status?: ReleaseStatus;
51
+ }): ReleaseRecord[];
52
+ active(resourceId: string): ReleaseRecord | undefined;
53
+ transitions(releaseId: string): ReleaseTransition[];
54
+ private recordTransition;
55
+ progress(id: string, input: {
56
+ message: string;
57
+ trafficPercent?: number;
58
+ health?: JsonValue;
59
+ operationId?: string;
60
+ }): ReleaseTransition;
61
+ transition(id: string, toStatus: ReleaseStatus, input: {
62
+ message: string;
63
+ trafficPercent?: number;
64
+ health?: JsonValue;
65
+ operationId?: string;
66
+ }): ReleaseRecord;
67
+ approve(id: string, input: {
68
+ actorId: string;
69
+ decision: 'approved' | 'rejected';
70
+ comment?: string;
71
+ }): ReleaseRecord;
72
+ approvals(id: string): ReleaseApproval[];
73
+ promote(sourceId: string, input: {
74
+ targetEnvironmentId: string;
75
+ targetResourceId: string;
76
+ config: JsonValue;
77
+ strategy?: ReleaseStrategy;
78
+ healthGate?: ReleaseHealthGate;
79
+ actorId?: string;
80
+ approvalRequired?: boolean;
81
+ }): ReleaseRecord;
82
+ compare(leftId: string, rightId: string): ReleaseCompare;
83
+ pin(id: string, pinned: boolean, reason?: string): ReleaseRecord;
84
+ retentionCandidates(input: {
85
+ before: Date;
86
+ keepPerResource?: number;
87
+ }): ReleaseRecord[];
88
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { ReleaseDeployableKind, ReleaseStrategy, ReleaseStrategyCapability } from './types';
2
+ export declare function releaseStrategyCapabilities(input: {
3
+ kind: ReleaseDeployableKind;
4
+ provider?: string;
5
+ hasHealthGate: boolean;
6
+ replicas?: number;
7
+ }): ReleaseStrategyCapability[];
8
+ export declare function assertReleaseStrategy(input: Parameters<typeof releaseStrategyCapabilities>[0], strategy: ReleaseStrategy): ReleaseStrategyCapability;