@caelo-cms/provisioning 0.3.0 → 0.3.2

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.
package/dist/gcloud.d.ts CHANGED
@@ -25,7 +25,7 @@ export declare function listBillingAccounts(): Promise<BillingAccount[]>;
25
25
  export declare function projectExists(projectId: string): Promise<boolean>;
26
26
  export declare function createProject(projectId: string, displayName: string): Promise<GcloudResult>;
27
27
  export declare function linkBilling(projectId: string, billingAccountId: string): Promise<GcloudResult>;
28
- export declare function enableApis(projectId: string): Promise<GcloudResult>;
28
+ export declare function enableApis(projectId: string, provider?: "gcp" | "gcp-firebase"): Promise<GcloudResult>;
29
29
  export declare function serviceAccountExists(projectId: string, saEmail: string): Promise<boolean>;
30
30
  export declare function createServiceAccount(projectId: string, accountId: string, displayName: string): Promise<GcloudResult>;
31
31
  /**
@@ -38,5 +38,6 @@ export declare function grantProvisionerRoles(projectId: string, saEmail: string
38
38
  }>;
39
39
  export declare function createServiceAccountKey(saEmail: string, outputPath: string): Promise<GcloudResult>;
40
40
  export declare const REQUIRED_API_LIST: readonly string[];
41
+ export declare const GCP_FIREBASE_EXTRA_API_LIST: readonly string[];
41
42
  export declare const PROVISIONER_ROLE_LIST: readonly string[];
42
43
  //# sourceMappingURL=gcloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcloud.d.ts","sourceRoot":"","sources":["../src/gcloud.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAqBjG;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAK5D;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAiBrE;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,YAAY,CAAC,CAEvB;AAqBD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAEzE;AAED,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW/F;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAWvB;AA6BD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAmBhD;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,CAUvB;AAED,eAAO,MAAM,iBAAiB,mBAAgB,CAAC;AAC/C,eAAO,MAAM,qBAAqB,mBAAoB,CAAC"}
1
+ {"version":3,"file":"gcloud.d.ts","sourceRoot":"","sources":["../src/gcloud.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAqBjG;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAK5D;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAiBrE;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAEjG;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,YAAY,CAAC,CAEvB;AA6BD,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,KAAK,GAAG,cAAsB,GACvC,OAAO,CAAC,YAAY,CAAC,CAIvB;AAED,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW/F;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAWvB;AA6BD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAmBhD;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,CAUvB;AAED,eAAO,MAAM,iBAAiB,mBAAgB,CAAC;AAC/C,eAAO,MAAM,2BAA2B,mBAA0B,CAAC;AACnE,eAAO,MAAM,qBAAqB,mBAAoB,CAAC"}
package/dist/gcloud.js CHANGED
@@ -92,8 +92,16 @@ const REQUIRED_APIS = [
92
92
  // service account that forwards authenticated requests to Cloud Run.
93
93
  "serviceusage.googleapis.com",
94
94
  ];
95
- export async function enableApis(projectId) {
96
- return gcloud(["services", "enable", ...REQUIRED_APIS, "--project", projectId]);
95
+ // v0.3.1 — gcp-firebase provider needs the Firebase Management +
96
+ // Firebase Hosting APIs on top of the gcp baseline. Without these
97
+ // the Pulumi `gcp.firebase.HostingSite` resource fails to create.
98
+ const GCP_FIREBASE_EXTRA_APIS = [
99
+ "firebase.googleapis.com",
100
+ "firebasehosting.googleapis.com",
101
+ ];
102
+ export async function enableApis(projectId, provider = "gcp") {
103
+ const apis = provider === "gcp-firebase" ? [...REQUIRED_APIS, ...GCP_FIREBASE_EXTRA_APIS] : REQUIRED_APIS;
104
+ return gcloud(["services", "enable", ...apis, "--project", projectId]);
97
105
  }
98
106
  export async function serviceAccountExists(projectId, saEmail) {
99
107
  const r = await gcloud([
@@ -183,5 +191,6 @@ export async function createServiceAccountKey(saEmail, outputPath) {
183
191
  ]);
184
192
  }
185
193
  export const REQUIRED_API_LIST = REQUIRED_APIS;
194
+ export const GCP_FIREBASE_EXTRA_API_LIST = GCP_FIREBASE_EXTRA_APIS;
186
195
  export const PROVISIONER_ROLE_LIST = PROVISIONER_ROLES;
187
196
  //# sourceMappingURL=gcloud.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcloud.js","sourceRoot":"","sources":["../src/gcloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcloud.js","sourceRoot":"","sources":["../src/gcloud.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-firebase.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-firebase.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CrF"}
1
+ {"version":3,"file":"gcp-firebase.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-firebase.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BrF"}
@@ -33,14 +33,12 @@ export async function runGcpFirebaseWizard(opts) {
33
33
  "Lower fixed cost than the `gcp` provider (no LB ~$18/mo savings).",
34
34
  "Trade-off: no Cloud Armor on the gateway — in-app rate limits + Firebase Edge DDoS only.",
35
35
  ].join("\n"));
36
- // For v0.3.0 the wizard delegates the gcloud pre-Pulumi steps to
37
- // the shared `runGcpWizard` since they're structurally identical
38
- // (project, billing, APIs, SA, secrets capture). The Pulumi stack
39
- // differs but the wizard arguments stay the same.
40
- //
41
- // The shared wizard knows to use the gcp-firebase stack folder
42
- // via the `provider` config the operator set earlier in
43
- // saveProvider().
36
+ // v0.3.1 — the gcloud pre-Pulumi steps are structurally identical
37
+ // (project, billing, APIs, SA, secrets capture) and the shared
38
+ // `runGcpWizard` flow now accepts a `provider` arg that:
39
+ // - enables the additional Firebase APIs in stepEnableApis
40
+ // - routes the final pulumiUpGcp at stacks/gcp-firebase
41
+ // - uses the caelo-gcp-firebase config namespace
44
42
  const { runGcpWizard } = await import("./gcp.js");
45
43
  await runGcpWizard({
46
44
  installId: opts.installId,
@@ -48,16 +46,7 @@ export async function runGcpFirebaseWizard(opts) {
48
46
  ownerEmail: opts.ownerEmail,
49
47
  projectId: opts.projectId,
50
48
  nonInteractive: opts.nonInteractive,
49
+ provider: "gcp-firebase",
51
50
  });
52
- note([
53
- `Next: run \`pulumi up\` against the gcp-firebase stack:`,
54
- ` cd packages/provisioning/stacks/gcp-firebase`,
55
- ` pulumi stack init prod`,
56
- ` pulumi config set caelo-gcp-firebase:domain ${opts.domain}`,
57
- ` pulumi config set caelo-gcp-firebase:ownerEmail ${opts.ownerEmail}`,
58
- ` pulumi up`,
59
- "",
60
- `Once Pulumi finishes, DNS instructions for the apex (${opts.domain}) and admin (admin.${opts.domain}) print to the console.`,
61
- ].join("\n"), "Pulumi (gcp-firebase stack)");
62
51
  }
63
52
  //# sourceMappingURL=gcp-firebase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-firebase.js","sourceRoot":"","sources":["../../src/wizards/gcp-firebase.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAU1C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAA2B;IACpE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAChD,IAAI,CACF;QACE,6BAA6B;QAC7B,KAAK,IAAI,CAAC,kBAAkB,CAAC,6DAA6D;QAC1F,KAAK,IAAI,CAAC,kBAAkB,CAAC,+CAA+C;QAC5E,KAAK,IAAI,CAAC,mBAAmB,CAAC,0CAA0C;QACxE,EAAE;QACF,mEAAmE;QACnE,0FAA0F;KAC3F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,iEAAiE;IACjE,iEAAiE;IACjE,kEAAkE;IAClE,kDAAkD;IAClD,EAAE;IACF,+DAA+D;IAC/D,wDAAwD;IACxD,kBAAkB;IAClB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,YAAY,CAAC;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC,CAAC;IAEH,IAAI,CACF;QACE,yDAAyD;QACzD,gDAAgD;QAChD,0BAA0B;QAC1B,iDAAiD,IAAI,CAAC,MAAM,EAAE;QAC9D,qDAAqD,IAAI,CAAC,UAAU,EAAE;QACtE,aAAa;QACb,EAAE;QACF,wDAAwD,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,MAAM,yBAAyB;KAC9H,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,6BAA6B,CAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"gcp-firebase.js","sourceRoot":"","sources":["../../src/wizards/gcp-firebase.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAU1C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAA2B;IACpE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAChD,IAAI,CACF;QACE,6BAA6B;QAC7B,KAAK,IAAI,CAAC,kBAAkB,CAAC,6DAA6D;QAC1F,KAAK,IAAI,CAAC,kBAAkB,CAAC,+CAA+C;QAC5E,KAAK,IAAI,CAAC,mBAAmB,CAAC,0CAA0C;QACxE,EAAE;QACF,mEAAmE;QACnE,0FAA0F;KAC3F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,kEAAkE;IAClE,+DAA+D;IAC/D,yDAAyD;IACzD,6DAA6D;IAC7D,0DAA0D;IAC1D,mDAAmD;IACnD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,YAAY,CAAC;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,QAAQ,EAAE,cAAc;KACzB,CAAC,CAAC;AACL,CAAC"}
@@ -8,7 +8,6 @@ export interface PulumiUpInputs {
8
8
  region: string;
9
9
  saKeyPath: string;
10
10
  pulumiPassphrase: string;
11
- anthropicApiKey: string;
12
11
  cloudSqlTier: string;
13
12
  cloudSqlHa: boolean;
14
13
  adminMinInstances: number;
@@ -19,6 +18,12 @@ export interface PulumiUpInputs {
19
18
  * pre-resolves the floating `:main` tag to a fixed digest so each
20
19
  * pulumi up rolls Cloud Run to the freshest published image. */
