@appforge-ci/admin-cli 0.3.18 → 0.3.20

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.
@@ -116,6 +116,13 @@ export declare function waitForCommandResolution(api: ApiClient, agentId: string
116
116
  * touch readiness. Only the enum is printed, never agent-reported text.
117
117
  */
118
118
  export declare function formatRebootRecoveryState(a: AgentInfo): string;
119
+ /**
120
+ * The `agents list` token for "can this Mac host a per-build remote-access VM?" (what its last heartbeat reported about its VM helper and
121
+ * Xcode image, migrations/0057, appforge-ci#901): `ok 2/2` (free VM slots out of the 2 macOS allows), `-` when the Mac did not say it can
122
+ * (an older agent, no helper, no image). Shows the Mac's last report; when the Mac is offline the status column already says so, and the
123
+ * scheduler offers it nothing then (the report counts only while its heartbeat is recent). Only numbers and fixed words are printed.
124
+ */
125
+ export declare function formatVmBuildsState(a: Pick<AgentInfo, "vmBuilds" | "vmSlotsFree">): string;
119
126
  /** The reasons behind a WARN/FAIL, one indented line each, for `agents list` to print under the agent's row. The text
120
127
  * is agent-reported, so control characters are neutralised and each line is bounded. Empty for ok / not reported. */
121
128
  export declare function formatRebootRecoveryDetails(a: AgentInfo): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,SAAS,EAmBT,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAoB3B;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE1I;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,qBAAqB,CAAC,EAC1D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAkBT;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CASjD;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,sBAAsB,CAAC,EAC3D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAUD;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC,GACvG,MAAM,CAIR;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAgC,GAC/C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAS9B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAW9D;AAED;sHACsH;AACtH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAMlE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAqBxD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAqjBtD"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,SAAS,EAoBT,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAoB3B;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAE1I;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,qBAAqB,CAAC,EAC1D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAkBT;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CASjD;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,sBAAsB,CAAC,EAC3D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAUD;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,CAAC,GACvG,MAAM,CAIR;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAgC,GAC/C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAS9B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAW9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,aAAa,CAAC,GAAG,MAAM,CAI1F;AAED;sHACsH;AACtH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,CAMlE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAqBxD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAqjBtD"}
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from "node:module";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
- import { ApiClient, computeAgentReadiness, effectiveAgentStatus, isAgentVersionCurrent, parseActiveBuildIds, parseEnforcementLevel, parseRebootRecovery, parseRebootRecoveryReasons, parseVpnFeatures, CURRENT_AGENT_VERSION, ENFORCEMENT_LEVELS, KNOWN_VPN_FEATURES, agentVpnCapabilitiesCurrent, stripControlChars, describeEnforcementLevel, describeVpnFeature, describeVpnPin, orgDisplay, vpnEligibility, } from "@appforge-ci/core";
3
+ import { ApiClient, computeAgentReadiness, effectiveAgentStatus, isAgentVersionCurrent, parseActiveBuildIds, parseEnforcementLevel, parseRebootRecovery, parseRebootRecoveryReasons, parseVpnFeatures, CURRENT_AGENT_VERSION, ENFORCEMENT_LEVELS, KNOWN_VPN_FEATURES, MACOS_VM_LIMIT, agentVpnCapabilitiesCurrent, stripControlChars, describeEnforcementLevel, describeVpnFeature, describeVpnPin, orgDisplay, vpnEligibility, } from "@appforge-ci/core";
4
4
  import { collectSystemInfo } from "@appforge-ci/agent/dist/lib/system-info.js";
5
5
  import { saveConfig as saveAgentConfig, configPath as agentConfigPath } from "@appforge-ci/agent/dist/lib/config.js";
6
6
  import { loadAdminCliConfig } from "../lib/config.js";
@@ -212,6 +212,18 @@ export function formatRebootRecoveryState(a) {
212
212
  return "-";
213
213
  }
214
214
  }
