gcb-host 0.7.0 → 0.8.0
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/CHANGELOG.md +23 -1
- package/bin/gcb.js +3 -3
- package/lib/audit.d.ts +4 -4
- package/lib/audit.d.ts.map +1 -1
- package/lib/audit.js +15 -14
- package/lib/audit.js.map +1 -1
- package/lib/broker.d.ts +12 -13
- package/lib/broker.d.ts.map +1 -1
- package/lib/broker.js +77 -53
- package/lib/broker.js.map +1 -1
- package/lib/commands/authorize.d.ts +43 -13
- package/lib/commands/authorize.d.ts.map +1 -1
- package/lib/commands/authorize.js +146 -53
- package/lib/commands/authorize.js.map +1 -1
- package/lib/commands/compose.d.ts +7 -7
- package/lib/commands/compose.d.ts.map +1 -1
- package/lib/commands/compose.js +21 -22
- package/lib/commands/compose.js.map +1 -1
- package/lib/commands/config.d.ts.map +1 -1
- package/lib/commands/config.js +59 -41
- package/lib/commands/config.js.map +1 -1
- package/lib/commands/deployment.d.ts +11 -11
- package/lib/commands/deployment.d.ts.map +1 -1
- package/lib/commands/deployment.js +19 -18
- package/lib/commands/deployment.js.map +1 -1
- package/lib/commands/diagnose.d.ts.map +1 -1
- package/lib/commands/diagnose.js +51 -33
- package/lib/commands/diagnose.js.map +1 -1
- package/lib/commands/doctor.d.ts +5 -5
- package/lib/commands/doctor.d.ts.map +1 -1
- package/lib/commands/doctor.js +53 -32
- package/lib/commands/doctor.js.map +1 -1
- package/lib/commands/host.d.ts +7 -7
- package/lib/commands/host.d.ts.map +1 -1
- package/lib/commands/host.js +147 -92
- package/lib/commands/host.js.map +1 -1
- package/lib/commands/init.d.ts +33 -33
- package/lib/commands/init.d.ts.map +1 -1
- package/lib/commands/init.js +93 -75
- package/lib/commands/init.js.map +1 -1
- package/lib/commands/stage.d.ts +6 -6
- package/lib/commands/stage.d.ts.map +1 -1
- package/lib/commands/stage.js +21 -15
- package/lib/commands/stage.js.map +1 -1
- package/lib/config.d.ts +29 -28
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +101 -85
- package/lib/config.js.map +1 -1
- package/lib/daemon.d.ts +9 -9
- package/lib/daemon.d.ts.map +1 -1
- package/lib/daemon.js +21 -18
- package/lib/daemon.js.map +1 -1
- package/lib/device-flow.d.ts +23 -22
- package/lib/device-flow.d.ts.map +1 -1
- package/lib/device-flow.js +33 -28
- package/lib/device-flow.js.map +1 -1
- package/lib/gh.d.ts +2 -2
- package/lib/gh.d.ts.map +1 -1
- package/lib/gh.js +74 -46
- package/lib/gh.js.map +1 -1
- package/lib/http.d.ts.map +1 -1
- package/lib/http.js +35 -18
- package/lib/http.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/policy.d.ts +25 -25
- package/lib/policy.d.ts.map +1 -1
- package/lib/policy.js +57 -36
- package/lib/policy.js.map +1 -1
- package/lib/providers/github-app.d.ts +12 -12
- package/lib/providers/github-app.d.ts.map +1 -1
- package/lib/providers/github-app.js +194 -125
- package/lib/providers/github-app.js.map +1 -1
- package/lib/providers/index.d.ts +8 -9
- package/lib/providers/index.d.ts.map +1 -1
- package/lib/providers/index.js +5 -5
- package/lib/providers/index.js.map +1 -1
- package/lib/providers/static.d.ts +3 -3
- package/lib/providers/static.d.ts.map +1 -1
- package/lib/providers/static.js +14 -12
- package/lib/providers/static.js.map +1 -1
- package/lib/proxy.d.ts +10 -10
- package/lib/proxy.d.ts.map +1 -1
- package/lib/proxy.js +18 -16
- package/lib/proxy.js.map +1 -1
- package/lib/public-repo.d.ts +10 -10
- package/lib/public-repo.d.ts.map +1 -1
- package/lib/public-repo.js +17 -14
- package/lib/public-repo.js.map +1 -1
- package/lib/reload.d.ts +4 -4
- package/lib/reload.d.ts.map +1 -1
- package/lib/reload.js +24 -14
- package/lib/reload.js.map +1 -1
- package/package.json +10 -10
package/lib/commands/init.js
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `init` — create or update the broker configuration, on the host.
|
|
3
3
|
*
|
|
4
|
-
* The configuration file is the source of truth: the daemon only ever reads it, it is meant to
|
|
5
|
-
*
|
|
6
|
-
* existing file instead of rewriting it: only the flags you pass change anything, and anything
|
|
7
|
-
*
|
|
4
|
+
* The configuration file is the source of truth: the daemon only ever reads it, it is meant to be
|
|
5
|
+
* reviewed and kept, and it can be edited by hand. This command therefore **merges** into an
|
|
6
|
+
* existing file instead of rewriting it: only the flags you pass change anything, and anything else
|
|
7
|
+
* — including edits you made yourself — is preserved.
|
|
8
8
|
*
|
|
9
|
-
* That matters most for the allowlist, the thing people actually iterate on. Adding one
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* else moves.
|
|
9
|
+
* That matters most for the allowlist, the thing people actually iterate on. Adding one repository
|
|
10
|
+
* used to mean re-supplying every flag, and `--force` then silently _replaced_ the list, so adding
|
|
11
|
+
* `b/two` could quietly drop `a/one`. Now `--allow b/two` adds it and nothing else moves.
|
|
13
12
|
*
|
|
14
13
|
* `--force` still exists, for regenerating from flags when the file is beyond editing.
|
|
15
14
|
*/
|
|
16
15
|
import fs from 'node:fs';
|
|
17
16
|
import path from 'node:path';
|
|
18
17
|
import { isDeepStrictEqual } from 'node:util';
|
|
18
|
+
import { fail, insideMountedPath, isInsideContainer, parseArgs, say, writeSecretFile, } from 'gcb-core';
|
|
19
19
|
import { parseDocument, stringify } from 'yaml';
|
|
20
20
|
import { deploymentDir, inferMode, loadConfig, resolveConfigPath, SIDECAR, validateConfig, } from '../config.js';
|
|
21
21
|
import { parseAllowEntry } from '../policy.js';
|
|
22
22
|
import { brokerPaths, DEPLOYMENT_MODES, hostArtifacts, HOST_SOCKET_PATH_DEFAULT, requireFixedInSidecar, } from './deployment.js';
|
|
23
|
-
import { fail, insideMountedPath, isInsideContainer, parseArgs, say, writeSecretFile } from 'gcb-core';
|
|
24
23
|
/** Quote one value as a single shell word, including paths with spaces. */
|
|
25
24
|
function shellQuote(value) {
|
|
26
25
|
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
@@ -28,9 +27,9 @@ function shellQuote(value) {
|
|
|
28
27
|
/**
|
|
29
28
|
* The github-app block of a configuration.
|
|
30
29
|
*
|
|
31
|
-
* @param config -
|
|
32
|
-
* @returns
|
|
33
|
-
* @throws {Error}
|
|
30
|
+
* @param config - A validated configuration.
|
|
31
|
+
* @returns The block for github.com.
|
|
32
|
+
* @throws {Error} When there is none, which means the file is not one of ours.
|
|
34
33
|
*/
|
|
35
34
|
export function appBlock(config) {
|
|
36
35
|
const block = config.hosts['github.com'];
|
|
@@ -42,10 +41,10 @@ export function appBlock(config) {
|
|
|
42
41
|
/**
|
|
43
42
|
* Compute the new allowlist from the existing one and the flags given.
|
|
44
43
|
*
|
|
45
|
-
* @param existing -
|
|
46
|
-
* @param input -
|
|
47
|
-
* @returns
|
|
48
|
-
* @throws {Error}
|
|
44
|
+
* @param existing - The current entries.
|
|
45
|
+
* @param input - The resolved options.
|
|
46
|
+
* @returns The new entries, order preserved, additions deduplicated case-insensitively.
|
|
47
|
+
* @throws {Error} When a given entry is malformed.
|
|
49
48
|
*/
|
|
50
49
|
export function mergeAllowList(existing, input) {
|
|
51
50
|
const additions = input.allow ?? [];
|
|
@@ -56,13 +55,14 @@ export function mergeAllowList(existing, input) {
|
|
|
56
55
|
}
|
|
57
56
|
const canonical = (entry) => entry.trim().toLowerCase();
|
|
58
57
|
const removed = new Set((input.removeAllow ?? []).map(canonical));
|
|
59
|
-
const kept = input.replaceAllow ? [] : existing.filter(
|
|
58
|
+
const kept = input.replaceAllow ? [] : existing.filter(entry => !removed.has(canonical(entry)));
|
|
60
59
|
const seen = new Set(kept.map(canonical));
|
|
61
60
|
const result = [...kept];
|
|
62
61
|
for (const entry of additions) {
|
|
63
62
|
const key = canonical(entry);
|
|
64
|
-
if (seen.has(key))
|
|
63
|
+
if (seen.has(key)) {
|
|
65
64
|
continue;
|
|
65
|
+
}
|
|
66
66
|
seen.add(key);
|
|
67
67
|
result.push(entry.trim());
|
|
68
68
|
}
|
|
@@ -74,9 +74,9 @@ export function mergeAllowList(existing, input) {
|
|
|
74
74
|
/**
|
|
75
75
|
* Build a fresh configuration from the flags.
|
|
76
76
|
*
|
|
77
|
-
* @param input -
|
|
78
|
-
* @returns
|
|
79
|
-
* @throws {Error}
|
|
77
|
+
* @param input - The resolved options.
|
|
78
|
+
* @returns The validated configuration.
|
|
79
|
+
* @throws {Error} When the configuration would be rejected by the daemon.
|
|
80
80
|
*/
|
|
81
81
|
export function buildBrokerConfig(input) {
|
|
82
82
|
const paths = brokerPaths(input.mode ?? 'host', input.dir, input.hostSocketPath);
|
|
@@ -103,11 +103,11 @@ export function buildBrokerConfig(input) {
|
|
|
103
103
|
* must not survive. (Carrying the sidecar's auditPath into a host config, for instance, points the
|
|
104
104
|
* daemon at `/var/log/git-cred-broker/` on a host that has no such directory.)
|
|
105
105
|
*
|
|
106
|
-
* @param existing -
|
|
107
|
-
* @param input -
|
|
108
|
-
* @param paths -
|
|
109
|
-
* @returns
|
|
110
|
-
* @throws {Error}
|
|
106
|
+
* @param existing - The configuration on disk.
|
|
107
|
+
* @param input - The resolved options.
|
|
108
|
+
* @param paths - The paths the broker will resolve.
|
|
109
|
+
* @returns The validated configuration to write.
|
|
110
|
+
* @throws {Error} When the result would be rejected by the daemon.
|
|
111
111
|
*/
|
|
112
112
|
export function mergeBrokerConfig(existing, input, paths) {
|
|
113
113
|
const block = appBlock(existing);
|
|
@@ -131,42 +131,45 @@ export function mergeBrokerConfig(existing, input, paths) {
|
|
|
131
131
|
* Write a configuration. A fresh file is serialized from the merged object; an existing file is
|
|
132
132
|
* edited only at the paths the user changed, so comments, other hosts and unknown keys survive.
|
|
133
133
|
*
|
|
134
|
-
* @param configPath -
|
|
135
|
-
* @param config -
|
|
136
|
-
* @param force -
|
|
137
|
-
* @param changes -
|
|
134
|
+
* @param configPath - The destination.
|
|
135
|
+
* @param config - The configuration to write when the file is new or forced.
|
|
136
|
+
* @param force - Replace the file instead of editing it.
|
|
137
|
+
* @param changes - Explicit edits for the existing-document path.
|
|
138
138
|
*/
|
|
139
139
|
function writeConfig(configPath, config, force, changes) {
|
|
140
140
|
if (force || !fs.existsSync(configPath)) {
|
|
141
141
|
writeSecretFile(configPath, `# Broker configuration for gcb. See README.md.\n${stringify(config, { lineWidth: 0 })}`);
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
144
|
-
if (changes.length === 0)
|
|
144
|
+
if (changes.length === 0) {
|
|
145
145
|
return;
|
|
146
|
+
}
|
|
146
147
|
const document = parseDocument(fs.readFileSync(configPath, 'utf8'), {
|
|
147
148
|
schema: 'core',
|
|
148
149
|
uniqueKeys: true,
|
|
149
150
|
prettyErrors: true,
|
|
150
151
|
});
|
|
151
152
|
if (document.errors.length > 0) {
|
|
152
|
-
throw new Error(`cannot update ${configPath}: ${document.errors.map(
|
|
153
|
+
throw new Error(`cannot update ${configPath}: ${document.errors.map(error => error.message).join('; ')}`);
|
|
153
154
|
}
|
|
154
|
-
for (const change of changes)
|
|
155
|
+
for (const change of changes) {
|
|
155
156
|
document.setIn(change.path, change.value);
|
|
157
|
+
}
|
|
156
158
|
const text = document.toString();
|
|
157
159
|
writeSecretFile(configPath, text.endsWith('\n') ? text : `${text}\n`);
|
|
158
160
|
}
|
|
159
161
|
function readExistingConfig(path) {
|
|
160
|
-
if (!fs.existsSync(path))
|
|
162
|
+
if (!fs.existsSync(path)) {
|
|
161
163
|
return null;
|
|
164
|
+
}
|
|
162
165
|
return loadConfig(path);
|
|
163
166
|
}
|
|
164
167
|
/**
|
|
165
168
|
* Install the key and create or update the configuration.
|
|
166
169
|
*
|
|
167
|
-
* @param input -
|
|
168
|
-
* @returns
|
|
169
|
-
* @throws {Error}
|
|
170
|
+
* @param input - The resolved options.
|
|
171
|
+
* @returns Where things landed.
|
|
172
|
+
* @throws {Error} For any guard-rail violation.
|
|
170
173
|
*/
|
|
171
174
|
export function performInit(input) {
|
|
172
175
|
if (input.mode !== undefined && !DEPLOYMENT_MODES.includes(input.mode)) {
|
|
@@ -176,7 +179,7 @@ export function performInit(input) {
|
|
|
176
179
|
if (insideContainer) {
|
|
177
180
|
throw new Error('this looks like the agent container; the broker must run outside it, on the host');
|
|
178
181
|
}
|
|
179
|
-
const home = input.env?.home ??
|
|
182
|
+
const home = input.env?.home ?? process.env['HOME'] ?? '';
|
|
180
183
|
const mounted = insideMountedPath(input.dir, home, input.env?.mounts);
|
|
181
184
|
if (mounted) {
|
|
182
185
|
throw new Error(`${input.dir} is inside ${mounted}, which is mounted into the container; the private key must live outside every mount`);
|
|
@@ -220,20 +223,26 @@ export function performInit(input) {
|
|
|
220
223
|
const carried = switching ? undefined : previous;
|
|
221
224
|
paths = brokerPaths('host', input.dir, input.hostSocketPath ?? carried?.socketPath ?? HOST_SOCKET_PATH_DEFAULT);
|
|
222
225
|
const carriedAudit = carried?.auditPath ?? undefined;
|
|
223
|
-
if (input.auditPath !== undefined)
|
|
226
|
+
if (input.auditPath !== undefined) {
|
|
224
227
|
paths = { ...paths, auditPath: input.auditPath };
|
|
225
|
-
|
|
228
|
+
}
|
|
229
|
+
else if (carriedAudit !== undefined) {
|
|
226
230
|
paths = { ...paths, auditPath: carriedAudit };
|
|
231
|
+
}
|
|
227
232
|
}
|
|
228
233
|
const config = mergeBrokerConfig(previous, input, paths);
|
|
229
234
|
const block = appBlock(previous);
|
|
230
235
|
const mergedBlock = appBlock(config);
|
|
231
|
-
const allowChanged = (input.allow?.length ?? 0) > 0 ||
|
|
236
|
+
const allowChanged = (input.allow?.length ?? 0) > 0 ||
|
|
237
|
+
(input.removeAllow?.length ?? 0) > 0 ||
|
|
238
|
+
input.replaceAllow === true;
|
|
232
239
|
const changes = [];
|
|
233
|
-
if (paths.socketPath !== previous.socketPath)
|
|
240
|
+
if (paths.socketPath !== previous.socketPath) {
|
|
234
241
|
changes.push({ path: ['socketPath'], value: paths.socketPath });
|
|
235
|
-
|
|
242
|
+
}
|
|
243
|
+
if (paths.auditPath !== previous.auditPath) {
|
|
236
244
|
changes.push({ path: ['auditPath'], value: paths.auditPath });
|
|
245
|
+
}
|
|
237
246
|
if (paths.privateKeyPath !== block.privateKeyPath) {
|
|
238
247
|
changes.push({ path: ['hosts', 'github.com', 'privateKeyPath'], value: paths.privateKeyPath });
|
|
239
248
|
}
|
|
@@ -246,7 +255,8 @@ export function performInit(input) {
|
|
|
246
255
|
if (input.appId !== undefined && input.appId !== block.appId) {
|
|
247
256
|
changes.push({ path: ['hosts', 'github.com', 'appId'], value: input.appId });
|
|
248
257
|
}
|
|
249
|
-
if (input.permissions !== undefined &&
|
|
258
|
+
if (input.permissions !== undefined &&
|
|
259
|
+
!isDeepStrictEqual(input.permissions, block.permissions)) {
|
|
250
260
|
changes.push({ path: ['hosts', 'github.com', 'permissions'], value: input.permissions });
|
|
251
261
|
}
|
|
252
262
|
fs.mkdirSync(artifacts.auditDir, { recursive: true });
|
|
@@ -269,8 +279,9 @@ export function performInit(input) {
|
|
|
269
279
|
const certPath = input.cert;
|
|
270
280
|
const clientId = input.clientId;
|
|
271
281
|
const appId = input.appId;
|
|
272
|
-
if (certPath === undefined)
|
|
282
|
+
if (certPath === undefined) {
|
|
273
283
|
throw new Error('--cert is required when creating the configuration');
|
|
284
|
+
}
|
|
274
285
|
if (clientId === undefined || clientId === '') {
|
|
275
286
|
throw new Error('--client-id is required when creating the configuration');
|
|
276
287
|
}
|
|
@@ -289,16 +300,18 @@ export function performInit(input) {
|
|
|
289
300
|
/**
|
|
290
301
|
* Read and sanity-check a PEM private key.
|
|
291
302
|
*
|
|
292
|
-
* @param cert -
|
|
293
|
-
* @returns
|
|
294
|
-
* @throws {Error}
|
|
303
|
+
* @param cert - The path GitHub gave you.
|
|
304
|
+
* @returns The file contents.
|
|
305
|
+
* @throws {Error} When it is missing or is not a PEM private key.
|
|
295
306
|
*/
|
|
296
307
|
function readPrivateKey(cert) {
|
|
297
|
-
if (!fs.existsSync(cert))
|
|
308
|
+
if (!fs.existsSync(cert)) {
|
|
298
309
|
throw new Error(`no such file: ${cert}`);
|
|
310
|
+
}
|
|
299
311
|
const pem = fs.readFileSync(cert, 'utf8');
|
|
300
|
-
if (!pem.includes('PRIVATE KEY'))
|
|
312
|
+
if (!pem.includes('PRIVATE KEY')) {
|
|
301
313
|
throw new Error(`${cert} does not look like a PEM private key`);
|
|
314
|
+
}
|
|
302
315
|
return pem;
|
|
303
316
|
}
|
|
304
317
|
/** Usage text for `init`. */
|
|
@@ -340,21 +353,24 @@ so a different --socket-path or --audit-path is rejected rather than silently re
|
|
|
340
353
|
/**
|
|
341
354
|
* Parse `--permissions contents=write,pull_requests=write`.
|
|
342
355
|
*
|
|
343
|
-
* @param raw -
|
|
344
|
-
* @returns
|
|
345
|
-
* @throws {Error}
|
|
356
|
+
* @param raw - The raw flag value, if any.
|
|
357
|
+
* @returns The permission map, or undefined when the flag was not given.
|
|
358
|
+
* @throws {Error} When an entry is not `name=level`.
|
|
346
359
|
*/
|
|
347
360
|
export function parsePermissions(raw) {
|
|
348
|
-
if (raw === undefined)
|
|
361
|
+
if (raw === undefined) {
|
|
349
362
|
return undefined;
|
|
363
|
+
}
|
|
350
364
|
const out = {};
|
|
351
365
|
for (const pair of raw.split(',')) {
|
|
352
366
|
const trimmed = pair.trim();
|
|
353
|
-
if (!trimmed)
|
|
367
|
+
if (!trimmed) {
|
|
354
368
|
continue;
|
|
369
|
+
}
|
|
355
370
|
const equals = trimmed.indexOf('=');
|
|
356
|
-
if (equals <= 0)
|
|
371
|
+
if (equals <= 0) {
|
|
357
372
|
throw new Error(`--permissions expects name=level pairs, got ${JSON.stringify(trimmed)}`);
|
|
373
|
+
}
|
|
358
374
|
out[trimmed.slice(0, equals)] = trimmed.slice(equals + 1);
|
|
359
375
|
}
|
|
360
376
|
return Object.keys(out).length > 0 ? out : undefined;
|
|
@@ -365,8 +381,8 @@ export function parsePermissions(raw) {
|
|
|
365
381
|
* An absent map means the provider's default, which is `contents=write` — worth printing, because
|
|
366
382
|
* "I did not pass anything" and "I passed something that did not stick" otherwise look identical.
|
|
367
383
|
*
|
|
368
|
-
* @param permissions -
|
|
369
|
-
* @returns
|
|
384
|
+
* @param permissions - The configured map, if any.
|
|
385
|
+
* @returns A `name=level` list.
|
|
370
386
|
*/
|
|
371
387
|
function formatPermissions(permissions) {
|
|
372
388
|
const effective = permissions ?? { contents: 'write' };
|
|
@@ -378,16 +394,16 @@ function formatPermissions(permissions) {
|
|
|
378
394
|
/**
|
|
379
395
|
* Split a repeatable, comma-separated flag.
|
|
380
396
|
*
|
|
381
|
-
* @param args -
|
|
382
|
-
* @param name -
|
|
383
|
-
* @returns
|
|
397
|
+
* @param args - The parsed arguments.
|
|
398
|
+
* @param name - The flag name.
|
|
399
|
+
* @returns The entries.
|
|
384
400
|
*/
|
|
385
401
|
function list(args, name) {
|
|
386
402
|
return args
|
|
387
403
|
.values(name)
|
|
388
|
-
.flatMap(
|
|
389
|
-
.map(
|
|
390
|
-
.filter(
|
|
404
|
+
.flatMap(value => value.split(','))
|
|
405
|
+
.map(entry => entry.trim())
|
|
406
|
+
.filter(entry => entry.length > 0);
|
|
391
407
|
}
|
|
392
408
|
/**
|
|
393
409
|
* Resolve which deployment directory and configuration file an init invokes.
|
|
@@ -395,24 +411,24 @@ function list(args, name) {
|
|
|
395
411
|
* Without --dir, the config is the file the broker reads: --config, else GIT_BROKER_CONFIG, else
|
|
396
412
|
* the default name. With --dir, the default name inside that directory is used.
|
|
397
413
|
*
|
|
398
|
-
* @param args -
|
|
399
|
-
* @param env -
|
|
400
|
-
* @returns
|
|
414
|
+
* @param args - The two path flags.
|
|
415
|
+
* @param env - The environment, injectable for tests.
|
|
416
|
+
* @returns The directory and, when explicit, the config path.
|
|
401
417
|
*/
|
|
402
418
|
export function resolveInitSelection(args, env = process.env) {
|
|
403
419
|
const dir = path.resolve(args.dir ?? deploymentDir(resolveConfigPath(args.config, env)));
|
|
404
|
-
const configPath = args.config
|
|
405
|
-
?
|
|
406
|
-
: args.dir === undefined
|
|
420
|
+
const configPath = args.config === undefined
|
|
421
|
+
? args.dir === undefined
|
|
407
422
|
? resolveConfigPath(undefined, env)
|
|
408
|
-
: undefined
|
|
423
|
+
: undefined
|
|
424
|
+
: path.resolve(args.config);
|
|
409
425
|
return { dir, configPath };
|
|
410
426
|
}
|
|
411
427
|
/**
|
|
412
428
|
* Run the `init` command.
|
|
413
429
|
*
|
|
414
|
-
* @param argv -
|
|
415
|
-
* @returns
|
|
430
|
+
* @param argv - Arguments after the command name.
|
|
431
|
+
* @returns The process exit code.
|
|
416
432
|
*/
|
|
417
433
|
export async function runInit(argv) {
|
|
418
434
|
const args = parseArgs(argv, { booleans: ['force', 'replace-allow', 'help'] });
|
|
@@ -449,7 +465,9 @@ export async function runInit(argv) {
|
|
|
449
465
|
});
|
|
450
466
|
const verb = result.previous ? 'updated' : 'created';
|
|
451
467
|
const wasMode = result.previous ? inferMode(result.previous) : undefined;
|
|
452
|
-
const modeLabel = wasMode !== undefined && wasMode !== result.mode
|
|
468
|
+
const modeLabel = wasMode !== undefined && wasMode !== result.mode
|
|
469
|
+
? `${wasMode} -> ${result.mode}`
|
|
470
|
+
: result.mode;
|
|
453
471
|
say(`mode : ${modeLabel}`);
|
|
454
472
|
say(`${verb.padEnd(15)}: ${result.configPath} (mode 600, validation passed)`);
|
|
455
473
|
say(`installed key : ${result.keyPath} (mode 600)`);
|
|
@@ -467,7 +485,7 @@ export async function runInit(argv) {
|
|
|
467
485
|
// answered by re-reading the file, and a run that did nothing looks exactly like one that worked.
|
|
468
486
|
say(`permissions : ${formatPermissions(block.permissions)}${block.permissions ? '' : ' (the default)'}`);
|
|
469
487
|
say('');
|
|
470
|
-
say(
|
|
488
|
+
say("paths inside the configuration, from the broker's point of view:");
|
|
471
489
|
say(` socketPath : ${result.config.socketPath}`);
|
|
472
490
|
say(` privateKeyPath : ${block.privateKeyPath}${block.privateKeyPath === result.keyPath ? '' : ` (= ${result.keyPath} on the host)`}`);
|
|
473
491
|
say(` auditPath : ${result.config.auditPath}`);
|
package/lib/commands/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/lib/commands/stage.d.ts
CHANGED
|
@@ -21,15 +21,15 @@ export interface StageResult {
|
|
|
21
21
|
readonly sha: string;
|
|
22
22
|
readonly subject: string;
|
|
23
23
|
readonly files: number;
|
|
24
|
-
/** Uncommitted changes existed and are therefore
|
|
24
|
+
/** Uncommitted changes existed and are therefore _not_ part of what was staged. */
|
|
25
25
|
readonly dirtyWorkingTree: boolean;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Export a commit into the directory the broker will run from.
|
|
29
29
|
*
|
|
30
|
-
* @param input -
|
|
31
|
-
* @returns
|
|
32
|
-
* @throws {Error}
|
|
30
|
+
* @param input - The resolved options.
|
|
31
|
+
* @returns What was staged.
|
|
32
|
+
* @throws {Error} For any guard-rail violation.
|
|
33
33
|
*/
|
|
34
34
|
export declare function performStage(input: StageInput): StageResult;
|
|
35
35
|
/** Usage text for `stage`. */
|
|
@@ -37,8 +37,8 @@ export declare const STAGE_USAGE = "Usage: gcb stage [options]\n\nExport the bro
|
|
|
37
37
|
/**
|
|
38
38
|
* Run the `stage` command.
|
|
39
39
|
*
|
|
40
|
-
* @param argv -
|
|
41
|
-
* @returns
|
|
40
|
+
* @param argv - Arguments after the command name.
|
|
41
|
+
* @returns The process exit code.
|
|
42
42
|
*/
|
|
43
43
|
export declare function runStage(argv: readonly string[]): number;
|
|
44
44
|
//# sourceMappingURL=stage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/commands/stage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/commands/stage.ts"],"names":[],"mappings":"AAiCA,wFAAwF;AACxF,eAAO,MAAM,aAAa,gBAAgB,CAAA;AAE1C,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,mFAAmF;IACnF,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAgG3D;AAED,8BAA8B;AAC9B,eAAO,MAAM,WAAW,8qCAoBvB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAmCxD"}
|
package/lib/commands/stage.js
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Why this exists: the broker must read the App private key, so whatever code it executes has that
|
|
5
5
|
* key's privileges. It can mint installation tokens for anything the App can see, and it can read
|
|
6
|
-
* the key file itself. Keeping the
|
|
6
|
+
* the key file itself. Keeping the _key_ outside every container mount is necessary but not
|
|
7
7
|
* sufficient: if the code comes from a directory the agent can write, then the agent decides what
|
|
8
8
|
* the broker does — and the broker is the process holding the key. The boundary that matters is
|
|
9
9
|
* control of the code, not the location of the key.
|
|
10
10
|
*
|
|
11
11
|
* So: export from a **commit** (not from the working tree, which is agent-writable and may be
|
|
12
|
-
* dirty), into a directory outside every mount, and record what was exported next to it, so
|
|
13
|
-
*
|
|
12
|
+
* dirty), into a directory outside every mount, and record what was exported next to it, so "which
|
|
13
|
+
* code is running with my key?" has an answer.
|
|
14
14
|
*
|
|
15
15
|
* What this does not do is make the repository trustworthy. The same agent can rewrite commits, so
|
|
16
16
|
* the sha being staged is printed for you to check against a clone or the remote. Stage a sha you
|
|
@@ -20,16 +20,15 @@ import { spawnSync } from 'node:child_process';
|
|
|
20
20
|
import fs from 'node:fs';
|
|
21
21
|
import os from 'node:os';
|
|
22
22
|
import path from 'node:path';
|
|
23
|
-
import { canonicalPath } from 'gcb-core';
|
|
24
|
-
import { fail, insideMountedPath, parseArgs, say, warn, writeSecretFile } from 'gcb-core';
|
|
23
|
+
import { canonicalPath, fail, insideMountedPath, parseArgs, say, warn, writeSecretFile, } from 'gcb-core';
|
|
25
24
|
/** The record `stage` leaves behind, so the running code is identifiable afterwards. */
|
|
26
25
|
export const STAGED_RECORD = 'STAGED.json';
|
|
27
26
|
/**
|
|
28
27
|
* Export a commit into the directory the broker will run from.
|
|
29
28
|
*
|
|
30
|
-
* @param input -
|
|
31
|
-
* @returns
|
|
32
|
-
* @throws {Error}
|
|
29
|
+
* @param input - The resolved options.
|
|
30
|
+
* @returns What was staged.
|
|
31
|
+
* @throws {Error} For any guard-rail violation.
|
|
33
32
|
*/
|
|
34
33
|
export function performStage(input) {
|
|
35
34
|
const repo = path.resolve(input.repo);
|
|
@@ -58,7 +57,7 @@ export function performStage(input) {
|
|
|
58
57
|
'broker.config.toml',
|
|
59
58
|
'broker.config.json',
|
|
60
59
|
'log',
|
|
61
|
-
].filter(
|
|
60
|
+
].filter(name => fs.existsSync(path.join(to, name)));
|
|
62
61
|
if (deploymentFiles.length > 0) {
|
|
63
62
|
throw new Error(`${to} looks like the deployment directory itself, not a place for code: it holds ` +
|
|
64
63
|
`${deploymentFiles.join(', ')}. Stage into a subdirectory of it, for example ${path.join(to, 'app')}.`);
|
|
@@ -85,7 +84,7 @@ export function performStage(input) {
|
|
|
85
84
|
const dirtyWorkingTree = git(['status', '--porcelain']).length > 0;
|
|
86
85
|
const files = git(['ls-tree', '-r', '--name-only', sha])
|
|
87
86
|
.split('\n')
|
|
88
|
-
.filter(
|
|
87
|
+
.filter(line => line.length > 0).length;
|
|
89
88
|
// Exported with git alone. `git archive | tar` would add a dependency on a system `tar`, which is
|
|
90
89
|
// not a given on Windows, and there is no need for one: a temporary index can address the commit
|
|
91
90
|
// and `checkout-index` writes it out. The prefix is given with forward slashes because that is
|
|
@@ -96,8 +95,9 @@ export function performStage(input) {
|
|
|
96
95
|
git(['read-tree', sha], { GIT_INDEX_FILE: indexFile });
|
|
97
96
|
// Cleared rather than merely overwritten: a file deleted since the last stage must not linger
|
|
98
97
|
// and be imported by surprise.
|
|
99
|
-
if (entries.length > 0)
|
|
98
|
+
if (entries.length > 0) {
|
|
100
99
|
fs.rmSync(to, { recursive: true, force: true });
|
|
100
|
+
}
|
|
101
101
|
fs.mkdirSync(to, { recursive: true, mode: 0o755 });
|
|
102
102
|
git(['checkout-index', '-a', '-f', `--prefix=${prefix}`], { GIT_INDEX_FILE: indexFile });
|
|
103
103
|
}
|
|
@@ -132,8 +132,8 @@ Then run it from there — Node strips types, so there is nothing to build:
|
|
|
132
132
|
/**
|
|
133
133
|
* Run the `stage` command.
|
|
134
134
|
*
|
|
135
|
-
* @param argv -
|
|
136
|
-
* @returns
|
|
135
|
+
* @param argv - Arguments after the command name.
|
|
136
|
+
* @returns The process exit code.
|
|
137
137
|
*/
|
|
138
138
|
export function runStage(argv) {
|
|
139
139
|
const args = parseArgs(argv, { booleans: ['force', 'help'] });
|
|
@@ -142,11 +142,17 @@ export function runStage(argv) {
|
|
|
142
142
|
return 0;
|
|
143
143
|
}
|
|
144
144
|
const to = args.value('to');
|
|
145
|
-
if (!to)
|
|
145
|
+
if (!to) {
|
|
146
146
|
fail('--to is required (a directory outside every container mount, e.g. /volume1/docker/git-cred-broker/app)');
|
|
147
|
+
}
|
|
147
148
|
const repo = args.value('repo') ?? process.cwd();
|
|
148
149
|
try {
|
|
149
|
-
const result = performStage({
|
|
150
|
+
const result = performStage({
|
|
151
|
+
repo,
|
|
152
|
+
to,
|
|
153
|
+
ref: args.value('ref') ?? 'HEAD',
|
|
154
|
+
force: args.has('force'),
|
|
155
|
+
});
|
|
150
156
|
say(`staged : ${result.to}`);
|
|
151
157
|
say(`from : ${result.sha.slice(0, 12)} ${result.subject}`);
|
|
152
158
|
say(`contents : ${result.files} files, from the commit — nothing from the working tree`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.js","sourceRoot":"","sources":["../../src/commands/stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"stage.js","sourceRoot":"","sources":["../../src/commands/stage.ts"],"names":[],"mappings":"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"}
|