@caelo-cms/provisioning 0.11.8 → 0.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/dist/admin-domain.d.ts +10 -1
  2. package/dist/admin-domain.d.ts.map +1 -1
  3. package/dist/admin-domain.js +13 -3
  4. package/dist/admin-domain.js.map +1 -1
  5. package/dist/adopt-existing.d.ts +6 -1
  6. package/dist/adopt-existing.d.ts.map +1 -1
  7. package/dist/adopt-existing.js +86 -0
  8. package/dist/adopt-existing.js.map +1 -1
  9. package/dist/agent/command.d.ts +20 -0
  10. package/dist/agent/command.d.ts.map +1 -1
  11. package/dist/agent/command.js +32 -9
  12. package/dist/agent/command.js.map +1 -1
  13. package/dist/agent/run.d.ts +2 -0
  14. package/dist/agent/run.d.ts.map +1 -1
  15. package/dist/agent/run.js +5 -1
  16. package/dist/agent/run.js.map +1 -1
  17. package/dist/agent-db.js +65 -3
  18. package/dist/aws-task-roles.d.ts +4 -2
  19. package/dist/aws-task-roles.d.ts.map +1 -1
  20. package/dist/aws-task-roles.js +4 -1
  21. package/dist/aws-task-roles.js.map +1 -1
  22. package/dist/caddy.d.ts +21 -4
  23. package/dist/caddy.d.ts.map +1 -1
  24. package/dist/caddy.js +27 -3
  25. package/dist/caddy.js.map +1 -1
  26. package/dist/cli.js +12 -3
  27. package/dist/cli.js.map +1 -1
  28. package/dist/cloudsql-tls.d.ts +63 -0
  29. package/dist/cloudsql-tls.d.ts.map +1 -0
  30. package/dist/cloudsql-tls.js +289 -0
  31. package/dist/cloudsql-tls.js.map +1 -0
  32. package/dist/compose.d.ts +29 -6
  33. package/dist/compose.d.ts.map +1 -1
  34. package/dist/compose.js +95 -23
  35. package/dist/compose.js.map +1 -1
  36. package/dist/converge-checkpoint.d.ts +1 -0
  37. package/dist/converge-checkpoint.d.ts.map +1 -1
  38. package/dist/converge-checkpoint.js +8 -1
  39. package/dist/converge-checkpoint.js.map +1 -1
  40. package/dist/converge-job-gcp.d.ts.map +1 -1
  41. package/dist/converge-job-gcp.js +2 -11
  42. package/dist/converge-job-gcp.js.map +1 -1
  43. package/dist/deployed-release.d.ts +4 -1
  44. package/dist/deployed-release.d.ts.map +1 -1
  45. package/dist/deployed-release.js +18 -8
  46. package/dist/deployed-release.js.map +1 -1
  47. package/dist/gcp-names.d.ts +21 -0
  48. package/dist/gcp-names.d.ts.map +1 -1
  49. package/dist/gcp-names.js +24 -0
  50. package/dist/gcp-names.js.map +1 -1
  51. package/dist/gcp-url-map.d.ts.map +1 -1
  52. package/dist/gcp-url-map.js +6 -2
  53. package/dist/gcp-url-map.js.map +1 -1
  54. package/dist/index.d.ts +1 -1
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +1 -1
  57. package/dist/index.js.map +1 -1
  58. package/dist/infra-contract.d.ts +1 -1
  59. package/dist/infra-contract.d.ts.map +1 -1
  60. package/dist/infra-contract.js +24 -1
  61. package/dist/infra-contract.js.map +1 -1
  62. package/dist/install-state.d.ts +6 -0
  63. package/dist/install-state.d.ts.map +1 -1
  64. package/dist/install-state.js +17 -4
  65. package/dist/install-state.js.map +1 -1
  66. package/dist/lifecycle.d.ts.map +1 -1
  67. package/dist/lifecycle.js +17 -8
  68. package/dist/lifecycle.js.map +1 -1
  69. package/dist/mcp-auth-proxy-setup.d.ts +48 -0
  70. package/dist/mcp-auth-proxy-setup.d.ts.map +1 -0
  71. package/dist/mcp-auth-proxy-setup.js +280 -0
  72. package/dist/mcp-auth-proxy-setup.js.map +1 -0
  73. package/dist/release-manifest.d.ts +25 -1
  74. package/dist/release-manifest.d.ts.map +1 -1
  75. package/dist/release-manifest.js +36 -3
  76. package/dist/release-manifest.js.map +1 -1
  77. package/dist/remote-mcp.d.ts +55 -18
  78. package/dist/remote-mcp.d.ts.map +1 -1
  79. package/dist/remote-mcp.js +307 -77
  80. package/dist/remote-mcp.js.map +1 -1
  81. package/dist/runtime-secrets.d.ts +9 -0
  82. package/dist/runtime-secrets.d.ts.map +1 -1
  83. package/dist/runtime-secrets.js +21 -10
  84. package/dist/runtime-secrets.js.map +1 -1
  85. package/dist/seal-key-rotation.d.ts +7 -7
  86. package/dist/seal-key-rotation.d.ts.map +1 -1
  87. package/dist/seal-key-rotation.js +22 -22
  88. package/dist/seal-key-rotation.js.map +1 -1
  89. package/dist/self-hosted-db-tls.d.ts +37 -0
  90. package/dist/self-hosted-db-tls.d.ts.map +1 -0
  91. package/dist/self-hosted-db-tls.js +220 -0
  92. package/dist/self-hosted-db-tls.js.map +1 -0
  93. package/dist/self-hosted-release.d.ts +3 -1
  94. package/dist/self-hosted-release.d.ts.map +1 -1
  95. package/dist/self-hosted-release.js +33 -9
  96. package/dist/self-hosted-release.js.map +1 -1
  97. package/dist/self-hosted-roles.d.ts +34 -0
  98. package/dist/self-hosted-roles.d.ts.map +1 -1
  99. package/dist/self-hosted-roles.js +52 -0
  100. package/dist/self-hosted-roles.js.map +1 -1
  101. package/dist/self-hosted-start.d.ts +0 -21
  102. package/dist/self-hosted-start.d.ts.map +1 -1
  103. package/dist/self-hosted-start.js +39 -1
  104. package/dist/self-hosted-start.js.map +1 -1
  105. package/dist/self-hosted-upgrade.d.ts +15 -6
  106. package/dist/self-hosted-upgrade.d.ts.map +1 -1
  107. package/dist/self-hosted-upgrade.js +72 -23
  108. package/dist/self-hosted-upgrade.js.map +1 -1
  109. package/dist/stack-contract.d.ts +170 -25
  110. package/dist/stack-contract.d.ts.map +1 -1
  111. package/dist/stack-contract.js +314 -37
  112. package/dist/stack-contract.js.map +1 -1
  113. package/dist/stack-converge.d.ts +31 -0
  114. package/dist/stack-converge.d.ts.map +1 -1
  115. package/dist/stack-converge.js +71 -30
  116. package/dist/stack-converge.js.map +1 -1
  117. package/dist/upgrade/app-roll.d.ts +25 -4
  118. package/dist/upgrade/app-roll.d.ts.map +1 -1
  119. package/dist/upgrade/app-roll.js +63 -17
  120. package/dist/upgrade/app-roll.js.map +1 -1
  121. package/dist/upgrade/converge.d.ts.map +1 -1
  122. package/dist/upgrade/converge.js +99 -12
  123. package/dist/upgrade/converge.js.map +1 -1
  124. package/dist/upgrade/health.d.ts +31 -7
  125. package/dist/upgrade/health.d.ts.map +1 -1
  126. package/dist/upgrade/health.js +41 -17
  127. package/dist/upgrade/health.js.map +1 -1
  128. package/dist/upgrade/image-forms.d.ts +1 -1
  129. package/dist/upgrade/image-forms.d.ts.map +1 -1
  130. package/dist/upgrade/image-forms.js +24 -7
  131. package/dist/upgrade/image-forms.js.map +1 -1
  132. package/dist/upgrade/release-images.d.ts +12 -3
  133. package/dist/upgrade/release-images.d.ts.map +1 -1
  134. package/dist/upgrade/release-images.js +13 -4
  135. package/dist/upgrade/release-images.js.map +1 -1
  136. package/dist/upgrade/upgrade.d.ts +13 -3
  137. package/dist/upgrade/upgrade.d.ts.map +1 -1
  138. package/dist/upgrade/upgrade.js +34 -2
  139. package/dist/upgrade/upgrade.js.map +1 -1
  140. package/dist/upgrader-gcp.d.ts +12 -0
  141. package/dist/upgrader-gcp.d.ts.map +1 -1
  142. package/dist/upgrader-gcp.js +49 -1
  143. package/dist/upgrader-gcp.js.map +1 -1
  144. package/dist/upgrader-iam-preflight.d.ts.map +1 -1
  145. package/dist/upgrader-iam-preflight.js +6 -1
  146. package/dist/upgrader-iam-preflight.js.map +1 -1
  147. package/dist/upgrader-job.d.ts +1 -1
  148. package/dist/upgrader-job.d.ts.map +1 -1
  149. package/dist/upgrader-job.js +20 -14
  150. package/dist/upgrader-job.js.map +1 -1
  151. package/dist/upgrader-records.d.ts +1 -1
  152. package/dist/upgrader-records.d.ts.map +1 -1
  153. package/dist/upgrader-records.js +26 -7
  154. package/dist/upgrader-records.js.map +1 -1
  155. package/dist/upgrader-setup.d.ts.map +1 -1
  156. package/dist/upgrader-setup.js +10 -5
  157. package/dist/upgrader-setup.js.map +1 -1
  158. package/dist/wizards/gcp-cost.d.ts.map +1 -1
  159. package/dist/wizards/gcp-cost.js +22 -7
  160. package/dist/wizards/gcp-cost.js.map +1 -1
  161. package/dist/wizards/gcp.d.ts.map +1 -1
  162. package/dist/wizards/gcp.js +43 -17
  163. package/dist/wizards/gcp.js.map +1 -1
  164. package/package.json +2 -2
  165. package/src/admin-domain.test.ts +9 -8
  166. package/src/admin-domain.ts +13 -3
  167. package/src/admin-memory.test.ts +1 -0
  168. package/src/adopt-existing.test.ts +39 -0
  169. package/src/adopt-existing.ts +83 -1
  170. package/src/agent/command.test.ts +49 -1
  171. package/src/agent/command.ts +36 -9
  172. package/src/agent/run.test.ts +19 -0
  173. package/src/agent/run.ts +11 -2
  174. package/src/aws-task-roles.ts +5 -2
  175. package/src/caddy-redirects.docker.test.ts +2 -0
  176. package/src/caddy-redirects.test.ts +3 -0
  177. package/src/caddy-validate.test.ts +7 -1
  178. package/src/caddy.test.ts +39 -1
  179. package/src/caddy.ts +36 -4
  180. package/src/checkpoint-secrets.test.ts +14 -6
  181. package/src/cli.ts +12 -1
  182. package/src/cloudsql-tls.test.ts +225 -0
  183. package/src/cloudsql-tls.ts +352 -0
  184. package/src/compose.ts +125 -24
  185. package/src/converge-checkpoint.ts +8 -1
  186. package/src/converge-job-gcp.ts +2 -11
  187. package/src/database-tls-builders.test.ts +55 -0
  188. package/src/deployed-release.test.ts +104 -40
  189. package/src/deployed-release.ts +30 -9
  190. package/src/gateway-env-isolation.test.ts +10 -5
  191. package/src/gcp-names.ts +31 -0
  192. package/src/gcp-url-map.test.ts +6 -8
  193. package/src/gcp-url-map.ts +6 -2
  194. package/src/index.test.ts +7 -1
  195. package/src/index.ts +1 -0
  196. package/src/infra-contract.test.ts +5 -3
  197. package/src/infra-contract.ts +24 -1
  198. package/src/install-state.ts +26 -4
  199. package/src/lifecycle.ts +20 -11
  200. package/src/mcp-auth-proxy-setup.test.ts +305 -0
  201. package/src/mcp-auth-proxy-setup.ts +374 -0
  202. package/src/mcp-iap-stacks.test.ts +1 -1
  203. package/src/media-volume.test.ts +1 -1
  204. package/src/operator-access-stacks.test.ts +1 -1
  205. package/src/operator-access.test.ts +5 -4
  206. package/src/pool-budget-stacks.test.ts +1 -1
  207. package/src/release-manifest.test.ts +25 -0
  208. package/src/release-manifest.ts +59 -4
  209. package/src/remote-mcp-stack-config.test.ts +19 -9
  210. package/src/remote-mcp.test.ts +252 -57
  211. package/src/remote-mcp.ts +336 -77
  212. package/src/runtime-secrets.test.ts +20 -7
  213. package/src/runtime-secrets.ts +50 -9
  214. package/src/seal-key-rotation.test.ts +2 -2
  215. package/src/seal-key-rotation.ts +25 -25
  216. package/src/self-hosted-compose.test.ts +108 -5
  217. package/src/self-hosted-db-tls.test.ts +111 -0
  218. package/src/self-hosted-db-tls.ts +287 -0
  219. package/src/self-hosted-release-resolve.test.ts +71 -0
  220. package/src/self-hosted-release.ts +41 -11
  221. package/src/self-hosted-roles.test.ts +54 -0
  222. package/src/self-hosted-roles.ts +58 -0
  223. package/src/self-hosted-start.test.ts +34 -2
  224. package/src/self-hosted-start.ts +20 -2
  225. package/src/self-hosted-upgrade.test.ts +103 -14
  226. package/src/self-hosted-upgrade.ts +115 -29
  227. package/src/stack-contract-parity.test.ts +79 -12
  228. package/src/stack-contract.test.ts +169 -29
  229. package/src/stack-contract.ts +362 -42
  230. package/src/stack-converge-secrets.test.ts +26 -13
  231. package/src/stack-converge.test.ts +199 -26
  232. package/src/stack-converge.ts +92 -30
  233. package/src/state-store.test.ts +2 -1
  234. package/src/upgrade/app-roll.ts +97 -19
  235. package/src/upgrade/converge.ts +120 -11
  236. package/src/upgrade/health.test.ts +63 -25
  237. package/src/upgrade/health.ts +54 -22
  238. package/src/upgrade/image-forms.test.ts +34 -0
  239. package/src/upgrade/image-forms.ts +23 -8
  240. package/src/upgrade/release-images.test.ts +5 -1
  241. package/src/upgrade/release-images.ts +22 -6
  242. package/src/upgrade/upgrade.test.ts +353 -44
  243. package/src/upgrade/upgrade.ts +55 -6
  244. package/src/upgrader-gcp.ts +65 -3
  245. package/src/upgrader-iam-preflight.test.ts +19 -0
  246. package/src/upgrader-iam-preflight.ts +6 -0
  247. package/src/upgrader-job.test.ts +101 -27
  248. package/src/upgrader-job.ts +27 -14
  249. package/src/upgrader-records.test.ts +97 -12
  250. package/src/upgrader-records.ts +28 -11
  251. package/src/upgrader-setup.test.ts +2 -0
  252. package/src/upgrader-setup.ts +10 -4
  253. package/src/wizards/gcp-cost.test.ts +50 -0
  254. package/src/wizards/gcp-cost.ts +24 -7
  255. package/src/wizards/gcp.ts +55 -14
  256. package/stacks/aws/index.ts +32 -14
  257. package/stacks/azure/index.ts +57 -18
  258. package/stacks/gcp/index.ts +83 -23
  259. package/stacks/gcp-firebase/index.ts +162 -33
  260. package/stacks/self-hosted/README.md +2 -1
  261. package/stacks/self-hosted/index.ts +11 -1
