@forgezero/agent 0.1.22 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/dist/cli/agent-install.d.ts +10 -0
- package/dist/fz-agent.js +494 -218
- package/dist/fz.js +221 -18
- package/dist/guest-enrolment.d.ts +9 -0
- package/dist/guest-enrolment.js +22 -0
- package/dist/index.d.ts +5 -0
- package/dist/lifecycle-helper.d.ts +36 -0
- package/dist/lifecycle-helper.js +216 -0
- package/dist/metal-helper-socket.js +8 -532
- package/dist/metal-provision.d.ts +1 -6
- package/dist/metal-provision.js +8 -536
- package/dist/migration-pull.d.ts +55 -0
- package/dist/migration-pull.js +185 -0
- package/dist/provision.d.ts +22 -0
- package/dist/provision.js +215 -16
- package/dist/version.d.ts +1 -1
- package/dist/warp-config.d.ts +20 -0
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -135,6 +135,25 @@ platform or tenant release is a durable API row bound to one exact compute:
|
|
|
135
135
|
code, and only an awaited successful pipeline writes `deployed`. An expired
|
|
136
136
|
claim can be recovered; its stale token cannot renew or finish.
|
|
137
137
|
|
|
138
|
+
Compute replacement uses the same outbound pattern through
|
|
139
|
+
`@forgezero/agent/migration-pull`: claim one action for this exact compute,
|
|
140
|
+
renew its fencing lease while the awaited function runs, and acknowledge the
|
|
141
|
+
result before accepting more work. The public function accepts the executor as
|
|
142
|
+
an async callback so an embedding Agent can keep privilege and OS policy outside
|
|
143
|
+
the transport. Node evidence is deliberately local-only; it cannot claim
|
|
144
|
+
Agency quorum, replication completion, seed residency, edge exclusion or
|
|
145
|
+
Cloudflare route existence on behalf of the controller.
|
|
146
|
+
|
|
147
|
+
The managed daemon uses `@forgezero/agent/lifecycle-helper` as that executor.
|
|
148
|
+
It is a separate root service behind a group-scoped Unix socket and accepts only
|
|
149
|
+
fixed lifecycle operations. Unit names and loopback health endpoints come from
|
|
150
|
+
a root-owned profile; a signed claim cannot supply a command or path. For a
|
|
151
|
+
cross-network database member, the common installer enrolls the headless WARP
|
|
152
|
+
client from systemd credentials materialized only in `/run`. Readiness requires
|
|
153
|
+
WARP to be connected and the controller-selected private peer IP and database
|
|
154
|
+
port to be reachable. Database traffic is never exposed through a public IP,
|
|
155
|
+
public hostname, or inbound firewall rule.
|
|
156
|
+
|
|
138
157
|
The same package also runs the identity-only Metal Agent. It initiates outbound
|
|
139
158
|
hybrid-signed HTTPS and requires request-bound PQ-sealed responses while pulling
|
|
140
159
|
only claims assigned to its enrolled hostname, then passes
|
|
@@ -144,6 +163,11 @@ read Vault data, accept arbitrary commands, or retain tenant credentials. Root
|
|
|
144
163
|
SSH is an operator-only platform-genesis/recovery path, not the normal tenant
|
|
145
164
|
dispatch mechanism.
|
|
146
165
|
|
|
166
|
+
New guests also call this same public `fz agent install --apply --enrol` path
|
|
167
|
+
from cloud-init. Metal provisioning does not carry a second handwritten Agent
|
|
168
|
+
unit or deployment runner, so platform and tenant guests cannot drift at that
|
|
169
|
+
foundation boundary.
|
|
170
|
+
|
|
147
171
|
Shutdown has one process-wide deadline. New deployment claims and background
|
|
148
172
|
sync stop first, claimed work drains under its lease fence, and only then do the
|
|
149
173
|
queues and application socket close. Vault/attestation calls or a stale local
|
|
@@ -50,6 +50,16 @@ export interface InstallOptions {
|
|
|
50
50
|
deploymentEnvironment?: Record<string, string>;
|
|
51
51
|
deploymentCredentials?: Record<string, string>;
|
|
52
52
|
pullDeployments?: boolean;
|
|
53
|
+
pullMigrations?: boolean;
|
|
54
|
+
lifecycleProfilePath?: string;
|
|
55
|
+
lifecycleHelperSocketPath?: string;
|
|
56
|
+
warpOrganization?: string;
|
|
57
|
+
warpClientIdCredentialPath?: string;
|
|
58
|
+
warpClientSecretCredentialPath?: string;
|
|
59
|
+
cloudflareAccountId?: string;
|
|
60
|
+
cloudflareTunnelId?: string;
|
|
61
|
+
cloudflareVirtualNetworkId?: string;
|
|
62
|
+
cloudflareWarpPolicyId?: string;
|
|
53
63
|
binPath?: string;
|
|
54
64
|
sourceBinPath?: string;
|
|
55
65
|
user?: string;
|