@caelo-cms/provisioning 0.11.9 → 0.11.11

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 (352) hide show
  1. package/dist/adapter.d.ts +6 -0
  2. package/dist/adapter.d.ts.map +1 -1
  3. package/dist/admin-domain.d.ts +10 -1
  4. package/dist/admin-domain.d.ts.map +1 -1
  5. package/dist/admin-domain.js +13 -3
  6. package/dist/admin-domain.js.map +1 -1
  7. package/dist/adopt-existing.d.ts +12 -3
  8. package/dist/adopt-existing.d.ts.map +1 -1
  9. package/dist/adopt-existing.js +143 -0
  10. package/dist/adopt-existing.js.map +1 -1
  11. package/dist/agent/command.d.ts +23 -0
  12. package/dist/agent/command.d.ts.map +1 -1
  13. package/dist/agent/command.js +32 -9
  14. package/dist/agent/command.js.map +1 -1
  15. package/dist/agent/run.d.ts +2 -0
  16. package/dist/agent/run.d.ts.map +1 -1
  17. package/dist/agent/run.js +5 -1
  18. package/dist/agent/run.js.map +1 -1
  19. package/dist/agent-db.js +69 -10
  20. package/dist/aws-task-roles.d.ts +4 -2
  21. package/dist/aws-task-roles.d.ts.map +1 -1
  22. package/dist/aws-task-roles.js +4 -1
  23. package/dist/aws-task-roles.js.map +1 -1
  24. package/dist/caddy.d.ts +21 -4
  25. package/dist/caddy.d.ts.map +1 -1
  26. package/dist/caddy.js +27 -3
  27. package/dist/caddy.js.map +1 -1
  28. package/dist/cli-routing.js +1 -1
  29. package/dist/cli-routing.js.map +1 -1
  30. package/dist/cli.js +68 -7
  31. package/dist/cli.js.map +1 -1
  32. package/dist/cloudsql-tls.d.ts +93 -0
  33. package/dist/cloudsql-tls.d.ts.map +1 -0
  34. package/dist/cloudsql-tls.js +295 -0
  35. package/dist/cloudsql-tls.js.map +1 -0
  36. package/dist/compose.d.ts +43 -6
  37. package/dist/compose.d.ts.map +1 -1
  38. package/dist/compose.js +148 -23
  39. package/dist/compose.js.map +1 -1
  40. package/dist/converge-checkpoint.d.ts +1 -0
  41. package/dist/converge-checkpoint.d.ts.map +1 -1
  42. package/dist/converge-checkpoint.js +8 -1
  43. package/dist/converge-checkpoint.js.map +1 -1
  44. package/dist/converge-db-trust.d.ts +44 -0
  45. package/dist/converge-db-trust.d.ts.map +1 -0
  46. package/dist/converge-db-trust.js +158 -0
  47. package/dist/converge-db-trust.js.map +1 -0
  48. package/dist/converge-job-gcp.d.ts +5 -2
  49. package/dist/converge-job-gcp.d.ts.map +1 -1
  50. package/dist/converge-job-gcp.js +11 -13
  51. package/dist/converge-job-gcp.js.map +1 -1
  52. package/dist/converge-job-preflight.d.ts.map +1 -1
  53. package/dist/converge-job-preflight.js +8 -0
  54. package/dist/converge-job-preflight.js.map +1 -1
  55. package/dist/converge-job.d.ts +17 -0
  56. package/dist/converge-job.d.ts.map +1 -1
  57. package/dist/converge-job.js +12 -0
  58. package/dist/converge-job.js.map +1 -1
  59. package/dist/deployed-release.d.ts +4 -1
  60. package/dist/deployed-release.d.ts.map +1 -1
  61. package/dist/deployed-release.js +18 -8
  62. package/dist/deployed-release.js.map +1 -1
  63. package/dist/gcp-names.d.ts +34 -0
  64. package/dist/gcp-names.d.ts.map +1 -1
  65. package/dist/gcp-names.js +45 -0
  66. package/dist/gcp-names.js.map +1 -1
  67. package/dist/gcp-url-map.d.ts.map +1 -1
  68. package/dist/gcp-url-map.js +6 -2
  69. package/dist/gcp-url-map.js.map +1 -1
  70. package/dist/index.d.ts +3 -2
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +2 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/infra-contract.d.ts +1 -1
  75. package/dist/infra-contract.d.ts.map +1 -1
  76. package/dist/infra-contract.js +45 -1
  77. package/dist/infra-contract.js.map +1 -1
  78. package/dist/install-job.d.ts +4 -2
  79. package/dist/install-job.d.ts.map +1 -1
  80. package/dist/install-job.js +4 -1
  81. package/dist/install-job.js.map +1 -1
  82. package/dist/install-state.d.ts +13 -0
  83. package/dist/install-state.d.ts.map +1 -1
  84. package/dist/install-state.js +17 -4
  85. package/dist/install-state.js.map +1 -1
  86. package/dist/lifecycle.d.ts.map +1 -1
  87. package/dist/lifecycle.js +20 -8
  88. package/dist/lifecycle.js.map +1 -1
  89. package/dist/mcp-auth-proxy-setup.d.ts +48 -0
  90. package/dist/mcp-auth-proxy-setup.d.ts.map +1 -0
  91. package/dist/mcp-auth-proxy-setup.js +280 -0
  92. package/dist/mcp-auth-proxy-setup.js.map +1 -0
  93. package/dist/migration-runner.d.ts.map +1 -1
  94. package/dist/migration-runner.js +8 -3
  95. package/dist/migration-runner.js.map +1 -1
  96. package/dist/migration-targets.d.ts +11 -0
  97. package/dist/migration-targets.d.ts.map +1 -0
  98. package/dist/migration-targets.js +12 -0
  99. package/dist/migration-targets.js.map +1 -0
  100. package/dist/operator-access.d.ts +10 -0
  101. package/dist/operator-access.d.ts.map +1 -1
  102. package/dist/operator-access.js +5 -0
  103. package/dist/operator-access.js.map +1 -1
  104. package/dist/pool-budget-stack.d.ts +13 -1
  105. package/dist/pool-budget-stack.d.ts.map +1 -1
  106. package/dist/pool-budget-stack.js +11 -1
  107. package/dist/pool-budget-stack.js.map +1 -1
  108. package/dist/public-role-isolation.d.ts +7 -3
  109. package/dist/public-role-isolation.d.ts.map +1 -1
  110. package/dist/public-role-isolation.js +25 -13
  111. package/dist/public-role-isolation.js.map +1 -1
  112. package/dist/release-contract.d.ts.map +1 -1
  113. package/dist/release-contract.js +3 -0
  114. package/dist/release-contract.js.map +1 -1
  115. package/dist/release-manifest.d.ts +25 -1
  116. package/dist/release-manifest.d.ts.map +1 -1
  117. package/dist/release-manifest.js +36 -3
  118. package/dist/release-manifest.js.map +1 -1
  119. package/dist/remote-mcp.d.ts +55 -18
  120. package/dist/remote-mcp.d.ts.map +1 -1
  121. package/dist/remote-mcp.js +307 -77
  122. package/dist/remote-mcp.js.map +1 -1
  123. package/dist/runtime-secrets.d.ts +11 -0
  124. package/dist/runtime-secrets.d.ts.map +1 -1
  125. package/dist/runtime-secrets.js +40 -25
  126. package/dist/runtime-secrets.js.map +1 -1
  127. package/dist/scheduler-setup.d.ts +75 -0
  128. package/dist/scheduler-setup.d.ts.map +1 -0
  129. package/dist/scheduler-setup.js +331 -0
  130. package/dist/scheduler-setup.js.map +1 -0
  131. package/dist/seal-key-rotation.d.ts +7 -7
  132. package/dist/seal-key-rotation.d.ts.map +1 -1
  133. package/dist/seal-key-rotation.js +22 -22
  134. package/dist/seal-key-rotation.js.map +1 -1
  135. package/dist/self-hosted-db-tls.d.ts +37 -0
  136. package/dist/self-hosted-db-tls.d.ts.map +1 -0
  137. package/dist/self-hosted-db-tls.js +220 -0
  138. package/dist/self-hosted-db-tls.js.map +1 -0
  139. package/dist/self-hosted-release.d.ts +3 -1
  140. package/dist/self-hosted-release.d.ts.map +1 -1
  141. package/dist/self-hosted-release.js +33 -9
  142. package/dist/self-hosted-release.js.map +1 -1
  143. package/dist/self-hosted-roles.d.ts +43 -2
  144. package/dist/self-hosted-roles.d.ts.map +1 -1
  145. package/dist/self-hosted-roles.js +87 -1
  146. package/dist/self-hosted-roles.js.map +1 -1
  147. package/dist/self-hosted-scheduler-interval.d.ts +21 -0
  148. package/dist/self-hosted-scheduler-interval.d.ts.map +1 -0
  149. package/dist/self-hosted-scheduler-interval.js +68 -0
  150. package/dist/self-hosted-scheduler-interval.js.map +1 -0
  151. package/dist/self-hosted-start.d.ts +0 -21
  152. package/dist/self-hosted-start.d.ts.map +1 -1
  153. package/dist/self-hosted-start.js +39 -1
  154. package/dist/self-hosted-start.js.map +1 -1
  155. package/dist/self-hosted-upgrade.d.ts +19 -7
  156. package/dist/self-hosted-upgrade.d.ts.map +1 -1
  157. package/dist/self-hosted-upgrade.js +78 -25
  158. package/dist/self-hosted-upgrade.js.map +1 -1
  159. package/dist/stack-contract.d.ts +234 -28
  160. package/dist/stack-contract.d.ts.map +1 -1
  161. package/dist/stack-contract.js +397 -39
  162. package/dist/stack-contract.js.map +1 -1
  163. package/dist/stack-converge.d.ts +31 -0
  164. package/dist/stack-converge.d.ts.map +1 -1
  165. package/dist/stack-converge.js +71 -30
  166. package/dist/stack-converge.js.map +1 -1
  167. package/dist/staging-database.d.ts +22 -0
  168. package/dist/staging-database.d.ts.map +1 -0
  169. package/dist/staging-database.js +117 -0
  170. package/dist/staging-database.js.map +1 -0
  171. package/dist/upgrade/app-roll.d.ts +25 -4
  172. package/dist/upgrade/app-roll.d.ts.map +1 -1
  173. package/dist/upgrade/app-roll.js +63 -17
  174. package/dist/upgrade/app-roll.js.map +1 -1
  175. package/dist/upgrade/converge.d.ts +5 -0
  176. package/dist/upgrade/converge.d.ts.map +1 -1
  177. package/dist/upgrade/converge.js +207 -20
  178. package/dist/upgrade/converge.js.map +1 -1
  179. package/dist/upgrade/health.d.ts +31 -7
  180. package/dist/upgrade/health.d.ts.map +1 -1
  181. package/dist/upgrade/health.js +41 -17
  182. package/dist/upgrade/health.js.map +1 -1
  183. package/dist/upgrade/image-forms.d.ts +1 -1
  184. package/dist/upgrade/image-forms.d.ts.map +1 -1
  185. package/dist/upgrade/image-forms.js +24 -7
  186. package/dist/upgrade/image-forms.js.map +1 -1
  187. package/dist/upgrade/release-images.d.ts +12 -3
  188. package/dist/upgrade/release-images.d.ts.map +1 -1
  189. package/dist/upgrade/release-images.js +13 -4
  190. package/dist/upgrade/release-images.js.map +1 -1
  191. package/dist/upgrade/upgrade.d.ts +19 -3
  192. package/dist/upgrade/upgrade.d.ts.map +1 -1
  193. package/dist/upgrade/upgrade.js +37 -2
  194. package/dist/upgrade/upgrade.js.map +1 -1
  195. package/dist/upgrader-gcp.d.ts +13 -0
  196. package/dist/upgrader-gcp.d.ts.map +1 -1
  197. package/dist/upgrader-gcp.js +50 -1
  198. package/dist/upgrader-gcp.js.map +1 -1
  199. package/dist/upgrader-iam-preflight.d.ts.map +1 -1
  200. package/dist/upgrader-iam-preflight.js +6 -1
  201. package/dist/upgrader-iam-preflight.js.map +1 -1
  202. package/dist/upgrader-job.d.ts +1 -1
  203. package/dist/upgrader-job.d.ts.map +1 -1
  204. package/dist/upgrader-job.js +20 -14
  205. package/dist/upgrader-job.js.map +1 -1
  206. package/dist/upgrader-records.d.ts +1 -1
  207. package/dist/upgrader-records.d.ts.map +1 -1
  208. package/dist/upgrader-records.js +26 -7
  209. package/dist/upgrader-records.js.map +1 -1
  210. package/dist/upgrader-setup.d.ts.map +1 -1
  211. package/dist/upgrader-setup.js +10 -5
  212. package/dist/upgrader-setup.js.map +1 -1
  213. package/dist/wizard.d.ts +7 -0
  214. package/dist/wizard.d.ts.map +1 -1
  215. package/dist/wizard.js +11 -0
  216. package/dist/wizard.js.map +1 -1
  217. package/dist/wizards/gcp-cost.d.ts +31 -0
  218. package/dist/wizards/gcp-cost.d.ts.map +1 -1
  219. package/dist/wizards/gcp-cost.js +103 -18
  220. package/dist/wizards/gcp-cost.js.map +1 -1
  221. package/dist/wizards/gcp.d.ts.map +1 -1
  222. package/dist/wizards/gcp.js +129 -27
  223. package/dist/wizards/gcp.js.map +1 -1
  224. package/package.json +2 -2
  225. package/src/adapter.ts +6 -0
  226. package/src/admin-domain.test.ts +9 -8
  227. package/src/admin-domain.ts +13 -3
  228. package/src/admin-memory.test.ts +2 -1
  229. package/src/adopt-existing.test.ts +85 -0
  230. package/src/adopt-existing.ts +141 -3
  231. package/src/agent/command.test.ts +49 -1
  232. package/src/agent/command.ts +39 -9
  233. package/src/agent/run.test.ts +19 -0
  234. package/src/agent/run.ts +11 -2
  235. package/src/aws-task-roles.ts +5 -2
  236. package/src/caddy-redirects.docker.test.ts +2 -0
  237. package/src/caddy-redirects.test.ts +4 -1
  238. package/src/caddy-validate.test.ts +7 -1
  239. package/src/caddy.test.ts +39 -1
  240. package/src/caddy.ts +36 -4
  241. package/src/checkpoint-secrets.test.ts +14 -6
  242. package/src/cli-routing.test.ts +1 -1
  243. package/src/cli-routing.ts +1 -1
  244. package/src/cli.ts +71 -5
  245. package/src/cloudsql-tls.test.ts +255 -0
  246. package/src/cloudsql-tls.ts +359 -0
  247. package/src/compose.ts +193 -24
  248. package/src/converge-checkpoint.ts +8 -1
  249. package/src/converge-db-trust.test.ts +237 -0
  250. package/src/converge-db-trust.ts +212 -0
  251. package/src/converge-job-gcp.ts +11 -12
  252. package/src/converge-job-preflight.test.ts +5 -0
  253. package/src/converge-job-preflight.ts +8 -0
  254. package/src/converge-job.test.ts +70 -0
  255. package/src/converge-job.ts +32 -0
  256. package/src/database-tls-builders.test.ts +56 -0
  257. package/src/deployed-release.test.ts +107 -40
  258. package/src/deployed-release.ts +30 -9
  259. package/src/gateway-env-isolation.test.ts +50 -12
  260. package/src/gcp-names.ts +56 -0
  261. package/src/gcp-url-map.test.ts +6 -8
  262. package/src/gcp-url-map.ts +6 -2
  263. package/src/index.test.ts +10 -4
  264. package/src/index.ts +7 -0
  265. package/src/infra-contract.test.ts +7 -3
  266. package/src/infra-contract.ts +45 -1
  267. package/src/install-job.ts +4 -1
  268. package/src/install-state.ts +33 -4
  269. package/src/lifecycle.ts +23 -11
  270. package/src/mcp-auth-proxy-setup.test.ts +305 -0
  271. package/src/mcp-auth-proxy-setup.ts +374 -0
  272. package/src/mcp-iap-stacks.test.ts +1 -1
  273. package/src/media-volume.test.ts +1 -1
  274. package/src/migration-runner.ts +14 -9
  275. package/src/migration-targets.ts +12 -0
  276. package/src/operator-access-stacks.test.ts +1 -1
  277. package/src/operator-access.test.ts +20 -4
  278. package/src/operator-access.ts +14 -0
  279. package/src/pool-budget-stack.ts +15 -0
  280. package/src/pool-budget-stacks.test.ts +39 -14
  281. package/src/public-role-isolation.test.ts +18 -8
  282. package/src/public-role-isolation.ts +31 -17
  283. package/src/release-contract.ts +3 -0
  284. package/src/release-manifest.test.ts +25 -0
  285. package/src/release-manifest.ts +59 -4
  286. package/src/remote-mcp-stack-config.test.ts +19 -9
  287. package/src/remote-mcp.test.ts +252 -57
  288. package/src/remote-mcp.ts +336 -77
  289. package/src/runtime-secrets.test.ts +37 -14
  290. package/src/runtime-secrets.ts +87 -27
  291. package/src/scheduler-setup.test.ts +201 -0
  292. package/src/scheduler-setup.ts +375 -0
  293. package/src/seal-key-rotation.test.ts +2 -2
  294. package/src/seal-key-rotation.ts +25 -25
  295. package/src/self-hosted-backup.test.ts +1 -0
  296. package/src/self-hosted-compose.test.ts +180 -6
  297. package/src/self-hosted-db-tls.test.ts +111 -0
  298. package/src/self-hosted-db-tls.ts +287 -0
  299. package/src/self-hosted-release-resolve.test.ts +71 -0
  300. package/src/self-hosted-release.ts +41 -11
  301. package/src/self-hosted-roles.integration.test.ts +2 -0
  302. package/src/self-hosted-roles.test.ts +87 -3
  303. package/src/self-hosted-roles.ts +101 -3
  304. package/src/self-hosted-scheduler-interval.test.ts +66 -0
  305. package/src/self-hosted-scheduler-interval.ts +79 -0
  306. package/src/self-hosted-start.test.ts +35 -2
  307. package/src/self-hosted-start.ts +20 -2
  308. package/src/self-hosted-upgrade.test.ts +104 -14
  309. package/src/self-hosted-upgrade.ts +123 -31
  310. package/src/stack-contract-parity.test.ts +79 -12
  311. package/src/stack-contract.test.ts +199 -31
  312. package/src/stack-contract.ts +472 -45
  313. package/src/stack-converge-secrets.test.ts +28 -13
  314. package/src/stack-converge.test.ts +203 -28
  315. package/src/stack-converge.ts +92 -30
  316. package/src/staging-database.test.ts +114 -0
  317. package/src/staging-database.ts +148 -0
  318. package/src/state-store.test.ts +2 -1
  319. package/src/upgrade/app-roll.ts +97 -19
  320. package/src/upgrade/converge.ts +249 -19
  321. package/src/upgrade/health.test.ts +63 -25
  322. package/src/upgrade/health.ts +54 -22
  323. package/src/upgrade/image-forms.test.ts +34 -0
  324. package/src/upgrade/image-forms.ts +23 -8
  325. package/src/upgrade/release-images.test.ts +5 -1
  326. package/src/upgrade/release-images.ts +22 -6
  327. package/src/upgrade/upgrade.test.ts +438 -46
  328. package/src/upgrade/upgrade.ts +64 -6
  329. package/src/upgrader-gcp.ts +66 -3
  330. package/src/upgrader-iam-preflight.test.ts +19 -0
  331. package/src/upgrader-iam-preflight.ts +6 -0
  332. package/src/upgrader-job.test.ts +101 -27
  333. package/src/upgrader-job.ts +27 -14
  334. package/src/upgrader-records.test.ts +97 -12
  335. package/src/upgrader-records.ts +28 -11
  336. package/src/upgrader-setup.test.ts +2 -0
  337. package/src/upgrader-setup.ts +10 -4
  338. package/src/wizard.ts +19 -0
  339. package/src/wizards/gcp-cost.test.ts +103 -0
  340. package/src/wizards/gcp-cost.ts +125 -18
  341. package/src/wizards/gcp.ts +164 -22
  342. package/stacks/aws/Pulumi.yaml +1 -1
  343. package/stacks/aws/index.ts +72 -14
  344. package/stacks/azure/index.ts +108 -21
  345. package/stacks/gcp/Pulumi.yaml +1 -1
  346. package/stacks/gcp/README.md +1 -0
  347. package/stacks/gcp/index.ts +133 -24
  348. package/stacks/gcp-firebase/Pulumi.yaml +1 -1
  349. package/stacks/gcp-firebase/index.ts +212 -34
  350. package/stacks/self-hosted/Pulumi.yaml +3 -0
  351. package/stacks/self-hosted/README.md +6 -1
  352. package/stacks/self-hosted/index.ts +40 -5