21
20
  imageDigests: Record<string, string>;
21
+ /**
22
+ * v0.3.1 — provider variant. Selects which stack dir to apply
23
+ * + which config namespace (caelo-gcp vs caelo-gcp-firebase).
24
+ * Defaults to 'gcp' for backwards compatibility.
25
+ */
26
+ provider?: "gcp" | "gcp-firebase";
22
27
  }
23
28
  export interface PulumiUpResult {
24
29
  outputs: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-pulumi.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;qEAEiE;IACjE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAeD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACrE,OAAO,CAAC,cAAc,CAAC,CAmFzB"}
1
+ {"version":3,"file":"gcp-pulumi.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;qEAEiE;IACjE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAeD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACrE,OAAO,CAAC,cAAc,CAAC,CA8FzB"}
@@ -15,12 +15,12 @@ import * as pulumi from "@pulumi/pulumi/automation";
15
15
  * Works whether the CLI runs from source (apps/admin/scripts/...)
16
16
  * or from the published npm tarball (node_modules/@caelo-cms/...).
17
17
  */
18
- function gcpStackWorkDir() {
19
- // The Pulumi.yaml + stacks/gcp/index.ts ship in the npm tarball
20
- // under `stacks/gcp/`. From this file's location at runtime
21
- // (dist/wizards/gcp-pulumi.js), the stack dir is two levels up
22
- // + into stacks/gcp/.
23
- return resolvePath(import.meta.dir, "../../stacks/gcp");
18
+ function gcpStackWorkDir(provider = "gcp") {
19
+ // The Pulumi.yaml + stacks/<provider>/index.ts ship in the npm
20
+ // tarball under `stacks/<provider>/`. From this file's location at
21
+ // runtime (dist/wizards/gcp-pulumi.js), the stack dir is two
22
+ // levels up + into the provider-specific stack folder.
23
+ return resolvePath(import.meta.dir, `../../stacks/${provider}`);
24
24
  }
25
25
  /**
26
26
  * Run `pulumi up` against the GCP stack via the Automation SDK.
@@ -38,8 +38,12 @@ export async function pulumiUpGcp(inputs, onEvent) {
38
38
  // Pulumi local-backend state lives under the install's state dir.
39
39
  PULUMI_BACKEND_URL: `file://${join(inputs.installRoot, "state")}`,
40
40
  };
41
+ const provider = inputs.provider ?? "gcp";
41
42
  const stackName = "production";
42
- const workDir = gcpStackWorkDir();
43
+ const workDir = gcpStackWorkDir(provider);
44
+ // Pulumi config namespace mirrors the stack's `name:` field in
45
+ // Pulumi.yaml (caelo-gcp vs caelo-gcp-firebase).
46
+ const ns = `caelo-${provider}`;
43
47
  const stack = await pulumi.LocalWorkspace.createOrSelectStack({
44
48
  stackName,
45
49
  workDir,
@@ -48,20 +52,27 @@ export async function pulumiUpGcp(inputs, onEvent) {
48
52
  });
49
53
  // Set every config value the stack reads. Secrets via setConfig with
50
54
  // {value, secret: true}; Pulumi encrypts them in state.
55
+ // wafAdaptiveProtection is gcp-only; the gcp-firebase stack has no
56
+ // Cloud Armor + ignores the key, but setting it does no harm.
51
57
  await stack.setAllConfig({
52
- "caelo-gcp:project": { value: inputs.projectId },
53
- "caelo-gcp:domain": { value: inputs.domain },
54
- "caelo-gcp:ownerEmail": { value: inputs.ownerEmail },
55
- "caelo-gcp:region": { value: inputs.region },
56
- "caelo-gcp:cloudSqlTier": { value: inputs.cloudSqlTier },
57
- "caelo-gcp:cloudSqlHa": { value: String(inputs.cloudSqlHa) },
58
- "caelo-gcp:adminMinInstances": { value: String(inputs.adminMinInstances) },
59
- "caelo-gcp:gatewayMinInstances": { value: String(inputs.gatewayMinInstances) },
60
- "caelo-gcp:wafAdaptiveProtection": { value: String(inputs.wafAdaptiveProtection) },
61
- "caelo-gcp:iapAllowlist": { value: inputs.iapAllowlist.join(",") },
62
- "caelo-gcp:anthropicApiKey": { value: inputs.anthropicApiKey, secret: true },
58
+ [`${ns}:project`]: { value: inputs.projectId },
59
+ [`${ns}:domain`]: { value: inputs.domain },
60
+ [`${ns}:ownerEmail`]: { value: inputs.ownerEmail },
61
+ [`${ns}:region`]: { value: inputs.region },
62
+ [`${ns}:cloudSqlTier`]: { value: inputs.cloudSqlTier },
63
+ [`${ns}:cloudSqlHa`]: { value: String(inputs.cloudSqlHa) },
64
+ [`${ns}:adminMinInstances`]: { value: String(inputs.adminMinInstances) },
65
+ [`${ns}:gatewayMinInstances`]: { value: String(inputs.gatewayMinInstances) },
66
+ ...(provider === "gcp"
67
+ ? { [`${ns}:wafAdaptiveProtection`]: { value: String(inputs.wafAdaptiveProtection) } }
68
+ : {}),
69
+ [`${ns}:iapAllowlist`]: { value: inputs.iapAllowlist.join(",") },
70
+ // v0.3.2 — anthropicApiKey config dropped. Runtime path is
71
+ // /security/ai → ai_providers (KEK-encrypted). The pre-v0.3.2
72
+ // Secret + SecretVersion in Secret Manager were never mounted
73
+ // on Cloud Run, so the config was dead.
63
74
  ...Object.fromEntries(Object.entries(inputs.imageDigests).map(([service, digest]) => [
64
- `caelo-gcp:image-digest-${service}`,
75
+ `${ns}:image-digest-${service}`,
65
76
  { value: digest },
66
77
  ])),
67
78
  });
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-pulumi.js","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcp-pulumi.js","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,13 @@ export interface GcpWizardOpts {
4
4
  ownerEmail: string;
5
5
  projectId: string | null;
6
6
  nonInteractive: boolean;
7
+ /**
8
+ * v0.3.1 — provider variant. 'gcp' is the LB-based topology;
9
+ * 'gcp-firebase' adds Firebase Hosting + Cloud Run direct. The
10
+ * variant gates per-provider gcloud steps (e.g. Firebase APIs
11
+ * enablement, Search Console verification prompts).
12
+ */
13
+ provider?: "gcp" | "gcp-firebase";
7
14
  }
8
15
  export declare function runGcpWizard(opts: GcpWizardOpts): Promise<void>;
9
16
  //# sourceMappingURL=gcp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcp.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp.ts"],"names":[],"mappings":"AAqEA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2JrE"}
1
+ {"version":3,"file":"gcp.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp.ts"],"names":[],"mappings":"AA6DA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;CACnC;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKrE"}
@@ -9,18 +9,20 @@
9
9
  * 6. Enables 13 APIs in one call
