@stacksjs/ts-cloud 0.7.55 → 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
package/dist/index.js CHANGED
@@ -1,22 +1,330 @@
1
+ import {
2
+ API_IDEMPOTENCY_TTL_MS,
3
+ API_TOKEN_DEFAULT_TTL_MS,
4
+ API_TOKEN_MAX_TTL_MS,
5
+ API_VERSION,
6
+ AUTHORIZATION_CAPABILITIES,
7
+ AUTH_ACTION_TOKEN_TTL_MS,
8
+ AUTH_ENCRYPTION_KEY_FILE,
9
+ AUTH_MFA_CHALLENGE_TTL_MS,
10
+ AUTH_OIDC_TRANSACTION_TTL_MS,
11
+ AUTH_SESSION_ABSOLUTE_TTL_MS,
12
+ AUTH_SESSION_IDLE_TTL_MS,
13
+ AlertEvaluator,
14
+ AlertStore,
15
+ ApiServiceError,
16
+ AuthenticationStore,
17
+ AutomationApiService,
18
+ AutomationIdentityStore,
19
+ AwsAuroraDataAdapter,
20
+ AwsAuroraTransport,
21
+ AwsDatabaseBackupSource,
22
+ AwsElastiCacheDataAdapter,
23
+ AwsElastiCacheTransport,
24
+ AwsIamCapabilityScanner,
25
+ AwsInfrastructureBackupSource,
26
+ AwsRdsDataAdapter,
27
+ AwsRdsTransport,
28
+ AwsRegionalDriver,
29
+ AwsSecretsManagerConfigurationBackend,
30
+ AwsSsmConfigurationBackend,
31
+ BackupCoordinator,
32
+ BackupStore,
33
+ BitbucketSourceAdapter,
34
+ BunDockerRuntime,
35
+ BunDockerVolumeRuntime,
36
+ BunFilesystemArchiveRuntime,
37
+ CONTROL_PLANE_DATABASE_FILE,
38
+ CONTROL_PLANE_SCHEMA_VERSION,
39
+ CloudBlockVolumeDriver,
40
+ ComposeApplicationService,
41
+ ComposeApplicationStore,
42
+ ConfigurationService,
43
+ ConfigurationStore,
44
+ ContainerDataAdapter,
45
+ ControlPlaneBackupSource,
46
+ ControlPlaneCleanupDriver,
47
+ ControlPlaneStore,
48
+ DEFAULT_TELEMETRY_POLICY,
49
+ DEPLOYMENT_QUEUE_KINDS,
50
+ DIAGNOSTIC_PRESETS,
51
+ DataServiceLifecycle,
52
+ DataServiceStore,
53
+ DockerDataTransport,
54
+ DockerDiscoveryAdapter,
55
+ DockerNamedVolumeDriver,
56
+ DockerVolumeBackupSource,
57
+ DurableOperationQueue,
58
+ DurableQueueWorker,
59
+ EcsRuntimeAdapter,
60
+ EncryptedDataSecretStore,
61
+ EventBridgeJobAdapter,
62
+ ExternalConfigurationBackend,
63
+ FilesystemBackupSource,
64
+ FleetService,
65
+ FleetStore,
66
+ GiteaSourceAdapter,
67
+ GithubSourceAdapter,
68
+ GitlabSourceAdapter,
69
+ HealthCheckRunner,
70
+ InvalidOperationTransitionError,
71
+ JobProviderReconciler,
72
+ JobService,
73
+ JobStore,
74
+ LambdaRuntimeAdapter,
75
+ LocalEncryptedConfigurationBackend,
76
+ LogicalDatabaseBackupSource,
77
+ MAX_CONTROL_PLANE_ERROR_BYTES,
78
+ MAX_CONTROL_PLANE_JSON_BYTES,
79
+ MaintenanceService,
80
+ MaintenanceStore,
81
+ NotificationRouter,
82
+ OptimisticConcurrencyError,
83
+ PlacementService,
84
+ PlacementStore,
85
+ PreDeployScanner,
86
+ PreviewEnvironmentService,
87
+ PreviewEnvironmentStore,
88
+ QueueCancellationError,
89
+ QueueTimeoutError,
90
+ RELEASE_QUEUE_KINDS,
91
+ RegionService,
92
+ RegionStore,
93
+ ReleaseService,
94
+ ReleaseStore,
95
+ RemoteBuildService,
96
+ RetryableOperationError,
97
+ RuntimeOperationService,
98
+ RuntimeStreamRegistry,
99
+ S3BackupDestinationAdapter,
100
+ SECRET_PATTERNS,
101
+ SecretFindingScanner,
102
+ SecurityPostureStore,
103
+ SecurityScannerRunner,
104
+ ServerCronJobAdapter,
105
+ ServerDataAdapter,
106
+ ServerPathVolumeDriver,
107
+ SourceConnectionStore,
108
+ SourceProviderError,
109
+ SshFleetDriver,
110
+ SystemFleetSshTransport,
111
+ SystemdDiscoveryAdapter,
112
+ TelemetryStore,
113
+ TransportDisasterRecoveryDriver,
114
+ TransportPlatformMaintenanceDriver,
115
+ TransportRemoteBuildDriver,
116
+ TrivyImageScanner,
117
+ TsCloudApiError,
118
+ TsCloudClient,
119
+ UnavailableRegionalDriver,
120
+ UnsupportedSchemaVersionError,
121
+ VolumeService,
122
+ VolumeStore,
123
+ activateImmutableRelease,
124
+ ageSeconds,
125
+ assertReleaseStrategy,
126
+ attachProvenanceToRelease,
127
+ attachSbomToRelease,
128
+ attachVulnerabilitySummary,
129
+ authorizeOrganization,
130
+ authorizeRuntimePath,
131
+ backupCredentialStatus,
132
+ beginOidcAuthorization,
133
+ buildComposeLogsCommand,
134
+ buildComposeRuntimeCommand,
135
+ buildComposeScaleCommand,
136
+ buildComposeShellCommand,
137
+ buildFunctionEnv,
138
+ bytes,
139
+ canonicalJson,
140
+ capabilities,
141
+ capacity,
142
+ cloneSourceBinding,
143
+ collectServerDnsDomains,
144
+ completeComposeVolumeDeletion,
145
+ completeOidcAuthorization,
146
+ composeProjectName,
147
+ compressBackup,
148
+ config,
149
+ connectionGuidance,
150
+ controlPlaneMigrations,
151
+ createApiV1Handler,
152
+ createAsgBuildDriver,
153
+ createBackupQueueHandlers,
154
+ createDataServiceQueueHandlers,
155
+ createDeploymentQueueHandlers,
156
+ createEcsBuildDriver,
157
+ createFleetQueueHandlers,
158
+ createJobQueueHandlers,
159
+ createMaintenanceQueueHandlers,
160
+ createRegionQueueHandlers,
161
+ createReleaseProvenance,
162
+ createReleaseQueueHandlers,
163
+ createRemoteBuildQueueHandlers,
164
+ createRuntimeAdapters,
165
+ createServerBuildDriver,
166
+ createSourceAdapter,
167
+ createVolumeQueueHandlers,
168
+ dashboardActions,
169
+ dataServiceCapabilities,
170
+ decodeBase32,
171
+ decompressBackup,
172
+ decryptBackup,
173
+ defaultConfig,
174
+ deployServerlessApp,
175
+ deploySite,
176
+ desiredState,
177
+ diffCompose,
178
+ discoverGitRefs,
179
+ discoverOidcProvider,
180
+ discoverRuntimeInventory,
181
+ dockerWorkloads,
182
+ documentDigest,
183
+ ecsWorkloads,
184
+ effectiveCapabilities,
185
+ encodeBase32,
186
+ encryptBackup,
187
+ ensureDefaultSecurityPolicies,
188
+ evaluateTelemetryAlertRules,
189
+ eventBridgeScheduleInput,
190
+ exportCompose,
191
+ formatScanResults,
192
+ generateCycloneDxSbom,
193
+ generateImageSbom,
194
+ getComposeTemplate,
195
+ getConfig,
196
+ hotp,
197
+ infraEnvFromOutputs,
198
+ isQuietHours,
199
+ jobProviderCapability,
200
+ lambdaWorkloads,
201
+ listComposeTemplates,
202
+ listSourceReferences,
203
+ loadCloudConfig,
204
+ loadTelemetryPolicy,
205
+ maintenanceWindowOpen,
206
+ manifestDigest,
207
+ matchTotpCounter,
208
+ nextScheduleRuns,
209
+ normalizeRuntimeStatus,
210
+ normalizeScheduleExpression,
211
+ normalizeSourceEvent,
212
+ normalizeTelemetryPolicy,
213
+ openApiDocument,
214
+ parseCompose,
215
+ parseComposeCatalog,
216
+ parseDockerInspect,
217
+ parseDotenv,
218
+ parseSystemdRecords,
219
+ pathTemplate,
220
+ planComposeTemplateUpgrade,
221
+ previewSchedule,
222
+ processSourceWebhook,
223
+ productionChangeReview,
224
+ publicKeyFingerprint,
225
+ reconcileJobObservation,
226
+ reconcileSourceWebhook,
227
+ recordDashboardHostPosture,
228
+ recordPreDeploySecretScan,
229
+ recordSkippedSecretScan,
230
+ redactRuntimeConfig,
231
+ redactTelemetryText,
232
+ redactTelemetryValue,
233
+ redeployServerlessApp,
234
+ releaseStrategyCapabilities,
235
+ releaseTrafficPlan,
236
+ removeSourceWebhook,
237
+ removeStaleServerAddressRecords,
238
+ renderComposeTemplate,
239
+ renderServerCron,
240
+ requestHash,
241
+ resolveAuthEncryptionKey,
242
+ resolveDashboardAction,
243
+ resolveQueuedDeploymentCommand,
244
+ resolveRuntimeInventory,
245
+ roleCapabilities,
246
+ rollbackImmutableRelease,
247
+ rollbackServerlessApp,
248
+ runRemoteCommand,
249
+ runtimeId,
250
+ sanitizeCloudConfig,
251
+ sanitizeControlPlaneValue,
252
+ sanitizeOidcReturnPath,
253
+ saveTelemetryPolicy,
254
+ scanForSecrets,
255
+ scopeContains,
256
+ searchControlPlane,
257
+ secureContainerRelease,
258
+ securityScope,
259
+ sendAuthenticationEmail,
260
+ serializeDotenv,
261
+ setMaintenance,
262
+ startLocalDashboardServer,
263
+ syncSourceRepositories,
264
+ synchronizeComposeVolumes,
265
+ synchronizeConfiguredConfiguration,
266
+ synchronizeConfiguredJobs,
267
+ systemdWorkloads,
268
+ telemetryBucketLabel,
269
+ telemetryCursor,
270
+ telemetryEstimatedMonthlyCost,
271
+ telemetryPercentile,
272
+ telemetryPolicyKey,
273
+ testSourceConnection,
274
+ totp,
275
+ totpUri,
276
+ unsupportedCapabilities,
277
+ unsupportedVolumeCapabilities,
278
+ updateCompatibility,
279
+ validateAttachment,
280
+ validateBackupDestination,
281
+ validateMountPath,
282
+ verifyArtifactSignature,
283
+ verifyTotp,
284
+ verifyUpdateSignature,
285
+ volumeCapabilities,
286
+ webhookEndpoint,
287
+ zeroCapacity
288
+ } from "./chunk-fw3q88wk.js";
289
+ import {
290
+ deleteStaticSite,
291
+ deployStaticSite,
292
+ deployStaticSiteFull,
293
+ deployStaticSiteWithExternalDns,
294
+ deployStaticSiteWithExternalDnsFull,
295
+ generateExternalDnsStaticSiteTemplate,
296
+ generateStaticSiteTemplate,
297
+ invalidateCache,
298
+ uploadStaticFiles
299
+ } from "./chunk-vvkd46k1.js";
300
+ import {
301
+ buildAndPushServerlessImage
302
+ } from "./chunk-exbcsab2.js";
1
303
  import {
2
304
  ApplicationAutoScalingClient,
3
305
  BedrockClient,
4
306
  BedrockRuntimeClient,
307
+ CloudWatchLogsClient,
5
308
  ComprehendClient,
6
309
  ConnectClient,
7
310
  DynamoDBClient,
8
311
  ECSClient,
312
+ EFSClient,
9
313
  ELBv2Client,
10
314
  ElastiCacheClient,
315
+ EventBridgeClient,
11
316
  KendraClient,
317
+ LambdaClient,
12
318
  OpenSearchClient,
13
319
  PersonalizeClient,
14
320
  PollyClient,
15
321
  RekognitionClient,
16
322
  Route53DomainsClient,
17
323
  SNSClient,
324
+ SQSClient,
18
325
  STSClient,
19
326
  SchedulerClient,
327
+ SecretsManagerClient,
20
328
  SmsClient,
21
329
  SupportClient,
22
330
  TextractClient,
@@ -29,49 +337,31 @@ import {
29
337
  providerEndpoint,
30
338
  remapKey,
31
339
  resolveObjectStorage
32
- } from "./chunk-3rsfns7x.js";
33
- import {
34
- RDSClient
35
- } from "./chunk-3knnr7wh.js";
36
- import {
37
- EmailClient,
38
- IAMClient,
39
- SESClient
40
- } from "./chunk-zn0nxxa8.js";
340
+ } from "./chunk-ybcz6sxc.js";
41
341
  import {
42
- buildFunctionEnv,
43
- collectServerDnsDomains,
44
- config,
45
- dashboardActions,
46
- defaultConfig,
47
- deployServerlessApp,
48
- deploySite,
49
- getConfig,
50
- infraEnvFromOutputs,
51
- loadCloudConfig,
52
- redeployServerlessApp,
53
- removeStaleServerAddressRecords,
54
- resolveDashboardAction,
55
- rollbackServerlessApp,
56
- runRemoteCommand,
57
- sanitizeCloudConfig,
58
- setMaintenance,
59
- startLocalDashboardServer
60
- } from "./chunk-b17vf1g1.js";
342
+ CloudFrontClient
343
+ } from "./chunk-01d86gt1.js";
61
344
  import {
62
- buildAndPushServerlessImage
63
- } from "./chunk-f29w04w5.js";
345
+ ECRClient
346
+ } from "./chunk-50jpda9q.js";
64
347
  import {
65
- CloudWatchLogsClient,
66
- EFSClient,
67
- EventBridgeClient,
68
- LambdaClient,
69
- SQSClient,
70
- SecretsManagerClient
71
- } from "./chunk-b82pbxyp.js";
348
+ RDSClient
349
+ } from "./chunk-he9a874b.js";
72
350
  import {
73
- ECRClient
74
- } from "./chunk-hsk6fe6x.js";
351
+ ACMClient,
352
+ ACMDnsValidator,
353
+ DnsProviderFactory,
354
+ GoDaddyProvider,
355
+ PorkbunProvider,
356
+ Route53Provider,
357
+ UnifiedDnsValidator,
358
+ createDnsProvider,
359
+ createGoDaddyValidator,
360
+ createPorkbunValidator,
361
+ createRoute53Validator,
362
+ detectDnsProvider,
363
+ dnsProviders
364
+ } from "./chunk-fv1bj3yt.js";
75
365
  import {
76
366
  AwsDriver,
77
367
  CloudDriverFactory,
@@ -108,7 +398,7 @@ import {
108
398
  waitForCloudInit,
109
399
  waitForSsh,
110
400
  wrapCloudInitUserData
111
- } from "./chunk-d5vqwj8s.js";
401
+ } from "./chunk-9m6b4m74.js";
112
402
  import {
113
403
  ABTestManager,
114
404
  AI,
@@ -279,6 +569,7 @@ import {
279
569
  createDashboardSite,
280
570
  createDataPipelinePreset,
281
571
  createError,
572
+ createExistingStaticFullStackPreset,
282
573
  createFullStackAppPreset,
283
574
  createHandlers,
284
575
  createHttpHandler,
@@ -514,55 +805,169 @@ import {
514
805
  withSecurity,
515
806
  withTimeout,
516
807
  xrayManager
517
- } from "./chunk-r16e02bc.js";
808
+ } from "./chunk-vdk53yyq.js";
518
809
  import {
519
810
  EC2Client,
520
811
  SSMClient
521
- } from "./chunk-93hjhs78.js";
522
- import {
523
- deleteStaticSite,
524
- deployStaticSite,
525
- deployStaticSiteFull,
526
- deployStaticSiteWithExternalDns,
527
- deployStaticSiteWithExternalDnsFull,
528
- generateExternalDnsStaticSiteTemplate,
529
- generateStaticSiteTemplate,
530
- invalidateCache,
531
- uploadStaticFiles
532
- } from "./chunk-jp2a8yad.js";
812
+ } from "./chunk-703nkybg.js";
533
813
  import {
534
- CloudFrontClient
535
- } from "./chunk-tjjgajbh.js";
814
+ CloudFormationClient
815
+ } from "./chunk-4cjrg98a.js";
536
816
  import {
537
- ACMClient,
538
- ACMDnsValidator,
539
- DnsProviderFactory,
540
- GoDaddyProvider,
541
- PorkbunProvider,
542
- Route53Provider,
543
- UnifiedDnsValidator,
544
- createDnsProvider,
545
- createGoDaddyValidator,
546
- createPorkbunValidator,
547
- createRoute53Validator,
548
- detectDnsProvider,
549
- dnsProviders
550
- } from "./chunk-3bfv1z4v.js";
817
+ EmailClient,
818
+ IAMClient,
819
+ SESClient
820
+ } from "./chunk-hpv68b4a.js";
551
821
  import {
552
822
  Route53Client
553
- } from "./chunk-tnztxpcb.js";
554
- import {
555
- CloudFormationClient
556
- } from "./chunk-qpj3edwz.js";
823
+ } from "./chunk-32e7ya18.js";
557
824
  import {
558
825
  S3Client
559
- } from "./chunk-vd87cpvn.js";
826
+ } from "./chunk-wj3s95p9.js";
560
827
  import {
561
828
  AWSClient
562
- } from "./chunk-arsh1g5h.js";
829
+ } from "./chunk-zqtpg06c.js";
563
830
  import {
564
831
  __require
565
832
  } from "./chunk-v0bahtg2.js";
