gcb-host 0.7.1 → 0.8.1
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 +22 -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 +8 -10
- package/lib/commands/compose.d.ts.map +1 -1
- package/lib/commands/compose.js +33 -44
- 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 +144 -93
- 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 +100 -84
- 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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# gcb-host
|
|
2
2
|
|
|
3
|
+
## 0.8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#133](https://github.com/code-vaults/git-credential-broker/pull/133) [`53eafd7`](https://github.com/code-vaults/git-credential-broker/commit/53eafd732e4cbc7e282ce801c588288912f2603e) Thanks [@JounQin](https://github.com/JounQin)! - `compose` now emits the released `ghcr.io/code-vaults/gcb-host:<version>` image and runs its installed
|
|
8
|
+
`gcb daemon` binary. It no longer generates an `npx --package gcb-host` command or accepts `--package`.
|
|
9
|
+
The `--code` staged-code mode is unchanged.
|
|
10
|
+
- Updated dependencies []:
|
|
11
|
+
- gcb-core@0.8.1
|
|
12
|
+
|
|
13
|
+
## 0.8.0
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#132](https://github.com/code-vaults/git-credential-broker/pull/132) [`338d969`](https://github.com/code-vaults/git-credential-broker/commit/338d969a5431652cd7783d0889b32eb7d2a180c3) Thanks [@JounQin](https://github.com/JounQin)! - Add `gcb authorize --broker-container` for the sidecar deployment: it explicitly allows writing the
|
|
18
|
+
refresh token inside the broker container's mounts, with a warning, instead of requiring a copy through
|
|
19
|
+
`/tmp`. It must not be used when the target is shared with the agent container.
|
|
20
|
+
- Updated dependencies [[`9ae646c`](https://github.com/code-vaults/git-credential-broker/commit/9ae646c2df2d6c9fc0f8b4e73e1e597e8cba9063), [`5d93ad4`](https://github.com/code-vaults/git-credential-broker/commit/5d93ad4f05d54150afd66bcb2b531e70a38c86a8), [`d311cb0`](https://github.com/code-vaults/git-credential-broker/commit/d311cb09b88766f3fce6f7877d6da81d205526a0)]:
|
|
21
|
+
- gcb-core@0.8.0
|
|
22
|
+
|
|
3
23
|
## 0.7.1
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
|
@@ -166,9 +186,10 @@
|
|
|
166
186
|
`--user` requirement.
|
|
167
187
|
|
|
168
188
|
- [#40](https://github.com/code-vaults/git-credential-broker/pull/40) [`25b46e3`](https://github.com/code-vaults/git-credential-broker/commit/25b46e33aabf29540df1aeddb72e43947f9a4da8) Thanks [@JounQin](https://github.com/JounQin)! - Read one pull request review with `gcb pr review --number <n> --id <id>`.
|
|
169
|
-
|
|
189
|
+
|
|
170
190
|
When `--jq` is used, the action token is kept in the isolated gh config instead of the
|
|
171
191
|
environment, so the expression cannot print it.
|
|
192
|
+
|
|
172
193
|
- Updated dependencies [[`25b46e3`](https://github.com/code-vaults/git-credential-broker/commit/25b46e33aabf29540df1aeddb72e43947f9a4da8)]:
|
|
173
194
|
- gcb-core@0.0.2
|
|
174
195
|
|
package/bin/gcb.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { runCli } from 'gcb-core'
|
|
3
|
-
import { hostBackend } from 'gcb-host'
|
|
2
|
+
import { runCli } from 'gcb-core'
|
|
3
|
+
import { hostBackend } from 'gcb-host'
|
|
4
4
|
|
|
5
|
-
process.exitCode = await runCli(process.argv.slice(2), hostBackend)
|
|
5
|
+
process.exitCode = await runCli(process.argv.slice(2), hostBackend)
|
package/lib/audit.d.ts
CHANGED
|
@@ -11,15 +11,15 @@ export interface AuditOptions {
|
|
|
11
11
|
/**
|
|
12
12
|
* Remove secret-looking fields from one audit record.
|
|
13
13
|
*
|
|
14
|
-
* @param event -
|
|
15
|
-
* @returns
|
|
14
|
+
* @param event - The record a caller wants to log.
|
|
15
|
+
* @returns The record with secret-bearing keys replaced by `<redacted>`.
|
|
16
16
|
*/
|
|
17
17
|
export declare function redact(event: Record<string, unknown>): Record<string, unknown>;
|
|
18
18
|
/**
|
|
19
19
|
* Create the audit sink.
|
|
20
20
|
*
|
|
21
|
-
* @param options -
|
|
22
|
-
* @returns
|
|
21
|
+
* @param options - Sink options.
|
|
22
|
+
* @returns The sink; a null path yields a sink that writes nothing.
|
|
23
23
|
*/
|
|
24
24
|
export declare function createAudit(options?: AuditOptions): AuditSink;
|
|
25
25
|
//# sourceMappingURL=audit.d.ts.map
|
package/lib/audit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAYzC,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAA;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM9E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,SAAS,CAoCjE"}
|
package/lib/audit.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Append-only audit log for credential decisions.
|
|
3
3
|
*
|
|
4
|
-
* The log records
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* The log records _that_ a credential was issued and for which repository, never the credential
|
|
5
|
+
* itself: callers pass only a short SHA-256 fingerprint. A defensive redaction pass drops any
|
|
6
|
+
* secret-looking key a future caller might add by accident, and the file is created 0600 so it
|
|
7
|
+
* stays broker-owned.
|
|
8
8
|
*/
|
|
9
9
|
import { chmodSync, closeSync, createWriteStream, mkdirSync, openSync } from 'node:fs';
|
|
10
10
|
import { dirname } from 'node:path';
|
|
11
11
|
/**
|
|
12
12
|
* Keys whose values must never reach the audit log.
|
|
13
13
|
*
|
|
14
|
-
* `token_fingerprint` is deliberately exempt: it is a hash, not a credential, and it is the
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* `token_fingerprint` is deliberately exempt: it is a hash, not a credential, and it is the whole
|
|
15
|
+
* point of the allow records. Without the negative lookahead the `^token` branch would swallow it,
|
|
16
|
+
* and the operator would lose the ability to correlate a grant with a later event — a real bug this
|
|
17
|
+
* pattern previously had.
|
|
18
18
|
*/
|
|
19
19
|
const FORBIDDEN_KEY_RE = /pass(word)?|secret|^token(?!_fingerprint)|token$|credential/i;
|
|
20
20
|
/**
|
|
21
21
|
* Remove secret-looking fields from one audit record.
|
|
22
22
|
*
|
|
23
|
-
* @param event -
|
|
24
|
-
* @returns
|
|
23
|
+
* @param event - The record a caller wants to log.
|
|
24
|
+
* @returns The record with secret-bearing keys replaced by `<redacted>`.
|
|
25
25
|
*/
|
|
26
26
|
export function redact(event) {
|
|
27
27
|
const out = {};
|
|
@@ -33,8 +33,8 @@ export function redact(event) {
|
|
|
33
33
|
/**
|
|
34
34
|
* Create the audit sink.
|
|
35
35
|
*
|
|
36
|
-
* @param options -
|
|
37
|
-
* @returns
|
|
36
|
+
* @param options - Sink options.
|
|
37
|
+
* @returns The sink; a null path yields a sink that writes nothing.
|
|
38
38
|
*/
|
|
39
39
|
export function createAudit(options = {}) {
|
|
40
40
|
const { path = null, now = () => Date.now(), stderr = process.stderr } = options;
|
|
@@ -54,13 +54,14 @@ export function createAudit(options = {}) {
|
|
|
54
54
|
return {
|
|
55
55
|
path,
|
|
56
56
|
record(event) {
|
|
57
|
-
if (!stream)
|
|
57
|
+
if (!stream) {
|
|
58
58
|
return;
|
|
59
|
+
}
|
|
59
60
|
stream.write(`${JSON.stringify({ ts: new Date(now()).toISOString(), ...redact(event) })}\n`);
|
|
60
61
|
},
|
|
61
62
|
close() {
|
|
62
63
|
const target = stream;
|
|
63
|
-
return new Promise(
|
|
64
|
+
return new Promise(resolve => {
|
|
64
65
|
if (!target) {
|
|
65
66
|
resolve();
|
|
66
67
|
return;
|
package/lib/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEtF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,8DAA8D,CAAA;AAYvF;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,KAA8B;IACnD,MAAM,GAAG,GAA4B,EAAE,CAAA;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAO,GAAiB,EAAE;IACpD,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAA;IAEhF,IAAI,MAAM,GAAuB,IAAI,CAAA;IACrC,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,wFAAwF;QACxF,4FAA4F;QAC5F,+EAA+E;QAC/E,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QACrC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtB,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAClC,MAAM,CAAC,KAAK,CAAC,mCAAmC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM,CAAC,KAA8B;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAC9F,CAAC;QACD,KAAK;YACH,MAAM,MAAM,GAAG,MAAM,CAAA;YACrB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,EAAE,CAAA;oBACT,OAAM;gBACR,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACrB,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/lib/broker.d.ts
CHANGED
|
@@ -26,22 +26,21 @@ export interface RequestHandlerOptions {
|
|
|
26
26
|
/**
|
|
27
27
|
* Make the socket path safe to bind.
|
|
28
28
|
*
|
|
29
|
-
* A stale socket left by a crashed broker is removed. Anything else at that path — a
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* gets bound.
|
|
29
|
+
* A stale socket left by a crashed broker is removed. Anything else at that path — a symlink, a
|
|
30
|
+
* regular file, a directory — is refused rather than overwritten, because the path may sit in a
|
|
31
|
+
* directory the agent container can write to. The containing directory is checked for the same
|
|
32
|
+
* reason: a symlinked directory would let the container choose where the socket gets bound.
|
|
34
33
|
*
|
|
35
|
-
* @param socketPath -
|
|
36
|
-
* @throws {Error}
|
|
34
|
+
* @param socketPath - The configured socket path.
|
|
35
|
+
* @throws {Error} When the path exists and is not a stale socket, or the directory is a symlink.
|
|
37
36
|
*/
|
|
38
37
|
export declare function prepareSocketPath(socketPath: string): void;
|
|
39
38
|
/**
|
|
40
|
-
* Build the request handler. Kept separate from the server so it can be unit-tested without
|
|
41
|
-
*
|
|
39
|
+
* Build the request handler. Kept separate from the server so it can be unit-tested without a
|
|
40
|
+
* socket.
|
|
42
41
|
*
|
|
43
|
-
* @param options -
|
|
44
|
-
* @returns
|
|
42
|
+
* @param options - Handler options.
|
|
43
|
+
* @returns The handler.
|
|
45
44
|
*/
|
|
46
45
|
export declare function createRequestHandler(options: RequestHandlerOptions): (message: Record<string, unknown>) => Promise<WireResponse>;
|
|
47
46
|
/** Options for {@link startBroker}. */
|
|
@@ -61,8 +60,8 @@ export interface RunningBroker {
|
|
|
61
60
|
/**
|
|
62
61
|
* Start the broker.
|
|
63
62
|
*
|
|
64
|
-
* @param options -
|
|
65
|
-
* @returns
|
|
63
|
+
* @param options - Server options.
|
|
64
|
+
* @returns The running broker.
|
|
66
65
|
*/
|
|
67
66
|
export declare function startBroker(options: StartBrokerOptions): Promise<RunningBroker>;
|
|
68
67
|
//# sourceMappingURL=broker.d.ts.map
|
package/lib/broker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAgB,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAK7F,wFAAwF;AACxF,eAAO,MAAM,cAAc,QAAkB,CAAA;AAS7C,6CAA6C;AAC7C,eAAO,MAAM,KAAK;aAChB,WAAW,EAAE,aAAa;aAC1B,kBAAkB,EAAE,oBAAoB;aACxC,gBAAgB,EAAE,kBAAkB;aACpC,aAAa,EAAE,eAAe;aAC9B,gBAAgB,EAAE,kBAAkB;aACpC,cAAc,EAAE,gBAAgB;CACxB,CAAA;AAUV,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CACzC;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAoC1D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,qBAAqB,GAC7B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,CAqsB7D;AAMD,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAED,wBAAwB;AACxB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,0FAA0F;IAC1F,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAA;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgFrF"}
|
package/lib/broker.js
CHANGED
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
* The broker itself: a unix-socket server that turns a (host, repository) request into one
|
|
3
3
|
* short-lived credential.
|
|
4
4
|
*
|
|
5
|
-
* Why a unix socket and not the LAN HTTP API the original design proposed: the container
|
|
6
|
-
*
|
|
7
|
-
* `NODE_USE_ENV_PROXY=1`, so a plain-HTTP broker hop would route the shared key and the
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* nonce or replay window.
|
|
5
|
+
* Why a unix socket and not the LAN HTTP API the original design proposed: the container runs with
|
|
6
|
+
* `http_proxy`/`https_proxy`/`all_proxy` pointing at another machine and with
|
|
7
|
+
* `NODE_USE_ENV_PROXY=1`, so a plain-HTTP broker hop would route the shared key and the minted
|
|
8
|
+
* token through that proxy, in cleartext. A socket on the filesystem is reachable only from this
|
|
9
|
+
* host, ignores proxy environment variables entirely, and needs no TLS, nonce or replay window.
|
|
11
10
|
*
|
|
12
11
|
* Security properties enforced here:
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
12
|
+
*
|
|
13
|
+
* - Default deny: unknown host, missing path, unparsable path and unlisted repository are all
|
|
14
|
+
* refusals, each recorded in the audit log;
|
|
15
|
+
* - The credential is scoped to exactly one repository and to narrowed permissions;
|
|
16
|
+
* - A refusal never explains internals to the caller (details go to the host-side log);
|
|
17
|
+
* - The socket path is created by this process and refuses to replace anything that is not already a
|
|
18
|
+
* socket, and refuses to follow a symlink.
|
|
19
19
|
*/
|
|
20
20
|
import fs from 'node:fs';
|
|
21
|
-
import { parseProxy, withProxy } from './http.js';
|
|
22
|
-
import { buildGhArgv, PACKAGE_VERSION, getGhAction, MAX_BODY_CHARS, MAX_MESSAGE_BYTES, MAX_TITLE_CHARS, ProviderConfigError, ActionError, BRANCH, createLineReader, encodeMessage, parseMessage, socketPathRefusal, tokenFingerprint, } from 'gcb-core';
|
|
23
21
|
import net from 'node:net';
|
|
24
22
|
import path from 'node:path';
|
|
23
|
+
import { buildGhArgv, PACKAGE_VERSION, getGhAction, MAX_BODY_CHARS, MAX_MESSAGE_BYTES, MAX_TITLE_CHARS, ProviderConfigError, ActionError, BRANCH, createLineReader, encodeMessage, parseMessage, socketPathRefusal, tokenFingerprint, } from 'gcb-core';
|
|
24
|
+
import { parseProxy, withProxy } from './http.js';
|
|
25
25
|
import { hostConfig, normalizeRepoPath, parseAllowEntry, repoAllowed } from './policy.js';
|
|
26
26
|
/** Reported by the `ping` operation so the container side can prove what it reached. */
|
|
27
27
|
export const BROKER_VERSION = PACKAGE_VERSION;
|
|
@@ -43,14 +43,13 @@ export const CODES = {
|
|
|
43
43
|
/**
|
|
44
44
|
* Make the socket path safe to bind.
|
|
45
45
|
*
|
|
46
|
-
* A stale socket left by a crashed broker is removed. Anything else at that path — a
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* gets bound.
|
|
46
|
+
* A stale socket left by a crashed broker is removed. Anything else at that path — a symlink, a
|
|
47
|
+
* regular file, a directory — is refused rather than overwritten, because the path may sit in a
|
|
48
|
+
* directory the agent container can write to. The containing directory is checked for the same
|
|
49
|
+
* reason: a symlinked directory would let the container choose where the socket gets bound.
|
|
51
50
|
*
|
|
52
|
-
* @param socketPath -
|
|
53
|
-
* @throws {Error}
|
|
51
|
+
* @param socketPath - The configured socket path.
|
|
52
|
+
* @throws {Error} When the path exists and is not a stale socket, or the directory is a symlink.
|
|
54
53
|
*/
|
|
55
54
|
export function prepareSocketPath(socketPath) {
|
|
56
55
|
// Before creating anything: a Windows-backed mount inside WSL is 9p/drvfs, which will not carry a
|
|
@@ -74,8 +73,9 @@ export function prepareSocketPath(socketPath) {
|
|
|
74
73
|
stats = fs.lstatSync(socketPath);
|
|
75
74
|
}
|
|
76
75
|
catch (error) {
|
|
77
|
-
if (error.code === 'ENOENT')
|
|
76
|
+
if (error.code === 'ENOENT') {
|
|
78
77
|
return;
|
|
78
|
+
}
|
|
79
79
|
throw error;
|
|
80
80
|
}
|
|
81
81
|
if (stats.isSymbolicLink()) {
|
|
@@ -88,11 +88,11 @@ export function prepareSocketPath(socketPath) {
|
|
|
88
88
|
fs.unlinkSync(socketPath);
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
|
-
* Build the request handler. Kept separate from the server so it can be unit-tested without
|
|
92
|
-
*
|
|
91
|
+
* Build the request handler. Kept separate from the server so it can be unit-tested without a
|
|
92
|
+
* socket.
|
|
93
93
|
*
|
|
94
|
-
* @param options -
|
|
95
|
-
* @returns
|
|
94
|
+
* @param options - Handler options.
|
|
95
|
+
* @returns The handler.
|
|
96
96
|
*/
|
|
97
97
|
export function createRequestHandler(options) {
|
|
98
98
|
const { audit, log = () => { } } = options;
|
|
@@ -100,11 +100,11 @@ export function createRequestHandler(options) {
|
|
|
100
100
|
/**
|
|
101
101
|
* Record a refusal and produce the caller-visible response.
|
|
102
102
|
*
|
|
103
|
-
* @param context -
|
|
104
|
-
* @param code -
|
|
105
|
-
* @param reason -
|
|
106
|
-
* @param message -
|
|
107
|
-
* @returns
|
|
103
|
+
* @param context - Host/repo/session context.
|
|
104
|
+
* @param code - The response code.
|
|
105
|
+
* @param reason - The detailed reason; host-side log and audit only for provider errors.
|
|
106
|
+
* @param message - What the caller is told.
|
|
107
|
+
* @returns The refusal.
|
|
108
108
|
*/
|
|
109
109
|
function deny(context, code, reason, message,
|
|
110
110
|
// Detail for this side only: a provider's response body, which the caller must never receive. It
|
|
@@ -124,7 +124,9 @@ export function createRequestHandler(options) {
|
|
|
124
124
|
host: typeof message['host'] === 'string' ? message['host'] : null,
|
|
125
125
|
repo: null,
|
|
126
126
|
session: typeof message['session'] === 'string' ? message['session'].slice(0, 128) : null,
|
|
127
|
-
helper_pid: typeof message['pid'] === 'number' && Number.isInteger(message['pid'])
|
|
127
|
+
helper_pid: typeof message['pid'] === 'number' && Number.isInteger(message['pid'])
|
|
128
|
+
? message['pid']
|
|
129
|
+
: null,
|
|
128
130
|
};
|
|
129
131
|
const denyPullRequest = (code, reason, message, hostDetail) => deny(context, code, reason, message, hostDetail, auditEvent);
|
|
130
132
|
if (message['op'] === 'ping') {
|
|
@@ -133,7 +135,9 @@ export function createRequestHandler(options) {
|
|
|
133
135
|
ok: true,
|
|
134
136
|
version: BROKER_VERSION,
|
|
135
137
|
hosts: [...current.providers.keys()],
|
|
136
|
-
auditPath: configuredAudit === null || configuredAudit === ''
|
|
138
|
+
auditPath: configuredAudit === null || configuredAudit === ''
|
|
139
|
+
? configuredAudit
|
|
140
|
+
: path.resolve(configuredAudit),
|
|
137
141
|
};
|
|
138
142
|
}
|
|
139
143
|
if (message['op'] !== 'credential' &&
|
|
@@ -171,7 +175,9 @@ export function createRequestHandler(options) {
|
|
|
171
175
|
const allowedRepo = repoAllowed(block.allow, repo.full);
|
|
172
176
|
let forkPush = false;
|
|
173
177
|
let publicAction = false;
|
|
174
|
-
if (message['op'] === 'action' &&
|
|
178
|
+
if (message['op'] === 'action' &&
|
|
179
|
+
block.allowPublicRead === true &&
|
|
180
|
+
typeof message['ghAction'] === 'string') {
|
|
175
181
|
try {
|
|
176
182
|
publicAction = getGhAction(message['ghAction']).readOnly === true;
|
|
177
183
|
}
|
|
@@ -187,11 +193,13 @@ export function createRequestHandler(options) {
|
|
|
187
193
|
provider.isForkOf !== undefined) {
|
|
188
194
|
for (const raw of block.allow) {
|
|
189
195
|
const entry = parseAllowEntry(raw);
|
|
190
|
-
if (!entry || entry.owner === '*' || entry.repo === '*')
|
|
196
|
+
if (!entry || entry.owner === '*' || entry.repo === '*') {
|
|
191
197
|
continue;
|
|
198
|
+
}
|
|
192
199
|
const fork = `${entry.owner}/${entry.repo}`;
|
|
193
|
-
if (fork === repo.full)
|
|
200
|
+
if (fork === repo.full) {
|
|
194
201
|
continue;
|
|
202
|
+
}
|
|
195
203
|
try {
|
|
196
204
|
if (await provider.isForkOf(entry.owner, entry.repo, [repo.full])) {
|
|
197
205
|
forkAction = true;
|
|
@@ -199,8 +207,9 @@ export function createRequestHandler(options) {
|
|
|
199
207
|
}
|
|
200
208
|
}
|
|
201
209
|
catch (error) {
|
|
202
|
-
if (error instanceof ProviderConfigError)
|
|
210
|
+
if (error instanceof ProviderConfigError) {
|
|
203
211
|
forkCheckError = error;
|
|
212
|
+
}
|
|
204
213
|
continue;
|
|
205
214
|
}
|
|
206
215
|
}
|
|
@@ -209,7 +218,9 @@ export function createRequestHandler(options) {
|
|
|
209
218
|
return deny(context, CODES.PROVIDER_ERROR, forkCheckError.message, forkCheckError.message, undefined, auditEvent);
|
|
210
219
|
}
|
|
211
220
|
if (!allowedRepo && !publicAction && !forkAction) {
|
|
212
|
-
if (message['op'] === 'credential' &&
|
|
221
|
+
if (message['op'] === 'credential' &&
|
|
222
|
+
block.allowForkPush === true &&
|
|
223
|
+
provider.isForkOf !== undefined) {
|
|
213
224
|
let fork = false;
|
|
214
225
|
let forkCredentialError;
|
|
215
226
|
try {
|
|
@@ -238,7 +249,10 @@ export function createRequestHandler(options) {
|
|
|
238
249
|
return deny(context, CODES.BAD_REQUEST, 'bad action identity', 'the request names no usable identity', undefined, 'action');
|
|
239
250
|
}
|
|
240
251
|
const denyAction = (code, reason, message, hostDetail) => deny(context, code, reason, message, hostDetail, 'action');
|
|
241
|
-
if (typeof ghAction !== 'string' ||
|
|
252
|
+
if (typeof ghAction !== 'string' ||
|
|
253
|
+
values === null ||
|
|
254
|
+
typeof values !== 'object' ||
|
|
255
|
+
Array.isArray(values)) {
|
|
242
256
|
return denyAction(CODES.BAD_REQUEST, 'bad action request', 'the request carries no usable action');
|
|
243
257
|
}
|
|
244
258
|
const actionValues = values;
|
|
@@ -330,7 +344,9 @@ export function createRequestHandler(options) {
|
|
|
330
344
|
catch (error) {
|
|
331
345
|
const reason = String(error.message ?? error).slice(0, 300);
|
|
332
346
|
const hostDetail = error.hostDetail;
|
|
333
|
-
const callerMessage = error instanceof ProviderConfigError
|
|
347
|
+
const callerMessage = error instanceof ProviderConfigError
|
|
348
|
+
? reason
|
|
349
|
+
: 'the broker could not run that action; see the broker log';
|
|
334
350
|
return denyAction(CODES.PROVIDER_ERROR, reason, callerMessage, hostDetail);
|
|
335
351
|
}
|
|
336
352
|
}
|
|
@@ -408,7 +424,8 @@ export function createRequestHandler(options) {
|
|
|
408
424
|
if (action === 'open' && base !== undefined && !usable(base)) {
|
|
409
425
|
return denyPullRequest(CODES.BAD_REQUEST, `bad base ${JSON.stringify(base)}`, 'the base branch name is not usable');
|
|
410
426
|
}
|
|
411
|
-
if (action === 'open' &&
|
|
427
|
+
if (action === 'open' &&
|
|
428
|
+
(typeof title !== 'string' || title.trim() === '' || title.length > MAX_TITLE_CHARS)) {
|
|
412
429
|
return denyPullRequest(CODES.BAD_REQUEST, 'bad title', `a pull request needs a title of at most ${MAX_TITLE_CHARS} characters`);
|
|
413
430
|
}
|
|
414
431
|
if (body !== undefined && (typeof body !== 'string' || body.length > MAX_BODY_CHARS)) {
|
|
@@ -437,11 +454,15 @@ export function createRequestHandler(options) {
|
|
|
437
454
|
if (side !== 'left' && side !== 'right') {
|
|
438
455
|
return denyPullRequest(CODES.BAD_REQUEST, `bad side ${JSON.stringify(side)}`, 'the side has to be left or right');
|
|
439
456
|
}
|
|
440
|
-
if ((action === 'comment' || action === 'reply' || action === 'edit') &&
|
|
457
|
+
if ((action === 'comment' || action === 'reply' || action === 'edit') &&
|
|
458
|
+
(typeof body !== 'string' || body.trim() === '')) {
|
|
441
459
|
return denyPullRequest(CODES.BAD_REQUEST, 'empty comment', 'a comment has to say something');
|
|
442
460
|
}
|
|
443
|
-
if ((action === 'reply' || action === 'edit') &&
|
|
444
|
-
|
|
461
|
+
if ((action === 'reply' || action === 'edit') &&
|
|
462
|
+
(typeof commentId !== 'number' || !Number.isInteger(commentId) || commentId <= 0)) {
|
|
463
|
+
return denyPullRequest(CODES.BAD_REQUEST, 'bad commentId', action === 'reply'
|
|
464
|
+
? 'a reply needs the id of the comment it answers'
|
|
465
|
+
: 'an edit needs the id of the review comment it changes');
|
|
445
466
|
}
|
|
446
467
|
if (action === 'resolve' && (typeof threadId !== 'string' || threadId === '')) {
|
|
447
468
|
return denyPullRequest(CODES.BAD_REQUEST, 'bad threadId', 'resolving needs the id of the thread, which --threads prints');
|
|
@@ -488,7 +509,9 @@ export function createRequestHandler(options) {
|
|
|
488
509
|
...(typeof commentId === 'number' ? { comment_id: commentId } : {}),
|
|
489
510
|
...(typeof head === 'string' ? { head } : {}),
|
|
490
511
|
...(typeof base === 'string' ? { base } : {}),
|
|
491
|
-
...(action === 'fork'
|
|
512
|
+
...(action === 'fork'
|
|
513
|
+
? { fork_url: result.url }
|
|
514
|
+
: { pr_number: result.number, pr_url: result.url }),
|
|
492
515
|
});
|
|
493
516
|
return {
|
|
494
517
|
ok: true,
|
|
@@ -544,7 +567,6 @@ export function createRequestHandler(options) {
|
|
|
544
567
|
return deny(context, CODES.PROVIDER_ERROR, reason, message, hostDetail);
|
|
545
568
|
}
|
|
546
569
|
}
|
|
547
|
-
;
|
|
548
570
|
return async function handle(message) {
|
|
549
571
|
const proxy = parseProxy(message['proxy']);
|
|
550
572
|
if (proxy === false) {
|
|
@@ -559,8 +581,8 @@ function auditEventFor(op) {
|
|
|
559
581
|
/**
|
|
560
582
|
* Start the broker.
|
|
561
583
|
*
|
|
562
|
-
* @param options -
|
|
563
|
-
* @returns
|
|
584
|
+
* @param options - Server options.
|
|
585
|
+
* @returns The running broker.
|
|
564
586
|
*/
|
|
565
587
|
export async function startBroker(options) {
|
|
566
588
|
const { config, audit, providers, log = () => { } } = options;
|
|
@@ -571,10 +593,10 @@ export async function startBroker(options) {
|
|
|
571
593
|
state.config = nextConfig;
|
|
572
594
|
state.providers = nextProviders;
|
|
573
595
|
};
|
|
574
|
-
const server = net.createServer({ allowHalfOpen: false },
|
|
596
|
+
const server = net.createServer({ allowHalfOpen: false }, socket => {
|
|
575
597
|
socket.setTimeout(REQUEST_TIMEOUT_MS);
|
|
576
598
|
const reader = createLineReader({
|
|
577
|
-
onLine:
|
|
599
|
+
onLine: line => {
|
|
578
600
|
const message = parseMessage(line);
|
|
579
601
|
if (message?.['op'] === 'action' && typeof message['ghAction'] === 'string') {
|
|
580
602
|
try {
|
|
@@ -585,8 +607,9 @@ export async function startBroker(options) {
|
|
|
585
607
|
}
|
|
586
608
|
}
|
|
587
609
|
const respond = (response) => {
|
|
588
|
-
if (!socket.destroyed)
|
|
610
|
+
if (!socket.destroyed) {
|
|
589
611
|
socket.write(encodeMessage(response));
|
|
612
|
+
}
|
|
590
613
|
};
|
|
591
614
|
if (!message) {
|
|
592
615
|
respond({ ok: false, code: CODES.BAD_REQUEST, reason: 'malformed request' });
|
|
@@ -620,14 +643,15 @@ export async function startBroker(options) {
|
|
|
620
643
|
resolve();
|
|
621
644
|
});
|
|
622
645
|
});
|
|
623
|
-
if (config.socketMode)
|
|
646
|
+
if (config.socketMode) {
|
|
624
647
|
fs.chmodSync(config.socketPath, config.socketMode);
|
|
648
|
+
}
|
|
625
649
|
log(`listening on ${config.socketPath} (mode ${config.socketMode.toString(8)})`);
|
|
626
650
|
return {
|
|
627
651
|
socketPath: config.socketPath,
|
|
628
652
|
reload,
|
|
629
653
|
async close() {
|
|
630
|
-
await new Promise(
|
|
654
|
+
await new Promise(resolve => server.close(() => resolve()));
|
|
631
655
|
try {
|
|
632
656
|
fs.unlinkSync(config.socketPath);
|
|
633
657
|
}
|
package/lib/broker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../src/broker.ts"],"names":[],"mappings":"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"}
|