@calltelemetry/ct-lab-mcp 0.8.105 → 0.8.107

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.
Files changed (63) hide show
  1. package/assets/stig/SHA256SUMS +15 -1
  2. package/assets/stig/guest/collect-fips-state.sh +6 -0
  3. package/assets/stig/guest/collect-hardware.sh +3 -0
  4. package/assets/stig/guest/collect-host-checks.sh +3 -0
  5. package/assets/stig/guest/collect-network-services.sh +15 -0
  6. package/assets/stig/guest/collect-repolist.sh +3 -0
  7. package/assets/stig/guest/collect-rpm-inventory.sh +3 -0
  8. package/assets/stig/guest/collect-rpm-nevra.sh +3 -0
  9. package/assets/stig/guest/collect-rpmlist.sh +3 -0
  10. package/assets/stig/guest/collect-updateinfo-all.sh +3 -0
  11. package/assets/stig/guest/collect-updateinfo-security.sh +3 -0
  12. package/assets/stig/guest/collect-updateinfo-summary.sh +3 -0
  13. package/assets/stig/guest/oval-eval.sh +11 -0
  14. package/assets/stig/guest/oval-prep.sh +4 -0
  15. package/assets/stig/guest/verify-root.sh +13 -0
  16. package/assets/stig/image/verify-image.sh +28 -0
  17. package/dist/src/generated-version.d.ts +1 -1
  18. package/dist/src/generated-version.js +1 -1
  19. package/dist/src/stig/dist.d.ts +121 -0
  20. package/dist/src/stig/dist.d.ts.map +1 -0
  21. package/dist/src/stig/dist.js +234 -0
  22. package/dist/src/stig/dist.js.map +1 -0
  23. package/dist/src/stig/distribution.d.ts +95 -0
  24. package/dist/src/stig/distribution.d.ts.map +1 -0
  25. package/dist/src/stig/distribution.js +398 -0
  26. package/dist/src/stig/distribution.js.map +1 -0
  27. package/dist/src/stig/evidence.d.ts +135 -0
  28. package/dist/src/stig/evidence.d.ts.map +1 -0
  29. package/dist/src/stig/evidence.js +637 -0
  30. package/dist/src/stig/evidence.js.map +1 -0
  31. package/dist/src/stig/live.d.ts +67 -4
  32. package/dist/src/stig/live.d.ts.map +1 -1
  33. package/dist/src/stig/live.js +226 -5
  34. package/dist/src/stig/live.js.map +1 -1
  35. package/dist/src/stig/markers.d.ts +6 -0
  36. package/dist/src/stig/markers.d.ts.map +1 -0
  37. package/dist/src/stig/markers.js +23 -0
  38. package/dist/src/stig/markers.js.map +1 -0
  39. package/dist/src/stig/model.d.ts +2 -1
  40. package/dist/src/stig/model.d.ts.map +1 -1
  41. package/dist/src/stig/model.js +7 -2
  42. package/dist/src/stig/model.js.map +1 -1
  43. package/dist/src/stig/nodes.d.ts +52 -12
  44. package/dist/src/stig/nodes.d.ts.map +1 -1
  45. package/dist/src/stig/nodes.js +90 -11
  46. package/dist/src/stig/nodes.js.map +1 -1
  47. package/dist/src/stig/ports.d.ts +81 -2
  48. package/dist/src/stig/ports.d.ts.map +1 -1
  49. package/dist/src/stig/pve.d.ts +22 -0
  50. package/dist/src/stig/pve.d.ts.map +1 -0
  51. package/dist/src/stig/pve.js +26 -0
  52. package/dist/src/stig/pve.js.map +1 -0
  53. package/dist/src/stig/runner.d.ts +36 -9
  54. package/dist/src/stig/runner.d.ts.map +1 -1
  55. package/dist/src/stig/runner.js +129 -96
  56. package/dist/src/stig/runner.js.map +1 -1
  57. package/dist/src/tools/quick-provision.d.ts +2 -2
  58. package/dist/src/tools/slot-tools.d.ts +4 -4
  59. package/dist/src/tools/stig-tools.d.ts +52 -8
  60. package/dist/src/tools/stig-tools.d.ts.map +1 -1
  61. package/dist/src/tools/stig-tools.js +105 -21
  62. package/dist/src/tools/stig-tools.js.map +1 -1
  63. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ export declare const cloneIdentity: (template: string, vmid: number | string, claimUid: string) => string;
