@caelo-cms/provisioning 0.10.39 → 0.10.40
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/checkpoint-secrets.d.ts +88 -0
- package/dist/checkpoint-secrets.d.ts.map +1 -0
- package/dist/checkpoint-secrets.js +245 -0
- package/dist/checkpoint-secrets.js.map +1 -0
- package/dist/cli.js +14 -5
- package/dist/cli.js.map +1 -1
- package/dist/install-state.d.ts +11 -1
- package/dist/install-state.d.ts.map +1 -1
- package/dist/install-state.js +32 -3
- package/dist/install-state.js.map +1 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +6 -1
- package/dist/lifecycle.js.map +1 -1
- package/dist/wizard.d.ts.map +1 -1
- package/dist/wizard.js +8 -3
- package/dist/wizard.js.map +1 -1
- package/dist/wizards/gcp-pulumi.d.ts +19 -0
- package/dist/wizards/gcp-pulumi.d.ts.map +1 -1
- package/dist/wizards/gcp-pulumi.js +19 -5
- package/dist/wizards/gcp-pulumi.js.map +1 -1
- package/dist/wizards/gcp.d.ts.map +1 -1
- package/dist/wizards/gcp.js +31 -4
- package/dist/wizards/gcp.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/** One place a JSON value holds secret material. Never carries the secret itself. */
|
|
2
|
+
export interface SecretFinding {
|
|
3
|
+
/** Dotted path to the offending value, e.g. `steps.pulumi-up-acme.outputs.adminDatabaseUrlOut`. */
|
|
4
|
+
readonly path: string;
|
|
5
|
+
/**
|
|
6
|
+
* `credential-url`: a URL whose user-info carries a password.
|
|
7
|
+
* `token-url`: a URL with a token / secret / password query parameter.
|
|
8
|
+
* `secret-key`: a key whose name marks its value as secret.
|
|
9
|
+
*/
|
|
10
|
+
readonly kind: "credential-url" | "token-url" | "secret-key";
|
|
11
|
+
/** For a credential URL: the user whose password it carries. */
|
|
12
|
+
readonly user?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Every place `value` holds secret material.
|
|
16
|
+
*
|
|
17
|
+
* @param value any JSON-shaped value (a checkpoint payload, install.json)
|
|
18
|
+
* @param path the path prefix to report findings under
|
|
19
|
+
*/
|
|
20
|
+
export declare function findSecrets(value: unknown, path?: string): SecretFinding[];
|
|
21
|
+
/**
|
|
22
|
+
* Throw when `value` holds secret material. The message names the paths,
|
|
23
|
+
* never the values, so the error itself cannot leak them.
|
|
24
|
+
*
|
|
25
|
+
* @param what what was about to be written, for the message
|
|
26
|
+
*/
|
|
27
|
+
export declare function assertNoSecrets(value: unknown, what: string): void;
|
|
28
|
+
/** {@link assertNoSecrets} for a whole checkpoint (see {@link findCheckpointSecrets}). */
|
|
29
|
+
export declare function assertNoCheckpointSecrets(checkpoint: unknown, what: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* {@link findSecrets} for a progress.json checkpoint. Its step names are
|
|
32
|
+
* derived from operator input (`project-<project id>`), so they are
|
|
33
|
+
* identifiers, not field names: a project called `acme-token` must not read
|
|
34
|
+
* as a secret. Only the step payloads (and the other top-level fields) are
|
|
35
|
+
* inspected.
|
|
36
|
+
*/
|
|
37
|
+
export declare function findCheckpointSecrets(checkpoint: unknown): SecretFinding[];
|
|
38
|
+
/**
|
|
39
|
+
* `value` without its secret material: secret-named keys and strings that
|
|
40
|
+
* hold a credential or token URL are dropped. Everything else is kept.
|
|
41
|
+
*/
|
|
42
|
+
export declare function withoutSecrets(value: unknown): unknown;
|
|
43
|
+
/**
|
|
44
|
+
* The Pulumi outputs worth checkpointing: everything except outputs Pulumi
|
|
45
|
+
* marks secret and anything else that holds secret material (the Owner
|
|
46
|
+
* setup link). Nothing reads secrets back from the checkpoint; code that
|
|
47
|
+
* needs one reads the stack (`readStackOutput`) when it needs it.
|
|
48
|
+
*
|
|
49
|
+
* @param outputs the stack outputs as the Automation API returns them
|
|
50
|
+
*/
|
|
51
|
+
export declare function checkpointableOutputs(outputs: Readonly<Record<string, {
|
|
52
|
+
value: unknown;
|
|
53
|
+
secret?: boolean;
|
|
54
|
+
}>>): Record<string, unknown>;
|
|
55
|
+
/** Outcome of {@link scrubProgressFile}. */
|
|
56
|
+
export interface ScrubReport {
|
|
57
|
+
/** What was removed (paths + kinds, never values). Empty when the file was clean or absent. */
|
|
58
|
+
readonly removed: readonly SecretFinding[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Remove secret material from a `progress.json` in place. The rewrite is
|
|
62
|
+
* atomic (temp file in the same directory, then rename) and the result is
|
|
63
|
+
* mode 0600, so an interrupted scrub never leaves a truncated checkpoint
|
|
64
|
+
* and wizard re-runs still find every completed step.
|
|
65
|
+
*
|
|
66
|
+
* @param path the checkpoint file; a missing file is a no-op
|
|
67
|
+
*/
|
|
68
|
+
export declare function scrubProgressFile(path: string): ScrubReport;
|
|
69
|
+
/**
|
|
70
|
+
* Write `value` as JSON to `path` atomically with mode 0600: a temp file in
|
|
71
|
+
* the same directory (so the rename stays on one filesystem), then rename.
|
|
72
|
+
*/
|
|
73
|
+
export declare function writeJsonAtomic(path: string, value: unknown): void;
|
|
74
|
+
/**
|
|
75
|
+
* What the operator should do about secrets a scrub removed: one line per
|
|
76
|
+
* affected secret, with the exact command where one exists.
|
|
77
|
+
*
|
|
78
|
+
* @param removed the scrub's findings
|
|
79
|
+
* @param installId the install, named in each command so it acts on the right one
|
|
80
|
+
*/
|
|
81
|
+
export declare function rotationHints(removed: readonly SecretFinding[], installId: string): string[];
|
|
82
|
+
/**
|
|
83
|
+
* `text` with every URL password masked (`postgresql://admin_role:***@`),
|
|
84
|
+
* for anything the CLI prints that could carry one (errors from Pulumi or
|
|
85
|
+
* gcloud, for instance). Same masking as the API gateway's error log.
|
|
86
|
+
*/
|
|
87
|
+
export declare function redactCredentials(text: string): string;
|
|
88
|
+
//# sourceMappingURL=checkpoint-secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-secrets.d.ts","sourceRoot":"","sources":["../src/checkpoint-secrets.ts"],"names":[],"mappings":"AA4BA,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,mGAAmG;IACnG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,GAAG,YAAY,CAAC;IAC7D,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AA2CD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,SAAK,GAAG,aAAa,EAAE,CAetE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,0FAA0F;AAC1F,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjF;AAcD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,EAAE,CAO1E;AAcD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBtD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,GACtE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQzB;AAED,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAO3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CASlE;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB5F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Keeps secret material out of the files the CLI writes under
|
|
4
|
+
* `~/.caelo-<install-id>/` (#656).
|
|
5
|
+
*
|
|
6
|
+
* Only `secrets/` may hold secrets (CLAUDE.md §7, §11.C); `progress.json`
|
|
7
|
+
* and `install.json` are plain bookkeeping that tooling, backups, sync
|
|
8
|
+
* clients and agents read. Installs from before #576 checkpointed the full
|
|
9
|
+
* Pulumi outputs, whose database URLs carried admin_role's and
|
|
10
|
+
* public_role's passwords, and every install so far checkpointed the Owner
|
|
11
|
+
* setup link with its token. This module
|
|
12
|
+
*
|
|
13
|
+
* - finds secret material in a JSON value ({@link findSecrets}), which
|
|
14
|
+
* `markStepDone` / `writeMetadata` use to refuse writing it;
|
|
15
|
+
* - removes it from an existing checkpoint ({@link scrubProgressFile}),
|
|
16
|
+
* which `upgrade` and wizard re-runs call, and names the secrets to
|
|
17
|
+
* rotate ({@link rotationHints});
|
|
18
|
+
* - masks credentials in text the CLI prints ({@link redactCredentials}).
|
|
19
|
+
*
|
|
20
|
+
* Detection is by shape (a URL with a password, a URL with a token-like
|
|
21
|
+
* query parameter) and by key name (password, secret, token, ...), so a
|
|
22
|
+
* future secret output is caught without being listed here.
|
|
23
|
+
*/
|
|
24
|
+
import { existsSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
25
|
+
import { DATABASE_ROLE_SECRET } from "./stack-contract.js";
|
|
26
|
+
/** `scheme://user:password@` — the user-info of a URL that carries a password. */
|
|
27
|
+
const CREDENTIAL_URL = /[a-z][a-z0-9+.-]{0,31}:\/\/([^\s:@/]*):([^\s@/]+)@/gi;
|
|
28
|
+
/** A URL query parameter that carries a credential (the Owner setup link's `?token=`). */
|
|
29
|
+
const TOKEN_PARAM = /[?&](?:token|secret|password|passwd|pwd|api[_-]?key|access[_-]?key|sig|signature)=[^&\s#]+/i;
|
|
30
|
+
/**
|
|
31
|
+
* Key names whose value is a secret, after lower-casing, dropping non
|
|
32
|
+
* alphanumerics and a Pulumi `Out` suffix: `postgresPassword`,
|
|
33
|
+
* `caeloSecretKek`, `bootstrap_token`, `anthropicApiKey`.
|
|
34
|
+
*/
|
|
35
|
+
const SECRET_KEY = /(password|passwd|passphrase|secret|secretkek|kek|token|apikey|privatekey)$/;
|
|
36
|
+
function isSecretKey(key) {
|
|
37
|
+
const k = key
|
|
38
|
+
.toLowerCase()
|
|
39
|
+
.replace(/[^a-z0-9]/g, "")
|
|
40
|
+
.replace(/out$/, "");
|
|
41
|
+
return SECRET_KEY.test(k);
|
|
42
|
+
}
|
|
43
|
+
function urlUser(raw) {
|
|
44
|
+
try {
|
|
45
|
+
return decodeURIComponent(raw);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return raw;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function stringFindings(value, path) {
|
|
52
|
+
const found = [];
|
|
53
|
+
for (const m of value.matchAll(CREDENTIAL_URL)) {
|
|
54
|
+
found.push({ path, kind: "credential-url", user: urlUser(m[1] ?? "") });
|
|
55
|
+
}
|
|
56
|
+
if (found.length === 0 && /:\/\//.test(value) && TOKEN_PARAM.test(value)) {
|
|
57
|
+
found.push({ path, kind: "token-url" });
|
|
58
|
+
}
|
|
59
|
+
return found;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Every place `value` holds secret material.
|
|
63
|
+
*
|
|
64
|
+
* @param value any JSON-shaped value (a checkpoint payload, install.json)
|
|
65
|
+
* @param path the path prefix to report findings under
|
|
66
|
+
*/
|
|
67
|
+
export function findSecrets(value, path = "") {
|
|
68
|
+
if (typeof value === "string")
|
|
69
|
+
return stringFindings(value, path || "(value)");
|
|
70
|
+
const join = (k) => (path ? `${path}.${k}` : String(k));
|
|
71
|
+
if (Array.isArray(value))
|
|
72
|
+
return value.flatMap((v, i) => findSecrets(v, join(i)));
|
|
73
|
+
if (value !== null && typeof value === "object") {
|
|
74
|
+
return Object.entries(value).flatMap(([k, v]) => {
|
|
75
|
+
// A secret-named key is only a finding when it holds something; a
|
|
76
|
+
// null / false / 0 marker is not secret material.
|
|
77
|
+
if (isSecretKey(k) && v !== null && v !== undefined && v !== "" && typeof v !== "boolean") {
|
|
78
|
+
return [{ path: join(k), kind: "secret-key" }];
|
|
79
|
+
}
|
|
80
|
+
return findSecrets(v, join(k));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Throw when `value` holds secret material. The message names the paths,
|
|
87
|
+
* never the values, so the error itself cannot leak them.
|
|
88
|
+
*
|
|
89
|
+
* @param what what was about to be written, for the message
|
|
90
|
+
*/
|
|
91
|
+
export function assertNoSecrets(value, what) {
|
|
92
|
+
refuseFindings(findSecrets(value), what);
|
|
93
|
+
}
|
|
94
|
+
/** {@link assertNoSecrets} for a whole checkpoint (see {@link findCheckpointSecrets}). */
|
|
95
|
+
export function assertNoCheckpointSecrets(checkpoint, what) {
|
|
96
|
+
refuseFindings(findCheckpointSecrets(checkpoint), what);
|
|
97
|
+
}
|
|
98
|
+
function refuseFindings(found, what) {
|
|
99
|
+
if (found.length === 0)
|
|
100
|
+
return;
|
|
101
|
+
throw new Error(`Refusing to write secret material to ${what} (${found.map((f) => `${f.path}: ${f.kind}`).join(", ")}). ` +
|
|
102
|
+
"Secrets belong in Secret Manager or the install's secrets/ directory; read them at the moment of use instead (#656).");
|
|
103
|
+
}
|
|
104
|
+
function isRecord(v) {
|
|
105
|
+
return v !== null && typeof v === "object" && !Array.isArray(v);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* {@link findSecrets} for a progress.json checkpoint. Its step names are
|
|
109
|
+
* derived from operator input (`project-<project id>`), so they are
|
|
110
|
+
* identifiers, not field names: a project called `acme-token` must not read
|
|
111
|
+
* as a secret. Only the step payloads (and the other top-level fields) are
|
|
112
|
+
* inspected.
|
|
113
|
+
*/
|
|
114
|
+
export function findCheckpointSecrets(checkpoint) {
|
|
115
|
+
if (!isRecord(checkpoint))
|
|
116
|
+
return findSecrets(checkpoint);
|
|
117
|
+
const { steps, ...rest } = checkpoint;
|
|
118
|
+
const inSteps = isRecord(steps)
|
|
119
|
+
? Object.entries(steps).flatMap(([name, payload]) => findSecrets(payload, `steps.${name}`))
|
|
120
|
+
: findSecrets(steps, "steps");
|
|
121
|
+
return [...findSecrets(rest), ...inSteps];
|
|
122
|
+
}
|
|
123
|
+
/** {@link withoutSecrets} for a checkpoint: every step is kept, its payload cleaned. */
|
|
124
|
+
function checkpointWithoutSecrets(checkpoint) {
|
|
125
|
+
if (!isRecord(checkpoint))
|
|
126
|
+
return withoutSecrets(checkpoint);
|
|
127
|
+
const { steps, ...rest } = checkpoint;
|
|
128
|
+
return {
|
|
129
|
+
...withoutSecrets(rest),
|
|
130
|
+
steps: isRecord(steps)
|
|
131
|
+
? Object.fromEntries(Object.entries(steps).map(([n, p]) => [n, withoutSecrets(p)]))
|
|
132
|
+
: withoutSecrets(steps),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* `value` without its secret material: secret-named keys and strings that
|
|
137
|
+
* hold a credential or token URL are dropped. Everything else is kept.
|
|
138
|
+
*/
|
|
139
|
+
export function withoutSecrets(value) {
|
|
140
|
+
if (typeof value === "string")
|
|
141
|
+
return value;
|
|
142
|
+
if (Array.isArray(value)) {
|
|
143
|
+
return value
|
|
144
|
+
.filter((v) => typeof v !== "string" || findSecrets(v).length === 0)
|
|
145
|
+
.map(withoutSecrets);
|
|
146
|
+
}
|
|
147
|
+
if (value !== null && typeof value === "object") {
|
|
148
|
+
const out = {};
|
|
149
|
+
for (const [k, v] of Object.entries(value)) {
|
|
150
|
+
if (findSecrets({ [k]: v }).length > 0 && (isSecretKey(k) || typeof v === "string"))
|
|
151
|
+
continue;
|
|
152
|
+
out[k] = withoutSecrets(v);
|
|
153
|
+
}
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
156
|
+
return value;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* The Pulumi outputs worth checkpointing: everything except outputs Pulumi
|
|
160
|
+
* marks secret and anything else that holds secret material (the Owner
|
|
161
|
+
* setup link). Nothing reads secrets back from the checkpoint; code that
|
|
162
|
+
* needs one reads the stack (`readStackOutput`) when it needs it.
|
|
163
|
+
*
|
|
164
|
+
* @param outputs the stack outputs as the Automation API returns them
|
|
165
|
+
*/
|
|
166
|
+
export function checkpointableOutputs(outputs) {
|
|
167
|
+
const kept = {};
|
|
168
|
+
for (const [k, o] of Object.entries(outputs)) {
|
|
169
|
+
if (o.secret)
|
|
170
|
+
continue;
|
|
171
|
+
if (findSecrets({ [k]: o.value }).length > 0)
|
|
172
|
+
continue;
|
|
173
|
+
kept[k] = o.value;
|
|
174
|
+
}
|
|
175
|
+
return kept;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Remove secret material from a `progress.json` in place. The rewrite is
|
|
179
|
+
* atomic (temp file in the same directory, then rename) and the result is
|
|
180
|
+
* mode 0600, so an interrupted scrub never leaves a truncated checkpoint
|
|
181
|
+
* and wizard re-runs still find every completed step.
|
|
182
|
+
*
|
|
183
|
+
* @param path the checkpoint file; a missing file is a no-op
|
|
184
|
+
*/
|
|
185
|
+
export function scrubProgressFile(path) {
|
|
186
|
+
if (!existsSync(path))
|
|
187
|
+
return { removed: [] };
|
|
188
|
+
const checkpoint = JSON.parse(readFileSync(path, "utf8"));
|
|
189
|
+
const removed = findCheckpointSecrets(checkpoint);
|
|
190
|
+
if (removed.length === 0)
|
|
191
|
+
return { removed };
|
|
192
|
+
writeJsonAtomic(path, checkpointWithoutSecrets(checkpoint));
|
|
193
|
+
return { removed };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Write `value` as JSON to `path` atomically with mode 0600: a temp file in
|
|
197
|
+
* the same directory (so the rename stays on one filesystem), then rename.
|
|
198
|
+
*/
|
|
199
|
+
export function writeJsonAtomic(path, value) {
|
|
200
|
+
const tmp = `${path}.tmp-${process.pid}`;
|
|
201
|
+
try {
|
|
202
|
+
writeFileSync(tmp, `${JSON.stringify(value, null, 2)}\n`, { mode: 0o600 });
|
|
203
|
+
renameSync(tmp, path);
|
|
204
|
+
}
|
|
205
|
+
catch (e) {
|
|
206
|
+
rmSync(tmp, { force: true });
|
|
207
|
+
throw e;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
const ROLE_BY_USER = DATABASE_ROLE_SECRET;
|
|
211
|
+
/**
|
|
212
|
+
* What the operator should do about secrets a scrub removed: one line per
|
|
213
|
+
* affected secret, with the exact command where one exists.
|
|
214
|
+
*
|
|
215
|
+
* @param removed the scrub's findings
|
|
216
|
+
* @param installId the install, named in each command so it acts on the right one
|
|
217
|
+
*/
|
|
218
|
+
export function rotationHints(removed, installId) {
|
|
219
|
+
const rotate = (secret) => `bunx @caelo-cms/provisioning rotate-secret ${secret} --install ${installId}`;
|
|
220
|
+
const hints = new Set();
|
|
221
|
+
for (const f of removed) {
|
|
222
|
+
if (f.kind === "credential-url") {
|
|
223
|
+
const secret = f.user ? ROLE_BY_USER[f.user] : undefined;
|
|
224
|
+
hints.add(secret
|
|
225
|
+
? `${f.user}'s password was stored in progress.json. Rotate it: ${rotate(secret)}`
|
|
226
|
+
: `A password for database user "${f.user ?? "?"}" was stored in progress.json (${f.path}); change it.`);
|
|
227
|
+
}
|
|
228
|
+
else if (f.kind === "token-url") {
|
|
229
|
+
hints.add("The Owner setup link (with its one-time token) was stored in progress.json. It expires 24 hours after it was issued and stops working once the Owner account exists; nothing to rotate.");
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
hints.add(`A secret value was stored in progress.json (${f.path}). Rotate whatever it belongs to.`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return [...hints];
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* `text` with every URL password masked (`postgresql://admin_role:***@`),
|
|
239
|
+
* for anything the CLI prints that could carry one (errors from Pulumi or
|
|
240
|
+
* gcloud, for instance). Same masking as the API gateway's error log.
|
|
241
|
+
*/
|
|
242
|
+
export function redactCredentials(text) {
|
|
243
|
+
return text.replace(/([a-z][a-z0-9+.-]{0,31}:\/\/[^\s:@/]*):[^\s@/]+@/gi, "$1:***@");
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=checkpoint-secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint-secrets.js","sourceRoot":"","sources":["../src/checkpoint-secrets.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -25,6 +25,7 @@ import { resolve } from "node:path";
|
|
|
25
25
|
import { defaultStagingHost, normalizeStagingHost, stagingHostProblem } from "@caelo-cms/shared";
|
|
26
26
|
import { generateBootstrapToken } from "./bootstrap-token.js";
|
|
27
27
|
import { generateCaddyfile } from "./caddy.js";
|
|
28
|
+
import { redactCredentials } from "./checkpoint-secrets.js";
|
|
28
29
|
import { initDelegatesToWizard, resolveCliRoute } from "./cli-routing.js";
|
|
29
30
|
import { generateDockerCompose } from "./compose.js";
|
|
30
31
|
import { convergeSelfHostedRoles, decideUp } from "./self-hosted-roles.js";
|
|
@@ -917,11 +918,19 @@ async function wizardCommand() {
|
|
|
917
918
|
// documented one-command form) and a bare `cms-provision` drop into the
|
|
918
919
|
// wizard. `--no-wizard` / `--help` keep the legacy "print usage" shape.
|
|
919
920
|
const route = resolveCliRoute(process.argv, Object.keys(handlers));
|
|
920
|
-
if (route.kind === "handler") {
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
921
|
+
if (route.kind === "handler" || route.kind === "wizard") {
|
|
922
|
+
try {
|
|
923
|
+
if (route.kind === "handler")
|
|
924
|
+
await handlers[route.name]?.();
|
|
925
|
+
else
|
|
926
|
+
await wizardCommand();
|
|
927
|
+
}
|
|
928
|
+
catch (e) {
|
|
929
|
+
// #656 — an error from Pulumi, gcloud or a database client can quote a
|
|
930
|
+
// connection URL; print it with any password masked.
|
|
931
|
+
console.error(redactCredentials(e instanceof Error ? (e.stack ?? e.message) : String(e)));
|
|
932
|
+
process.exit(1);
|
|
933
|
+
}
|
|
925
934
|
}
|
|
926
935
|
else {
|
|
927
936
|
console.log("Usage: cms-provision [wizard] [--provider <name> --domain <d> [--staging-domain <host>] --owner-email <e> --region <r>] | <init|up|status|upgrade|backup|restore|rotate-secret|truncate|destroy|regenerate-caddy|admin-domain|staging-domain|pulumi-output-sync|version> [options]\n" +
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/install-state.d.ts
CHANGED
|
@@ -112,11 +112,21 @@ export declare function readProgress(installId: string): ProgressCheckpoint;
|
|
|
112
112
|
export declare function writeProgress(installId: string, checkpoint: ProgressCheckpoint): void;
|
|
113
113
|
/**
|
|
114
114
|
* Mark a step complete. Wizard re-runs check `isStepDone(installId, name)` to
|
|
115
|
-
* skip already-done steps.
|
|
115
|
+
* skip already-done steps. The payload is bookkeeping only: one holding a
|
|
116
|
+
* password, a credential URL or a secret-named key is refused (#656) —
|
|
117
|
+
* store an identifier and read the secret at the moment of use.
|
|
116
118
|
*/
|
|
117
119
|
export declare function markStepDone(installId: string, stepName: string, payload?: unknown): void;
|
|
118
120
|
export declare function isStepDone(installId: string, stepName: string): boolean;
|
|
119
121
|
export declare function getStepPayload<T>(installId: string, stepName: string): T | null;
|
|
122
|
+
/**
|
|
123
|
+
* Remove secret material an older CLI checkpointed into the install's
|
|
124
|
+
* progress.json (#656). Idempotent; completed steps stay completed.
|
|
125
|
+
*
|
|
126
|
+
* @returns the lines to show the operator: what was removed and which
|
|
127
|
+
* secret to rotate with which command; empty when the file was clean
|
|
128
|
+
*/
|
|
129
|
+
export declare function scrubInstallProgress(installId: string): string[];
|
|
120
130
|
/**
|
|
121
131
|
* Read a secret file from the install's `secrets/` dir. Returns null if the
|
|
122
132
|
* file doesn't exist; throws if the file exists but has the wrong mode (a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-state.d.ts","sourceRoot":"","sources":["../src/install-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-state.d.ts","sourceRoot":"","sources":["../src/install-state.ts"],"names":[],"mappings":"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"}
|
package/dist/install-state.js
CHANGED
|
@@ -14,12 +14,17 @@
|
|
|
14
14
|
* install.json — install metadata (provider, project id, region,
|
|
15
15
|
* domain, owner email, install id, created_at)
|
|
16
16
|
*
|
|
17
|
+
* Only `secrets/` (and Pulumi's encrypted state) hold secrets. progress.json
|
|
18
|
+
* and install.json are read by tooling, backups and agents, so writes to
|
|
19
|
+
* them refuse secret material (checkpoint-secrets.ts, #656).
|
|
20
|
+
*
|
|
17
21
|
* The CLAUDE.md §11.C contract: end-users never reach into this directory
|
|
18
22
|
* by hand. The wizard + lifecycle commands wrap every read + write.
|
|
19
23
|
*/
|
|
20
24
|
import { chmodSync, existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
21
25
|
import { homedir } from "node:os";
|
|
22
26
|
import { join } from "node:path";
|
|
27
|
+
import { assertNoCheckpointSecrets, assertNoSecrets, rotationHints, scrubProgressFile, writeJsonAtomic, } from "./checkpoint-secrets.js";
|
|
23
28
|
import { defaultStagingHost } from "./stack-contract.js";
|
|
24
29
|
/** The install's staging host: its recorded setting, else the default. */
|
|
25
30
|
export function installStagingHost(meta) {
|
|
@@ -201,6 +206,7 @@ export function readMetadata(installId) {
|
|
|
201
206
|
return JSON.parse(readFileSync(path, "utf8"));
|
|
202
207
|
}
|
|
203
208
|
export function writeMetadata(installId, meta) {
|
|
209
|
+
assertNoSecrets(meta, "install.json");
|
|
204
210
|
const path = join(installRoot(installId), "install.json");
|
|
205
211
|
writeFileSync(path, `${JSON.stringify(meta, null, 2)}\n`, { mode: 0o600 });
|
|
206
212
|
}
|
|
@@ -212,14 +218,21 @@ export function readProgress(installId) {
|
|
|
212
218
|
return JSON.parse(readFileSync(path, "utf8"));
|
|
213
219
|
}
|
|
214
220
|
export function writeProgress(installId, checkpoint) {
|
|
215
|
-
|
|
216
|
-
|
|
221
|
+
assertNoCheckpointSecrets(checkpoint, "progress.json");
|
|
222
|
+
writeJsonAtomic(join(installRoot(installId), "progress.json"), {
|
|
223
|
+
...checkpoint,
|
|
224
|
+
updatedAt: new Date().toISOString(),
|
|
225
|
+
});
|
|
217
226
|
}
|
|
218
227
|
/**
|
|
219
228
|
* Mark a step complete. Wizard re-runs check `isStepDone(installId, name)` to
|
|
220
|
-
* skip already-done steps.
|
|
229
|
+
* skip already-done steps. The payload is bookkeeping only: one holding a
|
|
230
|
+
* password, a credential URL or a secret-named key is refused (#656) —
|
|
231
|
+
* store an identifier and read the secret at the moment of use.
|
|
221
232
|
*/
|
|
222
233
|
export function markStepDone(installId, stepName, payload) {
|
|
234
|
+
if (payload !== undefined)
|
|
235
|
+
assertNoSecrets(payload, `progress.json step "${stepName}"`);
|
|
223
236
|
const cur = readProgress(installId);
|
|
224
237
|
cur.lastCompletedStep = stepName;
|
|
225
238
|
if (payload !== undefined)
|
|
@@ -233,6 +246,22 @@ export function getStepPayload(installId, stepName) {
|
|
|
233
246
|
const v = readProgress(installId).steps[stepName];
|
|
234
247
|
return (v ?? null);
|
|
235
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Remove secret material an older CLI checkpointed into the install's
|
|
251
|
+
* progress.json (#656). Idempotent; completed steps stay completed.
|
|
252
|
+
*
|
|
253
|
+
* @returns the lines to show the operator: what was removed and which
|
|
254
|
+
* secret to rotate with which command; empty when the file was clean
|
|
255
|
+
*/
|
|
256
|
+
export function scrubInstallProgress(installId) {
|
|
257
|
+
const { removed } = scrubProgressFile(join(installRoot(installId), "progress.json"));
|
|
258
|
+
if (removed.length === 0)
|
|
259
|
+
return [];
|
|
260
|
+
return [
|
|
261
|
+
`Removed ${removed.length} secret value(s) an earlier installer stored in ~/.caelo-${installId}/progress.json. Copies may remain in backups or synced copies of that file.`,
|
|
262
|
+
...rotationHints(removed, installId),
|
|
263
|
+
];
|
|
264
|
+
}
|
|
236
265
|
/**
|
|
237
266
|
* Read a secret file from the install's `secrets/` dir. Returns null if the
|
|
238
267
|
* file doesn't exist; throws if the file exists but has the wrong mode (a
|