@@ -32,23 +32,123 @@
32
32
  *
33
33
  * Pure module — the stacks import it from `dist/`.
34
34
  */
35
+ import { CLOUD_SQL_CA_BUNDLE, isIpLiteral, verifyFullQuery } from "@caelo-cms/shared";
35
36
  import { z } from "zod";
36
- import { auditJobResource, captureJobResource, convergeJobResource, gatewayServiceAccountEmail, gcpBucketName, gcpNamePrefix, gcpSecretId, mcpIapServiceAccountEmail, operatorAccessJobResource, runServiceAccountEmail, staticPublisherServiceAccountId, upgraderJobResource, } from "./gcp-names.js";
37
+ import { auditJobResource, captureJobResource, convergeJobResource, gatewayServiceAccountEmail, gcpBucketName, gcpNamePrefix, gcpSecretId, mcpAuthProxyServiceAccountEmail, mcpIapServiceAccountEmail, operatorAccessJobResource, runServiceAccountEmail, staticPublisherServiceAccountId, upgraderJobResource, } from "./gcp-names.js";
38
+ /** Every {@link CloudRunSlug}, in roll order: the admin first, the proxy last. */
39
+ export const CLOUD_RUN_SLUGS = ["admin", "gateway", "mcp-auth-proxy"];
40
+ /**
41
+ * The name prefix of the Cloud Run service that plays `slug` on an install
42
+ * (Pulumi suffixes the names it generates; the services named explicitly,
43
+ * {@link fixedCloudRunServiceName}, match their prefix exactly).
44
+ *
45
+ * One asymmetry, decided as E13 (a) of the gateway hardening plan (#763):
46
+ * on `gcp-firebase` the MCP-Auth-Proxy is the service that was the gateway
47
+ * before #1328. Its `run.app` URL is the remote-MCP address every connector
48
+ * in claude.ai / ChatGPT holds, and the Google sign-in client's registered
49
+ * redirect URI points at it; neither can move without the Owner
50
+ * re-connecting every client and editing the OAuth client by hand. So that
51
+ * service keeps its name and becomes the proxy, and the visitor gateway is
52
+ * the new `caelo-<env>-data-gateway` (the Firebase `/api/**` rewrite the
53
+ * publisher writes follows the admin's `CAELO_GATEWAY_SERVICE`). On `gcp`
54
+ * the MCP address is the site's own host behind the load balancer, so no
55
+ * service name is pinned there and the proxy is the new service.
56
+ *
57
+ * No prefix is a prefix of another (`…-gateway` does not prefix
58
+ * `…-data-gateway`), so a `metadata.name~^<prefix>` lookup finds one role.
59
+ */
60
+ export function cloudRunServicePrefix(provider, env, slug) {
61
+ const prefix = gcpNamePrefix(env);
62
+ if (slug === "admin")
63
+ return `${prefix}-admin`;
64
+ if (provider === "gcp-firebase") {
65
+ return slug === "gateway" ? `${prefix}-data-gateway` : `${prefix}-gateway`;
66
+ }
67
+ return slug === "gateway" ? `${prefix}-gateway` : `${prefix}-mcp-auth-proxy`;
68
+ }
69
+ /**
70
+ * The exact name of a service that is created under a fixed name (#1328):
71
+ * the `gcp-firebase` data gateway and the `gcp` MCP-Auth-Proxy. Fixed, not
72
+ * Pulumi-suffixed, because the converge creates them on existing installs
73
+ * with gcloud, and the stack's next `pulumi up` must then find the same
74
+ * service instead of creating a second one. Null for the services Pulumi
75
+ * has always auto-named.
76
+ */
77
+ export function fixedCloudRunServiceName(provider, env, slug) {
78
+ const fixed = (provider === "gcp-firebase" && slug === "gateway") ||
79
+ (provider === "gcp" && slug === "mcp-auth-proxy");
80
+ return fixed ? cloudRunServicePrefix(provider, env, slug) : null;
81
+ }
37
82
  /** Port Cloud SQL Postgres listens on (private IP). */
