@caelo-cms/provisioning 0.10.43 → 0.10.46
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/adapter.d.ts +1 -1
- package/dist/adc-impersonation.d.ts +28 -0
- package/dist/adc-impersonation.d.ts.map +1 -0
- package/dist/adc-impersonation.js +126 -0
- package/dist/adc-impersonation.js.map +1 -0
- package/dist/caddy.js +1 -1
- package/dist/checkpoint-secrets.d.ts.map +1 -1
- package/dist/checkpoint-secrets.js +2 -1
- package/dist/checkpoint-secrets.js.map +1 -1
- package/dist/cli.js +208 -43
- package/dist/cli.js.map +1 -1
- package/dist/compose.d.ts +45 -0
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +112 -29
- package/dist/compose.js.map +1 -1
- package/dist/gcloud-retry.d.ts +5 -1
- package/dist/gcloud-retry.d.ts.map +1 -1
- package/dist/gcloud-retry.js.map +1 -1
- package/dist/gcloud.d.ts +2 -1
- package/dist/gcloud.d.ts.map +1 -1
- package/dist/gcloud.js +11 -13
- package/dist/gcloud.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/infra-contract.d.ts +24 -0
- package/dist/infra-contract.d.ts.map +1 -0
- package/dist/infra-contract.js +25 -0
- package/dist/infra-contract.js.map +1 -0
- package/dist/install-state.d.ts +68 -2
- package/dist/install-state.d.ts.map +1 -1
- package/dist/install-state.js +166 -22
- package/dist/install-state.js.map +1 -1
- package/dist/lifecycle.d.ts +6 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +185 -819
- package/dist/lifecycle.js.map +1 -1
- package/dist/mcp-iap.js +1 -1
- package/dist/migration-runner.d.ts +3 -0
- package/dist/migration-runner.d.ts.map +1 -1
- package/dist/migration-runner.js +7 -5
- package/dist/migration-runner.js.map +1 -1
- package/dist/ops-backend.d.ts +46 -0
- package/dist/ops-backend.d.ts.map +1 -0
- package/dist/ops-backend.js +370 -0
- package/dist/ops-backend.js.map +1 -0
- package/dist/provisioner-identity.d.ts +103 -0
- package/dist/provisioner-identity.d.ts.map +1 -0
- package/dist/provisioner-identity.js +323 -0
- package/dist/provisioner-identity.js.map +1 -0
- package/dist/regions.d.ts.map +1 -1
- package/dist/regions.js +2 -1
- package/dist/regions.js.map +1 -1
- package/dist/release-contract.d.ts +37 -0
- package/dist/release-contract.d.ts.map +1 -0
- package/dist/release-contract.js +55 -0
- package/dist/release-contract.js.map +1 -0
- package/dist/release-manifest.d.ts +140 -0
- package/dist/release-manifest.d.ts.map +1 -0
- package/dist/release-manifest.js +319 -0
- package/dist/release-manifest.js.map +1 -0
- package/dist/self-command.d.ts +16 -0
- package/dist/self-command.d.ts.map +1 -0
- package/dist/self-command.js +20 -0
- package/dist/self-command.js.map +1 -0
- package/dist/self-hosted-release.d.ts +81 -0
- package/dist/self-hosted-release.d.ts.map +1 -0
- package/dist/self-hosted-release.js +148 -0
- package/dist/self-hosted-release.js.map +1 -0
- package/dist/self-hosted-upgrade.d.ts +91 -0
- package/dist/self-hosted-upgrade.d.ts.map +1 -0
- package/dist/self-hosted-upgrade.js +355 -0
- package/dist/self-hosted-upgrade.js.map +1 -0
- package/dist/stack-contract.js +2 -2
- package/dist/stack-converge.d.ts.map +1 -1
- package/dist/stack-converge.js +2 -1
- package/dist/stack-converge.js.map +1 -1
- package/dist/staging-admin.js +3 -3
- package/dist/state-backend.d.ts +103 -0
- package/dist/state-backend.d.ts.map +1 -0
- package/dist/state-backend.js +180 -0
- package/dist/state-backend.js.map +1 -0
- package/dist/state-store.d.ts +55 -0
- package/dist/state-store.d.ts.map +1 -0
- package/dist/state-store.js +140 -0
- package/dist/state-store.js.map +1 -0
- package/dist/upgrade/app-roll.d.ts +164 -0
- package/dist/upgrade/app-roll.d.ts.map +1 -0
- package/dist/upgrade/app-roll.js +270 -0
- package/dist/upgrade/app-roll.js.map +1 -0
- package/dist/upgrade/backup.d.ts +48 -0
- package/dist/upgrade/backup.d.ts.map +1 -0
- package/dist/upgrade/backup.js +71 -0
- package/dist/upgrade/backup.js.map +1 -0
- package/dist/upgrade/converge.d.ts +45 -0
- package/dist/upgrade/converge.d.ts.map +1 -0
- package/dist/upgrade/converge.js +287 -0
- package/dist/upgrade/converge.js.map +1 -0
- package/dist/upgrade/gcp-lookup.d.ts +23 -0
- package/dist/upgrade/gcp-lookup.d.ts.map +1 -0
- package/dist/upgrade/gcp-lookup.js +95 -0
- package/dist/upgrade/gcp-lookup.js.map +1 -0
- package/dist/upgrade/health.d.ts +99 -0
- package/dist/upgrade/health.d.ts.map +1 -0
- package/dist/upgrade/health.js +214 -0
- package/dist/upgrade/health.js.map +1 -0
- package/dist/upgrade/release-images.d.ts +125 -0
- package/dist/upgrade/release-images.d.ts.map +1 -0
- package/dist/upgrade/release-images.js +315 -0
- package/dist/upgrade/release-images.js.map +1 -0
- package/dist/upgrade/reporter.d.ts +17 -0
- package/dist/upgrade/reporter.d.ts.map +1 -0
- package/dist/upgrade/reporter.js +28 -0
- package/dist/upgrade/reporter.js.map +1 -0
- package/dist/upgrade/upgrade.d.ts +79 -0
- package/dist/upgrade/upgrade.d.ts.map +1 -0
- package/dist/upgrade/upgrade.js +105 -0
- package/dist/upgrade/upgrade.js.map +1 -0
- package/dist/wizard.d.ts.map +1 -1
- package/dist/wizard.js +7 -3
- package/dist/wizard.js.map +1 -1
- package/dist/wizards/gcp-cost.d.ts.map +1 -1
- package/dist/wizards/gcp-cost.js +7 -1
- package/dist/wizards/gcp-cost.js.map +1 -1
- package/dist/wizards/gcp-pulumi.d.ts +99 -8
- package/dist/wizards/gcp-pulumi.d.ts.map +1 -1
- package/dist/wizards/gcp-pulumi.js +157 -50
- package/dist/wizards/gcp-pulumi.js.map +1 -1
- package/dist/wizards/gcp.d.ts.map +1 -1
- package/dist/wizards/gcp.js +185 -61
- package/dist/wizards/gcp.js.map +1 -1
- package/package.json +4 -3
- package/stacks/aws/README.md +1 -1
- package/stacks/gcp/Pulumi.yaml +1 -1
- package/stacks/gcp/README.md +1 -1
- package/stacks/gcp/index.ts +1 -1
- package/stacks/gcp-firebase/Pulumi.yaml +1 -1
- package/stacks/gcp-firebase/index.ts +2 -2
- package/stacks/self-hosted/README.md +4 -0
- package/stacks/self-hosted/index.ts +10 -2
package/stacks/gcp/README.md
CHANGED
|
@@ -50,7 +50,7 @@ done
|
|
|
50
50
|
pulumi up
|
|
51
51
|
|
|
52
52
|
# Sync outputs into cms_admin.provisioning_outputs so the admin's
|
|
53
|
-
# /
|
|
53
|
+
# /settings/dns page surfaces the required DNS records.
|
|
54
54
|
CAELO_INTERNAL_SECRET=$(gcloud secrets versions access latest \
|
|
55
55
|
--secret=caelo-production-internal-secret --project=$PROJECT) \
|
|
56
56
|
CAELO_ADMIN_URL=https://admin.example.com \
|
package/stacks/gcp/index.ts
CHANGED
|
@@ -199,7 +199,7 @@ const postgresPassword = pulumi.secret(pgPasswordBytes.hex);
|
|
|
199
199
|
// via `valueSource.secretKeyRef` below.
|
|
200
200
|
const caeloSecretKek = pulumi.secret(kekBytes.hex);
|
|
201
201
|
// v0.3.2 — anthropic-api-key Secret + Pulumi config dropped. The
|
|
202
|
-
// runtime AI provider configuration lives at /
|
|
202
|
+
// runtime AI provider configuration lives at /settings/ai (key
|
|
203
203
|
// encrypted under the project KEK + stored in ai_providers).
|
|
204
204
|
// Pre-v0.3.2 the wizard prompted for a key + Pulumi provisioned a
|
|
205
205
|
// Secret + SecretVersion, but the Cloud Run service never read it
|
|
@@ -31,7 +31,7 @@ config:
|
|
|
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
33
|
# v0.3.2 — anthropicApiKey config dropped. Runtime path is
|
|
34
|
-
# /
|
|
34
|
+
# /settings/ai → ai_providers (KEK-encrypted).
|
|
35
35
|
# The 7 cross-provider knobs (subset of gcp's 8 — no Cloud Armor adaptive protection here)
|
|
36
36
|
caelo-gcp-firebase:region:
|
|
37
37
|
type: string
|
|
@@ -172,14 +172,14 @@ const kekBytes = new random.RandomBytes(`${namePrefix}-secret-kek-bytes`, { leng
|
|
|
172
172
|
const postgresPassword = pulumi.secret(pgPasswordBytes.hex);
|
|
173
173
|
const caeloSecretKek = pulumi.secret(kekBytes.hex);
|
|
174
174
|
// v0.3.2 — anthropic-api-key Secret + Pulumi config dropped. The
|
|
175
|
-
// runtime AI provider configuration lives at /
|
|
175
|
+
// runtime AI provider configuration lives at /settings/ai (key
|
|
176
176
|
// encrypted under the project KEK + stored in ai_providers).
|
|
177
177
|
// Pre-v0.3.2 the wizard prompted for a key + Pulumi provisioned a
|
|
178
178
|
// Secret + SecretVersion, but the Cloud Run service never read it
|
|
179
179
|
// (no env-var mount existed). Dead code path removed.
|
|
180
180
|
// v0.6.6 — resend-api-key secret + IAM binding removed. The Resend
|
|
181
181
|
// API key now lives in the email_config DB row (set via the Owner UI
|
|
182
|
-
// /
|
|
182
|
+
// /settings/email/pending flow per email_config_pending.ts), not in
|
|
183
183
|
// Secret Manager. The Pulumi-managed secret + binding were scaffolded
|
|
184
184
|
// in v0.3.0 but never wired to runtime (transport.ts reads from
|
|
185
185
|
// cfg.config.apiKey, never from Secret Manager). Drop to reduce
|
|
@@ -16,6 +16,10 @@ cd packages/provisioning/stacks/self-hosted
|
|
|
16
16
|
pulumi stack init prod
|
|
17
17
|
pulumi config set caelo-self-hosted:domain example.com
|
|
18
18
|
pulumi config set caelo-self-hosted:ownerEmail me@example.com
|
|
19
|
+
# The signed release images, pinned by digest — the values `cms-provision init`
|
|
20
|
+
# verified and recorded in .caelo/release.json:
|
|
21
|
+
pulumi config set caelo-self-hosted:adminImage ghcr.io/caelo-cms/admin@sha256:<digest>
|
|
22
|
+
pulumi config set caelo-self-hosted:gatewayImage ghcr.io/caelo-cms/gateway@sha256:<digest>
|
|
19
23
|
pulumi up
|
|
20
24
|
```
|
|
21
25
|
|
|
@@ -35,10 +35,17 @@ const ownerEmail = cfg.require("ownerEmail");
|
|
|
35
35
|
const caeloDir = cfg.get("caeloDir") ?? "./.caelo";
|
|
36
36
|
// #553 — same knob as every adapter; undefined = stack-contract default.
|
|
37
37
|
const adminMemory = cfg.get("adminMemory");
|
|
38
|
+
// #696 — the prebuilt, cosign-verified release images, pinned by digest
|
|
39
|
+
// (`ghcr.io/caelo-cms/<svc>@sha256:…`; the generator refuses anything else).
|
|
40
|
+
// `cms-provision init` resolves + verifies them and records them in
|
|
41
|
+
// .caelo/release.json; copy those values here.
|
|
42
|
+
const adminImage = cfg.require("adminImage");
|
|
43
|
+
const gatewayImage = cfg.require("gatewayImage");
|
|
38
44
|
|
|
39
45
|
const composePath = resolve(caeloDir, "docker-compose.yml");
|
|
40
46
|
const caddyPath = resolve(caeloDir, "Caddyfile");
|
|
41
|
-
|
|
47
|
+
// The admin container mounts only `<caeloDir>/bootstrap/` (compose.ts).
|
|
48
|
+
const tokenPath = resolve(caeloDir, "bootstrap", "pending-token.json");
|
|
42
49
|
|
|
43
50
|
// Mint secrets at preview time. Pulumi's secret-handling encrypts these
|
|
44
51
|
// in the state file; `pulumi stack output --show-secrets postgresPassword`
|
|
@@ -71,6 +78,7 @@ const composeYaml = pulumi
|
|
|
71
78
|
resendApiKey: process.env.RESEND_API_KEY,
|
|
72
79
|
diskSize: "20Gi",
|
|
73
80
|
...(adminMemory ? { adminMemory } : {}),
|
|
81
|
+
images: { mode: "release", admin: adminImage, gateway: gatewayImage },
|
|
74
82
|
}),
|
|
75
83
|
);
|
|
76
84
|
|
|
@@ -94,7 +102,7 @@ const tokenInfo = generateBootstrapToken();
|
|
|
94
102
|
// Stage all three files via a single local.Command so a destroy
|
|
95
103
|
// removes them transactionally.
|
|
96
104
|
const writeFiles = new local.Command("caeloConfigFile", {
|
|
97
|
-
create: pulumi.interpolate`mkdir -p ${caeloDir} && cat > ${composePath} <<'EOF'
|
|
105
|
+
create: pulumi.interpolate`mkdir -p ${caeloDir}/bootstrap && cat > ${composePath} <<'EOF'
|
|
98
106
|
${composeYaml}
|
|
99
107
|
EOF
|
|
100
108
|
cat > ${caddyPath} <<'EOF'
|