@caelo-cms/provisioning 0.10.29 → 0.10.30

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 (82) hide show
  1. package/dist/admin-domain.d.ts +54 -0
  2. package/dist/admin-domain.d.ts.map +1 -0
  3. package/dist/admin-domain.js +122 -0
  4. package/dist/admin-domain.js.map +1 -0
  5. package/dist/cli.js +65 -6
  6. package/dist/cli.js.map +1 -1
  7. package/dist/compose.d.ts +7 -9
  8. package/dist/compose.d.ts.map +1 -1
  9. package/dist/compose.js +17 -1
  10. package/dist/compose.js.map +1 -1
  11. package/dist/deployed-release.d.ts +67 -0
  12. package/dist/deployed-release.d.ts.map +1 -0
  13. package/dist/deployed-release.js +144 -0
  14. package/dist/deployed-release.js.map +1 -0
  15. package/dist/gcloud-retry.d.ts +16 -0
  16. package/dist/gcloud-retry.d.ts.map +1 -0
  17. package/dist/gcloud-retry.js +17 -0
  18. package/dist/gcloud-retry.js.map +1 -0
  19. package/dist/gcloud.d.ts.map +1 -1
  20. package/dist/gcloud.js +2 -0
  21. package/dist/gcloud.js.map +1 -1
  22. package/dist/gcp-names.d.ts +58 -0
  23. package/dist/gcp-names.d.ts.map +1 -0
  24. package/dist/gcp-names.js +88 -0
  25. package/dist/gcp-names.js.map +1 -0
  26. package/dist/install-state.d.ts +31 -0
  27. package/dist/install-state.d.ts.map +1 -1
  28. package/dist/install-state.js +38 -0
  29. package/dist/install-state.js.map +1 -1
  30. package/dist/lifecycle.d.ts.map +1 -1
  31. package/dist/lifecycle.js +314 -46
  32. package/dist/lifecycle.js.map +1 -1
  33. package/dist/mcp-iap.d.ts +5 -26
  34. package/dist/mcp-iap.d.ts.map +1 -1
  35. package/dist/mcp-iap.js +6 -18
  36. package/dist/mcp-iap.js.map +1 -1
  37. package/dist/migration-runner.d.ts +25 -0
  38. package/dist/migration-runner.d.ts.map +1 -1
  39. package/dist/migration-runner.js +60 -19
  40. package/dist/migration-runner.js.map +1 -1
  41. package/dist/operator-access.d.ts +83 -0
  42. package/dist/operator-access.d.ts.map +1 -0
  43. package/dist/operator-access.js +562 -0
  44. package/dist/operator-access.js.map +1 -0
  45. package/dist/runtime-secrets.d.ts +128 -0
  46. package/dist/runtime-secrets.d.ts.map +1 -0
  47. package/dist/runtime-secrets.js +444 -0
  48. package/dist/runtime-secrets.js.map +1 -0
  49. package/dist/stack-contract.d.ts +231 -0
  50. package/dist/stack-contract.d.ts.map +1 -0
  51. package/dist/stack-contract.js +455 -0
  52. package/dist/stack-contract.js.map +1 -0
  53. package/dist/stack-converge.d.ts +183 -0
  54. package/dist/stack-converge.d.ts.map +1 -0
  55. package/dist/stack-converge.js +513 -0
  56. package/dist/stack-converge.js.map +1 -0
  57. package/dist/wizard.d.ts.map +1 -1
  58. package/dist/wizard.js +8 -1
  59. package/dist/wizard.js.map +1 -1
  60. package/dist/wizards/gcp-cost.d.ts +6 -10
  61. package/dist/wizards/gcp-cost.d.ts.map +1 -1
  62. package/dist/wizards/gcp-cost.js +34 -2
  63. package/dist/wizards/gcp-cost.js.map +1 -1
  64. package/dist/wizards/gcp-pulumi.d.ts +32 -1
  65. package/dist/wizards/gcp-pulumi.d.ts.map +1 -1
  66. package/dist/wizards/gcp-pulumi.js +60 -5
  67. package/dist/wizards/gcp-pulumi.js.map +1 -1
  68. package/dist/wizards/gcp.d.ts.map +1 -1
  69. package/dist/wizards/gcp.js +79 -16
  70. package/dist/wizards/gcp.js.map +1 -1
  71. package/package.json +3 -3
  72. package/stacks/aws/Pulumi.yaml +4 -0
  73. package/stacks/aws/index.ts +11 -0
  74. package/stacks/azure/Pulumi.yaml +4 -0
  75. package/stacks/azure/index.ts +10 -1
  76. package/stacks/gcp/Pulumi.yaml +4 -3
  77. package/stacks/gcp/README.md +13 -2
  78. package/stacks/gcp/index.ts +200 -140
  79. package/stacks/gcp-firebase/Pulumi.yaml +4 -0
  80. package/stacks/gcp-firebase/index.ts +165 -75
  81. package/stacks/self-hosted/Pulumi.yaml +4 -0
  82. package/stacks/self-hosted/index.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-iap.d.ts","sourceRoot":"","sources":["../src/mcp-iap.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEzE,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,kEAAkE;AAClE,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAQpE,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzD;AAKD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,GAAG,OAAO,CACT;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACzF,CAgFA"}