38
83
  const DATABASE_PORT = 5432;
39
84
  /**
40
85
  * Password-less connection URLs for a Cloud SQL instance at `host`. The
41
86
  * password reaches the apps separately, as a Secret Manager reference
42
87
  * ({@link SERVICE_SECRET_ENV}).
88
+ *
89
+ * TLS is `verify-full` against Google's Cloud SQL shared-CA bundle, which
90
+ * every image carries (#1338, shared database-tls.ts). The shared CA's
91
+ * server certificate names the instance's DNS name and no IP, so `host`
92
+ * must be that name (cloudsql-tls.ts resolves it in the VPC); an IP is
93
+ * refused here rather than producing URLs no connection can verify.
94
+ *
95
+ * @throws Error when `host` is an IP literal
43
96
  */
44
97
  export function databaseUrls(host) {
45
- const url = (role, db) => `postgresql://${role}@${host}:${DATABASE_PORT}/${db}?sslmode=require`;
98
+ if (isIpLiteral(host)) {
99
+ throw new Error(`the Cloud SQL host is the IP address ${host}, but verify-full connections must use the instance's DNS name (its certificate names no IP, #1338). The converge moves the services onto it: run \`cms-provision upgrade\`.`);
100
+ }
101
+ const url = (role, db) => `postgresql://${role}@${host}:${DATABASE_PORT}/${db}?${verifyFullQuery(CLOUD_SQL_CA_BUNDLE)}`;
46
102
  return {
47
103
  admin: url("admin_role", "cms_admin"),
48
104
  publicAdmin: url("admin_role", "cms_public"),
49
105
  public: url("public_role", "cms_public"),
50
106
  };
51
107
  }
