@serfab/cadre-host 1.14.0 → 1.16.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/README.md +19 -4
- package/dist/bin/host.js +32 -20
- package/dist/bin/host.js.map +1 -1
- package/dist/bin/nat-output.d.ts +5 -0
- package/dist/bin/nat-output.js +12 -1
- package/dist/bin/nat-output.js.map +1 -1
- package/dist/bin/ui-access.d.ts +22 -0
- package/dist/bin/ui-access.js +44 -0
- package/dist/bin/ui-access.js.map +1 -0
- package/dist/hosted/claim-details.d.ts +25 -3
- package/dist/hosted/claim-details.js +31 -37
- package/dist/hosted/claim-details.js.map +1 -1
- package/dist/hosted/hosted-node-service.d.ts +7 -0
- package/dist/hosted/hosted-node-service.js +16 -4
- package/dist/hosted/hosted-node-service.js.map +1 -1
- package/dist/hosted/hosted-node-watcher.d.ts +16 -4
- package/dist/hosted/hosted-node-watcher.js +45 -9
- package/dist/hosted/hosted-node-watcher.js.map +1 -1
- package/dist/hosted/node-status.d.ts +19 -3
- package/dist/hosted/node-status.js +21 -5
- package/dist/hosted/node-status.js.map +1 -1
- package/dist/hosted/types.d.ts +12 -5
- package/dist/hosted/types.js.map +1 -1
- package/dist/installer/config.d.ts +23 -0
- package/dist/installer/config.js +46 -0
- package/dist/installer/config.js.map +1 -1
- package/dist/installer/index.d.ts +2 -0
- package/dist/installer/index.js +7 -16
- package/dist/installer/index.js.map +1 -1
- package/dist/installer/wizard.d.ts +12 -2
- package/dist/installer/wizard.js +15 -7
- package/dist/installer/wizard.js.map +1 -1
- package/dist/nat/index.d.ts +2 -1
- package/dist/nat/index.js +1 -0
- package/dist/nat/index.js.map +1 -1
- package/dist/nat/nat-service.d.ts +22 -5
- package/dist/nat/nat-service.js +75 -26
- package/dist/nat/nat-service.js.map +1 -1
- package/dist/nat/nat-store.js +11 -0
- package/dist/nat/nat-store.js.map +1 -1
- package/dist/nat/network-mode.d.ts +19 -0
- package/dist/nat/network-mode.js +32 -0
- package/dist/nat/network-mode.js.map +1 -0
- package/dist/nat/reachability.d.ts +5 -4
- package/dist/nat/reachability.js +19 -6
- package/dist/nat/reachability.js.map +1 -1
- package/dist/nat/types.d.ts +26 -6
- package/dist/nat/types.js.map +1 -1
- package/dist/orchestrator/host-process-orchestrator.d.ts +3 -3
- package/dist/orchestrator/host-process-orchestrator.js +6 -15
- package/dist/orchestrator/host-process-orchestrator.js.map +1 -1
- package/dist/package-version.d.ts +1 -0
- package/dist/package-version.js +4 -0
- package/dist/package-version.js.map +1 -0
- package/dist/server/routes/settings.d.ts +1 -0
- package/dist/server/routes/settings.js +15 -1
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/status.js +2 -32
- package/dist/server/routes/status.js.map +1 -1
- package/dist/ui/assets/index-BHd8CWZA.css +1 -0
- package/dist/ui/assets/index-Ccr2GjPT.js +23 -0
- package/dist/ui/assets/{index-4FWuU8ye.js.map → index-Ccr2GjPT.js.map} +1 -1
- package/dist/ui/index.html +2 -2
- package/package.json +4 -5
- package/src/__tests__/cli.smoke.test.ts +1 -1
- package/src/__tests__/orchestrator-claim-secret.test.ts +1 -2
- package/src/__tests__/orchestrator-env-scrub.test.ts +160 -163
- package/src/__tests__/orchestrator-handle-contract.ts +1 -1
- package/src/__tests__/orchestrator-node-identity.test.ts +0 -5
- package/src/__tests__/orchestrator-push.test.ts +3 -3
- package/src/__tests__/orchestrator.test.ts +3 -5
- package/src/__tests__/ui-access.test.ts +30 -0
- package/src/bin/host.ts +30 -20
- package/src/bin/nat-output.ts +12 -1
- package/src/bin/ui-access.ts +50 -0
- package/src/hosted/__tests__/fake-orchestrator.test.ts +0 -1
- package/src/hosted/__tests__/fake-orchestrator.ts +263 -265
- package/src/hosted/__tests__/hosted-node-service.test.ts +708 -609
- package/src/hosted/__tests__/hosted-node-supervisor.test.ts +475 -474
- package/src/hosted/claim-details.ts +44 -37
- package/src/hosted/hosted-node-service.ts +23 -4
- package/src/hosted/hosted-node-watcher.ts +288 -250
- package/src/hosted/node-status.ts +31 -5
- package/src/hosted/types.ts +160 -153
- package/src/installer/__tests__/installer.smoke.test.ts +184 -182
- package/src/installer/__tests__/wizard.test.ts +76 -56
- package/src/installer/config.ts +66 -0
- package/src/installer/index.ts +252 -259
- package/src/installer/wizard.ts +101 -87
- package/src/nat/__tests__/nat-service.test.ts +608 -540
- package/src/nat/__tests__/nat-store.test.ts +130 -127
- package/src/nat/__tests__/network-mode.test.ts +38 -0
- package/src/nat/index.ts +91 -87
- package/src/nat/nat-service.ts +79 -26
- package/src/nat/nat-store.ts +249 -237
- package/src/nat/network-mode.ts +36 -0
- package/src/nat/reachability.ts +155 -143
- package/src/nat/types.ts +232 -209
- package/src/orchestrator/host-process-orchestrator.ts +1089 -1098
- package/src/package-version.ts +4 -0
- package/src/server/__tests__/fakes.ts +41 -40
- package/src/server/__tests__/hosted-nodes-route.test.ts +161 -160
- package/src/server/__tests__/settings-route.test.ts +31 -0
- package/src/server/routes/settings.ts +128 -115
- package/src/server/routes/status.ts +72 -102
- package/dist/ui/assets/index-4FWuU8ye.js +0 -19
- package/dist/ui/assets/index-Di9Q4d01.css +0 -1
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* What the QR code of a node waiting to be claimed carries, and the address list behind it.
|
|
3
3
|
* `HostedNodeService.claimDetails` reads the child's `/status` and hands it here.
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import { encodeNodeClaimPayload } from '@serfab/cadre-core';
|
|
5
|
+
import { encodeNodeClaimPayload, selectNodeClaimAddresses, withClaimDestination } from '@serfab/cadre-core';
|
|
7
6
|
import { HostedNodeError } from './types.js';
|
|
8
7
|
/**
|
|
9
8
|
* The claim details for a node whose `/status` answered. `503 node_unavailable` while the
|
|
@@ -23,44 +22,39 @@ export function buildClaimDetails(input) {
|
|
|
23
22
|
};
|
|
24
23
|
}
|
|
25
24
|
/**
|
|
26
|
-
* The
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* (
|
|
30
|
-
* entries are dropped — nothing off this machine can use the former, and no
|
|
31
|
-
* hosted node holds a relay reservation today.
|
|
25
|
+
* The LAN address a node code keeps (`selectNodeClaimAddresses`' `lan`), from `claimAddresses.lan`:
|
|
26
|
+
* `'none'` is null; an IP is itself; `'auto'` (default) is null in public-IP mode (no phone shares
|
|
27
|
+
* a LAN with a VPS), else the gateway's `lanAddress`, else the machine's primary address
|
|
28
|
+
* (`primaryLan`, probed only then), else undefined (keep every private address).
|
|
32
29
|
*/
|
|
33
|
-
function
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
export async function claimLanAddress(settings, addresses, primaryLan) {
|
|
31
|
+
const lan = settings?.lan ?? 'auto';
|
|
32
|
+
if (lan === 'none')
|
|
33
|
+
return null;
|
|
34
|
+
if (lan !== 'auto')
|
|
35
|
+
return lan;
|
|
36
|
+
const { network, gateway } = addresses.getStatus();
|
|
37
|
+
if (network.mode === 'public')
|
|
38
|
+
return null;
|
|
39
|
+
return gateway.lanAddress ?? await primaryLan();
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
42
|
+
* The addresses the QR code names, in dial order. A phone dials each in turn on its own
|
|
43
|
+
* timeout, so every address it cannot reach delays a failing claim and enlarges the code.
|
|
44
|
+
*
|
|
45
|
+
* - With `exactAddrs`, exactly those, each given the node's peer id.
|
|
46
|
+
* - Otherwise cadre-core's `selectNodeClaimAddresses` over the NAT layer's public addresses
|
|
47
|
+
* and the node's own (`/status`): WebSocket and relay only (a phone has no TCP), public
|
|
48
|
+
* names before raw public IPs, and of the private addresses only `lan`. Docker bridges,
|
|
49
|
+
* VPNs and other interfaces a phone cannot reach are left out.
|
|
46
50
|
*/
|
|
47
|
-
function
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
if (components.some((c) => c.code === CODE_P2P_CIRCUIT))
|
|
56
|
-
return false;
|
|
57
|
-
const host = components[0];
|
|
58
|
-
if (!host?.value)
|
|
59
|
-
return false;
|
|
60
|
-
if (host.code === CODE_IP4)
|
|
61
|
-
return !host.value.startsWith('127.') && host.value !== '0.0.0.0';
|
|
62
|
-
if (host.code === CODE_IP6)
|
|
63
|
-
return host.value !== '::1' && host.value !== '::';
|
|
64
|
-
return true;
|
|
51
|
+
function dialAddressesFor({ id, status, ports, addresses, exactAddrs, lan }) {
|
|
52
|
+
// NOTE: `claimAddresses.addrs` is host-wide, so every hosted node's code carries the same
|
|
53
|
+
// addresses with its own peer id; that reaches each node only if they route per node (one
|
|
54
|
+
// node, or a port per node). If several nodes behind one proxy is reported, make it per node.
|
|
55
|
+
if (exactAddrs && exactAddrs.length > 0)
|
|
56
|
+
return [...new Set(exactAddrs.map((a) => withClaimDestination(a, status.peerId)))];
|
|
57
|
+
const publicAddrs = ports ? addresses.publicAddressesFor(id, ports) : [];
|
|
58
|
+
return selectNodeClaimAddresses([...publicAddrs, ...status.multiaddrs], status.peerId, { lan });
|
|
65
59
|
}
|
|
66
60
|
//# sourceMappingURL=claim-details.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-details.js","sourceRoot":"","sources":["../../src/hosted/claim-details.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"claim-details.js","sourceRoot":"","sources":["../../src/hosted/claim-details.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK5G,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAsC7C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAwB;IACxD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,eAAe,EAAE,4CAA4C,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO;QACL,OAAO,EAAE,sBAAsB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5F,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;QACV,YAAY,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,IAAI,IAAI;KAC/E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA0C,EAC1C,SAAkC,EAClC,UAA6C;IAE7C,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC;IACpC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;IACnD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,OAAO,CAAC,UAAU,IAAI,MAAM,UAAU,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAqB;IAC5F,0FAA0F;IAC1F,0FAA0F;IAC1F,8FAA8F;IAC9F,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5H,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,wBAAwB,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AAClG,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Orchestrator, OrchestratorCreateResult } from '@serfab/cadre-provider';
|
|
2
2
|
import type { HostedSpawnRequest, ManagedNodeInfo, NodeStateListener } from '../orchestrator/types.js';
|
|
3
|
+
import type { ClaimAddressSettings } from '../installer/config.js';
|
|
3
4
|
import { type ClaimDetails, type HostedNodeAddressSource } from './claim-details.js';
|
|
4
5
|
import type { HostedNodeStore } from './hosted-node-store.js';
|
|
5
6
|
import type { HostedNodeChange, HostedNodeChangeListener, HostedNodeStatus, HostedNodeView } from './types.js';
|
|
@@ -81,6 +82,10 @@ export interface HostedNodeServiceOptions {
|
|
|
81
82
|
store: HostedNodeStore;
|
|
82
83
|
/** The NAT layer, for the node's public addresses and reachability verdict. */
|
|
83
84
|
addresses: HostedNodeAddressSource;
|
|
85
|
+
/** `host.config.json`'s `claimAddresses`, read on every claim-code request so an edit applies at once. */
|
|
86
|
+
claimAddressSettings?: () => ClaimAddressSettings | undefined;
|
|
87
|
+
/** The machine's primary address, the `lan: 'auto'` fallback when no UPnP gateway answered. */
|
|
88
|
+
primaryLan?: () => Promise<string | undefined>;
|
|
84
89
|
/** Clock override for tests. */
|
|
85
90
|
now?: () => Date;
|
|
86
91
|
}
|
|
@@ -109,6 +114,8 @@ export declare class HostedNodeService {
|
|
|
109
114
|
private readonly orchestrator;
|
|
110
115
|
private readonly store;
|
|
111
116
|
private readonly addresses;
|
|
117
|
+
private readonly claimAddressSettings;
|
|
118
|
+
private readonly primaryLan;
|
|
112
119
|
private readonly now;
|
|
113
120
|
private readonly listeners;
|
|
114
121
|
private readonly watcher;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import debug from 'debug';
|
|
3
3
|
import { CLAIM_SECRET_BYTES, decodeCadreInvitation } from '@serfab/cadre-core';
|
|
4
|
-
import {
|
|
4
|
+
import { primaryLanAddress } from '@serfab/cadre-core/primary-lan-address';
|
|
5
|
+
import { buildClaimDetails, claimLanAddress } from './claim-details.js';
|
|
5
6
|
import { HostedNodeWatcher } from './hosted-node-watcher.js';
|
|
6
7
|
import { PLACEHOLDER_PARTY, errorMessage, readNodeStatus, statusUrlFor } from './node-status.js';
|
|
7
8
|
import { HostedNodeError } from './types.js';
|
|
@@ -63,6 +64,8 @@ export class HostedNodeService {
|
|
|
63
64
|
this.orchestrator = opts.orchestrator;
|
|
64
65
|
this.store = opts.store;
|
|
65
66
|
this.addresses = opts.addresses;
|
|
67
|
+
this.claimAddressSettings = opts.claimAddressSettings ?? (() => undefined);
|
|
68
|
+
this.primaryLan = opts.primaryLan ?? primaryLanAddress;
|
|
66
69
|
this.now = opts.now ?? (() => new Date());
|
|
67
70
|
this.watcher = new HostedNodeWatcher({
|
|
68
71
|
store: this.store,
|
|
@@ -220,7 +223,17 @@ export class HostedNodeService {
|
|
|
220
223
|
const { secret } = node.join;
|
|
221
224
|
const status = await readNodeStatus(node.statusEndpoint);
|
|
222
225
|
this.recordPeerId(id, status.peerId);
|
|
223
|
-
|
|
226
|
+
const settings = this.claimAddressSettings();
|
|
227
|
+
const exactAddrs = settings?.addrs ?? [];
|
|
228
|
+
return buildClaimDetails({
|
|
229
|
+
id,
|
|
230
|
+
secret,
|
|
231
|
+
status,
|
|
232
|
+
ports: this.orchestrator.getNode?.(id)?.ports,
|
|
233
|
+
addresses: this.addresses,
|
|
234
|
+
exactAddrs,
|
|
235
|
+
lan: exactAddrs.length > 0 ? undefined : await claimLanAddress(settings, this.addresses, this.primaryLan),
|
|
236
|
+
});
|
|
224
237
|
}
|
|
225
238
|
/** Cache the peer id on the record, once. Best-effort: the claim details do not depend on it. */
|
|
226
239
|
recordPeerId(id, peerId) {
|
|
@@ -639,14 +652,13 @@ function spawnRequestFor(node) {
|
|
|
639
652
|
const base = {
|
|
640
653
|
containerId: node.id,
|
|
641
654
|
partyId: node.partyId,
|
|
642
|
-
bootstrapNodes: [],
|
|
643
655
|
profile: node.profile,
|
|
644
656
|
};
|
|
645
657
|
if (node.join.kind === 'claim')
|
|
646
658
|
return { ...base, claimSecret: node.join.secret };
|
|
647
659
|
return node.status === 'joined' ? base : { ...base, invitation: node.join.encoded };
|
|
648
660
|
}
|
|
649
|
-
/** The record fields a spawn result lands.
|
|
661
|
+
/** The record fields a spawn result lands. */
|
|
650
662
|
function handlesOf(result) {
|
|
651
663
|
return { dockerId: result.dockerId, statusEndpoint: statusUrlFor(result.healthEndpoint) };
|
|
652
664
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-node-service.js","sourceRoot":"","sources":["../../src/hosted/hosted-node-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hosted-node-service.js","sourceRoot":"","sources":["../../src/hosted/hosted-node-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export declare const HOSTED_NODE_CLAIM_POLL_MS = 2000;
|
|
|
7
7
|
export declare const HOSTED_NODE_CONNECTED_POLL_MS = 15000;
|
|
8
8
|
/**
|
|
9
9
|
* The orchestrator surface the watcher needs: the exit/start signal, when the orchestrator
|
|
10
|
-
* has one, and the stop of a node whose invitation failed.
|
|
10
|
+
* has one, and the stop of a node whose invitation failed or that an owner removed.
|
|
11
11
|
*/
|
|
12
12
|
export interface WatchedOrchestrator {
|
|
13
13
|
onStateChange?(listener: NodeStateListener): () => void;
|
|
@@ -23,9 +23,11 @@ export interface HostedNodeWatcherOptions {
|
|
|
23
23
|
/**
|
|
24
24
|
* Follows each hosted node's `/status`: an `unclaimed` record becomes `joined` when
|
|
25
25
|
* the node reports a finished claim; a `joining` record becomes `joined` when a member
|
|
26
|
-
* accepted its invitation, or `error` when the redemption failed;
|
|
27
|
-
* record's `connected` follows the node's control-connection count
|
|
28
|
-
*
|
|
26
|
+
* accepted its invitation, or `error` when the redemption failed; a `joined`
|
|
27
|
+
* record's `connected` follows the node's control-connection count; and any of them
|
|
28
|
+
* becomes `error` when the node reports that an owner removed it from its cadre.
|
|
29
|
+
* Best-effort: a poll that fails is retried on the next tick, and nothing here throws
|
|
30
|
+
* out of the timer.
|
|
29
31
|
*
|
|
30
32
|
* One timer at the claim cadence drives all three: every tick polls every unclaimed and
|
|
31
33
|
* joining node, and each joined node every {@link HOSTED_NODE_CONNECTED_POLL_MS}, or at once when it
|
|
@@ -73,6 +75,16 @@ export declare class HostedNodeWatcher {
|
|
|
73
75
|
* a record the supervisor leaves alone. Still `pending`: nothing.
|
|
74
76
|
*/
|
|
75
77
|
private applyJoining;
|
|
78
|
+
/**
|
|
79
|
+
* A node that reports an owner removed it from its cadre: `error`, not retryable, its child
|
|
80
|
+
* stopped after the write as a failed invitation's is, and its workdir kept for Remove (or a
|
|
81
|
+
* claim node's Reset). The child had already stopped its node, and stays up only to report
|
|
82
|
+
* the removal, so stopping it loses nothing. The party and owner come from the report, for an
|
|
83
|
+
* `unclaimed` record whose claim this watcher never saw: its own party is the placeholder.
|
|
84
|
+
*/
|
|
85
|
+
private applyRemoved;
|
|
86
|
+
/** Stop a node's child after its record went `error`; a failed stop is logged, the record stands. */
|
|
87
|
+
private stopChild;
|
|
76
88
|
/**
|
|
77
89
|
* A joined node's `connected` follows its control-connection count; published only on a
|
|
78
90
|
* change. Its `/status` keeps reporting the invitation for as long as the child that
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import debug from 'debug';
|
|
2
2
|
import { decodeCadreInvitation } from '@serfab/cadre-core';
|
|
3
|
-
import { errorMessage,
|
|
3
|
+
import { errorMessage, readWatchedNodeStatus, reportsClaim, reportsRemoval } from './node-status.js';
|
|
4
4
|
const log = debug('cadre:host:hosted-node-watcher');
|
|
5
5
|
/** How often an unclaimed node's `/status` is read for the claim, and a joining node's for its redemption. */
|
|
6
6
|
export const HOSTED_NODE_CLAIM_POLL_MS = 2000;
|
|
7
7
|
/** How often a joined node's `/status` is read for its connection count. */
|
|
8
8
|
export const HOSTED_NODE_CONNECTED_POLL_MS = 15000;
|
|
9
|
+
/** The `error` a node an owner removed from its cadre is recorded with. */
|
|
10
|
+
const REMOVED_BY_OWNER_ERROR = 'Removed from its cadre by an owner';
|
|
9
11
|
/** Statuses the watcher reads every tick: a node still on its way into its cadre. */
|
|
10
12
|
const PENDING_STATUSES = new Set(['unclaimed', 'joining']);
|
|
11
13
|
/**
|
|
12
14
|
* Follows each hosted node's `/status`: an `unclaimed` record becomes `joined` when
|
|
13
15
|
* the node reports a finished claim; a `joining` record becomes `joined` when a member
|
|
14
|
-
* accepted its invitation, or `error` when the redemption failed;
|
|
15
|
-
* record's `connected` follows the node's control-connection count
|
|
16
|
-
*
|
|
16
|
+
* accepted its invitation, or `error` when the redemption failed; a `joined`
|
|
17
|
+
* record's `connected` follows the node's control-connection count; and any of them
|
|
18
|
+
* becomes `error` when the node reports that an owner removed it from its cadre.
|
|
19
|
+
* Best-effort: a poll that fails is retried on the next tick, and nothing here throws
|
|
20
|
+
* out of the timer.
|
|
17
21
|
*
|
|
18
22
|
* One timer at the claim cadence drives all three: every tick polls every unclaimed and
|
|
19
23
|
* joining node, and each joined node every {@link HOSTED_NODE_CONNECTED_POLL_MS}, or at once when it
|
|
@@ -103,7 +107,7 @@ export class HostedNodeWatcher {
|
|
|
103
107
|
return;
|
|
104
108
|
let status;
|
|
105
109
|
try {
|
|
106
|
-
status = await
|
|
110
|
+
status = await readWatchedNodeStatus(record.statusEndpoint);
|
|
107
111
|
}
|
|
108
112
|
catch (err) {
|
|
109
113
|
log('hosted node %s did not answer /status (retried next tick): %s', record.id, errorMessage(err));
|
|
@@ -118,7 +122,10 @@ export class HostedNodeWatcher {
|
|
|
118
122
|
const current = this.store.get(record.id);
|
|
119
123
|
if (!current || current.status !== record.status)
|
|
120
124
|
return;
|
|
121
|
-
if (
|
|
125
|
+
if (reportsRemoval(status)) {
|
|
126
|
+
await this.applyRemoved(current, status);
|
|
127
|
+
}
|
|
128
|
+
else if (current.status === 'unclaimed') {
|
|
122
129
|
this.applyUnclaimed(current, status);
|
|
123
130
|
}
|
|
124
131
|
else if (current.status === 'joining') {
|
|
@@ -181,13 +188,41 @@ export class HostedNodeWatcher {
|
|
|
181
188
|
});
|
|
182
189
|
log('hosted node %s could not join cadre %s (%s): %s', current.id, current.partyId, invitation.retryable ? 'retryable' : 'final', error);
|
|
183
190
|
this.emit({ kind: 'changed', id: current.id });
|
|
191
|
+
await this.stopChild(current, 'its invitation failed');
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* A node that reports an owner removed it from its cadre: `error`, not retryable, its child
|
|
195
|
+
* stopped after the write as a failed invitation's is, and its workdir kept for Remove (or a
|
|
196
|
+
* claim node's Reset). The child had already stopped its node, and stays up only to report
|
|
197
|
+
* the removal, so stopping it loses nothing. The party and owner come from the report, for an
|
|
198
|
+
* `unclaimed` record whose claim this watcher never saw: its own party is the placeholder.
|
|
199
|
+
*/
|
|
200
|
+
async applyRemoved(current, status) {
|
|
201
|
+
const partyId = status.node.partyId || current.partyId;
|
|
202
|
+
const ownerKey = current.ownerKey ?? status.node.claimedBy;
|
|
203
|
+
this.store.put({
|
|
204
|
+
...current,
|
|
205
|
+
status: 'error',
|
|
206
|
+
partyId,
|
|
207
|
+
...(ownerKey ? { ownerKey } : {}),
|
|
208
|
+
error: REMOVED_BY_OWNER_ERROR,
|
|
209
|
+
retryable: false,
|
|
210
|
+
removedByOwner: true,
|
|
211
|
+
updatedAt: this.now().toISOString(),
|
|
212
|
+
});
|
|
213
|
+
log('hosted node %s was removed from cadre %s by an owner', current.id, partyId);
|
|
214
|
+
this.emit({ kind: 'changed', id: current.id });
|
|
215
|
+
await this.stopChild(current, 'an owner removed it');
|
|
216
|
+
}
|
|
217
|
+
/** Stop a node's child after its record went `error`; a failed stop is logged, the record stands. */
|
|
218
|
+
async stopChild(current, why) {
|
|
184
219
|
if (!current.dockerId)
|
|
185
220
|
return;
|
|
186
221
|
try {
|
|
187
222
|
await this.orchestrator.stopContainer(current.dockerId);
|
|
188
223
|
}
|
|
189
224
|
catch (err) {
|
|
190
|
-
log('failed to stop hosted node %s after
|
|
225
|
+
log('failed to stop hosted node %s after %s: %s', current.id, why, errorMessage(err));
|
|
191
226
|
}
|
|
192
227
|
}
|
|
193
228
|
/**
|
|
@@ -207,8 +242,9 @@ export class HostedNodeWatcher {
|
|
|
207
242
|
}
|
|
208
243
|
/**
|
|
209
244
|
* The owner a joined invitation node is shown under: the issuer of its invitation. The
|
|
210
|
-
* record's bundle decoded at `join`, so this only
|
|
211
|
-
* `hosted-nodes.json
|
|
245
|
+
* record's bundle decoded at `join`, so this fails only on a hand-edited
|
|
246
|
+
* `hosted-nodes.json` or on a record written before invitations carried their
|
|
247
|
+
* `sereus-invite:1.` prefix; the node is a member either way, so the record says so without one.
|
|
212
248
|
*/
|
|
213
249
|
function issuerOf(node) {
|
|
214
250
|
if (node.join.kind !== 'invitation')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-node-watcher.js","sourceRoot":"","sources":["../../src/hosted/hosted-node-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"hosted-node-watcher.js","sourceRoot":"","sources":["../../src/hosted/hosted-node-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Reading a hosted child's `/status` — the one window the host has onto a node it
|
|
3
|
-
* runs: its peer id and addresses before the claim,
|
|
4
|
-
* and the owner key after it
|
|
5
|
-
* status watcher.
|
|
3
|
+
* runs: its peer id and addresses before the claim, the claim itself, the party
|
|
4
|
+
* and the owner key after it, and its removal by an owner. Shared by
|
|
5
|
+
* `HostedNodeService.claimDetails` and the status watcher.
|
|
6
6
|
*/
|
|
7
7
|
import type { HealthStatus } from '@serfab/cadre-cli';
|
|
8
8
|
/** The party an unclaimed child's config names; the claim replaces it. */
|
|
@@ -13,12 +13,28 @@ export declare function statusUrlFor(healthEndpoint: string): string;
|
|
|
13
13
|
export type NodeStatus = HealthStatus & {
|
|
14
14
|
peerId: string;
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* A `/status` answer from a child an owner removed from its cadre. The child stopped its node
|
|
18
|
+
* and stays up only to report this, so it has no peer identity.
|
|
19
|
+
*/
|
|
20
|
+
export type RemovedNodeStatus = HealthStatus & {
|
|
21
|
+
node: {
|
|
22
|
+
removed: NonNullable<HealthStatus['node']['removed']>;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
16
25
|
/**
|
|
17
26
|
* The child's `/status`, fresh every call. Throws `node_unavailable` while the child
|
|
18
27
|
* does not answer, answers with an error, or has no peer identity yet — every one of
|
|
19
28
|
* which a caller retries.
|
|
20
29
|
*/
|
|
21
30
|
export declare function readNodeStatus(statusEndpoint: string): Promise<NodeStatus>;
|
|
31
|
+
/**
|
|
32
|
+
* {@link readNodeStatus} for the watcher, which also has to hear a removal: a child reporting
|
|
33
|
+
* one is answered as it is rather than refused for having no peer identity.
|
|
34
|
+
*/
|
|
35
|
+
export declare function readWatchedNodeStatus(statusEndpoint: string): Promise<NodeStatus | RemovedNodeStatus>;
|
|
36
|
+
/** Whether the child reports that an owner removed it from its cadre. */
|
|
37
|
+
export declare function reportsRemoval(status: HealthStatus): status is RemovedNodeStatus;
|
|
22
38
|
/**
|
|
23
39
|
* Whether `/status` reports a finished claim: a claim on record AND the party it
|
|
24
40
|
* named. `claim` flips to `claimed` the moment the node records the claim, but the
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Reading a hosted child's `/status` — the one window the host has onto a node it
|
|
3
|
-
* runs: its peer id and addresses before the claim,
|
|
4
|
-
* and the owner key after it
|
|
5
|
-
* status watcher.
|
|
3
|
+
* runs: its peer id and addresses before the claim, the claim itself, the party
|
|
4
|
+
* and the owner key after it, and its removal by an owner. Shared by
|
|
5
|
+
* `HostedNodeService.claimDetails` and the status watcher.
|
|
6
6
|
*/
|
|
7
7
|
import { HostedNodeError } from './types.js';
|
|
8
8
|
/** The party an unclaimed child's config names; the claim replaces it. */
|
|
@@ -19,6 +19,21 @@ export function statusUrlFor(healthEndpoint) {
|
|
|
19
19
|
* which a caller retries.
|
|
20
20
|
*/
|
|
21
21
|
export async function readNodeStatus(statusEndpoint) {
|
|
22
|
+
return requirePeerIdentity(await fetchNodeStatus(statusEndpoint));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* {@link readNodeStatus} for the watcher, which also has to hear a removal: a child reporting
|
|
26
|
+
* one is answered as it is rather than refused for having no peer identity.
|
|
27
|
+
*/
|
|
28
|
+
export async function readWatchedNodeStatus(statusEndpoint) {
|
|
29
|
+
const status = await fetchNodeStatus(statusEndpoint);
|
|
30
|
+
return reportsRemoval(status) ? status : requirePeerIdentity(status);
|
|
31
|
+
}
|
|
32
|
+
/** Whether the child reports that an owner removed it from its cadre. */
|
|
33
|
+
export function reportsRemoval(status) {
|
|
34
|
+
return Boolean(status.node.removed);
|
|
35
|
+
}
|
|
36
|
+
async function fetchNodeStatus(statusEndpoint) {
|
|
22
37
|
let res;
|
|
23
38
|
try {
|
|
24
39
|
res = await fetch(statusEndpoint);
|
|
@@ -29,13 +44,14 @@ export async function readNodeStatus(statusEndpoint) {
|
|
|
29
44
|
if (!res.ok) {
|
|
30
45
|
throw new HostedNodeError('node_unavailable', `Hosted node /status returned ${res.status}`);
|
|
31
46
|
}
|
|
32
|
-
let status;
|
|
33
47
|
try {
|
|
34
|
-
|
|
48
|
+
return (await res.json());
|
|
35
49
|
}
|
|
36
50
|
catch (err) {
|
|
37
51
|
throw new HostedNodeError('node_unavailable', `Hosted node /status is not JSON: ${errorMessage(err)}`);
|
|
38
52
|
}
|
|
53
|
+
}
|
|
54
|
+
function requirePeerIdentity(status) {
|
|
39
55
|
if (!status.peerId || !status.multiaddrs?.length) {
|
|
40
56
|
throw new HostedNodeError('node_unavailable', 'Hosted node has no peer identity yet');
|
|
41
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-status.js","sourceRoot":"","sources":["../../src/hosted/node-status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,cAAsB;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;IACzB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-status.js","sourceRoot":"","sources":["../../src/hosted/node-status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,cAAsB;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;IACzB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAWD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,cAAsB;IACzD,OAAO,mBAAmB,CAAC,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,cAAsB;IAChE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;IACrD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,cAAsB;IACnD,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,4BAA4B,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,gCAAgC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiB,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,oCAAoC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAoB;IAC/C,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACjD,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,sCAAsC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,MAAoB,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS;WACjC,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;WACnC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE;WAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/hosted/types.d.ts
CHANGED
|
@@ -17,11 +17,13 @@
|
|
|
17
17
|
* unclaimed → (claim) the child is up with a claim secret, waiting for a phone to claim it.
|
|
18
18
|
* joining → (invitation) the child is up, its redemption of the invitation not yet settled.
|
|
19
19
|
* joined → in its cadre: claimed, or the invitation accepted by a member.
|
|
20
|
-
* error → the supervisor gave up on it, the stuck-`spawning` reap found it,
|
|
21
|
-
* invitation was refused or no member could be reached (`retryable` says which)
|
|
20
|
+
* error → the supervisor gave up on it, the stuck-`spawning` reap found it, the
|
|
21
|
+
* invitation was refused or no member could be reached (`retryable` says which),
|
|
22
|
+
* or an owner removed it from its cadre (`removedByOwner`).
|
|
22
23
|
*
|
|
23
|
-
* Removal deletes the row; there is no terminal "removed" status
|
|
24
|
-
* its
|
|
24
|
+
* Removal deletes the row; there is no terminal "removed" status, and a node an owner removed
|
|
25
|
+
* from its cadre is, to the host, a node that failed and waits for the admin. An `error`
|
|
26
|
+
* record keeps its working directory (its identity key) until it is removed or reset.
|
|
25
27
|
*/
|
|
26
28
|
export type HostedNodeStatus = 'spawning' | 'unclaimed' | 'joining' | 'joined' | 'error';
|
|
27
29
|
/**
|
|
@@ -95,9 +97,14 @@ export interface HostedNode {
|
|
|
95
97
|
/**
|
|
96
98
|
* Set with `error` when an invitation failed: whether Retry may start the node again with
|
|
97
99
|
* the same invitation (no member could be reached), or the invitation itself was refused.
|
|
98
|
-
*
|
|
100
|
+
* False on a node an owner removed; absent on every other `error`.
|
|
99
101
|
*/
|
|
100
102
|
retryable?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Set with `error` when the node reported that an owner removed it from its cadre, so the
|
|
105
|
+
* UI words it as a removal rather than a failure to join or to stay up.
|
|
106
|
+
*/
|
|
107
|
+
removedByOwner?: true;
|
|
101
108
|
}
|
|
102
109
|
/** `join` without its secret: what `list`, `get`, the routes and the events carry. */
|
|
103
110
|
export type HostedNodeJoinView = {
|
package/dist/hosted/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hosted/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hosted/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0HH,yEAAyE;AACzE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGxC,YAAY,IAAyB,EAAE,OAAe;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|