833
+ // src/media.ts
834
+ import { createHmac, createSign, timingSafeEqual } from "node:crypto";
835
+ function epochSeconds(value) {
836
+ const milliseconds = value instanceof Date ? value.getTime() : value;
837
+ if (!Number.isFinite(milliseconds))
838
+ throw new TypeError("Media access timestamp must be finite");
839
+ return Math.floor(milliseconds / 1000);
840
+ }
841
+ function cloudFrontBase64(value) {
842
+ return Buffer.from(value).toString("base64").replaceAll("+", "-").replaceAll("=", "_").replaceAll("/", "~");
843
+ }
844
+ function regularBase64Url(value) {
845
+ return Buffer.from(value).toString("base64url");
846
+ }
847
+ function assertHttpResource(resource, allowWildcard = false) {
848
+ if (!resource || /[\r\n]/.test(resource))
849
+ throw new TypeError("Media resource is invalid");
850
+ const candidate = allowWildcard ? resource.replaceAll("*", "wildcard") : resource;
851
+ const url = new URL(candidate);
852
+ if (!["http:", "https:"].includes(url.protocol))
853
+ throw new TypeError("Media resource must use HTTP or HTTPS");
854
+ if (!allowWildcard && resource.includes("*"))
855
+ throw new TypeError("Canned policies cannot contain wildcards");
856
+ }
857
+ function signCloudFrontValue(value, privateKey) {
858
+ const signer = createSign("RSA-SHA1");
859
+ signer.update(value);
860
+ signer.end();
861
+ return cloudFrontBase64(signer.sign(privateKey));
862
+ }
863
+ function createCloudFrontPolicy(options) {
864
+ assertHttpResource(options.resource, true);
865
+ const expiresAt = epochSeconds(options.expiresAt);
866
+ const condition = {
867
+ DateLessThan: { "AWS:EpochTime": expiresAt }
868
+ };
869
+ if (options.activeAt !== undefined)
870
+ condition.DateGreaterThan = { "AWS:EpochTime": epochSeconds(options.activeAt) };
871
+ if (options.ipAddress)
872
+ condition.IpAddress = { "AWS:SourceIp": options.ipAddress };
873
+ return JSON.stringify({ Statement: [{ Resource: options.resource, Condition: condition }] });
874
+ }
875
+ function signCloudFrontUrl(resource, expiresAt, signer) {
876
+ assertHttpResource(resource);
877
+ const expires = epochSeconds(expiresAt);
878
+ const separator = resource.includes("?") ? "&" : "?";
879
+ const policy = createCloudFrontPolicy({ resource, expiresAt });
880
+ const signature = signCloudFrontValue(policy, signer.privateKey);
881
+ return `${resource}${separator}Expires=${expires}&Signature=${encodeURIComponent(signature)}&Key-Pair-Id=${encodeURIComponent(signer.keyPairId)}`;
882
+ }
883
+ function signCloudFrontCookies(policyOptions, signer) {
884
+ const policy = createCloudFrontPolicy(policyOptions);
885
+ return {
886
+ "CloudFront-Key-Pair-Id": signer.keyPairId,
887
+ "CloudFront-Policy": cloudFrontBase64(Buffer.from(policy)),
888
+ "CloudFront-Signature": signCloudFrontValue(policy, signer.privateKey)
889
+ };
890
+ }
891
+ function createMediaAccessToken(options) {
892
+ if (!options.resource || /[\r\n]/.test(options.resource))
893
+ throw new TypeError("Media resource is invalid");
894
+ const payload = regularBase64Url(Buffer.from(JSON.stringify({
895
+ resource: options.resource,
896
+ expiresAt: epochSeconds(options.expiresAt),
897
+ ...options.keyId ? { keyId: options.keyId } : {},
898
+ ...options.audience ? { audience: options.audience } : {}
899
+ })));
900
+ const signature = createHmac("sha256", options.secret).update(payload).digest("base64url");
901
+ return `${payload}.${signature}`;
902
+ }
903
+ function verifyMediaAccessToken(token, options) {
904
+ const [payload, signature, extra] = token.split(".");
905
+ if (!payload || !signature || extra)
906
+ return null;
907
+ const expected = createHmac("sha256", options.secret).update(payload).digest();
908
+ let actual;
909
+ try {
910
+ actual = Buffer.from(signature, "base64url");
911
+ } catch {
912
+ return null;
913
+ }
914
+ if (expected.length !== actual.length || !timingSafeEqual(expected, actual))
915
+ return null;
916
+ try {
917
+ const value = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
918
+ const now = epochSeconds(options.now ?? Date.now());
919
+ if (!value.resource || !Number.isSafeInteger(value.expiresAt) || value.expiresAt <= now)
920
+ return null;
921
+ if (options.resource && value.resource !== options.resource)
922
+ return null;
923
+ if (options.audience && value.audience !== options.audience)
924
+ return null;
925
+ return value;
926
+ } catch {
927
+ return null;
928
+ }
929
+ }
930
+ function mediaObjectHeaders(path, protectedMedia = false) {
931
+ const pathname = new URL(path, "https://media.invalid").pathname.toLowerCase();
932
+ const isManifest = /\.(?:m3u8|mpd|vtt|json)$/.test(pathname);
933
+ const isKey = /\.(?:key|license)$/.test(pathname) || pathname.includes("/keys/") || pathname.includes("/licenses/");
934
+ const cacheControl = protectedMedia && (isManifest || isKey) ? "private, no-store" : isManifest ? "public, max-age=5, s-maxage=30, stale-while-revalidate=30" : "public, max-age=31536000, immutable";
935
+ return {
936
+ "Accept-Ranges": "bytes",
937
+ "Cache-Control": cacheControl,
938
+ "Cross-Origin-Resource-Policy": "cross-origin",
939
+ "X-Content-Type-Options": "nosniff"
940
+ };
941
+ }
942
+ function buildMediaCdnPlan(options) {
943
+ if (!/^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/.test(options.bucket))
944
+ throw new TypeError("Media bucket is invalid");
945
+ if (!/^[a-z0-9-]+$/.test(options.region))
946
+ throw new TypeError("Media bucket region is invalid");
947
+ const prefix = options.prefix ? `/${options.prefix.replace(/^\/+|\/+$/g, "")}` : "";
948
+ const signed = options.protected ?? false;
949
+ const immutable = "public, max-age=31536000, immutable";
950
+ const manifests = signed ? "private, no-store" : "public, max-age=5, s-maxage=30, stale-while-revalidate=30";
951
+ return {
952
+ originDomain: `${options.bucket}.s3.${options.region}.amazonaws.com`,
953
+ originPath: prefix,
954
+ domain: options.domain,
955
+ trustedKeyGroupIds: [...new Set(options.trustedKeyGroupIds ?? [])],
956
+ behaviors: [
957
+ { pathPattern: "*.m3u8", cacheControl: manifests, compress: true, signed },
958
+ { pathPattern: "*.mpd", cacheControl: manifests, compress: true, signed },
959
+ { pathPattern: "*.vtt", cacheControl: manifests, compress: true, signed },
960
+ { pathPattern: "*", cacheControl: immutable, compress: false, signed }
961
+ ],
962
+ responseHeaders: {
963
+ "Access-Control-Allow-Headers": "Range, If-Range",
964
+ "Access-Control-Allow-Methods": "GET, HEAD, OPTIONS",
965
+ "Access-Control-Allow-Origin": "*",
966
+ "Access-Control-Expose-Headers": "Accept-Ranges, Content-Length, Content-Range, ETag",
967
+ "X-Content-Type-Options": "nosniff"
968
+ }
969
+ };
970
+ }
566
971
  // src/generators/infrastructure.ts