108
+ /**
109
+ * #1338 — the Cloud SQL server CA mode every install runs: Google's shared
110
+ * CA. Its server certificate carries the instance's DNS name, so a client
111
+ * can verify the host (`sslmode=verify-full`). The default per-instance CA
112
+ * names no host a private-IP client can dial ("The SAN field contains the
113
+ * hostname (DNS name of the instance) only for instances enabled with
114
+ * Private Service Connect" — docs.cloud.google.com/sql/docs/postgres/authorize-ssl).
115
+ * An instance moves from per-instance to shared, never back.
116
+ */
117
+ export const CLOUD_SQL_SERVER_CA_MODE = "GOOGLE_MANAGED_CAS_CA";
118
+ /** #1338 — Cloud SQL refuses unencrypted connections: every client uses verify-full. */
119
+ export const CLOUD_SQL_SSL_MODE = "ENCRYPTED_ONLY";
120
+ /** The `dnsNames[].connectionType` of the name a private-services-access client dials. */
121
+ export const CLOUD_SQL_PSA_CONNECTION_TYPE = "PRIVATE_SERVICES_ACCESS";
122
+ /**
123
+ * The private Cloud DNS zone that resolves the instance's DNS name to its
124
+ * private IP inside the install's VPC. Cloud SQL assigns the name but does
125
+ * not resolve it: "create the DNS record in a private DNS zone in the
126
+ * corresponding Virtual Private Cloud (VPC) network"
127
+ * (docs.cloud.google.com/sql/docs/postgres/configure-ssl-instance). The zone
128
+ * is the name itself, holding its one A record.
129
+ */
130
+ export function cloudSqlDnsZoneName(env) {
131
+ return `${gcpNamePrefix(env)}-pg-dns`;
132
+ }
133
+ /**
134
+ * The DNS name a private-IP client dials, from an instance's `dnsNames`,
135
+ * lower-case and without the trailing dot. Null when the instance has none
136
+ * (a per-instance-CA instance before its move to the shared CA).
137
+ */
138
+ export function cloudSqlPrivateDnsName(dnsNames) {
139
+ const entry = (dnsNames ?? []).find((d) => d.connectionType === CLOUD_SQL_PSA_CONNECTION_TYPE);
140
+ const name = entry?.name?.replace(/\.$/, "").toLowerCase();
141
+ return name ? name : null;
142
+ }
143
+ /** The database URL vars each service carries (the env contract below sets them). */
144
+ export const DATABASE_URL_VARS = {
145
+ admin: ["ADMIN_DATABASE_URL", "PUBLIC_ADMIN_DATABASE_URL"],
146
+ gateway: ["PUBLIC_DATABASE_URL"],
147
+ // #1328 — no database login at all. On gcp-firebase the service still
148
+ // carries the gateway's URL until its roll removes it with the rest of
149
+ // the gateway env (RETIRED_SERVICE_ENV), so the TLS step leaves it alone.
150
+ "mcp-auth-proxy": [],
151
+ };
52
152
  /** The public site's base URL, as the admin seeds `site_base_url` from it (#551). */