10
10
  * 7. Creates the provisioner SA + grants 15 IAM roles
11
11
  * 8. Mints a JSON SA key into `~/.caelo-<install-id>/secrets/sa-key.json`
12
- * 9. Captures Anthropic API key (input-hidden) → secrets/anthropic-api-key
13
- * 10. Generates Pulumi passphrase if absent → secrets/pulumi-passphrase
14
- * 11. Pre-flight cost-estimate table; single y/N confirm
15
- * 12. Pulumi up via the Automation SDK; streams progress
16
- * 13. Prints DNS records + bootstrap URL (IAP runs on the LB
17
- * BackendService; no post-up gcloud step needed)
12
+ * 9. Generates Pulumi passphrase if absent → secrets/pulumi-passphrase
13
+ * 10. Pre-flight cost-estimate table; single y/N confirm
14
+ * 11. Pulumi up via the Automation SDK; streams progress
15
+ * 12. Prints DNS records + bootstrap URL + a note pointing the
16
+ * operator at /security/ai for AI provider key configuration
17
+ * (the runtime path; pre-v0.3.2 there was a wizard prompt for
18
+ * the Anthropic key but it landed in Secret Manager + never
19
+ * reached the running admin — dead code, dropped).
18
20
  */
19
21
  import { randomBytes } from "node:crypto";
