charness 3.8.0 → 3.9.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 +6 -0
- package/DEVELOPMENT.md +3 -1
- package/SETUP.md +4 -3
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -5
- package/dist/cli.js.map +1 -1
- package/dist/connectors/telegram/commands/runners.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/runners.js +64 -26
- package/dist/connectors/telegram/commands/runners.js.map +1 -1
- package/dist/connectors/telegram/runnerPairingMessages.d.ts +7 -5
- package/dist/connectors/telegram/runnerPairingMessages.d.ts.map +1 -1
- package/dist/connectors/telegram/runnerPairingMessages.js +17 -10
- package/dist/connectors/telegram/runnerPairingMessages.js.map +1 -1
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +6 -4
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +6 -4
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +6 -4
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +6 -4
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +6 -4
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +6 -4
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +6 -4
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +6 -4
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +6 -4
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +6 -4
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +6 -4
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +6 -4
- package/dist/i18n/zh.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/remoteRun/pairedRunners.js +1 -1
- package/dist/remoteRun/pairedRunners.js.map +1 -1
- package/dist/remoteRun/runnerSummary.js +1 -1
- package/dist/remoteRun/runnerSummary.js.map +1 -1
- package/dist/remoteRun/runners.d.ts +8 -1
- package/dist/remoteRun/runners.d.ts.map +1 -1
- package/dist/remoteRun/runners.js +14 -2
- package/dist/remoteRun/runners.js.map +1 -1
- package/dist/remoteRun/runnersConfig.d.ts +2 -0
- package/dist/remoteRun/runnersConfig.d.ts.map +1 -1
- package/dist/remoteRun/runnersConfig.js.map +1 -1
- package/dist/runnerUtility/adminCheck.d.ts +7 -0
- package/dist/runnerUtility/adminCheck.d.ts.map +1 -1
- package/dist/runnerUtility/adminCheck.js +5 -4
- package/dist/runnerUtility/adminCheck.js.map +1 -1
- package/dist/runnerUtility/adminService.d.ts +22 -0
- package/dist/runnerUtility/adminService.d.ts.map +1 -0
- package/dist/runnerUtility/adminService.js +145 -0
- package/dist/runnerUtility/adminService.js.map +1 -0
- package/dist/runnerUtility/hubClient.d.ts +2 -2
- package/dist/runnerUtility/hubClient.d.ts.map +1 -1
- package/dist/runnerUtility/hubClient.js +1 -1
- package/dist/runnerUtility/hubClient.js.map +1 -1
- package/dist/runnerUtility/linkLoop.d.ts +0 -8
- package/dist/runnerUtility/linkLoop.d.ts.map +1 -1
- package/dist/runnerUtility/linkLoop.js +3 -10
- package/dist/runnerUtility/linkLoop.js.map +1 -1
- package/dist/runnerUtility/pairArgs.d.ts +16 -0
- package/dist/runnerUtility/pairArgs.d.ts.map +1 -0
- package/dist/runnerUtility/pairArgs.js +17 -0
- package/dist/runnerUtility/pairArgs.js.map +1 -0
- package/dist/runnerUtility/rootServiceCli.d.ts +8 -0
- package/dist/runnerUtility/rootServiceCli.d.ts.map +1 -0
- package/dist/runnerUtility/rootServiceCli.js +31 -0
- package/dist/runnerUtility/rootServiceCli.js.map +1 -0
- package/dist/runnerUtility/runnerCli.js +29 -23
- package/dist/runnerUtility/runnerCli.js.map +1 -1
- package/dist/runnerUtility/runnerCommands.d.ts +13 -4
- package/dist/runnerUtility/runnerCommands.d.ts.map +1 -1
- package/dist/runnerUtility/runnerCommands.js +58 -12
- package/dist/runnerUtility/runnerCommands.js.map +1 -1
- package/dist/runnerUtility/serviceCommon.d.ts +97 -0
- package/dist/runnerUtility/serviceCommon.d.ts.map +1 -0
- package/dist/runnerUtility/serviceCommon.js +209 -0
- package/dist/runnerUtility/serviceCommon.js.map +1 -0
- package/dist/runnerUtility/serviceManager.d.ts +14 -17
- package/dist/runnerUtility/serviceManager.d.ts.map +1 -1
- package/dist/runnerUtility/serviceManager.js +132 -201
- package/dist/runnerUtility/serviceManager.js.map +1 -1
- package/dist/runnerUtility/serviceUnits.d.ts +3 -1
- package/dist/runnerUtility/serviceUnits.d.ts.map +1 -1
- package/dist/runnerUtility/serviceUnits.js +26 -6
- package/dist/runnerUtility/serviceUnits.js.map +1 -1
- package/dist/runners/bootstrapLine.d.ts +10 -1
- package/dist/runners/bootstrapLine.d.ts.map +1 -1
- package/dist/runners/bootstrapLine.js +102 -17
- package/dist/runners/bootstrapLine.js.map +1 -1
- package/dist/runners/gate.d.ts.map +1 -1
- package/dist/runners/gate.js +9 -0
- package/dist/runners/gate.js.map +1 -1
- package/dist/runners/gateProtocol.d.ts +7 -1
- package/dist/runners/gateProtocol.d.ts.map +1 -1
- package/dist/runners/gateProtocol.js +5 -3
- package/dist/runners/gateProtocol.js.map +1 -1
- package/dist/runners/hubPairing.d.ts +7 -0
- package/dist/runners/hubPairing.d.ts.map +1 -1
- package/dist/runners/hubPairing.js +16 -0
- package/dist/runners/hubPairing.js.map +1 -1
- package/dist/runners/hubPaths.d.ts +4 -0
- package/dist/runners/hubPaths.d.ts.map +1 -1
- package/dist/runners/hubPaths.js +2 -0
- package/dist/runners/hubPaths.js.map +1 -1
- package/dist/runners/hubRegistry.d.ts +23 -1
- package/dist/runners/hubRegistry.d.ts.map +1 -1
- package/dist/runners/hubRegistry.js +48 -2
- package/dist/runners/hubRegistry.js.map +1 -1
- package/dist/runners/linkControl.d.ts +12 -1
- package/dist/runners/linkControl.d.ts.map +1 -1
- package/dist/runners/linkControl.js +56 -9
- package/dist/runners/linkControl.js.map +1 -1
- package/dist/runners/removalTiming.d.ts +13 -0
- package/dist/runners/removalTiming.d.ts.map +1 -0
- package/dist/runners/removalTiming.js +17 -0
- package/dist/runners/removalTiming.js.map +1 -0
- package/dist/runners/runnerRemoval.d.ts.map +1 -1
- package/dist/runners/runnerRemoval.js +12 -0
- package/dist/runners/runnerRemoval.js.map +1 -1
- package/dist/runners/runnerServiceKind.d.ts +10 -0
- package/dist/runners/runnerServiceKind.d.ts.map +1 -0
- package/dist/runners/runnerServiceKind.js +13 -0
- package/dist/runners/runnerServiceKind.js.map +1 -0
- package/dist/runners/runnersCli.d.ts +11 -2
- package/dist/runners/runnersCli.d.ts.map +1 -1
- package/dist/runners/runnersCli.js +39 -14
- package/dist/runners/runnersCli.js.map +1 -1
- package/dist/runners/runnersList.d.ts +6 -9
- package/dist/runners/runnersList.d.ts.map +1 -1
- package/dist/runners/runnersList.js +9 -7
- package/dist/runners/runnersList.js.map +1 -1
- package/dist/runners/runnersOverview.d.ts.map +1 -1
- package/dist/runners/runnersOverview.js +2 -1
- package/dist/runners/runnersOverview.js.map +1 -1
- package/dist/selfUpdate/selfCheck.d.ts +13 -0
- package/dist/selfUpdate/selfCheck.d.ts.map +1 -1
- package/dist/selfUpdate/selfCheck.js +9 -3
- package/dist/selfUpdate/selfCheck.js.map +1 -1
- package/dist/stt/sttInstallEntry.js +7 -4
- package/dist/stt/sttInstallEntry.js.map +1 -1
- package/dist/utils/runnersScreenPlan.d.ts +18 -7
- package/dist/utils/runnersScreenPlan.d.ts.map +1 -1
- package/dist/utils/runnersScreenPlan.js +22 -7
- package/dist/utils/runnersScreenPlan.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.getServiceNames = getServiceNames;
|
|
37
37
|
exports.renderSystemdLinkUnit = renderSystemdLinkUnit;
|
|
38
38
|
exports.renderSystemdPueuedUnit = renderSystemdPueuedUnit;
|
|
39
|
+
exports.getLaunchdProgramArguments = getLaunchdProgramArguments;
|
|
39
40
|
exports.renderLaunchdPlist = renderLaunchdPlist;
|
|
40
41
|
exports.planLaunchdJobs = planLaunchdJobs;
|
|
41
42
|
exports.parseLingerState = parseLingerState;
|
|
@@ -49,8 +50,8 @@ const path = __importStar(require("path"));
|
|
|
49
50
|
*
|
|
50
51
|
* Linux two systemd USER units (no root); `KillMode=process` on the link: stopping it ends the launcher and nothing else, and the
|
|
51
52
|
* commands it started (a lease watcher among them) see the closed pipe and finish by themselves — they are not killed with it.
|
|
52
|
-
* macOS two launchd jobs: LaunchAgents (run while the account is logged in, switched away included), or —
|
|
53
|
-
* with `UserName=<account>` (always, also logged out; they run as that account, with no extra rights). `AbandonProcessGroup`
|
|
53
|
+
* macOS two launchd jobs: LaunchAgents (run while the account is logged in, switched away included), or — installed by the admin pairing line
|
|
54
|
+
* (`adminService.ts`) — LaunchDaemons with `UserName=<account>` (always, also logged out; they run as that account, with no extra rights). `AbandonProcessGroup`
|
|
54
55
|
* keeps launchd from killing what the link started when the link ends. Pueue runs at `nice`, never `taskpolicy -b` (on Apple
|
|
55
56
|
* Silicon that pins jobs to the efficiency cores).
|
|
56
57
|
*/
|
|
@@ -114,8 +115,27 @@ function renderSystemdPueuedUnit(paths) {
|
|
|
114
115
|
function escapeXml(text) {
|
|
115
116
|
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
116
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* What launchd opens or enters ITSELF, as root, before it hands a LaunchDaemon to its `UserName` (whether it does so before or after the
|
|
120
|
+
* switch is not documented): none of it may be a path the account can swap for a link. So a daemon names `/dev/null` for its output, no
|
|
121
|
+
* `WorkingDirectory`, and runs its program through `sh`, which — already the account — enters the home, opens the log by `>>` and execs
|
|
122
|
+
* the program. A LaunchAgent is launchd's job in the account's own domain and needs none of this.
|
|
123
|
+
*/
|
|
124
|
+
const daemonOutputPath = '/dev/null';
|
|
125
|
+
const daemonShell = '/bin/sh';
|
|
126
|
+
/**
|
|
127
|
+
* `$0` is the log, `$1` the home, the rest the program: the account's shell makes the log's folder (it cannot be left to anyone else: a
|
|
128
|
+
* failure to open the log goes to `/dev/null`, and a job that restarts every 10 s without a word is the worst way to fail), enters the
|
|
129
|
+
* home, then execs the program with its output in the log.
|
|
130
|
+
*/
|
|
131
|
+
const daemonShellScript = 'mkdir -p "${0%/*}" && cd "$1" && shift && exec "$@" >> "$0" 2>&1';
|
|
132
|
+
/** The program and arguments launchd starts: the job's own for a LaunchAgent, the account's shell around them for a LaunchDaemon. */
|
|
133
|
+
function getLaunchdProgramArguments(spec) {
|
|
134
|
+
return spec.userName === null ? spec.programArguments : [daemonShell, '-c', daemonShellScript, spec.logPath, spec.homeDir, ...spec.programArguments];
|
|
135
|
+
}
|
|
117
136
|
/** @description The property list of one launchd job. */
|
|
118
137
|
function renderLaunchdPlist(spec) {
|
|
138
|
+
const isDaemon = spec.userName !== null;
|
|
119
139
|
const pathValue = [...new Set([path.join(spec.homeDir, '.charness-runner', 'bin'), spec.nodeDir, ...systemPathDirs])].join(':');
|
|
120
140
|
const entry = (key, value) => ` <key>${key}</key><string>${escapeXml(value)}</string>`;
|
|
121
141
|
return [
|
|
@@ -126,7 +146,7 @@ function renderLaunchdPlist(spec) {
|
|
|
126
146
|
` <key>Label</key><string>${escapeXml(spec.label)}</string>`,
|
|
127
147
|
' <key>ProgramArguments</key>',
|
|
128
148
|
' <array>',
|
|
129
|
-
...spec.
|
|
149
|
+
...getLaunchdProgramArguments(spec).map((argument) => ` <string>${escapeXml(argument)}</string>`),
|
|
130
150
|
' </array>',
|
|
131
151
|
...(spec.userName === null ? [] : [` <key>UserName</key><string>${escapeXml(spec.userName)}</string>`]),
|
|
132
152
|
' <key>RunAtLoad</key><true/>',
|
|
@@ -134,7 +154,7 @@ function renderLaunchdPlist(spec) {
|
|
|
134
154
|
` <key>ThrottleInterval</key><integer>${throttleSeconds}</integer>`,
|
|
135
155
|
' <key>AbandonProcessGroup</key><true/>',
|
|
136
156
|
...(spec.niceness === null ? [] : [` <key>Nice</key><integer>${spec.niceness}</integer>`]),
|
|
137
|
-
` <key>WorkingDirectory</key><string>${escapeXml(spec.homeDir)}</string
|
|
157
|
+
...(isDaemon ? [] : [` <key>WorkingDirectory</key><string>${escapeXml(spec.homeDir)}</string>`]),
|
|
138
158
|
' <key>EnvironmentVariables</key>',
|
|
139
159
|
' <dict>',
|
|
140
160
|
entry('HOME', spec.homeDir),
|
|
@@ -142,8 +162,8 @@ function renderLaunchdPlist(spec) {
|
|
|
142
162
|
entry('LOGNAME', spec.accountName),
|
|
143
163
|
entry('PATH', pathValue),
|
|
144
164
|
' </dict>',
|
|
145
|
-
` <key>StandardOutPath</key><string>${escapeXml(spec.logPath)}</string>`,
|
|
146
|
-
` <key>StandardErrorPath</key><string>${escapeXml(spec.logPath)}</string>`,
|
|
165
|
+
` <key>StandardOutPath</key><string>${escapeXml(isDaemon ? daemonOutputPath : spec.logPath)}</string>`,
|
|
166
|
+
` <key>StandardErrorPath</key><string>${escapeXml(isDaemon ? daemonOutputPath : spec.logPath)}</string>`,
|
|
147
167
|
'</dict>',
|
|
148
168
|
'</plist>',
|
|
149
169
|
'',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceUnits.js","sourceRoot":"","sources":["../../src/runnerUtility/serviceUnits.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,0CASC;AAOD,sDAmBC;AAED,0DAiBC;
|
|
1
|
+
{"version":3,"file":"serviceUnits.js","sourceRoot":"","sources":["../../src/runnerUtility/serviceUnits.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { type PairCodePayload } from './pairCode';
|
|
2
|
-
/** @description The
|
|
2
|
+
/** @description The account the admin line pairs unless the operator changes its last word. */
|
|
3
|
+
export declare const defaultRunnerAccount = "runner";
|
|
4
|
+
/** @description Is `name` a plain account name (letters, digits, `.`, `_`, `-`; no leading `-`)? The admin line refuses anything else. */
|
|
5
|
+
export declare function checkIsAccountName(name: string): boolean;
|
|
6
|
+
/** @description The command to paste on the runner machine, as the account that will run jobs, for the pairing `payload`. */
|
|
3
7
|
export declare function buildBootstrapLine(payload: PairCodePayload): string;
|
|
8
|
+
/**
|
|
9
|
+
* @description The command to paste in an ADMIN account's terminal on the runner machine: it checks `account`, pairs it, and installs its
|
|
10
|
+
* always-on service. `account` is the line's last word, so the operator can change it by hand.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildAdminBootstrapLine(payload: PairCodePayload, account?: string): string;
|
|
4
13
|
//# sourceMappingURL=bootstrapLine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapLine.d.ts","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrapLine.d.ts","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAuDlE,+FAA+F;AAC/F,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAK7C,0IAA0I;AAC1I,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAkDD,6HAA6H;AAC7H,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAGnE;AA2BD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE,MAA6B,GAAG,MAAM,CAGhH"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultRunnerAccount = void 0;
|
|
4
|
+
exports.checkIsAccountName = checkIsAccountName;
|
|
3
5
|
exports.buildBootstrapLine = buildBootstrapLine;
|
|
6
|
+
exports.buildAdminBootstrapLine = buildAdminBootstrapLine;
|
|
7
|
+
const adminCheck_1 = require("../runnerUtility/adminCheck");
|
|
8
|
+
const pairArgs_1 = require("../runnerUtility/pairArgs");
|
|
4
9
|
const gateProtocol_1 = require("./gateProtocol");
|
|
5
10
|
const pairCode_1 = require("./pairCode");
|
|
6
11
|
/**
|
|
7
|
-
* @description The
|
|
8
|
-
*
|
|
9
|
-
* charness package through the gate's `bootstrap` request,
|
|
10
|
-
* pairing code and the id of the archive
|
|
12
|
+
* @description The lines the operator runs on the runner machine. They are plain `sh` (a runner has nothing of charness yet): they
|
|
13
|
+
* write the pairing's temporary key and the hub's host key into a private temp folder (removed on exit), download the hub's own
|
|
14
|
+
* charness package through the gate's `bootstrap` request, unpack it, and hand over to the runner utility's `pair` step with the
|
|
15
|
+
* pairing code and the id of the archive they downloaded (the hub announces it in the marker line; the first step checks the archive against it). What the hub's shell printed before the gate ran (a banner, a motd) is skipped: the answer opens with the marker line,
|
|
11
16
|
* which `grep -b` finds among the first {@link maxGateNoiseBytes} bytes, and the archive is cut out from the byte after it.
|
|
12
17
|
*
|
|
13
18
|
* Contract with the runner utility: `runnerCli.js pair --bootstrap <unpacked folder> --archive <file> --package-id <id> <code>` is started with a package that has NO
|
|
@@ -16,6 +21,26 @@ const pairCode_1 = require("./pairCode");
|
|
|
16
21
|
*
|
|
17
22
|
* Every value in the line passed a strict pattern (`pairCode.ts`) that has no quote, space, `$`, backtick or backslash; the line
|
|
18
23
|
* itself is wrapped in single quotes and so holds none.
|
|
24
|
+
*
|
|
25
|
+
* The PLAIN line ({@link buildBootstrapLine}) is run as the runner account itself: all of it is that account's.
|
|
26
|
+
*
|
|
27
|
+
* The ADMIN line ({@link buildAdminBootstrapLine}), `sudo sh -c '<script>' sh <account>`, is run from an admin account and does everything
|
|
28
|
+
* for the account named by its last word. The runner account runs the agents' code, so ROOT never executes, reads through or writes into
|
|
29
|
+
* anything that account can change. As root the script (1) checks the account (it exists; not root; not an admin; the OS is known),
|
|
30
|
+
* (2) downloads the package into a folder of ITS OWN in `/tmp` — root-owned, readable by the account, extracted with `--no-same-owner`
|
|
31
|
+
* — (3) has the account pair itself from that copy (`sudo -u <account> -H node …/runnerCli.js pair`: its files are the account's, never
|
|
32
|
+
* root's), and (4) runs the root step from the same root-owned copy (`rootServiceCli.js install <account>`: Node built-ins only, because
|
|
33
|
+
* the copy has no dependencies — it installs the always-on service, and touches the account's side only through `sudo -u`, see
|
|
34
|
+
* `runnerUtility/adminService.ts`). The pairing code stays single use, 10 minutes, a secret; sudo logs the command line, so a code that
|
|
35
|
+
* is neither used nor closed stays live in that log until it runs out: a refused line (no such account, an admin account) leaves it open ON
|
|
36
|
+
* PURPOSE — the operator fixes the last word and pastes the same line again — and an already-paired account's line closes its own code (the
|
|
37
|
+
* gate's `cancel`). Nothing creates an account. Run again for an account that is already paired, the line pairs nothing twice and installs
|
|
38
|
+
* the service — that is its way to retry.
|
|
39
|
+
*
|
|
40
|
+
* What the admin line trusts: the charness host. The line is text the host made, and the program root runs from it is the one in the host's
|
|
41
|
+
* own install, so whoever can change that install (its user, and the agents that run as that user) controls code that runs as root on the
|
|
42
|
+
* runner machine — and what it installs outlasts the paste. The plain line trusts the host only with the runner account. Every place that
|
|
43
|
+
* offers the line says so: the Telegram message (`runners.pairingAdminIntro`) and the CLI's text (`adminLineTrustSentence` in `runnersCli.ts`).
|
|
19
44
|
*/
|
|
20
45
|
const minNodeMajor = 22;
|
|
21
46
|
const minNodeMinor = 12;
|
|
@@ -26,12 +51,28 @@ const privateKeyFooter = '-----END OPENSSH PRIVATE KEY-----';
|
|
|
26
51
|
const connectTimeoutSeconds = 20;
|
|
27
52
|
/** The marker line of a `bootstrap` answer as an extended regular expression: the marker, the request, optional `key=value` fields. */
|
|
28
53
|
const bootstrapMarkerPattern = `^${gateProtocol_1.gateMarker} bootstrap( [a-z]+=[A-Za-z0-9._:@/-]*)*$`;
|
|
54
|
+
const runnerCliInPackage = 'dist/runnerUtility/runnerCli.js';
|
|
55
|
+
const rootServiceCliInPackage = 'dist/runnerUtility/rootServiceCli.js';
|
|
56
|
+
/** Where the admin line's root-owned copy is made: a folder the account can read, which `$TMPDIR` (the admin's own, private) is not. */
|
|
57
|
+
const adminCopyBase = '/tmp';
|
|
29
58
|
function getPrivateKeyBody(privateKey) {
|
|
30
59
|
return privateKey.replace(privateKeyHeader, '').replace(privateKeyFooter, '').replace(/\s+/g, '');
|
|
31
60
|
}
|
|
32
|
-
/** @description The
|
|
33
|
-
|
|
34
|
-
|
|
61
|
+
/** @description The account the admin line pairs unless the operator changes its last word. */
|
|
62
|
+
exports.defaultRunnerAccount = 'runner';
|
|
63
|
+
/** The characters of an account name the admin line lets through (a character class body): none is special to a shell, and a name never starts with `-`. */
|
|
64
|
+
const accountNameChars = 'A-Za-z0-9._-';
|
|
65
|
+
const accountNamePattern = new RegExp(`^(?!-)[${accountNameChars}]+$`);
|
|
66
|
+
/** @description Is `name` a plain account name (letters, digits, `.`, `_`, `-`; no leading `-`)? The admin line refuses anything else. */
|
|
67
|
+
function checkIsAccountName(name) {
|
|
68
|
+
return accountNamePattern.test(name);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The steps that make the package ready in `$d/pkg` (and its archive in `$d/package.tgz`): `sh` that needs nothing of charness. `isForAccount`:
|
|
72
|
+
* the copy is made by ROOT for an account to read — its folder is world-readable (the key files in it stay 0600), the archive and the
|
|
73
|
+
* package are extracted readable, and without taking the owner from the archive, so root's copy stays root's.
|
|
74
|
+
*/
|
|
75
|
+
function renderFetchSteps(payload, isForAccount) {
|
|
35
76
|
const sshOptions = [
|
|
36
77
|
'-T', '-F /dev/null', '-i "$d/key"',
|
|
37
78
|
'-o BatchMode=yes', '-o IdentitiesOnly=yes', '-o IdentityAgent=none',
|
|
@@ -39,10 +80,10 @@ function buildBootstrapLine(payload) {
|
|
|
39
80
|
`-o HostKeyAlias=${hubHostAlias}`, `-o ConnectTimeout=${connectTimeoutSeconds}`,
|
|
40
81
|
'-p "$p"',
|
|
41
82
|
].join(' ');
|
|
42
|
-
|
|
43
|
-
'set -eu',
|
|
83
|
+
return [
|
|
44
84
|
'umask 077',
|
|
45
|
-
|
|
85
|
+
`d=$(mktemp -d "${isForAccount ? adminCopyBase : '${TMPDIR:-/tmp}'}/charness-runner.XXXXXXXX")`,
|
|
86
|
+
...(isForAccount ? ['chmod 755 "$d"'] : []),
|
|
46
87
|
'trap "rm -rf \\"$d\\"" EXIT',
|
|
47
88
|
'trap "exit 1" INT TERM',
|
|
48
89
|
`u="${payload.user}"`,
|
|
@@ -50,20 +91,64 @@ function buildBootstrapLine(payload) {
|
|
|
50
91
|
`p="${payload.port}"`,
|
|
51
92
|
`k="${payload.hostKey}"`,
|
|
52
93
|
`b="${getPrivateKeyBody(payload.privateKey)}"`,
|
|
53
|
-
`command -v node >/dev/null 2>&1 && node -e "var v=process.versions.node.split(/[.]/);process.exit(v[0]>${minNodeMajor}||v[0]==${minNodeMajor}&&v[1]>=${minNodeMinor}?0:1)" || { echo "charness-runner: Node.js ${minNodeMajor}.${minNodeMinor} or newer is needed on this machine (https://nodejs.org)" >&2; exit 1; }`,
|
|
94
|
+
`command -v node >/dev/null 2>&1 && node -e "var v=process.versions.node.split(/[.]/);process.exit(v[0]>${minNodeMajor}||v[0]==${minNodeMajor}&&v[1]>=${minNodeMinor}?0:1)" || { echo "charness-runner: ${isForAccount ? `sudo finds no Node.js ${minNodeMajor}.${minNodeMinor} or newer on its PATH (install it system-wide)` : `Node.js ${minNodeMajor}.${minNodeMinor} or newer is needed on this machine (https://nodejs.org)`}" >&2; exit 1; }`,
|
|
54
95
|
`{ printf "%s\\n" "${privateKeyHeader}"; printf "%s" "$b" | fold -w ${privateKeyFoldWidth}; printf "\\n%s\\n" "${privateKeyFooter}"; } > "$d/key"`,
|
|
55
96
|
`printf "%s %s\\n" ${hubHostAlias} "$k" > "$d/kh"`,
|
|
56
|
-
`ssh ${sshOptions} "$u@$h" bootstrap > "$d/answer"`,
|
|
97
|
+
`ssh ${sshOptions} "$u@$h" bootstrap > "$d/answer" || { echo "charness-runner: the hub refused or did not answer (has the line expired or been used already? the ssh message above says which)" >&2; exit 1; }`,
|
|
57
98
|
`hit=$(head -c ${gateProtocol_1.maxGateNoiseBytes} "$d/answer" | LC_ALL=C grep -a -b -o -E -e "${bootstrapMarkerPattern}" | head -n 1)`,
|
|
58
99
|
'[ -n "$hit" ] || { echo "charness-runner: the hub did not send the package (has the line expired or been used already?)" >&2; exit 1; }',
|
|
59
100
|
'o=${hit%%:*}; t=${hit#*:}',
|
|
101
|
+
...(isForAccount ? ['umask 022'] : []),
|
|
60
102
|
'tail -c +$((o + ${#t} + 2)) "$d/answer" > "$d/package.tgz"',
|
|
61
103
|
'mkdir "$d/pkg"',
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
104
|
+
`tar ${isForAccount ? '--no-same-owner ' : ''}-xzf "$d/package.tgz" -C "$d/pkg"`,
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
/** The `pair` command on the unpacked package, for the pairing `code`. */
|
|
108
|
+
function renderPairCommand(code, isServiceFollowing) {
|
|
109
|
+
return `"$d/pkg/${runnerCliInPackage}" pair --bootstrap "$d/pkg" --archive "$d/package.tgz" --package-id "\${t##*id=}"${isServiceFollowing ? ` ${pairArgs_1.serviceFollowsFlag}` : ''} ${code}`;
|
|
110
|
+
}
|
|
111
|
+
function checkScriptHasNoQuote(script, what) {
|
|
65
112
|
if (script.includes("'"))
|
|
66
|
-
throw new Error(
|
|
67
|
-
return
|
|
113
|
+
throw new Error(`the ${what} script must not hold a single quote`);
|
|
114
|
+
return script;
|
|
115
|
+
}
|
|
116
|
+
/** @description The command to paste on the runner machine, as the account that will run jobs, for the pairing `payload`. */
|
|
117
|
+
function buildBootstrapLine(payload) {
|
|
118
|
+
const script = [...renderFetchSteps(payload, false), `node ${renderPairCommand((0, pairCode_1.encodePairCode)(payload), false)}`];
|
|
119
|
+
return `sh -c '${checkScriptHasNoQuote(['set -eu', ...script].join('; '), 'bootstrap')}'`;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The admin script. `$1` is the account. Messages are plain ASCII with no apostrophe (the whole line sits in single quotes) and short: the
|
|
123
|
+
* line plus its text must fit one Telegram message.
|
|
124
|
+
*/
|
|
125
|
+
function renderAdminScript(payload) {
|
|
126
|
+
const checks = [
|
|
127
|
+
'f() { echo "charness-runner: $*" >&2; exit 1; }',
|
|
128
|
+
'a=$1',
|
|
129
|
+
'[ "$(id -u)" = 0 ] || f "run this line with sudo"',
|
|
130
|
+
`case $a in ""|-*|*[!${accountNameChars}]*) f "$a is not an account name";; esac`,
|
|
131
|
+
'i=$(id -u "$a" 2>/dev/null) || f "no account $a here: create a standard user or fix the last word"',
|
|
132
|
+
'[ "$i" != 0 ] || f "$a is root: use a standard user"',
|
|
133
|
+
`case $(uname -s) in Darwin) g="${adminCheck_1.macAdminGroup}";; Linux) g="${adminCheck_1.linuxAdminGroups.join(' ')}";; *) f "only macOS and Linux";; esac`,
|
|
134
|
+
'gs=$(id -Gn "$a") || f "no groups for $a"',
|
|
135
|
+
'for x in $gs; do case " $g " in *" $x "*) f "$a is an admin: the agents code runs with its rights";; esac; done',
|
|
136
|
+
];
|
|
137
|
+
const steps = [
|
|
138
|
+
...renderFetchSteps(payload, true),
|
|
139
|
+
'n=$(command -v node)',
|
|
140
|
+
`sudo -u "$a" -H "$n" ${renderPairCommand((0, pairCode_1.encodePairCode)(payload), true)}`,
|
|
141
|
+
`"$n" "$d/pkg/${rootServiceCliInPackage}" install "$a" || f "$a is paired, but has no service: fix the above and paste a fresh admin line"`,
|
|
142
|
+
];
|
|
143
|
+
return checkScriptHasNoQuote(['set -eu', ...checks, ...steps].join('; '), 'admin');
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* @description The command to paste in an ADMIN account's terminal on the runner machine: it checks `account`, pairs it, and installs its
|
|
147
|
+
* always-on service. `account` is the line's last word, so the operator can change it by hand.
|
|
148
|
+
*/
|
|
149
|
+
function buildAdminBootstrapLine(payload, account = exports.defaultRunnerAccount) {
|
|
150
|
+
if (!checkIsAccountName(account))
|
|
151
|
+
throw new Error('the runner account must be a plain account name');
|
|
152
|
+
return `sudo sh -c '${renderAdminScript(payload)}' sh ${account}`;
|
|
68
153
|
}
|
|
69
154
|
//# sourceMappingURL=bootstrapLine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapLine.js","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrapLine.js","sourceRoot":"","sources":["../../src/runners/bootstrapLine.ts"],"names":[],"mappings":";;;AAiEA,gDAEC;AAmDD,gDAGC;AA+BD,0DAGC;AA3JD,4DAA8E;AAC9E,wDAA+D;AAC/D,iDAA+D;AAC/D,yCAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAC/D,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAC7D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,uIAAuI;AACvI,MAAM,sBAAsB,GAAG,IAAI,yBAAU,0CAA0C,CAAC;AACxF,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;AAC7D,MAAM,uBAAuB,GAAG,sCAAsC,CAAC;AACvE,wIAAwI;AACxI,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpG,CAAC;AAED,+FAA+F;AAClF,QAAA,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,4JAA4J;AAC5J,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,UAAU,gBAAgB,KAAK,CAAC,CAAC;AAEvE,0IAA0I;AAC1I,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAwB,EAAE,YAAqB;IACvE,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,cAAc,EAAE,aAAa;QACnC,kBAAkB,EAAE,uBAAuB,EAAE,uBAAuB;QACpE,8BAA8B,EAAE,+BAA+B,EAAE,mCAAmC;QACpG,mBAAmB,YAAY,EAAE,EAAE,qBAAqB,qBAAqB,EAAE;QAC/E,SAAS;KACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO;QACL,WAAW;QACX,kBAAkB,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,6BAA6B;QAC/F,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,6BAA6B;QAC7B,wBAAwB;QACxB,MAAM,OAAO,CAAC,IAAI,GAAG;QACrB,MAAM,OAAO,CAAC,IAAI,GAAG;QACrB,MAAM,OAAO,CAAC,IAAI,GAAG;QACrB,MAAM,OAAO,CAAC,OAAO,GAAG;QACxB,MAAM,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG;QAC9C,0GAA0G,YAAY,WAAW,YAAY,WAAW,YAAY,sCAAsC,YAAY,CAAC,CAAC,CAAC,yBAAyB,YAAY,IAAI,YAAY,gDAAgD,CAAC,CAAC,CAAC,WAAW,YAAY,IAAI,YAAY,0DAA0D,kBAAkB;QACpb,qBAAqB,gBAAgB,iCAAiC,mBAAmB,wBAAwB,gBAAgB,iBAAiB;QAClJ,qBAAqB,YAAY,iBAAiB;QAClD,OAAO,UAAU,8LAA8L;QAC/M,iBAAiB,gCAAiB,gDAAgD,sBAAsB,gBAAgB;QACxH,yIAAyI;QACzI,2BAA2B;QAC3B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,4DAA4D;QAC5D,gBAAgB;QAChB,OAAO,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,mCAAmC;KACjF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,iBAAiB,CAAC,IAAY,EAAE,kBAA2B;IAClE,OAAO,WAAW,kBAAkB,oFAAoF,kBAAkB,CAAC,CAAC,CAAC,IAAI,6BAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;AACvL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,IAAY;IACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,sCAAsC,CAAC,CAAC;IAC7F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6HAA6H;AAC7H,SAAgB,kBAAkB,CAAC,OAAwB;IACzD,MAAM,MAAM,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,QAAQ,iBAAiB,CAAC,IAAA,yBAAc,EAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAClH,OAAO,UAAU,qBAAqB,CAAC,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC;AAC5F,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,OAAwB;IACjD,MAAM,MAAM,GAAG;QACb,iDAAiD;QACjD,MAAM;QACN,mDAAmD;QACnD,uBAAuB,gBAAgB,0CAA0C;QACjF,oGAAoG;QACpG,sDAAsD;QACtD,kCAAkC,0BAAa,iBAAiB,6BAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,wCAAwC;QAClI,2CAA2C;QAC3C,iHAAiH;KAClH,CAAC;IACF,MAAM,KAAK,GAAG;QACZ,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;QAClC,sBAAsB;QACtB,wBAAwB,iBAAiB,CAAC,IAAA,yBAAc,EAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;QAC1E,gBAAgB,uBAAuB,oGAAoG;KAC5I,CAAC;IACF,OAAO,qBAAqB,CAAC,CAAC,SAAS,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,OAAwB,EAAE,UAAkB,4BAAoB;IACtG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrG,OAAO,eAAe,iBAAiB,CAAC,OAAO,CAAC,QAAQ,OAAO,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAQL,KAAK,WAAW,EAGjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAmB/D,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,qHAAqH;AACrH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAUtE;AAED,uIAAuI;AACvI,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAGtH;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,+CAA+C;IAC/C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACxC;AA4FD,qGAAqG;AACrG,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoD3I"}
|
package/dist/runners/gate.js
CHANGED
|
@@ -125,6 +125,13 @@ function safeParseJson(text) {
|
|
|
125
125
|
return null;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
+
/** `cancel`: the line that held this code is done without using it (an admin line pasted again for a machine that is already paired). Idempotent. */
|
|
129
|
+
async function handleCancel(ctx, pairId, io, now) {
|
|
130
|
+
const reply = { ok: await (0, hubPairing_1.cancelPairing)(ctx, pairId, now()) };
|
|
131
|
+
io.stdout.write((0, gateProtocol_1.formatGateAnswerHead)('cancel'));
|
|
132
|
+
io.stdout.write(`${JSON.stringify(reply)}\n`);
|
|
133
|
+
return 0;
|
|
134
|
+
}
|
|
128
135
|
async function handleUnpair(ctx, runnerId, io, now) {
|
|
129
136
|
const removed = await (0, hubPairing_1.removePairedRunner)(ctx, runnerId, now());
|
|
130
137
|
if (removed !== null)
|
|
@@ -183,6 +190,8 @@ async function runRunnerGate(argv, env, io, options = {}) {
|
|
|
183
190
|
}
|
|
184
191
|
return await writePackage(ctx, io, 'bootstrap');
|
|
185
192
|
}
|
|
193
|
+
if (request === 'cancel')
|
|
194
|
+
return await handleCancel(ctx, invocation.pairId, io, now);
|
|
186
195
|
return await handleRedeem(ctx, invocation.pairId, io, now);
|
|
187
196
|
}
|
|
188
197
|
// The key line is only the way in: a runner that left the registry is refused whatever its line (or an ssh connection it already
|
package/dist/runners/gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/runners/gate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,sCAUC;AAGD,4CAGC;AA2GD,sCAoDC;AA5ND,2CAA6B;AAC7B,8CAA2C;AAE3C,qDAA4D;AAC5D,oDAAsD;AACtD,yCAA+D;AAC/D,iDAWwB;AACxB,qCAAwC;AACxC,yCAA+D;AAC/D,+CAAiD;AACjD,6CAA6D;AAC7D,6CAAiJ;AACjJ,+CAA8C;AAE9C;;;;;;;;GAQG;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,cAAc,GAAG,CAAC,CAAC;AAQzB,qHAAqH;AACrH,SAAgB,aAAa,CAAC,IAAuB;IACnD,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnE,IAAI,OAAO,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+EAA+E,EAAE,CAAC;IAC/G,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qDAAqD,EAAE,CAAC;IAC5I,IAAI,CAAC,qBAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACpF,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;IACzG,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;IACxG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;AACnE,CAAC;AAED,uIAAuI;AACvI,SAAgB,gBAAgB,CAAC,IAA4B,EAAE,eAAmC;IAChG,MAAM,OAAO,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,mCAAoB,CAAC,CAAC,CAAC,gCAAiB,CAAC;IAChF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC;AACxE,CAAC;AAgBD,KAAK,UAAU,eAAe,CAAC,MAAgB,EAAE,QAAgB;IAC/D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,KAAK,GAAG,QAAQ;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,6IAA6I;AAC7I,KAAK,UAAU,YAAY,CAAC,GAAe,EAAE,EAAU,EAAE,OAAgC;IACvF,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAc,EAAC,GAAG,CAAC,CAAC;IACzC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAoB,EAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,IAAA,mBAAQ,EAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAe,EAAE,MAAc,EAAE,EAAU,EAAE,GAAiB;IACxF,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,kCAAmB,CAAC,CAAC;IAClE,IAAI,KAAkB,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,kCAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtD,KAAK,GAAG,OAAO,CAAC,OAAO;YACrB,CAAC,CAAC,MAAM,IAAA,0BAAa,EAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,kBAAkB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YACxF,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACjK,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAoB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;AACvC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qJAAqJ;AACrJ,KAAK,UAAU,YAAY,CAAC,GAAe,EAAE,MAAc,EAAE,EAAU,EAAE,GAAiB;IACxF,MAAM,KAAK,GAAgB,EAAE,EAAE,EAAE,MAAM,IAAA,0BAAa,EAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC3E,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAoB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAe,EAAE,QAAgB,EAAE,EAAU,EAAE,GAAiB;IAC1F,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAkB,EAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,IAAI,OAAO,KAAK,IAAI;QAAE,IAAA,2BAAa,EAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,KAAK,GAAgB,EAAE,EAAE,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;IACpD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAoB,EAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,iIAAiI;AACjI,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,YAAY,8BAAgB,IAAI,KAAK,YAAY,yCAAwB;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACzG,OAAO,mBAAmB,IAAA,kCAAkB,EAAC,KAAK,CAAC,GAAG,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAe,EAAE,QAAgB,EAAE,EAAU;IACzE,MAAM,KAAK,GAAG,IAAA,mCAAsB,EAAC,GAAG,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAoB,EAAC,UAAU,CAAC,CAAC,CAAC;IAClD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAe,EAAE,EAAU;IACtD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,mCAAoB,EAAC,SAAS,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,8BAAe,EAAE,CAAC,CAAC,CAAC;IAClH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAe,EAAE,GAA2B;IACtE,IAAI,CAAC;QACH,OAAO,IAAA,0BAAa,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,iCAAiC,eAAe,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,qGAAqG;AAC9F,KAAK,UAAU,aAAa,CAAC,IAAuB,EAAE,GAAsB,EAAE,EAAU,EAAE,UAAuB,EAAE;IACxH,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC9B,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC5E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,EAAE,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAChE,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,MAAM,GAAG,GAAG,IAAA,2BAAgB,EAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACpC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAA,+BAAkB,EAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;oBACvD,EAAE,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;oBACjE,OAAO,eAAe,CAAC;gBACzB,CAAC;gBACD,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,OAAO,KAAK,QAAQ;gBAAE,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACrF,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,iIAAiI;QACjI,iIAAiI;QACjI,8HAA8H;QAC9H,+CAA+C;QAC/C,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,UAAU,IAAI,CAAC,IAAA,gCAAmB,EAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrG,EAAE,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAClD,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,IAAA,sBAAW,EAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YACnM,KAAK,SAAS;gBACZ,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAChD,KAAK,SAAS;gBACZ,OAAO,MAAM,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,UAAU;gBACb,OAAO,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5D,KAAK,QAAQ;gBACX,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/D;gBACE,OAAO,eAAe,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,GAAG,CAAC,WAAW,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -21,7 +21,7 @@ import { z } from 'zod';
|
|
|
21
21
|
*/
|
|
22
22
|
/** The text every marker line starts with; the `1` is the protocol version. */
|
|
23
23
|
export declare const gateMarker = "--charness-gate-1--";
|
|
24
|
-
export declare const gateRequests: readonly ["bootstrap", "redeem", "link", "package", "version", "identity", "unpair"];
|
|
24
|
+
export declare const gateRequests: readonly ["bootstrap", "redeem", "cancel", "link", "package", "version", "identity", "unpair"];
|
|
25
25
|
/** @name GateRequest @description One of the words a runner may send. */
|
|
26
26
|
export type GateRequest = (typeof gateRequests)[number];
|
|
27
27
|
export declare const temporaryKeyRequests: readonly GateRequest[];
|
|
@@ -93,6 +93,12 @@ export type RedeemReply = z.infer<typeof redeemReplySchema>;
|
|
|
93
93
|
export declare const unpairReplySchema: z.ZodObject<{
|
|
94
94
|
ok: z.ZodBoolean;
|
|
95
95
|
}, z.core.$strict>;
|
|
96
|
+
/** `ok`: the code was open and is closed now; `false`: there was nothing to close (spent, expired, or cancelled already). */
|
|
97
|
+
export declare const cancelReplySchema: z.ZodObject<{
|
|
98
|
+
ok: z.ZodBoolean;
|
|
99
|
+
}, z.core.$strict>;
|
|
100
|
+
/** @name CancelReply @description What `cancel` answers. */
|
|
101
|
+
export type CancelReply = z.infer<typeof cancelReplySchema>;
|
|
96
102
|
/** @name UnpairReply @description What `unpair` answers. */
|
|
97
103
|
export type UnpairReply = z.infer<typeof unpairReplySchema>;
|
|
98
104
|
//# sourceMappingURL=gateProtocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateProtocol.d.ts","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"gateProtocol.d.ts","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;;;;;;;;;GAkBG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,gGAAiG,CAAC;AAC3H,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB,EAAE,SAAS,WAAW,EAAsC,CAAC;AAC9F,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EAAyD,CAAC;AAE9G,0FAA0F;AAC1F,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,wGAAwG;AACxG,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAK7C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAEhH;AAMD,2HAA2H;AAC3H,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,MAAM,CAGhH;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,yGAAyG;AACzG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CASnE;AAGD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAE,MAA0B,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAsCrJ;AAID,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAU9B,CAAC;AACH,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;0BAa5B,CAAC;AACH,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;kBAAsC,CAAC;AAErE,6HAA6H;AAC7H,eAAO,MAAM,iBAAiB;;kBAAsC,CAAC;AACrE,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.unpairReplySchema = exports.redeemReplySchema = exports.redeemRequestSchema = exports.maxGateNoiseBytes = exports.maxGateRequestBytes = exports.linkUserName = exports.noPackageMarker = exports.runnerKeyRequests = exports.temporaryKeyRequests = exports.gateRequests = exports.gateMarker = void 0;
|
|
3
|
+
exports.cancelReplySchema = exports.unpairReplySchema = exports.redeemReplySchema = exports.redeemRequestSchema = exports.maxGateNoiseBytes = exports.maxGateRequestBytes = exports.linkUserName = exports.noPackageMarker = exports.runnerKeyRequests = exports.temporaryKeyRequests = exports.gateRequests = exports.gateMarker = void 0;
|
|
4
4
|
exports.formatGateAnswerHead = formatGateAnswerHead;
|
|
5
5
|
exports.formatGateMarkerLine = formatGateMarkerLine;
|
|
6
6
|
exports.parseGateMarkerLine = parseGateMarkerLine;
|
|
@@ -31,8 +31,8 @@ const hubRegistry_1 = require("./hubRegistry");
|
|
|
31
31
|
*/
|
|
32
32
|
/** The text every marker line starts with; the `1` is the protocol version. */
|
|
33
33
|
exports.gateMarker = '--charness-gate-1--';
|
|
34
|
-
exports.gateRequests = ['bootstrap', 'redeem', 'link', 'package', 'version', 'identity', 'unpair'];
|
|
35
|
-
exports.temporaryKeyRequests = ['bootstrap', 'redeem'];
|
|
34
|
+
exports.gateRequests = ['bootstrap', 'redeem', 'cancel', 'link', 'package', 'version', 'identity', 'unpair'];
|
|
35
|
+
exports.temporaryKeyRequests = ['bootstrap', 'redeem', 'cancel'];
|
|
36
36
|
exports.runnerKeyRequests = ['link', 'package', 'version', 'identity', 'unpair'];
|
|
37
37
|
/** What a `link` / `version` answer names as the package when the hub cannot pack one. */
|
|
38
38
|
exports.noPackageMarker = 'none';
|
|
@@ -146,4 +146,6 @@ exports.redeemReplySchema = zod_1.z.discriminatedUnion('ok', [
|
|
|
146
146
|
zod_1.z.strictObject({ ok: zod_1.z.literal(false), reason: zod_1.z.string() }),
|
|
147
147
|
]);
|
|
148
148
|
exports.unpairReplySchema = zod_1.z.strictObject({ ok: zod_1.z.boolean() });
|
|
149
|
+
/** `ok`: the code was open and is closed now; `false`: there was nothing to close (spent, expired, or cancelled already). */
|
|
150
|
+
exports.cancelReplySchema = zod_1.z.strictObject({ ok: zod_1.z.boolean() });
|
|
149
151
|
//# sourceMappingURL=gateProtocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateProtocol.js","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":";;;AAkDA,oDAEC;AAOD,oDAGC;AAQD,kDASC;AAYD,kDAsCC;AAhID,6BAAwB;AACxB,8DAAiE;AACjE,qCAAuC;AACvC,uCAAoD;AACpD,+CAAmD;AAEnD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,+EAA+E;AAClE,QAAA,UAAU,GAAG,qBAAqB,CAAC;AACnC,QAAA,YAAY,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"gateProtocol.js","sourceRoot":"","sources":["../../src/runners/gateProtocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,13 @@ export interface CreatedPairing {
|
|
|
28
28
|
export declare function createPairing(ctx: HubContext, params: CreatePairingParams): Promise<CreatedPairing>;
|
|
29
29
|
/** @description Is the pairing code `pairId` still open (made, not used, not expired)? The gate asks before it sends the package. */
|
|
30
30
|
export declare function checkIsPairingOpen(ctx: HubContext, pairId: string, nowMs: number): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* @description Close the pairing code `pairId` before it runs out: its entry leaves `pending.json` and its key line `authorized_keys`, so
|
|
33
|
+
* the line it was in can no longer be used. `true` when the code was open (made, not used, not expired); `false` — and nothing changes —
|
|
34
|
+
* for one that is unknown, used or expired. The closing is NOTED first (`recordClosedCode`, in the same transaction, best effort), so the
|
|
35
|
+
* offering instance and `--wait` can tell a code that was closed — its line was used on a machine that was already paired — from one that ran out.
|
|
36
|
+
*/
|
|
37
|
+
export declare function cancelPairing(ctx: HubContext, pairId: string, nowMs: number): Promise<boolean>;
|
|
31
38
|
/**
|
|
32
39
|
* @description Forget the pairing codes that have expired (their lines are gone from `authorized_keys` too) and return them, so the
|
|
33
40
|
* offering instance can edit its messages. A code that was used but whose entry outlived a crash is dropped without being returned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hubPairing.d.ts","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,
|
|
1
|
+
{"version":3,"file":"hubPairing.d.ts","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrE,OAAO,EASL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAqBlE,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,0GAA0G;IAC1G,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;CAC1B;AA0CD,yIAAyI;AACzI,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0BnG;AAED,qIAAqI;AACrI,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAG1F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAK9F;AAED,uHAAuH;AACvH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAOjG;AAWD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAM/G;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAkC3J;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE7G;AAED,iLAAiL;AACjL,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED,mQAAmQ;AACnQ,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMjH;AAED,6JAA6J;AAC7J,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAQxH"}
|
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.createPairing = createPairing;
|
|
37
37
|
exports.checkIsPairingOpen = checkIsPairingOpen;
|
|
38
|
+
exports.cancelPairing = cancelPairing;
|
|
38
39
|
exports.sweepExpiredPairings = sweepExpiredPairings;
|
|
39
40
|
exports.sanitizeRunnerName = sanitizeRunnerName;
|
|
40
41
|
exports.pickFreeRunnerName = pickFreeRunnerName;
|
|
@@ -130,6 +131,21 @@ function checkIsPairingOpen(ctx, pairId, nowMs) {
|
|
|
130
131
|
return (0, hubRegistry_1.readPendingFile)(ctx.dir).pending.some((pairing) => pairing.pairId === pairId && pairing.expiresAtMs > nowMs)
|
|
131
132
|
&& !checkIsPairingUsed((0, hubRegistry_1.readPairedFile)(ctx.dir), pairId);
|
|
132
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* @description Close the pairing code `pairId` before it runs out: its entry leaves `pending.json` and its key line `authorized_keys`, so
|
|
136
|
+
* the line it was in can no longer be used. `true` when the code was open (made, not used, not expired); `false` — and nothing changes —
|
|
137
|
+
* for one that is unknown, used or expired. The closing is NOTED first (`recordClosedCode`, in the same transaction, best effort), so the
|
|
138
|
+
* offering instance and `--wait` can tell a code that was closed — its line was used on a machine that was already paired — from one that ran out.
|
|
139
|
+
*/
|
|
140
|
+
function cancelPairing(ctx, pairId, nowMs) {
|
|
141
|
+
return runTransaction(ctx, nowMs, (state) => {
|
|
142
|
+
const pairing = state.pending.pending.find((candidate) => candidate.pairId === pairId);
|
|
143
|
+
if (pairing === undefined || pairing.expiresAtMs <= nowMs)
|
|
144
|
+
return { result: false };
|
|
145
|
+
(0, hubRegistry_1.recordClosedCode)(ctx, pairId, nowMs);
|
|
146
|
+
return { result: true, pending: { pending: state.pending.pending.filter((candidate) => candidate.pairId !== pairId) } };
|
|
147
|
+
});
|
|
148
|
+
}
|
|
133
149
|
/**
|
|
134
150
|
* @description Forget the pairing codes that have expired (their lines are gone from `authorized_keys` too) and return them, so the
|
|
135
151
|
* offering instance can edit its messages. A code that was used but whose entry outlived a crash is dropped without being returned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hubPairing.js","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hubPairing.js","sourceRoot":"","sources":["../../src/runners/hubPairing.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,14 @@ export interface HubContext {
|
|
|
9
9
|
cliPath: string;
|
|
10
10
|
/** The folder with `package.json`, `dist/` and `remoteRun/` — the package a runner installs. */
|
|
11
11
|
packageRoot: string;
|
|
12
|
+
/** Where the hub side says that something went wrong which did NOT stop what it was doing (a leftover file it could not clean up). */
|
|
13
|
+
log: (line: string) => void;
|
|
12
14
|
}
|
|
13
15
|
export interface HubFilePaths {
|
|
14
16
|
paired: string;
|
|
15
17
|
pending: string;
|
|
18
|
+
/** The trace of the codes that were closed unused (`hubRegistry.ts`). */
|
|
19
|
+
closed: string;
|
|
16
20
|
hubKey: string;
|
|
17
21
|
hubPublicKey: string;
|
|
18
22
|
knownHosts: string;
|