53
153
  export function publicSiteUrl(domain) {
54
154
  return `https://${domain}`;
@@ -229,6 +329,10 @@ export const SERVICE_SECRET_ENV = {
229
329
  PUBLIC_DATABASE_PASSWORD: "public-role-password",
230
330
  // #650 — verifies staging-host requests (api-gateway staging-proxy.ts).
231
331
  CAELO_STAGING_GATE_SECRET: "staging-gate-secret",
332
+ },
333
+ // #1328 — with the Google sign-in client file below, the proxy's whole
334
+ // Secret Manager reach: no database password, no other key.
335
+ "mcp-auth-proxy": {
232
336
  // #806 — seals the remote-MCP broker's state, codes and refresh tokens.
233
337
  CAELO_MCP_OAUTH_SEAL_KEY: "mcp-oauth-seal-key",
234
338
  },
@@ -238,7 +342,7 @@ export const SERVICE_SECRET_ENV = {
238
342
  // ===========================================================================
239
343
  /** Env var naming the file that holds the install's Google sign-in client (#914). */
240
344
  export const OPERATOR_OAUTH_CLIENT_FILE_ENV = "CAELO_OPERATOR_OAUTH_CLIENT_FILE";
241
- /** The gateway's Google sign-in client file, read by the remote-MCP broker (#806, #914). */
345
+ /** The Google sign-in client file the remote-MCP broker reads (#806, #914; in the MCP-Auth-Proxy since #1328). */
242
346
  export const OPERATOR_OAUTH_CLIENT_FILE = {
243
347
  secret: "operator-oauth-client",
244
348
  volumeName: "operator-oauth-client",
@@ -250,10 +354,11 @@ export const OPERATOR_OAUTH_CLIENT_FILE = {
250
354
  export function secretFilePath(file) {
251
355
  return `${file.mountDir}/${file.fileName}`;
252
356
  }
253
- /** Each service's secret files. The admin has none. */
357
+ /** Each service's secret files. Only the MCP-Auth-Proxy has one. */
254
358
  export const SERVICE_SECRET_FILES = {
255
359
  admin: [],
256
- gateway: [OPERATOR_OAUTH_CLIENT_FILE],
360
+ gateway: [],
361
+ "mcp-auth-proxy": [OPERATOR_OAUTH_CLIENT_FILE],
257
362
  };
258
363
  /**
259
364
  * Secret files older contracts mounted that nothing reads any more, per
@@ -270,6 +375,22 @@ export const RETIRED_SECRET_FILES = {
270
375
  fileName: "client.json",
271
376
  why: "the Google sign-in client is mounted from operator-oauth-client now (#914)",
272
377
  },
378
+ {
379
+ secret: "operator-oauth-client",
380
+ mountDir: "/secrets/operator-oauth-client",
381
+ fileName: "client.json",
382
+ why: "the remote-MCP broker moved to the MCP-Auth-Proxy (#1328); the visitor gateway must not hold the Google sign-in client",
383
+ },
384
+ ],
385
+ "mcp-auth-proxy": [
386
+ {
387
+ // gcp-firebase: the proxy is the service that was the gateway, which
388
+ // mounted this file until #914.
389
+ secret: "mcp-oauth-client",
390
+ mountDir: "/secrets/mcp-oauth-client",
391
+ fileName: "client.json",
392
+ why: "the Google sign-in client is mounted from operator-oauth-client now (#914)",
393
+ },
273
394
  ],
274
395
  };
275
396
  /**
@@ -317,6 +438,30 @@ export const RETIRED_SERVICE_ENV = {
317
438
  // #635 — its gateway_role login on cms_admin is gone too.
318
439
  "GATEWAY_DATABASE_URL",
319
440
  "GATEWAY_DATABASE_PASSWORD",
441
+ // #1328 — remote MCP moved to the MCP-Auth-Proxy.
442
+ "CAELO_OPERATOR_OAUTH_CLIENT_FILE",
443
+ "CAELO_MCP_OAUTH_SEAL_KEY",
444
+ "CAELO_MCP_OAUTH_SEAL_KEY_PREVIOUS",
445
+ "CAELO_MCP_PUBLIC_URL",
446
+ "CAELO_ADMIN_URL",
447
+ ],
448
+ // #1328 — on gcp-firebase the proxy is the service that was the gateway:
449
+ // everything that service carried for visitor traffic goes, above all
450
+ // every database login and the staging gate key. The proxy's SA cannot
451
+ // read their secrets, so a revision that kept one would not even deploy.
452
+ "mcp-auth-proxy": [
453
+ "PUBLIC_DATABASE_URL",
454
+ "PUBLIC_DATABASE_PASSWORD",
455
+ "CAELO_STAGING_GATE_SECRET",
456
+ "CAELO_ENV",
457
+ "MEDIA_STORAGE_URL",
458
+ "CAELO_DB_PUBLIC_POOL_MAX",
459
+ "CAELO_MCP_OAUTH_CLIENT_FILE",
460
+ "CAELO_SECRET_KEK",
461
+ "ADMIN_DATABASE_URL",
462
+ "ADMIN_DATABASE_PASSWORD",
463
+ "GATEWAY_DATABASE_URL",
464
+ "GATEWAY_DATABASE_PASSWORD",
320
465
  ],
321
466
  };
322
467
  function secretEnv(service, env) {
@@ -358,10 +503,12 @@ export const GATEWAY_TRUSTED_PROXY_HOPS = {
358
503
  // ingress is internal-and-LB only, so nothing reaches it around the LB.
359
504
  gcp: 2,
360
505
  // Cloud Run's front end appends its peer. Behind the Firebase Hosting
361
- // rewrite that peer is the Hosting CDN edge, and the entry Hosting adds
362
- // before it cannot be told apart from a forged one (the service is
363
- // invokable on *.run.app too) — so the edge address is the most that can
364
- // be trusted. Staging (Cloud Run domain mapping) gets the visitor.
506
+ // rewrite that peer is a Google front-end proxy that changes per request,
507
+ // and the visitor entry Hosting writes before it cannot be told apart
508
+ // from a forged one (the service is invokable on *.run.app too) — so the
509
+ // proxy address is the most that can be trusted
510
+ // (docs/dev/firebase-hosting-behaviour.md). Staging (Cloud Run domain
511
+ // mapping) gets the visitor.
365
512
  "gcp-firebase": 1,
366
513
  // Caddy without `trusted_proxies` replaces the header with its peer; the
367
514
  // gateway is reachable only on the Compose network.
@@ -382,24 +529,99 @@ export function gatewayEnvContract(inputs) {
382
529
  ...commonEnv(inputs),
383
530
  { name: TRUSTED_PROXY_HOPS_ENV, value: String(GATEWAY_TRUSTED_PROXY_HOPS[inputs.provider]) },
384
531
  { name: "PUBLIC_DATABASE_URL", value: inputs.databaseUrls.public },
385
- // #806 — where the remote-MCP broker reads its Google OAuth client
386
- // (the secret volume of SERVICE_SECRET_FILES).
387
- { name: OPERATOR_OAUTH_CLIENT_FILE_ENV, value: secretFilePath(OPERATOR_OAUTH_CLIENT_FILE) },
388
532
  ...secretEnv("gateway", inputs.env),
389
533
  ];
390
534
  }
391
535
  /**
392
- * #806 — the gateway's request timeout, in seconds: Cloud Run's maximum.
393
- * The gateway proxies remote-MCP requests to the admin, and a `caelo_chat`
394
- * turn streams for as long as the admin's own chat stream may (the admin
395
- * runs at 3600 s for the same reason). Visitor endpoints are unaffected: a
396
- * timeout is a ceiling, not a reservation, and Cloud Run bills request time,
397
- * not the allowed maximum. On `gcp` the load balancer in front adds no
398
- * shorter limit — the backend-service timeout does not apply to serverless
399
- * NEGs, which get a fixed 60 minutes
536
+ * #1328 — whether remote MCP can exist on a provider, as the MCP-Auth-Proxy
537
+ * reads it. It needs the admin behind Google IAP, which only the Google
538
+ * Cloud installs have. `unavailable` makes the proxy answer one fixed 404
539
+ * to everything but its health check: the service exists on every provider
540
+ * at zero minimum instances (E14 a of #763), its attack surface one branch.
541
+ * The proxy refuses to start without the var — no default (CLAUDE.md §2).
542
+ */
543
+ export const REMOTE_MCP_MODE_ENV = "CAELO_REMOTE_MCP";
544
+ /** {@link REMOTE_MCP_MODE_ENV} per provider. */
545
+ export const REMOTE_MCP_MODE = {
546
+ gcp: "available",
547
+ "gcp-firebase": "available",
548
+ "self-hosted": "unavailable",
549
+ aws: "unavailable",
550
+ azure: "unavailable",
551
+ };
552
+ /**
553
+ * {@link TRUSTED_PROXY_HOPS_ENV} of the MCP-Auth-Proxy per provider: its
554
+ * rate limits key on the client address by the same rule as the gateway's
555
+ * (@caelo-cms/shared client-address.ts), under its own topology.
556
+ */
557
+ export const MCP_AUTH_PROXY_TRUSTED_PROXY_HOPS = {
558
+ // Behind the external Application LB (`<client>,<LB IP>`); its ingress
559
+ // is internal-and-LB only.
560
+ gcp: 2,
561
+ // Its own run.app URL with no rewrite in front: Cloud Run's front end
562
+ // appends the client.
563
+ "gcp-firebase": 1,
564
+ // Caddy (its own vhost) replaces the header with its peer.
565
+ "self-hosted": 1,
566
+ // Not deployed yet (#749); the gateway's topology once it is.
567
+ aws: 2,
568
+ // Container Apps ingress appends its peer.
569
+ azure: 1,
570
+ };
571
+ /**
572
+ * #1328 — points the `gcp-firebase` MCP-Auth-Proxy at the visitor data
573
+ * gateway for the traffic that still reaches the service that used to be
574
+ * the gateway: the Firebase `/api/**` rewrite of the release that is live
575
+ * until the next Publish live, and the staging host's Cloud Run domain
576
+ * mapping (#650), which only the domain's verified owner could move. The
577
+ * proxy streams that traffic to the data gateway unchanged instead of
578
+ * answering it (apps/mcp-auth-proxy interim-forward.ts). gcp-firebase only.
579
+ */
580
+ // FIXME(issue #1331): goes with the staging cutover, once neither a mapping
581
+ // nor a published rewrite can point at the proxy any more.
582
+ export const INTERIM_FORWARD_ORIGIN_ENV = "CAELO_INTERIM_FORWARD_ORIGIN";
583
+ /**
584
+ * The env of the MCP-Auth-Proxy. No database URL, no pool size, no site
585
+ * settings: the broker reads env plus one secret file and nothing else
586
+ * (apps/mcp-auth-proxy, whose import lint keeps every database client out).
587
+ * The remote-MCP identity env — its public origin, the admin's URL — comes
588
+ * on top from {@link remoteMcpIdentityEnv}, the gcp-firebase forward origin
589
+ * from the stack or the converge ({@link INTERIM_FORWARD_ORIGIN_ENV}).
590
+ */
591
+ export function mcpAuthProxyEnvContract(inputs) {
592
+ return [
593
+ { name: "CAELO_PROVIDER", value: inputs.provider },
594
+ { name: REMOTE_MCP_MODE_ENV, value: REMOTE_MCP_MODE[inputs.provider] },
595
+ {
596
+ name: TRUSTED_PROXY_HOPS_ENV,
597
+ value: String(MCP_AUTH_PROXY_TRUSTED_PROXY_HOPS[inputs.provider]),
598
+ },
599
+ // #806 — where the broker reads the Google sign-in client (the secret
600
+ // volume of SERVICE_SECRET_FILES).
601
+ { name: OPERATOR_OAUTH_CLIENT_FILE_ENV, value: secretFilePath(OPERATOR_OAUTH_CLIENT_FILE) },
602
+ ...secretEnv("mcp-auth-proxy", inputs.env),
603
+ ];
604
+ }
605
+ /**
606
+ * #806 — the MCP-Auth-Proxy's request timeout, in seconds: Cloud Run's
607
+ * maximum (the gateway's until #1328 moved the broker out). The proxy
608
+ * streams remote-MCP requests to the admin, and a `caelo_chat` turn streams
609
+ * for as long as the admin's own chat stream may (the admin runs at 3600 s
610
+ * for the same reason). A timeout is a ceiling, not a reservation: Cloud
611
+ * Run bills request time, not the allowed maximum. On `gcp` the load
612
+ * balancer in front adds no shorter limit — the backend-service timeout
613
+ * does not apply to serverless NEGs, which get a fixed 60 minutes
400
614
  * (cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts).
401
615
  */
402
- export const GATEWAY_TIMEOUT_SECONDS = 3600;
616
+ export const MCP_AUTH_PROXY_TIMEOUT_SECONDS = 3600;
617
+ /**
618
+ * #1328 — the MCP-Auth-Proxy's maximum instances. It holds no database
619
+ * pool, so the connection budget does not bound it; ten instances of
620
+ * streaming proxies carry far more agent sessions than an install has
621
+ * operators, and the ceiling caps what a flood of sign-in requests can cost.
622
+ * Always provisioned at minimum 0 (E14 a of #763).
623
+ */
624
+ export const DEFAULT_MCP_AUTH_PROXY_MAX_INSTANCES = 10;
403
625
  /**
404
626
  * Whether each Cloud Run service gets CPU only while it handles a request
405
627
  * (Cloud Run's request-based billing, `cpuIdle: true`) or for its whole
@@ -408,15 +630,27 @@ export const GATEWAY_TIMEOUT_SECONDS = 3600;
408
630
  * `resources`, which is how both services ran with always-on CPU without
409
631
  * anyone choosing it — billed for every idle minute an instance stayed up.
410
632
  *
411
- * The gateway only does work inside requests. The admin still runs its
412
- * background work (Tier 5: audit worker, importer, plugin cron, GC) on
413
- * in-process timers that need CPU between requests.
633
+ * The gateway and the MCP-Auth-Proxy only do work inside requests. The
634
+ * admin still runs its background work (Tier 5: audit worker, importer,
635
+ * plugin cron, GC) on in-process timers that need CPU between requests.
414
636
  */
415
637
  export const SERVICE_CPU_IDLE = {
416
638
  // FIXME(issue #1140): true once the admin's background work no longer
417
639
  // depends on CPU between requests (jobs, scheduler, plugin host).
418
640
  admin: false,
419
641
  gateway: true,
642
+ "mcp-auth-proxy": true,
643
+ };
644
+ /**
645
+ * Whether each service egresses into the install's VPC: the admin and the
646
+ * gateway reach Cloud SQL's private IP; the MCP-Auth-Proxy reaches nothing
647
+ * private (#1328) — it calls Google's token endpoint and the admin's public,
648
+ * IAP-gated URL, so it gets no route to the database's network at all.
649
+ */
650
+ export const SERVICE_VPC_EGRESS = {
651
+ admin: true,
652
+ gateway: true,
653
+ "mcp-auth-proxy": false,
420
654
  };
421
655
  /** Admin env var naming the Secret Manager secret the Owner writes the Google sign-in client to. */
422
656
  export const OPERATOR_OAUTH_CLIENT_STORE_ENV = "CAELO_OPERATOR_OAUTH_CLIENT_STORE";
@@ -435,11 +669,12 @@ export const REMOTE_MCP_ENV = {
435
669
  * The install's remote-MCP identity.
436
670
  *
437
671
  * - `gcp`: the broker answers on the site's own host through the load
438
- * balancer (`/api/*` and the `/.well-known/oauth-*` path rules), the admin
439
- * on `admin.<domain>` behind the LB's IAP; the IAP audience is
440
- * `/projects/<number>/global/backendServices/<id>`.
441
- * - `gcp-firebase`: the broker answers on the gateway's own Cloud Run URL
442
- * (Firebase Hosting rewrites cut requests at 60 s and buffer streams), the
672
+ * balancer (its MCP path rules route to the MCP-Auth-Proxy's backend,
673
+ * #1328), the admin on `admin.<domain>` behind the LB's IAP; the IAP
674
+ * audience is `/projects/<number>/global/backendServices/<id>`.
675
+ * - `gcp-firebase`: the broker answers on the MCP-Auth-Proxy's own Cloud Run
676
+ * URL — the URL the gateway had before #1328 (E13 a) — never through
677
+ * Firebase Hosting (rewrites cut requests at 60 s and buffer streams), the
443
678
  * admin on its Cloud Run URL behind native IAP — whatever custom domain
444
679
  * is mapped to it, IAP and its audience are the service's; the audience
445
680
  * is `/projects/<number>/locations/<region>/services/<name>`.
@@ -457,7 +692,7 @@ export function remoteMcpIdentity(i) {
457
692
  }
458
693
  return {
459
694
  adminUrl: origin(i.adminServiceUrl),
460
- mcpPublicUrl: origin(i.gatewayServiceUrl),
695
+ mcpPublicUrl: origin(i.mcpAuthProxyServiceUrl),
461
696
  iapAudience: `/projects/${i.projectNumber}/locations/${i.region}/services/${i.adminServiceName}`,
462
697
  };
463
698
  }
@@ -476,7 +711,10 @@ export function remoteMcpIdentityEnv(id) {
476
711
  ? [{ name: REMOTE_MCP_ENV.googleOrgDomain, value: id.googleOrgDomain }]
477
712
  : []),
478
713
  ],
479
- gateway: [
714
+ // #1328 — the broker lives in the MCP-Auth-Proxy; the visitor gateway
715
+ // gets none of it.
716
+ gateway: [],
717
+ "mcp-auth-proxy": [
480
718
  { name: REMOTE_MCP_ENV.adminUrl, value: id.adminUrl },
481
719
  { name: REMOTE_MCP_ENV.mcpPublicUrl, value: id.mcpPublicUrl },
482
720
  ],
@@ -534,7 +772,7 @@ export function parseRemoteMcpIdentityConfig(raw) {
534
772
  */
535
773
  export function remoteMcpIdentityStackEnv(raw) {
536
774
  const id = parseRemoteMcpIdentityConfig(raw);
537
- return id ? remoteMcpIdentityEnv(id) : { admin: [], gateway: [] };
775
+ return id ? remoteMcpIdentityEnv(id) : { admin: [], gateway: [], "mcp-auth-proxy": [] };
538
776
  }
539
777
  /** Whether two identities would give the services the same env. */
540
778
  export function sameRemoteMcpIdentity(a, b) {
@@ -658,18 +896,24 @@ const SECRET_VERSION_ADDER = "roles/secretmanager.secretVersionAdder";
658
896
  * on exactly the secrets its env reads ({@link SERVICE_SECRET_ENV}).
659
897
  */
660
898
  export function runtimeSecretBindings() {
661
- return ["admin", "gateway"].flatMap((service) => serviceSecrets(service).map((secret) => ({
899
+ return CLOUD_RUN_SLUGS.flatMap((service) => serviceSecrets(service).map((secret) => ({
662
900
  service,
663
901
  secret,
664
902
  // The admin's keep the names they had when one SA served both.
665
- stackResource: service === "admin" ? `${secret}-binding` : `gateway-${secret}-binding`,
903
+ stackResource: service === "admin" ? `${secret}-binding` : `${service}-${secret}-binding`,
666
904
  })));
667
905
  }
906
+ /** The runtime SA each Cloud Run service runs as. */
907
+ export const SERVICE_PRINCIPAL = {
908
+ admin: "run-sa",
909
+ gateway: "gateway-sa",
910
+ "mcp-auth-proxy": "mcp-auth-proxy-sa",
911
+ };
668
912
  function secretAccessors() {
669
913
  return runtimeSecretBindings().map((b) => ({
670
914
  stackResource: b.stackResource,
671
915
  role: SECRET_ACCESSOR,
672
- member: b.service === "admin" ? "run-sa" : "gateway-sa",
916
+ member: SERVICE_PRINCIPAL[b.service],
673
917
  target: { kind: "secret", name: b.secret },
674
918
  onFailure: "abort",
675
919
  why: `the ${b.service} reads ${b.secret} from Secret Manager at boot`,
@@ -795,7 +1039,7 @@ const GCP_FIREBASE_ONLY = [
795
1039
  why: "the admin publishes the site to Firebase Hosting",
796
1040
  },
797
1041
  {
798
- stackResource: "gateway-public-invoker",
1042
+ stackResource: "data-gateway-public-invoker",
799
1043
  role: "roles/run.invoker",
800
1044
  member: "allUsers",
801
1045
  target: { kind: "run-service", service: "gateway" },
@@ -803,13 +1047,24 @@ const GCP_FIREBASE_ONLY = [
803
1047
  why: "Firebase Hosting rewrites /api/** to the public gateway",
804
1048
  },
805
1049
  {
806
- stackResource: "gateway-viewer-for-admin-sa",
1050
+ stackResource: "data-gateway-viewer-for-admin-sa",
807
1051
  role: "roles/run.viewer",
808
1052
  member: "run-sa",
809
1053
  target: { kind: "run-service", service: "gateway" },
810
1054
  onFailure: "abort",
811
1055
  why: "Firebase Hosting checks run.services.get on the rewrite target at deploy time (v0.6.5; without it every publish 403s)",
812
1056
  },
1057
+ {
1058
+ // #1328 — the service that was the gateway (E13 a); MCP clients call
1059
+ // its run.app URL without a Google identity of their own. The stack
1060
+ // keeps the binding's old logical name, like the service's.
1061
+ stackResource: "gateway-public-invoker",
1062
+ role: "roles/run.invoker",
1063
+ member: "allUsers",
1064
+ target: { kind: "run-service", service: "mcp-auth-proxy" },
1065
+ onFailure: "abort",
1066
+ why: "MCP clients sign in and call remote MCP at the MCP-Auth-Proxy's run.app URL",
1067
+ },
813
1068
  {
814
1069
  stackResource: "admin-iap-sa-invoker",
815
1070
  role: "roles/run.invoker",
@@ -837,6 +1092,26 @@ export const RETIRED_IAM_BINDINGS = [
837
1092
  target: { kind: "secret", name: "gateway-role-password" },
838
1093
  why: "the gateway has no cms_admin login at all and must not be able to read gateway_role's password (CLAUDE.md §2, #635)",
839
1094
  },
1095
+ {
1096
+ role: SECRET_ACCESSOR,
1097
+ member: "gateway-sa",
1098
+ target: { kind: "secret", name: "mcp-oauth-seal-key" },
1099
+ why: "the remote-MCP broker moved to the MCP-Auth-Proxy (#1328); a hole in a visitor handler must not open or mint the broker's sealed tokens",
1100
+ },
1101
+ {
1102
+ role: SECRET_ACCESSOR,
1103
+ member: "gateway-sa",
1104
+ target: { kind: "secret", name: "operator-oauth-client" },
1105
+ why: "the remote-MCP broker moved to the MCP-Auth-Proxy (#1328); the visitor gateway must not read the Google sign-in client's secret",
1106
+ },
1107
+ {
1108
+ // gcp-firebase: the Firebase rewrite targets the data gateway since
1109
+ // #1328, so the publisher no longer needs to read the proxy.
1110
+ role: "roles/run.viewer",
1111
+ member: "run-sa",
1112
+ target: { kind: "run-service", service: "mcp-auth-proxy" },
1113
+ why: "the Firebase /api/** rewrite targets the data gateway since #1328; the admin needs no read access to the MCP-Auth-Proxy",
1114
+ },
840
1115
  ];
841
1116
  /** Every IAM binding upgrade ensures on an install of `provider`. */
842
1117
  export function stackIamInvariants(provider) {
@@ -873,6 +1148,8 @@ export function iamMember(principal, install) {
873
1148
  return `serviceAccount:${runServiceAccountEmail(install.projectId, install.env)}`;
874
1149
  case "gateway-sa":
875
1150
  return `serviceAccount:${gatewayServiceAccountEmail(install.projectId, install.env)}`;
1151
+ case "mcp-auth-proxy-sa":
1152
+ return `serviceAccount:${mcpAuthProxyServiceAccountEmail(install.projectId, install.env)}`;
876
1153
  case "static-publisher-sa":
877
1154
  return `serviceAccount:${staticPublisherServiceAccountId(install.env)}@${install.projectId}.iam.gserviceaccount.com`;
878
1155
  case "iap-service-agent":
@@ -1 +1 @@
1
- {"version":3,"file":"stack-contract.js","sourceRoot":"","sources":["../src/stack-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-contract.js","sourceRoot":"","sources":["../src/stack-contract.ts"],"names":[],"mappings":"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"}