@caelo-cms/provisioning 0.10.47 → 0.10.49
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/caddy/Caddyfile.production +1 -1
- package/caddy/Caddyfile.staging +1 -1
- package/dist/agent/apply.d.ts +45 -0
- package/dist/agent/apply.d.ts.map +1 -0
- package/dist/agent/apply.js +83 -0
- package/dist/agent/apply.js.map +1 -0
- package/dist/agent/cli-provenance.d.ts +42 -0
- package/dist/agent/cli-provenance.d.ts.map +1 -0
- package/dist/agent/cli-provenance.js +138 -0
- package/dist/agent/cli-provenance.js.map +1 -0
- package/dist/agent/command.d.ts +79 -0
- package/dist/agent/command.d.ts.map +1 -0
- package/dist/agent/command.js +454 -0
- package/dist/agent/command.js.map +1 -0
- package/dist/agent/config.d.ts +30 -0
- package/dist/agent/config.d.ts.map +1 -0
- package/dist/agent/config.js +60 -0
- package/dist/agent/config.js.map +1 -0
- package/dist/agent/lock.d.ts +13 -0
- package/dist/agent/lock.d.ts.map +1 -0
- package/dist/agent/lock.js +100 -0
- package/dist/agent/lock.js.map +1 -0
- package/dist/agent/queue.d.ts +35 -0
- package/dist/agent/queue.d.ts.map +1 -0
- package/dist/agent/queue.js +50 -0
- package/dist/agent/queue.js.map +1 -0
- package/dist/agent/run.d.ts +97 -0
- package/dist/agent/run.d.ts.map +1 -0
- package/dist/agent/run.js +198 -0
- package/dist/agent/run.js.map +1 -0
- package/dist/agent/systemd.d.ts +55 -0
- package/dist/agent/systemd.d.ts.map +1 -0
- package/dist/agent/systemd.js +171 -0
- package/dist/agent/systemd.js.map +1 -0
- package/dist/agent/units.d.ts +44 -0
- package/dist/agent/units.d.ts.map +1 -0
- package/dist/agent/units.js +127 -0
- package/dist/agent/units.js.map +1 -0
- package/dist/agent-db.js +18402 -0
- package/dist/cli.js +119 -16
- package/dist/cli.js.map +1 -1
- package/dist/cloudsql-iam-user.d.ts +39 -0
- package/dist/cloudsql-iam-user.d.ts.map +1 -0
- package/dist/cloudsql-iam-user.js +119 -0
- package/dist/cloudsql-iam-user.js.map +1 -0
- package/dist/compose.d.ts +16 -0
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +26 -1
- package/dist/compose.js.map +1 -1
- package/dist/dns/index.d.ts +2 -0
- package/dist/dns/index.d.ts.map +1 -1
- package/dist/dns/index.js +3 -2
- package/dist/dns/index.js.map +1 -1
- package/dist/dns/manual.d.ts +5 -0
- package/dist/dns/manual.d.ts.map +1 -1
- package/dist/dns/manual.js +28 -12
- package/dist/dns/manual.js.map +1 -1
- package/dist/gcloud.d.ts +2 -0
- package/dist/gcloud.d.ts.map +1 -1
- package/dist/gcloud.js +1 -1
- package/dist/gcloud.js.map +1 -1
- package/dist/gcp-names.d.ts +15 -0
- package/dist/gcp-names.d.ts.map +1 -1
- package/dist/gcp-names.js +23 -0
- package/dist/gcp-names.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/infra-contract.d.ts +1 -1
- package/dist/infra-contract.js +7 -1
- package/dist/infra-contract.js.map +1 -1
- package/dist/install-job-runner.d.ts +13 -0
- package/dist/install-job-runner.d.ts.map +1 -0
- package/dist/install-job-runner.js +155 -0
- package/dist/install-job-runner.js.map +1 -0
- package/dist/install-job.d.ts +210 -0
- package/dist/install-job.d.ts.map +1 -0
- package/dist/install-job.js +449 -0
- package/dist/install-job.js.map +1 -0
- package/dist/install-state.d.ts +10 -1
- package/dist/install-state.d.ts.map +1 -1
- package/dist/install-state.js +10 -2
- package/dist/install-state.js.map +1 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +19 -4
- package/dist/lifecycle.js.map +1 -1
- package/dist/migration-runner.d.ts +5 -0
- package/dist/migration-runner.d.ts.map +1 -1
- package/dist/migration-runner.js +1 -1
- package/dist/migration-runner.js.map +1 -1
- package/dist/operator-access.d.ts +14 -8
- package/dist/operator-access.d.ts.map +1 -1
- package/dist/operator-access.js +16 -102
- package/dist/operator-access.js.map +1 -1
- package/dist/release-manifest.d.ts +2 -41
- package/dist/release-manifest.d.ts.map +1 -1
- package/dist/release-manifest.js +18 -121
- package/dist/release-manifest.js.map +1 -1
- package/dist/run-mode.d.ts +27 -0
- package/dist/run-mode.d.ts.map +1 -0
- package/dist/run-mode.js +22 -0
- package/dist/run-mode.js.map +1 -0
- package/dist/runtime-secrets.d.ts +19 -0
- package/dist/runtime-secrets.d.ts.map +1 -1
- package/dist/runtime-secrets.js +44 -0
- package/dist/runtime-secrets.js.map +1 -1
- package/dist/self-hosted-roles.d.ts +22 -1
- package/dist/self-hosted-roles.d.ts.map +1 -1
- package/dist/self-hosted-roles.js +81 -12
- package/dist/self-hosted-roles.js.map +1 -1
- package/dist/self-hosted-upgrade.d.ts +17 -0
- package/dist/self-hosted-upgrade.d.ts.map +1 -1
- package/dist/self-hosted-upgrade.js +16 -1
- package/dist/self-hosted-upgrade.js.map +1 -1
- package/dist/stack-contract.d.ts +6 -0
- package/dist/stack-contract.d.ts.map +1 -1
- package/dist/stack-contract.js +10 -1
- package/dist/stack-contract.js.map +1 -1
- package/dist/upgrade/converge.d.ts +6 -0
- package/dist/upgrade/converge.d.ts.map +1 -1
- package/dist/upgrade/converge.js +59 -2
- package/dist/upgrade/converge.js.map +1 -1
- package/dist/upgrade/gcp-lookup.d.ts +6 -0
- package/dist/upgrade/gcp-lookup.d.ts.map +1 -1
- package/dist/upgrade/gcp-lookup.js +25 -0
- package/dist/upgrade/gcp-lookup.js.map +1 -1
- package/dist/upgrade/release-images.d.ts +26 -2
- package/dist/upgrade/release-images.d.ts.map +1 -1
- package/dist/upgrade/release-images.js +35 -2
- package/dist/upgrade/release-images.js.map +1 -1
- package/dist/upgrade/upgrade.d.ts +5 -0
- package/dist/upgrade/upgrade.d.ts.map +1 -1
- package/dist/upgrade/upgrade.js +28 -1
- package/dist/upgrade/upgrade.js.map +1 -1
- package/dist/upgrader-assess.d.ts +85 -0
- package/dist/upgrader-assess.d.ts.map +1 -0
- package/dist/upgrader-assess.js +122 -0
- package/dist/upgrader-assess.js.map +1 -0
- package/dist/upgrader-gcp.d.ts +17 -0
- package/dist/upgrader-gcp.d.ts.map +1 -0
- package/dist/upgrader-gcp.js +87 -0
- package/dist/upgrader-gcp.js.map +1 -0
- package/dist/upgrader-job.d.ts +133 -0
- package/dist/upgrader-job.d.ts.map +1 -0
- package/dist/upgrader-job.js +259 -0
- package/dist/upgrader-job.js.map +1 -0
- package/dist/upgrader-reporter.d.ts +35 -0
- package/dist/upgrader-reporter.d.ts.map +1 -0
- package/dist/upgrader-reporter.js +79 -0
- package/dist/upgrader-reporter.js.map +1 -0
- package/dist/upgrader-setup.d.ts +59 -0
- package/dist/upgrader-setup.d.ts.map +1 -0
- package/dist/upgrader-setup.js +308 -0
- package/dist/upgrader-setup.js.map +1 -0
- package/dist/wizard.d.ts +6 -0
- package/dist/wizard.d.ts.map +1 -1
- package/dist/wizard.js +32 -4
- package/dist/wizard.js.map +1 -1
- package/dist/wizards/gcp-firebase.d.ts +3 -0
- package/dist/wizards/gcp-firebase.d.ts.map +1 -1
- package/dist/wizards/gcp-firebase.js +1 -0
- package/dist/wizards/gcp-firebase.js.map +1 -1
- package/dist/wizards/gcp-install-job.d.ts +74 -0
- package/dist/wizards/gcp-install-job.d.ts.map +1 -0
- package/dist/wizards/gcp-install-job.js +398 -0
- package/dist/wizards/gcp-install-job.js.map +1 -0
- package/dist/wizards/gcp-prompts.d.ts +3 -0
- package/dist/wizards/gcp-prompts.d.ts.map +1 -0
- package/dist/wizards/gcp-prompts.js +25 -0
- package/dist/wizards/gcp-prompts.js.map +1 -0
- package/dist/wizards/gcp-pulumi.d.ts +4 -2
- package/dist/wizards/gcp-pulumi.d.ts.map +1 -1
- package/dist/wizards/gcp-pulumi.js +1 -1
- package/dist/wizards/gcp-pulumi.js.map +1 -1
- package/dist/wizards/gcp.d.ts +40 -0
- package/dist/wizards/gcp.d.ts.map +1 -1
- package/dist/wizards/gcp.js +223 -59
- package/dist/wizards/gcp.js.map +1 -1
- package/package.json +6 -4
- package/src/adapter.ts +97 -0
- package/src/adc-impersonation.ts +176 -0
- package/src/admin-domain.test.ts +254 -0
- package/src/admin-domain.ts +245 -0
- package/src/admin-memory.test.ts +151 -0
- package/src/agent/apply.test.ts +185 -0
- package/src/agent/apply.ts +124 -0
- package/src/agent/cli-provenance.test.ts +159 -0
- package/src/agent/cli-provenance.ts +191 -0
- package/src/agent/command.test.ts +77 -0
- package/src/agent/command.ts +564 -0
- package/src/agent/config.ts +86 -0
- package/src/agent/lock-config.test.ts +97 -0
- package/src/agent/lock.ts +110 -0
- package/src/agent/queue.test.ts +10 -0
- package/src/agent/queue.ts +91 -0
- package/src/agent/run.test.ts +437 -0
- package/src/agent/run.ts +295 -0
- package/src/agent/systemd.ts +209 -0
- package/src/agent/units.test.ts +223 -0
- package/src/agent/units.ts +163 -0
- package/src/azure-front-door.test.ts +119 -0
- package/src/azure-front-door.ts +56 -0
- package/src/bootstrap-token.ts +20 -0
- package/src/caddy.ts +112 -0
- package/src/cdn-copy.ts +91 -0
- package/src/cert-wait.test.ts +194 -0
- package/src/cert-wait.ts +163 -0
- package/src/checkpoint-secrets.test.ts +380 -0
- package/src/checkpoint-secrets.ts +283 -0
- package/src/cli-routing.test.ts +45 -0
- package/src/cli-routing.ts +43 -0
- package/src/cli.ts +1491 -0
- package/src/cloudsql-iam-user.ts +147 -0
- package/src/compose.ts +334 -0
- package/src/default-firewall.test.ts +411 -0
- package/src/default-firewall.ts +342 -0
- package/src/deployed-release.test.ts +231 -0
- package/src/deployed-release.ts +220 -0
- package/src/dns/cloudflare.ts +182 -0
- package/src/dns/groups.test.ts +76 -0
- package/src/dns/groups.ts +86 -0
- package/src/dns/index.ts +56 -0
- package/src/dns/manual.ts +130 -0
- package/src/dns/types.ts +27 -0
- package/src/gateway-credentials.test.ts +180 -0
- package/src/gateway-credentials.ts +144 -0
- package/src/gcloud-components.test.ts +76 -0
- package/src/gcloud-components.ts +85 -0
- package/src/gcloud-retry.ts +41 -0
- package/src/gcloud-runner.test.ts +61 -0
- package/src/gcloud.test.ts +99 -0
- package/src/gcloud.ts +322 -0
- package/src/gcp-names.ts +135 -0
- package/src/index.test.ts +332 -0
- package/src/index.ts +114 -0
- package/src/infra-contract.ts +32 -0
- package/src/install-job-runner.ts +166 -0
- package/src/install-job.test.ts +566 -0
- package/src/install-job.ts +542 -0
- package/src/install-state.test.ts +239 -0
- package/src/install-state.ts +583 -0
- package/src/internal-token.ts +35 -0
- package/src/lifecycle.ts +900 -0
- package/src/mcp-iap-stacks.test.ts +58 -0
- package/src/mcp-iap.test.ts +149 -0
- package/src/mcp-iap.ts +131 -0
- package/src/media-volume.test.ts +296 -0
- package/src/migration-runner.ts +365 -0
- package/src/operator-access-stacks.test.ts +55 -0
- package/src/operator-access.test.ts +332 -0
- package/src/operator-access.ts +554 -0
- package/src/ops-backend.test.ts +320 -0
- package/src/ops-backend.ts +414 -0
- package/src/provisioner-identity.test.ts +482 -0
- package/src/provisioner-identity.ts +407 -0
- package/src/redirects-emit.ts +175 -0
- package/src/region-data.ts +428 -0
- package/src/regions.test.ts +277 -0
- package/src/regions.ts +370 -0
- package/src/release-contract.ts +57 -0
- package/src/release-manifest.test.ts +300 -0
- package/src/release-manifest.ts +310 -0
- package/src/run-mode.ts +40 -0
- package/src/runtime-secrets.test.ts +627 -0
- package/src/runtime-secrets.ts +754 -0
- package/src/self-command.test.ts +14 -0
- package/src/self-command.ts +21 -0
- package/src/self-hosted-compose.test.ts +177 -0
- package/src/self-hosted-release.ts +240 -0
- package/src/self-hosted-roles.integration.test.ts +161 -0
- package/src/self-hosted-roles.test.ts +124 -0
- package/src/self-hosted-roles.ts +203 -0
- package/src/self-hosted-upgrade.test.ts +394 -0
- package/src/self-hosted-upgrade.ts +548 -0
- package/src/stack-contract-parity.test.ts +199 -0
- package/src/stack-contract.test.ts +391 -0
- package/src/stack-contract.ts +888 -0
- package/src/stack-converge-secrets.test.ts +421 -0
- package/src/stack-converge.test.ts +833 -0
- package/src/stack-converge.ts +909 -0
- package/src/staging-admin.test.ts +246 -0
- package/src/staging-admin.ts +324 -0
- package/src/state-attach.test.ts +211 -0
- package/src/state-attach.ts +132 -0
- package/src/state-backend.test.ts +145 -0
- package/src/state-backend.ts +262 -0
- package/src/state-command.ts +293 -0
- package/src/state-migrate.test.ts +479 -0
- package/src/state-migrate.ts +434 -0
- package/src/state-pulumi.ts +289 -0
- package/src/state-store.test.ts +212 -0
- package/src/state-store.ts +243 -0
- package/src/upgrade/app-roll.ts +486 -0
- package/src/upgrade/backup.ts +109 -0
- package/src/upgrade/converge.ts +437 -0
- package/src/upgrade/gcp-lookup.ts +167 -0
- package/src/upgrade/health.test.ts +279 -0
- package/src/upgrade/health.ts +305 -0
- package/src/upgrade/release-images.test.ts +119 -0
- package/src/upgrade/release-images.ts +393 -0
- package/src/upgrade/reporter.ts +46 -0
- package/src/upgrade/upgrade.test.ts +626 -0
- package/src/upgrade/upgrade.ts +249 -0
- package/src/upgrader-assess.test.ts +306 -0
- package/src/upgrader-assess.ts +250 -0
- package/src/upgrader-gcp.ts +123 -0
- package/src/upgrader-job.test.ts +411 -0
- package/src/upgrader-job.ts +502 -0
- package/src/upgrader-reporter.test.ts +46 -0
- package/src/upgrader-reporter.ts +105 -0
- package/src/upgrader-setup.test.ts +169 -0
- package/src/upgrader-setup.ts +355 -0
- package/src/wizard.ts +425 -0
- package/src/wizards/gcp-cost.ts +188 -0
- package/src/wizards/gcp-firebase.ts +72 -0
- package/src/wizards/gcp-install-job.ts +506 -0
- package/src/wizards/gcp-prompts.ts +26 -0
- package/src/wizards/gcp-pulumi.test.ts +246 -0
- package/src/wizards/gcp-pulumi.ts +516 -0
- package/src/wizards/gcp.ts +1935 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Set up (and converge) the upgrader job on a Google Cloud install (`gcp`,
|
|
4
|
+
* `gcp-firebase`), epic #696 Phase 2. Run by the wizard after migrations and
|
|
5
|
+
* by `cms-provision upgrade`'s converge, both as the operator's own gcloud
|
|
6
|
+
* identity — never by the admin, never by the job itself.
|
|
7
|
+
*
|
|
8
|
+
* Trust boundary (same shape as operator-access.ts). The admin may only
|
|
9
|
+
* START the job: `roles/run.jobsExecutor` on that one job — `run.jobs.run`
|
|
10
|
+
* without `run.jobs.runWithOverrides` (cloud.google.com/run/docs/reference/
|
|
11
|
+
* iam/roles) — plus `roles/run.viewer` on it to read its runs. It cannot
|
|
12
|
+
* change the job's image, command, args or env, and it holds no other
|
|
13
|
+
* right the job has. What the job installs comes from the request row
|
|
14
|
+
* (just a version) and the signed release manifest (upgrader-job.ts).
|
|
15
|
+
*
|
|
16
|
+
* The job's own service account, `caelo-<env>-upgrader`, may do exactly
|
|
17
|
+
* what an app-roll needs (upgrade/app-roll.ts):
|
|
18
|
+
*
|
|
19
|
+
* - `roles/run.developer` on the project: deploy admin/gateway revisions,
|
|
20
|
+
* move traffic, recreate the migration job, update its own job image.
|
|
21
|
+
* It includes no `*.setIamPolicy`.
|
|
22
|
+
* - `roles/iam.serviceAccountUser` on exactly the admin's and the
|
|
23
|
+
* gateway's runtime service accounts (a revision runs as them) and on
|
|
24
|
+
* itself (its own job) — not on the project.
|
|
25
|
+
* - the custom role `caeloUpgraderSqlBackup`: create/read Cloud SQL
|
|
26
|
+
* backups and read the instance — no restore, no instance changes.
|
|
27
|
+
* - `roles/cloudsql.instanceUser` + a Cloud SQL IAM database user that
|
|
28
|
+
* is a member of `platform_updater` (migration 0267) only.
|
|
29
|
+
* - `roles/iam.serviceAccountTokenCreator` on caelo-mcp only: the deep
|
|
30
|
+
* health check signs its IAP credential as that account
|
|
31
|
+
* (upgrade/health.ts). The operator-access sync job keeps it there.
|
|
32
|
+
* - `roles/storage.objectUser` on the ops bucket, conditioned to the
|
|
33
|
+
* `install/` prefix (install.json) — not the Pulumi state.
|
|
34
|
+
* - `roles/logging.logWriter`.
|
|
35
|
+
*
|
|
36
|
+
* It gets no `*.setIamPolicy`, no service-account admin, no secret
|
|
37
|
+
* creation, no compute and no resourcemanager rights: whatever needs them
|
|
38
|
+
* is a converge, which only the operator runs ("Run in Cloud Shell").
|
|
39
|
+
* {@link UPGRADER_FORBIDDEN_ROLES} names that line; the tests assert no
|
|
40
|
+
* grant crosses it.
|
|
41
|
+
*/
|
|
42
|
+
import { ensureCloudSqlIamUser } from "./cloudsql-iam-user.js";
|
|
43
|
+
import { gcloud as defaultGcloud } from "./gcloud.js";
|
|
44
|
+
import { realSleep, runWithRetry } from "./gcloud-retry.js";
|
|
45
|
+
import { gatewayServiceAccountEmail, mcpIapServiceAccountEmail, runServiceAccountEmail, upgraderJobName, upgraderServiceAccountEmail, upgraderServiceAccountId, } from "./gcp-names.js";
|
|
46
|
+
import { readAdminConfig } from "./migration-runner.js";
|
|
47
|
+
import { customRoleName, ensureCustomRole } from "./operator-access.js";
|
|
48
|
+
import { OPS_INSTALL_PREFIX, opsBucketName } from "./state-backend.js";
|
|
49
|
+
/** Cloud SQL backups for the pre-upgrade backup — nothing else on the instance. */
|
|
50
|
+
export const UPGRADER_SQL_BACKUP_ROLE = {
|
|
51
|
+
roleId: "caeloUpgraderSqlBackup",
|
|
52
|
+
title: "Caelo upgrader: Cloud SQL backups",
|
|
53
|
+
description: "Lets the Caelo upgrader job take and read on-demand Cloud SQL backups before an update. No restore, no instance changes.",
|
|
54
|
+
permissions: [
|
|
55
|
+
"cloudsql.backupRuns.create",
|
|
56
|
+
"cloudsql.backupRuns.get",
|
|
57
|
+
"cloudsql.backupRuns.list",
|
|
58
|
+
"cloudsql.instances.get",
|
|
59
|
+
"cloudsql.instances.list",
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
/** Project-level roles of the upgrader's service account. */
|
|
63
|
+
export const UPGRADER_PROJECT_ROLES = [
|
|
64
|
+
"roles/run.developer",
|
|
65
|
+
"roles/cloudsql.instanceUser",
|
|
66
|
+
"roles/logging.logWriter",
|
|
67
|
+
];
|
|
68
|
+
/**
|
|
69
|
+
* Roles the upgrader must never hold anywhere — they would let it change
|
|
70
|
+
* IAM, manage service accounts or secrets, or touch compute/projects.
|
|
71
|
+
* Prefix matches (`roles/compute.` = every compute role).
|
|
72
|
+
*/
|
|
73
|
+
export const UPGRADER_FORBIDDEN_ROLES = [
|
|
74
|
+
"roles/owner",
|
|
75
|
+
"roles/editor",
|
|
76
|
+
"roles/run.admin",
|
|
77
|
+
"roles/iam.serviceAccountAdmin",
|
|
78
|
+
"roles/iam.serviceAccountKeyAdmin",
|
|
79
|
+
"roles/iam.securityAdmin",
|
|
80
|
+
"roles/iam.roleAdmin",
|
|
81
|
+
"roles/resourcemanager.",
|
|
82
|
+
"roles/secretmanager.admin",
|
|
83
|
+
"roles/secretmanager.secretVersionAdder",
|
|
84
|
+
"roles/compute.",
|
|
85
|
+
"roles/cloudsql.admin",
|
|
86
|
+
"roles/cloudsql.editor",
|
|
87
|
+
"roles/storage.admin",
|
|
88
|
+
"roles/storage.objectAdmin",
|
|
89
|
+
];
|
|
90
|
+
/** Database role migration 0267 creates for the job. */
|
|
91
|
+
export const UPGRADER_DB_ROLE = "platform_updater";
|
|
92
|
+
/** The job's resources: enough for a backup + roll; the job ends within it. */
|
|
93
|
+
const JOB_TASK_TIMEOUT = "60m";
|
|
94
|
+
/** The ops bucket condition: install.json and progress.json, not the Pulumi state. */
|
|
95
|
+
export function installStateCondition(bucket) {
|
|
96
|
+
return `expression=resource.name.startsWith("projects/_/buckets/${bucket}/objects/${OPS_INSTALL_PREFIX}/"),title=caelo-upgrader-install-state,description=Only the install metadata under ${OPS_INSTALL_PREFIX}/`;
|
|
97
|
+
}
|
|
98
|
+
/** Ensure the upgrader job and everything it needs. Never throws for a gcloud failure. */
|
|
99
|
+
export async function ensureUpgraderJob(target, deps = {}) {
|
|
100
|
+
const run = deps.run ?? defaultGcloud;
|
|
101
|
+
const sleep = deps.sleep ?? realSleep;
|
|
102
|
+
const retry = (args) => runWithRetry(run, sleep, args);
|
|
103
|
+
const { projectId, region, env } = target;
|
|
104
|
+
const project = `--project=${projectId}`;
|
|
105
|
+
const sa = upgraderServiceAccountEmail(projectId, env);
|
|
106
|
+
const member = `serviceAccount:${sa}`;
|
|
107
|
+
const runSaMember = `serviceAccount:${runServiceAccountEmail(projectId, env)}`;
|
|
108
|
+
const job = upgraderJobName(env);
|
|
109
|
+
const bucket = opsBucketName(projectId);
|
|
110
|
+
const done = [];
|
|
111
|
+
const fail = (step, r) => ({
|
|
112
|
+
ok: false,
|
|
113
|
+
done,
|
|
114
|
+
error: `${step}: ${r.stderr.trim()}`,
|
|
115
|
+
});
|
|
116
|
+
if (!/@sha256:[0-9a-f]{64}$/.test(target.opsImageRef)) {
|
|
117
|
+
return {
|
|
118
|
+
ok: false,
|
|
119
|
+
done,
|
|
120
|
+
error: `the upgrader image must be pinned by digest, got ${target.opsImageRef}`,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// The job keeps install.json in the install's own ops bucket; an install
|
|
124
|
+
// whose state still lives on the operator's machine has none.
|
|
125
|
+
const bucketCheck = await run([
|
|
126
|
+
"storage",
|
|
127
|
+
"buckets",
|
|
128
|
+
"describe",
|
|
129
|
+
`gs://${bucket}`,
|
|
130
|
+
project,
|
|
131
|
+
"--format=value(name)",
|
|
132
|
+
]);
|
|
133
|
+
if (!bucketCheck.ok) {
|
|
134
|
+
return {
|
|
135
|
+
ok: false,
|
|
136
|
+
done,
|
|
137
|
+
error: `the ops bucket gs://${bucket} is not there (${bucketCheck.stderr.trim()}). Move the install's state into its own project first: cms-provision state migrate`,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// 1. The backup role.
|
|
141
|
+
const roleError = await ensureCustomRole(run, projectId, UPGRADER_SQL_BACKUP_ROLE);
|
|
142
|
+
if (roleError)
|
|
143
|
+
return { ok: false, done, error: roleError };
|
|
144
|
+
done.push(`custom role ${UPGRADER_SQL_BACKUP_ROLE.roleId}`);
|
|
145
|
+
// 2. The job's own service account.
|
|
146
|
+
const describe = await run([
|
|
147
|
+
"iam",
|
|
148
|
+
"service-accounts",
|
|
149
|
+
"describe",
|
|
150
|
+
sa,
|
|
151
|
+
project,
|
|
152
|
+
"--format=value(email)",
|
|
153
|
+
]);
|
|
154
|
+
if (!describe.ok) {
|
|
155
|
+
const create = await run([
|
|
156
|
+
"iam",
|
|
157
|
+
"service-accounts",
|
|
158
|
+
"create",
|
|
159
|
+
upgraderServiceAccountId(env),
|
|
160
|
+
"--display-name=Caelo upgrader",
|
|
161
|
+
"--description=Installs signed Caelo releases started from the admin; may roll the services and back up Cloud SQL, never change IAM.",
|
|
162
|
+
project,
|
|
163
|
+
]);
|
|
164
|
+
if (!create.ok && !/already exists/i.test(create.stderr))
|
|
165
|
+
return fail(`create ${sa}`, create);
|
|
166
|
+
}
|
|
167
|
+
done.push(`service account ${sa}`);
|
|
168
|
+
// 3. Project-level roles.
|
|
169
|
+
for (const role of [
|
|
170
|
+
...UPGRADER_PROJECT_ROLES,
|
|
171
|
+
customRoleName(projectId, UPGRADER_SQL_BACKUP_ROLE.roleId),
|
|
172
|
+
]) {
|
|
173
|
+
const r = await retry([
|
|
174
|
+
"projects",
|
|
175
|
+
"add-iam-policy-binding",
|
|
176
|
+
projectId,
|
|
177
|
+
`--member=${member}`,
|
|
178
|
+
`--role=${role}`,
|
|
179
|
+
"--condition=None",
|
|
180
|
+
"--quiet",
|
|
181
|
+
"--format=none",
|
|
182
|
+
]);
|
|
183
|
+
if (!r.ok)
|
|
184
|
+
return fail(`grant the upgrader ${role}`, r);
|
|
185
|
+
done.push(`upgrader: ${role} on the project`);
|
|
186
|
+
}
|
|
187
|
+
// 4. Resource-level grants on single service accounts.
|
|
188
|
+
const onAccounts = [
|
|
189
|
+
{
|
|
190
|
+
account: runServiceAccountEmail(projectId, env),
|
|
191
|
+
role: "roles/iam.serviceAccountUser",
|
|
192
|
+
why: "admin revisions + the migration job run as it",
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
account: gatewayServiceAccountEmail(projectId, env),
|
|
196
|
+
role: "roles/iam.serviceAccountUser",
|
|
197
|
+
why: "gateway revisions run as it",
|
|
198
|
+
},
|
|
199
|
+
{ account: sa, role: "roles/iam.serviceAccountUser", why: "the job updates its own image" },
|
|
200
|
+
{
|
|
201
|
+
account: mcpIapServiceAccountEmail(projectId),
|
|
202
|
+
role: "roles/iam.serviceAccountTokenCreator",
|
|
203
|
+
why: "the health check signs its IAP credential as caelo-mcp",
|
|
204
|
+
},
|
|
205
|
+
];
|
|
206
|
+
for (const g of onAccounts) {
|
|
207
|
+
const r = await retry([
|
|
208
|
+
"iam",
|
|
209
|
+
"service-accounts",
|
|
210
|
+
"add-iam-policy-binding",
|
|
211
|
+
g.account,
|
|
212
|
+
`--member=${member}`,
|
|
213
|
+
`--role=${g.role}`,
|
|
214
|
+
"--condition=None",
|
|
215
|
+
project,
|
|
216
|
+
"--quiet",
|
|
217
|
+
"--format=none",
|
|
218
|
+
]);
|
|
219
|
+
if (!r.ok)
|
|
220
|
+
return fail(`grant the upgrader ${g.role} on ${g.account} (${g.why})`, r);
|
|
221
|
+
done.push(`upgrader: ${g.role} on ${g.account}`);
|
|
222
|
+
}
|
|
223
|
+
// 5. install.json in the ops bucket — and nothing else there.
|
|
224
|
+
const bucketGrant = await retry([
|
|
225
|
+
"storage",
|
|
226
|
+
"buckets",
|
|
227
|
+
"add-iam-policy-binding",
|
|
228
|
+
`gs://${bucket}`,
|
|
229
|
+
`--member=${member}`,
|
|
230
|
+
"--role=roles/storage.objectUser",
|
|
231
|
+
`--condition=${installStateCondition(bucket)}`,
|
|
232
|
+
project,
|
|
233
|
+
"--quiet",
|
|
234
|
+
"--format=none",
|
|
235
|
+
]);
|
|
236
|
+
if (!bucketGrant.ok)
|
|
237
|
+
return fail(`grant the upgrader install.json in gs://${bucket}`, bucketGrant);
|
|
238
|
+
done.push(`upgrader: roles/storage.objectUser on gs://${bucket}/${OPS_INSTALL_PREFIX}/`);
|
|
239
|
+
// 6. Its database login (migration 0267's platform_updater role).
|
|
240
|
+
const sqlUser = await ensureCloudSqlIamUser(run, {
|
|
241
|
+
projectId,
|
|
242
|
+
env,
|
|
243
|
+
serviceAccountEmail: sa,
|
|
244
|
+
databaseRole: UPGRADER_DB_ROLE,
|
|
245
|
+
});
|
|
246
|
+
done.push(...sqlUser.done);
|
|
247
|
+
if (!sqlUser.ok)
|
|
248
|
+
return { ok: false, done, error: sqlUser.error };
|
|
249
|
+
// 7. The job: the ops image, its own SA, no env, no input but the database.
|
|
250
|
+
const deploy = await run([
|
|
251
|
+
"run",
|
|
252
|
+
"jobs",
|
|
253
|
+
"deploy",
|
|
254
|
+
job,
|
|
255
|
+
`--image=${target.opsImageRef}`,
|
|
256
|
+
`--region=${region}`,
|
|
257
|
+
project,
|
|
258
|
+
`--service-account=${sa}`,
|
|
259
|
+
`--network=${target.network}`,
|
|
260
|
+
`--subnet=${target.subnet}`,
|
|
261
|
+
"--vpc-egress=private-ranges-only",
|
|
262
|
+
"--command=caelo-ops",
|
|
263
|
+
"--args=upgrader",
|
|
264
|
+
"--max-retries=0",
|
|
265
|
+
`--task-timeout=${JOB_TASK_TIMEOUT}`,
|
|
266
|
+
"--memory=1Gi",
|
|
267
|
+
"--cpu=1",
|
|
268
|
+
"--quiet",
|
|
269
|
+
]);
|
|
270
|
+
if (!deploy.ok)
|
|
271
|
+
return fail(`deploy job ${job}`, deploy);
|
|
272
|
+
done.push(`job ${job} (${target.opsImageRef.split("@")[1]?.slice(0, 19)}...)`);
|
|
273
|
+
// 8. The admin may start it (no overrides) and read its runs — nothing else.
|
|
274
|
+
for (const role of ["roles/run.jobsExecutor", "roles/run.viewer"]) {
|
|
275
|
+
const r = await retry([
|
|
276
|
+
"run",
|
|
277
|
+
"jobs",
|
|
278
|
+
"add-iam-policy-binding",
|
|
279
|
+
job,
|
|
280
|
+
`--region=${region}`,
|
|
281
|
+
project,
|
|
282
|
+
`--member=${runSaMember}`,
|
|
283
|
+
`--role=${role}`,
|
|
284
|
+
"--quiet",
|
|
285
|
+
"--format=none",
|
|
286
|
+
]);
|
|
287
|
+
if (!r.ok)
|
|
288
|
+
return fail(`grant the admin ${role} on ${job}`, r);
|
|
289
|
+
done.push(`admin: ${role} on ${job}`);
|
|
290
|
+
}
|
|
291
|
+
return { ok: true, done };
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* {@link ensureUpgraderJob}'s target, with the VPC read from the deployed
|
|
295
|
+
* admin service (the job reaches Cloud SQL's private IP the same way).
|
|
296
|
+
*/
|
|
297
|
+
export async function resolveUpgraderTarget(opts, deps = {}) {
|
|
298
|
+
const cfg = await readAdminConfig(opts, deps.run ?? defaultGcloud);
|
|
299
|
+
if (!cfg) {
|
|
300
|
+
return { ok: false, error: "could not read the admin service's VPC (is the admin deployed?)" };
|
|
301
|
+
}
|
|
302
|
+
const short = (ref) => ref.split("/").pop() ?? ref;
|
|
303
|
+
return {
|
|
304
|
+
ok: true,
|
|
305
|
+
target: { ...opts, network: short(cfg.networkRef), subnet: short(cfg.subnetRef) },
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=upgrader-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrader-setup.js","sourceRoot":"","sources":["../src/upgrader-setup.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,MAAM,IAAI,aAAa,EAAqB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAqB,SAAS,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAuB,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvE,mFAAmF;AACnF,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EACT,0HAA0H;IAC5H,WAAW,EAAE;QACX,4BAA4B;QAC5B,yBAAyB;QACzB,0BAA0B;QAC1B,wBAAwB;QACxB,yBAAyB;KAC1B;CACF,CAAC;AAEF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,qBAAqB;IACrB,6BAA6B;IAC7B,yBAAyB;CACjB,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,+BAA+B;IAC/B,kCAAkC;IAClC,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,2BAA2B;IAC3B,wCAAwC;IACxC,gBAAgB;IAChB,sBAAsB;IACtB,uBAAuB;IACvB,qBAAqB;IACrB,2BAA2B;CACnB,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAkB/B,sFAAsF;AACtF,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,OAAO,2DAA2D,MAAM,YAAY,kBAAkB,sFAAsF,kBAAkB,GAAG,CAAC;AACpN,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA2B,EAC3B,OAA8C,EAAE;IAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,OAAO,GAAG,aAAa,SAAS,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,2BAA2B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,kBAAkB,EAAE,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,kBAAkB,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/E,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,CAAe,EAAuB,EAAE,CAAC,CAAC;QACpE,EAAE,EAAE,KAAK;QACT,IAAI;QACJ,KAAK,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;KACrC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,KAAK,EAAE,oDAAoD,MAAM,CAAC,WAAW,EAAE;SAChF,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,8DAA8D;IAC9D,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC;QAC5B,SAAS;QACT,SAAS;QACT,UAAU;QACV,QAAQ,MAAM,EAAE;QAChB,OAAO;QACP,sBAAsB;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI;YACJ,KAAK,EAAE,uBAAuB,MAAM,kBAAkB,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,qFAAqF;SACrK,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;IACnF,IAAI,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC5D,IAAI,CAAC,IAAI,CAAC,eAAe,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D,oCAAoC;IACpC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC;QACzB,KAAK;QACL,kBAAkB;QAClB,UAAU;QACV,EAAE;QACF,OAAO;QACP,uBAAuB;KACxB,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;YACvB,KAAK;YACL,kBAAkB;YAClB,QAAQ;YACR,wBAAwB,CAAC,GAAG,CAAC;YAC7B,+BAA+B;YAC/B,qIAAqI;YACrI,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEnC,0BAA0B;IAC1B,KAAK,MAAM,IAAI,IAAI;QACjB,GAAG,sBAAsB;QACzB,cAAc,CAAC,SAAS,EAAE,wBAAwB,CAAC,MAAM,CAAC;KAC3D,EAAE,CAAC;QACF,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC;YACpB,UAAU;YACV,wBAAwB;YACxB,SAAS;YACT,YAAY,MAAM,EAAE;YACpB,UAAU,IAAI,EAAE;YAChB,kBAAkB;YAClB,SAAS;YACT,eAAe;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,sBAAsB,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,uDAAuD;IACvD,MAAM,UAAU,GAAqD;QACnE;YACE,OAAO,EAAE,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC;YAC/C,IAAI,EAAE,8BAA8B;YACpC,GAAG,EAAE,+CAA+C;SACrD;QACD;YACE,OAAO,EAAE,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC;YACnD,IAAI,EAAE,8BAA8B;YACpC,GAAG,EAAE,6BAA6B;SACnC;QACD,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,GAAG,EAAE,+BAA+B,EAAE;QAC3F;YACE,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC;YAC7C,IAAI,EAAE,sCAAsC;YAC5C,GAAG,EAAE,wDAAwD;SAC9D;KACF,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC;YACpB,KAAK;YACL,kBAAkB;YAClB,wBAAwB;YACxB,CAAC,CAAC,OAAO;YACT,YAAY,MAAM,EAAE;YACpB,UAAU,CAAC,CAAC,IAAI,EAAE;YAClB,kBAAkB;YAClB,OAAO;YACP,SAAS;YACT,eAAe;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,8DAA8D;IAC9D,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;QAC9B,SAAS;QACT,SAAS;QACT,wBAAwB;QACxB,QAAQ,MAAM,EAAE;QAChB,YAAY,MAAM,EAAE;QACpB,iCAAiC;QACjC,eAAe,qBAAqB,CAAC,MAAM,CAAC,EAAE;QAC9C,OAAO;QACP,SAAS;QACT,eAAe;KAChB,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,EAAE;QACjB,OAAO,IAAI,CAAC,2CAA2C,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;IAChF,IAAI,CAAC,IAAI,CAAC,8CAA8C,MAAM,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAEzF,kEAAkE;IAClE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE;QAC/C,SAAS;QACT,GAAG;QACH,mBAAmB,EAAE,EAAE;QACvB,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAElE,4EAA4E;IAC5E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;QACvB,KAAK;QACL,MAAM;QACN,QAAQ;QACR,GAAG;QACH,WAAW,MAAM,CAAC,WAAW,EAAE;QAC/B,YAAY,MAAM,EAAE;QACpB,OAAO;QACP,qBAAqB,EAAE,EAAE;QACzB,aAAa,MAAM,CAAC,OAAO,EAAE;QAC7B,YAAY,MAAM,CAAC,MAAM,EAAE;QAC3B,kCAAkC;QAClC,qBAAqB;QACrB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB,gBAAgB,EAAE;QACpC,cAAc;QACd,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC,cAAc,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAE/E,6EAA6E;IAC7E,KAAK,MAAM,IAAI,IAAI,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC;YACpB,KAAK;YACL,MAAM;YACN,wBAAwB;YACxB,GAAG;YACH,YAAY,MAAM,EAAE;YACpB,OAAO;YACP,YAAY,WAAW,EAAE;YACzB,UAAU,IAAI,EAAE;YAChB,SAAS;YACT,eAAe;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,mBAAmB,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAKC,EACD,OAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;IACnE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iEAAiE,EAAE,CAAC;IACjG,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;IAC3D,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;KAClF,CAAC;AACJ,CAAC"}
|
package/dist/wizard.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { spinner } from "@clack/prompts";
|
|
2
2
|
import { type Provider } from "./install-state.js";
|
|
3
|
+
import type { RunMode } from "./run-mode.js";
|
|
3
4
|
export interface WizardOptions {
|
|
4
5
|
/** Skip prompts; require all inputs via flags. CI-friendly. */
|
|
5
6
|
nonInteractive?: boolean;
|
|
@@ -22,6 +23,11 @@ export interface WizardOptions {
|
|
|
22
23
|
* install a different value is refused.
|
|
23
24
|
*/
|
|
24
25
|
region?: string;
|
|
26
|
+
/**
|
|
27
|
+
* #696 — where `pulumi up` and the rest of a GCP install run
|
|
28
|
+
* (run-mode.ts): `job` (default in Cloud Shell) or `local`.
|
|
29
|
+
*/
|
|
30
|
+
runMode?: RunMode;
|
|
25
31
|
}
|
|
26
32
|
export declare function runWizard(opts?: WizardOptions): Promise<void>;
|
|
27
33
|
export { spinner };
|
package/dist/wizard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../src/wizard.ts"],"names":[],"mappings":"AAuBA,OAAO,EAQL,OAAO,EAER,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAML,KAAK,QAAQ,EAKd,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../src/wizard.ts"],"names":[],"mappings":"AAuBA,OAAO,EAQL,OAAO,EAER,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAML,KAAK,QAAQ,EAKd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,SAAS,CAAC,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8JvE;AAyLD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/wizard.js
CHANGED
|
@@ -41,13 +41,39 @@ export async function runWizard(opts = {}) {
|
|
|
41
41
|
let ownerEmail;
|
|
42
42
|
let projectIdHint;
|
|
43
43
|
let installId;
|
|
44
|
-
|
|
44
|
+
// #696 — job mode (Cloud Shell): the project comes first and is the
|
|
45
|
+
// source of truth; this machine's ~/.caelo-* is not consulted.
|
|
46
|
+
const runMode = opts.runMode ?? "local";
|
|
47
|
+
let jobModeProjectId = null;
|
|
48
|
+
let jobModeExisting = null;
|
|
49
|
+
let jobModeProvider = null;
|
|
50
|
+
if (runMode === "job") {
|
|
51
|
+
jobModeProvider = opts.provider ?? (await pickProvider());
|
|
52
|
+
if (jobModeProvider !== "gcp" && jobModeProvider !== "gcp-firebase") {
|
|
53
|
+
cancel(`The install job runs gcp and gcp-firebase installs; for ${jobModeProvider} run the installer with --local.`);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
const { prepareJobModeInstall } = await import("./wizards/gcp-install-job.js");
|
|
57
|
+
const prep = await prepareJobModeInstall(opts.projectId ? { projectId: opts.projectId } : {});
|
|
58
|
+
if (prep.kind === "handled") {
|
|
59
|
+
outro(bold("Done."));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (prep.kind === "existing")
|
|
63
|
+
jobModeExisting = prep.meta;
|
|
64
|
+
else
|
|
65
|
+
jobModeProjectId = prep.projectId;
|
|
66
|
+
}
|
|
67
|
+
const existing = opts.nonInteractive || runMode === "job" ? [] : listInstalls();
|
|
45
68
|
const picked = existing.length > 0 && !opts.provider && !opts.domain && !opts.ownerEmail
|
|
46
69
|
? await pickInstallToResume(existing)
|
|
47
70
|
: null;
|
|
48
71
|
// #696 — the bucket's copy for an install whose state lives there: another
|
|
49
72
|
// machine may have changed its domain or owner since this mirror was written.
|
|
50
|
-
const resumeChoice = picked ? currentMetadata(picked) : null;
|
|
73
|
+
const resumeChoice = jobModeExisting ?? (picked ? currentMetadata(picked) : null);
|
|
74
|
+
if (jobModeExisting && jobModeProvider && jobModeExisting.provider !== jobModeProvider) {
|
|
75
|
+
log.warn(yellow(`This project's install is ${jobModeExisting.provider}, not ${jobModeProvider}; continuing it as ${jobModeExisting.provider}.`));
|
|
76
|
+
}
|
|
51
77
|
if (resumeChoice) {
|
|
52
78
|
provider = resumeChoice.provider;
|
|
53
79
|
domain = resumeChoice.domain;
|
|
@@ -57,11 +83,11 @@ export async function runWizard(opts = {}) {
|
|
|
57
83
|
ensureInstallDir(installId);
|
|
58
84
|
}
|
|
59
85
|
else {
|
|
60
|
-
provider = opts.provider ?? (await pickProvider());
|
|
86
|
+
provider = jobModeProvider ?? opts.provider ?? (await pickProvider());
|
|
61
87
|
domain = opts.domain ?? (await promptDomain());
|
|
62
88
|
const stagingDomain = await resolveStagingDomain(domain, provider, opts);
|
|
63
89
|
ownerEmail = opts.ownerEmail ?? (await promptOwnerEmail());
|
|
64
|
-
projectIdHint = opts.projectId ?? null;
|
|
90
|
+
projectIdHint = jobModeProjectId ?? opts.projectId ?? null;
|
|
65
91
|
installId = deriveInstallId(provider, projectIdHint ?? domain);
|
|
66
92
|
ensureInstallDir(installId);
|
|
67
93
|
// If the user picked "new install" but the derived id collides with
|
|
@@ -119,6 +145,7 @@ export async function runWizard(opts = {}) {
|
|
|
119
145
|
projectId: projectIdHint,
|
|
120
146
|
nonInteractive: opts.nonInteractive ?? false,
|
|
121
147
|
...(opts.region ? { region: opts.region } : {}),
|
|
148
|
+
runMode,
|
|
122
149
|
});
|
|
123
150
|
break;
|
|
124
151
|
case "gcp-firebase":
|
|
@@ -129,6 +156,7 @@ export async function runWizard(opts = {}) {
|
|
|
129
156
|
projectId: projectIdHint,
|
|
130
157
|
nonInteractive: opts.nonInteractive ?? false,
|
|
131
158
|
...(opts.region ? { region: opts.region } : {}),
|
|
159
|
+
runMode,
|
|
132
160
|
});
|
|
133
161
|
break;
|
|
134
162
|
case "self-hosted":
|
package/dist/wizard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../src/wizard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../src/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RunMode } from "../run-mode.js";
|
|
1
2
|
export interface GcpFirebaseWizardOpts {
|
|
2
3
|
installId: string;
|
|
3
4
|
domain: string;
|
|
@@ -6,6 +7,8 @@ export interface GcpFirebaseWizardOpts {
|
|
|
6
7
|
nonInteractive: boolean;
|
|
7
8
|
/** #607 — `--region`; see {@link GcpWizardOpts.region}. */
|
|
8
9
|
region?: string;
|
|
10
|
+
/** #696 — see {@link GcpWizardOpts.runMode}. */
|
|
11
|
+
runMode?: RunMode;
|
|
9
12
|
}
|
|
10
13
|
export declare function runGcpFirebaseWizard(opts: GcpFirebaseWizardOpts): Promise<void>;
|
|
11
14
|
//# sourceMappingURL=gcp-firebase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcp-firebase.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-firebase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gcp-firebase.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-firebase.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,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;IACxB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BrF"}
|
|
@@ -47,6 +47,7 @@ export async function runGcpFirebaseWizard(opts) {
|
|
|
47
47
|
projectId: opts.projectId,
|
|
48
48
|
nonInteractive: opts.nonInteractive,
|
|
49
49
|
...(opts.region ? { region: opts.region } : {}),
|
|
50
|
+
...(opts.runMode ? { runMode: opts.runMode } : {}),
|
|
50
51
|
provider: "gcp-firebase",
|
|
51
52
|
});
|
|
52
53
|
}
|
|
@@ -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;
|
|
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;AAe1C,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,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,QAAQ,EAAE,cAAc;KACzB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { GcloudRunner, Sleep } from "../gcloud-retry.js";
|
|
2
|
+
import { type InstallJobStatus } from "../install-job.js";
|
|
3
|
+
import { type InstallMetadata } from "../install-state.js";
|
|
4
|
+
import { type SyncGcloud } from "../state-store.js";
|
|
5
|
+
/** Side effects of the tail loop, injectable for tests. */
|
|
6
|
+
export interface TailDeps {
|
|
7
|
+
readonly run: GcloudRunner;
|
|
8
|
+
readonly syncRun: SyncGcloud;
|
|
9
|
+
readonly sleep: Sleep;
|
|
10
|
+
readonly print: (line: string) => void;
|
|
11
|
+
/** Poll interval in ms. */
|
|
12
|
+
readonly intervalMs: number;
|
|
13
|
+
}
|
|
14
|
+
/** How a tail ended. */
|
|
15
|
+
export type TailOutcome = {
|
|
16
|
+
readonly kind: "succeeded";
|
|
17
|
+
} | {
|
|
18
|
+
readonly kind: "failed";
|
|
19
|
+
readonly status: InstallJobStatus | null;
|
|
20
|
+
readonly why: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Follow one execution: print its log lines as Cloud Logging receives
|
|
24
|
+
* them and each phase change from the status document, until the job
|
|
25
|
+
* records `succeeded` / `failed` or the execution ends without doing so.
|
|
26
|
+
*/
|
|
27
|
+
export declare function tailInstallJob(target: {
|
|
28
|
+
projectId: string;
|
|
29
|
+
region: string;
|
|
30
|
+
execution: string;
|
|
31
|
+
}, deps?: TailDeps): Promise<TailOutcome>;
|
|
32
|
+
/**
|
|
33
|
+
* After the bootstrap (gcp.ts, job mode): pin the release, start the job —
|
|
34
|
+
* or attach to / show the one already there — and follow it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function launchInstallJob(opts: {
|
|
37
|
+
installId: string;
|
|
38
|
+
projectId: string;
|
|
39
|
+
region: string;
|
|
40
|
+
provisionerEmail: string;
|
|
41
|
+
nonInteractive: boolean;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
/** What {@link prepareJobModeInstall} found for the project. */
|
|
44
|
+
export type JobModePreparation = {
|
|
45
|
+
readonly kind: "new";
|
|
46
|
+
readonly projectId: string;
|
|
47
|
+
} | {
|
|
48
|
+
readonly kind: "existing";
|
|
49
|
+
readonly meta: InstallMetadata;
|
|
50
|
+
} | {
|
|
51
|
+
readonly kind: "handled";
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Before any other prompt in job mode: the project comes first, because a
|
|
55
|
+
* Cloud Shell session opened by the button starts with an empty home
|
|
56
|
+
* directory — everything known about an install is in its project. An
|
|
57
|
+
* install whose state is there is attached; one whose job is running is
|
|
58
|
+
* followed and one whose job finished is shown, without re-running the
|
|
59
|
+
* bootstrap. Otherwise the wizard continues (new install, or a re-run of an
|
|
60
|
+
* unfinished bootstrap).
|
|
61
|
+
*/
|
|
62
|
+
export declare function prepareJobModeInstall(opts: {
|
|
63
|
+
projectId?: string;
|
|
64
|
+
}): Promise<JobModePreparation>;
|
|
65
|
+
/**
|
|
66
|
+
* `status`'s view of the install job: what the bucket records and, for a
|
|
67
|
+
* run that claims to be running, whether its execution still is. Empty
|
|
68
|
+
* when the install never used the job.
|
|
69
|
+
*/
|
|
70
|
+
export declare function installJobStatusLines(meta: InstallMetadata, deps?: {
|
|
71
|
+
run: GcloudRunner;
|
|
72
|
+
syncRun: SyncGcloud;
|
|
73
|
+
}): Promise<string[]>;
|
|
74
|
+
//# sourceMappingURL=gcp-install-job.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcp-install-job.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-install-job.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EASL,KAAK,gBAAgB,EAOtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,eAAe,EAOrB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGnF,2DAA2D;AAC3D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAuCD,wBAAwB;AACxB,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAChE,IAAI,GAAE,QAAuB,GAC5B,OAAO,CAAC,WAAW,CAAC,CA4DtB;AA4GD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHhB;AAED,gEAAgE;AAChE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAEjC;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4C9B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,eAAe,EACrB,IAAI,GAAE;IAAE,GAAG,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAA6C,GAC1F,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB"}
|