@appforge-ci/admin-cli 0.3.14 → 0.3.16

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.
@@ -12,7 +12,7 @@ import { type InstallVmUserDeps } from "./vm-user.js";
12
12
  * 3. makes the shared folder both accounts use (owner = the agent's account, group = the helper, mode 770);
13
13
  * 4. adds the knobs to the agent's LaunchDaemon plist (APPFORGE_STATUS_MIRROR_DIR, APPFORGE_VM_INVENTORY_FILE, and
14
14
  * APPFORGE_VM_TOOLING_DIR, which makes the agent deliver the signed VM tooling bundle into the shared folder) and
15
- * restarts the agent. (install-service would drop knobs that its shell does not export, and it has to run as the agent's
15
+ * reloads the agent's LaunchDaemon. (install-service would drop knobs that its shell does not export, and it has to run as the agent's
16
16
  * own account with that account's sudo, which a root-run MDM script does not have; editing the one plist is the
17
17
  * idempotent equivalent. install-service refuses to drop these knobs later unless told to.)
18
18
  *
@@ -40,6 +40,8 @@ export interface ApplyVmUserDeps extends InstallVmUserDeps {
40
40
  randomPassword(): string;
41
41
  /** Like `run`, but never echoes the arguments (they hold a secret); `label` is what gets logged. */
42
42
  runSecret(cmd: string, args: string[], label: string): void;
43
+ /** Reads a root-only file, or null when it is missing. */
44
+ readSecretFile(path: string): Buffer | null;
43
45
  /** Writes a root-only file. */
44
46
  writeSecretFile(path: string, data: Buffer): void;
45
47
  /** Writes a text file (mode 0644) and gives it to `owner:group`. */
@@ -61,6 +63,8 @@ export interface HelperAgentPlistOptions {
61
63
  export declare function helperAgentPlist(o: HelperAgentPlistOptions): string;
62
64
  /** The /etc/kcpassword encoding of an auto-login password: XOR with the fixed key, zero-padded to a multiple of 12. */
63
65
  export declare function kcpasswordBytes(password: string): Buffer;
66
+ /** What /etc/kcpassword holds: the same XOR, read up to the first zero byte. */
67
+ export declare function kcpasswordDecode(data: Buffer): string;
64
68
  /** Accounts whose GitHub Actions runner is a LaunchAgent (found through each runner dir's `.service` file, as the doctor does). */
65
69
  export declare function runnerLaunchAgentAccounts(deps: Pick<ApplyVmUserDeps, "listDir" | "readText">): string[];
66
70
  export interface ApplyVmUserOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"vm-user-apply.d.ts","sourceRoot":"","sources":["../../src/lib/vm-user-apply.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2D,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAG/G;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,kBAAkB,oDAAoD,CAAC;AACpF,eAAO,MAAM,iBAAiB,+CAA+C,CAAC;AAC9E,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,IAAI,IAAI,MAAM,CAAC;IACf,6EAA6E;IAC7E,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,cAAc,IAAI,MAAM,CAAC;IACzB,oGAAoG;IACpG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,+BAA+B;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,oEAAoE;IACpE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAChF;AAED,eAAO,MAAM,mBAAmB,EAAE,eAmCjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAM9D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,CA2CnE;AAID,uHAAuH;AACvH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,mIAAmI;AACnI,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG,MAAM,EAAE,CAYvG;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CAgBvF;AASD,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,GAAE,eAAqC,GAAG,IAAI,CAkGvG"}
1
+ {"version":3,"file":"vm-user-apply.d.ts","sourceRoot":"","sources":["../../src/lib/vm-user-apply.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2D,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAG/G;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,eAAO,MAAM,kBAAkB,oDAAoD,CAAC;AACpF,eAAO,MAAM,iBAAiB,+CAA+C,CAAC;AAC9E,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,IAAI,IAAI,MAAM,CAAC;IACf,6EAA6E;IAC7E,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,cAAc,IAAI,MAAM,CAAC;IACzB,oGAAoG;IACpG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,0DAA0D;IAC1D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5C,+BAA+B;IAC/B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,oEAAoE;IACpE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAChF;AAED,eAAO,MAAM,mBAAmB,EAAE,eA0CjC,CAAC;AAGF,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAM9D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,CA2CnE;AAID,uHAAuH;AACvH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,mIAAmI;AACnI,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG,MAAM,EAAE,CAYvG;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,CAgBvF;AASD,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,GAAE,eAAqC,GAAG,IAAI,CAuHvG"}
@@ -17,7 +17,7 @@ import { ensureOrdinaryUser } from "./runner-user.js";
17
17
  * 3. makes the shared folder both accounts use (owner = the agent's account, group = the helper, mode 770);
18
18
  * 4. adds the knobs to the agent's LaunchDaemon plist (APPFORGE_STATUS_MIRROR_DIR, APPFORGE_VM_INVENTORY_FILE, and
19
19
  * APPFORGE_VM_TOOLING_DIR, which makes the agent deliver the signed VM tooling bundle into the shared folder) and
20
- * restarts the agent. (install-service would drop knobs that its shell does not export, and it has to run as the agent's
20
+ * reloads the agent's LaunchDaemon. (install-service would drop knobs that its shell does not export, and it has to run as the agent's
21
21
  * own account with that account's sudo, which a root-run MDM script does not have; editing the one plist is the
22
22
  * idempotent equivalent. install-service refuses to drop these knobs later unless told to.)
23
23
  *
@@ -64,6 +64,14 @@ export const realApplyVmUserDeps = {
64
64
  console.log(` $ ${label}`);
65
65
  execFileSync(cmd, args, { stdio: ["ignore", "inherit", "inherit"], cwd: "/" });
66
66
  },
67
+ readSecretFile(path) {
68
+ try {
69
+ return readFileSync(path);
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ },
67
75
  writeSecretFile(path, data) {
68
76
  writeFileSync(path, data, { mode: 0o600 });
69
77
  chmodSync(path, 0o600);
@@ -74,6 +82,7 @@ export const realApplyVmUserDeps = {
74
82
  execFileSync("chown", [`${owner}:${group}`, path], { cwd: "/" });
75
83
  },
76
84
  };
85
+ const AGENT_LABEL = "com.appforge.agent";
77
86
  export const HELPER_AGENT_LABEL = "com.appforge.vm-reconcile";
78
87
  function xml(s) {
79
88
  return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
@@ -135,6 +144,12 @@ export function kcpasswordBytes(password) {
135
144
  raw.push(...new Array(12 - remainder).fill(0));
136
145
  return Buffer.from(raw.map((byte, i) => byte ^ KC_KEY[i % KC_KEY.length]));
137
146
  }
147
+ /** What /etc/kcpassword holds: the same XOR, read up to the first zero byte. */
148
+ export function kcpasswordDecode(data) {
149
+ const bytes = [...data].map((byte, i) => byte ^ KC_KEY[i % KC_KEY.length]);
150
+ const end = bytes.indexOf(0);
151
+ return Buffer.from(end < 0 ? bytes : bytes.slice(0, end)).toString("utf8");
152
+ }
138
153
  /** Accounts whose GitHub Actions runner is a LaunchAgent (found through each runner dir's `.service` file, as the doctor does). */
139
154
  export function runnerLaunchAgentAccounts(deps) {
140
155
  const found = new Set();
@@ -209,13 +224,24 @@ export function applyVmUser(opts, deps = realApplyVmUserDeps) {
209
224
  catch {
210
225
  deps.log(" sysadminctl could not set auto-login; writing /etc/kcpassword and the loginwindow preference instead");
211
226
  }
212
- if (loginPref() !== user) {
227
+ // sysadminctl can print "SACSetAutoLoginPassword error:22", exit 0 and set only the preference (found on the rehearsal mini,
228
+ // appforge-ci#841): the account would then be the auto-login user with someone else's password in /etc/kcpassword, and the Mac
229
+ // would sit at the login window after every reboot. So the proof is the password FILE, not the preference.
230
+ const fileHoldsPassword = () => {
231
+ const data = deps.readSecretFile(KCPASSWORD_PATH);
232
+ return data !== null && kcpasswordDecode(data) === password;
233
+ };
234
+ if (!fileHoldsPassword()) {
235
+ deps.log(` macOS did not store this account's auto-login password in ${KCPASSWORD_PATH}; writing it myself`);
213
236
  deps.writeSecretFile(KCPASSWORD_PATH, kcpasswordBytes(password));
214
- deps.run("defaults", ["write", LOGINWINDOW_PREFS, "autoLoginUser", "-string", user]);
215
237
  }
238
+ if (loginPref() !== user)
239
+ deps.run("defaults", ["write", LOGINWINDOW_PREFS, "autoLoginUser", "-string", user]);
240
+ if (!fileHoldsPassword())
241
+ throw new Error(`auto-login for '${user}' did not stick: ${KCPASSWORD_PATH} does not hold the password just set (a reboot would stop at the login window)`);
216
242
  if (loginPref() !== user)
217
243
  throw new Error(`auto-login for '${user}' did not stick: ${LOGINWINDOW_PREFS} autoLoginUser reads "${loginPref()}"`);
218
- deps.log(` auto-login is now '${user}' (read back); it takes effect at the next boot`);
244
+ deps.log(` auto-login is now '${user}' (the preference and the password file both read back); it takes effect at the next boot`);
219
245
  },
220
246
  },
221
247
  {
@@ -223,7 +249,7 @@ export function applyVmUser(opts, deps = realApplyVmUserDeps) {
223
249
  run: () => deps.run("install", ["-d", "-o", agentUser, "-g", user, "-m", "770", shareDir]),
224
250
  },
225
251
  {
226
- title: `add the mirror knobs to the agent's LaunchDaemon plist and restart the agent`,
252
+ title: `add the mirror knobs to the agent's LaunchDaemon plist and reload the agent`,
227
253
  skip: () => {
228
254
  const have = (key) => deps.capture("/usr/bin/plutil", ["-extract", `EnvironmentVariables.${key}`, "raw", "-o", "-", AGENT_DAEMON_PLIST])?.trim();
229
255
  return have("APPFORGE_STATUS_MIRROR_DIR") === shareDir && have("APPFORGE_VM_INVENTORY_FILE") === `${shareDir}/inventory.json` && have("APPFORGE_VM_TOOLING_DIR") === shareDir
@@ -234,7 +260,20 @@ export function applyVmUser(opts, deps = realApplyVmUserDeps) {
234
260
  deps.run("plutil", ["-replace", "EnvironmentVariables.APPFORGE_STATUS_MIRROR_DIR", "-string", shareDir, AGENT_DAEMON_PLIST]);
235
261
  deps.run("plutil", ["-replace", "EnvironmentVariables.APPFORGE_VM_INVENTORY_FILE", "-string", `${shareDir}/inventory.json`, AGENT_DAEMON_PLIST]);
236
262
  deps.run("plutil", ["-replace", "EnvironmentVariables.APPFORGE_VM_TOOLING_DIR", "-string", shareDir, AGENT_DAEMON_PLIST]);
237
- deps.run("launchctl", ["kickstart", "-k", "system/com.appforge.agent"]);
263
+ // launchd keeps the job definition it loaded: `kickstart -k` restarts the process with the OLD environment, so the new knobs
264
+ // would not reach the agent until the next reboot (found on the rehearsal mini, appforge-ci#841). Reload the job instead.
265
+ deps.log(" reloading the agent's LaunchDaemon so it picks up the new settings (a few seconds without the agent)");
266
+ deps.tryRun("launchctl", ["bootout", `system/${AGENT_LABEL}`]);
267
+ let loaded = false;
268
+ for (let attempt = 0; attempt < 5 && !loaded; attempt++) {
269
+ if (attempt > 0)
270
+ deps.tryRun("sleep", ["1"]);
271
+ loaded = deps.tryRun("launchctl", ["bootstrap", "system", AGENT_DAEMON_PLIST]);
272
+ }
273
+ if (!loaded) {
274
+ deps.log(` the agent is NOT running: run \`sudo launchctl bootstrap system ${AGENT_DAEMON_PLIST}\` and read the error`);
275
+ deps.run("launchctl", ["bootstrap", "system", AGENT_DAEMON_PLIST]);
276
+ }
238
277
  },
239
278
  },
240
279
  {
@@ -1 +1 @@
1
- {"version":3,"file":"vm-user-apply.js","sourceRoot":"","sources":["../../src/lib/vm-user-apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAA0B,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,iDAAiD,CAAC;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,4CAA4C,CAAC;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAiBjD,MAAM,CAAC,MAAM,mBAAmB,GAAoB;IAClD,GAAG,qBAAqB;IACxB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI;IACrD,QAAQ,CAAC,IAAI;QACX,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI;QACV,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,yHAAyH;IACzH,yDAAyD;IACzD,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK;QACxB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAC5B,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,eAAe,CAAC,IAAI,EAAE,IAAI;QACxB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;QACrC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvB,YAAY,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAE9D,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAUD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAA0B;IACzD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,QAAQ,qBAAqB,CAAC;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,gCAAgC,CAAC;IACtD,OAAO;;;;;YAKG,kBAAkB;;;;;;cAMhB,GAAG,CAAC,OAAO,CAAC;cACZ,GAAG,CAAC,OAAO,CAAC;;;;;;;;;;;cAWZ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;;cAEf,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;;cAEf,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;;;;;;;YAOjB,GAAG,CAAC,GAAG,CAAC;;YAER,GAAG,CAAC,GAAG,CAAC;;;CAGnB,CAAC;AACF,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAElF,uHAAuH;AACvH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAS,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,mIAAmI;AACnI,MAAM,UAAU,yBAAyB,CAAC,IAAmD;IAC3F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,4CAA4C,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,IAAI,KAAK;gBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAWD,yDAAyD;AACzD,MAAM,UAAU,aAAa,CAAC,IAAwB,EAAE,IAAqB;IAC3E,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;IACzI,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpD,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,oHAAoH,CAAC,CAAC;SAC9I,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,SAAS,kBAAkB,CAAC,CAAC;IACxG,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,2DAA2D,kBAAkB,oIAAoI,CAAC,CAAC;IAClO,CAAC;IACD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CACV,+CAA+C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,4JAA4J,CACrP,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AASD,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,OAAwB,mBAAmB;IAC/F,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtB,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5D,MAAM,eAAe,GAAG,UAAU,IAAI,yBAAyB,kBAAkB,QAAQ,CAAC;IAC1F,yGAAyG;IACzG,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,wBAAwB,CAAC;IACtK,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/G,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAEjE,MAAM,KAAK,GAAW;QACpB;YACE,KAAK,EAAE,eAAe,IAAI,WAAW;YACrC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/C,GAAG,EAAE,GAAG,EAAE,CACR,KAAK,kBAAkB,CAAC,IAAI,EAAE,gCAAgC,EAAE,2BAA2B,IAAI,8EAA8E,EAAE,IAAI,CAAC;SACvL;QACD;YACE,KAAK,EAAE,8BAA8B,IAAI,sCAAsC;YAC/E,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,WAAW;oBAAE,OAAO,IAAI,CAAC;gBAC7B,OAAO,SAAS,EAAE,KAAK,IAAI;oBACzB,CAAC,CAAC,8DAA8D;oBAChE,CAAC,CAAC,sIAAsI,CAAC;YAC7I,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,yBAAyB,IAAI,+BAA+B,CAAC,CAAC;gBACnI,IAAI,CAAC;oBACH,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,wCAAwC,IAAI,yCAAyC,CAAC,CAAC;gBACxL,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC,GAAG,CAAC,wGAAwG,CAAC,CAAC;gBACrH,CAAC;gBACD,IAAI,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;oBACzB,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACjE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvF,CAAC;gBACD,IAAI,SAAS,EAAE,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAoB,iBAAiB,yBAAyB,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC/I,IAAI,CAAC,GAAG,CAAC,wBAAwB,IAAI,iDAAiD,CAAC,CAAC;YAC1F,CAAC;SACF;QACD;YACE,KAAK,EAAE,0BAA0B,QAAQ,WAAW,SAAS,WAAW,IAAI,aAAa;YACzF,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAC3F;QACD;YACE,KAAK,EAAE,8EAA8E;YACrF,IAAI,EAAE,GAAG,EAAE;gBACT,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,wBAAwB,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBACzJ,OAAO,IAAI,CAAC,4BAA4B,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,4BAA4B,CAAC,KAAK,GAAG,QAAQ,iBAAiB,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,QAAQ;oBAC3K,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,IAAI,CAAC;YACX,CAAC;YACD,GAAG,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,iDAAiD,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;gBAC7H,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,iDAAiD,EAAE,SAAS,EAAE,GAAG,QAAQ,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;gBACjJ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,8CAA8C,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;gBAC1H,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAC;YAC1E,CAAC;SACF;QACD;YACE,KAAK,EAAE,kFAAkF,QAAQ,sBAAsB;YACvH,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC;YACpG,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,IAAI,GAAG,UAAU,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,UAAU,EAAE,GAAG,IAAI,uBAAuB,CAAC,CAAC,CAAC;gBACpH,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC;gBAC5F,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvE,IAAI,CAAC,GAAG,CAAC,WAAW,eAAe,iBAAiB,IAAI,4BAA4B,CAAC,CAAC;YACxF,CAAC;SACF;KACF,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,6CAA6C,IAAI,qBAAqB,SAAS,KAAK,CAAC,CAAC;IACzJ,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,CAAC,IAAI,CAAC,CAAC;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;QACrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,cAAc,MAAM,EAAE,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,oCAAoC,iBAAiB,yBAAyB,SAAS,EAAE,IAAI,SAAS,sGAAsG,CAAC,CAAC;IAC5O,CAAC;IACD,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,MAAM;QACT,CAAC,CAAC,wDAAwD;QAC1D,CAAC,CAAC,wNAAwN,CAC7N,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"vm-user-apply.js","sourceRoot":"","sources":["../../src/lib/vm-user-apply.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import "../test-support/home-sandbox.js";
2
2
  import { test } from "node:test";
3
3
  import assert from "node:assert/strict";
4
- import { AGENT_DAEMON_PLIST, KCPASSWORD_PATH, LOGINWINDOW_PREFS, applyRefusals, applyVmUser, kcpasswordBytes, runnerLaunchAgentAccounts, helperAgentPlist, HELPER_AGENT_LABEL, } from "./vm-user-apply.js";
4
+ import { AGENT_DAEMON_PLIST, KCPASSWORD_PATH, LOGINWINDOW_PREFS, applyRefusals, applyVmUser, kcpasswordBytes, kcpasswordDecode, runnerLaunchAgentAccounts, helperAgentPlist, HELPER_AGENT_LABEL, } from "./vm-user-apply.js";
5
5
  const SECRET = "S3cretRandomPassw0rdForTests1234"; // 32 chars; the real generator makes 31
6
6
  function world(over = {}) {
7
7
  return {
@@ -11,6 +11,9 @@ function world(over = {}) {
11
11
  files: {},
12
12
  dirs: { "/Users": ["Shared", "tooming", "ci-runner"], "/Users/ci-runner": ["actions-runner"] },
13
13
  sysadminctlWorks: true,
14
+ sysadminctlStoresPassword: true,
15
+ kcpassword: kcpasswordBytes("the previous helper's password"),
16
+ kcpasswordWritable: true,
14
17
  sudoUser: "tooming",
15
18
  euid: 0,
16
19
  agentPlistPresent: true,
@@ -22,6 +25,7 @@ function world(over = {}) {
22
25
  function fake(w) {
23
26
  const calls = [];
24
27
  const logs = [];
28
+ const tried = [];
25
29
  const secretCalls = [];
26
30
  const written = [];
27
31
  const ownedWrites = [];
@@ -37,7 +41,10 @@ function fake(w) {
37
41
  if (cmd === "sudo" && args[0] === "dscl" && args.includes("UniqueID"))
38
42
  w.users.add(args[2].split("/")[2]);
39
43
  },
40
- tryRun: () => true,
44
+ tryRun: (cmd, args) => {
45
+ tried.push(`${cmd} ${args.join(" ")}`);
46
+ return true;
47
+ },
41
48
  exists: () => false,
42
49
  mkdirp: () => { },
43
50
  log: (l) => logs.push(l),
@@ -70,15 +77,22 @@ function fake(w) {
70
77
  if (!w.sysadminctlWorks)
71
78
  throw new Error("sysadminctl failed");
72
79
  w.autoLogin = args[3];
80
+ if (w.sysadminctlStoresPassword)
81
+ w.kcpassword = kcpasswordBytes(args[5]);
73
82
  }
74
83
  },
75
- writeSecretFile: (path, data) => void written.push({ path, data }),
84
+ readSecretFile: (path) => (path === KCPASSWORD_PATH ? w.kcpassword : null),
85
+ writeSecretFile: (path, data) => {
86
+ written.push({ path, data });
87
+ if (path === KCPASSWORD_PATH && w.kcpasswordWritable)
88
+ w.kcpassword = data;
89
+ },
76
90
  writeOwnedText: (path, text, owner, group) => {
77
91
  ownedWrites.push({ path, text, owner, group });
78
92
  w.files[path] = text;
79
93
  },
80
94
  };
81
- return { deps, calls, logs, secretCalls, written, ownedWrites };
95
+ return { deps, calls, tried, logs, secretCalls, written, ownedWrites };
82
96
  }
83
97
  test("kcpasswordBytes is the fixed XOR encoding, zero-padded to a multiple of 12", () => {
84
98
  assert.equal(kcpasswordBytes("abc").toString("hex"), "1ceb3123d2bcddeaa3b91f7d");
@@ -128,13 +142,37 @@ test("a first run creates the account, sets the random password and auto-login,
128
142
  assert.equal(w.plist.APPFORGE_STATUS_MIRROR_DIR, "/Users/Shared/appforge");
129
143
  assert.equal(w.plist.APPFORGE_VM_INVENTORY_FILE, "/Users/Shared/appforge/inventory.json");
130
144
  assert.equal(w.plist.APPFORGE_VM_TOOLING_DIR, "/Users/Shared/appforge", "the agent is told to deliver the signed VM tooling there");
131
- assert.ok(f.calls.includes("launchctl kickstart -k system/com.appforge.agent"));
145
+ // launchd keeps the job it loaded, so a plist edit needs the job reloaded; kickstart -k would restart it with the OLD environment
146
+ assert.deepEqual(f.tried.filter((c) => c.startsWith("launchctl")), ["launchctl bootout system/com.appforge.agent", "launchctl bootstrap system /Library/LaunchDaemons/com.appforge.agent.plist"]);
147
+ assert.ok(!f.calls.some((c) => c.includes("kickstart")), "kickstart does not re-read the plist");
132
148
  assert.match(f.logs.join("\n"), /Reboot to start the helper's session/);
133
149
  assert.equal(f.ownedWrites.length, 1);
134
150
  assert.equal(f.ownedWrites[0].path, `/Users/appforge-vm/Library/LaunchAgents/${HELPER_AGENT_LABEL}.plist`);
135
151
  assert.equal(f.ownedWrites[0].owner, "appforge-vm", "the helper owns its own LaunchAgent so launchd loads it at its login");
136
152
  assert.ok(f.calls.includes("install -d -o appforge-vm -g appforge-vm -m 755 /Users/appforge-vm/.appforge-infra"));
137
153
  });
154
+ test("when the agent's job cannot be loaded again, the apply says the agent is NOT running and fails loudly", () => {
155
+ const w = world();
156
+ const f = fake(w);
157
+ let bootstraps = 0;
158
+ const realTry = f.deps.tryRun;
159
+ f.deps.tryRun = (cmd, args) => {
160
+ realTry(cmd, args);
161
+ if (cmd === "launchctl" && args[0] === "bootstrap") {
162
+ bootstraps++;
163
+ return false;
164
+ }
165
+ return true;
166
+ };
167
+ f.deps.run = (cmd, args) => {
168
+ if (cmd === "launchctl" && args[0] === "bootstrap")
169
+ throw new Error("Bootstrap failed: 5: Input/output error");
170
+ };
171
+ const deps = { ...f.deps, run: f.deps.run };
172
+ assert.throws(() => applyVmUser({ user: "appforge-vm", agentUser: "tooming" }, deps), /Bootstrap failed/);
173
+ assert.equal(bootstraps, 5, "it retried before giving up (bootout can still be settling)");
174
+ assert.match(f.logs.join("\n"), /the agent is NOT running: run `sudo launchctl bootstrap system \/Library\/LaunchDaemons\/com\.appforge\.agent\.plist`/);
175
+ });
138
176
  test("the generated password is never echoed or logged: only the secret runner sees it, and its label hides it", () => {
139
177
  const f = fake(world());
140
178
  applyVmUser({ user: "appforge-vm" }, f.deps);
@@ -161,6 +199,34 @@ test("if auto-login still does not read back as the helper, the run fails loudly
161
199
  f.deps.run = (cmd, args) => void f.calls.push(`${cmd} ${args.join(" ")}`); // the preference write is ignored
162
200
  assert.throws(() => applyVmUser({ user: "appforge-vm" }, f.deps), /auto-login for 'appforge-vm' did not stick/);
163
201
  });
202
+ test("kcpasswordDecode reads back what kcpasswordBytes wrote, including a password that is a multiple of 12 characters", () => {
203
+ for (const p of ["abc", "S3cretRandomPassw0rdForTests1234", "a".repeat(11), "-leading_dash-and_underscore_x"]) {
204
+ assert.equal(kcpasswordDecode(kcpasswordBytes(p)), p);
205
+ }
206
+ });
207
+ test("sysadminctl exits 0 but stores no password (SACSetAutoLoginPassword error:22): the file is written by hand, so a reboot does not stop at the login window", () => {
208
+ // The real mini, 2026-10-11: the preference said appforge-vm2, /etc/kcpassword still held the previous helper's password.
209
+ const w = world({ sysadminctlStoresPassword: false });
210
+ const f = fake(w);
211
+ applyVmUser({ user: "appforge-vm" }, f.deps);
212
+ assert.equal(w.autoLogin, "appforge-vm");
213
+ assert.equal(f.written.length, 1);
214
+ assert.equal(f.written[0].path, KCPASSWORD_PATH);
215
+ assert.equal(kcpasswordDecode(w.kcpassword), SECRET, "the file now holds the password just set");
216
+ assert.match(f.logs.join("\n"), /macOS did not store this account's auto-login password in \/etc\/kcpassword; writing it myself/);
217
+ });
218
+ test("when macOS stored the password itself, /etc/kcpassword is not rewritten", () => {
219
+ const w = world();
220
+ const f = fake(w);
221
+ applyVmUser({ user: "appforge-vm" }, f.deps);
222
+ assert.deepEqual(f.written, []);
223
+ assert.equal(kcpasswordDecode(w.kcpassword), SECRET);
224
+ });
225
+ test("if /etc/kcpassword cannot be made to hold the password, the run fails loudly and says a reboot would stop at the login window", () => {
226
+ const w = world({ sysadminctlStoresPassword: false, kcpasswordWritable: false });
227
+ const f = fake(w);
228
+ assert.throws(() => applyVmUser({ user: "appforge-vm" }, f.deps), /did not stick: \/etc\/kcpassword does not hold the password just set \(a reboot would stop at the login window\)/);
229
+ });
164
230
  test("re-running when everything is already true changes nothing and never touches the password", () => {
165
231
  const w = world({
166
232
  users: new Set(["tooming", "ci-runner", "appforge-vm"]),
@@ -1 +1 @@
1
- {"version":3,"file":"vm-user-apply.test.js","sourceRoot":"","sources":["../../src/lib/vm-user-apply.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vm-user-apply.test.js","sourceRoot":"","sources":["../../src/lib/vm-user-apply.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appforge-ci/admin-cli",
3
- "version": "0.3.14",
3
+ "version": "0.3.16",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -15,11 +15,12 @@
15
15
  "dependencies": {
16
16
  "chalk": "^5.3.0",
17
17
  "commander": "^12.1.0",
18
- "@appforge-ci/core": "0.3.14",
19
- "@appforge-ci/agent": "0.3.14"
18
+ "@appforge-ci/agent": "0.3.16",
19
+ "@appforge-ci/core": "0.3.16"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/node": "^20.16.5",
23
+ "esbuild": "^0.28.2",
23
24
  "tsx": "^4.23.15",
24
25
  "typescript": "^5.6.3"
25
26
  },
@@ -28,6 +29,7 @@
28
29
  "dev": "tsx src/index.ts",
29
30
  "typecheck": "tsc -p tsconfig.json --noEmit",
30
31
  "lint": "echo 'no lint configured for admin-cli'",
31
- "test": "tsx --import ../../scripts/test-home-sandbox.mjs --test $(find src -name '*.test.ts') --concurrency=4"
32
+ "test": "tsx --import ../../scripts/test-home-sandbox.mjs --test $(find src -name '*.test.ts') --concurrency=4",
33
+ "bundle": "esbuild dist/index.js --bundle --platform=node --format=esm --banner:js=\"import { createRequire as __appforgeCreateRequire } from 'node:module'; const require = __appforgeCreateRequire(import.meta.url);\" --outfile=dist/admin-cli-bundle.mjs"
32
34
  }
33
35
  }