1
+ {"version":3,"file":"mcp-iap.d.ts","sourceRoot":"","sources":["../src/mcp-iap.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,KAAK,YAAY,EAA2B,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG3F,kEAAkE;AAClE,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,EAAE,CAI/D;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GAAG,OAAO,CACT;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACzF,CAwEA"}
package/dist/mcp-iap.js CHANGED
@@ -21,11 +21,10 @@
21
21
  * `claude mcp add` command.
22
22
  */
23
23
  import { gcloud as defaultGcloud } from "./gcloud.js";
24
- export const MCP_IAP_SERVICE_ACCOUNT_ID = "caelo-mcp";
25
- export function mcpIapServiceAccountEmail(projectId) {
26
- return `${MCP_IAP_SERVICE_ACCOUNT_ID}@${projectId}.iam.gserviceaccount.com`;
27
- }
28
- function iapResourceArgs(resource) {
24
+ import { realSleep, runWithRetry } from "./gcloud-retry.js";
25
+ import { MCP_IAP_SERVICE_ACCOUNT_ID, mcpIapServiceAccountEmail } from "./gcp-names.js";
26
+ /** `gcloud iap web …` flags addressing {@link IapResource}. */
27
+ export function iapResourceArgs(resource) {
29
28
  return resource.kind === "cloud-run"
30
29
  ? ["--resource-type=cloud-run", `--service=${resource.service}`, `--region=${resource.region}`]
31
30
  : ["--resource-type=backend-services", `--service=${resource.service}`];
@@ -38,24 +37,13 @@ export function iapOperators(policyJson) {
38
37
  .flatMap((b) => b.members ?? []);
39
38
  return [...new Set(members.filter((m) => m.startsWith("user:") || m.startsWith("group:")))];
40
39
  }
41
- const SA_NOT_YET_VISIBLE = /does not exist|not found|NOT_FOUND/i;
42
- const RETRY_DELAYS_MS = [2_000, 4_000, 8_000, 16_000];
43
40
  export async function ensureMcpIapAccess(opts) {
44
41
  const run = opts.run ?? defaultGcloud;
45
- const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
42
+ const sleep = opts.sleep ?? realSleep;
46
43
  const project = `--project=${opts.projectId}`;
47
44
  const sa = mcpIapServiceAccountEmail(opts.projectId);
48
45
  // A freshly created SA takes a few seconds to become bindable.
49
- const withRetry = async (args) => {
50
- let r = await run(args);
51
- for (const delay of RETRY_DELAYS_MS) {
52
- if (r.ok || !SA_NOT_YET_VISIBLE.test(r.stderr))
53
- break;
54
- await sleep(delay);
55
- r = await run(args);
56
- }
57
- return r;
58
- };
46
+ const withRetry = (args) => runWithRetry(run, sleep, args);
59
47
  const describe = await run([
60
48
  "iam",
61
49
  "service-accounts",
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-iap.js","sourceRoot":"","sources":["../src/mcp-iap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-iap.js","sourceRoot":"","sources":["../src/mcp-iap.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,31 @@ interface MigrationRunnerOpts {
2
2
  readonly projectId: string;
3
3
  readonly region: string;
4
4
  }
5
+ interface AdminConfig {
6
+ readonly imageRef: string;
7
+ /** Cloud SQL private IP, from the admin's ADMIN_DATABASE_URL. */
8
+ readonly databaseHost: string;
9
+ readonly networkRef: string;
10
+ readonly subnetRef: string;
11
+ /**
12
+ * Whether the admin already reads the database password from Secret
13
+ * Manager. If not, its image may predate `databaseUrlFromEnv` and can't
14
+ * run a job with password-less URLs.
15
+ */
16
+ readonly secretEnv: boolean;
17
+ }
18
+ /**
19
+ * The database env of a migration/truncate job: the admin's URLs (no
20
+ * password) as plain vars, the password vars as Secret Manager references
21
+ * — the same pairs the admin service carries. The job runs as the admin's
22
+ * run SA, which can read them.
23
+ */
24
+ export declare function migrationJobEnvArgs(databaseHost: string, env?: string): string[];
25
+ /**
26
+ * The job config from the admin service (`gcloud run services describe
27
+ * --format=json`), or null when something the job needs is missing.
28
+ */
29
+ export declare function parseAdminConfig(serviceJson: string): AdminConfig | null;
5
30
  /**
6
31
  * Run admin + public migrations against Cloud SQL. Returns `{ok}` so
7
32
  * callers can decide what to do on failure (the wizard exits the
@@ -1 +1 @@
1
- {"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../src/migration-runner.ts"],"names":[],"mappings":"AAuBA,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AA2FD;;;;GAIG;AACH;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuE1C;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,mBAAmB,GAAG;IAC1B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC,GACA,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkF1C"}
1
+ {"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../src/migration-runner.ts"],"names":[],"mappings":"AA4BA,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,MAAM,EAAE,CAavF;AAwCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA8CxE;AAED;;;;GAIG;AACH;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0E1C;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,mBAAmB,GAAG;IAC1B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC,GACA,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuF1C"}
@@ -8,7 +8,9 @@
8
8
  * `bun /app/packages/migrations/src/migrate.ts <target>` against the
9
9
  * private-IP Cloud SQL instance. The job inherits the running admin
10
10
  * Cloud Run's image (so it always carries the matching migration set)
11
- * + its DB URLs + its network/subnet.
11
+ * + its database host + its network/subnet. Its database env follows the
12
+ * env contract (stack-contract.ts): password-less URLs plus the password
13
+ * as a Secret Manager reference, so the job spec never holds a password.
12
14
  *
13
15
  * Idempotent: drizzle's `__drizzle_migrations` table tracks applied
14
16
  * versions, so re-runs only apply NEW migrations. Returns `{ok}` so
@@ -18,8 +20,32 @@
18
20
  import { spinner } from "@clack/prompts";
19
21
  import { green, red } from "kleur/colors";
20
22
  import { gcloud } from "./gcloud.js";
23
+ import { GCP_STACK_ENV, gcpSecretId, runServiceAccountEmail } from "./gcp-names.js";
24
+ import { databaseUrls, SERVICE_SECRET_ENV } from "./stack-contract.js";
25
+ import { liveContainerEnv, liveDatabaseHost } from "./stack-converge.js";
26
+ /** Why a job on the installed admin image would fail, for an install `upgrade` hasn't moved over. */
27
+ const NEEDS_UPGRADE = "the admin still reads the database password from its plain env, so its image may predate Secret Manager runtime secrets and can't run a job with password-less URLs. Run `upgrade` first.";
21
28
  /**
22
- * Resolve the running admin Cloud Run service's image + DB URLs +
29
+ * The database env of a migration/truncate job: the admin's URLs (no
30
+ * password) as plain vars, the password vars as Secret Manager references
31
+ * — the same pairs the admin service carries. The job runs as the admin's
32
+ * run SA, which can read them.
33
+ */
34
+ export function migrationJobEnvArgs(databaseHost, env = GCP_STACK_ENV) {
35
+ const urls = databaseUrls(databaseHost);
36
+ const passwords = ["ADMIN_DATABASE_PASSWORD", "PUBLIC_ADMIN_DATABASE_PASSWORD"].map((name) => {
37
+ const secret = SERVICE_SECRET_ENV.admin[name];
38
+ if (!secret)
39
+ throw new Error(`the admin env contract has no ${name}`);
40
+ return `${name}=${gcpSecretId(env, secret)}:latest`;
41
+ });
42
+ return [
43
+ `--set-env-vars=ADMIN_DATABASE_URL=${urls.admin},PUBLIC_ADMIN_DATABASE_URL=${urls.publicAdmin}`,
44
+ `--set-secrets=${passwords.join(",")}`,
45
+ ];
46
+ }
47
+ /**
48
+ * Resolve the running admin Cloud Run service's image + database host +
23
49
  * VPC config. Returns null on any failure; caller surfaces the error.
24
50
  */
25
51
  async function readAdminConfig(opts) {
@@ -55,18 +81,19 @@ async function readAdminConfig(opts) {
55
81
  ]);
56
82
  if (!descr.ok)
57
83
  return null;
84
+ return parseAdminConfig(descr.stdout);
85
+ }
86
+ /**
87
+ * The job config from the admin service (`gcloud run services describe
88
+ * --format=json`), or null when something the job needs is missing.
89
+ */
90
+ export function parseAdminConfig(serviceJson) {
58
91
  try {
59
- const d = JSON.parse(descr.stdout);
92
+ const d = JSON.parse(serviceJson);
60
93
  const c = d.spec.template.spec.containers[0];
61
94
  const imageRef = c?.image ?? "";
62
- let adminUrl = "";
63
- let publicUrl = "";
64
- for (const e of c?.env ?? []) {
65
- if (e.name === "ADMIN_DATABASE_URL")
66
- adminUrl = e.value ?? "";
67
- if (e.name === "PUBLIC_ADMIN_DATABASE_URL")
68
- publicUrl = e.value ?? "";
69
- }
95
+ const liveEnv = liveContainerEnv(serviceJson);
96
+ const host = liveDatabaseHost(liveEnv);
70
97
  let networkRef = "";
71
98
  let subnetRef = "";
72
99
  const niAnnotation = d.spec.template.metadata?.annotations?.["run.googleapis.com/network-interfaces"];
@@ -85,9 +112,15 @@ async function readAdminConfig(opts) {
85
112
  networkRef ||= ni?.network ?? "";
86
113
  subnetRef ||= ni?.subnetwork ?? "";
87
114
  }
88
- if (!imageRef || !adminUrl || !publicUrl || !networkRef || !subnetRef)
115
+ if (!imageRef || !host.ok || !networkRef || !subnetRef)
89
116
  return null;
90
- return { imageRef, adminUrl, publicUrl, networkRef, subnetRef };
117
+ return {
118
+ imageRef,
119
+ databaseHost: host.host,
120
+ networkRef,
121
+ subnetRef,
122
+ secretEnv: liveEnv.get("ADMIN_DATABASE_PASSWORD")?.kind === "secret",
123
+ };
91
124
  }
92
125
  catch {
93
126
  return null;
@@ -116,6 +149,10 @@ export async function truncateViaCloudRunJob(opts) {
116
149
  sAdmin.stop(red("Couldn't resolve admin config — admin may not be deployed yet"));
117
150
  return { ok: false, error: "admin-config-unresolved" };
118
151
  }
152
+ if (!cfg.secretEnv) {
153
+ sAdmin.stop(red(`Not truncating: ${NEEDS_UPGRADE}`));
154
+ return { ok: false, error: NEEDS_UPGRADE };
155
+ }
119
156
  sAdmin.stop(green(`Admin config resolved (${cfg.imageRef.slice(-19)})`));
120
157
  for (const target of ["admin", "public"]) {
121
158
  const s = spinner();
@@ -142,7 +179,7 @@ export async function truncateViaCloudRunJob(opts) {
142
179
  "--project",
143
180
  opts.projectId,
144
181
  "--service-account",
145
- `caelo-production-run-sa@${opts.projectId}.iam.gserviceaccount.com`,
182
+ runServiceAccountEmail(opts.projectId, GCP_STACK_ENV),
146
183
  "--network",
147
184
  cfg.networkRef.split("/").pop() ?? cfg.networkRef,
148
185
  "--subnet",
@@ -150,8 +187,7 @@ export async function truncateViaCloudRunJob(opts) {
150
187
  "--vpc-egress=private-ranges-only",
151
188
  "--command=bun",
152
189
  `--args=--bun,/app/packages/migrations/src/truncate.ts,${target}`,
153
- "--set-env-vars",
154
- `ADMIN_DATABASE_URL=${cfg.adminUrl},PUBLIC_ADMIN_DATABASE_URL=${cfg.publicUrl}`,
190
+ ...migrationJobEnvArgs(cfg.databaseHost),
155
191
  "--max-retries=0",
156
192
  "--task-timeout=5m",
157
193
  "--quiet",
@@ -187,6 +223,12 @@ export async function runMigrationsViaCloudRunJob(opts) {
187
223
  sAdmin.stop(red("Couldn't resolve admin config — admin may not be deployed yet"));
188
224
  return { ok: false, error: "admin-config-unresolved" };
189
225
  }
226
+ // With an override (upgrade) the job runs the NEW release, which reads
227
+ // the split env; without one it runs the installed image.
228
+ if (!opts.imageOverride && !cfg.secretEnv) {
229
+ sAdmin.stop(red(`Not migrating: ${NEEDS_UPGRADE}`));
230
+ return { ok: false, error: NEEDS_UPGRADE };
231
+ }
190
232
  const migrationImage = opts.imageOverride ?? cfg.imageRef;
191
233
  if (opts.imageOverride && opts.imageOverride !== cfg.imageRef) {
192
234
  sAdmin.stop(green(`Admin config resolved; migrating against NEW image (${migrationImage.slice(-19)}) instead of current (${cfg.imageRef.slice(-19)})`));
@@ -221,7 +263,7 @@ export async function runMigrationsViaCloudRunJob(opts) {
221
263
  "--project",
222
264
  opts.projectId,
223
265
  "--service-account",
224
- `caelo-production-run-sa@${opts.projectId}.iam.gserviceaccount.com`,
266
+ runServiceAccountEmail(opts.projectId, GCP_STACK_ENV),
225
267
  "--network",
226
268
  cfg.networkRef.split("/").pop() ?? cfg.networkRef,
227
269
  "--subnet",
@@ -229,8 +271,7 @@ export async function runMigrationsViaCloudRunJob(opts) {
229
271
  "--vpc-egress=private-ranges-only",
230
272
  "--command=bun",
231
273
  `--args=--bun,/app/packages/migrations/src/migrate.ts,${target}`,
232
- "--set-env-vars",
233
- `ADMIN_DATABASE_URL=${cfg.adminUrl},PUBLIC_ADMIN_DATABASE_URL=${cfg.publicUrl}`,
274
+ ...migrationJobEnvArgs(cfg.databaseHost),
234
275
  "--max-retries=0",
235
276
  "--task-timeout=10m",
236
277
  "--quiet",
@@ -1 +1 @@
1
- {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../src/migration-runner.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAerC;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,IAAyB;IACtD,iEAAiE;IACjE,0CAA0C;IAC1C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;QACxB,KAAK;QACL,UAAU;QACV,MAAM;QACN,UAAU;QACV,IAAI,CAAC,MAAM;QACX,WAAW;QACX,IAAI,CAAC,SAAS;QACd,UAAU;QACV,uCAAuC;QACvC,+BAA+B;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;QACzB,KAAK;QACL,UAAU;QACV,UAAU;QACV,WAAW;QACX,UAAU;QACV,IAAI,CAAC,MAAM;QACX,WAAW;QACX,IAAI,CAAC,SAAS;QACd,eAAe;KAChB,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAUhC,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;gBAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,2BAA2B;gBAAE,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,uCAAuC,CAAC,CAAC;QACnF,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAgD,CAAC;gBACvF,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;gBACtC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,UAAU,KAAK,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC;YACjC,SAAS,KAAK,EAAE,EAAE,UAAU,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACnF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;QAClF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACzD,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzE,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAU,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,eAAe,MAAM,uCAAuC,CAAC,CAAC;QACtE,MAAM,MAAM,CAAC;YACX,KAAK;YACL,MAAM;YACN,QAAQ;YACR,kBAAkB,MAAM,EAAE;YAC1B,UAAU;YACV,IAAI,CAAC,MAAM;YACX,WAAW;YACX,IAAI,CAAC,SAAS;YACd,SAAS;SACV,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,KAAK;YACL,MAAM;YACN,QAAQ;YACR,kBAAkB,MAAM,EAAE;YAC1B,WAAW,GAAG,CAAC,QAAQ,EAAE;YACzB,UAAU;YACV,IAAI,CAAC,MAAM;YACX,WAAW;YACX,IAAI,CAAC,SAAS;YACd,mBAAmB;YACnB,2BAA2B,IAAI,CAAC,SAAS,0BAA0B;YACnE,WAAW;YACX,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU;YACjD,UAAU;YACV,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,SAAS;YAC/C,kCAAkC;YAClC,eAAe;YACf,yDAAyD,MAAM,EAAE;YACjE,gBAAgB;YAChB,sBAAsB,GAAG,CAAC,QAAQ,8BAA8B,GAAG,CAAC,SAAS,EAAE;YAC/E,iBAAiB;YACjB,mBAAmB;YACnB,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QACpF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;YACxB,KAAK;YACL,MAAM;YACN,SAAS;YACT,kBAAkB,MAAM,EAAE;YAC1B,UAAU;YACV,IAAI,CAAC,MAAM;YACX,WAAW;YACX,IAAI,CAAC,SAAS;YACd,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,qBAAqB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QAChF,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAaC;IAED,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC,CAAC;QAClF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACzD,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC1D,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CACT,KAAK,CACH,uDAAuD,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,yBAAyB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CACpI,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAU,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,YAAY,MAAM,2CAA2C,CAAC,CAAC;QACvE,+DAA+D;QAC/D,oCAAoC;QACpC,MAAM,MAAM,CAAC;YACX,KAAK;YACL,MAAM;YACN,QAAQ;YACR,iBAAiB,MAAM,EAAE;YACzB,UAAU;YACV,IAAI,CAAC,MAAM;YACX,WAAW;YACX,IAAI,CAAC,SAAS;YACd,SAAS;SACV,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,KAAK;YACL,MAAM;YACN,QAAQ;YACR,iBAAiB,MAAM,EAAE;YACzB,WAAW,cAAc,EAAE;YAC3B,UAAU;YACV,IAAI,CAAC,MAAM;YACX,WAAW;YACX,IAAI,CAAC,SAAS;YACd,mBAAmB;YACnB,2BAA2B,IAAI,CAAC,SAAS,0BAA0B;YACnE,WAAW;YACX,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU;YACjD,UAAU;YACV,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,SAAS;YAC/C,kCAAkC;YAClC,eAAe;YACf,wDAAwD,MAAM,EAAE;YAChE,gBAAgB;YAChB,sBAAsB,GAAG,CAAC,QAAQ,8BAA8B,GAAG,CAAC,SAAS,EAAE;YAC/E,iBAAiB;YACjB,oBAAoB;YACpB,SAAS;SACV,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,MAAM,YAAY,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QACnF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;YACxB,KAAK;YACL,MAAM;YACN,SAAS;YACT,iBAAiB,MAAM,EAAE;YACzB,UAAU;YACV,IAAI,CAAC,MAAM;YACX,WAAW;YACX,IAAI,CAAC,SAAS;YACd,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,uBAAuB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,MAAM,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/E,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,qBAAqB,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../src/migration-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { type GcloudRunner, type Sleep } from "./gcloud-retry.js";
2
+ import { type IapResource } from "./mcp-iap.js";
3
+ /** A project-level custom role, created by the CLI (never declared in the stacks). */
4
+ export interface CustomRoleSpec {
5
+ readonly roleId: string;
6
+ readonly title: string;
7
+ readonly description: string;
8
+ readonly permissions: readonly string[];
9
+ }
10
+ /** The only IAM-writing rights in this feature, held by the sync job's SA alone. */
11
+ export declare const OPERATOR_ACCESS_ROLE: CustomRoleSpec;
12
+ /** `projects/<project>/roles/<roleId>` — the name IAM bindings reference. */
13
+ export declare function customRoleName(projectId: string, roleId: string): string;
14
+ /**
15
+ * The install's IAP allowlist: who passes IAP regardless of the user list.
16
+ * The wizard passes the same list to the stacks (`iapAllowlist`), and the
17
+ * job keeps these members instead of removing them, so `pulumi up` and the
18
+ * job never fight.
19
+ */
20
+ export declare function installIapAllowlist(ownerEmail: string): string[];
21
+ /** Database role migration 0239 creates for the job. */
22
+ export declare const OPERATOR_ACCESS_DB_ROLE = "operator_access_reader";
23
+ /** The `iap_web` path of an IAP resource, as the IAP REST API names it. */
24
+ export declare function iapWebPath(resource: IapResource): string;
25
+ /** The flags of a Cloud SQL instance with `cloudsql.iam_authentication` on. */
26
+ export declare function withIamAuthFlag(flags: readonly {
27
+ name: string;
28
+ value: string;
29
+ }[]): {
30
+ name: string;
31
+ value: string;
32
+ }[] | null;
33
+ export interface OperatorAccessSyncTarget {
34
+ readonly projectId: string;
35
+ readonly region: string;
36
+ /** Pulumi stack name (`production`). */
37
+ readonly env: string;
38
+ readonly ownerEmail: string;
39
+ /** The admin's IAP resource (resolved by the caller). */
40
+ readonly resource: IapResource;
41
+ /** Image the job runs: the admin image being deployed. */
42
+ readonly imageRef: string;
43
+ /** VPC the admin uses to reach Cloud SQL's private IP. */
44
+ readonly network: string;
45
+ readonly subnet: string;
46
+ readonly databaseHost: string;
47
+ }
48
+ export type OperatorAccessSyncResult = {
49
+ readonly ok: true;
50
+ readonly done: string[];
51
+ } | {
52
+ readonly ok: false;
53
+ readonly done: string[];
54
+ readonly error: string;
55
+ };
56
+ /** Ensure the operator-access sync job and everything it needs. Never throws for a gcloud failure. */
57
+ export declare function ensureOperatorAccessSync(target: OperatorAccessSyncTarget, deps?: {
58
+ run?: GcloudRunner;
59
+ sleep?: Sleep;
60
+ }): Promise<OperatorAccessSyncResult>;
61
+ /**
62
+ * Everything {@link ensureOperatorAccessSync} needs, read from the deployed
63
+ * admin service: its network, the database host, and its IAP resource (the
64
+ * service itself on gcp-firebase, the LB backend service on gcp). `imageRef`
65
+ * overrides the image the job runs (upgrade passes the release it rolls to).
66
+ */
67
+ export declare function resolveOperatorAccessTarget(opts: {
68
+ readonly provider: "gcp" | "gcp-firebase";
69
+ readonly projectId: string;
70
+ readonly region: string;
71
+ readonly env: string;
72
+ readonly ownerEmail: string;
73
+ readonly imageRef?: string;
74
+ }, deps?: {
75
+ run?: GcloudRunner;
76
+ }): Promise<{
77
+ ok: true;
78
+ target: OperatorAccessSyncTarget;
79
+ } | {
80
+ ok: false;
81
+ error: string;
82
+ }>;
83
+ //# sourceMappingURL=operator-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-access.d.ts","sourceRoot":"","sources":["../src/operator-access.ts"],"names":[],"mappings":"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"}