@@ -4,7 +4,8 @@
4
4
  * Pulumi) creates and maintains, through gcloud:
5
5
  *
6
6
  * - {@link ensureGatewayServiceAccount}: the gateway's own run SA, so it
7
- * can be granted only the secrets the gateway reads.
7
+ * can be granted only the secrets the gateway reads; the same for the
8
+ * MCP-Auth-Proxy ({@link ensureMcpAuthProxyServiceAccount}, #1328).
8
9
  * - {@link ensureGeneratedSecrets}: the secrets in
9
10
  * `CLI_GENERATED_SECRETS` (stack-contract.ts). The wizard runs it before
10
11
  * `pulumi up`, upgrade on every roll, so installs that predate a secret
@@ -21,8 +22,8 @@
21
22
  import { randomBytes } from "node:crypto";
22
23
  import { gcloud as defaultGcloud } from "./gcloud.js";
23
24
  import { realSleep, runWithRetry } from "./gcloud-retry.js";
24
- import { gatewayServiceAccountEmail, gatewayServiceAccountId, gcpSecretId } from "./gcp-names.js";
25
- import { CLI_GENERATED_SECRETS, DATABASE_ROLE_SECRET, GENERATED_SECRET_FORMAT, SERVICE_SECRET_ENV, serviceSecrets, } from "./stack-contract.js";
25
+ import { gatewayServiceAccountEmail, gatewayServiceAccountId, gcpSecretId, mcpAuthProxyServiceAccountEmail, mcpAuthProxyServiceAccountId, } from "./gcp-names.js";
26
+ import { CLI_GENERATED_SECRETS, CLOUD_RUN_SLUGS, DATABASE_ROLE_SECRET, GENERATED_SECRET_FORMAT, SERVICE_SECRET_ENV, serviceSecrets, } from "./stack-contract.js";
26
27
  import { liveContainerEnv } from "./stack-converge.js";
27
28
  /** 32 random bytes as hex — the shape of every secret the stacks generate. */
28
29
  export function generateSecretValue() {
@@ -50,11 +51,21 @@ const ALREADY_EXISTS = /ALREADY_EXISTS|already exists/i;
50
51
  // Gateway service account
51
52
  // ===========================================================================
52
53
  /** Create the gateway's run SA unless it exists. */
53
- export async function ensureGatewayServiceAccount(install, deps = {}) {
54
+ export function ensureGatewayServiceAccount(install, deps = {}) {
55
+ return ensureServiceAccount(install.projectId, gatewayServiceAccountId(install.env), gatewayServiceAccountEmail(install.projectId, install.env), `Caelo ${install.env} gateway`, deps);
56
+ }
57
+ /**
58
+ * #1328 — create the MCP-Auth-Proxy's run SA unless it exists. It gets no
59
+ * role here or anywhere: only `secretAccessor` on its two secrets
60
+ * (stack-contract.ts runtimeSecretBindings).
61
+ */
62
+ export function ensureMcpAuthProxyServiceAccount(install, deps = {}) {
63
+ return ensureServiceAccount(install.projectId, mcpAuthProxyServiceAccountId(install.env), mcpAuthProxyServiceAccountEmail(install.projectId, install.env), `Caelo ${install.env} MCP-Auth-Proxy`, deps);
64
+ }
65
+ async function ensureServiceAccount(projectId, accountId, email, displayName, deps) {
54
66
  const run = deps.run ?? defaultGcloud;
55
- const email = gatewayServiceAccountEmail(install.projectId, install.env);
56
67
  const id = `service account ${email}`;
57
- const project = `--project=${install.projectId}`;
68
+ const project = `--project=${projectId}`;
58
69
  const describe = await run([
59
70
  "iam",
60
71
  "service-accounts",
@@ -72,9 +83,9 @@ export async function ensureGatewayServiceAccount(install, deps = {}) {
72
83
  "iam",
73
84
  "service-accounts",
74
85
  "create",
75
- gatewayServiceAccountId(install.env),
86
+ accountId,
76
87
  project,
77
- `--display-name=Caelo ${install.env} gateway`,
88
+ `--display-name=${displayName}`,
78
89
  "--quiet",
79
90
  ]);
80
91
  if (create.ok || ALREADY_EXISTS.test(create.stderr))
@@ -343,7 +354,7 @@ async function checkRotationReaders(run, target, secret) {
343
354
  const secretId = gcpSecretId(target.env, secret);
344
355
  const isSecret = (live) => live?.kind === "secret" &&
345
356
  (live.secret === secretId || (live.secret?.endsWith(`/secrets/${secretId}`) ?? false));
346
- for (const service of ["admin", "gateway"]) {
357
+ for (const service of CLOUD_RUN_SLUGS) {
347
358
  const vars = Object.entries(SERVICE_SECRET_ENV[service])
348
359
  .filter(([, s]) => s === secret)
349
360
  .map(([name]) => name);
@@ -390,7 +401,13 @@ const SQL_OPERATION_POLLS = 60;
390
401
  * prompt, so it is not used. The bearer token comes from the operator's
391
402
  * gcloud session, like every other call here.
392
403
  */
393
- async function setSqlUserPassword(run, http, sleep, user) {
404
+ async function setSqlUserPassword(run, http, sleep, user,
405
+ /**
406
+ * `update` sets an existing user's password (`users.update`); `create`
407
+ * adds the user with it (`users.insert`, #1329: the staging gateway's
408
+ * login on an install from before it).
409
+ */
410
+ mode) {
394
411
  const token = await run(["auth", "print-access-token"]);
395
412
  const bearer = token.ok ? token.stdout.trim() : "";
396
413
  if (!bearer) {
@@ -405,9 +422,17 @@ async function setSqlUserPassword(run, http, sleep, user) {
405
422
  ok: false,
406
423
  error: `${what}: HTTP ${res.status} ${(await res.text()).slice(0, 500)}`,
407
424
  });
408
- const put = await http(`${project}/instances/${encodeURIComponent(user.instance)}/users?name=${encodeURIComponent(user.role)}`, { method: "PUT", headers, body: JSON.stringify({ name: user.role, password: user.password }) });
425
+ const users = `${project}/instances/${encodeURIComponent(user.instance)}/users`;
426
+ const body = JSON.stringify({ name: user.role, password: user.password });
427
+ const put = mode === "update"
428
+ ? await http(`${users}?name=${encodeURIComponent(user.role)}`, {
429
+ method: "PUT",
430
+ headers,
431
+ body,
432
+ })
433
+ : await http(users, { method: "POST", headers, body });
409
434
  if (!put.ok)
410
- return failed("update the user", put);
435
+ return failed(mode === "update" ? "update the user" : "create the user", put);
411
436
  let op = JSON.parse(await put.text());
412
437
  for (let i = 0; op.status !== "DONE" && i < SQL_OPERATION_POLLS; i++) {
413
438
  if (!op.name)
@@ -498,12 +523,7 @@ export async function rotateRuntimeSecret(target, secret, deps = {}) {
498
523
  return { ok: false, steps, error: `read the current password: ${current.stderr.trim()}` };
499
524
  }
500
525
  const previous = current.stdout;
501
- const setPassword = (role, password) => setSqlUserPassword(run, http, sleep, {
502
- projectId: target.projectId,
503
- instance,
504
- role,
505
- password,
506
- });
526
+ const setPassword = (role, password) => setSqlUserPassword(run, http, sleep, { projectId: target.projectId, instance, role, password }, "update");
507
527
  const changed = [];
508
528
  const restore = async () => {
509
529
  const failed = [];
@@ -544,7 +564,7 @@ export async function rotateRuntimeSecret(target, secret, deps = {}) {
544
564
  }
545
565
  steps.push(`added a new version to ${secretId}`);
546
566
  const failures = [];
547
- for (const service of ["admin", "gateway"]) {
567
+ for (const service of CLOUD_RUN_SLUGS) {
548
568
  if (!serviceSecrets(service).includes(secret))
549
569
  continue;
550
570
  const name = target.services[service];
@@ -606,12 +626,7 @@ export async function ensureDatabaseRolePassword(target, role, deps = {}) {
606
626
  return { id, status: "failed", error: value.error };
607
627
  password = value.value;
608
628
  }
609
- const set = await setSqlUserPassword(run, http, sleep, {
610
- projectId: target.projectId,
611
- instance: target.sqlInstance,
612
- role,
613
- password,
614
- });
629
+ const set = await setSqlUserPassword(run, http, sleep, { projectId: target.projectId, instance: target.sqlInstance, role, password }, deps.create === true ? "create" : "update");
615
630
  return set.ok ? { id, status: "applied" } : { id, status: "failed", error: set.error };
616
631
  }
617
632
  //# sourceMappingURL=runtime-secrets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-secrets.js","sourceRoot":"","sources":["../src/runtime-secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-secrets.js","sourceRoot":"","sources":["../src/runtime-secrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { type GcloudRunner, type Sleep } from "./gcloud-retry.js";
2
+ import { type IapResource } from "./mcp-iap.js";
3
+ /** The admin path the workflow calls (apps/admin `api/internal/scheduler/tick`). */
4
+ export declare const SCHEDULER_TICK_PATH = "/api/internal/scheduler/tick";
5
+ /**
6
+ * How long the workflow waits for the admin's answer, in seconds: Workflows'
7
+ * maximum (cloud.google.com/workflows/docs/reference/stdlib/http/post). The
8
+ * admin holds the request until the tick's work is done: it claims tasks for
9
+ * at most its budget (4 minutes, admin-core scheduler/tick.ts) and then waits
10
+ * at most one task's lease (10 minutes) for the last one, so 14 minutes in
11
+ * the worst case, inside the admin's own 3600 s request timeout.
12
+ */
13
+ export declare const SCHEDULER_TICK_TIMEOUT_SECONDS = 1800;
14
+ /** APIs the tick needs on the project. */
15
+ export declare const SCHEDULER_APIS: readonly ["cloudscheduler.googleapis.com", "workflows.googleapis.com", "iamcredentials.googleapis.com"];
16
+ /**
17
+ * Roles the scheduler's identity must never hold anywhere. Prefix matches
18
+ * (`roles/secretmanager.` = every Secret Manager role).
19
+ */
20
+ export declare const SCHEDULER_FORBIDDEN_ROLES: readonly ["roles/owner", "roles/editor", "roles/viewer", "roles/run.", "roles/iam.serviceAccountUser", "roles/iam.serviceAccountAdmin", "roles/iam.securityAdmin", "roles/iap.admin", "roles/iap.settingsAdmin", "roles/secretmanager.", "roles/cloudsql.", "roles/compute.", "roles/storage.", "roles/resourcemanager.", "roles/workflows.admin", "roles/workflows.editor", "roles/cloudscheduler."];
21
+ export interface SchedulerTickTarget {
22
+ readonly projectId: string;
23
+ readonly region: string;
24
+ /** Pulumi stack name (`production`). */
25
+ readonly env: string;
26
+ /**
27
+ * Where the admin answers behind IAP, an origin: `https://admin.<domain>`
28
+ * on gcp, the admin service's URL on gcp-firebase (remote-mcp.ts
29
+ * RemoteMcpIdentity.adminUrl, the same value as the admin's
30
+ * CAELO_ADMIN_URL).
31
+ */
32
+ readonly adminUrl: string;
33
+ /** The admin's IAP resource (the service on gcp-firebase, the LB backend on gcp). */
34
+ readonly resource: IapResource;
35
+ /** The `schedulerIntervalMinutes` knob (1–15). */
36
+ readonly intervalMinutes: number;
37
+ }
38
+ export type SchedulerTickResult = {
39
+ readonly ok: true;
40
+ readonly done: string[];
41
+ readonly serviceAccount: string;
42
+ } | {
43
+ readonly ok: false;
44
+ readonly done: string[];
45
+ readonly error: string;
46
+ };
47
+ /**
48
+ * The tick's admin origin, or an error naming why it is not one: an https
49
+ * origin without path, query or credentials (it is written into the
50
+ * workflow's source, so nothing but an origin may get there).
51
+ */
52
+ export declare function tickOrigin(adminUrl: string): {
53
+ ok: true;
54
+ origin: string;
55
+ } | {
56
+ ok: false;
57
+ error: string;
58
+ };
59
+ /**
60
+ * The workflow one tick runs (Cloud Workflows YAML): sign a service-account
61
+ * JWT for the admin's IAP as the scheduler account itself (the IAM
62
+ * Credentials API, authenticated with the workflow's own OAuth token), then
63
+ * POST the tick with it. A refused or failed tick (HTTP ≥ 400) fails the
64
+ * execution, so it shows in the workflow's execution history and logs.
65
+ */
66
+ export declare function schedulerWorkflowSource(opts: {
67
+ readonly serviceAccount: string;
68
+ readonly origin: string;
69
+ }): string;
70
+ /** Ensure the scheduler tick and everything it needs. Never throws for a gcloud failure. */
71
+ export declare function ensureSchedulerTick(target: SchedulerTickTarget, deps?: {
72
+ run?: GcloudRunner;
73
+ sleep?: Sleep;
74
+ }): Promise<SchedulerTickResult>;
75
+ //# sourceMappingURL=scheduler-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler-setup.d.ts","sourceRoot":"","sources":["../src/scheduler-setup.ts"],"names":[],"mappings":"AAmDA,OAAO,EAAE,KAAK,YAAY,EAA2B,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO3F,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,cAAc,CAAC;AAGjE,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,OAAO,CAAC;AAKnD,0CAA0C;AAC1C,eAAO,MAAM,cAAc,yGAIjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uYAkB5B,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC/E;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,GACf;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAsB7D;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,CAkCT;AAED,4FAA4F;AAC5F,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAO,GAC/C,OAAO,CAAC,mBAAmB,CAAC,CAmK9B"}
@@ -0,0 +1,331 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ /**
3
+ * #1140 — set up (and converge) the scheduler tick on a Google Cloud install
4
+ * (`gcp`, `gcp-firebase`): the ONE Cloud Scheduler job that calls the
5
+ * admin's `/api/internal/scheduler/tick` every `schedulerIntervalMinutes`
6
+ * (1–15, default 5). Each task's own cadence lives in the admin's
7
+ * due-table; the tick only says "run what is due now". Run by the wizard
8
+ * after migrations and by `cms-provision upgrade`'s converge (and the
9
+ * converge job), as the operator's or the provisioner's identity.
10
+ *
11
+ * Why not Cloud Scheduler → admin directly. The admin sits behind IAP, and
12
+ * IAP accepts a service account's OIDC ID token only when its `aud` is an
13
+ * OAuth client allowlisted for programmatic access; an install on the
14
+ * Google-managed IAP client has none (cloud.google.com/iap/docs/
15
+ * authentication-howto). Cloud Scheduler's other credential, an OAuth
16
+ * access token, it sends only to `*.googleapis.com` (cloud.google.com/
17
+ * scheduler/docs/http-target-auth). What passes IAP for a service account
18
+ * on every install is a self-signed service-account JWT with `aud` =
19
+ * `<admin origin>/*` — the path caelo-mcp and admin-internal-google.ts
20
+ * take. Cloud Scheduler cannot sign one, so the job starts a Cloud
21
+ * Workflows execution (a googleapis.com target, OAuth), and the workflow
22
+ * signs the JWT as the scheduler account through the IAM Credentials API
23
+ * and POSTs the tick. No container per tick and no image to keep in step
24
+ * with the app-roll; cents a month (wizards/gcp-cost.ts).
25
+ *
26
+ * Why the CLI owns it and not the stacks: the same as audit-job-setup.ts —
27
+ * `upgrade` never runs Pulumi, and existing installs get the tick from here.
28
+ *
29
+ * Trust boundary. The scheduler's identity, `caelo-<env>-scheduler`, holds:
30
+ *
31
+ * - `roles/iam.serviceAccountTokenCreator` on ITSELF only (signJwt);
32
+ * - `roles/iap.httpsResourceAccessor` on the admin's IAP resource (the
33
+ * operator-access sync job keeps it there, operator-access.ts);
34
+ * - `roles/workflows.invoker` on the project (Cloud Scheduler starts the
35
+ * workflow as it; Workflows has no per-workflow IAM policy to bind to);
36
+ * - `roles/logging.logWriter` (the workflow's error call logs).
37
+ *
38
+ * Nothing else: no Secret Manager, no Cloud SQL, no Cloud Run rights. What
39
+ * it can do with the admin is the admin's to decide: the tick endpoint
40
+ * accepts exactly this account's IAP identity (`CAELO_SCHEDULER_SERVICE_
41
+ * ACCOUNT` on the admin) and only ever runs the due-table, never a build
42
+ * or a publish (scripts/no-automatic-production-deploy.test.ts).
43
+ * {@link SCHEDULER_FORBIDDEN_ROLES} names that line; the tests assert no
44
+ * grant crosses it.
45
+ */
46
+ import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
47
+ import { tmpdir } from "node:os";
48
+ import { join } from "node:path";
49
+ import { gcloud as defaultGcloud } from "./gcloud.js";
50
+ import { realSleep, runWithRetry } from "./gcloud-retry.js";
51
+ import { schedulerJobName, schedulerServiceAccountEmail, schedulerServiceAccountId, schedulerWorkflowName, } from "./gcp-names.js";
52
+ import { iapResourceArgs } from "./mcp-iap.js";
53
+ import { schedulerCron } from "./stack-contract.js";
54
+ /** The admin path the workflow calls (apps/admin `api/internal/scheduler/tick`). */
55
+ export const SCHEDULER_TICK_PATH = "/api/internal/scheduler/tick";
56
+ /**
57
+ * How long the workflow waits for the admin's answer, in seconds: Workflows'
58
+ * maximum (cloud.google.com/workflows/docs/reference/stdlib/http/post). The
59
+ * admin holds the request until the tick's work is done: it claims tasks for
60
+ * at most its budget (4 minutes, admin-core scheduler/tick.ts) and then waits
61
+ * at most one task's lease (10 minutes) for the last one, so 14 minutes in
62
+ * the worst case, inside the admin's own 3600 s request timeout.
63
+ */
64
+ export const SCHEDULER_TICK_TIMEOUT_SECONDS = 1800;
65
+ /** Lifetime of the IAP credential the workflow signs per tick. */
66
+ const JWT_LIFETIME_SECONDS = 600;
67
+ /** APIs the tick needs on the project. */
68
+ export const SCHEDULER_APIS = [
69
+ "cloudscheduler.googleapis.com",
70
+ "workflows.googleapis.com",
71
+ "iamcredentials.googleapis.com",
72
+ ];
73
+ /**
74
+ * Roles the scheduler's identity must never hold anywhere. Prefix matches
75
+ * (`roles/secretmanager.` = every Secret Manager role).
76
+ */
77
+ export const SCHEDULER_FORBIDDEN_ROLES = [
78
+ "roles/owner",
79
+ "roles/editor",
80
+ "roles/viewer",
81
+ "roles/run.",
82
+ "roles/iam.serviceAccountUser",
83
+ "roles/iam.serviceAccountAdmin",
84
+ "roles/iam.securityAdmin",
85
+ "roles/iap.admin",
86
+ "roles/iap.settingsAdmin",
87
+ "roles/secretmanager.",
88
+ "roles/cloudsql.",
89
+ "roles/compute.",
90
+ "roles/storage.",
91
+ "roles/resourcemanager.",
92
+ "roles/workflows.admin",
93
+ "roles/workflows.editor",
94
+ "roles/cloudscheduler.",
95
+ ];
96
+ /**
97
+ * The tick's admin origin, or an error naming why it is not one: an https
98
+ * origin without path, query or credentials (it is written into the
99
+ * workflow's source, so nothing but an origin may get there).
100
+ */
101
+ export function tickOrigin(adminUrl) {
102
+ let u;
103
+ try {
104
+ u = new URL(adminUrl);
105
+ }
106
+ catch {
107
+ return { ok: false, error: `the admin URL ${JSON.stringify(adminUrl)} is not a URL` };
108
+ }
109
+ if (u.protocol !== "https:" ||
110
+ u.username ||
111
+ u.password ||
112
+ (u.pathname !== "/" && u.pathname !== "") ||
113
+ u.search ||
114
+ u.hash ||
115
+ !/^[a-z0-9.-]+$/.test(u.hostname)) {
116
+ return {
117
+ ok: false,
118
+ error: `the admin URL ${JSON.stringify(adminUrl)} is not a plain https origin`,
119
+ };
120
+ }
121
+ return { ok: true, origin: u.origin };
122
+ }
123
+ /**
124
+ * The workflow one tick runs (Cloud Workflows YAML): sign a service-account
125
+ * JWT for the admin's IAP as the scheduler account itself (the IAM
126
+ * Credentials API, authenticated with the workflow's own OAuth token), then
127
+ * POST the tick with it. A refused or failed tick (HTTP ≥ 400) fails the
128
+ * execution, so it shows in the workflow's execution history and logs.
129
+ */
130
+ export function schedulerWorkflowSource(opts) {
131
+ const { serviceAccount: sa, origin } = opts;
132
+ return `# Caelo scheduler tick (#1140) — generated by cms-provision, do not edit.
133
+ main:
134
+ steps:
135
+ - claims:
136
+ assign:
137
+ - now: \${int(sys.now())}
138
+ - jwtClaims:
139
+ iss: "${sa}"
140
+ sub: "${sa}"
141
+ aud: "${origin}/*"
142
+ iat: \${now}
143
+ exp: \${now + ${JWT_LIFETIME_SECONDS}}
144
+ - sign:
145
+ call: http.post
146
+ args:
147
+ url: "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/${sa}:signJwt"
148
+ auth:
149
+ type: OAuth2
150
+ body:
151
+ payload: \${json.encode_to_string(jwtClaims)}
152
+ result: signed
153
+ - tick:
154
+ call: http.post
155
+ args:
156
+ url: "${origin}${SCHEDULER_TICK_PATH}"
157
+ headers:
158
+ Authorization: \${"Bearer " + signed.body.signedJwt}
159
+ timeout: ${SCHEDULER_TICK_TIMEOUT_SECONDS}
160
+ result: answer
161
+ - done:
162
+ return: \${answer.code}
163
+ `;
164
+ }
165
+ /** Ensure the scheduler tick and everything it needs. Never throws for a gcloud failure. */
166
+ export async function ensureSchedulerTick(target, deps = {}) {
167
+ const run = deps.run ?? defaultGcloud;
168
+ const sleep = deps.sleep ?? realSleep;
169
+ const retry = (args) => runWithRetry(run, sleep, args);
170
+ const { projectId, region, env } = target;
171
+ const project = `--project=${projectId}`;
172
+ const sa = schedulerServiceAccountEmail(projectId, env);
173
+ const member = `serviceAccount:${sa}`;
174
+ const workflow = schedulerWorkflowName(env);
175
+ const job = schedulerJobName(env);
176
+ const done = [];
177
+ const fail = (step, r) => ({
178
+ ok: false,
179
+ done,
180
+ error: `${step}: ${r.stderr.trim()}`,
181
+ });
182
+ const origin = tickOrigin(target.adminUrl);
183
+ if (!origin.ok)
184
+ return { ok: false, done, error: origin.error };
185
+ let cron;
186
+ try {
187
+ cron = schedulerCron(target.intervalMinutes);
188
+ }
189
+ catch (e) {
190
+ return { ok: false, done, error: e.message };
191
+ }
192
+ // 1. APIs.
193
+ const api = await run(["services", "enable", ...SCHEDULER_APIS, project, "--quiet"]);
194
+ if (!api.ok)
195
+ return fail(`enable ${SCHEDULER_APIS.join(", ")}`, api);
196
+ done.push(`APIs enabled (${SCHEDULER_APIS.join(", ")})`);
197
+ // 2. The scheduler's own service account.
198
+ const describe = await run([
199
+ "iam",
200
+ "service-accounts",
201
+ "describe",
202
+ sa,
203
+ project,
204
+ "--format=value(email)",
205
+ ]);
206
+ if (!describe.ok) {
207
+ const create = await run([
208
+ "iam",
209
+ "service-accounts",
210
+ "create",
211
+ schedulerServiceAccountId(env),
212
+ "--display-name=Caelo scheduler tick",
213
+ "--description=Calls the admin's scheduler tick through IAP every few minutes; signs its own IAP credential, nothing else.",
214
+ project,
215
+ ]);
216
+ if (!create.ok && !/already exists/i.test(create.stderr))
217
+ return fail(`create ${sa}`, create);
218
+ }
219
+ done.push(`service account ${sa}`);
220
+ // 3. Its grants (see the file comment).
221
+ const self = await retry([
222
+ "iam",
223
+ "service-accounts",
224
+ "add-iam-policy-binding",
225
+ sa,
226
+ `--member=${member}`,
227
+ "--role=roles/iam.serviceAccountTokenCreator",
228
+ "--condition=None",
229
+ project,
230
+ "--quiet",
231
+ "--format=none",
232
+ ]);
233
+ if (!self.ok)
234
+ return fail("let the scheduler sign its IAP credential as itself", self);
235
+ done.push(`scheduler: roles/iam.serviceAccountTokenCreator on ${sa} (itself, signJwt)`);
236
+ for (const g of [
237
+ { role: "roles/workflows.invoker", why: "Cloud Scheduler starts the tick workflow as it" },
238
+ { role: "roles/logging.logWriter", why: "the workflow logs failed calls" },
239
+ ]) {
240
+ const r = await retry([
241
+ "projects",
242
+ "add-iam-policy-binding",
243
+ projectId,
244
+ `--member=${member}`,
245
+ `--role=${g.role}`,
246
+ "--condition=None",
247
+ "--quiet",
248
+ "--format=none",
249
+ ]);
250
+ if (!r.ok)
251
+ return fail(`grant the scheduler ${g.role} (${g.why})`, r);
252
+ done.push(`scheduler: ${g.role} on the project`);
253
+ }
254
+ const iap = await retry([
255
+ "iap",
256
+ "web",
257
+ "add-iam-policy-binding",
258
+ ...iapResourceArgs(target.resource),
259
+ `--member=${member}`,
260
+ "--role=roles/iap.httpsResourceAccessor",
261
+ "--condition=None",
262
+ project,
263
+ "--quiet",
264
+ ]);
265
+ if (!iap.ok)
266
+ return fail("let the scheduler pass the admin's IAP", iap);
267
+ done.push(`scheduler: roles/iap.httpsResourceAccessor on the admin (${target.resource.service})`);
268
+ // 4. The workflow. A private directory (mkdtemp, mode 700): no other local
269
+ // user can swap the file between write and read.
270
+ const dir = mkdtempSync(join(tmpdir(), "caelo-scheduler-"));
271
+ try {
272
+ const file = join(dir, "tick.yaml");
273
+ writeFileSync(file, schedulerWorkflowSource({ serviceAccount: sa, origin: origin.origin }), {
274
+ mode: 0o600,
275
+ });
276
+ const deploy = await retry([
277
+ "workflows",
278
+ "deploy",
279
+ workflow,
280
+ `--source=${file}`,
281
+ `--location=${region}`,
282
+ `--service-account=${sa}`,
283
+ "--call-log-level=log-errors-only",
284
+ `--description=Caelo scheduler tick (#1140): calls ${origin.origin}${SCHEDULER_TICK_PATH}`,
285
+ project,
286
+ "--quiet",
287
+ ]);
288
+ if (!deploy.ok)
289
+ return fail(`deploy workflow ${workflow}`, deploy);
290
+ }
291
+ finally {
292
+ rmSync(dir, { recursive: true, force: true });
293
+ }
294
+ done.push(`workflow ${workflow} (calls ${origin.origin}${SCHEDULER_TICK_PATH})`);
295
+ // 5. The one Cloud Scheduler job.
296
+ const scheduleArgs = [
297
+ job,
298
+ `--location=${region}`,
299
+ project,
300
+ `--schedule=${cron}`,
301
+ "--time-zone=Etc/UTC",
302
+ `--uri=https://workflowexecutions.googleapis.com/v1/projects/${projectId}/locations/${region}/workflows/${workflow}/executions`,
303
+ "--http-method=POST",
304
+ `--oauth-service-account-email=${sa}`,
305
+ // A tick that has not answered when the next one is due is the admin's
306
+ // lease to sort out (its due-table), not a reason to retry this one.
307
+ "--max-retry-attempts=0",
308
+ "--quiet",
309
+ ];
310
+ const existing = await run([
311
+ "scheduler",
312
+ "jobs",
313
+ "describe",
314
+ job,
315
+ `--location=${region}`,
316
+ project,
317
+ "--format=value(name)",
318
+ ]);
319
+ const sched = await retry([
320
+ "scheduler",
321
+ "jobs",
322
+ existing.ok ? "update" : "create",
323
+ "http",
324
+ ...scheduleArgs,
325
+ ]);
326
+ if (!sched.ok)
327
+ return fail(`schedule ${job}`, sched);
328
+ done.push(`Cloud Scheduler job ${job} (${cron}, UTC)`);
329
+ return { ok: true, done, serviceAccount: sa };
330
+ }
331
+ //# sourceMappingURL=scheduler-setup.js.map