215
+ /**
216
+ * The `agents list` token for "can this Mac host a per-build remote-access VM?" (what its last heartbeat reported about its VM helper and
217
+ * Xcode image, migrations/0057, appforge-ci#901): `ok 2/2` (free VM slots out of the 2 macOS allows), `-` when the Mac did not say it can
218
+ * (an older agent, no helper, no image). Shows the Mac's last report; when the Mac is offline the status column already says so, and the
219
+ * scheduler offers it nothing then (the report counts only while its heartbeat is recent). Only numbers and fixed words are printed.
220
+ */
221
+ export function formatVmBuildsState(a) {
222
+ if (a.vmBuilds !== 1)
223
+ return "-";
224
+ const free = Math.min(MACOS_VM_LIMIT, Math.max(0, Math.floor(Number(a.vmSlotsFree ?? 0)) || 0));
225
+ return `ok ${free}/${MACOS_VM_LIMIT}`;
226
+ }
215
227
  /** The reasons behind a WARN/FAIL, one indented line each, for `agents list` to print under the agent's row. The text
216
228
  * is agent-reported, so control characters are neutralised and each line is bounded. Empty for ok / not reported. */
217
229
  export function formatRebootRecoveryDetails(a) {
@@ -247,7 +259,7 @@ export function formatAgentListLine(a) {
247
259
  // See docs/fleet-management.md's "Concurrent builds" section —
248
260
  // one Mac mini can run more than one build at once now.
249
261
  const slots = `${parseActiveBuildIds(a.activeBuildIds).length}/${a.maxConcurrentBuilds}`;
250
- return `${a.id} ${stripControlChars(a.name).padEnd(20)} ${status.padEnd(10)} slots ${slots.padEnd(5)} ${(ready ? "Ready" : "NotReady").padEnd(9)} reboot ${formatRebootRecoveryState(a).padEnd(4)} cpu ${a.cpuUsagePercent}% mem ${a.memUsagePercent}% disk free ${a.diskFreeGb}GB ${formatVpnState(a)}${formatCapabilityState(a)} last seen ${a.lastSeenAt}${versionSuffix}`;
262
+ return `${a.id} ${stripControlChars(a.name).padEnd(20)} ${status.padEnd(10)} slots ${slots.padEnd(5)} ${(ready ? "Ready" : "NotReady").padEnd(9)} reboot ${formatRebootRecoveryState(a).padEnd(4)} vm ${formatVmBuildsState(a).padEnd(6)} cpu ${a.cpuUsagePercent}% mem ${a.memUsagePercent}% disk free ${a.diskFreeGb}GB ${formatVpnState(a)}${formatCapabilityState(a)} last seen ${a.lastSeenAt}${versionSuffix}`;
251
263
  }
252
264
  export function registerAgentsCommands(program) {
253
265
  const agents = program.command("agents").description("Manage the Mac mini build fleet");
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import "../test-support/home-sandbox.js";
3
3
  import { test } from "node:test";
4
4
  import assert from "node:assert/strict";
5
5
  import { CURRENT_AGENT_VERSION } from "@appforge-ci/core";
6
- import { waitForCommandResolution, parseTimeoutSeconds, formatAgentCommandLine, formatVpnState, setVpnApprovedForAgent, formatCapabilityState, formatCapabilityLegend, formatAgentListLine, formatRebootRecoveryDetails, formatRebootRecoveryState, setDedicatedOrgForAgent } from "./agents.js";
6
+ import { waitForCommandResolution, parseTimeoutSeconds, formatAgentCommandLine, formatVpnState, setVpnApprovedForAgent, formatCapabilityState, formatCapabilityLegend, formatAgentListLine, formatRebootRecoveryDetails, formatRebootRecoveryState, formatVmBuildsState, setDedicatedOrgForAgent } from "./agents.js";
7
7
  /**
8
8
  * `parseTimeoutSeconds` guards `agents update`'s `--timeout` option
9
9
  * before it ever reaches `waitForCommandResolution`'s deadline math: a
@@ -289,10 +289,10 @@ test("setDedicatedOrgForAgent returns null and writes nothing for an agent not i
289
289
  });
290
290
  // ---- reboot-recovery verdict (migrations/0054, issue #783) -----------------------------------------------------
291
291
  test("agents list shows the reboot-recovery verdict as a short token, '-' when the Mac never reported one", () => {
292
- assert.match(formatAgentListLine(listedAgent()), /Ready +reboot - +cpu/);
293
- assert.match(formatAgentListLine(listedAgent({ rebootRecovery: "ok" })), /Ready +reboot ok +cpu/);
294
- assert.match(formatAgentListLine(listedAgent({ rebootRecovery: "warn" })), /Ready +reboot WARN +cpu/);
295
- assert.match(formatAgentListLine(listedAgent({ rebootRecovery: "fail" })), /Ready +reboot FAIL +cpu/);
292
+ assert.match(formatAgentListLine(listedAgent()), /Ready +reboot - +vm - +cpu/);
293
+ assert.match(formatAgentListLine(listedAgent({ rebootRecovery: "ok" })), /Ready +reboot ok +vm - +cpu/);
294
+ assert.match(formatAgentListLine(listedAgent({ rebootRecovery: "warn" })), /Ready +reboot WARN +vm - +cpu/);
295
+ assert.match(formatAgentListLine(listedAgent({ rebootRecovery: "fail" })), /Ready +reboot FAIL +vm - +cpu/);
296
296
  // a value this build does not know reads as not reported, and the row still ends with the agent version
297
297
  const odd = formatAgentListLine(listedAgent({ rebootRecovery: "catastrophic" }));
298
298
  assert.match(odd, /reboot -/);
@@ -327,4 +327,23 @@ test("reason text is agent-reported: control characters are neutralised and each
327
327
  assert.doesNotMatch(line, /[\u0000-\u001f\u007f]/);
328
328
  assert.ok(line.length <= 4 + "reboot FAIL: ".length + 240 + 1);
329
329
  });
330
+ // ---- per-build VM capability (migrations/0057, appforge-ci#901) ------------------------------------------------
331
+ test("agents list shows which Macs can run VM builds: 'ok <free>/2' for a Mac whose last heartbeat said its VM helper works, '-' for every other", () => {
332
+ assert.match(formatAgentListLine(listedAgent()), /reboot - +vm - +cpu/, "a Mac that never said so (an older agent, no helper) shows '-'");
333
+ assert.match(formatAgentListLine(listedAgent({ vmBuilds: 0, vmSlotsFree: 0 })), /vm - +cpu/);
334
+ assert.match(formatAgentListLine(listedAgent({ vmBuilds: 1, vmSlotsFree: 2 })), /vm ok 2\/2 +cpu/);
335
+ assert.match(formatAgentListLine(listedAgent({ vmBuilds: 1, vmSlotsFree: 1 })), /vm ok 1\/2 +cpu/);
336
+ assert.match(formatAgentListLine(listedAgent({ vmBuilds: 1, vmSlotsFree: 0 })), /vm ok 0\/2 +cpu/, "capable but full");
337
+ // the row still ends with the agent version
338
+ assert.match(formatAgentListLine(listedAgent({ vmBuilds: 1, vmSlotsFree: 2 })), new RegExp(`agent v${CURRENT_AGENT_VERSION.replace(/\./g, "\\.")}$`));
339
+ });
340
+ test("formatVmBuildsState prints only numbers and fixed words, whatever the API returned", () => {
341
+ assert.equal(formatVmBuildsState({}), "-");
342
+ assert.equal(formatVmBuildsState({ vmBuilds: 1 }), "ok 0/2", "capable, slots unreported");
343
+ assert.equal(formatVmBuildsState({ vmBuilds: 1, vmSlotsFree: 9 }), "ok 2/2", "clamped to what macOS allows");
344
+ assert.equal(formatVmBuildsState({ vmBuilds: 1, vmSlotsFree: -4 }), "ok 0/2");
345
+ assert.equal(formatVmBuildsState({ vmBuilds: 1, vmSlotsFree: "\u001b[2K2" }), "ok 0/2", "a hostile value is a number or nothing");
346
+ assert.equal(formatVmBuildsState({ vmBuilds: "yes", vmSlotsFree: 2 }), "-");
347
+ assert.equal(formatVmBuildsState({ vmBuilds: 0, vmSlotsFree: 2 }), "-");
348
+ });
330
349
  //# sourceMappingURL=agents.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.test.js","sourceRoot":"","sources":["../../src/commands/agents.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.test.js","sourceRoot":"","sources":["../../src/commands/agents.test.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,14 @@ import { BUILD_USER_NAME } from "@appforge-ci/agent/dist/lib/sandbox/build-user.
30
30
  * 6. Appends (never replaces) exactly two lines to the EXISTING `/etc/sudoers.d/appforge-agent`
31
31
  * (`infra/mac-mini-setup/bootstrap.sh`'s `REBOOT_HOST` line stays untouched) — one scoping the agent's
32
32
  * user to run ONLY the fixed helper path as root, one scoping it to become ONLY `_appforgebuild`.
33
- * Validated with `visudo -c` on a scratch copy BEFORE either line ever reaches the real file: a
34
- * syntax error in sudoers can lock sudo out entirely, so this never lets one through.
33
+ * Validated with `visudo -c` on the EXACT staged bytes BEFORE they replace the real file, which
34
+ * they do by one atomic rename: a syntax error in sudoers can lock sudo out entirely, so this never
35
+ * lets one through, and a reader of the file never sees half of it.
36
+ *
37
+ * Every file this installer puts in place as root (the helper script, the pf rules, the sudoers file) goes
38
+ * through `installRootOwnedFile` below, which never lets the bytes touch a directory the agent's account
39
+ * can write: the agent's account is also the account ordinary builds run as, and a file it can rewrite
40
+ * between "written" and "installed" would be a path to root.
35
41
  *
36
42
  * None of this is run by anything unattended: every `sudo` below prompts in the operator's own terminal,
37
43
  * the same model `agents bootstrap --full` already uses for the sudoers/pmset/Xcode steps.
@@ -57,19 +63,45 @@ export interface BuildUserInstallDeps {
57
63
  * the top of the 300-399 band. */
58
64
  listGroupGids(): string;
59
65
  etcDirExists(): boolean;
60
- /** Current content of the live sudoers file (`sudo cat`), or "" if it does not exist yet. */
66
+ /** Current content of the live sudoers file, or "" when it does not exist yet. THROWS when it exists but cannot be read: an unreadable
67
+ * file is never treated as an empty one (the installer would replace it with just the lines it adds). */
61
68
  readSudoers(): string;
62
- /** `sudo visudo -c -f <path to this exact content>`. Throws on a syntax error — never reaches the real file. */
63
- validateSudoers(content: string): void;
64
- /** Installs `content` at `path`, root:wheel, with `mode` — via a throwaway tmp file the caller never
65
- * has to manage. */
66
- writeRootOwnedFile(path: string, content: string, mode: string): void;
69
+ /** Installs `content` at `path`, root:wheel, with `mode`, atomically, through a staging directory only root can enter (see
70
+ * `installRootOwnedFile`). With `check: "sudoers"` the staged bytes are validated with `visudo -c` first; a rejection throws and
71
+ * the real file is never touched. */
72
+ writeRootOwnedFile(path: string, content: string, mode: string, opts?: {
73
+ check?: "sudoers";
74
+ }): void;
67
75
  run(cmd: string, args: string[]): void;
68
76
  whoami(): string;
69
77
  /** `$SUDO_USER`: who typed `sudo appforge-admin ...`, when this process is running as root because of it. */
70
78
  sudoUser(): string | null;
71
79
  log(line: string): void;
72
80
  }
81
+ /** Runs `sudo <args>`; `input` goes to the command's stdin, `capture` returns its stdout instead of showing it. Injectable for the tests. */
82
+ export type SudoRunner = (args: string[], opts?: {
83
+ input?: string;
84
+ capture?: boolean;
85
+ }) => string;
86
+ export declare const realSudo: SudoRunner;
87
+ /**
88
+ * Puts `content` at `path` as root:wheel with `mode`, so that no process running as an unprivileged user can change the bytes between
89
+ * "the installer has them" and "root owns them".
90
+ *
91
+ * The earlier version wrote the file to the invoking user's temp directory and ran `sudo install` on it. The invoking user is the
92
+ * agent's account, which also runs ordinary tenant builds (and, for the same-uid sandbox tier, sandboxed ones that may write that very
93
+ * directory): anything running as it could rewrite the file in the window, and the root-owned helper or the sudoers file would hold its
94
+ * bytes. Now:
95
+ * 1. `mktemp -d` AS ROOT makes a 0700 root-owned staging directory beside the destination (the destination's own directory is root-owned
96
+ * too, so nobody else could create or rename anything there, and the final rename stays on one filesystem);
97
+ * 2. the content reaches root on STDIN (`sudo tee`), never through a path the unprivileged user could write;
98
+ * 3. owner and mode are set on the staged copy; a sudoers file is checked with `visudo -c` right there, on those exact bytes;
99
+ * 4. one `mv -f` replaces the destination atomically; the staging directory is removed whatever happened.
100
+ */
101
+ export declare function installRootOwnedFile(sudo: SudoRunner, path: string, content: string, mode: string, opts?: {
102
+ check?: "sudoers";
103
+ }): void;
104
+ export declare function readSudoersFile(sudo?: SudoRunner): string;
73
105
  export declare const realBuildUserInstallDeps: BuildUserInstallDeps;
74
106
  /**
75
107
  * The account that runs the agent, which every sudoers line this installer writes is for. It is the user running the
@@ -105,8 +137,10 @@ export declare function requiredSudoersLines(agentUser: string, buildUser: strin
105
137
  * without needing to intercept a file write. */
106
138
  export declare function renderBuildHelperScript(user: string, jobsRoot: string, cacheRoot: string): string;
107
139
  /** Appends whichever of `lines` are not already present in the live sudoers file, validated with `visudo`
108
- * first — existing content (the `REBOOT_HOST` line from `infra/mac-mini-setup/bootstrap.sh`, or anything
109
- * else) is always kept, never replaced. A no-op if every line is already there. */
140
+ * on the exact staged bytes first — existing content (the `REBOOT_HOST` line from
141
+ * `infra/mac-mini-setup/bootstrap.sh`, or anything else) is always kept, never replaced. A no-op if every
142
+ * line is already there. A file that cannot be read stops the install (`readSudoers` throws): it is never
143
+ * treated as an empty one. */
110
144
  export declare function ensureSudoersLines(lines: readonly string[], deps?: BuildUserInstallDeps): void;
111
145
  export declare function installBuildUser(opts?: {
112
146
  user?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"build-user.d.ts","sourceRoot":"","sources":["../../src/lib/build-user.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAOvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,aAAa,QAA+C,CAAC;AAC1E,eAAO,MAAM,YAAY,kCAAkC,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,wFAAwF;IACxF,YAAY,IAAI,MAAM,CAAC;IACvB;;;;uCAImC;IACnC,aAAa,IAAI,MAAM,CAAC;IACxB,YAAY,IAAI,OAAO,CAAC;IACxB,6FAA6F;IAC7F,WAAW,IAAI,MAAM,CAAC;IACtB,gHAAgH;IAChH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;yBACqB;IACrB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,IAAI,MAAM,CAAC;IACjB,6GAA6G;IAC7G,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAyBD,eAAO,MAAM,wBAAwB,EAAE,oBAgDtC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,MAAM,CAQ9H;AAED;;;;;;;;;kFASkF;AAClF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAM,EAAE,EAAE,SAAM,GAAG,MAAM,CAQ9E;AAED;;;2GAG2G;AAC3G,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CASlI;AAED;;iDAEiD;AACjD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjG;AAuFD;;oFAEoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,oBAA+C,GAAG,IAAI,CAYxH;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,EACvF,IAAI,GAAE,oBAA+C,GACpD,IAAI,CAmBN;AAGD,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"build-user.d.ts","sourceRoot":"","sources":["../../src/lib/build-user.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { execFileSync } from "node:child_process";
2
- import { existsSync, unlinkSync, writeFileSync } from "node:fs";
3
- import { homedir, tmpdir } from "node:os";
4
- import { join } from "node:path";
2
+ import { existsSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { dirname, join } from "node:path";
5
5
  import { BUILD_HELPER_PATH, BUILD_USER_NAME } from "@appforge-ci/agent/dist/lib/sandbox/build-user.js";
6
6
  import { BUILD_HELPER_SCRIPT_TEMPLATE } from "@appforge-ci/agent/dist/lib/sandbox/build-helper-script.generated.js";
7
7
  import { BUILD_USER_PF_ANCHOR, renderBuildUserPfRules } from "@appforge-ci/agent/dist/lib/sandbox/pf-rules.js";
@@ -39,8 +39,14 @@ import { cacheRootDir } from "@appforge-ci/agent/dist/lib/sandbox/cache.js";
39
39
  * 6. Appends (never replaces) exactly two lines to the EXISTING `/etc/sudoers.d/appforge-agent`
40
40
  * (`infra/mac-mini-setup/bootstrap.sh`'s `REBOOT_HOST` line stays untouched) — one scoping the agent's
41
41
  * user to run ONLY the fixed helper path as root, one scoping it to become ONLY `_appforgebuild`.
42
- * Validated with `visudo -c` on a scratch copy BEFORE either line ever reaches the real file: a
43
- * syntax error in sudoers can lock sudo out entirely, so this never lets one through.
42
+ * Validated with `visudo -c` on the EXACT staged bytes BEFORE they replace the real file, which
43
+ * they do by one atomic rename: a syntax error in sudoers can lock sudo out entirely, so this never
44
+ * lets one through, and a reader of the file never sees half of it.
45
+ *
46
+ * Every file this installer puts in place as root (the helper script, the pf rules, the sudoers file) goes
47
+ * through `installRootOwnedFile` below, which never lets the bytes touch a directory the agent's account
48
+ * can write: the agent's account is also the account ordinary builds run as, and a file it can rewrite
49
+ * between "written" and "installed" would be a path to root.
44
50
  *
45
51
  * None of this is run by anything unattended: every `sudo` below prompts in the operator's own terminal,
46
52
  * the same model `agents bootstrap --full` already uses for the sudoers/pmset/Xcode steps.
@@ -62,21 +68,67 @@ function tryRun(cmd, args) {
62
68
  return false;
63
69
  }
64
70
  }
65
- function realWriteRootOwnedFile(path, content, mode) {
66
- const tmp = join(tmpdir(), `appforge-install-${Date.now()}-${Math.random().toString(36).slice(2)}`);
67
- writeFileSync(tmp, content, { mode: 0o600 });
71
+ export const realSudo = (args, opts = {}) => {
72
+ const out = execFileSync("sudo", args, { input: opts.input, encoding: "utf8", stdio: [opts.input === undefined ? "inherit" : "pipe", "pipe", "inherit"] });
73
+ if (!opts.capture && out)
74
+ process.stdout.write(out);
75
+ return out;
76
+ };
77
+ /**
78
+ * Puts `content` at `path` as root:wheel with `mode`, so that no process running as an unprivileged user can change the bytes between
79
+ * "the installer has them" and "root owns them".
80
+ *
81
+ * The earlier version wrote the file to the invoking user's temp directory and ran `sudo install` on it. The invoking user is the
82
+ * agent's account, which also runs ordinary tenant builds (and, for the same-uid sandbox tier, sandboxed ones that may write that very
83
+ * directory): anything running as it could rewrite the file in the window, and the root-owned helper or the sudoers file would hold its
84
+ * bytes. Now:
85
+ * 1. `mktemp -d` AS ROOT makes a 0700 root-owned staging directory beside the destination (the destination's own directory is root-owned
86
+ * too, so nobody else could create or rename anything there, and the final rename stays on one filesystem);
87
+ * 2. the content reaches root on STDIN (`sudo tee`), never through a path the unprivileged user could write;
88
+ * 3. owner and mode are set on the staged copy; a sudoers file is checked with `visudo -c` right there, on those exact bytes;
89
+ * 4. one `mv -f` replaces the destination atomically; the staging directory is removed whatever happened.
90
+ */
91
+ export function installRootOwnedFile(sudo, path, content, mode, opts = {}) {
92
+ if (!/^[0-7]{3,4}$/.test(mode))
93
+ throw new Error(`refusing to install ${path}: '${mode}' is not an octal file mode`);
94
+ const dir = dirname(path);
95
+ const stage = sudo(["/usr/bin/mktemp", "-d", `${dir}/.appforge-install.XXXXXXXXXX`], { capture: true }).trim();
96
+ // The path is about to be handed to `rm -rf` as root: it must be exactly what was asked for.
97
+ if (!new RegExp(`^${dir.replace(/[.*+?^${}()|[\]\\/]/g, "\\$&")}/\\.appforge-install\\.[A-Za-z0-9]{10}$`).test(stage)) {
98
+ throw new Error(`mktemp returned an unexpected directory '${stage}'; not continuing`);
99
+ }
68
100
  try {
69
- execFileSync("sudo", ["install", "-o", "root", "-g", "wheel", "-m", mode, tmp, path], { stdio: "inherit" });
101
+ const staged = `${stage}/content`;
102
+ sudo(["/usr/bin/tee", staged], { input: content, capture: true });
103
+ sudo(["/usr/sbin/chown", "root:wheel", staged]);
104
+ sudo(["/bin/chmod", mode, staged]);
105
+ if (opts.check === "sudoers")
106
+ sudo(["/usr/sbin/visudo", "-c", "-f", staged]);
107
+ sudo(["/bin/mv", "-f", staged, path]);
70
108
  }
71
109
  finally {
72
110
  try {
73
- unlinkSync(tmp);
111
+ sudo(["/bin/rm", "-rf", stage]);
74
112
  }
75
113
  catch {
76
- /* best effort */
114
+ /* best effort: a leftover is a root-owned 0700 directory with a dotted name that sudo and the helper both ignore */
77
115
  }
78
116
  }
79
117
  }
118
+ const realWriteRootOwnedFile = (path, content, mode, opts) => installRootOwnedFile(realSudo, path, content, mode, opts);
119
+ /** The script `readSudoers` runs as root: prints the file, or exits 3 when there is no such file. Any other failure is not "empty". */
120
+ const READ_SUDOERS_SCRIPT = 'if [ -e "$1" ]; then exec /bin/cat "$1"; else exit 3; fi';
121
+ const SUDOERS_ABSENT_STATUS = 3;
122
+ export function readSudoersFile(sudo = realSudo) {
123
+ try {
124
+ return sudo(["/bin/sh", "-c", READ_SUDOERS_SCRIPT, "sh", SUDOERS_FILE], { capture: true });
125
+ }
126
+ catch (err) {
127
+ if (err.status === SUDOERS_ABSENT_STATUS)
128
+ return "";
129
+ throw new Error(`could not read ${SUDOERS_FILE} (${err instanceof Error ? err.message : String(err)}). It exists or sudo failed; the installer will not rewrite it from nothing. Fix the problem above and run it again.`);
130
+ }
131
+ }
80
132
  export const realBuildUserInstallDeps = {
81
133
  // Bare `-read <path>`, no attribute: a record missing a SPECIFIC key (e.g. a group created but not yet
82
134
  // given its PrimaryGroupID, exactly the half-finished state a failed run between these two dscl calls
@@ -96,29 +148,7 @@ export const realBuildUserInstallDeps = {
96
148
  listUserUids: () => execFileSync("dscl", [".", "-list", "/Users", "UniqueID"], { encoding: "utf8" }),
97
149
  listGroupGids: () => execFileSync("dscl", [".", "-list", "/Groups", "PrimaryGroupID"], { encoding: "utf8" }),
98
150
  etcDirExists: () => existsSync(APPFORGE_ETC_DIR),
99
- readSudoers() {
100
- try {
101
- return execFileSync("sudo", ["cat", SUDOERS_FILE], { encoding: "utf8" });
102
- }
103
- catch {
104
- return "";
105
- }
106
- },
107
- validateSudoers(content) {
108
- const tmp = join(tmpdir(), `appforge-sudoers-check-${Date.now()}`);
109
- writeFileSync(tmp, content, { mode: 0o440 });
110
- try {
111
- execFileSync("sudo", ["visudo", "-c", "-f", tmp], { stdio: "inherit" });
112
- }
113
- finally {
114
- try {
115
- unlinkSync(tmp);
116
- }
117
- catch {
118
- /* best effort */
119
- }
120
- }
121
- },
151
+ readSudoers: () => readSudoersFile(),
122
152
  writeRootOwnedFile: realWriteRootOwnedFile,
123
153
  run(cmd, args) {
124
154
  // eslint-disable-next-line no-console
@@ -268,20 +298,25 @@ function ensurePfRules(user, deps) {
268
298
  // re-applies on every start, since pf state does not survive a reboot on its own.
269
299
  deps.run("sudo", [BUILD_HELPER_PATH, "pf-reload"]);
270
300
  }
301
+ /** Is `line` one of the file's lines (whole line, surrounding blanks ignored)? A commented-out copy, or the line inside a longer one, is not. */
302
+ function hasSudoersLine(current, line) {
303
+ return current.split("\n").some((l) => l.trim() === line.trim());
304
+ }
271
305
  /** Appends whichever of `lines` are not already present in the live sudoers file, validated with `visudo`
272
- * first — existing content (the `REBOOT_HOST` line from `infra/mac-mini-setup/bootstrap.sh`, or anything
273
- * else) is always kept, never replaced. A no-op if every line is already there. */
306
+ * on the exact staged bytes first — existing content (the `REBOOT_HOST` line from
307
+ * `infra/mac-mini-setup/bootstrap.sh`, or anything else) is always kept, never replaced. A no-op if every
308
+ * line is already there. A file that cannot be read stops the install (`readSudoers` throws): it is never
309
+ * treated as an empty one. */
274
310
  export function ensureSudoersLines(lines, deps = realBuildUserInstallDeps) {
275
311
  const current = deps.readSudoers();
276
- const missing = lines.filter((l) => !current.includes(l));
312
+ const missing = lines.filter((l) => !hasSudoersLine(current, l));
277
313
  if (missing.length === 0) {
278
314
  deps.log(` ${SUDOERS_FILE} already has every required line`);
279
315
  return;
280
316
  }
281
317
  const next = `${current.replace(/\n*$/, "")}\n${missing.join("\n")}\n`.replace(/^\n/, "");
282
318
  deps.log(`\n==> Adding ${missing.length} sudoers line(s) to ${SUDOERS_FILE} (validated with visudo first)`);
283
- deps.validateSudoers(next);
284
- deps.writeRootOwnedFile(SUDOERS_FILE, next, "0440");
319
+ deps.writeRootOwnedFile(SUDOERS_FILE, next, "0440", { check: "sudoers" });
285
320
  deps.log(` wrote ${SUDOERS_FILE}`);
286
321
  }
287
322
  export function installBuildUser(opts = {}, deps = realBuildUserInstallDeps) {