20
22
  import { existsSync, readFileSync } from "node:fs";
21
23
  import { homedir } from "node:os";
22
24
  import { join } from "node:path";
23
- import { cancel, confirm, isCancel, log, note, password, select, spinner, text, } from "@clack/prompts";
25
+ import { cancel, confirm, isCancel, log, note, select, spinner, text } from "@clack/prompts";
24
26
  import { bold, cyan, dim, green, red, yellow } from "kleur/colors";
25
27
  import { pickDnsAdapter } from "../dns/index.js";
26
28
  import { activeAccount, createProject, createServiceAccount, createServiceAccountKey, enableApis, gcloud, grantProvisionerRoles, linkBilling, listBillingAccounts, PROVISIONER_ROLE_LIST, projectExists, REQUIRED_API_LIST, serviceAccountExists, } from "../gcloud.js";
@@ -46,14 +48,19 @@ export async function runGcpWizard(opts) {
46
48
  // === 4. Billing link ===
47
49
  await stepBillingLink(installId, projectId, opts.nonInteractive);
48
50
  // === 5. Enable APIs ===
49
- await stepEnableApis(installId, projectId);
51
+ await stepEnableApis(installId, projectId, opts.provider ?? "gcp");
50
52
  // === 6. Service account + roles + key ===
51
53
  const saEmail = `${SA_ACCOUNT_ID}@${projectId}.iam.gserviceaccount.com`;
52
54
  await stepServiceAccount(installId, projectId, saEmail);
53
55
  await stepGrantRoles(installId, projectId, saEmail);
54
56
  const keyPath = await stepMintKey(installId, projectId, saEmail, secretsDir);
55
- // === 7. Anthropic API key + Pulumi passphrase ===
56
- const anthropicKey = await stepAnthropicKey(installId, opts.nonInteractive);
57
+ // === 7. Pulumi passphrase ===
58
+ // v0.3.2 — removed the legacy `stepAnthropicKey` prompt. The
59
+ // runtime AI provider configuration lives at /security/ai (the
60
+ // key is encrypted under the project KEK and stored in
61
+ // ai_providers). Pre-v0.3.2 the wizard captured a key + stored
62
+ // it in Secret Manager but the Cloud Run service never read it,
63
+ // so the prompt was dead UX cost.
57
64
  const pulumiPassphrase = stepPulumiPassphrase(installId);
58
65
  const region = "europe-west1";
59
66
  if (meta)
@@ -111,7 +118,6 @@ export async function runGcpWizard(opts) {
111
118
  region,
112
119
  saKeyPath: keyPath,
113
120
  pulumiPassphrase,
114
- anthropicApiKey: anthropicKey,
115
121
  cloudSqlTier: costInputs.cloudSqlTier,
116
122
  cloudSqlHa: costInputs.cloudSqlHa,
117
123
  adminMinInstances: costInputs.adminMinInstances,
@@ -119,6 +125,9 @@ export async function runGcpWizard(opts) {
119
125
  wafAdaptiveProtection: costInputs.wafAdaptiveProtection,
120
126
  iapAllowlist: [`user:${ownerEmail}`],
121
127
  imageDigests,
128
+ // v0.3.1 — route pulumi up at the right stack folder + use the
129
+ // matching config namespace.
130
+ provider: opts.provider ?? "gcp",
122
131
  });
123
132
  // === 10. Wait for managed cert to flip from PROVISIONING → ACTIVE ===
124
133
  // Pulumi reports the cert "created" the moment GCP queues it; the
@@ -324,22 +333,29 @@ async function stepBillingLink(installId, projectId, nonInteractive) {
324
333
  s.stop(green("Billing linked"));
325
334
  markStepDone(installId, stepName, { billingAccountId: chosen.id });
326
335
  }
327
- async function stepEnableApis(installId, projectId) {
328
- const stepName = `enable-apis-${projectId}`;
336
+ async function stepEnableApis(installId, projectId, provider = "gcp") {
337
+ // v0.3.1 — gcp-firebase needs the Firebase Management + Firebase
338
+ // Hosting APIs on top of the gcp baseline. Re-key the step name
339
+ // so installs that initially ran with `gcp` and then re-ran with
340
+ // `gcp-firebase` (re-key clears the checkpoint) re-enable the
341
+ // additional APIs. The base APIs are idempotent → re-enabling
342
+ // is a no-op.
343
+ const stepName = `enable-apis-${provider}-${projectId}`;
344
+ const apiCount = provider === "gcp-firebase" ? REQUIRED_API_LIST.length + 2 : REQUIRED_API_LIST.length;
329
345
  if (isStepDone(installId, stepName)) {
330
- log.success(`APIs enabled ${dim(`(${REQUIRED_API_LIST.length} services, checkpointed)`)}`);
346
+ log.success(`APIs enabled ${dim(`(${apiCount} services, checkpointed)`)}`);
331
347
  return;
332
348
  }
333
349
  const s = spinner();
334
- s.start(`Enabling ${REQUIRED_API_LIST.length} GCP APIs (15-30s)...`);
335
- const r = await enableApis(projectId);
350
+ s.start(`Enabling ${apiCount} GCP APIs (15-30s)...`);
351
+ const r = await enableApis(projectId, provider);
336
352
  if (!r.ok) {
337
353
  s.stop(red(`Failed: ${r.stderr.trim()}`));
338
354
  cancel("Aborted.");
339
355
  process.exit(1);
340
356
  }
341
- s.stop(green(`${REQUIRED_API_LIST.length} APIs enabled`));
342
- markStepDone(installId, stepName, { count: REQUIRED_API_LIST.length });
357
+ s.stop(green(`${apiCount} APIs enabled`));
358
+ markStepDone(installId, stepName, { count: apiCount });
343
359
  }
344
360
  async function stepServiceAccount(installId, projectId, saEmail) {
345
361
  const stepName = `service-account-${SA_ACCOUNT_ID}`;
@@ -400,37 +416,6 @@ async function stepMintKey(installId, projectId, saEmail, secretsDir) {
400
416
  markStepDone(installId, stepName, { path: keyPath });
401
417
  return keyPath;
402
418
  }
403
- async function stepAnthropicKey(installId, nonInteractive) {
404
- const existing = readSecret(installId, "anthropic-api-key");
405
- if (existing) {
406
- log.success(`Anthropic API key ${dim("(reused from secrets/, not re-prompted)")}`);
407
- return existing;
408
- }
409
- if (nonInteractive) {
410
- log.error(red("Missing Anthropic API key + --non-interactive — cannot proceed."));
411
- log.warn(`Write the key to ${bold(`~/.caelo-${installId}/secrets/anthropic-api-key`)} (mode 600) then re-run.`);
412
- cancel("Aborted.");
413
- process.exit(1);
414
- }
415
- const value = await password({
416
- message: "Anthropic API key (input hidden; saved to secrets/anthropic-api-key)",
417
- validate: (v) => {
418
- if (!v || v.length < 20)
419
- return "Looks too short — Anthropic keys start with sk-ant-";
420
- if (!v.startsWith("sk-"))
421
- return "Should start with sk-";
422
- return undefined;
423
- },
424
- });
425
- if (isCancel(value)) {
426
- cancel("Cancelled.");
427
- process.exit(0);
428
- }
429
- const key = value.trim();
430
- writeSecret(installId, "anthropic-api-key", key);
431
- log.success(`Anthropic key saved → ${dim(`~/.caelo-${installId}/secrets/anthropic-api-key`)}`);
432
- return key;
433
- }
434
419
  function stepPulumiPassphrase(installId) {
435
420
  const existing = readSecret(installId, "pulumi-passphrase");
436
421
  if (existing) {
@@ -456,6 +441,7 @@ async function stepPulumiUp(installId, opts) {
456
441
  installRoot: root,
457
442
  secretsDir,
458
443
  ...opts,
444
+ provider: opts.provider ?? "gcp",
459
445
  }, (kind, message) => {
460
446
  if (kind === "resource") {
461
447
  resourceCount++;
@@ -882,6 +868,10 @@ async function stepFinalize(installId) {
882
868
  bold("Owner setup (open in your browser):"),
883
869
  ` ${cyan(String(bootstrapUrl))}`,
884
870
  "",
871
+ bold("Configure AI provider:"),
872
+ ` After first login, visit ${cyan(`https://admin.${meta.domain}/security/ai`)} to paste your Anthropic API key.`,
873
+ ` The key is encrypted under the project KEK + stored in ai_providers — no env-var management.`,
874
+ "",
885
875
  bold("Lifecycle commands:"),
886
876
  ` ${dim("bunx @caelo-cms/provisioning status")} — health check + monthly cost`,
887
877
  ` ${dim("bunx @caelo-cms/provisioning upgrade")} — pull latest images + roll Cloud Run`,
@@ -1 +1 @@
1
- {"version":3,"file":"gcp.js","sourceRoot":"","sources":["../../src/wizards/gcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcp.js","sourceRoot":"","sources":["../../src/wizards/gcp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caelo-cms/provisioning",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "private": false,
5
5
  "license": "MPL-2.0",
6
6
  "description": "Pulumi-driven provisioning for Caelo CMS — `bunx @caelo-cms/provisioning --provider <self-hosted|gcp|aws|azure>` brings up a TLS-served install with Postgres + storage + secrets manager + the admin + the API gateway.",
@@ -38,7 +38,7 @@
38
38
  "prepublishOnly": "tsc -b --force"
39
39
  },
40
40
  "dependencies": {
41
- "@caelo-cms/shared": "^0.3.0",
41
+ "@caelo-cms/shared": "^0.3.2",
42
42
  "@clack/prompts": "1.3.0",
43
43
  "@pulumi/aws": "^7",
44
44
  "@pulumi/awsx": "^3",
@@ -24,15 +24,11 @@ config:
24
24
  caelo-gcp:project:
25
25
  type: string
26
26
  description: GCP project id.
27
- caelo-gcp:anthropicApiKey:
28
- type: string
29
- secret: true
30
- default: ""
31
- description: |
32
- OPTIONAL backwards-compat. Operators configure AI provider keys via
33
- /security/ai after first login (encrypted into ai_providers via the
34
- project KEK). Leave empty for fresh installs; set this only if you
35
- need the legacy ANTHROPIC_API_KEY env-var path on Cloud Run.
27
+ # v0.3.2 — anthropicApiKey config dropped. Runtime path is
28
+ # /security/ai → ai_providers (KEK-encrypted). Pre-v0.3.2 the
29
+ # wizard captured a key + Pulumi provisioned a Secret +
30
+ # SecretVersion, but the Cloud Run service never read it — dead
31
+ # config removed.
36
32
  # The 8 cross-provider knobs (CLAUDE.md §11.B)
37
33
  caelo-gcp:region:
38
34
  type: string
@@ -160,12 +160,13 @@ const cookieSecret = pulumi.secret(cookieSecretBytes.hex);
160
160
  // (see comment above). Cloud Run binds it as CAELO_SECRET_KEK env
161
161
  // via `valueSource.secretKeyRef` below.
162
162
  const caeloSecretKek = pulumi.secret(kekBytes.hex);
163
- // anthropicApiKey is now OPTIONAL — operators configure the key via
164
- // /security/ai (encrypted into ai_providers) after first login. Setting
165
- // it via Pulumi config is supported as a backwards-compat path for
166
- // installs that already wired it before P18; the Secret resource still
167
- // exists in either case so a future v1 can be added without redeploying.
168
- const anthropicApiKeyConfig = cfg.getSecret("anthropicApiKey");
163
+ // v0.3.2 — anthropic-api-key Secret + Pulumi config dropped. The
164
+ // runtime AI provider configuration lives at /security/ai (key
165
+ // encrypted under the project KEK + stored in ai_providers).
166
+ // Pre-v0.3.2 the wizard prompted for a key + Pulumi provisioned a
167
+ // Secret + SecretVersion, but the Cloud Run service never read it
168
+ // (no env-var mount existed). Dead code path removed.
169
+ //
169
170
  // resendApiKey is OPTIONAL — empty config means "skip the SecretVersion"
170
171
  // so GCP doesn't reject `payload: ""`. The Secret resource itself still
171
172
  // exists; operators add a v1 later via `gcloud secrets versions add`.
@@ -197,10 +198,9 @@ const pgSecret = makeSecret("postgres-password", postgresPassword);
197
198
  const csrfSecretRes = makeSecret("csrf-secret", csrfSecret);
198
199
  const cookieSecretRes = makeSecret("cookie-secret", cookieSecret);
199
200
  const kekSecret = makeSecret("secret-kek", caeloSecretKek);
200
- // Anthropic key is optional now — operators configure providers via
201
- // /security/ai after first login. Skip the v1 when no key is in config;
202
- // the Secret resource still exists for backwards-compat env-var path.
203
- const anthropicSecretRes = makeSecret("anthropic-api-key", anthropicApiKeyConfig ?? null);
201
+ // v0.3.2 — anthropic-api-key Secret dropped. See the
202
+ // caeloSecretKek comment above for the runtime-path rationale.
203
+ //
204
204
  // Resend: skip the v1 when no key is configured (cfg.getSecret returns
205
205
  // undefined when the key is unset in Pulumi.yaml + not overridden in the
206
206
  // stack config). The Secret resource still exists; operators add a v1
@@ -384,7 +384,6 @@ for (const made of [
384
384
  { name: "csrf-secret", made: csrfSecretRes },
385
385
  { name: "cookie-secret", made: cookieSecretRes },
386
386
  { name: "secret-kek", made: kekSecret },
387
- { name: "anthropic-api-key", made: anthropicSecretRes },
388
387
  { name: "resend-api-key", made: resendSecretRes },
389
388
  ]) {
390
389
  new gcp.secretmanager.SecretIamMember(
@@ -30,11 +30,8 @@ config:
30
30
  caelo-gcp-firebase:project:
31
31
  type: string
32
32
  description: GCP project id (also the Firebase project — Firebase Hosting requires the Firebase Management API to be enabled on the same project).
33
- caelo-gcp-firebase:anthropicApiKey:
34
- type: string
35
- secret: true
36
- default: ""
37
- description: OPTIONAL backwards-compat. Operators configure AI provider keys via /security/ai after first login.
33
+ # v0.3.2 — anthropicApiKey config dropped. Runtime path is
34
+ # /security/ai → ai_providers (KEK-encrypted).
38
35
  # The 7 cross-provider knobs (subset of gcp's 8 — no Cloud Armor adaptive protection here)
39
36
  caelo-gcp-firebase:region:
40
37
  type: string
@@ -125,7 +125,12 @@ const postgresPassword = pulumi.secret(pgPasswordBytes.hex);
125
125
  const csrfSecret = pulumi.secret(csrfSecretBytes.hex);
126
126
  const cookieSecret = pulumi.secret(cookieSecretBytes.hex);
127
127
  const caeloSecretKek = pulumi.secret(kekBytes.hex);
128
- const anthropicApiKeyConfig = cfg.getSecret("anthropicApiKey");
128
+ // v0.3.2 — anthropic-api-key Secret + Pulumi config dropped. The
129
+ // runtime AI provider configuration lives at /security/ai (key
130
+ // encrypted under the project KEK + stored in ai_providers).
131
+ // Pre-v0.3.2 the wizard prompted for a key + Pulumi provisioned a
132
+ // Secret + SecretVersion, but the Cloud Run service never read it
133
+ // (no env-var mount existed). Dead code path removed.
129
134
  const resendApiKeyConfig = cfg.getSecret("resendApiKey");
130
135
 
131
136
  interface MadeSecret {
@@ -152,7 +157,6 @@ const pgSecret = makeSecret("postgres-password", postgresPassword);
152
157
  const csrfSecretRes = makeSecret("csrf-secret", csrfSecret);
153
158
  const cookieSecretRes = makeSecret("cookie-secret", cookieSecret);
154
159
  const kekSecret = makeSecret("secret-kek", caeloSecretKek);
155
- const anthropicSecretRes = makeSecret("anthropic-api-key", anthropicApiKeyConfig ?? null);
156
160
  const resendSecretRes = makeSecret("resend-api-key", resendApiKeyConfig ?? null);
157
161
 
158
162
  // =========================================================================
@@ -250,7 +254,6 @@ for (const made of [
250
254
  { name: "csrf-secret", made: csrfSecretRes },
251
255
  { name: "cookie-secret", made: cookieSecretRes },
252
256
  { name: "secret-kek", made: kekSecret },
253
- { name: "anthropic-api-key", made: anthropicSecretRes },
254
257
  { name: "resend-api-key", made: resendSecretRes },
255
258
  ]) {
256
259
  new gcp.secretmanager.SecretIamMember(
@@ -324,7 +327,12 @@ interface CloudRunArgs {
324
327
  readonly memory: string;
325
328
  readonly timeout: string;
326
329
  readonly extraEnv?: ReadonlyArray<{ name: string; value: pulumi.Input<string> }>;
327
- readonly ingressAll?: boolean;
330
+ /** v0.3.1 — admin: ALL (so IAP gates internet traffic). gateway:
331
+ * INTERNAL_LOAD_BALANCER (locked down; only Firebase Hosting
332
+ * rewrites + run.invoker-authorised callers can reach it). */
333
+ readonly ingress: "INGRESS_TRAFFIC_ALL" | "INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER";
334
+ /** v0.3.1 — set true on admin so Cloud Run IAP gates traffic. */
335
+ readonly iapEnabled?: boolean;
328
336
  }
329
337
 
330
338
  function cloudRunService(args: CloudRunArgs): gcp.cloudrunv2.Service {
@@ -332,12 +340,12 @@ function cloudRunService(args: CloudRunArgs): gcp.cloudrunv2.Service {
332
340
  `${namePrefix}-${args.serviceName}`,
333
341
  {
334
342
  location: region,
335
- // Admin needs INGRESS_TRAFFIC_ALL so visitors hit IAP first;
336
- // gateway is reached via Firebase Hosting rewrites (server-side
337
- // proxy), so INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER also works —
338
- // but for v0.3.0 we set both to ALL to keep the topology simple
339
- // (Firebase Hosting rewrites use Google-internal traffic).
340
- ingress: args.ingressAll ? "INGRESS_TRAFFIC_ALL" : "INGRESS_TRAFFIC_ALL",
343
+ ingress: args.ingress,
344
+ // v0.3.1 — Cloud Run native IAP. With this on, every request
345
+ // is gated by IAP before the container sees it. Allowlisted
346
+ // users get through via the IAM bindings further below;
347
+ // others get a 403 from IAP's login challenge.
348
+ iapEnabled: args.iapEnabled ?? false,
341
349
  deletionProtection,
342
350
  template: {
343
351
  serviceAccount: runSa.email,
@@ -384,27 +392,68 @@ function cloudRunService(args: CloudRunArgs): gcp.cloudrunv2.Service {
384
392
  );
385
393
  }
386
394
 
395
+ // Gateway provisioned first so we can pass its name/region into the
396
+ // admin's env (the Firebase publisher needs them to wire rewrites).
397
+ const gatewaySvc = cloudRunService({
398
+ serviceName: "gateway",
399
+ minInstances: gatewayMinInstances,
400
+ maxInstances: 100,
401
+ memory: "512Mi",
402
+ timeout: "60s",
403
+ // v0.3.1 — gateway is reachable ONLY via Firebase Hosting
404
+ // rewrites or any caller holding roles/run.invoker on the
405
+ // service. Anonymous internet traffic gets a Cloud Run 403.
406
+ ingress: "INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER",
407
+ extraEnv: [{ name: "PUBLIC_DATABASE_URL", value: publicDatabaseUrl }],
408
+ });
409
+
387
410
  const adminSvc = cloudRunService({
388
411
  serviceName: "admin",
389
412
  minInstances: adminMinInstances,
390
413
  maxInstances: adminMaxInstances,
391
414
  memory: "1Gi",
392
415
  timeout: "3600s",
416
+ // v0.3.1 — admin is internet-reachable but gated by Cloud Run
417
+ // native IAP. iapEnabled flips the IAP integration on the service.
418
+ ingress: "INGRESS_TRAFFIC_ALL",
419
+ iapEnabled: true,
393
420
  extraEnv: [
394
421
  { name: "PUBLIC_ADMIN_DATABASE_URL", value: publicAdminDatabaseUrl },
395
422
  { name: "CAELO_FIREBASE_SITE", value: firebaseSite.siteId },
396
423
  { name: "CAELO_GENERATOR_CLI", value: "/app/apps/static-generator/src/cli.ts" },
424
+ // v0.3.1 — Firebase publisher needs the gateway service name +
425
+ // region to declare the /api/** rewrite when creating each
426
+ // version.
427
+ { name: "CAELO_GATEWAY_SERVICE", value: gatewaySvc.name },
428
+ { name: "CAELO_GATEWAY_REGION", value: region },
397
429
  ],
398
430
  });
399
431
 
400
- const gatewaySvc = cloudRunService({
401
- serviceName: "gateway",
402
- minInstances: gatewayMinInstances,
403
- maxInstances: 100,
404
- memory: "512Mi",
405
- timeout: "60s",
406
- extraEnv: [{ name: "PUBLIC_DATABASE_URL", value: publicDatabaseUrl }],
407
- });
432
+ // =========================================================================
433
+ // Gateway — Firebase Hosting service identity gets run.invoker
434
+ // =========================================================================
435
+
436
+ // v0.3.1 — Firebase Hosting uses a Google-managed service identity
437
+ // to proxy traffic via `rewrites` to Cloud Run. Grant it
438
+ // `roles/run.invoker` on the gateway so /api/** requests succeed.
439
+ // The SA name follows the standard `service-<project-number>@
440
+ // gcp-sa-firebasehosting.iam.gserviceaccount.com` shape. We fetch
441
+ // the project number via `gcp.organizations.getProject` rather than
442
+ // hardcoding it.
443
+ const projectInfo = gcp.organizations.getProjectOutput({ projectId: project }, opts);
444
+ const firebaseHostingSa = pulumi.interpolate`serviceAccount:service-${projectInfo.number}@gcp-sa-firebasehosting.iam.gserviceaccount.com`;
445
+
446
+ new gcp.cloudrun.IamMember(
447
+ `${namePrefix}-gateway-firebase-invoker`,
448
+ {
449
+ location: region,
450
+ project,
451
+ service: gatewaySvc.name,
452
+ role: "roles/run.invoker",
453
+ member: firebaseHostingSa,
454
+ },
455
+ opts,
456
+ );
408
457
 
409
458
  // =========================================================================
410
459
  // Admin custom domain — Cloud Run domain mapping