@stacksjs/ts-cloud 0.7.56 → 0.7.58

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,59 @@
1
+ import type { CloudResource, ResourceInventoryResult } from './resource-inventory';
2
+ export interface ResourceSignals {
3
+ cpuAverage?: number;
4
+ connectionsAverage?: number;
5
+ iopsAverage?: number;
6
+ invocations?: number;
7
+ objectCount?: number;
8
+ requests?: number;
9
+ storageBytes?: number;
10
+ cacheHitRate?: number;
11
+ }
12
+ export interface IdleResourceFinding {
13
+ resource: CloudResource;
14
+ signal: string;
15
+ recommendation: string;
16
+ monthlySavings: number | null;
17
+ }
18
+ export type OptimizationCategory = 'unused' | 'right-size' | 'commitment' | 'storage' | 'cdn';
19
+ export interface OptimizationRecommendation {
20
+ category: OptimizationCategory;
21
+ resource: CloudResource;
22
+ recommendation: string;
23
+ sourceSignal: string;
24
+ currentCost: number | null;
25
+ projectedCost: number | null;
26
+ monthlySavings: number | null;
27
+ }
28
+ export interface OptimizationResult {
29
+ recommendations: OptimizationRecommendation[];
30
+ inventory: ResourceInventoryResult;
31
+ savingsAvailable: boolean;
32
+ warnings: string[];
33
+ }
34
+ export declare function resourceOptimizationRecommendations(resource: CloudResource, signals: ResourceSignals, currentCost: number | null, includeCommitments?: boolean): OptimizationRecommendation[];
35
+ export declare function cloudFrontOptimizationRecommendation(monthlyTransferCost: number, usageTypes: string[]): OptimizationRecommendation | null;
36
+ export declare function evaluateIdleResource(resource: CloudResource, signals: ResourceSignals, monthlySavings?: number | null): IdleResourceFinding | null;
37
+ export declare class ResourceOptimizationService {
38
+ private inventory;
39
+ private costs;
40
+ private profile?;
41
+ private region;
42
+ constructor(profile?: string, region?: string);
43
+ private metric;
44
+ private signals;
45
+ private resourceCosts;
46
+ private resourceCost;
47
+ private cloudFrontTransfer;
48
+ unused(options?: {
49
+ type?: string;
50
+ }): Promise<{
51
+ findings: IdleResourceFinding[];
52
+ inventory: ResourceInventoryResult;
53
+ savingsAvailable: boolean;
54
+ }>;
55
+ optimize(options?: {
56
+ type?: string;
57
+ includeCommitments?: boolean;
58
+ }): Promise<OptimizationResult>;
59
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { QueueExecutionContext } from '../queue';
3
+ import type { DataAction, DataService } from './model';
4
+ import type { DataServiceAdapter } from './service';
5
+ export interface DataProviderTransport {
6
+ observe(id: string): Promise<Record<string, JsonValue>>;
7
+ apply(input: Record<string, JsonValue>, credential?: string): Promise<Record<string, JsonValue>>;
8
+ execute(id: string, action: DataAction, input: Record<string, JsonValue>, credential?: string, context?: QueueExecutionContext): Promise<Record<string, JsonValue>>;
9
+ }
10
+ declare abstract class TransportAdapter implements DataServiceAdapter {
11
+ protected transport: DataProviderTransport;
12
+ abstract provider: DataService['provider'];
13
+ abstract engines: DataService['engine'][];
14
+ constructor(transport: DataProviderTransport);
15
+ observe(service: DataService): Promise<Record<string, JsonValue>>;
16
+ apply(service: DataService, credential?: string): Promise<Record<string, JsonValue>>;
17
+ action(service: DataService, action: DataAction, input: Record<string, JsonValue>, credential: string | undefined, context: QueueExecutionContext): Promise<Record<string, JsonValue>>;
18
+ }
19
+ export declare class AwsRdsDataAdapter extends TransportAdapter {
20
+ provider: 'aws_rds';
21
+ engines: DataService['engine'][];
22
+ }
23
+ export declare class AwsAuroraDataAdapter extends TransportAdapter {
24
+ provider: 'aws_aurora';
25
+ engines: DataService['engine'][];
26
+ }
27
+ export declare class AwsElastiCacheDataAdapter extends TransportAdapter {
28
+ provider: 'aws_elasticache';
29
+ engines: DataService['engine'][];
30
+ }
31
+ export declare class ServerDataAdapter extends TransportAdapter {
32
+ provider: 'server';
33
+ engines: DataService['engine'][];
34
+ }
35
+ export declare class ContainerDataAdapter extends TransportAdapter {
36
+ provider: 'container';
37
+ engines: DataService['engine'][];
38
+ }
39
+ export {};
@@ -0,0 +1,29 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { QueueExecutionContext } from '../queue';
3
+ import type { DataProviderTransport } from './adapters';
4
+ import type { DataAction } from './model';
5
+ import { ElastiCacheClient } from '../aws/elasticache';
6
+ import { RDSClient } from '../aws/rds';
7
+ type Input = Record<string, JsonValue>;
8
+ export declare class AwsRdsTransport implements DataProviderTransport {
9
+ private readonly client;
10
+ constructor(client?: RDSClient);
11
+ observe(id: string): Promise<Input>;
12
+ apply(input: Input, credential?: string): Promise<Input>;
13
+ execute(id: string, action: DataAction, input: Input, credential?: string, _context?: QueueExecutionContext): Promise<Input>;
14
+ }
15
+ export declare class AwsAuroraTransport implements DataProviderTransport {
16
+ private readonly client;
17
+ constructor(client?: RDSClient);
18
+ observe(id: string): Promise<Input>;
19
+ apply(input: Input, credential?: string): Promise<Input>;
20
+ execute(id: string, action: DataAction, input: Input, credential?: string): Promise<Input>;
21
+ }
22
+ export declare class AwsElastiCacheTransport implements DataProviderTransport {
23
+ private readonly client;
24
+ constructor(client?: ElastiCacheClient);
25
+ observe(id: string): Promise<Input>;
26
+ apply(input: Input): Promise<Input>;
27
+ execute(id: string, action: DataAction, input: Input): Promise<Input>;
28
+ }
29
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { DataEngine, DataProvider, DataServiceCapabilities } from './model';
2
+ export declare function dataServiceCapabilities(engine: DataEngine, provider: DataProvider): DataServiceCapabilities;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,55 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { DataProviderTransport } from './adapters';
3
+ import type { DataAction } from './model';
4
+ type Input = Record<string, JsonValue>;
5
+ export interface DockerRuntime {
6
+ ensureNetwork(name: string): Promise<void>;
7
+ seedSecret(volume: string, content: string): Promise<void>;
8
+ removeVolume(name: string): Promise<void>;
9
+ inspect(name: string): Promise<Record<string, any> | undefined>;
10
+ run(args: string[]): Promise<void>;
11
+ exec(name: string, args: string[], stdin?: string): Promise<string>;
12
+ update(name: string, args: string[]): Promise<void>;
13
+ restart(name: string): Promise<void>;
14
+ remove(name: string): Promise<void>;
15
+ logs(name: string, lines: number): Promise<string>;
16
+ stats(name: string): Promise<Record<string, JsonValue>>;
17
+ }
18
+ export declare class BunDockerRuntime implements DockerRuntime {
19
+ ensureNetwork(name: string): Promise<void>;
20
+ seedSecret(volume: string, content: string): Promise<void>;
21
+ removeVolume(name: string): Promise<void>;
22
+ inspect(name: string): Promise<Record<string, any> | undefined>;
23
+ run(args: string[]): Promise<void>;
24
+ exec(name: string, args: string[], stdin?: string): Promise<string>;
25
+ update(name: string, args: string[]): Promise<void>;
26
+ restart(name: string): Promise<void>;
27
+ remove(name: string): Promise<void>;
28
+ logs(name: string, lines: number): Promise<string>;
29
+ stats(name: string): Promise<Record<string, JsonValue>>;
30
+ }
31
+ export declare class DockerDataTransport implements DataProviderTransport {
32
+ private readonly runtime;
33
+ private readonly backupRoot;
34
+ constructor(runtime?: DockerRuntime, backupRoot?: string);
35
+ observe(id: string): Promise<Input>;
36
+ apply(input: Input, credential?: string): Promise<Input>;
37
+ exportLogicalBackup(id: string): Promise<{
38
+ body: Uint8Array;
39
+ engine: 'postgres' | 'mysql' | 'mariadb';
40
+ database: string;
41
+ username: string;
42
+ engineVersion?: string;
43
+ }>;
44
+ restoreLogicalBackup(input: {
45
+ sourceId: string;
46
+ targetId: string;
47
+ body: Uint8Array;
48
+ credential: string;
49
+ inPlace?: boolean;
50
+ }): Promise<Input>;
51
+ removeRestoredService(id: string): Promise<void>;
52
+ private backup;
53
+ execute(id: string, action: DataAction, input: Input, credential?: string): Promise<Input>;
54
+ }
55
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ export * from './model';
2
+ export * from './capabilities';
3
+ export * from './store';
4
+ export * from './service';
5
+ export * from './adapters';
6
+ export * from './aws-transports';
7
+ export * from './docker-transport';
8
+ export * from './secrets';
@@ -0,0 +1,79 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ export type DataEngine = 'postgres' | 'mysql' | 'mariadb' | 'redis' | 'mongodb' | 'libsql';
3
+ export type DataProvider = 'aws_rds' | 'aws_aurora' | 'aws_elasticache' | 'server' | 'container' | 'external';
4
+ export type DataAction = 'create' | 'observe' | 'connect' | 'backup' | 'restore' | 'restart' | 'resize' | 'version' | 'rotate' | 'expose' | 'delete' | 'logs' | 'slow_queries' | 'users' | 'databases';
5
+ export interface DataActionCapability {
6
+ supported: boolean;
7
+ downtime: 'none' | 'possible' | 'required';
8
+ destructive: boolean;
9
+ explanation: string;
10
+ }
11
+ export interface DataServiceCapabilities {
12
+ actions: Record<DataAction, DataActionCapability>;
13
+ endpointTypes: Array<'internal' | 'external' | 'tunnel'>;
14
+ metrics: string[];
15
+ }
16
+ export interface DataEndpoint {
17
+ type: 'internal' | 'external' | 'tunnel';
18
+ host: string;
19
+ port: number;
20
+ database?: string;
21
+ tls: boolean;
22
+ }
23
+ export interface DataService {
24
+ id: string;
25
+ organizationId: string;
26
+ projectId: string;
27
+ environmentId?: string;
28
+ resourceId?: string;
29
+ name: string;
30
+ engine: DataEngine;
31
+ provider: DataProvider;
32
+ placement: string;
33
+ engineVersion?: string;
34
+ plan: string;
35
+ storageGb?: number;
36
+ highAvailability: boolean;
37
+ publicExposure: boolean;
38
+ allowedCidrs: string[];
39
+ desiredState: Record<string, JsonValue>;
40
+ observedState: Record<string, JsonValue>;
41
+ capabilities: DataServiceCapabilities;
42
+ credentialRef?: string;
43
+ status: 'draft' | 'planning' | 'provisioning' | 'available' | 'modifying' | 'degraded' | 'failed' | 'deleting' | 'retained' | 'adopted';
44
+ origin: 'managed' | 'config' | 'adopted';
45
+ managementEnabled: boolean;
46
+ ownerActorId?: string;
47
+ version: number;
48
+ createdAt: string;
49
+ updatedAt: string;
50
+ }
51
+ export interface DataCredential {
52
+ id: string;
53
+ serviceId: string;
54
+ username: string;
55
+ secretRef: string;
56
+ version: number;
57
+ createdAt: string;
58
+ rotatedAt?: string;
59
+ }
60
+ export interface DataDependency {
61
+ serviceId: string;
62
+ resourceId: string;
63
+ secretRef: string;
64
+ requiresRedeploy: boolean;
65
+ createdAt: string;
66
+ }
67
+ export interface DataServicePlan {
68
+ service: DataService;
69
+ action: DataAction;
70
+ capability: DataActionCapability;
71
+ changes: Record<string, JsonValue>;
72
+ preflight: {
73
+ backupRequired: boolean;
74
+ compatibilityRequired: boolean;
75
+ typedConfirmation?: string;
76
+ retentionChoiceRequired: boolean;
77
+ };
78
+ warnings: string[];
79
+ }
@@ -0,0 +1,13 @@
1
+ import type { ControlPlaneStore } from '../control-plane';
2
+ import type { SecretBackend } from './service';
3
+ export declare class EncryptedDataSecretStore implements SecretBackend {
4
+ private readonly controlPlane;
5
+ private readonly now;
6
+ private readonly key;
7
+ constructor(controlPlane: ControlPlaneStore, encryptionKey: string, now?: () => Date);
8
+ private encrypt;
9
+ private decrypt;
10
+ put(reference: string, value: string): Promise<void>;
11
+ resolve(reference: string): Promise<string>;
12
+ remove(reference: string): Promise<void>;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,51 @@
1
+ import type { JsonValue } from '../control-plane';
2
+ import type { QueueExecutionContext, QueueOperationHandler } from '../queue';
3
+ import type { DataAction, DataEndpoint, DataService, DataServicePlan } from './model';
4
+ import { DurableOperationQueue } from '../queue';
5
+ import { DataServiceStore } from './store';
6
+ export interface SecretBackend {
7
+ put(reference: string, value: string): Promise<void>;
8
+ resolve(reference: string): Promise<string>;
9
+ remove(reference: string): Promise<void>;
10
+ }
11
+ export interface DataServiceAdapter {
12
+ provider: DataService['provider'];
13
+ engines: DataService['engine'][];
14
+ observe(service: DataService): Promise<Record<string, JsonValue>>;
15
+ apply(service: DataService, credential?: string, context?: QueueExecutionContext): Promise<Record<string, JsonValue>>;
16
+ action(service: DataService, action: DataAction, input: Record<string, JsonValue>, credential: string | undefined, context: QueueExecutionContext): Promise<Record<string, JsonValue>>;
17
+ }
18
+ export interface OneTimeCredential {
19
+ username: string;
20
+ password: string;
21
+ secretRef: string;
22
+ }
23
+ export declare function connectionGuidance(service: DataService, endpoints: DataEndpoint[]): Array<{
24
+ type: string;
25
+ command: string;
26
+ secretRef?: string;
27
+ }>;
28
+ export declare class DataServiceLifecycle {
29
+ readonly store: DataServiceStore;
30
+ readonly queue: DurableOperationQueue;
31
+ readonly secrets: SecretBackend;
32
+ constructor(store: DataServiceStore, queue: DurableOperationQueue, secrets: SecretBackend);
33
+ create(input: Omit<DataService, 'id' | 'capabilities' | 'credentialRef' | 'version' | 'createdAt' | 'updatedAt' | 'status'> & {
34
+ username?: string;
35
+ }): Promise<{
36
+ service: DataService;
37
+ credential?: OneTimeCredential;
38
+ operationId: string;
39
+ }>;
40
+ plan(service: DataService, action: DataAction, changes?: Record<string, JsonValue>): DataServicePlan;
41
+ enqueue(service: DataService, action: DataAction, input: Record<string, JsonValue>, actorId?: string): string;
42
+ rotate(service: DataService, adapter: DataServiceAdapter, context: QueueExecutionContext): Promise<{
43
+ credential: OneTimeCredential;
44
+ dependencies: string[];
45
+ }>;
46
+ }
47
+ export declare function createDataServiceQueueHandlers(input: {
48
+ store: DataServiceStore;
49
+ secrets: SecretBackend;
50
+ resolveAdapter: (service: DataService) => DataServiceAdapter | undefined;
51
+ }): Record<string, QueueOperationHandler>;
@@ -0,0 +1,17 @@
1
+ import type { ControlPlaneStore } from '../control-plane';
2
+ import type { DataCredential, DataDependency, DataService } from './model';
3
+ export declare class DataServiceStore {
4
+ readonly controlPlane: ControlPlaneStore;
5
+ private readonly now;
6
+ constructor(controlPlane: ControlPlaneStore, now?: () => Date);
7
+ create(input: Omit<DataService, 'id' | 'capabilities' | 'version' | 'createdAt' | 'updatedAt'>): DataService;
8
+ get(id: string): DataService | undefined;
9
+ list(projectId: string, environmentId?: string): DataService[];
10
+ update(id: string, expectedVersion: number, patch: Partial<Pick<DataService, 'plan' | 'storageGb' | 'engineVersion' | 'highAvailability' | 'publicExposure' | 'allowedCidrs' | 'desiredState' | 'observedState' | 'status' | 'managementEnabled' | 'credentialRef'>>): DataService;
11
+ credential(serviceId: string): DataCredential | undefined;
12
+ saveCredential(serviceId: string, username: string, secretRef: string): DataCredential;
13
+ addDependency(input: Omit<DataDependency, 'createdAt'>): DataDependency;
14
+ dependencies(serviceId: string): DataDependency[];
15
+ removeDependency(serviceId: string, resourceId: string): boolean;
16
+ remove(id: string): void;
17
+ }
@@ -0,0 +1,28 @@
1
+ import { ECRClient } from '../aws/ecr';
2
+ export interface BuildContainerImageOptions {
3
+ context: string;
4
+ dockerfile?: string;
5
+ repository: string;
6
+ region?: string;
7
+ profile?: string;
8
+ platform?: 'linux/amd64' | 'linux/arm64';
9
+ }
10
+ export interface BuiltContainerImage {
11
+ repository: string;
12
+ tag: string;
13
+ imageUri: string;
14
+ digest: string;
15
+ digestUri: string;
16
+ contextSha256: string;
17
+ }
18
+ export interface ContainerImageDependencies {
19
+ ecr: Pick<ECRClient, 'describeRepositories' | 'createRepository' | 'putLifecyclePolicy' | 'getAuthorizationToken' | 'describeImages'>;
20
+ run: (command: string, args: string[], options?: {
21
+ cwd?: string;
22
+ env?: NodeJS.ProcessEnv;
23
+ stdio?: 'ignore' | 'inherit';
24
+ }) => void;
25
+ }
26
+ export declare function hashContainerContext(context: string): string;
27
+ export declare function createContainerImageDependencies(options: Pick<BuildContainerImageOptions, 'region' | 'profile'>): ContainerImageDependencies;
28
+ export declare function buildAndPushContainerImage(options: BuildContainerImageOptions, injected?: ContainerImageDependencies): Promise<BuiltContainerImage>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,26 +1,3 @@
1
- /**
2
- * Identity and authorization for the management dashboard.
3
- *
4
- * The dashboard hosts sites for more than one party: Stacks owns the box, and
5
- * collaborators are invited to individual sites. That makes authorization a
6
- * security boundary rather than a convenience — a site collaborator must never
7
- * reach another tenant's data, and must never reach the box itself.
8
- *
9
- * The model has two levels:
10
- * - Box role: `admin` (owns the box — everything) or `member` (only what they
11
- * have been granted).
12
- * - Site grants: a member holds a {@link SiteRole} per site. `owner` may change
13
- * the site's settings; `collaborator` may view and deploy it.
14
- *
15
- * Box-level capabilities (shell, terminal, SSH keys, firewall, databases,
16
- * cloud-config edits) are **admin-only and never grantable per site**. Each of
17
- * them yields root on the box, which would hand a single site's collaborator
18
- * control of every other tenant's site. There is deliberately no grant that
19
- * unlocks them for a member.
20
- *
21
- * Authorization is deny-by-default: {@link authorize} answers `false` for any
22
- * capability it does not explicitly recognize.
23
- */
24
1
  /** Box-wide role. `admin` owns the server and everything hosted on it. */
25
2
  export type BoxRole = 'admin' | 'member';
26
3
  /**
@@ -37,6 +14,8 @@ export interface DashboardUser {
37
14
  sites: Record<string, SiteRole>;
38
15
  /** Display name shown in the UI. Defaults to the username. */
39
16
  name?: string;
17
+ /** Verified once an emailed invitation or verification link is consumed. */
18
+ email?: string;
40
19
  createdAt?: string;
41
20
  }
42
21
  /**
@@ -78,5 +57,7 @@ export declare function hashPassword(password: string): string;
78
57
  * the login, not crash the server.
79
58
  */
80
59
  export declare function verifyPassword(password: string, stored: string): boolean;
60
+ /** Whether a valid legacy hash should be transparently upgraded after login. */
61
+ export declare function passwordNeedsRehash(stored: string): boolean;
81
62
  /** A URL-safe generated password, for invites and the bootstrap admin. */
82
63
  export declare function generatePassword(): string;
@@ -0,0 +1,37 @@
1
+ import type { CloudConfig, EnvironmentType } from '@ts-cloud/core';
2
+ import type { ControlPlaneActor, ControlPlaneEnvironment, ControlPlaneOperation, ControlPlaneOrganization, ControlPlaneProject, JsonValue } from '../control-plane';
3
+ import type { DashboardUser } from './dashboard-auth';
4
+ import { ControlPlaneStore } from '../control-plane';
5
+ export interface DashboardControlPlane {
6
+ store: ControlPlaneStore;
7
+ organization: ControlPlaneOrganization;
8
+ project: ControlPlaneProject;
9
+ environments: Map<string, ControlPlaneEnvironment>;
10
+ reconciliation: {
11
+ requeued: number;
12
+ failed: number;
13
+ };
14
+ }
15
+ export interface TrackDashboardOperationInput<T extends {
16
+ ok: boolean;
17
+ }> {
18
+ controlPlane: DashboardControlPlane;
19
+ environment: EnvironmentType;
20
+ actor: DashboardUser;
21
+ kind: string;
22
+ resourceSlug?: string;
23
+ input?: JsonValue;
24
+ execute: () => Promise<T>;
25
+ }
26
+ export interface TrackedDashboardOperationResult<T extends {
27
+ ok: boolean;
28
+ }> {
29
+ result: T;
30
+ operation: ControlPlaneOperation;
31
+ }
32
+ export declare function ensureDashboardActor(store: ControlPlaneStore, user: DashboardUser): ControlPlaneActor;
33
+ export declare function initializeDashboardControlPlane(cwd: string, config: CloudConfig): DashboardControlPlane;
34
+ export declare function synchronizeDashboardUsers(controlPlane: DashboardControlPlane, users: readonly DashboardUser[]): void;
35
+ export declare function trackDashboardOperation<T extends {
36
+ ok: boolean;
37
+ }>(input: TrackDashboardOperationInput<T>): Promise<TrackedDashboardOperationResult<T>>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -6,6 +6,8 @@
6
6
  * this file and {@link import('./dashboard-policy')} together are the complete
7
7
  * authorization story for the HTTP API.
8
8
  */
9
+ import type { AuthenticationStore, AuthSession } from '../auth';
10
+ import type { ControlPlaneStore } from '../control-plane';
9
11
  import type { DashboardUser } from './dashboard-auth';
10
12
  /**
11
13
  * A synthetic admin used only when auth is explicitly disabled for local
@@ -17,6 +19,13 @@ export interface GuardOptions {
17
19
  /** When false, every request is treated as {@link LOCAL_ADMIN}. */
18
20
  enabled: boolean;
19
21
  secret: string;
22
+ authentication?: AuthenticationStore;
23
+ authorization: {
24
+ store: ControlPlaneStore;
25
+ organizationId: string;
26
+ projectId: string;
27
+ defaultEnvironment: string;
28
+ };
20
29
  }
