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/config.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ export declare const DEFAULT_CONFIG_FILE = "broker.config.yml";
|
|
|
5
5
|
* Where the configuration lives when nothing says otherwise.
|
|
6
6
|
*
|
|
7
7
|
* This convention is what makes the commands usable without repeating paths: run them from the
|
|
8
|
-
* deployment directory and `./broker.config.yml` is found, or export `GIT_BROKER_CONFIG` once.
|
|
9
|
-
*
|
|
8
|
+
* deployment directory and `./broker.config.yml` is found, or export `GIT_BROKER_CONFIG` once. An
|
|
9
|
+
* explicit `--config` always wins.
|
|
10
10
|
*
|
|
11
|
-
* @param explicit -
|
|
12
|
-
* @param env -
|
|
13
|
-
* @returns
|
|
11
|
+
* @param explicit - The `--config` argument, if any.
|
|
12
|
+
* @param env - The environment to read.
|
|
13
|
+
* @returns An absolute path.
|
|
14
14
|
*/
|
|
15
15
|
export declare function resolveConfigPath(explicit?: string, env?: NodeJS.ProcessEnv): string;
|
|
16
16
|
/**
|
|
@@ -19,8 +19,8 @@ export declare function resolveConfigPath(explicit?: string, env?: NodeJS.Proces
|
|
|
19
19
|
* The key, the configuration and the log directory are siblings, so the file's own location says
|
|
20
20
|
* where the deployment is.
|
|
21
21
|
*
|
|
22
|
-
* @param configPath -
|
|
23
|
-
* @returns
|
|
22
|
+
* @param configPath - The configuration path.
|
|
23
|
+
* @returns The absolute directory.
|
|
24
24
|
*/
|
|
25
25
|
export declare function deploymentDir(configPath: string): string;
|
|
26
26
|
/** The two supported deployments. Which one a configuration suits is decided by its paths. */
|
|
@@ -34,18 +34,19 @@ export type DeploymentMode = 'host' | 'sidecar';
|
|
|
34
34
|
/**
|
|
35
35
|
* The file name the authorized person's refresh token is kept under.
|
|
36
36
|
*
|
|
37
|
-
* It sits beside the private key, because the broker reads the key and can find the token without
|
|
38
|
-
* told anything else — one rule, used by the writer, the reader and the mount, so they cannot
|
|
37
|
+
* It sits beside the private key, because the broker reads the key and can find the token without
|
|
38
|
+
* being told anything else — one rule, used by the writer, the reader and the mount, so they cannot
|
|
39
|
+
* drift.
|
|
39
40
|
*/
|
|
40
41
|
export declare const USER_TOKEN_FILE = "user.refresh";
|
|
41
42
|
/**
|
|
42
43
|
* Where the authorized person's refresh token is, given the key it sits beside.
|
|
43
44
|
*
|
|
44
|
-
*
|
|
45
|
-
* platform they belong to.
|
|
45
|
+
* Posix, not path: these are paths inside the deployment, and the process reading them need not be
|
|
46
|
+
* the platform they belong to.
|
|
46
47
|
*
|
|
47
|
-
* @param privateKeyPath -
|
|
48
|
-
* @returns
|
|
48
|
+
* @param privateKeyPath - The key, as the process that reads it sees the path.
|
|
49
|
+
* @returns The refresh token path.
|
|
49
50
|
*/
|
|
50
51
|
export declare function userTokenPath(privateKeyPath: string): string;
|
|
51
52
|
export declare const SIDECAR: {
|
|
@@ -64,8 +65,8 @@ export declare const SIDECAR: {
|
|
|
64
65
|
* can find its key. This lives here, not with the CLI, so the daemon can use it to explain a
|
|
65
66
|
* mismatch instead of reporting a bare ENOENT about a path that only exists in the other layout.
|
|
66
67
|
*
|
|
67
|
-
* @param config -
|
|
68
|
-
* @returns
|
|
68
|
+
* @param config - A validated configuration.
|
|
69
|
+
* @returns The deployment it suits.
|
|
69
70
|
*/
|
|
70
71
|
export declare function inferMode(config: BrokerConfig): DeploymentMode;
|
|
71
72
|
/**
|
|
@@ -74,19 +75,19 @@ export declare function inferMode(config: BrokerConfig): DeploymentMode;
|
|
|
74
75
|
* Same reasoning as the key: a path that does not resolve is a deployment mistake, and the process
|
|
75
76
|
* that runs the broker is the one whose paths count.
|
|
76
77
|
*
|
|
77
|
-
* @param config -
|
|
78
|
+
* @param config - The loaded configuration.
|
|
78
79
|
*/
|
|
79
80
|
export declare function assertUserTokensReadable(config: BrokerConfig): void;
|
|
80
81
|
/**
|
|
81
82
|
* Check that each recorded private key is readable, before the caller tries to read it.
|
|
82
83
|
*
|
|
83
|
-
* Both the daemon and `diagnose` need this, because both read the key, and a bare
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
84
|
+
* Both the daemon and `diagnose` need this, because both read the key, and a bare `ENOENT ...
|
|
85
|
+
* /etc/git-cred-broker/app.pem` says nothing: that path exists only inside the sidecar, so the
|
|
86
|
+
* mistake is where the command was run, not that the key is missing. The layout is recoverable from
|
|
87
|
+
* the configuration itself, so name it and give the way out.
|
|
87
88
|
*
|
|
88
|
-
* @param config -
|
|
89
|
-
* @throws {Error}
|
|
89
|
+
* @param config - The validated configuration.
|
|
90
|
+
* @throws {Error} When a key file is missing, with the remedy in the message.
|
|
90
91
|
*/
|
|
91
92
|
export declare function assertKeysReadable(config: BrokerConfig): void;
|
|
92
93
|
/** Providers this build knows how to construct. */
|
|
@@ -94,10 +95,10 @@ export declare const KNOWN_PROVIDERS: readonly ['github-app', 'static'];
|
|
|
94
95
|
/**
|
|
95
96
|
* Validate a parsed configuration object.
|
|
96
97
|
*
|
|
97
|
-
* @param raw -
|
|
98
|
-
* @param source -
|
|
99
|
-
* @returns
|
|
100
|
-
* @throws {Error}
|
|
98
|
+
* @param raw - The parsed JSON.
|
|
99
|
+
* @param source - Where it came from, for error messages.
|
|
100
|
+
* @returns The validated configuration with defaults applied.
|
|
101
|
+
* @throws {Error} When any field is missing or malformed.
|
|
101
102
|
*/
|
|
102
103
|
export declare function validateConfig(raw: unknown, source?: string): BrokerConfig;
|
|
103
104
|
/** Read configuration text, with the deployment path named on failure. */
|
|
@@ -105,8 +106,8 @@ export declare function readConfigText(path: string): string;
|
|
|
105
106
|
/**
|
|
106
107
|
* Read and validate a configuration file.
|
|
107
108
|
*
|
|
108
|
-
* @param path -
|
|
109
|
-
* @returns
|
|
109
|
+
* @param path - Path to the YAML config.
|
|
110
|
+
* @returns The validated configuration.
|
|
110
111
|
*/
|
|
111
112
|
export declare function loadConfig(path: string): BrokerConfig;
|
|
112
113
|
/** Parse and validate configuration text already read from `path`. */
|
package/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAqD,MAAM,UAAU,CAAA;AAK/F,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,sBAAsB,CAAA;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEjG;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,8FAA8F;AAC9F,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAA;AAE/C;;;;;GAKG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,eAAO,MAAM,OAAO;aAClB,UAAU,EAAE,+CAA+C;aAC3D,OAAO,EAAE,8BAA8B;aAGvC,aAAa;aACb,QAAQ,EAAE,0BAA0B;aACpC,SAAS,EAAE,sCAAsC;aACjD,SAAS,EAAE,iBAAiB;aAC5B,UAAU,EAAE,6BAA6B;CACjC,CAAA;AAEV;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAM9D;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAiBnE;AAED;;;;;;;;;;GAUG;AAEH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAoB7D;AAED,mDAAmD;AACnD,eAAO,MAAM,eAAe,YAAI,YAAY,EAAE,QAAQ,CAAU,CAAA;AA0MhE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,SAAa,GAAG,YAAY,CAyI9E;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAErD;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAYvE"}
|
package/lib/config.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Broker configuration: loaded from a YAML file that lives on the host, outside every
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* allowing) at push time.
|
|
2
|
+
* Broker configuration: loaded from a YAML file that lives on the host, outside every mount the
|
|
3
|
+
* agent container can see, and validated eagerly so a broken or over-broad configuration stops the
|
|
4
|
+
* daemon at startup instead of silently denying (or silently allowing) at push time.
|
|
6
5
|
*/
|
|
7
6
|
import { existsSync, readFileSync } from 'node:fs';
|
|
8
7
|
import path, { posix } from 'node:path';
|
|
@@ -14,15 +13,15 @@ export const DEFAULT_CONFIG_FILE = 'broker.config.yml';
|
|
|
14
13
|
* Where the configuration lives when nothing says otherwise.
|
|
15
14
|
*
|
|
16
15
|
* This convention is what makes the commands usable without repeating paths: run them from the
|
|
17
|
-
* deployment directory and `./broker.config.yml` is found, or export `GIT_BROKER_CONFIG` once.
|
|
18
|
-
*
|
|
16
|
+
* deployment directory and `./broker.config.yml` is found, or export `GIT_BROKER_CONFIG` once. An
|
|
17
|
+
* explicit `--config` always wins.
|
|
19
18
|
*
|
|
20
|
-
* @param explicit -
|
|
21
|
-
* @param env -
|
|
22
|
-
* @returns
|
|
19
|
+
* @param explicit - The `--config` argument, if any.
|
|
20
|
+
* @param env - The environment to read.
|
|
21
|
+
* @returns An absolute path.
|
|
23
22
|
*/
|
|
24
23
|
export function resolveConfigPath(explicit, env = process.env) {
|
|
25
|
-
return path.resolve(explicit
|
|
24
|
+
return path.resolve(explicit || env['GIT_BROKER_CONFIG'] || DEFAULT_CONFIG_FILE);
|
|
26
25
|
}
|
|
27
26
|
/**
|
|
28
27
|
* The deployment directory implied by a configuration path.
|
|
@@ -30,8 +29,8 @@ export function resolveConfigPath(explicit, env = process.env) {
|
|
|
30
29
|
* The key, the configuration and the log directory are siblings, so the file's own location says
|
|
31
30
|
* where the deployment is.
|
|
32
31
|
*
|
|
33
|
-
* @param configPath -
|
|
34
|
-
* @returns
|
|
32
|
+
* @param configPath - The configuration path.
|
|
33
|
+
* @returns The absolute directory.
|
|
35
34
|
*/
|
|
36
35
|
export function deploymentDir(configPath) {
|
|
37
36
|
return path.dirname(path.resolve(configPath));
|
|
@@ -45,18 +44,19 @@ export function deploymentDir(configPath) {
|
|
|
45
44
|
/**
|
|
46
45
|
* The file name the authorized person's refresh token is kept under.
|
|
47
46
|
*
|
|
48
|
-
* It sits beside the private key, because the broker reads the key and can find the token without
|
|
49
|
-
* told anything else — one rule, used by the writer, the reader and the mount, so they cannot
|
|
47
|
+
* It sits beside the private key, because the broker reads the key and can find the token without
|
|
48
|
+
* being told anything else — one rule, used by the writer, the reader and the mount, so they cannot
|
|
49
|
+
* drift.
|
|
50
50
|
*/
|
|
51
51
|
export const USER_TOKEN_FILE = 'user.refresh';
|
|
52
52
|
/**
|
|
53
53
|
* Where the authorized person's refresh token is, given the key it sits beside.
|
|
54
54
|
*
|
|
55
|
-
*
|
|
56
|
-
* platform they belong to.
|
|
55
|
+
* Posix, not path: these are paths inside the deployment, and the process reading them need not be
|
|
56
|
+
* the platform they belong to.
|
|
57
57
|
*
|
|
58
|
-
* @param privateKeyPath -
|
|
59
|
-
* @returns
|
|
58
|
+
* @param privateKeyPath - The key, as the process that reads it sees the path.
|
|
59
|
+
* @returns The refresh token path.
|
|
60
60
|
*/
|
|
61
61
|
export function userTokenPath(privateKeyPath) {
|
|
62
62
|
return posix.join(posix.dirname(privateKeyPath), USER_TOKEN_FILE);
|
|
@@ -79,13 +79,15 @@ export const SIDECAR = {
|
|
|
79
79
|
* can find its key. This lives here, not with the CLI, so the daemon can use it to explain a
|
|
80
80
|
* mismatch instead of reporting a bare ENOENT about a path that only exists in the other layout.
|
|
81
81
|
*
|
|
82
|
-
* @param config -
|
|
83
|
-
* @returns
|
|
82
|
+
* @param config - A validated configuration.
|
|
83
|
+
* @returns The deployment it suits.
|
|
84
84
|
*/
|
|
85
85
|
export function inferMode(config) {
|
|
86
86
|
const block = config.hosts['github.com'];
|
|
87
87
|
const keyPath = block?.provider === 'github-app' ? block.privateKeyPath : undefined;
|
|
88
|
-
return keyPath === SIDECAR.keyPath && config.socketPath === SIDECAR.socketPath
|
|
88
|
+
return keyPath === SIDECAR.keyPath && config.socketPath === SIDECAR.socketPath
|
|
89
|
+
? 'sidecar'
|
|
90
|
+
: 'host';
|
|
89
91
|
}
|
|
90
92
|
/**
|
|
91
93
|
* Refuse to start when a person's token is named but not there.
|
|
@@ -93,15 +95,17 @@ export function inferMode(config) {
|
|
|
93
95
|
* Same reasoning as the key: a path that does not resolve is a deployment mistake, and the process
|
|
94
96
|
* that runs the broker is the one whose paths count.
|
|
95
97
|
*
|
|
96
|
-
* @param config -
|
|
98
|
+
* @param config - The loaded configuration.
|
|
97
99
|
*/
|
|
98
100
|
export function assertUserTokensReadable(config) {
|
|
99
101
|
for (const [host, block] of Object.entries(config.hosts)) {
|
|
100
|
-
if (block.provider !== 'github-app')
|
|
102
|
+
if (block.provider !== 'github-app') {
|
|
101
103
|
continue;
|
|
104
|
+
}
|
|
102
105
|
for (const [owner, tokenPath] of Object.entries(block.userTokens ?? {})) {
|
|
103
|
-
if (existsSync(tokenPath))
|
|
106
|
+
if (existsSync(tokenPath)) {
|
|
104
107
|
continue;
|
|
108
|
+
}
|
|
105
109
|
throw new Error(`cannot read the token for ${host}/${owner}: ${tokenPath} does not exist.\n` +
|
|
106
110
|
` Create a fine-grained token with pull requests: read and write, contents: read and\n` +
|
|
107
111
|
` metadata: read, for the repositories the allowlist names, and put it there — or drop\n` +
|
|
@@ -112,21 +116,23 @@ export function assertUserTokensReadable(config) {
|
|
|
112
116
|
/**
|
|
113
117
|
* Check that each recorded private key is readable, before the caller tries to read it.
|
|
114
118
|
*
|
|
115
|
-
* Both the daemon and `diagnose` need this, because both read the key, and a bare
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
+
* Both the daemon and `diagnose` need this, because both read the key, and a bare `ENOENT ...
|
|
120
|
+
* /etc/git-cred-broker/app.pem` says nothing: that path exists only inside the sidecar, so the
|
|
121
|
+
* mistake is where the command was run, not that the key is missing. The layout is recoverable from
|
|
122
|
+
* the configuration itself, so name it and give the way out.
|
|
119
123
|
*
|
|
120
|
-
* @param config -
|
|
121
|
-
* @throws {Error}
|
|
124
|
+
* @param config - The validated configuration.
|
|
125
|
+
* @throws {Error} When a key file is missing, with the remedy in the message.
|
|
122
126
|
*/
|
|
123
127
|
export function assertKeysReadable(config) {
|
|
124
128
|
const mode = inferMode(config);
|
|
125
129
|
for (const [host, block] of Object.entries(config.hosts)) {
|
|
126
|
-
if (block.provider !== 'github-app' || block.privateKeyPath === undefined)
|
|
130
|
+
if (block.provider !== 'github-app' || block.privateKeyPath === undefined) {
|
|
127
131
|
continue;
|
|
128
|
-
|
|
132
|
+
}
|
|
133
|
+
if (existsSync(block.privateKeyPath)) {
|
|
129
134
|
continue;
|
|
135
|
+
}
|
|
130
136
|
const remedy = mode === 'sidecar'
|
|
131
137
|
? `${block.privateKeyPath} exists only inside the sidecar container, so this has to run there —\n` +
|
|
132
138
|
' or against a configuration that records host paths instead:\n' +
|
|
@@ -142,8 +148,8 @@ export const KNOWN_PROVIDERS = ['github-app', 'static'];
|
|
|
142
148
|
/**
|
|
143
149
|
* Whether a value is a plain object.
|
|
144
150
|
*
|
|
145
|
-
* @param value -
|
|
146
|
-
* @returns
|
|
151
|
+
* @param value - The value to test.
|
|
152
|
+
* @returns True for a non-null, non-array object.
|
|
147
153
|
*/
|
|
148
154
|
function isRecord(value) {
|
|
149
155
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
@@ -151,16 +157,17 @@ function isRecord(value) {
|
|
|
151
157
|
/**
|
|
152
158
|
* Read an optional string field, recording a type error instead of coercing.
|
|
153
159
|
*
|
|
154
|
-
* @param record -
|
|
155
|
-
* @param key -
|
|
156
|
-
* @param errors -
|
|
157
|
-
* @param at -
|
|
158
|
-
* @returns
|
|
160
|
+
* @param record - The object to read from.
|
|
161
|
+
* @param key - The field name.
|
|
162
|
+
* @param errors - The error accumulator.
|
|
163
|
+
* @param at - The human-readable location, for messages.
|
|
164
|
+
* @returns The string, or undefined when absent or invalid.
|
|
159
165
|
*/
|
|
160
166
|
function stringField(record, key, errors, at) {
|
|
161
167
|
const value = record[key];
|
|
162
|
-
if (value === undefined || value === null)
|
|
168
|
+
if (value === undefined || value === null) {
|
|
163
169
|
return undefined;
|
|
170
|
+
}
|
|
164
171
|
if (typeof value !== 'string') {
|
|
165
172
|
errors.push(`${at}.${key} must be a string`);
|
|
166
173
|
return undefined;
|
|
@@ -170,19 +177,21 @@ function stringField(record, key, errors, at) {
|
|
|
170
177
|
/**
|
|
171
178
|
* Read an optional HTTPS URL field.
|
|
172
179
|
*
|
|
173
|
-
* @param record -
|
|
174
|
-
* @param key -
|
|
175
|
-
* @param errors -
|
|
176
|
-
* @param at -
|
|
177
|
-
* @returns
|
|
180
|
+
* @param record - The object to read from.
|
|
181
|
+
* @param key - The field name.
|
|
182
|
+
* @param errors - The error accumulator.
|
|
183
|
+
* @param at - The configuration path, for the error message.
|
|
184
|
+
* @returns The URL, or undefined when absent or invalid.
|
|
178
185
|
*/
|
|
179
186
|
function httpsUrlField(record, key, errors, at) {
|
|
180
187
|
const value = stringField(record, key, errors, at);
|
|
181
|
-
if (value === undefined)
|
|
188
|
+
if (value === undefined) {
|
|
182
189
|
return undefined;
|
|
190
|
+
}
|
|
183
191
|
try {
|
|
184
|
-
if (new URL(value).protocol === 'https:')
|
|
192
|
+
if (new URL(value).protocol === 'https:') {
|
|
185
193
|
return value;
|
|
194
|
+
}
|
|
186
195
|
}
|
|
187
196
|
catch {
|
|
188
197
|
// Fall through to the shared error below.
|
|
@@ -193,16 +202,17 @@ function httpsUrlField(record, key, errors, at) {
|
|
|
193
202
|
/**
|
|
194
203
|
* Read an optional numeric field.
|
|
195
204
|
*
|
|
196
|
-
* @param record -
|
|
197
|
-
* @param key -
|
|
198
|
-
* @param errors -
|
|
199
|
-
* @param at -
|
|
200
|
-
* @returns
|
|
205
|
+
* @param record - The object to read from.
|
|
206
|
+
* @param key - The field name.
|
|
207
|
+
* @param errors - The error accumulator.
|
|
208
|
+
* @param at - The human-readable location, for messages.
|
|
209
|
+
* @returns The number, or undefined when absent or invalid.
|
|
201
210
|
*/
|
|
202
211
|
function numberField(record, key, errors, at) {
|
|
203
212
|
const value = record[key];
|
|
204
|
-
if (value === undefined || value === null)
|
|
213
|
+
if (value === undefined || value === null) {
|
|
205
214
|
return undefined;
|
|
215
|
+
}
|
|
206
216
|
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
207
217
|
errors.push(`${at}.${key} must be a finite number`);
|
|
208
218
|
return undefined;
|
|
@@ -212,16 +222,17 @@ function numberField(record, key, errors, at) {
|
|
|
212
222
|
/**
|
|
213
223
|
* Read an optional boolean field.
|
|
214
224
|
*
|
|
215
|
-
* @param record -
|
|
216
|
-
* @param key -
|
|
217
|
-
* @param errors -
|
|
218
|
-
* @param at -
|
|
219
|
-
* @returns
|
|
225
|
+
* @param record - The object to read from.
|
|
226
|
+
* @param key - The field name.
|
|
227
|
+
* @param errors - The error accumulator.
|
|
228
|
+
* @param at - The human-readable location, for messages.
|
|
229
|
+
* @returns The boolean, or undefined when absent or invalid.
|
|
220
230
|
*/
|
|
221
231
|
function booleanField(record, key, errors, at) {
|
|
222
232
|
const value = record[key];
|
|
223
|
-
if (value === undefined || value === null)
|
|
233
|
+
if (value === undefined || value === null) {
|
|
224
234
|
return undefined;
|
|
235
|
+
}
|
|
225
236
|
if (typeof value !== 'boolean') {
|
|
226
237
|
errors.push(`${at}.${key} must be a boolean`);
|
|
227
238
|
return undefined;
|
|
@@ -231,18 +242,20 @@ function booleanField(record, key, errors, at) {
|
|
|
231
242
|
/**
|
|
232
243
|
* Read an optional string-or-number field (the app ID may be written either way).
|
|
233
244
|
*
|
|
234
|
-
* @param record -
|
|
235
|
-
* @param key -
|
|
236
|
-
* @param errors -
|
|
237
|
-
* @param at -
|
|
238
|
-
* @returns
|
|
245
|
+
* @param record - The object to read from.
|
|
246
|
+
* @param key - The field name.
|
|
247
|
+
* @param errors - The error accumulator.
|
|
248
|
+
* @param at - The human-readable location, for messages.
|
|
249
|
+
* @returns The value, or undefined when absent or invalid.
|
|
239
250
|
*/
|
|
240
251
|
function stringOrNumberField(record, key, errors, at) {
|
|
241
252
|
const value = record[key];
|
|
242
|
-
if (value === undefined || value === null)
|
|
253
|
+
if (value === undefined || value === null) {
|
|
243
254
|
return undefined;
|
|
244
|
-
|
|
255
|
+
}
|
|
256
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
245
257
|
return value;
|
|
258
|
+
}
|
|
246
259
|
errors.push(`${at}.${key} must be a string or a number`);
|
|
247
260
|
return undefined;
|
|
248
261
|
}
|
|
@@ -250,31 +263,34 @@ function stringOrNumberField(record, key, errors, at) {
|
|
|
250
263
|
* The same map with its keys lower-cased.
|
|
251
264
|
*
|
|
252
265
|
* These keys are owners, and owners are case-insensitive on GitHub while every comparison in this
|
|
253
|
-
* codebase is made against a lower-cased one. Normalising at the edge is what keeps a configuration
|
|
254
|
-
* looks right from silently doing nothing.
|
|
266
|
+
* codebase is made against a lower-cased one. Normalising at the edge is what keeps a configuration
|
|
267
|
+
* that looks right from silently doing nothing.
|
|
255
268
|
*
|
|
256
|
-
* @param value -
|
|
257
|
-
* @returns
|
|
269
|
+
* @param value - The map, as written, or nothing when the field is absent.
|
|
270
|
+
* @returns The map with lower-cased keys, or nothing.
|
|
258
271
|
*/
|
|
259
272
|
function lowerCasedKeys(value) {
|
|
260
|
-
if (value === undefined)
|
|
273
|
+
if (value === undefined) {
|
|
261
274
|
return undefined;
|
|
275
|
+
}
|
|
262
276
|
const out = {};
|
|
263
|
-
for (const [key, entry] of Object.entries(value))
|
|
277
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
264
278
|
out[key.toLowerCase()] = entry;
|
|
279
|
+
}
|
|
265
280
|
return out;
|
|
266
281
|
}
|
|
267
282
|
/**
|
|
268
283
|
* Read an optional map of strings, for REST permission names.
|
|
269
284
|
*
|
|
270
|
-
* @param value -
|
|
271
|
-
* @param errors -
|
|
272
|
-
* @param at -
|
|
273
|
-
* @returns
|
|
285
|
+
* @param value - The raw value.
|
|
286
|
+
* @param errors - The error accumulator.
|
|
287
|
+
* @param at - The human-readable location, for messages.
|
|
288
|
+
* @returns The map, or undefined when absent or invalid.
|
|
274
289
|
*/
|
|
275
290
|
function stringMapField(value, errors, at, field = 'permissions') {
|
|
276
|
-
if (value === undefined || value === null)
|
|
291
|
+
if (value === undefined || value === null) {
|
|
277
292
|
return undefined;
|
|
293
|
+
}
|
|
278
294
|
if (!isRecord(value)) {
|
|
279
295
|
errors.push(`${at}.${field} must be an object of names to values`);
|
|
280
296
|
return undefined;
|
|
@@ -292,10 +308,10 @@ function stringMapField(value, errors, at, field = 'permissions') {
|
|
|
292
308
|
/**
|
|
293
309
|
* Validate a parsed configuration object.
|
|
294
310
|
*
|
|
295
|
-
* @param raw -
|
|
296
|
-
* @param source -
|
|
297
|
-
* @returns
|
|
298
|
-
* @throws {Error}
|
|
311
|
+
* @param raw - The parsed JSON.
|
|
312
|
+
* @param source - Where it came from, for error messages.
|
|
313
|
+
* @returns The validated configuration with defaults applied.
|
|
314
|
+
* @throws {Error} When any field is missing or malformed.
|
|
299
315
|
*/
|
|
300
316
|
export function validateConfig(raw, source = '<config>') {
|
|
301
317
|
if (!isRecord(raw)) {
|
|
@@ -424,14 +440,14 @@ export function readConfigText(path) {
|
|
|
424
440
|
return readFileSync(path, 'utf8');
|
|
425
441
|
}
|
|
426
442
|
catch (error) {
|
|
427
|
-
throw new Error(`cannot read config ${path}: ${error.message}
|
|
443
|
+
throw new Error(`cannot read config ${path}: ${error.message}`, { cause: error });
|
|
428
444
|
}
|
|
429
445
|
}
|
|
430
446
|
/**
|
|
431
447
|
* Read and validate a configuration file.
|
|
432
448
|
*
|
|
433
|
-
* @param path -
|
|
434
|
-
* @returns
|
|
449
|
+
* @param path - Path to the YAML config.
|
|
450
|
+
* @returns The validated configuration.
|
|
435
451
|
*/
|
|
436
452
|
export function loadConfig(path) {
|
|
437
453
|
return loadConfigText(readConfigText(path), path);
|
|
@@ -444,7 +460,7 @@ export function loadConfigText(text, path) {
|
|
|
444
460
|
prettyErrors: true,
|
|
445
461
|
});
|
|
446
462
|
if (document.errors.length > 0) {
|
|
447
|
-
throw new Error(`config ${path} is not valid YAML: ${document.errors.map(
|
|
463
|
+
throw new Error(`config ${path} is not valid YAML: ${document.errors.map(error => error.message).join('; ')}`);
|
|
448
464
|
}
|
|
449
465
|
return validateConfig(document.toJS({ maxAliasCount: 0 }), path);
|
|
450
466
|
}
|
package/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/lib/daemon.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Writable } from 'node:stream';
|
|
2
|
-
import type { ProviderDeps } from './providers/index.ts';
|
|
3
2
|
import type { BrokerConfig, Provider } from 'gcb-core';
|
|
3
|
+
import type { ProviderDeps } from './providers/index.ts';
|
|
4
4
|
/** The daemon's parsed command line. */
|
|
5
5
|
export interface DaemonArgs {
|
|
6
6
|
readonly configPath: string | undefined;
|
|
@@ -10,24 +10,24 @@ export interface DaemonArgs {
|
|
|
10
10
|
/**
|
|
11
11
|
* Parse the daemon's command line.
|
|
12
12
|
*
|
|
13
|
-
* @param argv -
|
|
14
|
-
* @returns
|
|
13
|
+
* @param argv - Arguments after the script name.
|
|
14
|
+
* @returns The parsed arguments.
|
|
15
15
|
*/
|
|
16
16
|
export declare function parseArgs(argv: readonly string[]): DaemonArgs;
|
|
17
17
|
/**
|
|
18
18
|
* Build providers for every configured host.
|
|
19
19
|
*
|
|
20
|
-
* @param config -
|
|
21
|
-
* @param deps -
|
|
22
|
-
* @returns
|
|
20
|
+
* @param config - The validated configuration.
|
|
21
|
+
* @param deps - Injectable dependencies, for tests.
|
|
22
|
+
* @returns Host -> provider.
|
|
23
23
|
*/
|
|
24
24
|
export declare function buildProviders(config: BrokerConfig, deps?: ProviderDeps): Map<string, Provider>;
|
|
25
25
|
/**
|
|
26
26
|
* Run the daemon.
|
|
27
27
|
*
|
|
28
|
-
* @param argv -
|
|
29
|
-
* @param io -
|
|
30
|
-
* @returns
|
|
28
|
+
* @param argv - Arguments after the script name.
|
|
29
|
+
* @param io - Injectable streams.
|
|
30
|
+
* @returns The process exit code, once the daemon has shut down.
|
|
31
31
|
*/
|
|
32
32
|
export declare function runDaemon(argv: readonly string[], io?: {
|
|
33
33
|
stderr?: Writable;
|
package/lib/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAYtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AASxD,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAqB7D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,YAAiB,GACtB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAYvB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAA;CAAO,GAChD,OAAO,CAAC,MAAM,CAAC,CAuGjB"}
|