567
972
  class InfrastructureGenerator {
568
973
  builder;
@@ -687,11 +1092,7 @@ class InfrastructureGenerator {
687
1092
  const serverRegion = this.mergedConfig.infrastructure?.servers?.app?.region || this.mergedConfig.project?.region || "us-east-1";
688
1093
  const dnsSuffix = serverRegion === "us-east-1" ? ".compute-1.amazonaws.com" : `.${serverRegion}.compute.amazonaws.com`;
689
1094
  const originDomainName = {
690
- "Fn::Join": ["", [
691
- "ec2-",
692
- { "Fn::Join": ["-", { "Fn::Split": [".", { Ref: appEipId }] }] },
693
- dnsSuffix
694
- ]]
1095
+ "Fn::Join": ["", ["ec2-", { "Fn::Join": ["-", { "Fn::Split": [".", { Ref: appEipId }] }] }, dnsSuffix]]
695
1096
  };
696
1097
  const apiOriginPort = this.resolveApiOriginPort();
697
1098
  origins.push({
@@ -907,9 +1308,7 @@ ${handles.join(`
907
1308
  Type: "AWS::ECS::Cluster",
908
1309
  Properties: {
909
1310
  ClusterName: `${slug}-${env}`,
910
- ClusterSettings: [
911
- { Name: "containerInsights", Value: "enabled" }
912
- ],
1311
+ ClusterSettings: [{ Name: "containerInsights", Value: "enabled" }],
913
1312
  Tags: [
914
1313
  { Key: "Name", Value: `${slug}-${env}` },
915
1314
  { Key: "Environment", Value: env }
@@ -926,9 +1325,7 @@ ${handles.join(`
926
1325
  { IpProtocol: "tcp", FromPort: 80, ToPort: 80, CidrIp: "0.0.0.0/0", Description: "HTTP" },
927
1326
  { IpProtocol: "tcp", FromPort: 443, ToPort: 443, CidrIp: "0.0.0.0/0", Description: "HTTPS" }
928
1327
  ],
929
- SecurityGroupEgress: [
930
- { IpProtocol: "-1", CidrIp: "0.0.0.0/0", Description: "Allow all outbound" }
931
- ],
1328
+ SecurityGroupEgress: [{ IpProtocol: "-1", CidrIp: "0.0.0.0/0", Description: "Allow all outbound" }],
932
1329
  Tags: [
933
1330
  { Key: "Name", Value: `${slug}-${env}-alb-sg` },
934
1331
  { Key: "Environment", Value: env }
@@ -952,9 +1349,7 @@ ${handles.join(`
952
1349
  Description: "Allow traffic from ALB"
953
1350
  }
954
1351
  ],
955
- SecurityGroupEgress: [
956
- { IpProtocol: "-1", CidrIp: "0.0.0.0/0", Description: "Allow all outbound" }
957
- ],
1352
+ SecurityGroupEgress: [{ IpProtocol: "-1", CidrIp: "0.0.0.0/0", Description: "Allow all outbound" }],
958
1353
  Tags: [
959
1354
  { Key: "Name", Value: `${slug}-${env}-ecs-sg` },
960
1355
  { Key: "Environment", Value: env }
@@ -968,33 +1363,37 @@ ${handles.join(`
968
1363
  RoleName: `${slug}-${env}-ecs-exec-role`,
969
1364
  AssumeRolePolicyDocument: {
970
1365
  Version: "2012-10-17",
971
- Statement: [{
972
- Effect: "Allow",
973
- Principal: { Service: "ecs-tasks.amazonaws.com" },
974
- Action: "sts:AssumeRole"
975
- }]
976
- },
977
- ManagedPolicyArns: [
978
- "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
979
- ],
980
- Policies: [{
981
- PolicyName: "ECRPullPolicy",
982
- PolicyDocument: {
983
- Version: "2012-10-17",
984
- Statement: [{
1366
+ Statement: [
1367
+ {
985
1368
  Effect: "Allow",
986
- Action: [
987
- "ecr:GetAuthorizationToken",
988
- "ecr:BatchCheckLayerAvailability",
989
- "ecr:GetDownloadUrlForLayer",
990
- "ecr:BatchGetImage",
991
- "logs:CreateLogStream",
992
- "logs:PutLogEvents"
993
- ],
994
- Resource: "*"
995
- }]
1369
+ Principal: { Service: "ecs-tasks.amazonaws.com" },
1370
+ Action: "sts:AssumeRole"
1371
+ }
1372
+ ]
1373
+ },
1374
+ ManagedPolicyArns: ["arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"],
1375
+ Policies: [
1376
+ {
1377
+ PolicyName: "ECRPullPolicy",
1378
+ PolicyDocument: {
1379
+ Version: "2012-10-17",
1380
+ Statement: [
1381
+ {
1382
+ Effect: "Allow",
1383
+ Action: [
1384
+ "ecr:GetAuthorizationToken",
1385
+ "ecr:BatchCheckLayerAvailability",
1386
+ "ecr:GetDownloadUrlForLayer",
1387
+ "ecr:BatchGetImage",
1388
+ "logs:CreateLogStream",
1389
+ "logs:PutLogEvents"
1390
+ ],
1391
+ Resource: "*"
1392
+ }
1393
+ ]
1394
+ }
996
1395
  }
997
- }]
1396
+ ]
998
1397
  }
999
1398
  });
1000
1399
  const taskRoleId = `${slug}${env}TaskRole`.replace(/[^a-zA-Z0-9]/g, "");
@@ -1004,37 +1403,34 @@ ${handles.join(`
1004
1403
  RoleName: `${slug}-${env}-ecs-task-role`,
1005
1404
  AssumeRolePolicyDocument: {
1006
1405
  Version: "2012-10-17",
1007
- Statement: [{
1008
- Effect: "Allow",
1009
- Principal: { Service: "ecs-tasks.amazonaws.com" },
1010
- Action: "sts:AssumeRole"
1011
- }]
1406
+ Statement: [
1407
+ {
1408
+ Effect: "Allow",
1409
+ Principal: { Service: "ecs-tasks.amazonaws.com" },
1410
+ Action: "sts:AssumeRole"
1411
+ }
1412
+ ]
1012
1413
  },
1013
- Policies: [{
1014
- PolicyName: "TaskPolicy",
1015
- PolicyDocument: {
1016
- Version: "2012-10-17",
1017
- Statement: [
1018
- {
1019
- Effect: "Allow",
1020
- Action: [
1021
- "logs:CreateLogStream",
1022
- "logs:PutLogEvents"
1023
- ],
1024
- Resource: "*"
1025
- },
1026
- {
1027
- Effect: "Allow",
1028
- Action: [
1029
- "s3:GetObject",
1030
- "s3:PutObject",
1031
- "s3:ListBucket"
1032
- ],
1033
- Resource: "*"
1034
- }
1035
- ]
1414
+ Policies: [
1415
+ {
1416
+ PolicyName: "TaskPolicy",
1417
+ PolicyDocument: {
1418
+ Version: "2012-10-17",
1419
+ Statement: [
1420
+ {
1421
+ Effect: "Allow",
1422
+ Action: ["logs:CreateLogStream", "logs:PutLogEvents"],
1423
+ Resource: "*"
1424
+ },
1425
+ {
1426
+ Effect: "Allow",
1427
+ Action: ["s3:GetObject", "s3:PutObject", "s3:ListBucket"],
1428
+ Resource: "*"
1429
+ }
1430
+ ]
1431
+ }
1036
1432
  }
1037
- }]
1433
+ ]
1038
1434
  }
1039
1435
  });
1040
1436
  const logGroupId = `${slug}${env}${name}LogGroup`.replace(/[^a-zA-Z0-9]/g, "");
@@ -1059,30 +1455,37 @@ ${handles.join(`
1059
1455
  Memory: memory,
1060
1456
  ExecutionRoleArn: { "Fn::GetAtt": [execRoleId, "Arn"] },
1061
1457
  TaskRoleArn: { "Fn::GetAtt": [taskRoleId, "Arn"] },
1062
- ContainerDefinitions: [{
1063
- Name: name,
1064
- Image: { "Fn::Sub": `\${AWS::AccountId}.dkr.ecr.\${AWS::Region}.amazonaws.com/${slug}:latest` },
1065
- Essential: true,
1066
- PortMappings: [{
1067
- ContainerPort: port,
1068
- Protocol: "tcp"
1069
- }],
1070
- LogConfiguration: {
1071
- LogDriver: "awslogs",
1072
- Options: {
1073
- "awslogs-group": logGroupName,
1074
- "awslogs-region": { Ref: "AWS::Region" },
1075
- "awslogs-stream-prefix": name
1458
+ ContainerDefinitions: [
1459
+ {
1460
+ Name: name,
1461
+ Image: { "Fn::Sub": `\${AWS::AccountId}.dkr.ecr.\${AWS::Region}.amazonaws.com/${slug}:latest` },
1462
+ Essential: true,
1463
+ PortMappings: [
1464
+ {
1465
+ ContainerPort: port,
1466
+ Protocol: "tcp"
1467
+ }
1468
+ ],
1469
+ LogConfiguration: {
1470
+ LogDriver: "awslogs",
1471
+ Options: {
1472
+ "awslogs-group": logGroupName,
1473
+ "awslogs-region": { Ref: "AWS::Region" },
1474
+ "awslogs-stream-prefix": name
1475
+ }
1476
+ },
1477
+ HealthCheck: {
1478
+ Command: [
1479
+ "CMD-SHELL",
1480
+ `curl -f http://localhost:${port}${containerConfig.healthCheck || "/health"} || exit 1`
1481
+ ],
1482
+ Interval: 30,
1483
+ Timeout: 5,
1484
+ Retries: 3,
1485
+ StartPeriod: 60
1076
1486
  }
1077
- },
1078
- HealthCheck: {
1079
- Command: ["CMD-SHELL", `curl -f http://localhost:${port}${containerConfig.healthCheck || "/health"} || exit 1`],
1080
- Interval: 30,
1081
- Timeout: 5,
1082
- Retries: 3,
1083
- StartPeriod: 60
1084
1487
  }
1085
- }],
1488
+ ],
1086
1489
  Tags: [
1087
1490
  { Key: "Name", Value: `${slug}-${env}-${name}` },
1088
1491
  { Key: "Environment", Value: env }
@@ -1135,14 +1538,16 @@ ${handles.join(`
1135
1538
  LoadBalancerArn: { Ref: albId },
1136
1539
  Port: 80,
1137
1540
  Protocol: "HTTP",
1138
- DefaultActions: [{
1139
- Type: "redirect",
1140
- RedirectConfig: {
1141
- Protocol: "HTTPS",
1142
- Port: "443",
1143
- StatusCode: "HTTP_301"
1541
+ DefaultActions: [
1542
+ {
1543
+ Type: "redirect",
1544
+ RedirectConfig: {
1545
+ Protocol: "HTTPS",
1546
+ Port: "443",
1547
+ StatusCode: "HTTP_301"
1548
+ }
1144
1549
  }
1145
- }]
1550
+ ]
1146
1551
  }
1147
1552
  });
1148
1553
  } else {
@@ -1152,10 +1557,12 @@ ${handles.join(`
1152
1557
  LoadBalancerArn: { Ref: albId },
1153
1558
  Port: 80,
1154
1559
  Protocol: "HTTP",
1155
- DefaultActions: [{
1156
- Type: "forward",
1157
- TargetGroupArn: { Ref: tgId }
1158
- }]
1560
+ DefaultActions: [
1561
+ {
1562
+ Type: "forward",
1563
+ TargetGroupArn: { Ref: tgId }
1564
+ }
1565
+ ]
1159
1566
  }
1160
1567
  });
1161
1568
  }
@@ -1170,10 +1577,12 @@ ${handles.join(`
1170
1577
  Port: 443,
1171
1578
  Protocol: "HTTPS",
1172
1579
  Certificates: [{ CertificateArn: certArn }],
1173
- DefaultActions: [{
1174
- Type: "forward",
1175
- TargetGroupArn: { Ref: tgId }
1176
- }],
1580
+ DefaultActions: [
1581
+ {
1582
+ Type: "forward",
1583
+ TargetGroupArn: { Ref: tgId }
1584
+ }
1585
+ ],
1177
1586
  SslPolicy: "ELBSecurityPolicy-TLS13-1-2-2021-06"
1178
1587
  }
1179
1588
  });
@@ -1196,11 +1605,13 @@ ${handles.join(`
1196
1605
  Subnets: [{ Ref: "PublicSubnet1" }, { Ref: "PublicSubnet2" }]
1197
1606
  }
1198
1607
  },
1199
- LoadBalancers: [{
1200
- ContainerName: name,
1201
- ContainerPort: port,
1202
- TargetGroupArn: { Ref: tgId }
1203
- }],
1608
+ LoadBalancers: [
1609
+ {
1610
+ ContainerName: name,
1611
+ ContainerPort: port,
1612
+ TargetGroupArn: { Ref: tgId }
1613
+ }
1614
+ ],
1204
1615
  HealthCheckGracePeriodSeconds: 120,
1205
1616
  Tags: [
1206
1617
  { Key: "Name", Value: `${slug}-${env}-${name}` },
@@ -1220,7 +1631,9 @@ ${handles.join(`
1220
1631
  ResourceId: { "Fn::Sub": `service/\${${clusterLogicalId}}/${slug}-${env}-${name}` },
1221
1632
  ScalableDimension: "ecs:service:DesiredCount",
1222
1633
  ServiceNamespace: "ecs",
1223
- RoleARN: { "Fn::Sub": "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService" }
1634
+ RoleARN: {
1635
+ "Fn::Sub": "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService"
1636
+ }
1224
1637
  },
1225
1638
  DependsOn: serviceId
1226
1639
  });
@@ -1329,9 +1742,7 @@ ${handles.join(`
1329
1742
  environment: env,
1330
1743
  roleName: `${slug}-${env}-${name}-role`,
1331
1744
  servicePrincipal: "lambda.amazonaws.com",
1332
- managedPolicyArns: [
1333
- "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
1334
- ]
1745
+ managedPolicyArns: ["arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]
1335
1746
  });
1336
1747
  this.builder.addResource(roleLogicalId, role);
1337
1748
  const { lambdaFunction, logicalId } = Compute.createLambdaFunction({
@@ -1461,12 +1872,14 @@ ${handles.join(`
1461
1872
  RestrictPublicBuckets: true
1462
1873
  },
1463
1874
  LifecycleConfiguration: {
1464
- Rules: [{
1465
- Id: "expire-old-releases",
1466
- Status: "Enabled",
1467
- ExpirationInDays: 7,
1468
- Prefix: "releases/"
1469
- }]
1875
+ Rules: [
1876
+ {
1877
+ Id: "expire-old-releases",
1878
+ Status: "Enabled",
1879
+ ExpirationInDays: 7,
1880
+ Prefix: "releases/"
1881
+ }
1882
+ ]
1470
1883
  },
1471
1884
  Tags: [
1472
1885
  { Key: "Project", Value: slug },
@@ -1486,13 +1899,7 @@ ${handles.join(`
1486
1899
  userData,
1487
1900
  volumeSize: compute.disk?.size || 20,
1488
1901
  imageId: compute.image,
1489
- allowedPorts: [
1490
- ...compute.allowSsh ? [22] : [],
1491
- 80,
1492
- 443,
1493
- apiOriginPort,
1494
- ...sitePorts
1495
- ]
1902
+ allowedPorts: [...compute.allowSsh ? [22] : [], 80, 443, apiOriginPort, ...sitePorts]
1496
1903
  });
1497
1904
  const instance = stack.resources[stack.outputs.instanceLogicalId];
1498
1905
  if (instance?.Properties) {
@@ -1512,14 +1919,13 @@ ${handles.join(`
1512
1919
  PolicyName: "DeployBucketRead",
1513
1920
  PolicyDocument: {
1514
1921
  Version: "2012-10-17",
1515
- Statement: [{
1516
- Effect: "Allow",
1517
- Action: ["s3:GetObject", "s3:ListBucket"],
1518
- Resource: [
1519
- `arn:aws:s3:::${deployBucketName}`,
1520
- `arn:aws:s3:::${deployBucketName}/*`
1521
- ]
1522
- }]
1922
+ Statement: [
1923
+ {
1924
+ Effect: "Allow",
1925
+ Action: ["s3:GetObject", "s3:ListBucket"],
1926
+ Resource: [`arn:aws:s3:::${deployBucketName}`, `arn:aws:s3:::${deployBucketName}/*`]
1927
+ }
1928
+ ]
1523
1929
  }
1524
1930
  });
1525
1931
  }
@@ -1735,15 +2141,17 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
1735
2141
  }
1736
2142
  });
1737
2143
  }
1738
- const origins = [{
1739
- Id: originId,
1740
- DomainName: { "Fn::Sub": `\${${logicalId}}.s3.${region}.amazonaws.com` },
1741
- OriginPath: "",
1742
- S3OriginConfig: {
1743
- OriginAccessIdentity: ""
1744
- },
1745
- OriginAccessControlId: { Ref: sharedOacLogicalId }
1746
- }];
2144
+ const origins = [
2145
+ {
2146
+ Id: originId,
2147
+ DomainName: { "Fn::Sub": `\${${logicalId}}.s3.${region}.amazonaws.com` },
2148
+ OriginPath: "",
2149
+ S3OriginConfig: {
2150
+ OriginAccessIdentity: ""
2151
+ },
2152
+ OriginAccessControlId: { Ref: sharedOacLogicalId }
2153
+ }
2154
+ ];
1747
2155
  const cacheBehaviors = [];
1748
2156
  const extraDependsOn = [];
1749
2157
  if (this.shouldRouteStorageBucketToCompute(name, storageConfig)) {
@@ -1782,17 +2190,24 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
1782
2190
  CachedMethods: ["GET", "HEAD", "OPTIONS"],
1783
2191
  Compress: true,
1784
2192
  CachePolicyId: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
1785
- FunctionAssociations: [{
1786
- EventType: "viewer-request",
1787
- FunctionARN: { "Fn::GetAtt": [mountedFunctionLogicalId, "FunctionARN"] }
1788
- }]
2193
+ FunctionAssociations: [
2194
+ {
2195
+ EventType: "viewer-request",
2196
+ FunctionARN: { "Fn::GetAtt": [mountedFunctionLogicalId, "FunctionARN"] }
2197
+ }
2198
+ ]
1789
2199
  });
1790
2200
  }
1791
2201
  }
1792
2202
  }
1793
2203
  const distribution = {
1794
2204
  Type: "AWS::CloudFront::Distribution",
1795
- DependsOn: [logicalId, sharedOacLogicalId, ...cfFunctionLogicalId ? [cfFunctionLogicalId] : [], ...extraDependsOn],
2205
+ DependsOn: [
2206
+ logicalId,
2207
+ sharedOacLogicalId,
2208
+ ...cfFunctionLogicalId ? [cfFunctionLogicalId] : [],
2209
+ ...extraDependsOn
2210
+ ],
1796
2211
  Properties: {
1797
2212
  DistributionConfig: {
1798
2213
  Enabled: true,
@@ -1807,10 +2222,12 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
1807
2222
  Compress: true,
1808
2223
  CachePolicyId: "658327ea-f89d-4fab-a63d-7e88639e58f6",
1809
2224
  ...cfFunctionLogicalId ? {
1810
- FunctionAssociations: [{
1811
- EventType: "viewer-request",
1812
- FunctionARN: { "Fn::GetAtt": [cfFunctionLogicalId, "FunctionARN"] }
1813
- }]
2225
+ FunctionAssociations: [
2226
+ {
2227
+ EventType: "viewer-request",
2228
+ FunctionARN: { "Fn::GetAtt": [cfFunctionLogicalId, "FunctionARN"] }
2229
+ }
2230
+ ]
1814
2231
  } : {}
1815
2232
  },
1816
2233
  ...cacheBehaviors.length > 0 ? { CacheBehaviors: cacheBehaviors } : {},
@@ -1835,20 +2252,24 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
1835
2252
  Bucket: { Ref: logicalId },
1836
2253
  PolicyDocument: {
1837
2254
  Version: "2012-10-17",
1838
- Statement: [{
1839
- Sid: "AllowCloudFrontServicePrincipal",
1840
- Effect: "Allow",
1841
- Principal: {
1842
- Service: "cloudfront.amazonaws.com"
1843
- },
1844
- Action: "s3:GetObject",
1845
- Resource: { "Fn::Sub": `arn:aws:s3:::\${${logicalId}}/*` },
1846
- Condition: {
1847
- StringEquals: {
1848
- "AWS:SourceArn": { "Fn::Sub": `arn:aws:cloudfront::\${AWS::AccountId}:distribution/\${${distLogicalId}}` }
2255
+ Statement: [
2256
+ {
2257
+ Sid: "AllowCloudFrontServicePrincipal",
2258
+ Effect: "Allow",
2259
+ Principal: {
2260
+ Service: "cloudfront.amazonaws.com"
2261
+ },
2262
+ Action: "s3:GetObject",
2263
+ Resource: { "Fn::Sub": `arn:aws:s3:::\${${logicalId}}/*` },
2264
+ Condition: {
2265
+ StringEquals: {
2266
+ "AWS:SourceArn": {
2267
+ "Fn::Sub": `arn:aws:cloudfront::\${AWS::AccountId}:distribution/\${${distLogicalId}}`
2268
+ }
2269
+ }
1849
2270
  }
1850
2271
  }
1851
- }]
2272
+ ]
1852
2273
  }
1853
2274
  }
1854
2275
  });
@@ -1862,20 +2283,24 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
1862
2283
  Bucket: { Ref: mountedBucket.logicalId },
1863
2284
  PolicyDocument: {
1864
2285
  Version: "2012-10-17",
1865
- Statement: [{
1866
- Sid: "AllowCloudFrontServicePrincipal",
1867
- Effect: "Allow",
1868
- Principal: {
1869
- Service: "cloudfront.amazonaws.com"
1870
- },
1871
- Action: "s3:GetObject",
1872
- Resource: { "Fn::Sub": `arn:aws:s3:::\${${mountedBucket.logicalId}}/*` },
1873
- Condition: {
1874
- StringEquals: {
1875
- "AWS:SourceArn": { "Fn::Sub": `arn:aws:cloudfront::\${AWS::AccountId}:distribution/\${${distLogicalId}}` }
2286
+ Statement: [
2287
+ {
2288
+ Sid: "AllowCloudFrontServicePrincipal",
2289
+ Effect: "Allow",
2290
+ Principal: {
2291
+ Service: "cloudfront.amazonaws.com"
2292
+ },
2293
+ Action: "s3:GetObject",
2294
+ Resource: { "Fn::Sub": `arn:aws:s3:::\${${mountedBucket.logicalId}}/*` },
2295
+ Condition: {
2296
+ StringEquals: {
2297
+ "AWS:SourceArn": {
2298
+ "Fn::Sub": `arn:aws:cloudfront::\${AWS::AccountId}:distribution/\${${distLogicalId}}`
2299
+ }
2300
+ }
1876
2301
  }
1877
2302
  }
1878
- }]
2303
+ ]
1879
2304
  }
1880
2305
  }
1881
2306
  });
@@ -2021,18 +2446,20 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2021
2446
  const resolvedCertArn = explicitCertificateArn || cfCertificateArn;
2022
2447
  const distLogicalId = `${slug}${env}${name}CDN`.replace(/[^a-zA-Z0-9]/g, "");
2023
2448
  const originId = `S3-${slug}-${env}-${name}-cdn`;
2024
- const origins = [{
2025
- Id: originId,
2026
- DomainName: cdnConfig.origin,
2027
- OriginPath: "",
2028
- S3OriginConfig: {
2029
- OriginAccessIdentity: ""
2030
- },
2031
- OriginShield: cdnConfig.originShield ? {
2032
- Enabled: true,
2033
- OriginShieldRegion: cdnConfig.originShieldRegion || this.mergedConfig.environments[env]?.region || this.mergedConfig.project.region || "us-east-1"
2034
- } : { Enabled: false }
2035
- }];
2449
+ const origins = [
2450
+ {
2451
+ Id: originId,
2452
+ DomainName: cdnConfig.origin,
2453
+ OriginPath: "",
2454
+ S3OriginConfig: {
2455
+ OriginAccessIdentity: ""
2456
+ },
2457
+ OriginShield: cdnConfig.originShield ? {
2458
+ Enabled: true,
2459
+ OriginShieldRegion: cdnConfig.originShieldRegion || this.mergedConfig.environments[env]?.region || this.mergedConfig.project.region || "us-east-1"
2460
+ } : { Enabled: false }
2461
+ }
2462
+ ];
2036
2463
  const cacheBehaviors = [];
2037
2464
  const extraDependsOn = [];
2038
2465
  if (cdnConfig.routeCompute) {
@@ -2077,7 +2504,10 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2077
2504
  const safeName = customDomain.replace(/\./g, "").replace(/[^a-zA-Z0-9]/g, "");
2078
2505
  this.builder.addResource(`${safeName}CdnARecord`, {
2079
2506
  Type: "AWS::Route53::RecordSet",
2080
- DependsOn: [distLogicalId, ...cfCertificateLogicalId && !explicitCertificateArn ? [cfCertificateLogicalId] : []],
2507
+ DependsOn: [
2508
+ distLogicalId,
2509
+ ...cfCertificateLogicalId && !explicitCertificateArn ? [cfCertificateLogicalId] : []
2510
+ ],
2081
2511
  Properties: {
2082
2512
  HostedZoneId: hostedZoneId,
2083
2513
  Name: customDomain,
@@ -2113,11 +2543,7 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2113
2543
  this.builder.addResource(logicalId, queue);
2114
2544
  let dlqLogicalId;
2115
2545
  if (queueConfig.deadLetterQueue) {
2116
- const {
2117
- deadLetterQueue,
2118
- updatedSourceQueue,
2119
- deadLetterLogicalId
2120
- } = Queue.createDeadLetterQueue(logicalId, {
2546
+ const { deadLetterQueue, updatedSourceQueue, deadLetterLogicalId } = Queue.createDeadLetterQueue(logicalId, {
2121
2547
  slug,
2122
2548
  environment: env,
2123
2549
  maxReceiveCount: queueConfig.maxReceiveCount
@@ -2249,15 +2675,17 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2249
2675
  Queues: [{ Ref: logicalId }],
2250
2676
  PolicyDocument: {
2251
2677
  Version: "2012-10-17",
2252
- Statement: [{
2253
- Effect: "Allow",
2254
- Principal: { Service: "sns.amazonaws.com" },
2255
- Action: "sqs:SendMessage",
2256
- Resource: { "Fn::GetAtt": [logicalId, "Arn"] },
2257
- Condition: {
2258
- ArnEquals: { "aws:SourceArn": topicArn }
2678
+ Statement: [
2679
+ {
2680
+ Effect: "Allow",
2681
+ Principal: { Service: "sns.amazonaws.com" },
2682
+ Action: "sqs:SendMessage",
2683
+ Resource: { "Fn::GetAtt": [logicalId, "Arn"] },
2684
+ Condition: {
2685
+ ArnEquals: { "aws:SourceArn": topicArn }
2686
+ }
2259
2687
  }
2260
- }]
2688
+ ]
2261
2689
  }
2262
2690
  }
2263
2691
  });
@@ -2349,10 +2777,7 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2349
2777
  transitEncryption: true,
2350
2778
  snapshotRetentionDays: redisConfig.snapshotRetentionLimit || 7,
2351
2779
  snapshotWindow: redisConfig.snapshotWindow,
2352
- subnetIds: [
2353
- { Ref: "PublicSubnet1" },
2354
- { Ref: "PublicSubnet2" }
2355
- ]
2780
+ subnetIds: [{ Ref: "PublicSubnet1" }, { Ref: "PublicSubnet2" }]
2356
2781
  });
2357
2782
  this.builder.addResource(logicalId, replicationGroup);
2358
2783
  if (subnetGroup && subnetGroupId) {
@@ -2375,10 +2800,7 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2375
2800
  nodeType: mcConfig.nodeType || cacheConfig.nodeType || "cache.t3.micro",
2376
2801
  engineVersion: mcConfig.engineVersion || "1.6.22",
2377
2802
  numCacheNodes: mcConfig.numCacheNodes || 2,
2378
- subnetIds: [
2379
- { Ref: "PublicSubnet1" },
2380
- { Ref: "PublicSubnet2" }
2381
- ]
2803
+ subnetIds: [{ Ref: "PublicSubnet1" }, { Ref: "PublicSubnet2" }]
2382
2804
  });
2383
2805
  this.builder.addResource(logicalId, cluster);
2384
2806
  if (subnetGroup && subnetGroupId) {
@@ -2571,10 +2993,7 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2571
2993
  const { mountTargets, logicalIds: mtLogicalIds } = FileSystem.createMultiAzMountTargets(fsLogicalId, {
2572
2994
  slug: `${slug}-${name}`,
2573
2995
  environment: env,
2574
- subnetIds: [
2575
- { Ref: "PublicSubnet1" },
2576
- { Ref: "PublicSubnet2" }
2577
- ],
2996
+ subnetIds: [{ Ref: "PublicSubnet1" }, { Ref: "PublicSubnet2" }],
2578
2997
  securityGroupId: { Ref: sgLogicalId }
2579
2998
  });
2580
2999
  for (let i = 0;i < mountTargets.length; i++) {
@@ -2661,15 +3080,11 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2661
3080
  { AttributeName: "connectionId", AttributeType: "S" },
2662
3081
  { AttributeName: "userId", AttributeType: "S" }
2663
3082
  ],
2664
- KeySchema: [
2665
- { AttributeName: "connectionId", KeyType: "HASH" }
2666
- ],
3083
+ KeySchema: [{ AttributeName: "connectionId", KeyType: "HASH" }],
2667
3084
  GlobalSecondaryIndexes: [
2668
3085
  {
2669
3086
  IndexName: "userId-index",
2670
- KeySchema: [
2671
- { AttributeName: "userId", KeyType: "HASH" }
2672
- ],
3087
+ KeySchema: [{ AttributeName: "userId", KeyType: "HASH" }],
2673
3088
  Projection: { ProjectionType: "ALL" },
2674
3089
  ...billingMode === "PROVISIONED" && {
2675
3090
  ProvisionedThroughput: {
@@ -2714,9 +3129,7 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2714
3129
  GlobalSecondaryIndexes: [
2715
3130
  {
2716
3131
  IndexName: "connectionId-index",
2717
- KeySchema: [
2718
- { AttributeName: "connectionId", KeyType: "HASH" }
2719
- ],
3132
+ KeySchema: [{ AttributeName: "connectionId", KeyType: "HASH" }],
2720
3133
  Projection: { ProjectionType: "ALL" },
2721
3134
  ...billingMode === "PROVISIONED" && {
2722
3135
  ProvisionedThroughput: {
@@ -2750,45 +3163,47 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2750
3163
  RoleName: `${slug}-${env}-realtime-handler-role`,
2751
3164
  AssumeRolePolicyDocument: {
2752
3165
  Version: "2012-10-17",
2753
- Statement: [{
2754
- Effect: "Allow",
2755
- Principal: { Service: "lambda.amazonaws.com" },
2756
- Action: "sts:AssumeRole"
2757
- }]
3166
+ Statement: [
3167
+ {
3168
+ Effect: "Allow",
3169
+ Principal: { Service: "lambda.amazonaws.com" },
3170
+ Action: "sts:AssumeRole"
3171
+ }
3172
+ ]
2758
3173
  },
2759
- ManagedPolicyArns: [
2760
- "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
2761
- ],
2762
- Policies: [{
2763
- PolicyName: "RealtimeHandlerPolicy",
2764
- PolicyDocument: {
2765
- Version: "2012-10-17",
2766
- Statement: [
2767
- {
2768
- Effect: "Allow",
2769
- Action: [
2770
- "dynamodb:GetItem",
2771
- "dynamodb:PutItem",
2772
- "dynamodb:DeleteItem",
2773
- "dynamodb:Query",
2774
- "dynamodb:Scan",
2775
- "dynamodb:UpdateItem"
2776
- ],
2777
- Resource: [
2778
- { "Fn::GetAtt": [connectionsTableId, "Arn"] },
2779
- { "Fn::Sub": `\${${connectionsTableId}.Arn}/index/*` },
2780
- { "Fn::GetAtt": [channelsTableId, "Arn"] },
2781
- { "Fn::Sub": `\${${channelsTableId}.Arn}/index/*` }
2782
- ]
2783
- },
2784
- {
2785
- Effect: "Allow",
2786
- Action: "execute-api:ManageConnections",
2787
- Resource: { "Fn::Sub": "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:*/*" }
2788
- }
2789
- ]
3174
+ ManagedPolicyArns: ["arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"],
3175
+ Policies: [
3176
+ {
3177
+ PolicyName: "RealtimeHandlerPolicy",
3178
+ PolicyDocument: {
3179
+ Version: "2012-10-17",
3180
+ Statement: [
3181
+ {
3182
+ Effect: "Allow",
3183
+ Action: [
3184
+ "dynamodb:GetItem",
3185
+ "dynamodb:PutItem",
3186
+ "dynamodb:DeleteItem",
3187
+ "dynamodb:Query",
3188
+ "dynamodb:Scan",
3189
+ "dynamodb:UpdateItem"
3190
+ ],
3191
+ Resource: [
3192
+ { "Fn::GetAtt": [connectionsTableId, "Arn"] },
3193
+ { "Fn::Sub": `\${${connectionsTableId}.Arn}/index/*` },
3194
+ { "Fn::GetAtt": [channelsTableId, "Arn"] },
3195
+ { "Fn::Sub": `\${${channelsTableId}.Arn}/index/*` }
3196
+ ]
3197
+ },
3198
+ {
3199
+ Effect: "Allow",
3200
+ Action: "execute-api:ManageConnections",
3201
+ Resource: { "Fn::Sub": "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:*/*" }
3202
+ }
3203
+ ]
3204
+ }
2790
3205
  }
2791
- }]
3206
+ ]
2792
3207
  }
2793
3208
  });
2794
3209
  const connectHandlerId = `${slug}${env}RealtimeConnect`.replace(/[^a-zA-Z0-9]/g, "");
@@ -2911,7 +3326,9 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2911
3326
  Properties: {
2912
3327
  ApiId: { Ref: apiId },
2913
3328
  IntegrationType: "AWS_PROXY",
2914
- IntegrationUri: { "Fn::Sub": `arn:aws:apigateway:\${AWS::Region}:lambda:path/2015-03-31/functions/\${${connectHandlerId}.Arn}/invocations` }
3329
+ IntegrationUri: {
3330
+ "Fn::Sub": `arn:aws:apigateway:\${AWS::Region}:lambda:path/2015-03-31/functions/\${${connectHandlerId}.Arn}/invocations`
3331
+ }
2915
3332
  }
2916
3333
  });
2917
3334
  this.builder.addResource(disconnectIntegId, {
@@ -2919,7 +3336,9 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2919
3336
  Properties: {
2920
3337
  ApiId: { Ref: apiId },
2921
3338
  IntegrationType: "AWS_PROXY",
2922
- IntegrationUri: { "Fn::Sub": `arn:aws:apigateway:\${AWS::Region}:lambda:path/2015-03-31/functions/\${${disconnectHandlerId}.Arn}/invocations` }
3339
+ IntegrationUri: {
3340
+ "Fn::Sub": `arn:aws:apigateway:\${AWS::Region}:lambda:path/2015-03-31/functions/\${${disconnectHandlerId}.Arn}/invocations`
3341
+ }
2923
3342
  }
2924
3343
  });
2925
3344
  this.builder.addResource(messageIntegId, {
@@ -2927,7 +3346,9 @@ else if (!uri.includes('.')) { request.uri += '.html'; } return request; }`
2927
3346
  Properties: {
2928
3347
  ApiId: { Ref: apiId },
2929
3348
  IntegrationType: "AWS_PROXY",
2930
- IntegrationUri: { "Fn::Sub": `arn:aws:apigateway:\${AWS::Region}:lambda:path/2015-03-31/functions/\${${messageHandlerId}.Arn}/invocations` }
3349
+ IntegrationUri: {
3350
+ "Fn::Sub": `arn:aws:apigateway:\${AWS::Region}:lambda:path/2015-03-31/functions/\${${messageHandlerId}.Arn}/invocations`
3351
+ }
2931
3352
  }
2932
3353
  });
2933
3354
  this.builder.addResource(`${apiId}ConnectRoute`, {
@@ -3260,15 +3681,15 @@ catch (error) {
3260
3681
  RoleName: `${slug}-${env}-realtime-exec-role`,
3261
3682
  AssumeRolePolicyDocument: {
3262
3683
  Version: "2012-10-17",
3263
- Statement: [{
3264
- Effect: "Allow",
3265
- Principal: { Service: "ecs-tasks.amazonaws.com" },
3266
- Action: "sts:AssumeRole"
3267
- }]
3684
+ Statement: [
3685
+ {
3686
+ Effect: "Allow",
3687
+ Principal: { Service: "ecs-tasks.amazonaws.com" },
3688
+ Action: "sts:AssumeRole"
3689
+ }
3690
+ ]
3268
3691
  },
3269
- ManagedPolicyArns: [
3270
- "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
3271
- ]
3692
+ ManagedPolicyArns: ["arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"]
3272
3693
  }
3273
3694
  });
3274
3695
  this.builder.addResource(taskRoleId, {
@@ -3277,36 +3698,36 @@ catch (error) {
3277
3698
  RoleName: `${slug}-${env}-realtime-task-role`,
3278
3699
  AssumeRolePolicyDocument: {
3279
3700
  Version: "2012-10-17",
3280
- Statement: [{
3281
- Effect: "Allow",
3282
- Principal: { Service: "ecs-tasks.amazonaws.com" },
3283
- Action: "sts:AssumeRole"
3284
- }]
3701
+ Statement: [
3702
+ {
3703
+ Effect: "Allow",
3704
+ Principal: { Service: "ecs-tasks.amazonaws.com" },
3705
+ Action: "sts:AssumeRole"
3706
+ }
3707
+ ]
3285
3708
  },
3286
- Policies: [{
3287
- PolicyName: "RealtimeTaskPolicy",
3288
- PolicyDocument: {
3289
- Version: "2012-10-17",
3290
- Statement: [
3291
- {
3292
- Effect: "Allow",
3293
- Action: [
3294
- "logs:CreateLogStream",
3295
- "logs:PutLogEvents"
3296
- ],
3297
- Resource: "*"
3298
- },
3299
- ...serverConfig.redis?.enabled ? [{
3300
- Effect: "Allow",
3301
- Action: [
3302
- "elasticache:DescribeCacheClusters",
3303
- "elasticache:DescribeReplicationGroups"
3304
- ],
3305
- Resource: "*"
3306
- }] : []
3307
- ]
3709
+ Policies: [
3710
+ {
3711
+ PolicyName: "RealtimeTaskPolicy",
3712
+ PolicyDocument: {
3713
+ Version: "2012-10-17",
3714
+ Statement: [
3715
+ {
3716
+ Effect: "Allow",
3717
+ Action: ["logs:CreateLogStream", "logs:PutLogEvents"],
3718
+ Resource: "*"
3719
+ },
3720
+ ...serverConfig.redis?.enabled ? [
3721
+ {
3722
+ Effect: "Allow",
3723
+ Action: ["elasticache:DescribeCacheClusters", "elasticache:DescribeReplicationGroups"],
3724
+ Resource: "*"
3725
+ }
3726
+ ] : []
3727
+ ]
3728
+ }
3308
3729
  }
3309
- }]
3730
+ ]
3310
3731
  }
3311
3732
  });
3312
3733
  const envVars = [
@@ -3336,31 +3757,38 @@ catch (error) {
3336
3757
  Memory: "1024",
3337
3758
  ExecutionRoleArn: { "Fn::GetAtt": [execRoleId, "Arn"] },
3338
3759
  TaskRoleArn: { "Fn::GetAtt": [taskRoleId, "Arn"] },
3339
- ContainerDefinitions: [{
3340
- Name: "realtime",
3341
- Image: { "Fn::Sub": `\${AWS::AccountId}.dkr.ecr.\${AWS::Region}.amazonaws.com/${slug}-realtime:latest` },
3342
- Essential: true,
3343
- PortMappings: [{
3344
- ContainerPort: port,
3345
- Protocol: "tcp"
3346
- }],
3347
- Environment: envVars,
3348
- LogConfiguration: {
3349
- LogDriver: "awslogs",
3350
- Options: {
3351
- "awslogs-group": `/ecs/${slug}-${env}-realtime`,
3352
- "awslogs-region": { Ref: "AWS::Region" },
3353
- "awslogs-stream-prefix": "realtime"
3760
+ ContainerDefinitions: [
3761
+ {
3762
+ Name: "realtime",
3763
+ Image: { "Fn::Sub": `\${AWS::AccountId}.dkr.ecr.\${AWS::Region}.amazonaws.com/${slug}-realtime:latest` },
3764
+ Essential: true,
3765
+ PortMappings: [
3766
+ {
3767
+ ContainerPort: port,
3768
+ Protocol: "tcp"
3769
+ }
3770
+ ],
3771
+ Environment: envVars,
3772
+ LogConfiguration: {
3773
+ LogDriver: "awslogs",
3774
+ Options: {
3775
+ "awslogs-group": `/ecs/${slug}-${env}-realtime`,
3776
+ "awslogs-region": { Ref: "AWS::Region" },
3777
+ "awslogs-stream-prefix": "realtime"
3778
+ }
3779
+ },
3780
+ HealthCheck: {
3781
+ Command: [
3782
+ "CMD-SHELL",
3783
+ `curl -f http://localhost:${port}${serverConfig.healthCheckPath || "/health"} || exit 1`
3784
+ ],
3785
+ Interval: 30,
3786
+ Timeout: 5,
3787
+ Retries: 3,
3788
+ StartPeriod: 60
3354
3789
  }
3355
- },
3356
- HealthCheck: {
3357
- Command: ["CMD-SHELL", `curl -f http://localhost:${port}${serverConfig.healthCheckPath || "/health"} || exit 1`],
3358
- Interval: 30,
3359
- Timeout: 5,
3360
- Retries: 3,
3361
- StartPeriod: 60
3362
3790
  }
3363
- }],
3791
+ ],
3364
3792
  Tags: [
3365
3793
  { Key: "Name", Value: `${slug}-${env}-realtime` },
3366
3794
  { Key: "Environment", Value: env }
@@ -3409,7 +3837,9 @@ catch (error) {
3409
3837
  MaxCapacity: scalingConfig.max || 10,
3410
3838
  MinCapacity: scalingConfig.min || 1,
3411
3839
  ResourceId: { "Fn::Sub": `service/\${ECSCluster}/${slug}-${env}-realtime` },
3412
- RoleARN: { "Fn::Sub": "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService" },
3840
+ RoleARN: {
3841
+ "Fn::Sub": "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService"
3842
+ },
3413
3843
  ScalableDimension: "ecs:service:DesiredCount",
3414
3844
  ServiceNamespace: "ecs"
3415
3845
  },
@@ -4240,12 +4670,7 @@ echo "Certificate auto-renewal configured"
4240
4670
  `;
4241
4671
  }
4242
4672
  function generateHttpsServerCode(options) {
4243
- const {
4244
- httpPort = 80,
4245
- httpsPort = 443,
4246
- certPath = "/etc/ssl/stacks",
4247
- redirectHttp = true
4248
- } = options;
4673
+ const { httpPort = 80, httpsPort = 443, certPath = "/etc/ssl/stacks", redirectHttp = true } = options;
4249
4674
  return `
4250
4675
  // HTTPS Server with Let's Encrypt certificates
4251
4676
  import { readFileSync, existsSync } from 'node:fs'
@@ -4355,15 +4780,17 @@ async function setupDns01Challenge(options) {
4355
4780
  HostedZoneId: hostedZoneId,
4356
4781
  ChangeBatch: {
4357
4782
  Comment: "ACME DNS-01 challenge",
4358
- Changes: [{
4359
- Action: "UPSERT",
4360
- ResourceRecordSet: {
4361
- Name: `_acme-challenge.${domain}`,
4362
- Type: "TXT",
4363
- TTL: 60,
4364
- ResourceRecords: [{ Value: `"${challengeValue}"` }]
4783
+ Changes: [
4784
+ {
4785
+ Action: "UPSERT",
4786
+ ResourceRecordSet: {
4787
+ Name: `_acme-challenge.${domain}`,
4788
+ Type: "TXT",
4789
+ TTL: 60,
4790
+ ResourceRecords: [{ Value: `"${challengeValue}"` }]
4791
+ }
4365
4792
  }
4366
- }]
4793
+ ]
4367
4794
  }
4368
4795
  });
4369
4796
  return;
@@ -4390,15 +4817,17 @@ async function cleanupDns01Challenge(options) {
4390
4817
  HostedZoneId: hostedZoneId,
4391
4818
  ChangeBatch: {
4392
4819
  Comment: "Remove ACME DNS-01 challenge",
4393
- Changes: [{
4394
- Action: "DELETE",
4395
- ResourceRecordSet: {
4396
- Name: `_acme-challenge.${domain}`,
4397
- Type: "TXT",
4398
- TTL: 60,
4399
- ResourceRecords: [{ Value: `"${challengeValue}"` }]
4820
+ Changes: [
4821
+ {
4822
+ Action: "DELETE",
4823
+ ResourceRecordSet: {
4824
+ Name: `_acme-challenge.${domain}`,
4825
+ Type: "TXT",
4826
+ TTL: 60,
4827
+ ResourceRecords: [{ Value: `"${challengeValue}"` }]
4828
+ }
4400
4829
  }
4401
- }]
4830
+ ]
4402
4831
  }
4403
4832
  });
4404
4833
  return;
@@ -4408,14 +4837,17 @@ async function cleanupDns01Challenge(options) {
4408
4837
  function needsRenewal(certPath) {
4409
4838
  try {
4410
4839
  const { execSync } = __require("node:child_process");
4411
- const _result = execSync(`openssl x509 -checkend 2592000 -noout -in ${certPath}/cert.pem`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
4840
+ const _result = execSync(`openssl x509 -checkend 2592000 -noout -in ${certPath}/cert.pem`, {
4841
+ encoding: "utf-8",
4842
+ stdio: ["pipe", "pipe", "pipe"]
4843
+ });
4412
4844
  return false;
4413
4845
  } catch {
4414
4846
  return true;
4415
4847
  }
4416
4848
  }
4417
4849
  // src/ssl/acme-client.ts
4418
- import { createHash, createSign, generateKeyPairSync } from "node:crypto";
4850
+ import { createHash, createSign as createSign2, generateKeyPairSync } from "node:crypto";
4419
4851
  var ACME_DIRECTORIES = {
4420
4852
  production: "https://acme-v02.api.letsencrypt.org/directory",
4421
4853
  staging: "https://acme-staging-v02.api.letsencrypt.org/directory"
@@ -4508,7 +4940,7 @@ class AcmeClient {
4508
4940
  const protectedB64 = this.base64UrlEncode(JSON.stringify(protectedHeader));
4509
4941
  const payloadB64 = payload === "" ? "" : this.base64UrlEncode(JSON.stringify(payload));
4510
4942
  const signatureInput = `${protectedB64}.${payloadB64}`;
4511
- const sign = createSign("SHA256");
4943
+ const sign = createSign2("SHA256");
4512
4944
  sign.update(signatureInput);
4513
4945
  const signature = sign.sign(this.accountKey);
4514
4946
  const r = signature.subarray(4, 4 + signature[3]);
@@ -4667,6 +5099,7 @@ class AcmeClient {
4667
5099
  }
4668
5100
  }
4669
5101
  export {
5102
+ zeroCapacity,
4670
5103
  xrayManager,
4671
5104
  wrapCloudInitUserData,
4672
5105
  withTimeout,
@@ -4676,20 +5109,45 @@ export {
4676
5109
  withDatabase,
4677
5110
  withCache,
4678
5111
  withCDN,
5112
+ webhookEndpoint,
4679
5113
  waitForSsh,
4680
5114
  waitForCloudInit,
5115
+ volumeCapabilities,
5116
+ verifyUpdateSignature,
5117
+ verifyTotp,
5118
+ verifyMediaAccessToken,
5119
+ verifyArtifactSignature,
4681
5120
  validateTemplateSize,
4682
5121
  validateTemplate,
4683
5122
  validateResourceLimits,
5123
+ validateMountPath,
4684
5124
  validateDeploymentConfig,
4685
5125
  validateCredentials,
4686
5126
  validateConfiguration,
4687
5127
  validateCommand,
5128
+ validateBackupDestination,
5129
+ validateAttachment,
4688
5130
  validateAgainstSchema,
4689
5131
  validateAccountStructure,
4690
5132
  uploadStaticFiles,
5133
+ updateCompatibility,
5134
+ unsupportedVolumeCapabilities,
5135
+ unsupportedCapabilities,
5136
+ totpUri,
5137
+ totp,
5138
+ testSourceConnection,
4691
5139
  templateCache,
5140
+ telemetryPolicyKey,
5141
+ telemetryPercentile,
5142
+ telemetryEstimatedMonthlyCost,
5143
+ telemetryCursor,
5144
+ telemetryBucketLabel,
5145
+ systemdWorkloads,
4692
5146
  syntheticsManager,
5147
+ synchronizeConfiguredJobs,
5148
+ synchronizeConfiguredConfiguration,
5149
+ synchronizeComposeVolumes,
5150
+ syncSourceRepositories,
4693
5151
  suggestRegions,
4694
5152
  suggestRegionPairs,
4695
5153
  suggestQuotaIncrease,
@@ -4704,28 +5162,43 @@ export {
4704
5162
  sshExec,
4705
5163
  signRequestAsync,
4706
5164
  signRequest,
5165
+ signCloudFrontUrl,
5166
+ signCloudFrontCookies,
4707
5167
  sharedRuntimeLoop,
4708
5168
  sha256,
4709
5169
  setupDns01Challenge,
4710
5170
  setMaintenance,
4711
5171
  serviceMeshManager,
4712
5172
  serverPublicIpv4,
5173
+ serializeDotenv,
4713
5174
  sequence,
4714
5175
  senderReputationManager,
5176
+ sendAuthenticationEmail,
5177
+ securityScope,
4715
5178
  securityScanningManager,
4716
5179
  securityHubManager,
5180
+ secureContainerRelease,
4717
5181
  secretsRotationManager,
4718
5182
  secretsManager,
5183
+ searchControlPlane,
4719
5184
  searchCommands,
4720
5185
  scpUpload,
5186
+ scopeContains,
5187
+ scanForSecrets,
5188
+ saveTelemetryPolicy,
5189
+ sanitizeOidcReturnPath,
4721
5190
  sanitizeName,
5191
+ sanitizeControlPlaneValue,
4722
5192
  sanitizeCloudConfig,
5193
+ runtimeId,
4723
5194
  runRemoteCommand,
4724
5195
  runPhpBuildHooks,
4725
5196
  runBuildHooks,
4726
5197
  route53RoutingManager,
4727
5198
  route53ResolverManager,
4728
5199
  rollbackServerlessApp,
5200
+ rollbackImmutableRelease,
5201
+ roleCapabilities,
4729
5202
  responseToResult,
4730
5203
  resourceManagementManager,
4731
5204
  resolveUiSource,
@@ -4739,8 +5212,10 @@ export {
4739
5212
  resolveServerlessAssetBucketName,
4740
5213
  resolveServerlessArtifactBucketName,
4741
5214
  resolveServerlessAppStackName,
5215
+ resolveRuntimeInventory,
4742
5216
  resolveRegion,
4743
5217
  resolveQueues,
5218
+ resolveQueuedDeploymentCommand,
4744
5219
  resolveQueueNames,
4745
5220
  resolveProjectStackName,
4746
5221
  resolveObjectStorage,
@@ -4756,34 +5231,66 @@ export {
4756
5231
  resolveDashboardAction,
4757
5232
  resolveCredentials,
4758
5233
  resolveCloudProvider,
5234
+ resolveAuthEncryptionKey,
4759
5235
  resolveAppDatabase,
4760
5236
  resolveApp,
4761
5237
  requiresReplacement,
5238
+ requestHash,
4762
5239
  replicaManager,
5240
+ renderServerCron,
5241
+ renderComposeTemplate,
4763
5242
  removeStaleServerAddressRecords,
5243
+ removeSourceWebhook,
4764
5244
  remapKey,
5245
+ releaseTrafficPlan,
5246
+ releaseStrategyCapabilities,
4765
5247
  regionPairManager,
4766
5248
  redeployServerlessApp,
5249
+ redactTelemetryValue,
5250
+ redactTelemetryText,
5251
+ redactRuntimeConfig,
5252
+ recordSkippedSecretScan,
5253
+ recordPreDeploySecretScan,
5254
+ recordDashboardHostPosture,
5255
+ reconcileSourceWebhook,
5256
+ reconcileJobObservation,
4767
5257
  quickHash,
4768
5258
  queueManagementManager,
5259
+ publicKeyFingerprint,
4769
5260
  providerEndpoint,
4770
5261
  progressiveDeploymentManager,
5262
+ productionChangeReview,
5263
+ processSourceWebhook,
4771
5264
  processInChunks,
5265
+ previewSchedule,
4772
5266
  previewNotifications,
4773
5267
  previewManager,
5268
+ planComposeTemplateUpgrade,
4774
5269
  phpRuntimeLayerAssets,
4775
5270
  phpLayerPackages,
4776
5271
  phpLayerBuildStage,
4777
5272
  performanceManager,
5273
+ pathTemplate,
4778
5274
  parseXMLResponse,
5275
+ parseSystemdRecords,
4779
5276
  parseJSONResponse,
5277
+ parseDotenv,
5278
+ parseDockerInspect,
5279
+ parseComposeCatalog,
5280
+ parseCompose,
4780
5281
  parallelWithRetry,
4781
5282
  parallelMap,
4782
5283
  parallel,
4783
5284
  packageServerlessApp,
4784
5285
  packagePhpApp,
4785
5286
  organizationManager,
5287
+ openApiDocument,
5288
+ normalizeTelemetryPolicy,
4786
5289
  normalizeSshPublicKey,
5290
+ normalizeSourceEvent,
5291
+ normalizeScheduleExpression,
5292
+ normalizeRuntimeStatus,
5293
+ nextScheduleRuns,
4787
5294
  networkSecurityManager,
4788
5295
  needsRenewal,
4789
5296
  multiRegionManager,
@@ -4792,13 +5299,21 @@ export {
4792
5299
  migrateObjectStorage,
4793
5300
  metricsManager,
4794
5301
  mergeInfrastructure,
5302
+ mediaObjectHeaders,
5303
+ matchTotpCounter,
5304
+ manifestDigest,
4795
5305
  managementDashboardSiteName,
4796
5306
  makeAWSRequestOnce,
4797
5307
  makeAWSRequestAsync,
4798
5308
  makeAWSRequest,
5309
+ maintenanceWindowOpen,
4799
5310
  logsManager,
5311
+ loadTelemetryPolicy,
4800
5312
  loadCloudConfig,
5313
+ listSourceReferences,
5314
+ listComposeTemplates,
4801
5315
  laravelServerlessEnvDefaults,
5316
+ lambdaWorkloads,
4802
5317
  lambdaVersionsManager,
4803
5318
  lambdaVPCManager,
4804
5319
  lambdaLayersManager,
@@ -4806,8 +5321,10 @@ export {
4806
5321
  lambdaDLQManager,
4807
5322
  lambdaConcurrencyManager,
4808
5323
  keyMatchesFilters,
5324
+ jobProviderCapability,
4809
5325
  isWebCryptoAvailable,
4810
5326
  isValidRegion,
5327
+ isQuietHours,
4811
5328
  isNodeCryptoAvailable,
4812
5329
  isManagementDashboardSiteName,
4813
5330
  isLocalDevelopment,
@@ -4815,6 +5332,7 @@ export {
4815
5332
  invalidateCache,
4816
5333
  infraEnvFromOutputs,
4817
5334
  imageScanningManager,
5335
+ hotp,
4818
5336
  healthCheckManager,
4819
5337
  hashString,
4820
5338
  hashManifest,
@@ -4845,6 +5363,7 @@ export {
4845
5363
  getCredentials,
4846
5364
  getContextualHelp,
4847
5365
  getConfig,
5366
+ getComposeTemplate,
4848
5367
  getCommandUsage,
4849
5368
  getClosestRegion,
4850
5369
  getAllRegions,
@@ -4868,11 +5387,13 @@ export {
4868
5387
  generateManualPipeline,
4869
5388
  generateLogicalId,
4870
5389
  generateLetsEncryptUserData,
5390
+ generateImageSbom,
4871
5391
  generateHttpsServerCode,
4872
5392
  generateExternalDnsStaticSiteTemplate,
4873
5393
  generateDeploymentWorkflow,
4874
5394
  generateDeploymentPipeline,
4875
5395
  generateDeploymentConfig,
5396
+ generateCycloneDxSbom,
4876
5397
  generateCrossAccountRoleCF,
4877
5398
  generateCostReportWorkflow,
4878
5399
  generateCleanupWorkflow,
@@ -4887,6 +5408,7 @@ export {
4887
5408
  formatTree,
4888
5409
  formatTable,
4889
5410
  formatSuggestion,
5411
+ formatScanResults,
4890
5412
  formatRegionList,
4891
5413
  formatRegion,
4892
5414
  formatProgressBar,
@@ -4902,22 +5424,37 @@ export {
4902
5424
  findChangedFiles,
4903
5425
  fifoQueueManager,
4904
5426
  extendPreset,
5427
+ exportCompose,
4905
5428
  eventToRequest,
5429
+ eventBridgeScheduleInput,
5430
+ evaluateTelemetryAlertRules,
4906
5431
  ensureSshKey,
4907
5432
  ensureServer,
4908
5433
  ensureManagementDashboard,
4909
5434
  ensureFirewall,
5435
+ ensureDefaultSecurityPolicies,
5436
+ encryptBackup,
5437
+ encodeBase32,
4910
5438
  emailTemplateManager,
4911
5439
  emailAnalyticsManager,
5440
+ effectiveCapabilities,
5441
+ ecsWorkloads,
4912
5442
  drManager,
5443
+ documentDigest,
5444
+ dockerWorkloads,
4913
5445
  dnssecManager,
4914
5446
  dnsProviders,
4915
5447
  dlqMonitoringManager,
5448
+ discoverRuntimeInventory,
5449
+ discoverOidcProvider,
5450
+ discoverGitRefs,
4916
5451
  diffTemplates,
5452
+ diffCompose,
4917
5453
  detectServiceRegion,
4918
5454
  detectMisconfigurations,
4919
5455
  detectDnsProvider,
4920
5456
  detectDeploymentTargets,
5457
+ desiredState as desiredJobProviderState,
4921
5458
  deriveManagementDashboardPort,
4922
5459
  deploymentCoexistenceError,
4923
5460
  deployStaticSiteWithExternalDnsFull,
@@ -4931,17 +5468,29 @@ export {
4931
5468
  deleteStaticSite,
4932
5469
  defaultLocalConfig,
4933
5470
  defaultConfig,
5471
+ decryptBackup,
5472
+ decompressBackup,
5473
+ decodeBase32,
4934
5474
  databaseUserManager,
5475
+ dataServiceCapabilities,
4935
5476
  dashboardActions,
4936
5477
  crossRegionReferenceManager,
4937
5478
  createZip,
4938
5479
  createWordPressPreset,
5480
+ createVolumeQueueHandlers,
4939
5481
  createTraditionalWebAppPreset,
4940
5482
  createStaticSitePreset,
5483
+ createSourceAdapter,
4941
5484
  createServerlessNodePreset,
4942
5485
  createServerlessLaravelPreset,
5486
+ createServerBuildDriver,
4943
5487
  createS3Client,
5488
+ createRuntimeAdapters,
4944
5489
  createRoute53Validator,
5490
+ createRemoteBuildQueueHandlers,
5491
+ createReleaseQueueHandlers,
5492
+ createReleaseProvenance,
5493
+ createRegionQueueHandlers,
4945
5494
  createRealtimeAppPreset,
4946
5495
  createQueueHandler,
4947
5496
  createPresignedUrlAsync,
@@ -4953,30 +5502,49 @@ export {
4953
5502
  createNodeJsServerPreset,
4954
5503
  createMockAWS,
4955
5504
  createMicroservicesPreset,
5505
+ createMediaAccessToken,
5506
+ createMaintenanceQueueHandlers,
4956
5507
  createMLApiPreset,
4957
5508
  createLaravelPreset,
5509
+ createJobQueueHandlers,
4958
5510
  createJamstackPreset,
4959
5511
  createHttpHandler,
4960
5512
  createHandlers,
4961
5513
  createGoDaddyValidator,
4962
5514
  createFullStackAppPreset,
5515
+ createFleetQueueHandlers,
5516
+ createExistingStaticFullStackPreset,
4963
5517
  createError,
5518
+ createEcsBuildDriver,
4964
5519
  createDnsProvider,
5520
+ createDeploymentQueueHandlers,
5521
+ createDataServiceQueueHandlers,
4965
5522
  createDataPipelinePreset,
4966
5523
  createDashboardSite,
4967
5524
  createCredentialProvider,
5525
+ createCloudFrontPolicy,
4968
5526
  createCloudDriver,
4969
5527
  createCliHandler,
5528
+ createBackupQueueHandlers,
5529
+ createAsgBuildDriver,
5530
+ createApiV1Handler,
4970
5531
  createApiBackendPreset,
5532
+ controlPlaneMigrations,
4971
5533
  containerRegistryManager,
5534
+ connectionGuidance,
4972
5535
  config,
5536
+ compressBackup,
4973
5537
  composeServerlessAppTemplate,
5538
+ composeProjectName,
4974
5539
  composePresets,
5540
+ completeOidcAuthorization,
5541
+ completeComposeVolumeDeletion,
4975
5542
  collectServerDnsDomains,
4976
5543
  collectPhpAppEntries,
4977
5544
  cloudTrailManager,
4978
5545
  cloudDrivers,
4979
5546
  cloud_config_schema_default as cloudConfigSchema,
5547
+ cloneSourceBinding,
4980
5548
  clearSigningKeyCache,
4981
5549
  cleanupDns01Challenge,
4982
5550
  chunk,
@@ -4984,40 +5552,72 @@ export {
4984
5552
  checkIAMPermissions,
4985
5553
  certificateManager,
4986
5554
  categorizeChanges,
5555
+ capacity,
5556
+ capabilities,
5557
+ canonicalJson,
4987
5558
  canaryManager,
5559
+ bytes,
4988
5560
  buildStaticSiteDeployScript,
4989
5561
  buildSshArgs,
4990
5562
  buildSiteDeployScript,
4991
5563
  buildPhpRuntimeLayerZip,
4992
5564
  buildOptimizationManager,
4993
5565
  buildNodeRuntimeLayerZip,
5566
+ buildMediaCdnPlan,
4994
5567
  buildManagementDashboardArtifact,
4995
5568
  buildHostCleanupScript,
4996
5569
  buildFunctionEnv,
5570
+ buildComposeShellCommand,
5571
+ buildComposeScaleCommand,
5572
+ buildComposeRuntimeCommand,
5573
+ buildComposeLogsCommand,
4997
5574
  buildCloudFormationTemplate,
4998
5575
  buildBunRuntimeLayerZip,
4999
5576
  buildAndPushServerlessImage,
5000
5577
  bounceComplaintHandler,
5001
5578
  blueGreenManager,
5579
+ beginOidcAuthorization,
5002
5580
  batchProcessingManager,
5003
5581
  batch,
5004
5582
  backupManager,
5583
+ backupCredentialStatus,
5005
5584
  awsConfigManager,
5006
5585
  autocomplete,
5586
+ authorizeRuntimePath,
5587
+ authorizeOrganization,
5588
+ attachVulnerabilitySummary,
5589
+ attachSbomToRelease,
5590
+ attachProvenanceToRelease,
5591
+ assertReleaseStrategy,
5007
5592
  artifactKey,
5008
5593
  analyzeStackDiff,
5594
+ ageSeconds,
5595
+ activateImmutableRelease,
5009
5596
  abTestManager,
5010
5597
  XRayManager,
5011
5598
  Workflow,
5599
+ VolumeStore,
5600
+ VolumeService,
5012
5601
  VoiceClient,
5013
5602
  ValidationError,
5603
+ UnsupportedSchemaVersionError,
5014
5604
  UnifiedDnsValidator,
5605
+ UnavailableRegionalDriver,
5606
+ TsCloudClient,
5607
+ TsCloudApiError,
5608
+ TrivyImageScanner,
5609
+ TransportRemoteBuildDriver,
5610
+ TransportPlatformMaintenanceDriver,
5611
+ TransportDisasterRecoveryDriver,
5015
5612
  TranslateClient,
5016
5613
  TranscribeClient,
5017
5614
  TextractClient,
5018
5615
  TemplateCache,
5019
5616
  TemplateBuilder,
5617
+ TelemetryStore,
5020
5618
  TaskList,
5619
+ SystemdDiscoveryAdapter,
5620
+ SystemFleetSshTransport,
5021
5621
  SyntheticsManager,
5022
5622
  SupportClient,
5023
5623
  StorageAdvancedManager,
@@ -5025,20 +5625,29 @@ export {
5025
5625
  StaticSiteManager,
5026
5626
  StacksIntegration,
5027
5627
  StackDependencyManager,
5628
+ SshFleetDriver,
5028
5629
  Spinner,
5630
+ SourceProviderError,
5631
+ SourceConnectionStore,
5029
5632
  exports_send as SmsHandlers,
5030
5633
  SmsClient,
5031
5634
  exports_advanced3 as SmsAdvanced,
5032
5635
  Sftp,
5033
5636
  ServiceMeshManager,
5637
+ ServerPathVolumeDriver,
5638
+ ServerDataAdapter,
5639
+ ServerCronJobAdapter,
5034
5640
  SenderReputationManager,
5035
5641
  SecurityScanningManager,
5642
+ SecurityScannerRunner,
5643
+ SecurityPostureStore,
5036
5644
  SecurityHubManager,
5037
5645
  Security,
5038
5646
  SecretsRotationManager,
5039
5647
  SecretsManagerClient,
5040
5648
  SecretsManager,
5041
5649
  Secrets,
5650
+ SecretFindingScanner,
5042
5651
  Search,
5043
5652
  SchedulerClient,
5044
5653
  STSClient,
@@ -5047,17 +5656,27 @@ export {
5047
5656
  SNSClient,
5048
5657
  SMS,
5049
5658
  SESClient,
5659
+ SECRET_PATTERNS,
5050
5660
  S3Error,
5051
5661
  S3Client,
5662
+ S3BackupDestinationAdapter,
5663
+ RuntimeStreamRegistry,
5664
+ RuntimeOperationService,
5052
5665
  Route53RoutingManager,
5053
5666
  Route53ResolverManager,
5054
5667
  Route53Provider,
5055
5668
  Route53DomainsClient,
5056
5669
  Route53Client,
5670
+ RetryableOperationError,
5057
5671
  ResourceManagementManager,
5058
5672
  ReplicaManager,
5673
+ RemoteBuildService,
5674
+ ReleaseStore,
5675
+ ReleaseService,
5059
5676
  RekognitionClient,
5060
5677
  Registry,
5678
+ RegionStore,
5679
+ RegionService,
5061
5680
  RegionPairManager,
5062
5681
  Redirects,
5063
5682
  RealtimePresets,
@@ -5065,19 +5684,27 @@ export {
5065
5684
  REPLContext,
5066
5685
  REPLCommandBuilder,
5067
5686
  REPL,
5687
+ RELEASE_QUEUE_KINDS,
5068
5688
  RECOMMENDED_SCPS,
5069
5689
  RECOMMENDED_ACCOUNT_STRUCTURES,
5070
5690
  RDSClient,
5691
+ QueueTimeoutError,
5071
5692
  QueuePresets,
5072
5693
  QueueManagementManager,
5694
+ QueueCancellationError,
5073
5695
  Queue,
5074
5696
  Pseudo,
5075
5697
  ProgressiveDeploymentManager,
5076
5698
  ProgressBar,
5077
5699
  PreviewNotificationService,
5700
+ PreviewEnvironmentStore,
5701
+ PreviewEnvironmentService,
5078
5702
  PreviewEnvironmentManager,
5703
+ PreDeployScanner,
5079
5704
  PorkbunProvider,
5080
5705
  PollyClient,
5706
+ PlacementStore,
5707
+ PlacementService,
5081
5708
  exports_incoming_call as PhoneHandlers,
5082
5709
  exports_advanced2 as PhoneAdvanced,
5083
5710
  Phone,
@@ -5088,7 +5715,9 @@ export {
5088
5715
  PHP_LAYER_EXTENSIONS,
5089
5716
  PHP_DEFAULT_EXCLUDES,
5090
5717
  OrganizationManager,
5718
+ OptimisticConcurrencyError,
5091
5719
  OpenSearchClient,
5720
+ NotificationRouter,
5092
5721
  NetworkSecurityManager,
5093
5722
  Network,
5094
5723
  MultiStepProgress,
@@ -5101,12 +5730,19 @@ export {
5101
5730
  MigrationManager,
5102
5731
  MetricsManager,
5103
5732
  Messaging,
5733
+ MaintenanceStore,
5734
+ MaintenanceService,
5735
+ MAX_CONTROL_PLANE_JSON_BYTES,
5736
+ MAX_CONTROL_PLANE_ERROR_BYTES,
5104
5737
  MANAGEMENT_DASHBOARD_SITE_PREFIX,
5105
5738
  MANAGEMENT_DASHBOARD_SITE,
5106
5739
  MANAGED_NODE_VERSIONS,
5107
5740
  LogsManager,
5741
+ LogicalDatabaseBackupSource,
5742
+ LocalEncryptedConfigurationBackend,
5108
5743
  LambdaVersionsManager,
5109
5744
  LambdaVPCManager,
5745
+ LambdaRuntimeAdapter,
5110
5746
  LambdaLayersManager,
5111
5747
  LambdaDestinationsManager,
5112
5748
  LambdaDLQManager,
@@ -5114,23 +5750,37 @@ export {
5114
5750
  LambdaClient,
5115
5751
  LARAVEL_SERVERLESS_BUILD_STEPS,
5116
5752
  KendraClient,
5753
+ JobStore,
5754
+ JobService,
5755
+ JobProviderReconciler,
5117
5756
  JobLoader,
5757
+ InvalidOperationTransitionError,
5118
5758
  InfrastructureGenerator,
5119
5759
  ImageScanningManager,
5120
5760
  IAMClient,
5121
5761
  HetznerDriver,
5122
5762
  HetznerClient,
5763
+ HealthCheckRunner,
5123
5764
  HealthCheckManager,
5124
5765
  HashCache,
5125
5766
  GuardDutyManager,
5126
5767
  GoDaddyProvider,
5127
5768
  GlobalResourceManager,
5769
+ GitlabSourceAdapter,
5770
+ GithubSourceAdapter,
5771
+ GiteaSourceAdapter,
5128
5772
  Fn2 as Fn,
5773
+ FleetStore,
5774
+ FleetService,
5775
+ FilesystemBackupSource,
5129
5776
  FileSystem,
5130
5777
  FileCache,
5131
5778
  FIFOQueueManager,
5779
+ ExternalConfigurationBackend,
5780
+ EventBridgeJobAdapter,
5132
5781
  EventBridgeClient,
5133
5782
  ErrorCodes,
5783
+ EncryptedDataSecretStore,
5134
5784
  EmailTemplateManager,
5135
5785
  exports_inbound as EmailHandlers,
5136
5786
  EmailClient,
@@ -5138,12 +5788,19 @@ export {
5138
5788
  exports_advanced as EmailAdvanced,
5139
5789
  Email,
5140
5790
  ElastiCacheClient,
5791
+ EcsRuntimeAdapter,
5141
5792
  ELBv2Client,
5142
5793
  EFSClient,
5143
5794
  ECSClient,
5144
5795
  ECRClient,
5145
5796
  EC2Client,
5146
5797
  DynamoDBClient,
5798
+ DurableQueueWorker,
5799
+ DurableOperationQueue,
5800
+ DockerVolumeBackupSource,
5801
+ DockerNamedVolumeDriver,
5802
+ DockerDiscoveryAdapter,
5803
+ DockerDataTransport,
5147
5804
  DnsProviderFactory,
5148
5805
  DisasterRecoveryManager,
5149
5806
  DeploymentError,
@@ -5152,9 +5809,14 @@ export {
5152
5809
  DebugLogger,
5153
5810
  DatabaseUserManager,
5154
5811
  Database,
5812
+ DataServiceStore,
5813
+ DataServiceLifecycle,
5155
5814
  DNSSECManager,
5156
5815
  DNS,
5157
5816
  DLQMonitoringManager,
5817
+ DIAGNOSTIC_PRESETS,
5818
+ DEPLOYMENT_QUEUE_KINDS,
5819
+ DEFAULT_TELEMETRY_POLICY,
5158
5820
  DEFAULT_SERVICE_LIMITS,
5159
5821
  DASHBOARD_STATE_DIR,
5160
5822
  DASHBOARD_PORT_SPAN,
@@ -5163,11 +5825,19 @@ export {
5163
5825
  DASHBOARD_CREDENTIALS_FILE,
5164
5826
  CrossRegionReferenceManager,
5165
5827
  CredentialError,
5828
+ ControlPlaneStore,
5829
+ ControlPlaneCleanupDriver,
5830
+ ControlPlaneBackupSource,
5166
5831
  ContainerRegistryManager,
5832
+ ContainerDataAdapter,
5167
5833
  ConnectClient,
5834
+ ConfigurationStore,
5835
+ ConfigurationService,
5168
5836
  ConfigurationError,
5169
5837
  Compute,
5170
5838
  ComprehendClient,
5839
+ ComposeApplicationStore,
5840
+ ComposeApplicationService,
5171
5841
  Communication,
5172
5842
  CommandHistory,
5173
5843
  CloudWatchLogsClient,
@@ -5177,24 +5847,51 @@ export {
5177
5847
  CloudFormationBuilder,
5178
5848
  CloudError,
5179
5849
  CloudDriverFactory,
5850
+ CloudBlockVolumeDriver,
5180
5851
  CertificateManager,
5181
5852
  CanaryManager,
5182
5853
  Cache,
5854
+ CONTROL_PLANE_SCHEMA_VERSION,
5855
+ CONTROL_PLANE_DATABASE_FILE,
5183
5856
  COMMON_CROSS_ACCOUNT_ROLES,
5184
5857
  CDN,
5858
+ BunFilesystemArchiveRuntime,
5859
+ BunDockerVolumeRuntime,
5860
+ BunDockerRuntime,
5185
5861
  BuildOptimizationManager,
5186
5862
  BounceComplaintHandler,
5187
5863
  BlueGreenManager,
5864
+ BitbucketSourceAdapter,
5188
5865
  BedrockRuntimeClient,
5189
5866
  BedrockClient,
5190
5867
  BatchProcessingManager,
5868
+ BackupStore,
5191
5869
  BackupManager,
5870
+ BackupCoordinator,
5871
+ AwsSsmConfigurationBackend,
5872
+ AwsSecretsManagerConfigurationBackend,
5873
+ AwsRegionalDriver,
5874
+ AwsRdsTransport,
5875
+ AwsRdsDataAdapter,
5876
+ AwsInfrastructureBackupSource,
5877
+ AwsIamCapabilityScanner,
5878
+ AwsElastiCacheTransport,
5879
+ AwsElastiCacheDataAdapter,
5192
5880
  AwsDriver,
5881
+ AwsDatabaseBackupSource,
5882
+ AwsAuroraTransport,
5883
+ AwsAuroraDataAdapter,
5884
+ AutomationIdentityStore,
5885
+ AutomationApiService,
5886
+ AuthenticationStore,
5193
5887
  Auth,
5194
5888
  AssetHasher,
5195
5889
  Arn,
5196
5890
  ApplicationAutoScalingClient,
5891
+ ApiServiceError,
5197
5892
  ApiGateway,
5893
+ AlertStore,
5894
+ AlertEvaluator,
5198
5895
  AcmeClient,
5199
5896
  AWS_REGIONS,
5200
5897
  AWS_PSEUDO_PARAMETERS,
@@ -5203,6 +5900,17 @@ export {
5203
5900
  CloudFormationClient as AWSCloudFormationClient,
5204
5901
  AWSClient,
5205
5902
  AWSAPIError,
5903
+ AUTH_SESSION_IDLE_TTL_MS,
5904
+ AUTH_SESSION_ABSOLUTE_TTL_MS,
5905
+ AUTH_OIDC_TRANSACTION_TTL_MS,
5906
+ AUTH_MFA_CHALLENGE_TTL_MS,
5907
+ AUTH_ENCRYPTION_KEY_FILE,
5908
+ AUTH_ACTION_TOKEN_TTL_MS,
5909
+ AUTHORIZATION_CAPABILITIES,
5910
+ API_VERSION,
5911
+ API_TOKEN_MAX_TTL_MS,
5912
+ API_TOKEN_DEFAULT_TTL_MS,
5913
+ API_IDEMPOTENCY_TTL_MS,
5206
5914
  AI,
5207
5915
  ACME_DIRECTORIES,
5208
5916
  ACMDnsValidator,