2
+ export declare function stageCurrent(state: string, stage: string, identity: string): boolean;
3
+ export declare function markStage(state: string, stage: string, identity: string): void;
4
+ /** Called before a stage deletes or rewrites its output, so a failed stage never leaves a marker that vouches for partial evidence. */
5
+ export declare function clearStage(state: string, stage: string): void;
6
+ //# sourceMappingURL=markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../../src/stig/markers.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,MAAM,MAAM,GAAG,MAAM,EAAE,UAAU,MAAM,KAAG,MAA2C,CAAC;AAEtI,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGpF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAK9E;AAED,uIAAuI;AACvI,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE7D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Stage markers shared with the shell recipe (evidence.sh `is_done` / `mark_done`): `<clone state>/stages/<stage>.done`
3
+ * holds `template|vmid|claim uid`. A marker is current only while the clone is the same guest of the same claim, so a
4
+ * recreated clone never reuses the evidence of its predecessor.
5
+ */
6
+ import { chmodSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
7
+ import { join } from "node:path";
8
+ export const cloneIdentity = (template, vmid, claimUid) => `${template}|${vmid}|${claimUid}`;
9
+ export function stageCurrent(state, stage, identity) {
10
+ const f = join(state, "stages", `${stage}.done`);
11
+ return existsSync(f) && readFileSync(f, "utf8").trim() === identity;
12
+ }
13
+ export function markStage(state, stage, identity) {
14
+ const dir = join(state, "stages");
15
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
16
+ chmodSync(dir, 0o700);
17
+ writeFileSync(join(dir, `${stage}.done`), `${identity}\n`, { mode: 0o600 });
18
+ }
19
+ /** Called before a stage deletes or rewrites its output, so a failed stage never leaves a marker that vouches for partial evidence. */
20
+ export function clearStage(state, stage) {
21
+ rmSync(join(state, "stages", `${stage}.done`), { force: true });
22
+ }
23
+ //# sourceMappingURL=markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markers.js","sourceRoot":"","sources":["../../../src/stig/markers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,IAAqB,EAAE,QAAgB,EAAU,EAAE,CAAC,GAAG,QAAQ,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;AAEtI,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,KAAa,EAAE,QAAgB;IACzE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,KAAa,EAAE,QAAgB;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,EAAE,GAAG,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,uIAAuI;AACvI,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,KAAa;IACrD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC"}
@@ -144,7 +144,8 @@ export type RenewalPlan = {
144
144
  };
145
145
  export declare function planTemplateRenewal(claim: any, now?: number, marginHours?: number): RenewalPlan;
146
146
  export declare function assertPoolBelow(percent: unknown, limit?: number): void;
147
- export declare function assertSingleReencrypt(claims: any[], selfName: string): void;
147
+ /** One re-encrypting clone per node: with `claimNode`, only claims on that node (spec.node, default minis) count. */
148
+ export declare function assertSingleReencrypt(claims: any[], selfName: string, claimNode?: string): void;
148
149
  /** A running, non-template guest tagged rhel8-stig-clone for under this long may still be re-encrypting. */
149
150
  export declare const STIG_REENCRYPT_WINDOW_SECONDS: number;
150
151
  export declare const STIG_CLONE_TAG = "rhel8-stig-clone";
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/stig/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/stig/model.ts"],"names":[],"mappings":"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"}
@@ -342,10 +342,13 @@ export function assertPoolBelow(percent, limit = STIG_POOL_LIMIT_PERCENT) {
342
342
  if (percent > limit)
343
343
  throw new Error(`thin pool at ${percent}% exceeds the ${limit}% limit; trim or free space before re-encrypting`);
344
344
  }
345
- export function assertSingleReencrypt(claims, selfName) {
345
+ /** One re-encrypting clone per node: with `claimNode`, only claims on that node (spec.node, default minis) count. */
346
+ export function assertSingleReencrypt(claims, selfName, claimNode) {
346
347
  for (const c of claims || []) {
347
348
  if (c?.metadata?.name === selfName)
348
349
  continue;
350
+ if (claimNode !== undefined && (c?.spec?.node ?? "minis") !== claimNode)
351
+ continue;
349
352
  const step = c?.metadata?.annotations?.[STIG_STEP_ANNOTATION];
350
353
  let d = null;
351
354
  try {
@@ -383,7 +386,9 @@ export function assertTemplateReleaseAllowed(input) {
383
386
  if (claim?.spec?.vmid !== guest.vmid || claim?.spec?.vmName !== guest.name)
384
387
  throw new Error("the claim does not name this template (vmid and vmName)");
385
388
  const d = stigDescriptor(claim);
386
- if (d?.mode !== "build-template")
389
+ // A built template's claim carries the build-template descriptor; a synced copy's claim (tpl-<template>-<node>) has none.
390
+ const synced = d === null && typeof claim?.metadata?.name === "string" && (claim.metadata.name === `tpl-${guest.name}` || claim.metadata.name.startsWith(`tpl-${guest.name}-`));
391
+ if (d?.mode !== "build-template" && !synced)
387
392
  throw new Error("the claim is not a build-template STIG claim");
388
393
  if (destroyConfirmed !== true)
389
394
  throw new Error("template destroy must be explicitly confirmed");
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/stig/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/stig/model.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,56 @@
1
- /** Lab Proxmox nodes the STIG tools can clone on. The shared names match the operator's claim nodes. */
2
- export type StigNode = "minis" | "ibm64" | "proxmox";
3
- export declare const STIG_NODE_NAMES: readonly StigNode[];
4
- export interface StigNodeConfig {
5
- claimNode: StigNode;
1
+ /**
2
+ * STIG node map: the single source of per-node host, claim node, thin storage, bridge and VLAN for the three
3
+ * standalone Proxmox nodes, plus the constants of the shared image store. Same values as `nodes.conf` in the
4
+ * ct-meta `rhel8-stig-template` skill (tools/stig-parity.mjs `dist` diffs them).
5
+ *
6
+ * Any field can be overridden for one process with STIG_NODE_<FIELD>_<NODE> (NODE upper-cased, `-` as `_`), for
7
+ * example STIG_NODE_VLAN_PROXMOX= for untagged, or STIG_NODE_HOST_MINIS=... Fields: HOST CLAIM_NODE THIN BRIDGE VLAN.
8
+ * The legacy CT_LAB_STIG_PVE_HOST still selects the minis (build node) host.
9
+ */
10
+ export declare const STIG_NODE_NAMES: readonly ["minis", "proxmox", "prox-ibm64"];
11
+ export type StigNodeName = (typeof STIG_NODE_NAMES)[number];
12
+ /** Names accepted on input and mapped to the canonical node (`ibm64` is the ApplianceClaim node name of prox-ibm64). */
13
+ export declare const STIG_NODE_ALIASES: Readonly<Record<string, StigNodeName>>;
14
+ export declare const STIG_NODE_INPUT_NAMES: [string, ...string[]];
15
+ export interface StigNode {
16
+ name: StigNodeName;
17
+ /** root SSH target for qm / pvesm / lvs / the image store. */
18
+ host: string;
19
+ /** ApplianceClaim spec.node value. */
20
+ claimNode: string;
21
+ /** lab-inventory host asset id (the canonical `stig` verbs' --host-asset-id). */
6
22
  hostAssetId: string;
7
- /** Proxmox node name (what `qm`/the API call the node). */
8
- pveNode: string;
9
- /** Root-SSH address used only by the fallback adapter. */
10
- pveHost: string;
11
- /** Clone VLAN; null means the node's bridge is not VLAN-aware. */
23
+ /** thin storage for clones and templates (must be lvmthin). */
24
+ thin: string;
25
+ bridge: string;
26
+ /** clone VLAN tag; null = untagged. */
12
27
  vlan: number | null;
28
+ /** NFS mount options of the shared store on this node (the build node mounts it read-write). */
29
+ storeOptions: string;
13
30
  }
14
- export declare const STIG_NODES: Readonly<Record<StigNode, StigNodeConfig>>;
15
- export declare function stigNode(name: string | undefined): StigNodeConfig;
31
+ export declare const STIG_BUILD_NODE: StigNodeName;
32
+ /** The bridge the canonical `lab-inventory stig clone` puts clones on; a node whose clone bridge differs uses the root-SSH path. */
33
+ export declare const STIG_PROVIDER_BRIDGE = "vmbr0";
34
+ export declare const STIG_STORE: Readonly<{
35
+ name: "ct-stig-images";
36
+ server: "192.168.68.125";
37
+ export: "/volume2/sftp/ct-stig-images";
38
+ mount: "/mnt/pve/ct-stig-images";
39
+ }>;
40
+ export declare const STIG_EVIDENCE_FPR = "2FE4453D39CA4DE01FD688924E47BB3A054E8D86";
41
+ export declare const STIG_IMAGE_KEEP_VERSIONS = 3;
42
+ export declare const STIG_SIGNING_SECRET = "STIG_EVIDENCE_SIGNING_KEY";
43
+ /** minis: vmbr0. proxmox (.177): vmbr1 is the VLAN-aware bridge every guest and the host IP use; its vmbr0 uplink carries no VLAN 126. */
44
+ export declare const STIG_NODE_MAP: Readonly<Record<StigNodeName, StigNode>>;
45
+ export declare function isStigNodeName(value: unknown): value is StigNodeName;
46
+ /** `ibm64` -> `prox-ibm64`; a canonical name is returned as is; anything else is undefined. */
47
+ export declare function canonicalNodeName(value: unknown): StigNodeName | undefined;
48
+ /** The node with environment overrides applied. Values land in shell command lines, so each is validated. */
49
+ export declare function resolveStigNode(input: string, env?: NodeJS.ProcessEnv): StigNode;
50
+ /** `bridge=vmbr0,tag=126` (tag omitted when untagged). */
51
+ export declare const bridgeSpec: (node: Pick<StigNode, "bridge" | "vlan">) => string;
52
+ /** The node whose ApplianceClaim spec.node matches; a claim without spec.node is a minis claim. */
53
+ export declare function nodeForClaimNode(claimNode: unknown, env?: NodeJS.ProcessEnv): StigNode | null;
54
+ /** Claim name of a synced (or built) template: tpl-<template> on the build node, tpl-<template>-<node> elsewhere. */
55
+ export declare const templateClaimName: (template: string, node: StigNodeName) => string;
16
56
  //# sourceMappingURL=nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/stig/nodes.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACrD,eAAO,MAAM,eAAe,EAAE,SAAS,QAAQ,EAAkC,CAAC;AAElF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,QAAQ,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAIhE,CAAC;AAEH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAKjE"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../src/stig/nodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,eAAe,6CAA8C,CAAC;AAC3E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5D,wHAAwH;AACxH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAA0C,CAAC;AAChH,eAAO,MAAM,qBAAqB,EAA8D,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAEtH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,gGAAgG;IAChG,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,YAAsB,CAAC;AACrD,oIAAoI;AACpI,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,eAAO,MAAM,UAAU;;;;;EAKrB,CAAC;AACH,eAAO,MAAM,iBAAiB,6CAA6C,CAAC;AAC5E,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAE/D,0IAA0I;AAC1I,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAIjE,CAAC;AAKH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAG1E;AAED,6GAA6G;AAC7G,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,QAAQ,CA4B7F;AAED,0DAA0D;AAC1D,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,KAAG,MAAiF,CAAC;AAEvJ,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,QAAQ,GAAG,IAAI,CAO1G;AAED,qHAAqH;AACrH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,EAAE,MAAM,YAAY,KAAG,MAAoF,CAAC"}
@@ -1,14 +1,93 @@
1
- export const STIG_NODE_NAMES = ["minis", "ibm64", "proxmox"];
2
- export const STIG_NODES = Object.freeze({
3
- minis: { claimNode: "minis", hostAssetId: "proxmox-minis-lab", pveNode: "minis", pveHost: "192.168.123.178", vlan: 126 },
4
- ibm64: { claimNode: "ibm64", hostAssetId: "proxmox-ibm64", pveNode: "prox-ibm64", pveHost: "192.168.123.176", vlan: 126 },
5
- proxmox: { claimNode: "proxmox", hostAssetId: "proxmox-lab", pveNode: "proxmox", pveHost: "192.168.123.177", vlan: null },
1
+ /**
2
+ * STIG node map: the single source of per-node host, claim node, thin storage, bridge and VLAN for the three
3
+ * standalone Proxmox nodes, plus the constants of the shared image store. Same values as `nodes.conf` in the
4
+ * ct-meta `rhel8-stig-template` skill (tools/stig-parity.mjs `dist` diffs them).
5
+ *
6
+ * Any field can be overridden for one process with STIG_NODE_<FIELD>_<NODE> (NODE upper-cased, `-` as `_`), for
7
+ * example STIG_NODE_VLAN_PROXMOX= for untagged, or STIG_NODE_HOST_MINIS=... Fields: HOST CLAIM_NODE THIN BRIDGE VLAN.
8
+ * The legacy CT_LAB_STIG_PVE_HOST still selects the minis (build node) host.
9
+ */
10
+ export const STIG_NODE_NAMES = ["minis", "proxmox", "prox-ibm64"];
11
+ /** Names accepted on input and mapped to the canonical node (`ibm64` is the ApplianceClaim node name of prox-ibm64). */
12
+ export const STIG_NODE_ALIASES = Object.freeze({ ibm64: "prox-ibm64" });
13
+ export const STIG_NODE_INPUT_NAMES = [...STIG_NODE_NAMES, ...Object.keys(STIG_NODE_ALIASES)];
14
+ export const STIG_BUILD_NODE = "minis";
15
+ /** The bridge the canonical `lab-inventory stig clone` puts clones on; a node whose clone bridge differs uses the root-SSH path. */
16
+ export const STIG_PROVIDER_BRIDGE = "vmbr0";
17
+ export const STIG_STORE = Object.freeze({
18
+ name: "ct-stig-images",
19
+ server: "192.168.68.125",
20
+ export: "/volume2/sftp/ct-stig-images",
21
+ mount: "/mnt/pve/ct-stig-images",
6
22
  });
7
- export function stigNode(name) {
8
- const n = (name ?? "minis");
9
- const cfg = STIG_NODES[n];
10
- if (!cfg)
11
- throw new Error(`unknown node '${name}'; use one of ${STIG_NODE_NAMES.join(", ")}`);
12
- return cfg;
23
+ export const STIG_EVIDENCE_FPR = "2FE4453D39CA4DE01FD688924E47BB3A054E8D86";
24
+ export const STIG_IMAGE_KEEP_VERSIONS = 3;
25
+ export const STIG_SIGNING_SECRET = "STIG_EVIDENCE_SIGNING_KEY";
26
+ /** minis: vmbr0. proxmox (.177): vmbr1 is the VLAN-aware bridge every guest and the host IP use; its vmbr0 uplink carries no VLAN 126. */
27
+ export const STIG_NODE_MAP = Object.freeze({
28
+ minis: Object.freeze({ name: "minis", host: "192.168.123.178", claimNode: "minis", hostAssetId: "proxmox-minis-lab", thin: "local-lvm", bridge: "vmbr0", vlan: 126, storeOptions: "vers=3" }),
29
+ proxmox: Object.freeze({ name: "proxmox", host: "192.168.123.177", claimNode: "proxmox", hostAssetId: "proxmox-lab", thin: "local-lvm", bridge: "vmbr1", vlan: 126, storeOptions: "vers=3,ro" }),
30
+ "prox-ibm64": Object.freeze({ name: "prox-ibm64", host: "192.168.123.176", claimNode: "ibm64", hostAssetId: "proxmox-ibm64", thin: "local-lvm", bridge: "vmbr0", vlan: 126, storeOptions: "vers=3,ro" }),
31
+ });
32
+ const HOST_RE = /^[A-Za-z0-9]([A-Za-z0-9.-]{0,251}[A-Za-z0-9])?$/;
33
+ const LABEL_RE = /^[A-Za-z0-9][A-Za-z0-9_.-]{0,62}$/;
34
+ export function isStigNodeName(value) {
35
+ return typeof value === "string" && STIG_NODE_NAMES.includes(value);
36
+ }
37
+ /** `ibm64` -> `prox-ibm64`; a canonical name is returned as is; anything else is undefined. */
38
+ export function canonicalNodeName(value) {
39
+ if (isStigNodeName(value))
40
+ return value;
41
+ return typeof value === "string" && Object.hasOwn(STIG_NODE_ALIASES, value) ? STIG_NODE_ALIASES[value] : undefined;
42
+ }
43
+ /** The node with environment overrides applied. Values land in shell command lines, so each is validated. */
44
+ export function resolveStigNode(input, env = process.env) {
45
+ const name = canonicalNodeName(input);
46
+ if (!name)
47
+ throw new Error(`unknown node '${input}' (one of: ${STIG_NODE_NAMES.join(", ")})`);
48
+ const base = STIG_NODE_MAP[name];
49
+ const key = name.toUpperCase().replace(/-/g, "_");
50
+ const ov = (field) => env[`STIG_NODE_${field}_${key}`];
51
+ const pick = (field, dflt, re) => {
52
+ const v = ov(field);
53
+ if (v === undefined)
54
+ return dflt;
55
+ if (!re.test(v))
56
+ throw new Error(`STIG_NODE_${field}_${key} is not a valid ${field.toLowerCase().replace("_", " ")}`);
57
+ return v;
58
+ };
59
+ const legacyHost = name === STIG_BUILD_NODE ? env.CT_LAB_STIG_PVE_HOST?.trim() || undefined : undefined;
60
+ const vlanRaw = ov("VLAN");
61
+ let vlan = base.vlan;
62
+ if (vlanRaw !== undefined) {
63
+ if (vlanRaw === "")
64
+ vlan = null;
65
+ else if (/^\d{1,4}$/.test(vlanRaw) && Number(vlanRaw) >= 1 && Number(vlanRaw) <= 4094)
66
+ vlan = Number(vlanRaw);
67
+ else
68
+ throw new Error(`STIG_NODE_VLAN_${key} must be empty or 1-4094`);
69
+ }
70
+ return {
71
+ ...base,
72
+ host: pick("HOST", legacyHost ?? base.host, HOST_RE),
73
+ claimNode: pick("CLAIM_NODE", base.claimNode, LABEL_RE),
74
+ thin: pick("THIN", base.thin, LABEL_RE),
75
+ bridge: pick("BRIDGE", base.bridge, LABEL_RE),
76
+ vlan,
77
+ };
78
+ }
79
+ /** `bridge=vmbr0,tag=126` (tag omitted when untagged). */
80
+ export const bridgeSpec = (node) => `bridge=${node.bridge}${node.vlan === null ? "" : `,tag=${node.vlan}`}`;
81
+ /** The node whose ApplianceClaim spec.node matches; a claim without spec.node is a minis claim. */
82
+ export function nodeForClaimNode(claimNode, env = process.env) {
83
+ const want = typeof claimNode === "string" && claimNode ? claimNode : "minis";
84
+ for (const n of STIG_NODE_NAMES) {
85
+ const node = resolveStigNode(n, env);
86
+ if (node.claimNode === want)
87
+ return node;
88
+ }
89
+ return null;
13
90
  }
91
+ /** Claim name of a synced (or built) template: tpl-<template> on the build node, tpl-<template>-<node> elsewhere. */
92
+ export const templateClaimName = (template, node) => (node === STIG_BUILD_NODE ? `tpl-${template}` : `tpl-${template}-${node}`);
14
93
  //# sourceMappingURL=nodes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/stig/nodes.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAalF,MAAM,CAAC,MAAM,UAAU,GAA+C,MAAM,CAAC,MAAM,CAAC;IAClF,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE;IACxH,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE;IACzH,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE;CAC1H,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,IAAwB;IAC/C,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAa,CAAC;IACxC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,iBAAiB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9F,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/stig/nodes.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,8 @@ export interface GuestShell {
35
35
  fileExists(path: string): Promise<boolean>;
36
36
  /** Copies a remote directory's contents into a local directory. */
37
37
  fetchDir(remote: string, localDir: string): Promise<void>;
38
+ /** Copies one local file to a remote path (the OVAL feed, for evidence collection). */
39
+ putFile(localFile: string, remote: string): Promise<void>;
38
40
  }
39
41
  /** Doppler by NAME. Values never appear in logs or return values of the runner. */
40
42
  export interface SecretStore {
@@ -60,7 +62,7 @@ export interface ClaimPort {
60
62
  vmName: string;
61
63
  ttlHours: number;
62
64
  node: string;
63
- stig: Record<string, unknown>;
65
+ stig?: Record<string, unknown>;
64
66
  }): Promise<ClaimRecord>;
65
67
  /** Blocks until an operator reconciled the claim to Ready, or throws. */
66
68
  waitReady(name: string): Promise<ClaimRecord>;
@@ -132,11 +134,88 @@ export interface StigProvider {
132
134
  }): Promise<void>;
133
135
  guestIp(vmid: number, hostAssetId: string): Promise<string>;
134
136
  }
137
+ /** Thin-pool facts of one storage on one node. */
138
+ export interface StoragePort {
139
+ /** `pvesm status --storage`: the storage type (lvmthin is required) and the integer percent used. */
140
+ status(host: string, storage: string): Promise<{
141
+ type: string;
142
+ percent: number;
143
+ }>;
144
+ /** Mapped (allocated) bytes of a template's base LV. Activates it read-only with -K only if inactive, then restores. */
145
+ mappedBytes(host: string, vmid: number): Promise<{
146
+ lvSizeBytes: number;
147
+ mappedPercent: number;
148
+ }>;
149
+ }
150
+ export interface DetachedRun {
151
+ state: "done" | "running" | "failed";
152
+ log: string;
153
+ }
154
+ /**
155
+ * The shared image store (Proxmox storage `ct-stig-images`, read-write on the build node, read-only elsewhere) as seen
156
+ * from one node. Paths are absolute on that node. Every method is a root-SSH fallback (the canonical lab-inventory
157
+ * CLI has no image-store verb).
158
+ */
159
+ export interface ImageStorePort {
160
+ /** true when the store is mounted read-write on the node. */
161
+ isWritable(host: string): Promise<boolean>;
162
+ /** null only when the file is confirmed absent; any other failure throws. */
163
+ readText(host: string, path: string): Promise<string | null>;
164
+ writeText(host: string, path: string, content: string): Promise<void>;
165
+ /** Copies a (large) file from the node to a local path, for signing. */
166
+ fetchFile(host: string, path: string, localFile: string): Promise<void>;
167
+ fileSize(host: string, path: string): Promise<number>;
168
+ /** Runs the script detached (nohup) under `name` unless one is already running; polls until its done marker, failure, or the poll budget. */
169
+ runDetached(host: string, a: {
170
+ name: string;
171
+ script: string;
172
+ doneMarker: string;
173
+ polls: number;
174
+ intervalMs: number;
175
+ }): Promise<DetachedRun>;
176
+ exec(host: string, script: string): Promise<ShellResult>;
177
+ /** true when any process on the node is importing `import/<template>.qcow2`. */
178
+ importing(host: string, template: string): Promise<boolean>;
179
+ /** Runs the pinned verify-image.sh on the node: fingerprint, index.json, template.json and qcow2 sha256 + signatures. Throws on any mismatch. */
180
+ verify(host: string, template: string, fingerprint: string): Promise<{
181
+ qcow2Sha256: string;
182
+ templateJsonSha256: string;
183
+ }>;
184
+ }
185
+ /** Detached GPG signatures with the evidence key (Doppler STIG_EVIDENCE_SIGNING_KEY into an ephemeral GNUPGHOME, SHA-512). Never exposes the key. */
186
+ export interface GpgPort {
187
+ /** Writes `<file>.asc` beside each file; throws unless the signing key is the pinned fingerprint. Returns the public key (armored). */
188
+ signDetached(files: string[], fingerprint: string): Promise<{
189
+ fingerprint: string;
190
+ publicKey: string;
191
+ }>;
192
+ }
193
+ /** Local (controller-side) side effects of evidence collection: the ct-meta generators, tool probes and public downloads. */
194
+ export interface LocalPort {
195
+ /** Runs argv[0] with the rest as arguments (no shell). Exit 127 when the program is missing. */
196
+ run(argv: string[], opts?: {
197
+ cwd?: string;
198
+ env?: Record<string, string>;
199
+ timeoutMs?: number;
200
+ }): Promise<ShellResult>;
201
+ /** HTTP GET to a file (a public feed or schema); returns the response headers, lower-cased. */
202
+ download(url: string, dest: string): Promise<{
203
+ headers: Record<string, string>;
204
+ }>;
205
+ }
135
206
  export interface StigDeps {
136
- /** Canonical provider for guest mutations; absent means the root-SSH `qm` fallback. */
207
+ /** Canonical provider for guest mutations; absent means the root-SSH `qm` fallback. Clones on a node whose clone bridge is not the provider's (vmbr0) also use the fallback. */
137
208
  provider?: StigProvider;
209
+ /** root shell on the build node (minis). */
138
210
  pve: PveShell;
211
+ /** root shell on any node's host (the node map). */
212
+ pveFor: (host: string) => PveShell;
213
+ storage: StoragePort;
214
+ store: ImageStorePort;
215
+ gpg: GpgPort;
139
216
  guest: GuestShell;
217
+ /** Controller-side commands and downloads (evidence collection). */
218
+ local: LocalPort;
140
219
  secrets: SecretStore;
141
220
  claims: ClaimPort;
142
221
  packer: PackerPort;
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/stig/ports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../src/stig/ports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** Small Proxmox helpers shared by the STIG runner and the image distribution (no side effects of their own). */
2
+ import type { ClaimRecord, PveShell } from "./ports.js";
3
+ export type Guest = {
4
+ vmid: number;
5
+ name: string;
6
+ template?: number;
7
+ tags?: string;
8
+ };
9
+ export declare const VMID_RANGE: {
10
+ readonly min: 8100;
11
+ readonly max: 8899;
12
+ };
13
+ export declare const shq: (s: string) => string;
14
+ export declare function listGuests(shell: PveShell): Promise<Guest[]>;
15
+ /** Lowest free VMID in 8100-8899 that is neither a live guest on the node nor named by any claim. */
16
+ export declare function lowestFreeVmid(guests: Guest[], claims: ClaimRecord[], min?: 8100): number;
17
+ /** `pvesm status --storage X` output: type and the integer percent used (NaN when unreadable). */
18
+ export declare function parsePvesmStatus(stdout: string): {
19
+ type: string;
20
+ percent: number;
21
+ };
22
+ //# sourceMappingURL=pve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pve.d.ts","sourceRoot":"","sources":["../../../src/stig/pve.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,MAAM,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,eAAO,MAAM,UAAU;;;CAAoC,CAAC;AAC5D,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,KAAG,MAAyC,CAAC;AAE1E,wBAAsB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAIlE;AAED,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,OAAiB,GAAG,MAAM,CAKnG;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAIlF"}
@@ -0,0 +1,26 @@
1
+ export const VMID_RANGE = { min: 8100, max: 8899 };
2
+ export const shq = (s) => `'${s.replace(/'/g, `'\\''`)}'`;
3
+ export async function listGuests(shell) {
4
+ const r = await shell.run("pvesh get /cluster/resources --type vm --output-format json");
5
+ if (r.code !== 0)
6
+ throw new Error("could not list Proxmox guests");
7
+ return JSON.parse(r.stdout);
8
+ }
9
+ /** Lowest free VMID in 8100-8899 that is neither a live guest on the node nor named by any claim. */
10
+ export function lowestFreeVmid(guests, claims, min = VMID_RANGE.min) {
11
+ const used = new Set(guests.map((g) => g.vmid));
12
+ for (const c of claims)
13
+ if (Number.isInteger(c.spec?.vmid))
14
+ used.add(c.spec.vmid);
15
+ for (let v = min; v <= VMID_RANGE.max; v++)
16
+ if (!used.has(v))
17
+ return v;
18
+ throw new Error(`no free VMID in ${min}-${VMID_RANGE.max}`);
19
+ }
20
+ /** `pvesm status --storage X` output: type and the integer percent used (NaN when unreadable). */
21
+ export function parsePvesmStatus(stdout) {
22
+ const row = (stdout.split("\n")[1] ?? "").trim().split(/\s+/);
23
+ const n = Number.parseFloat((row[row.length - 1] ?? "").replace("%", ""));
24
+ return { type: row[1] ?? "", percent: Number.isFinite(n) ? Math.floor(n) : Number.NaN };
25
+ }
26
+ //# sourceMappingURL=pve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pve.js","sourceRoot":"","sources":["../../../src/stig/pve.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAW,CAAC;AAC5D,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAe;IAC9C,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IACzF,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAY,CAAC;AACzC,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,cAAc,CAAC,MAAe,EAAE,MAAqB,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG;IACzF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACvE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC1F,CAAC"}