21
30
  export interface GuardDecision {
22
31
  ok: boolean;
@@ -29,10 +38,13 @@ export interface DashboardGuard {
29
38
  enabled: boolean;
30
39
  /** The user for this request, or null when unauthenticated. */
31
40
  resolveUser: (req: Request) => DashboardUser | null;
41
+ /** Durable v2 session metadata, when this request did not use a legacy cookie. */
42
+ resolveSession: (req: Request) => AuthSession | null;
32
43
  /** Whether `user` may perform `req`. `site` is required for site-scoped routes. */
33
44
  check: (req: Request, pathname: string, user: DashboardUser | null, site?: string) => GuardDecision;
34
45
  }
35
46
  export declare function createDashboardGuard(options: GuardOptions): DashboardGuard;
47
+ export declare function dashboardMembershipVersions(store: ControlPlaneStore, organizationId: string, user: DashboardUser): Record<string, number>;
36
48
  /**
37
49
  * Read the site name a site-scoped route acts on, without consuming the body
38
50
  * the handler will read (the request is cloned).
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import type { AuthenticationStore, AuthIdentity, VerifiedOidcIdentity } from '../auth';
2
+ import type { DashboardUser } from './dashboard-auth';
3
+ import type { DashboardControlPlane } from './dashboard-control-plane';
4
+ /**
5
+ * Non-breaking bridge from the original local user file into durable auth.
6
+ * The control-plane identity becomes authoritative after the first migration;
7
+ * memberships remain a separate authorization concern.
8
+ */
9
+ export declare function synchronizeDashboardIdentities(authentication: AuthenticationStore, controlPlane: DashboardControlPlane, users: DashboardUser[]): void;
10
+ export declare function resolveOidcDashboardIdentity(authentication: AuthenticationStore, controlPlane: DashboardControlPlane, cwd: string, verified: VerifiedOidcIdentity): {
11
+ identity: AuthIdentity;
12
+ user: DashboardUser;
13
+ provisioned: boolean;
14
+ };
15
+ export declare function localLoginRequiresSso(authentication: AuthenticationStore, controlPlane: DashboardControlPlane, identity: AuthIdentity): boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -9,8 +9,8 @@
9
9
  * It mirrors the cockpit's existing design tokens so the two don't read as
10
10
  * different products.
11
11
  */
12
- /**
13
- * The page. `serverless` only picks the post-login landing route, matching the
14
- * redirect the server already does for a serverless deployment.
15
- */
16
- export declare function renderLoginPage(serverless?: boolean): string;
12
+ export declare function renderLoginPage(serverless?: boolean, oidcProviders?: readonly {
13
+ slug: string;
14
+ name: string;
15
+ }[]): string;
16
+ export declare function renderPasswordRecoveryPage(mode: 'request' | 'reset'): string;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -12,9 +12,11 @@
12
12
  * Site-scoped routes take their site from the request body, so their entry sets
13
13
  * `siteFrom: 'body'` and the caller supplies the parsed name.
14
14
  */
15
- import type { Capability } from './dashboard-auth';
15
+ import type { AuthorizationCapability } from '../control-plane';
16
16
  export interface RoutePolicy {
17
- capability: Capability;
17
+ capability: AuthorizationCapability;
18
+ /** Resource ancestry used when evaluating the capability. Defaults to project. */
19
+ scope?: 'organization' | 'project' | 'site';
18
20
  /** Where the site name comes from, for `site:*` capabilities. */
19
21
  siteFrom?: 'body';
20
22
  /** Any authenticated user may call it, regardless of role. */
@@ -0,0 +1,14 @@
1
+ export type DashboardMode = 'server' | 'serverless';
2
+ export type DashboardNavigationGroup = 'overview' | 'applications' | 'operations' | 'infrastructure' | 'compute-data' | 'settings' | 'organization';
3
+ export interface DashboardPageRoute {
4
+ id: string;
5
+ path: string;
6
+ label: string;
7
+ group: DashboardNavigationGroup;
8
+ modes: readonly DashboardMode[];
9
+ adminOnly: boolean;
10
+ legacyPaths?: readonly string[];
11
+ }
12
+ export declare const dashboardPageRoutes: readonly DashboardPageRoute[];
13
+ export declare function resolveLegacyDashboardRoute(path: string): string | undefined;
14
+ export declare function routesForDashboard(mode: DashboardMode, member: boolean): DashboardPageRoute[];
@@ -0,0 +1 @@
1
+ export {};