@forgezero/agent 0.1.62 → 0.1.64

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.
@@ -292,7 +292,7 @@ function systemdAgentEgressDirectives(loopbackTcpPorts = []) {
292
292
  }
293
293
 
294
294
  // src/version.ts
295
- var VERSION = "0.1.62";
295
+ var VERSION = "0.1.64";
296
296
 
297
297
  // src/otel-collector.ts
298
298
  var FORGEZERO_OTEL_COLLECTOR_UNIT = "forgezero-otel-collector.service";
@@ -380,8 +380,6 @@ function guestBootstrapOperations(profile, attested = Boolean(profile.confidenti
380
380
  "FZ_AGENT_USER=forgezero-agent",
381
381
  "FZ_SOCKET_PATH=/run/forgezero/vault.sock",
382
382
  "FZ_SEED_CREDENTIAL_PATH=/etc/forgezero/creds/agent-seed.cred",
383
- "FZ_GIT_CREDENTIAL_PATH=/etc/forgezero/creds/git-deploy-key.cred",
384
- "FZ_GIT_PUBLIC_KEY_PATH=/etc/forgezero/git/deploy.pub",
385
383
  "FZ_DEPLOY_ROOT=/opt/forgezero",
386
384
  `FZ_DEPLOY_PULL=${hasEnrolment}`,
387
385
  `FZ_AGENT_EGRESS_ENFORCE=${hasEnrolment}`,
@@ -380,8 +380,6 @@ function guestBootstrapOperations(profile, attested = Boolean(profile.confidenti
380
380
  "FZ_AGENT_USER=forgezero-agent",
381
381
  "FZ_SOCKET_PATH=/run/forgezero/vault.sock",
382
382
  "FZ_SEED_CREDENTIAL_PATH=/etc/forgezero/creds/agent-seed.cred",
383
- "FZ_GIT_CREDENTIAL_PATH=/etc/forgezero/creds/git-deploy-key.cred",
384
- "FZ_GIT_PUBLIC_KEY_PATH=/etc/forgezero/git/deploy.pub",
385
383
  "FZ_DEPLOY_ROOT=/opt/forgezero",
386
384
  `FZ_DEPLOY_PULL=${hasEnrolment}`,
387
385
  `FZ_AGENT_EGRESS_ENFORCE=${hasEnrolment}`,
@@ -25,7 +25,35 @@ export interface OperatorMetalBootstrapRequest {
25
25
  sshPublicKeyFiles: string[];
26
26
  };
27
27
  }
28
- export type OperatorPlatformBootstrapMode = 'prepare' | 'apply' | 'status';
28
+ export interface OperatorPlatformBootstrapFleetRequest {
29
+ kind: 'platform-fleet-remote';
30
+ requests: readonly [string, string, string];
31
+ }
32
+ export interface OperatorPlatformBootstrapFleetPlan {
33
+ kind: 'platform-fleet-remote';
34
+ mode: OperatorPlatformBootstrapMode;
35
+ mutation: boolean;
36
+ environment: PlatformGenesisEnvironment;
37
+ nodes: readonly {
38
+ computeReference: string;
39
+ address: string;
40
+ via?: string;
41
+ }[];
42
+ secretInputs: readonly string[];
43
+ }
44
+ export interface OperatorPlatformBootstrapFleetOutcome {
45
+ computeReference: string;
46
+ address: string;
47
+ ok: boolean;
48
+ output?: string;
49
+ error?: string;
50
+ }
51
+ export interface OperatorPlatformBootstrapFleetResult {
52
+ plan: OperatorPlatformBootstrapFleetPlan;
53
+ ok: boolean;
54
+ outcomes: readonly OperatorPlatformBootstrapFleetOutcome[];
55
+ }
56
+ export type OperatorPlatformBootstrapMode = 'apply' | 'status';
29
57
  export type OperatorMetalBootstrapMode = 'apply' | 'genesis' | 'rehearsal' | 'rehearsal-cleanup' | 'status';
30
58
  export interface OperatorPlatformBootstrapPlan {
31
59
  kind: 'platform-remote';
@@ -68,10 +96,16 @@ export interface OperatorPlatformBootstrapOptions {
68
96
  fzAgentPath?: string;
69
97
  fzGitSshPath?: string;
70
98
  }
99
+ export declare function createOperatorSshHop(input: Omit<OperatorSshHop, 'hostKeySha256'>): OperatorSshHop;
71
100
  export declare function readOperatorPlatformBootstrapRequest(path: string): OperatorPlatformBootstrapRequest;
101
+ export declare function writeOperatorPlatformBootstrapRequest(path: string, request: OperatorPlatformBootstrapRequest): string;
102
+ export declare function readOperatorPlatformBootstrapFleetRequest(path: string): OperatorPlatformBootstrapFleetRequest;
103
+ export declare function writeOperatorPlatformBootstrapFleetRequest(path: string, requestFiles: readonly [string, string, string]): string;
72
104
  export declare function readOperatorMetalBootstrapRequest(path: string): OperatorMetalBootstrapRequest;
105
+ export declare function writeOperatorMetalBootstrapRequest(path: string, request: OperatorMetalBootstrapRequest): string;
73
106
  export declare function planOperatorMetalBootstrap(request: OperatorMetalBootstrapRequest, mode: OperatorMetalBootstrapMode): OperatorMetalBootstrapPlan;
74
107
  export declare function planOperatorPlatformBootstrap(request: OperatorPlatformBootstrapRequest, mode: OperatorPlatformBootstrapMode): OperatorPlatformBootstrapPlan;
108
+ export declare function planOperatorPlatformFleetBootstrap(fleet: OperatorPlatformBootstrapFleetRequest, mode: OperatorPlatformBootstrapMode): OperatorPlatformBootstrapFleetPlan;
75
109
  /**
76
110
  * Run one reviewed operator action. No private SSH key, credential value or
77
111
  * management token is placed in argv; OpenSSH selects the matching private key
@@ -83,6 +117,14 @@ export declare function applyOperatorPlatformBootstrap(request: OperatorPlatform
83
117
  plan: OperatorPlatformBootstrapPlan;
84
118
  output: string;
85
119
  }>;
120
+ /**
121
+ * Run the exact three-node genesis fleet from one attended secret collection.
122
+ * Every request is fully validated before the first SSH connection. Nodes run
123
+ * concurrently because the three-member Agency cannot form sequentially.
124
+ */
125
+ export declare function applyOperatorPlatformFleetBootstrap(fleet: OperatorPlatformBootstrapFleetRequest, mode: OperatorPlatformBootstrapMode, options?: OperatorPlatformBootstrapOptions & {
126
+ secrets?: PlatformBootstrapSecrets;
127
+ }): Promise<OperatorPlatformBootstrapFleetResult>;
86
128
  /**
87
129
  * Install/bootstrap one blank metal host or provision its exact three-node
88
130
  * platform seed through the same pinned SSH transport used for guest bootstrap.