@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,23 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { ScheduledJob } from './model';
3
+ export interface JobProviderCapability {
4
+ provider: ScheduledJob['provider'];
5
+ supported: boolean;
6
+ features: {
7
+ timezone: boolean;
8
+ flexibleWindow: boolean;
9
+ catchUp: boolean;
10
+ replaceOverlap: boolean;
11
+ };
12
+ notes: string[];
13
+ }
14
+ export declare function jobProviderCapability(job: Pick<ScheduledJob, 'provider' | 'expression' | 'flexibleMinutes' | 'missedRunPolicy' | 'overlapPolicy'>): JobProviderCapability;
15
+ export declare function renderServerCron(job: ScheduledJob): {
16
+ path: string;
17
+ content: string;
18
+ };
19
+ export declare function eventBridgeScheduleInput(job: ScheduledJob): Record<string, JsonValue>;
20
+ export declare function reconcileJobObservation(job: ScheduledJob, observed: Record<string, JsonValue> | undefined): {
21
+ status: ScheduledJob['reconciliationStatus'];
22
+ observedState: Record<string, JsonValue>;
23
+ };
@@ -0,0 +1,7 @@
1
+ export * from './model';
2
+ export * from './adapters';
3
+ export * from './provider-adapters';
4
+ export * from './reconcile';
5
+ export * from './schedule';
6
+ export * from './service';
7
+ export * from './store';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,100 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ export type JobProvider = 'server' | 'eventbridge' | 'lambda' | 'platform';
3
+ export type JobTrigger = 'scheduled' | 'manual' | 'catch_up' | 'external' | 'retry';
4
+ export type JobExecutionStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'skipped' | 'dead';
5
+ export type ReconciliationStatus = 'pending' | 'in_sync' | 'drifted' | 'unsupported' | 'unavailable';
6
+ export interface JobTarget {
7
+ kind: 'dashboard_operation' | 'serverless_scheduler' | 'lambda' | 'platform';
8
+ operationId?: string;
9
+ action?: string;
10
+ functionName?: string;
11
+ platformOperation?: string;
12
+ }
13
+ export interface ScheduledJob {
14
+ id: string;
15
+ organizationId: string;
16
+ projectId: string;
17
+ environmentId?: string;
18
+ resourceId?: string;
19
+ name: string;
20
+ provider: JobProvider;
21
+ expression: string;
22
+ normalizedExpression: string;
23
+ timezone: string;
24
+ startsAt?: string;
25
+ endsAt?: string;
26
+ flexibleMinutes: number;
27
+ target: JobTarget;
28
+ payloadRefs: Record<string, JsonValue>;
29
+ missedRunPolicy: 'skip' | 'catch_up';
30
+ overlapPolicy: 'allow' | 'forbid' | 'replace';
31
+ retryPolicy: {
32
+ maxAttempts: number;
33
+ backoffSeconds: number;
34
+ deadLetterRef?: string;
35
+ };
36
+ timeoutSeconds: number;
37
+ enabled: boolean;
38
+ origin: 'managed' | 'config' | 'external';
39
+ sourceKey?: string;
40
+ ownerActorId?: string;
41
+ observedState: Record<string, JsonValue>;
42
+ reconciliationStatus: ReconciliationStatus;
43
+ nextRunAt?: string;
44
+ lastScheduledFor?: string;
45
+ version: number;
46
+ createdAt: string;
47
+ updatedAt: string;
48
+ }
49
+ export interface JobExecution {
50
+ id: string;
51
+ jobId: string;
52
+ operationId?: string;
53
+ trigger: JobTrigger;
54
+ scheduledFor: string;
55
+ idempotencyKey: string;
56
+ status: JobExecutionStatus;
57
+ attempt: number;
58
+ startedAt?: string;
59
+ finishedAt?: string;
60
+ output: Record<string, JsonValue>;
61
+ error?: string;
62
+ createdAt: string;
63
+ updatedAt: string;
64
+ }
65
+ export interface WorkerDefinition {
66
+ id: string;
67
+ organizationId: string;
68
+ projectId: string;
69
+ environmentId?: string;
70
+ resourceId?: string;
71
+ name: string;
72
+ provider: 'systemd' | 'ecs' | 'lambda';
73
+ queue: string;
74
+ processes: number;
75
+ timeoutSeconds: number;
76
+ restartPolicy: 'always' | 'on_failure' | 'never';
77
+ target: Record<string, JsonValue>;
78
+ enabled: boolean;
79
+ origin: 'managed' | 'config' | 'external';
80
+ sourceKey?: string;
81
+ ownerActorId?: string;
82
+ observedState: Record<string, JsonValue>;
83
+ reconciliationStatus: ReconciliationStatus;
84
+ version: number;
85
+ createdAt: string;
86
+ updatedAt: string;
87
+ }
88
+ export interface SchedulePreview {
89
+ original: string;
90
+ normalized: string;
91
+ kind: 'cron' | 'rate';
92
+ timezone: string;
93
+ description: string;
94
+ nextRuns: string[];
95
+ capabilities: {
96
+ server: boolean;
97
+ eventbridge: boolean;
98
+ notes: string[];
99
+ };
100
+ }
@@ -0,0 +1,49 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { JobProvider, ScheduledJob } from './model';
3
+ import { JobStore } from './store';
4
+ export type JobDesiredState = Record<string, JsonValue>;
5
+ export interface JobProviderAdapter {
6
+ readonly provider: JobProvider;
7
+ observe(job: ScheduledJob): Promise<JobDesiredState | undefined>;
8
+ apply(job: ScheduledJob, desired: JobDesiredState): Promise<void>;
9
+ remove(job: ScheduledJob): Promise<void>;
10
+ matches(desired: JobDesiredState, observed: JobDesiredState): boolean;
11
+ }
12
+ export interface ServerCronTransport {
13
+ read(path: string): Promise<string | undefined>;
14
+ writeRootOwned(path: string, content: string): Promise<void>;
15
+ removeRootOwned(path: string): Promise<void>;
16
+ }
17
+ export interface EventBridgeScheduleTransport {
18
+ get(name: string): Promise<JobDesiredState | undefined>;
19
+ put(input: JobDesiredState): Promise<void>;
20
+ remove(name: string): Promise<void>;
21
+ }
22
+ declare function desiredState(job: ScheduledJob): JobDesiredState;
23
+ export declare class ServerCronJobAdapter implements JobProviderAdapter {
24
+ private readonly transport;
25
+ readonly provider: 'server';
26
+ constructor(transport: ServerCronTransport);
27
+ observe(job: ScheduledJob): Promise<JobDesiredState | undefined>;
28
+ apply(job: ScheduledJob, desired: JobDesiredState): Promise<void>;
29
+ remove(job: ScheduledJob): Promise<void>;
30
+ matches(desired: JobDesiredState, observed: JobDesiredState): boolean;
31
+ }
32
+ export declare class EventBridgeJobAdapter implements JobProviderAdapter {
33
+ private readonly transport;
34
+ readonly provider: 'eventbridge';
35
+ constructor(transport: EventBridgeScheduleTransport);
36
+ observe(job: ScheduledJob): Promise<JobDesiredState | undefined>;
37
+ apply(_job: ScheduledJob, desired: JobDesiredState): Promise<void>;
38
+ remove(job: ScheduledJob): Promise<void>;
39
+ matches(desired: JobDesiredState, observed: JobDesiredState): boolean;
40
+ }
41
+ export declare class JobProviderReconciler {
42
+ private readonly store;
43
+ constructor(store: JobStore);
44
+ reconcile(job: ScheduledJob, adapter: JobProviderAdapter, options?: {
45
+ apply?: boolean;
46
+ }): Promise<ScheduledJob>;
47
+ remove(job: ScheduledJob, adapter: JobProviderAdapter): Promise<void>;
48
+ }
49
+ export { desiredState as desiredJobProviderState };
@@ -0,0 +1,19 @@
1
+ import type { CloudConfig } from '@ts-cloud/core';
2
+ import type { ControlPlaneEnvironment, ControlPlaneOrganization, ControlPlaneProject, ControlPlaneResource } from '../control-plane';
3
+ import { JobStore } from './store';
4
+ interface ReconciliationScope {
5
+ organization: ControlPlaneOrganization;
6
+ project: ControlPlaneProject;
7
+ environment: ControlPlaneEnvironment;
8
+ resources: ControlPlaneResource[];
9
+ }
10
+ /**
11
+ * Import declarative schedules and workers without deleting records that disappear
12
+ * from configuration. Missing definitions are marked drifted for an explicit review.
13
+ */
14
+ export declare function synchronizeConfiguredJobs(store: JobStore, config: CloudConfig, scope: ReconciliationScope): {
15
+ jobs: number;
16
+ workers: number;
17
+ drifted: number;
18
+ };
19
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { SchedulePreview } from './model';
2
+ export declare function normalizeScheduleExpression(value: string): {
3
+ original: string;
4
+ normalized: string;
5
+ kind: 'cron' | 'rate';
6
+ description: string;
7
+ };
8
+ export declare function nextScheduleRuns(expression: string, zone: string, from?: Date, count?: number): string[];
9
+ export declare function previewSchedule(expression: string, zone?: string, from?: Date, count?: number): SchedulePreview;
@@ -0,0 +1,30 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { QueueExecutionContext, QueueOperationHandler } from '../queue';
3
+ import type { JobExecution, JobTarget, JobTrigger, ScheduledJob } from './model';
4
+ import { DurableOperationQueue } from '../queue';
5
+ import { JobStore } from './store';
6
+ export interface JobExecutorResult {
7
+ ok: boolean;
8
+ output?: Record<string, JsonValue>;
9
+ stdout?: string;
10
+ stderr?: string;
11
+ retryable?: boolean;
12
+ }
13
+ export type JobExecutor = (job: ScheduledJob, target: JobTarget, context: QueueExecutionContext) => Promise<JobExecutorResult>;
14
+ export declare class JobService {
15
+ readonly store: JobStore;
16
+ readonly queue: DurableOperationQueue;
17
+ constructor(store: JobStore, options?: {
18
+ queue?: DurableOperationQueue;
19
+ });
20
+ enqueue(job: ScheduledJob, input: {
21
+ trigger: JobTrigger;
22
+ scheduledFor?: string;
23
+ actorId?: string;
24
+ }): JobExecution;
25
+ tick(at?: Date): JobExecution[];
26
+ }
27
+ export declare function createJobQueueHandlers(input: {
28
+ store: JobStore;
29
+ executor: JobExecutor;
30
+ }): Record<string, QueueOperationHandler>;
@@ -0,0 +1,48 @@
1
+ import type { ControlPlaneStore, JsonValue } from '../control-plane';
2
+ import type { JobExecution, JobExecutionStatus, ReconciliationStatus, ScheduledJob, WorkerDefinition } from './model';
3
+ export declare class JobStore {
4
+ readonly controlPlane: ControlPlaneStore;
5
+ private readonly options;
6
+ constructor(controlPlane: ControlPlaneStore, options?: {
7
+ now?: () => Date;
8
+ });
9
+ now(): Date;
10
+ create(input: Omit<ScheduledJob, 'id' | 'normalizedExpression' | 'nextRunAt' | 'lastScheduledFor' | 'version' | 'createdAt' | 'updatedAt'>): ScheduledJob;
11
+ get(id: string): ScheduledJob | undefined;
12
+ getBySource(projectId: string, environmentId: string | undefined, sourceKey: string): ScheduledJob | undefined;
13
+ list(projectId: string, input?: {
14
+ environmentId?: string;
15
+ resourceIds?: string[];
16
+ enabled?: boolean;
17
+ }): ScheduledJob[];
18
+ setEnabled(id: string, enabled: boolean): ScheduledJob;
19
+ updateSchedule(id: string, input: {
20
+ expression?: string;
21
+ timezone?: string;
22
+ missedRunPolicy?: ScheduledJob['missedRunPolicy'];
23
+ overlapPolicy?: ScheduledJob['overlapPolicy'];
24
+ timeoutSeconds?: number;
25
+ }): ScheduledJob;
26
+ remove(id: string): void;
27
+ markScheduled(id: string, scheduledFor: string, nextRunAt?: string): void;
28
+ reconcile(id: string, status: ReconciliationStatus, observedState: Record<string, JsonValue>): ScheduledJob;
29
+ upsertConfigJob(input: Omit<ScheduledJob, 'id' | 'normalizedExpression' | 'nextRunAt' | 'lastScheduledFor' | 'version' | 'createdAt' | 'updatedAt'> & {
30
+ sourceKey: string;
31
+ }): ScheduledJob;
32
+ due(at?: string): ScheduledJob[];
33
+ createExecution(input: Omit<JobExecution, 'id' | 'attempt' | 'startedAt' | 'finishedAt' | 'createdAt' | 'updatedAt'>): JobExecution;
34
+ getExecution(id: string): JobExecution | undefined;
35
+ listExecutions(jobId: string, limit?: number): JobExecution[];
36
+ activeExecution(jobId: string): JobExecution | undefined;
37
+ attachOperation(id: string, operationId: string): JobExecution;
38
+ transitionExecution(id: string, status: JobExecutionStatus, input?: {
39
+ attempt?: number;
40
+ output?: Record<string, JsonValue>;
41
+ error?: string;
42
+ }): JobExecution;
43
+ upsertWorker(input: Omit<WorkerDefinition, 'id' | 'version' | 'createdAt' | 'updatedAt'>): WorkerDefinition;
44
+ getWorker(id: string): WorkerDefinition | undefined;
45
+ listWorkers(projectId: string, environmentId?: string): WorkerDefinition[];
46
+ setWorkerProcesses(id: string, processes: number): WorkerDefinition;
47
+ reconcileWorker(id: string, status: ReconciliationStatus, observedState: Record<string, JsonValue>): WorkerDefinition;
48
+ }
@@ -0,0 +1,117 @@
1
+ import type { ControlPlaneStore } from '../control-plane';
2
+ import type { CleanupCandidate, CleanupDriver, CleanupPlan, DisasterRecoveryDrill, DisasterRecoveryDriver, PlatformMaintenanceDriver, PlatformUpdateDocument, UpgradeTarget } from './types';
3
+ export interface PlatformMaintenanceTransport {
4
+ download(input: {
5
+ target: string;
6
+ url: string;
7
+ signal: AbortSignal;
8
+ }): Promise<{
9
+ path: string;
10
+ sha256: string;
11
+ }>;
12
+ install(input: {
13
+ target: string;
14
+ path: string;
15
+ version: string;
16
+ signal: AbortSignal;
17
+ }): Promise<void>;
18
+ health(input: {
19
+ target: string;
20
+ gate: Record<string, unknown>;
21
+ }): Promise<{
22
+ healthy: boolean;
23
+ evidence: Record<string, any>;
24
+ }>;
25
+ rollback(input: {
26
+ target: string;
27
+ version: string;
28
+ signal: AbortSignal;
29
+ }): Promise<void>;
30
+ }
31
+ export declare class TransportPlatformMaintenanceDriver implements PlatformMaintenanceDriver {
32
+ private transport;
33
+ constructor(transport: PlatformMaintenanceTransport);
34
+ download(input: {
35
+ target: UpgradeTarget;
36
+ artifact: PlatformUpdateDocument['artifacts'][number];
37
+ signal: AbortSignal;
38
+ }): Promise<{
39
+ path: string;
40
+ sha256: string;
41
+ }>;
42
+ install(input: {
43
+ target: UpgradeTarget;
44
+ path: string;
45
+ version: string;
46
+ signal: AbortSignal;
47
+ }): Promise<void>;
48
+ health(input: {
49
+ target: UpgradeTarget;
50
+ gate: Record<string, any>;
51
+ }): Promise<{
52
+ healthy: boolean;
53
+ evidence: Record<string, any>;
54
+ }>;
55
+ rollback(input: {
56
+ target: UpgradeTarget;
57
+ version: string;
58
+ signal: AbortSignal;
59
+ }): Promise<void>;
60
+ }
61
+ export declare class ControlPlaneCleanupDriver implements CleanupDriver {
62
+ readonly kind: CleanupPlan['kind'];
63
+ private control;
64
+ private projectId;
65
+ private organizationId;
66
+ constructor(kind: CleanupPlan['kind'], control: ControlPlaneStore, projectId: string, organizationId: string);
67
+ discover(criteria: CleanupPlan['criteria']): Promise<CleanupCandidate[]>;
68
+ remove(candidate: CleanupCandidate): Promise<void>;
69
+ }
70
+ export interface DisasterRecoveryTransport {
71
+ restore(input: {
72
+ scenario: DisasterRecoveryDrill['scenario'];
73
+ drill: DisasterRecoveryDrill;
74
+ signal: AbortSignal;
75
+ }): Promise<{
76
+ target: string;
77
+ recoveryPointAt: string;
78
+ evidence: Record<string, any>;
79
+ }>;
80
+ verify(input: {
81
+ scenario: DisasterRecoveryDrill['scenario'];
82
+ drill: DisasterRecoveryDrill;
83
+ target: string;
84
+ }): Promise<{
85
+ healthy: boolean;
86
+ evidence: Record<string, any>;
87
+ }>;
88
+ cleanup(input: {
89
+ scenario: DisasterRecoveryDrill['scenario'];
90
+ drill: DisasterRecoveryDrill;
91
+ target: string;
92
+ }): Promise<void>;
93
+ }
94
+ export declare class TransportDisasterRecoveryDriver implements DisasterRecoveryDriver {
95
+ readonly scenario: DisasterRecoveryDrill['scenario'];
96
+ private transport;
97
+ constructor(scenario: DisasterRecoveryDrill['scenario'], transport: DisasterRecoveryTransport);
98
+ restore(input: {
99
+ drill: DisasterRecoveryDrill;
100
+ signal: AbortSignal;
101
+ }): Promise<{
102
+ target: string;
103
+ recoveryPointAt: string;
104
+ evidence: Record<string, any>;
105
+ }>;
106
+ verify(input: {
107
+ drill: DisasterRecoveryDrill;
108
+ target: string;
109
+ }): Promise<{
110
+ healthy: boolean;
111
+ evidence: Record<string, any>;
112
+ }>;
113
+ cleanup(input: {
114
+ drill: DisasterRecoveryDrill;
115
+ target: string;
116
+ }): Promise<void>;
117
+ }
@@ -0,0 +1,6 @@
1
+ export * from './types';
2
+ export * from './manifest';
3
+ export * from './store';
4
+ export * from './service';
5
+ export * from './queue';
6
+ export * from './drivers';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import type { PlatformUpdateDocument } from './types';
2
+ export declare function canonicalJson(value: unknown): string;
3
+ export declare const manifestDigest: (document: PlatformUpdateDocument) => string;
4
+ export declare const documentDigest: (value: unknown) => string;
5
+ export declare const publicKeyFingerprint: (pem: string) => string;
6
+ export declare function verifyUpdateSignature(document: PlatformUpdateDocument, signature: string, publicKeyPem: string): boolean;
7
+ export declare function updateCompatibility(document: PlatformUpdateDocument, input: {
8
+ schemaVersion: number;
9
+ currentVersion: string;
10
+ platform: string;
11
+ architecture: string;
12
+ }): {
13
+ compatible: boolean;
14
+ reasons: string[];
15
+ };
@@ -0,0 +1,9 @@
1
+ import type { QueueOperationHandler } from '../queue';
2
+ import type { CleanupDriver, DisasterRecoveryDriver, PlatformMaintenanceDriver } from './types';
3
+ import { MaintenanceStore } from './store';
4
+ export declare function createMaintenanceQueueHandlers(input: {
5
+ store: MaintenanceStore;
6
+ platform?: PlatformMaintenanceDriver;
7
+ cleanup?: readonly CleanupDriver[];
8
+ recovery?: readonly DisasterRecoveryDriver[];
9
+ }): Record<string, QueueOperationHandler>;
@@ -0,0 +1,31 @@
1
+ import type { ControlPlaneOperation } from '../control-plane';
2
+ import type { CleanupDriver, CleanupPlan, DisasterRecoveryDrill, MaintenanceWindow, UpgradeCampaign } from './types';
3
+ import { DurableOperationQueue } from '../queue';
4
+ import { MaintenanceStore } from './store';
5
+ export declare function maintenanceWindowOpen(window: MaintenanceWindow, now?: Date): boolean;
6
+ export declare class MaintenanceService {
7
+ readonly store: MaintenanceStore;
8
+ private now;
9
+ readonly queue: DurableOperationQueue;
10
+ constructor(store: MaintenanceStore, queue?: DurableOperationQueue, now?: () => Date);
11
+ enqueueCampaign(id: string, input?: {
12
+ approvedBy?: string;
13
+ overrideWindow?: boolean;
14
+ }): {
15
+ campaign: UpgradeCampaign;
16
+ operation: ControlPlaneOperation;
17
+ };
18
+ previewCleanup(input: {
19
+ projectId: string;
20
+ kind: CleanupPlan['kind'];
21
+ criteria: CleanupPlan['criteria'];
22
+ }, drivers: readonly CleanupDriver[]): Promise<CleanupPlan>;
23
+ enqueueCleanup(id: string, confirmation: string): {
24
+ plan: CleanupPlan;
25
+ operation: ControlPlaneOperation;
26
+ };
27
+ enqueueDrill(id: string): {
28
+ drill: DisasterRecoveryDrill;
29
+ operation: ControlPlaneOperation;
30
+ };
31
+ }
@@ -0,0 +1,84 @@
1
+ import type { ControlPlaneStore, JsonValue } from '../control-plane';
2
+ import type { CleanupCandidate, CleanupPlan, DisasterRecoveryDrill, MaintenanceWindow, PlatformUpdateDocument, PlatformUpdateManifest, TrustedUpdateKey, UpgradeCampaign, UpgradeTarget } from './types';
3
+ export declare class MaintenanceStore {
4
+ readonly control: ControlPlaneStore;
5
+ private now;
6
+ private id;
7
+ constructor(control: ControlPlaneStore, now?: () => Date, id?: () => string);
8
+ addTrustedKey(input: {
9
+ organizationId: string;
10
+ name: string;
11
+ publicKeyPem: string;
12
+ }): TrustedUpdateKey;
13
+ key(id: string): TrustedUpdateKey | undefined;
14
+ revokeKey(id: string): TrustedUpdateKey;
15
+ importManifest(input: {
16
+ organizationId: string;
17
+ keyId: string;
18
+ document: PlatformUpdateDocument;
19
+ signature: string;
20
+ current: {
21
+ schemaVersion: number;
22
+ currentVersion: string;
23
+ platform: string;
24
+ architecture: string;
25
+ };
26
+ }): PlatformUpdateManifest;
27
+ manifest(id: string): PlatformUpdateManifest | undefined;
28
+ manifests(organizationId: string): PlatformUpdateManifest[];
29
+ createWindow(input: {
30
+ projectId: string;
31
+ name: string;
32
+ schedule: string;
33
+ timezone: string;
34
+ durationMinutes: number;
35
+ allowedOperations: string[];
36
+ requireApproval?: boolean;
37
+ }): MaintenanceWindow;
38
+ window(id: string): MaintenanceWindow | undefined;
39
+ windows(projectId: string): MaintenanceWindow[];
40
+ createCampaign(input: {
41
+ projectId: string;
42
+ manifestId: string;
43
+ windowId?: string;
44
+ fromVersion: string;
45
+ strategy: 'canary' | 'rolling';
46
+ batchSize: number;
47
+ healthGate: Record<string, JsonValue>;
48
+ backupId: string;
49
+ approvedBy?: string;
50
+ targets: Array<{
51
+ serverId?: string;
52
+ target: string;
53
+ previousVersion: string;
54
+ }>;
55
+ }): UpgradeCampaign;
56
+ campaign(id: string): UpgradeCampaign | undefined;
57
+ campaigns(projectId: string): UpgradeCampaign[];
58
+ targets(id: string): UpgradeTarget[];
59
+ updateCampaign(id: string, patch: Partial<Pick<UpgradeCampaign, 'status' | 'currentStage'>>): UpgradeCampaign;
60
+ updateTarget(id: string, patch: Partial<Pick<UpgradeTarget, 'status' | 'evidence' | 'error' | 'startedAt' | 'finishedAt'>>): UpgradeTarget;
61
+ createCleanup(input: {
62
+ projectId: string;
63
+ kind: CleanupPlan['kind'];
64
+ criteria: CleanupPlan['criteria'];
65
+ candidates: CleanupCandidate[];
66
+ ttlMinutes?: number;
67
+ }): CleanupPlan;
68
+ cleanup(id: string): CleanupPlan | undefined;
69
+ cleanups(projectId: string): CleanupPlan[];
70
+ updateCleanup(id: string, patch: Partial<Pick<CleanupPlan, 'status' | 'confirmation' | 'result'>>): CleanupPlan;
71
+ createDrill(input: {
72
+ projectId: string;
73
+ backupPolicyId?: string;
74
+ recoveryPointId?: string;
75
+ topologyId?: string;
76
+ scenario: DisasterRecoveryDrill['scenario'];
77
+ isolatedTarget: string;
78
+ expectedRpoMinutes: number;
79
+ expectedRtoMinutes: number;
80
+ }): DisasterRecoveryDrill;
81
+ drill(id: string): DisasterRecoveryDrill | undefined;
82
+ drills(projectId: string): DisasterRecoveryDrill[];
83
+ updateDrill(id: string, patch: Partial<Pick<DisasterRecoveryDrill, 'status' | 'operationId' | 'evidence' | 'measuredRpoMinutes' | 'measuredRtoMinutes' | 'cleanupVerified' | 'error' | 'startedAt' | 'finishedAt'>>): DisasterRecoveryDrill;
84
+ }