@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.
Files changed (107) hide show
  1. package/README.md +19 -4
  2. package/dist/bin/host.js +32 -20
  3. package/dist/bin/host.js.map +1 -1
  4. package/dist/bin/nat-output.d.ts +5 -0
  5. package/dist/bin/nat-output.js +12 -1
  6. package/dist/bin/nat-output.js.map +1 -1
  7. package/dist/bin/ui-access.d.ts +22 -0
  8. package/dist/bin/ui-access.js +44 -0
  9. package/dist/bin/ui-access.js.map +1 -0
  10. package/dist/hosted/claim-details.d.ts +25 -3
  11. package/dist/hosted/claim-details.js +31 -37
  12. package/dist/hosted/claim-details.js.map +1 -1
  13. package/dist/hosted/hosted-node-service.d.ts +7 -0
  14. package/dist/hosted/hosted-node-service.js +16 -4
  15. package/dist/hosted/hosted-node-service.js.map +1 -1
  16. package/dist/hosted/hosted-node-watcher.d.ts +16 -4
  17. package/dist/hosted/hosted-node-watcher.js +45 -9
  18. package/dist/hosted/hosted-node-watcher.js.map +1 -1
  19. package/dist/hosted/node-status.d.ts +19 -3
  20. package/dist/hosted/node-status.js +21 -5
  21. package/dist/hosted/node-status.js.map +1 -1
  22. package/dist/hosted/types.d.ts +12 -5
  23. package/dist/hosted/types.js.map +1 -1
  24. package/dist/installer/config.d.ts +23 -0
  25. package/dist/installer/config.js +46 -0
  26. package/dist/installer/config.js.map +1 -1
  27. package/dist/installer/index.d.ts +2 -0
  28. package/dist/installer/index.js +7 -16
  29. package/dist/installer/index.js.map +1 -1
  30. package/dist/installer/wizard.d.ts +12 -2
  31. package/dist/installer/wizard.js +15 -7
  32. package/dist/installer/wizard.js.map +1 -1
  33. package/dist/nat/index.d.ts +2 -1
  34. package/dist/nat/index.js +1 -0
  35. package/dist/nat/index.js.map +1 -1
  36. package/dist/nat/nat-service.d.ts +22 -5
  37. package/dist/nat/nat-service.js +75 -26
  38. package/dist/nat/nat-service.js.map +1 -1
  39. package/dist/nat/nat-store.js +11 -0
  40. package/dist/nat/nat-store.js.map +1 -1
  41. package/dist/nat/network-mode.d.ts +19 -0
  42. package/dist/nat/network-mode.js +32 -0
  43. package/dist/nat/network-mode.js.map +1 -0
  44. package/dist/nat/reachability.d.ts +5 -4
  45. package/dist/nat/reachability.js +19 -6
  46. package/dist/nat/reachability.js.map +1 -1
  47. package/dist/nat/types.d.ts +26 -6
  48. package/dist/nat/types.js.map +1 -1
  49. package/dist/orchestrator/host-process-orchestrator.d.ts +3 -3
  50. package/dist/orchestrator/host-process-orchestrator.js +6 -15
  51. package/dist/orchestrator/host-process-orchestrator.js.map +1 -1
  52. package/dist/package-version.d.ts +1 -0
  53. package/dist/package-version.js +4 -0
  54. package/dist/package-version.js.map +1 -0
  55. package/dist/server/routes/settings.d.ts +1 -0
  56. package/dist/server/routes/settings.js +15 -1
  57. package/dist/server/routes/settings.js.map +1 -1
  58. package/dist/server/routes/status.js +2 -32
  59. package/dist/server/routes/status.js.map +1 -1
  60. package/dist/ui/assets/index-BHd8CWZA.css +1 -0
  61. package/dist/ui/assets/index-Ccr2GjPT.js +23 -0
  62. package/dist/ui/assets/{index-4FWuU8ye.js.map → index-Ccr2GjPT.js.map} +1 -1
  63. package/dist/ui/index.html +2 -2
  64. package/package.json +4 -5
  65. package/src/__tests__/cli.smoke.test.ts +1 -1
  66. package/src/__tests__/orchestrator-claim-secret.test.ts +1 -2
  67. package/src/__tests__/orchestrator-env-scrub.test.ts +160 -163
  68. package/src/__tests__/orchestrator-handle-contract.ts +1 -1
  69. package/src/__tests__/orchestrator-node-identity.test.ts +0 -5
  70. package/src/__tests__/orchestrator-push.test.ts +3 -3
  71. package/src/__tests__/orchestrator.test.ts +3 -5
  72. package/src/__tests__/ui-access.test.ts +30 -0
  73. package/src/bin/host.ts +30 -20
  74. package/src/bin/nat-output.ts +12 -1
  75. package/src/bin/ui-access.ts +50 -0
  76. package/src/hosted/__tests__/fake-orchestrator.test.ts +0 -1
  77. package/src/hosted/__tests__/fake-orchestrator.ts +263 -265
  78. package/src/hosted/__tests__/hosted-node-service.test.ts +708 -609
  79. package/src/hosted/__tests__/hosted-node-supervisor.test.ts +475 -474
  80. package/src/hosted/claim-details.ts +44 -37
  81. package/src/hosted/hosted-node-service.ts +23 -4
  82. package/src/hosted/hosted-node-watcher.ts +288 -250
  83. package/src/hosted/node-status.ts +31 -5
  84. package/src/hosted/types.ts +160 -153
  85. package/src/installer/__tests__/installer.smoke.test.ts +184 -182
  86. package/src/installer/__tests__/wizard.test.ts +76 -56
  87. package/src/installer/config.ts +66 -0
  88. package/src/installer/index.ts +252 -259
  89. package/src/installer/wizard.ts +101 -87
  90. package/src/nat/__tests__/nat-service.test.ts +608 -540
  91. package/src/nat/__tests__/nat-store.test.ts +130 -127
  92. package/src/nat/__tests__/network-mode.test.ts +38 -0
  93. package/src/nat/index.ts +91 -87
  94. package/src/nat/nat-service.ts +79 -26
  95. package/src/nat/nat-store.ts +249 -237
  96. package/src/nat/network-mode.ts +36 -0
  97. package/src/nat/reachability.ts +155 -143
  98. package/src/nat/types.ts +232 -209
  99. package/src/orchestrator/host-process-orchestrator.ts +1089 -1098
  100. package/src/package-version.ts +4 -0
  101. package/src/server/__tests__/fakes.ts +41 -40
  102. package/src/server/__tests__/hosted-nodes-route.test.ts +161 -160
  103. package/src/server/__tests__/settings-route.test.ts +31 -0
  104. package/src/server/routes/settings.ts +128 -115
  105. package/src/server/routes/status.ts +72 -102
  106. package/dist/ui/assets/index-4FWuU8ye.js +0 -19
  107. 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 { multiaddr, CODE_IP4, CODE_IP6, CODE_P2P_CIRCUIT } from '@multiformats/multiaddr';
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 addresses the QR code names, in dial order: the node's public addresses
27
- * from the NAT layer with the peer id appended (a phone away from home needs
28
- * these), then the node's own non-loopback addresses as `/status` reports them
29
- * (they already carry `/p2p/`; a phone at home dials these). Loopback and relay
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 dialAddressesFor({ id, status, ports, addresses }) {
34
- const publicAddrs = ports
35
- ? addresses.publicAddressesFor(id, ports).map((a) => `${a}/p2p/${status.peerId}`)
36
- : [];
37
- const lanAddrs = status.multiaddrs.filter((a) => isDialableFromLan(a));
38
- return [...new Set([...publicAddrs, ...lanAddrs])];
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
- * Whether an address the node reports is one a phone on the host's LAN can dial:
42
- * not loopback, not the unspecified address (libp2p expands a `0.0.0.0` listen into
43
- * interface addresses, but a raw one names nothing to dial), not a relay circuit,
44
- * and parsable. A DNS address passes (it names something off this machine); an
45
- * address with no host component at all is dropped.
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 isDialableFromLan(addr) {
48
- let components;
49
- try {
50
- components = multiaddr(addr).getComponents();
51
- }
52
- catch {
53
- return false;
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,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8B7C;;;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;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAqB;IAC3E,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACjF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,UAAqE,CAAC;IAC1E,IAAI,CAAC;QACH,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,KAAK;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAC9F,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IAC/E,OAAO,IAAI,CAAC;AACd,CAAC"}
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 { buildClaimDetails } from './claim-details.js';
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
- return buildClaimDetails({ id, secret, status, ports: this.orchestrator.getNode?.(id)?.ports, addresses: this.addresses });
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. `seedToken` and `seedEndpoint` are the provider's shape; cadre-host ignores both. */
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; and a `joined`
27
- * record's `connected` follows the node's control-connection count. Best-effort: a poll
28
- * that fails is retried on the next tick, and nothing here throws out of the timer.
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, readNodeStatus, reportsClaim } from './node-status.js';
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; and a `joined`
15
- * record's `connected` follows the node's control-connection count. Best-effort: a poll
16
- * that fails is retried on the next tick, and nothing here throws out of the timer.
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 readNodeStatus(record.statusEndpoint);
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 (current.status === 'unclaimed') {
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 its invitation failed: %s', current.id, errorMessage(err));
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 fails on a hand-edited
211
- * `hosted-nodes.json`; the node is a member either way, so the record says so without one.
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,cAAc,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AAG/F,MAAM,GAAG,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAEpD,8GAA8G;AAC9G,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAK,CAAC;AAE/C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAM,CAAC;AAWpD,qFAAqF;AACrF,MAAM,gBAAgB,GAAkC,IAAI,GAAG,CAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AAU5G;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,iBAAiB;IAc5B,YAAY,IAA8B;QARlC,SAAI,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;QAGhD,wEAAwE;QACvD,iBAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1D,mEAAmE;QAClD,QAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAGvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;IAED,oFAAoF;IACpF,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,kGAAkG;IAClG,IAAI,CAAC,EAAW;QACd,IAAI,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,wBAAwB,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,mGAAmG;IACnG,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,OAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+FAA+F;YAC/F,GAAG,CAAC,sCAAsC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,8GAA8G;IACtG,aAAa,CAAC,IAAiB;QACrC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3F,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,UAAU,CAAC,MAAkB;QACnC,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,6BAA6B,CAAC;IAC5F,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAkB;QACtC,IAAI,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO;QACnC,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,+DAA+D,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YACnG,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3B,+EAA+E;QAC/E,8EAA8E;QAC9E,+EAA+E;QAC/E,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAAE,OAAO;QACzD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,6GAA6G;IACrG,cAAc,CAAC,OAAmB,EAAE,MAAkB;QAC5D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACb,GAAG,OAAO;YACV,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC5B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;YACvC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,GAAG,CAAC,sDAAsD,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,OAAmB,EAAE,MAAkB;QAChE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QAC1C,IAAI,UAAU,EAAE,KAAK,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACb,GAAG,OAAO;gBACV,MAAM,EAAE,QAAQ;gBAChB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;gBACvC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC;gBAChD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;YACH,GAAG,CAAC,6CAA6C,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;YACxH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,IAAI,UAAU,EAAE,KAAK,KAAK,QAAQ;YAAE,OAAO;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,sCAAsC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACb,GAAG,OAAO;YACV,MAAM,EAAE,OAAO;YACf,KAAK;YACL,SAAS,EAAE,UAAU,CAAC,SAAS,KAAK,IAAI;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;YACvC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,GAAG,CAAC,iDAAiD,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,+DAA+D,EAAE,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,OAAmB,EAAE,MAAkB;QACzD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC/E,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAAgB;IAChC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,CAAC;QACH,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,iEAAiE,EAAE,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACnG,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
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, and the claim itself, the party
4
- * and the owner key after it. Shared by `HostedNodeService.claimDetails` and the
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, and the claim itself, the party
4
- * and the owner key after it. Shared by `HostedNodeService.claimDetails` and the
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
- status = (await res.json());
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;AAKD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,cAAsB;IACzD,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,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiB,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,oCAAoC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IACD,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"}
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"}
@@ -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, or the
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. An `error` record keeps
24
- * its working directory (its identity key) until it is removed or reset.
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
- * Absent on every other `error`.
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 = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hosted/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmHH,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"}
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"}