@serfab/cadre-host 0.8.1 → 0.10.0
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/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.js +1 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/self-label.d.ts +36 -0
- package/dist/auth/self-label.js +57 -0
- package/dist/auth/self-label.js.map +1 -0
- package/dist/auth/trust-circle.d.ts +36 -9
- package/dist/auth/trust-circle.js +40 -20
- package/dist/auth/trust-circle.js.map +1 -1
- package/dist/auth/types.d.ts +2 -2
- package/dist/bin/host.js +291 -54
- package/dist/bin/host.js.map +1 -1
- package/dist/donation/__tests__/fake-orchestrator.d.ts +103 -0
- package/dist/donation/__tests__/fake-orchestrator.js +180 -0
- package/dist/donation/__tests__/fake-orchestrator.js.map +1 -0
- package/dist/donation/donation-service.d.ts +361 -0
- package/dist/donation/donation-service.js +763 -0
- package/dist/donation/donation-service.js.map +1 -0
- package/dist/donation/donation-store.d.ts +49 -0
- package/dist/donation/donation-store.js +148 -0
- package/dist/donation/donation-store.js.map +1 -0
- package/dist/donation/donation-supervisor.d.ts +167 -0
- package/dist/donation/donation-supervisor.js +341 -0
- package/dist/donation/donation-supervisor.js.map +1 -0
- package/dist/donation/grant-service.d.ts +71 -0
- package/dist/donation/grant-service.js +163 -0
- package/dist/donation/grant-service.js.map +1 -0
- package/dist/donation/grant-store.d.ts +38 -0
- package/dist/donation/grant-store.js +135 -0
- package/dist/donation/grant-store.js.map +1 -0
- package/dist/donation/index.d.ts +20 -0
- package/dist/donation/index.js +17 -0
- package/dist/donation/index.js.map +1 -0
- package/dist/donation/types.d.ts +201 -0
- package/dist/donation/types.js +40 -0
- package/dist/donation/types.js.map +1 -0
- package/dist/index.d.ts +9 -5
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/installer/config.d.ts +26 -0
- package/dist/installer/config.js +13 -0
- package/dist/installer/config.js.map +1 -1
- package/dist/installer/index.d.ts +2 -0
- package/dist/installer/index.js +3 -0
- package/dist/installer/index.js.map +1 -1
- package/dist/installer/wizard.d.ts +4 -0
- package/dist/installer/wizard.js +5 -1
- package/dist/installer/wizard.js.map +1 -1
- package/dist/nat/nat-service.d.ts +5 -5
- package/dist/nat/nat-service.js +9 -9
- package/dist/nat/nat-service.js.map +1 -1
- package/dist/nat/types.d.ts +1 -1
- package/dist/orchestrator/host-process-orchestrator.d.ts +144 -32
- package/dist/orchestrator/host-process-orchestrator.js +397 -128
- package/dist/orchestrator/host-process-orchestrator.js.map +1 -1
- package/dist/orchestrator/index.d.ts +3 -3
- package/dist/orchestrator/index.js +1 -1
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/node-identity.d.ts +26 -0
- package/dist/orchestrator/node-identity.js +36 -0
- package/dist/orchestrator/node-identity.js.map +1 -0
- package/dist/orchestrator/port-allocator.d.ts +14 -0
- package/dist/orchestrator/port-allocator.js +45 -0
- package/dist/orchestrator/port-allocator.js.map +1 -1
- package/dist/orchestrator/state-store.d.ts +5 -5
- package/dist/orchestrator/state-store.js +2 -2
- package/dist/orchestrator/state-store.js.map +1 -1
- package/dist/orchestrator/types.d.ts +8 -8
- package/dist/owner/index.d.ts +11 -0
- package/dist/owner/index.js +11 -0
- package/dist/owner/index.js.map +1 -0
- package/dist/owner/owner-node-client.d.ts +110 -0
- package/dist/{authority/authority-node-client.js → owner/owner-node-client.js} +58 -17
- package/dist/owner/owner-node-client.js.map +1 -0
- package/dist/server/error-handler.d.ts +22 -1
- package/dist/server/error-handler.js +64 -1
- package/dist/server/error-handler.js.map +1 -1
- package/dist/server/events/types.d.ts +3 -0
- package/dist/server/index.d.ts +33 -2
- package/dist/server/index.js +43 -16
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/grants-admin.d.ts +17 -0
- package/dist/server/routes/grants-admin.js +32 -0
- package/dist/server/routes/grants-admin.js.map +1 -0
- package/dist/server/routes/grants.d.ts +28 -0
- package/dist/server/routes/grants.js +182 -0
- package/dist/server/routes/grants.js.map +1 -0
- package/dist/server/routes/nodes.d.ts +5 -4
- package/dist/server/routes/nodes.js +19 -18
- package/dist/server/routes/nodes.js.map +1 -1
- package/dist/server/routes/settings.d.ts +6 -1
- package/dist/server/routes/settings.js +5 -2
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/status.d.ts +8 -4
- package/dist/server/routes/status.js +9 -4
- package/dist/server/routes/status.js.map +1 -1
- package/dist/server/routes/strands.d.ts +20 -0
- package/dist/server/routes/strands.js +38 -0
- package/dist/server/routes/strands.js.map +1 -0
- package/dist/strands/index.d.ts +7 -0
- package/dist/strands/index.js +6 -0
- package/dist/strands/index.js.map +1 -0
- package/dist/strands/strand-service.d.ts +50 -0
- package/dist/strands/strand-service.js +103 -0
- package/dist/strands/strand-service.js.map +1 -0
- package/dist/strands/types.d.ts +93 -0
- package/dist/strands/types.js +23 -0
- package/dist/strands/types.js.map +1 -0
- package/dist/ui/assets/index-BVoqLjyX.css +1 -0
- package/dist/ui/assets/index-C-iks41M.js +17 -0
- package/dist/ui/assets/index-C-iks41M.js.map +1 -0
- package/dist/ui/index.html +2 -2
- package/dist/update/release-key.d.ts +1 -1
- package/dist/update/release-key.js +8 -6
- package/dist/update/release-key.js.map +1 -1
- package/package.json +5 -5
- package/src/__tests__/build-targets.test.ts +26 -0
- package/src/__tests__/global-setup.ts +51 -0
- package/src/__tests__/{host-authority.smoke.test.ts → host-owner.smoke.test.ts} +7 -7
- package/src/__tests__/orchestrator-env-scrub.test.ts +140 -0
- package/src/__tests__/orchestrator-node-identity.test.ts +204 -0
- package/src/__tests__/{orchestrator-authority.test.ts → orchestrator-owner.test.ts} +33 -33
- package/src/__tests__/orchestrator-pin-keys.test.ts +153 -0
- package/src/__tests__/orchestrator-push.test.ts +10 -10
- package/src/__tests__/orchestrator.test.ts +387 -6
- package/src/auth/__tests__/self-label.test.ts +85 -0
- package/src/auth/__tests__/trust-circle-integration.test.ts +152 -147
- package/src/auth/__tests__/trust-circle.test.ts +55 -11
- package/src/auth/index.ts +2 -0
- package/src/auth/self-label.ts +74 -0
- package/src/auth/trust-circle.ts +54 -22
- package/src/auth/types.ts +2 -2
- package/src/bin/host.ts +1299 -1038
- package/src/donation/__tests__/donation-service.test.ts +1068 -0
- package/src/donation/__tests__/donation-supervisor.test.ts +510 -0
- package/src/donation/__tests__/fake-orchestrator.test.ts +168 -0
- package/src/donation/__tests__/fake-orchestrator.ts +225 -0
- package/src/donation/__tests__/grant-service.test.ts +213 -0
- package/src/donation/__tests__/grant-store.test.ts +113 -0
- package/src/donation/donation-service.ts +962 -0
- package/src/donation/donation-store.ts +171 -0
- package/src/donation/donation-supervisor.ts +388 -0
- package/src/donation/grant-service.ts +200 -0
- package/src/donation/grant-store.ts +152 -0
- package/src/donation/index.ts +64 -0
- package/src/donation/types.ts +243 -0
- package/src/index.ts +51 -5
- package/src/installer/__tests__/config.test.ts +27 -1
- package/src/installer/__tests__/installer.smoke.test.ts +31 -1
- package/src/installer/__tests__/wizard.test.ts +5 -1
- package/src/installer/config.ts +34 -0
- package/src/installer/index.ts +5 -0
- package/src/installer/wizard.ts +12 -1
- package/src/nat/__tests__/nat-service.test.ts +5 -5
- package/src/nat/nat-service.ts +10 -10
- package/src/nat/types.ts +1 -1
- package/src/orchestrator/__tests__/node-identity.test.ts +62 -0
- package/src/orchestrator/host-process-orchestrator.ts +401 -134
- package/src/orchestrator/index.ts +3 -3
- package/src/orchestrator/node-identity.ts +40 -0
- package/src/orchestrator/port-allocator.ts +48 -0
- package/src/orchestrator/state-store.ts +7 -7
- package/src/orchestrator/types.ts +8 -8
- package/src/{authority/__tests__/authority-node-client.test.ts → owner/__tests__/owner-node-client.test.ts} +45 -17
- package/src/owner/index.ts +12 -0
- package/src/{authority/authority-node-client.ts → owner/owner-node-client.ts} +83 -23
- package/src/server/__tests__/error-handler.test.ts +22 -0
- package/src/server/__tests__/grants-admin-route.test.ts +73 -0
- package/src/server/__tests__/grants-route.test.ts +263 -0
- package/src/server/__tests__/nodes-route.test.ts +25 -25
- package/src/server/__tests__/server.smoke.test.ts +75 -0
- package/src/server/__tests__/settings-route.test.ts +17 -0
- package/src/server/__tests__/status-route.test.ts +21 -0
- package/src/server/__tests__/strands-route.test.ts +233 -0
- package/src/server/error-handler.ts +67 -1
- package/src/server/events/types.ts +1 -0
- package/src/server/index.ts +75 -17
- package/src/server/routes/grants-admin.ts +41 -0
- package/src/server/routes/grants.ts +210 -0
- package/src/server/routes/nodes.ts +19 -18
- package/src/server/routes/settings.ts +11 -3
- package/src/server/routes/status.ts +18 -8
- package/src/server/routes/strands.ts +54 -0
- package/src/strands/__tests__/strand-service.test.ts +165 -0
- package/src/strands/index.ts +14 -0
- package/src/strands/strand-service.ts +135 -0
- package/src/strands/types.ts +102 -0
- package/src/update/__tests__/release-key.test.ts +16 -3
- package/src/update/release-key.ts +8 -6
- package/dist/authority/authority-node-client.d.ts +0 -77
- package/dist/authority/authority-node-client.js.map +0 -1
- package/dist/authority/index.d.ts +0 -11
- package/dist/authority/index.js +0 -11
- package/dist/authority/index.js.map +0 -1
- package/dist/ui/assets/index-BlMXQPSw.js +0 -14
- package/dist/ui/assets/index-BlMXQPSw.js.map +0 -1
- package/dist/ui/assets/index-BwU5mJGF.css +0 -1
- package/src/authority/index.ts +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,GAEf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAA6C,MAAM,yBAAyB,CAAC;AACvG,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,eAAe,EACf,mBAAmB,GAGpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIhF,MAAM,GAAG,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ export interface WizardDefaults {
|
|
|
11
11
|
uiPort: number;
|
|
12
12
|
libp2pPort: number;
|
|
13
13
|
upnpEnabled: boolean;
|
|
14
|
+
/** Also run the host's own personal cadre here (founder persona). Default false. */
|
|
15
|
+
ownCadre: boolean;
|
|
14
16
|
}
|
|
15
17
|
export interface WizardAnswers {
|
|
16
18
|
dataDir: string;
|
|
@@ -18,6 +20,8 @@ export interface WizardAnswers {
|
|
|
18
20
|
libp2pPort: number;
|
|
19
21
|
upnpEnabled: boolean;
|
|
20
22
|
configureDdns: boolean;
|
|
23
|
+
/** Also run the host's own personal cadre here (founder persona). */
|
|
24
|
+
ownCadre: boolean;
|
|
21
25
|
}
|
|
22
26
|
export declare const DEFAULT_UI_PORT = 8765;
|
|
23
27
|
export declare const DEFAULT_LIBP2P_PORT = 4001;
|
package/dist/installer/wizard.js
CHANGED
|
@@ -15,6 +15,7 @@ export function defaultsForPlatform(platform) {
|
|
|
15
15
|
uiPort: DEFAULT_UI_PORT,
|
|
16
16
|
libp2pPort: DEFAULT_LIBP2P_PORT,
|
|
17
17
|
upnpEnabled: true,
|
|
18
|
+
ownCadre: false,
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
@@ -27,7 +28,10 @@ export async function runWizardWith(defaults, ask) {
|
|
|
27
28
|
const libp2pPort = parsePort(await ask('Cadre libp2p port', String(defaults.libp2pPort)), defaults.libp2pPort);
|
|
28
29
|
const upnpEnabled = parseBool(await ask('Attempt UPnP port mapping on this network? [Y/n]', defaults.upnpEnabled ? 'Y' : 'n'), defaults.upnpEnabled);
|
|
29
30
|
const configureDdns = parseBool(await ask('Configure DDNS now? [y/N]', 'N'), false);
|
|
30
|
-
|
|
31
|
+
// Founder persona (opt-in). Most installs just donate nodes to friends and
|
|
32
|
+
// answer no — a no leaves cadre-host donor-only (no owner node, no /auth+/nat).
|
|
33
|
+
const ownCadre = parseBool(await ask('Also run your own personal cadre on this machine? (most people just donating nodes to friends say no) [y/N]', defaults.ownCadre ? 'Y' : 'N'), defaults.ownCadre);
|
|
34
|
+
return { dataDir, uiPort, libp2pPort, upnpEnabled, configureDdns, ownCadre };
|
|
31
35
|
}
|
|
32
36
|
/** Production entrypoint — drives the wizard over stdin/stdout. */
|
|
33
37
|
export async function runWizard(defaults) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/installer/wizard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAuC,MAAM,eAAe,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/installer/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { type SecretsStore } from './secrets/index.js';
|
|
|
8
8
|
* so tests can inject a mock without a real libp2p stack. Mirrors
|
|
9
9
|
* `CadreNodeLike` in `auth/trust-circle.ts`.
|
|
10
10
|
*
|
|
11
|
-
* Both methods are async: in production they round-trip over the
|
|
11
|
+
* Both methods are async: in production they round-trip over the owner
|
|
12
12
|
* node's loopback admin channel (`GET /admin/identity`, `GET /admin/multiaddrs`).
|
|
13
13
|
* Synchronous test mocks can return a value directly (it's awaited).
|
|
14
14
|
*/
|
|
@@ -88,27 +88,27 @@ export declare class NatService {
|
|
|
88
88
|
testReachability(): Promise<NatStatusSnapshot>;
|
|
89
89
|
/**
|
|
90
90
|
* Build the multiaddrs to embed in invites. The peer ID and libp2p
|
|
91
|
-
* fallback addresses are fetched over the
|
|
91
|
+
* fallback addresses are fetched over the owner node's admin channel; a
|
|
92
92
|
* node-unavailable failure surfaces as `NatError('node_unavailable')`.
|
|
93
93
|
*/
|
|
94
94
|
getInviteAddresses(): Promise<string[]>;
|
|
95
95
|
/**
|
|
96
96
|
* Register a listener fired when the invite addresses may have changed
|
|
97
97
|
* (after `start`, `putSettings`, and `testReachability`). `cadre-host start`
|
|
98
|
-
* wires this to `
|
|
98
|
+
* wires this to `OwnerNodeClient.pushInviteAddresses`. Returns an
|
|
99
99
|
* unsubscribe fn.
|
|
100
100
|
*/
|
|
101
101
|
onAddressesChanged(listener: AddressesChangedListener): () => void;
|
|
102
102
|
/**
|
|
103
103
|
* Recompute invite addresses and notify listeners. Best-effort: when the
|
|
104
|
-
*
|
|
104
|
+
* owner node is unreachable (or the build fails), the notification is
|
|
105
105
|
* skipped — the push is retried on the next NAT event.
|
|
106
106
|
*/
|
|
107
107
|
private fireAddressesChanged;
|
|
108
108
|
/** Deliver an address set to every registered listener (errors are logged, not thrown). */
|
|
109
109
|
private notifyAddressListeners;
|
|
110
110
|
/**
|
|
111
|
-
* Initial invite-address push. The
|
|
111
|
+
* Initial invite-address push. The owner node's admin channel is a freshly
|
|
112
112
|
* spawned detached child that may not be bound yet (and may not have a libp2p
|
|
113
113
|
* peer ID yet), so a single attempt races readiness and silently drops the first
|
|
114
114
|
* NAT-resolved address set. Retry on `node_unavailable` until the node accepts it
|
package/dist/nat/nat-service.js
CHANGED
|
@@ -8,7 +8,7 @@ import { DdnsUpdater } from './ddns/updater.js';
|
|
|
8
8
|
import { getProvider, listProviders } from './ddns/index.js';
|
|
9
9
|
import { buildInviteAddresses, } from './address-resolver.js';
|
|
10
10
|
import { createSecretsStore, ddnsAccount } from './secrets/index.js';
|
|
11
|
-
import {
|
|
11
|
+
import { OwnerNodeUnavailableError } from '../owner/owner-node-client.js';
|
|
12
12
|
const log = debug('cadre:host:nat-service');
|
|
13
13
|
/** Sleep helper for the initial-push retry loop; unref'd so it never holds the process open. */
|
|
14
14
|
function sleep(ms) {
|
|
@@ -78,7 +78,7 @@ export class NatService {
|
|
|
78
78
|
});
|
|
79
79
|
await this.ddnsUpdater.start();
|
|
80
80
|
// Initial invite-address push. Retries on `node_unavailable` until the
|
|
81
|
-
// freshly spawned
|
|
81
|
+
// freshly spawned owner node accepts it (bounded; best-effort after).
|
|
82
82
|
await this.pushInitialAddresses();
|
|
83
83
|
}
|
|
84
84
|
/** Release the port mapping and clear timers. Idempotent. */
|
|
@@ -147,7 +147,7 @@ export class NatService {
|
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
149
|
* Build the multiaddrs to embed in invites. The peer ID and libp2p
|
|
150
|
-
* fallback addresses are fetched over the
|
|
150
|
+
* fallback addresses are fetched over the owner node's admin channel; a
|
|
151
151
|
* node-unavailable failure surfaces as `NatError('node_unavailable')`.
|
|
152
152
|
*/
|
|
153
153
|
async getInviteAddresses() {
|
|
@@ -158,8 +158,8 @@ export class NatService {
|
|
|
158
158
|
libp2pAddrs = await this.cadreNode.getMultiaddrs();
|
|
159
159
|
}
|
|
160
160
|
catch (err) {
|
|
161
|
-
if (err instanceof
|
|
162
|
-
throw new NatError('node_unavailable', `
|
|
161
|
+
if (err instanceof OwnerNodeUnavailableError) {
|
|
162
|
+
throw new NatError('node_unavailable', `Owner node unavailable: ${err.message}`);
|
|
163
163
|
}
|
|
164
164
|
throw err;
|
|
165
165
|
}
|
|
@@ -167,7 +167,7 @@ export class NatService {
|
|
|
167
167
|
// an empty peerId. Building addresses now would mint malformed `…/p2p/`
|
|
168
168
|
// suffixes (and push them to the node), so treat it as not-ready.
|
|
169
169
|
if (!peerId) {
|
|
170
|
-
throw new NatError('node_unavailable', '
|
|
170
|
+
throw new NatError('node_unavailable', 'Owner node has no peer ID yet (not ready)');
|
|
171
171
|
}
|
|
172
172
|
const status = this.getStatus();
|
|
173
173
|
const input = {
|
|
@@ -183,7 +183,7 @@ export class NatService {
|
|
|
183
183
|
/**
|
|
184
184
|
* Register a listener fired when the invite addresses may have changed
|
|
185
185
|
* (after `start`, `putSettings`, and `testReachability`). `cadre-host start`
|
|
186
|
-
* wires this to `
|
|
186
|
+
* wires this to `OwnerNodeClient.pushInviteAddresses`. Returns an
|
|
187
187
|
* unsubscribe fn.
|
|
188
188
|
*/
|
|
189
189
|
onAddressesChanged(listener) {
|
|
@@ -192,7 +192,7 @@ export class NatService {
|
|
|
192
192
|
}
|
|
193
193
|
/**
|
|
194
194
|
* Recompute invite addresses and notify listeners. Best-effort: when the
|
|
195
|
-
*
|
|
195
|
+
* owner node is unreachable (or the build fails), the notification is
|
|
196
196
|
* skipped — the push is retried on the next NAT event.
|
|
197
197
|
*/
|
|
198
198
|
async fireAddressesChanged() {
|
|
@@ -220,7 +220,7 @@ export class NatService {
|
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
222
|
/**
|
|
223
|
-
* Initial invite-address push. The
|
|
223
|
+
* Initial invite-address push. The owner node's admin channel is a freshly
|
|
224
224
|
* spawned detached child that may not be bound yet (and may not have a libp2p
|
|
225
225
|
* peer ID yet), so a single attempt races readiness and silently drops the first
|
|
226
226
|
* NAT-resolved address set. Retry on `node_unavailable` until the node accepts it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nat-service.js","sourceRoot":"","sources":["../../src/nat/nat-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nat-service.js","sourceRoot":"","sources":["../../src/nat/nat-service.ts"],"names":[],"mappings":"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"}
|
package/dist/nat/types.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ export interface NatDdnsSettings {
|
|
|
79
79
|
}
|
|
80
80
|
/** Typed error codes for NatError. */
|
|
81
81
|
export type NatErrorCode = 'mapping_failed' | 'router_unreachable' | 'ip_detection_failed' | 'ddns_provider_unknown' | 'ddns_credentials_missing' | 'ddns_update_failed' | 'secrets_unavailable' | 'storage_error' | 'invalid_config'
|
|
82
|
-
/** The
|
|
82
|
+
/** The owner node's admin channel is unreachable / not ready. */
|
|
83
83
|
| 'node_unavailable';
|
|
84
84
|
/** Typed error carrying a stable `code` for HTTP mapping in the local-ui. */
|
|
85
85
|
export declare class NatError extends Error {
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { Orchestrator, OrchestratorCreateRequest, OrchestratorCreateResult, OrchestratorStats } from '@serfab/cadre-provider';
|
|
2
|
-
import { type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export interface AuthorityAdminEndpoint {
|
|
2
|
+
import { type OwnerSpawnConfig, type HostProcessConfig, type ManagedNodeInfo, type NodeStateListener } from './types.js';
|
|
3
|
+
/** Fixed friendly id for the admin's owner node. */
|
|
4
|
+
export declare const OWNER_CONTAINER_ID = "owner";
|
|
5
|
+
/** Endpoint + bearer for the owner node's loopback admin channel (6.6). */
|
|
6
|
+
export interface OwnerAdminEndpoint {
|
|
8
7
|
/** e.g. `http://127.0.0.1:<adminPort>`. */
|
|
9
8
|
baseUrl: string;
|
|
10
9
|
/** The child's `CADRE_STARTUP_TOKEN`, used as the admin bearer secret. */
|
|
@@ -55,8 +54,8 @@ export declare class HostProcessOrchestrator implements Orchestrator {
|
|
|
55
54
|
private readonly pushResolver?;
|
|
56
55
|
/** State-change listeners — invoked when a handle's alive state changes. */
|
|
57
56
|
private readonly stateListeners;
|
|
58
|
-
/** Persisted spawn config for the
|
|
59
|
-
private
|
|
57
|
+
/** Persisted spawn config for the owner node (re-spawn on demand). */
|
|
58
|
+
private ownerConfig?;
|
|
60
59
|
constructor(cfg: HostProcessConfig);
|
|
61
60
|
/**
|
|
62
61
|
* Read persisted state and re-attach to surviving children. Not part of
|
|
@@ -84,9 +83,44 @@ export declare class HostProcessOrchestrator implements Orchestrator {
|
|
|
84
83
|
* transitions (child exit, manual stop). Returns an unsubscribe fn.
|
|
85
84
|
*/
|
|
86
85
|
onStateChange(listener: NodeStateListener): () => void;
|
|
87
|
-
/**
|
|
88
|
-
|
|
86
|
+
/**
|
|
87
|
+
* Spawn a generic managed node — the donated-node path (the requester's cadre,
|
|
88
|
+
* pinned to the *requester's* owner key). The node is given its own protobuf
|
|
89
|
+
* identity key inside its workdir (`ensureNodeIdentity`, reused across
|
|
90
|
+
* re-spawns of the same containerId), which is what makes its peer id stable
|
|
91
|
+
* across restarts AND what makes its node-local stores durable: `cadre-cli
|
|
92
|
+
* start` opens the file-backed bootstrap-peer and trusted-owner stores only
|
|
93
|
+
* when a protobuf identity key file is configured, and puts them beside it.
|
|
94
|
+
* Terminating the loan (`removeContainer`) deletes the workdir, so the key and
|
|
95
|
+
* both stores go with it.
|
|
96
|
+
*/
|
|
89
97
|
createContainer(request: OrchestratorCreateRequest): Promise<OrchestratorCreateResult>;
|
|
98
|
+
/**
|
|
99
|
+
* Remove the working directory a spawn created for `containerId` when no
|
|
100
|
+
* handle owns it — the cleanup of last resort for a donation record that
|
|
101
|
+
* never got a `dockerId` (the host died between `ensureNodeIdentity` and the
|
|
102
|
+
* handle write, so `createContainer`'s own unwind never ran). Returns whether
|
|
103
|
+
* anything was removed.
|
|
104
|
+
*
|
|
105
|
+
* Synchronous, mirroring {@link resolveDockerId}: nothing on this path needs
|
|
106
|
+
* to await.
|
|
107
|
+
*/
|
|
108
|
+
reclaimWorkdir(containerId: string): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Best-effort removal of a workdir no handle owns. Logs, never throws: every
|
|
111
|
+
* caller is either unwinding a failure it must report instead of this one, or
|
|
112
|
+
* tearing a container down along a path where a surviving directory is a
|
|
113
|
+
* nuisance rather than a fault.
|
|
114
|
+
*
|
|
115
|
+
* `retries` sizes the wait for the OS to release a cwd handle — Windows drops
|
|
116
|
+
* it asynchronously after a child exits. `createContainer`'s unwind needs none
|
|
117
|
+
* of that (its throw surface ends before any child is spawned), but
|
|
118
|
+
* `reclaimWorkdir` can still meet an orphan process the previous host left
|
|
119
|
+
* running with this directory as its cwd, so it is not a *guaranteed*
|
|
120
|
+
* no-process path either — it simply logs and leaves the directory when the
|
|
121
|
+
* removal fails.
|
|
122
|
+
*/
|
|
123
|
+
private discardWorkdir;
|
|
90
124
|
/**
|
|
91
125
|
* Resolve the push credentials to inject into the node about to spawn. Called
|
|
92
126
|
* on every spawn so a re-spawn re-reads the secret store — raw private keys are
|
|
@@ -96,36 +130,106 @@ export declare class HostProcessOrchestrator implements Orchestrator {
|
|
|
96
130
|
*/
|
|
97
131
|
private resolvePush;
|
|
98
132
|
/**
|
|
99
|
-
* Ensure the admin's
|
|
133
|
+
* Ensure the admin's owner node is running, spawning it if absent or
|
|
100
134
|
* dead. Idempotent: a second call with the node already alive returns the
|
|
101
135
|
* existing handle without launching a second child. The spawn parameters
|
|
102
136
|
* are persisted so a later `/api/nodes/:id/{start,restart}` (or an
|
|
103
137
|
* orchestrator restart) can re-spawn it without re-supplying them.
|
|
104
138
|
*
|
|
105
|
-
* The
|
|
139
|
+
* The owner node is spawned as `cadre-cli start --owner
|
|
106
140
|
* --admin-port <p> --identity-protobuf <identityPath>` so it carries the
|
|
107
141
|
* host's libp2p identity, founds/joins the control network, and exposes the
|
|
108
142
|
* loopback admin channel the manager delegates to.
|
|
109
143
|
*/
|
|
110
|
-
|
|
111
|
-
/** Endpoint + bearer for the
|
|
112
|
-
|
|
113
|
-
/** Whether spawn parameters for the
|
|
114
|
-
|
|
115
|
-
/** Whether the given friendly/docker id refers to the
|
|
116
|
-
|
|
117
|
-
/** Stop the
|
|
118
|
-
|
|
119
|
-
/** Stop the
|
|
120
|
-
|
|
144
|
+
ensureOwnerNode(cfg?: OwnerSpawnConfig): Promise<ManagedNodeInfo>;
|
|
145
|
+
/** Endpoint + bearer for the owner node's admin channel, if spawned. */
|
|
146
|
+
getOwnerAdminEndpoint(): OwnerAdminEndpoint | undefined;
|
|
147
|
+
/** Whether spawn parameters for the owner node are known (persisted). */
|
|
148
|
+
hasOwnerConfig(): boolean;
|
|
149
|
+
/** Whether the given friendly/docker id refers to the owner node. */
|
|
150
|
+
isOwnerNode(idOrDockerId: string): boolean;
|
|
151
|
+
/** Stop the owner node (if running). Used on graceful shutdown. */
|
|
152
|
+
stopOwnerNode(): Promise<void>;
|
|
153
|
+
/** Stop the owner node (if running), then re-spawn it from saved config. */
|
|
154
|
+
restartOwnerNode(): Promise<ManagedNodeInfo>;
|
|
121
155
|
/**
|
|
122
|
-
* Core spawn mechanics shared by `createContainer` and `
|
|
123
|
-
*
|
|
124
|
-
*
|
|
156
|
+
* Core spawn mechanics shared by `createContainer` and `ensureOwnerNode`.
|
|
157
|
+
*
|
|
158
|
+
* The caller has already allocated `ports` and **owns their lifetime**: this
|
|
159
|
+
* method never releases them, so every caller must release on any throw out
|
|
160
|
+
* of here (it has to unwind its handle drop on the same path anyway — see
|
|
161
|
+
* `restoreDroppedHandles`).
|
|
162
|
+
*
|
|
163
|
+
* That contract holds because this method throws only *before* the child is
|
|
164
|
+
* spawned and its handle stored — everything after that point is
|
|
165
|
+
* best-effort. Anything new added at the tail must keep it that way.
|
|
166
|
+
*
|
|
167
|
+
* Entirely synchronous, which is what makes that unwind sound. Do not add an
|
|
168
|
+
* `await` here.
|
|
125
169
|
*/
|
|
126
170
|
private launchChild;
|
|
127
|
-
/**
|
|
128
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Drop any handle left over from a previous spawn of the same `containerId`
|
|
173
|
+
* and release its ports. Handles are keyed by the per-spawn `dockerId`, so
|
|
174
|
+
* without this a re-spawn (donated-node respawn) would strand the prior
|
|
175
|
+
* handle in the map forever, leaking four ports from a bounded range each
|
|
176
|
+
* time. Mirrors the same cleanup in `ensureOwnerNode`.
|
|
177
|
+
*
|
|
178
|
+
* DO NOT delete the workdir: the identity key and node-local stores
|
|
179
|
+
* (trusted-owner anchor, retained cold-start dial targets) live there and are
|
|
180
|
+
* the whole reason a respawn comes back as the same node. `launchChild`
|
|
181
|
+
* reuses the same workdir.
|
|
182
|
+
*
|
|
183
|
+
* NOTE: releasing the ports hands them straight back to the allocator, so a
|
|
184
|
+
* re-spawn while the *previous* child is still listening can bind-clash. Every
|
|
185
|
+
* caller today re-spawns only a container it has established is not running
|
|
186
|
+
* (`DonationService.respawn`, `ensureOwnerNode`). If a caller ever needs to
|
|
187
|
+
* replace a live child, stop it first — or hold the ports until its exit.
|
|
188
|
+
*
|
|
189
|
+
* **The drop is reversible.** It happens before the launch can fail, so the
|
|
190
|
+
* dropped handles are returned and every caller restores them via
|
|
191
|
+
* {@link restoreDroppedHandles} when the launch throws — otherwise the caller
|
|
192
|
+
* would be left holding a dockerId this orchestrator no longer knows, and the
|
|
193
|
+
* node's workdir could never be reclaimed. On a *successful* spawn the drop
|
|
194
|
+
* stands: `DonationService.abandonRespawn` depends on the old handle being
|
|
195
|
+
* gone by then.
|
|
196
|
+
*/
|
|
197
|
+
private dropStaleHandle;
|
|
198
|
+
/**
|
|
199
|
+
* Inverse of {@link dropStaleHandle}, for a spawn that then failed: put each
|
|
200
|
+
* handle back in the map and re-reserve its four ports, leaving host state
|
|
201
|
+
* exactly as the failed attempt found it.
|
|
202
|
+
*
|
|
203
|
+
* **Precondition: the drop → launch window is synchronous.** Restoring is
|
|
204
|
+
* sound only because nothing can have taken those ports or run cleanup
|
|
205
|
+
* against the handle in between — `launchChild` contains no `await` and both
|
|
206
|
+
* callers resolve push credentials *before* their drop. `launchChild`'s half
|
|
207
|
+
* is enforced: its declared return type is not a Promise, so adding an
|
|
208
|
+
* `await` there is a compile error. The callers' half is not — an `await`
|
|
209
|
+
* slipped between a drop and its launch silently breaks this.
|
|
210
|
+
*
|
|
211
|
+
* No `persist()` here: `state.json` is rewritten only by `launchChild` and
|
|
212
|
+
* only *after* the new handle is stored, so throughout the failure window the
|
|
213
|
+
* on-disk state still lists the dropped handle — this restore realigns memory
|
|
214
|
+
* to disk rather than diverging from it.
|
|
215
|
+
*
|
|
216
|
+
* NOTE: a restored handle keeps `alive: true` even if its child exited while
|
|
217
|
+
* it was out of the map (`launchChild`'s exit listener looks the handle up by
|
|
218
|
+
* dockerId and finds nothing). Only reachable by re-spawning a container
|
|
219
|
+
* whose child is still live, which `dropStaleHandle`'s note above already
|
|
220
|
+
* forbids.
|
|
221
|
+
*/
|
|
222
|
+
private restoreDroppedHandles;
|
|
223
|
+
/** A managed node's own directory under `rootDir` — config, log, storage, identity. */
|
|
224
|
+
private workdirFor;
|
|
225
|
+
/** Locate the owner node's handle, if one has been spawned. */
|
|
226
|
+
private findOwnerHandle;
|
|
227
|
+
/**
|
|
228
|
+
* Inverse of {@link releasePorts} — hold a handle's whole port set against
|
|
229
|
+
* the allocator. Used both to rehydrate on `init` and to undo a drop whose
|
|
230
|
+
* launch then failed.
|
|
231
|
+
*/
|
|
232
|
+
private reservePorts;
|
|
129
233
|
private releasePorts;
|
|
130
234
|
stopContainer(dockerId: string): Promise<void>;
|
|
131
235
|
removeContainer(dockerId: string): Promise<void>;
|
|
@@ -135,11 +239,19 @@ export declare class HostProcessOrchestrator implements Orchestrator {
|
|
|
135
239
|
private requireHandle;
|
|
136
240
|
private buildChildConfig;
|
|
137
241
|
/**
|
|
138
|
-
* Child config for the
|
|
139
|
-
*
|
|
140
|
-
*
|
|
242
|
+
* Child config for the **host's own personal cadre** owner node — the opt-in
|
|
243
|
+
* "founder" persona spawned only when `ownCadre.enabled` (see
|
|
244
|
+
* docs/cadre-host.md § Two roles: donor and founder). It founds/joins the
|
|
245
|
+
* control network for the host's own `partyId` (no bootstrap peers — it is the
|
|
246
|
+
* founding node of the host's *own* cadre) and carries the host identity via
|
|
247
|
+
* `--identity-protobuf` (passed as a spawn arg).
|
|
248
|
+
*
|
|
249
|
+
* This is NOT the node cadre-host donates to a requester. Donated nodes are
|
|
250
|
+
* generic (`createContainer` / `buildChildConfig`): they join the
|
|
251
|
+
* **requester's** cadre via bootstrap peers and pin the *requester's* owner
|
|
252
|
+
* key — they never run a host genesis.
|
|
141
253
|
*/
|
|
142
|
-
private
|
|
254
|
+
private buildOwnerChildConfig;
|
|
143
255
|
private persist;
|
|
144
256
|
private emitStateChange;
|
|
145
257
|
private toPersisted;
|