@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 +2 -1
- package/dist/gcloud.d.ts.map +1 -1
- package/dist/gcloud.js +11 -2
- package/dist/gcloud.js.map +1 -1
- package/dist/wizards/gcp-firebase.d.ts.map +1 -1
- package/dist/wizards/gcp-firebase.js +7 -18
- package/dist/wizards/gcp-firebase.js.map +1 -1
- package/dist/wizards/gcp-pulumi.d.ts +6 -1
- package/dist/wizards/gcp-pulumi.d.ts.map +1 -1
- package/dist/wizards/gcp-pulumi.js +30 -19
- package/dist/wizards/gcp-pulumi.js.map +1 -1
- package/dist/wizards/gcp.d.ts +7 -0
- package/dist/wizards/gcp.d.ts.map +1 -1
- package/dist/wizards/gcp.js +39 -49
- package/dist/wizards/gcp.js.map +1 -1
- package/package.json +2 -2
- package/stacks/gcp/Pulumi.yaml +5 -9
- package/stacks/gcp/index.ts +10 -11
- package/stacks/gcp-firebase/Pulumi.yaml +2 -5
- package/stacks/gcp-firebase/index.ts +67 -18
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
|
package/dist/gcloud.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
96
|
-
|
|
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
|
package/dist/gcloud.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
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,
|
|
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,
|
|
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
|
|
20
|
-
// under `stacks
|
|
21
|
-
// (dist/wizards/gcp-pulumi.js), the stack dir is two
|
|
22
|
-
// + into
|
|
23
|
-
return resolvePath(import.meta.dir,
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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":"AAAA,mCAAmC;AAEnC;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"gcp-pulumi.js","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"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"}
|
package/dist/wizards/gcp.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/wizards/gcp.js
CHANGED
|
@@ -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.
|
|
13
|
-
* 10.
|
|
14
|
-
* 11.
|
|
15
|
-
* 12.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
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,
|
|
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.
|
|
56
|
-
|
|
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
|
-
|
|
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(`(${
|
|
346
|
+
log.success(`APIs enabled ${dim(`(${apiCount} services, checkpointed)`)}`);
|
|
331
347
|
return;
|
|
332
348
|
}
|
|
333
349
|
const s = spinner();
|
|
334
|
-
s.start(`Enabling ${
|
|
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(`${
|
|
342
|
-
markStepDone(installId, stepName, { count:
|
|
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`,
|
package/dist/wizards/gcp.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
41
|
+
"@caelo-cms/shared": "^0.3.2",
|
|
42
42
|
"@clack/prompts": "1.3.0",
|
|
43
43
|
"@pulumi/aws": "^7",
|
|
44
44
|
"@pulumi/awsx": "^3",
|
package/stacks/gcp/Pulumi.yaml
CHANGED
|
@@ -24,15 +24,11 @@ config:
|
|
|
24
24
|
caelo-gcp:project:
|
|
25
25
|
type: string
|
|
26
26
|
description: GCP project id.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
package/stacks/gcp/index.ts
CHANGED
|
@@ -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
|
-
//
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
//
|
|
167
|
-
//
|
|
168
|
-
|
|
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
|
-
//
|
|
201
|
-
//
|
|
202
|
-
//
|
|
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
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
336
|
-
//
|
|
337
|
-
//
|
|
338
|
-
//
|
|
339
|
-
//
|
|
340
|
-
|
|
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
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
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
|