@serfab/cadre-host 1.7.0 → 1.8.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 +31 -16
- package/dist/bin/host.js +41 -20
- package/dist/bin/host.js.map +1 -1
- package/dist/donation/donation-service.d.ts +27 -4
- package/dist/donation/donation-service.js +57 -6
- package/dist/donation/donation-service.js.map +1 -1
- package/dist/donation/donation-store.d.ts +3 -1
- package/dist/donation/donation-store.js +5 -1
- package/dist/donation/donation-store.js.map +1 -1
- package/dist/donation/grant-service.d.ts +16 -7
- package/dist/donation/grant-service.js +57 -10
- package/dist/donation/grant-service.js.map +1 -1
- package/dist/donation/index.d.ts +2 -2
- package/dist/donation/index.js +1 -1
- package/dist/donation/index.js.map +1 -1
- package/dist/donation/types.d.ts +29 -7
- package/dist/donation/types.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/nat/address-resolver.d.ts +3 -2
- package/dist/nat/address-resolver.js.map +1 -1
- package/dist/orchestrator/host-process-orchestrator.d.ts +1 -1
- package/dist/orchestrator/host-process-orchestrator.js +21 -11
- package/dist/orchestrator/host-process-orchestrator.js.map +1 -1
- package/dist/orchestrator/port-allocator.d.ts +6 -39
- package/dist/orchestrator/port-allocator.js +9 -89
- package/dist/orchestrator/port-allocator.js.map +1 -1
- package/dist/server/events/types.d.ts +3 -0
- package/dist/server/index.d.ts +19 -18
- package/dist/server/index.js +13 -15
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/grants-admin.d.ts +15 -3
- package/dist/server/routes/grants-admin.js +33 -7
- package/dist/server/routes/grants-admin.js.map +1 -1
- package/dist/server/routes/nodes.d.ts +13 -5
- package/dist/server/routes/nodes.js +58 -39
- package/dist/server/routes/nodes.js.map +1 -1
- package/dist/server/routes/status.d.ts +13 -0
- package/dist/server/routes/status.js +2 -0
- package/dist/server/routes/status.js.map +1 -1
- package/dist/ui/assets/index-C6nELNfC.js +23 -0
- package/dist/ui/assets/index-C6nELNfC.js.map +1 -0
- package/dist/ui/assets/index-TtIYSeZO.css +1 -0
- package/dist/ui/index.html +2 -2
- package/package.json +4 -4
- package/src/__tests__/global-setup.ts +58 -56
- package/src/__tests__/orchestrator-env-scrub.test.ts +12 -11
- package/src/__tests__/orchestrator-handle-contract.ts +134 -0
- package/src/__tests__/orchestrator-node-identity.test.ts +6 -7
- package/src/__tests__/orchestrator-owner.test.ts +6 -13
- package/src/__tests__/orchestrator-pin-keys.test.ts +6 -7
- package/src/__tests__/orchestrator-ports.test.ts +5 -34
- package/src/__tests__/orchestrator-push.test.ts +6 -5
- package/src/__tests__/orchestrator-teardown.ts +65 -0
- package/src/__tests__/orchestrator.test.ts +23 -22
- package/src/auth/__tests__/trust-circle-integration.test.ts +1 -1
- package/src/bin/host.ts +56 -33
- package/src/donation/__tests__/donation-service.test.ts +38 -0
- package/src/donation/__tests__/fake-orchestrator.test.ts +19 -14
- package/src/donation/__tests__/fake-orchestrator.ts +21 -3
- package/src/donation/__tests__/grant-service.test.ts +2 -2
- package/src/donation/donation-service.ts +58 -6
- package/src/donation/donation-store.ts +176 -171
- package/src/donation/grant-service.ts +252 -200
- package/src/donation/index.ts +65 -64
- package/src/donation/types.ts +260 -244
- package/src/index.ts +2 -0
- package/src/nat/address-resolver.ts +3 -2
- package/src/orchestrator/host-process-orchestrator.ts +1260 -1251
- package/src/orchestrator/port-allocator.ts +16 -91
- package/src/server/__tests__/fakes.ts +44 -0
- package/src/server/__tests__/grants-admin-route.test.ts +171 -73
- package/src/server/__tests__/nodes-route.test.ts +49 -25
- package/src/server/__tests__/publishers.test.ts +5 -41
- package/src/server/__tests__/server.smoke.test.ts +7 -37
- package/src/server/__tests__/status-route.test.ts +8 -21
- package/src/server/__tests__/strands-route.test.ts +3 -2
- package/src/server/events/types.ts +24 -23
- package/src/server/index.ts +267 -267
- package/src/server/routes/grants-admin.ts +74 -41
- package/src/server/routes/nodes.ts +61 -43
- package/src/server/routes/status.ts +16 -0
- package/dist/donation/__tests__/fake-orchestrator.d.ts +0 -103
- package/dist/donation/__tests__/fake-orchestrator.js +0 -180
- package/dist/donation/__tests__/fake-orchestrator.js.map +0 -1
- package/dist/ui/assets/index-BVoqLjyX.css +0 -1
- package/dist/ui/assets/index-CEoNRwM_.js +0 -17
- package/dist/ui/assets/index-CEoNRwM_.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"donation-service.js","sourceRoot":"","sources":["../../src/donation/donation-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"donation-service.js","sourceRoot":"","sources":["../../src/donation/donation-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { Donation, DonationFile } from './types.js';
|
|
1
|
+
import type { Donation, DonationFile, DonationStatus } from './types.js';
|
|
2
|
+
/** Whether a donation in `status` counts against its grant's `maxNodes` quota. */
|
|
3
|
+
export declare function isLiveDonationStatus(status: DonationStatus): boolean;
|
|
2
4
|
/**
|
|
3
5
|
* Atomic JSON store for `donations.json` — one row per donated node. Modelled on
|
|
4
6
|
* `grant-store.ts`: a single file written to `<path>.tmp` then renamed, with an
|
|
@@ -13,6 +13,10 @@ const LIVE_STATUSES = new Set([
|
|
|
13
13
|
'awaiting_seed',
|
|
14
14
|
'seeded',
|
|
15
15
|
]);
|
|
16
|
+
/** Whether a donation in `status` counts against its grant's `maxNodes` quota. */
|
|
17
|
+
export function isLiveDonationStatus(status) {
|
|
18
|
+
return LIVE_STATUSES.has(status);
|
|
19
|
+
}
|
|
16
20
|
/**
|
|
17
21
|
* Atomic JSON store for `donations.json` — one row per donated node. Modelled on
|
|
18
22
|
* `grant-store.ts`: a single file written to `<path>.tmp` then renamed, with an
|
|
@@ -129,7 +133,7 @@ export class DonationStore {
|
|
|
129
133
|
* `seeded`). `error` and `terminated` rows are excluded.
|
|
130
134
|
*/
|
|
131
135
|
liveNodeCount(grantToken) {
|
|
132
|
-
return this.list().filter((d) => d.grantToken === grantToken &&
|
|
136
|
+
return this.list().filter((d) => d.grantToken === grantToken && isLiveDonationStatus(d.status)).length;
|
|
133
137
|
}
|
|
134
138
|
}
|
|
135
139
|
function emptyFile() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"donation-store.js","sourceRoot":"","sources":["../../src/donation/donation-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"donation-store.js","sourceRoot":"","sources":["../../src/donation/donation-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DonationService } from './donation-service.js';
|
|
1
2
|
import type { GrantStore } from './grant-store.js';
|
|
2
3
|
import type { Grant, GrantAdminHandlers, GrantValidation, GrantValidator } from './types.js';
|
|
3
4
|
/** Default node cap when the admin doesn't specify one. */
|
|
@@ -54,10 +55,13 @@ export declare class GrantService implements GrantValidator {
|
|
|
54
55
|
*/
|
|
55
56
|
validateForProvision(token: string, liveNodeCount: (token: string) => number): GrantValidation;
|
|
56
57
|
/**
|
|
57
|
-
* Revoke a grant by token: mark it revoked (denies future requests).
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
58
|
+
* Revoke a grant by token: mark it revoked (denies future requests).
|
|
59
|
+
* Idempotent on an already-revoked grant; throws not_found when the token is
|
|
60
|
+
* unknown.
|
|
61
|
+
*
|
|
62
|
+
* This only marks the grant. Tearing down the nodes already donated under it
|
|
63
|
+
* is `DonationService.terminateGrant`, which the admin handler
|
|
64
|
+
* ({@link createGrantAdminHandlers}) runs after this unless asked to keep them.
|
|
61
65
|
*/
|
|
62
66
|
revoke(token: string): void;
|
|
63
67
|
/** Enumerate all grants (for the CLI / UI). */
|
|
@@ -65,7 +69,12 @@ export declare class GrantService implements GrantValidator {
|
|
|
65
69
|
}
|
|
66
70
|
/**
|
|
67
71
|
* Wrap a GrantService into the typed handler shape consumed by the loopback
|
|
68
|
-
* management server's `/grants-admin` routes. Errors propagate as GrantError
|
|
69
|
-
* the server maps `.code` → HTTP status.
|
|
72
|
+
* management server's `/grants-admin` routes. Errors propagate as GrantError /
|
|
73
|
+
* DonationError; the server maps `.code` → HTTP status.
|
|
74
|
+
*
|
|
75
|
+
* `donations` is where revoke's node teardown, the single-donation terminate and
|
|
76
|
+
* the listing's per-grant node counts come from. Without it there can be no
|
|
77
|
+
* donated nodes, so revoke only marks the grant, every grant lists with no
|
|
78
|
+
* nodes, and `terminateDonation` is left off.
|
|
70
79
|
*/
|
|
71
|
-
export declare function createGrantAdminHandlers(service: GrantService): GrantAdminHandlers;
|
|
80
|
+
export declare function createGrantAdminHandlers(service: GrantService, donations?: Pick<DonationService, 'terminate' | 'terminateGrant' | 'list'>): GrantAdminHandlers;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import debug from 'debug';
|
|
3
|
+
import { isLiveDonationStatus } from './donation-store.js';
|
|
3
4
|
import { GrantError } from './types.js';
|
|
4
5
|
const log = debug('cadre:host:grant-service');
|
|
5
6
|
/** Token byte length (base64url-encoded; ~43 chars). Matches trust-circle. */
|
|
@@ -93,10 +94,13 @@ export class GrantService {
|
|
|
93
94
|
return { ok: true, grant: base.grant };
|
|
94
95
|
}
|
|
95
96
|
/**
|
|
96
|
-
* Revoke a grant by token: mark it revoked (denies future requests).
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
97
|
+
* Revoke a grant by token: mark it revoked (denies future requests).
|
|
98
|
+
* Idempotent on an already-revoked grant; throws not_found when the token is
|
|
99
|
+
* unknown.
|
|
100
|
+
*
|
|
101
|
+
* This only marks the grant. Tearing down the nodes already donated under it
|
|
102
|
+
* is `DonationService.terminateGrant`, which the admin handler
|
|
103
|
+
* ({@link createGrantAdminHandlers}) runs after this unless asked to keep them.
|
|
100
104
|
*/
|
|
101
105
|
revoke(token) {
|
|
102
106
|
if (!this.store.markRevoked(token, this.now().toISOString())) {
|
|
@@ -111,11 +115,16 @@ export class GrantService {
|
|
|
111
115
|
}
|
|
112
116
|
/**
|
|
113
117
|
* Wrap a GrantService into the typed handler shape consumed by the loopback
|
|
114
|
-
* management server's `/grants-admin` routes. Errors propagate as GrantError
|
|
115
|
-
* the server maps `.code` → HTTP status.
|
|
118
|
+
* management server's `/grants-admin` routes. Errors propagate as GrantError /
|
|
119
|
+
* DonationError; the server maps `.code` → HTTP status.
|
|
120
|
+
*
|
|
121
|
+
* `donations` is where revoke's node teardown, the single-donation terminate and
|
|
122
|
+
* the listing's per-grant node counts come from. Without it there can be no
|
|
123
|
+
* donated nodes, so revoke only marks the grant, every grant lists with no
|
|
124
|
+
* nodes, and `terminateDonation` is left off.
|
|
116
125
|
*/
|
|
117
|
-
export function createGrantAdminHandlers(service) {
|
|
118
|
-
|
|
126
|
+
export function createGrantAdminHandlers(service, donations) {
|
|
127
|
+
const handlers = {
|
|
119
128
|
async postGrant(body) {
|
|
120
129
|
if (!body || typeof body.label !== 'string') {
|
|
121
130
|
throw new GrantError('invalid_label', 'label is required');
|
|
@@ -128,12 +137,50 @@ export function createGrantAdminHandlers(service) {
|
|
|
128
137
|
return { grant };
|
|
129
138
|
},
|
|
130
139
|
async listGrants() {
|
|
131
|
-
|
|
140
|
+
const byGrant = groupByGrant(donations?.list() ?? []);
|
|
141
|
+
return { grants: service.list().map((grant) => toListing(grant, byGrant.get(grant.token) ?? [])) };
|
|
132
142
|
},
|
|
133
|
-
async deleteGrant(token) {
|
|
143
|
+
async deleteGrant(token, { keepNodes }) {
|
|
144
|
+
// Revoke first: it throws not_found for an unknown token before any
|
|
145
|
+
// teardown, and a provision racing this call is then refused as revoked.
|
|
134
146
|
service.revoke(token);
|
|
147
|
+
// NOTE: the teardown runs inside the HTTP request, one stop + reclaim per
|
|
148
|
+
// node in series. Fine for a handful of nodes per grant; if grants ever
|
|
149
|
+
// carry many, answer after the revoke and tear down in the background.
|
|
150
|
+
if (keepNodes || !donations)
|
|
151
|
+
return { terminated: [] };
|
|
152
|
+
return { terminated: await donations.terminateGrant(token) };
|
|
135
153
|
},
|
|
136
154
|
};
|
|
155
|
+
if (donations) {
|
|
156
|
+
handlers.terminateDonation = (id) => donations.terminate(id);
|
|
157
|
+
}
|
|
158
|
+
return handlers;
|
|
159
|
+
}
|
|
160
|
+
/** One read of the donation store, bucketed by grant token. */
|
|
161
|
+
function groupByGrant(donations) {
|
|
162
|
+
const byGrant = new Map();
|
|
163
|
+
for (const donation of donations) {
|
|
164
|
+
const bucket = byGrant.get(donation.grantToken);
|
|
165
|
+
if (bucket)
|
|
166
|
+
bucket.push(donation);
|
|
167
|
+
else
|
|
168
|
+
byGrant.set(donation.grantToken, [donation]);
|
|
169
|
+
}
|
|
170
|
+
return byGrant;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* `liveNodes` uses the quota's own rule; `donations` is the set a revoke tears
|
|
174
|
+
* down (every record not yet `terminated`, `error` included), so the admin can be
|
|
175
|
+
* told the real count before confirming.
|
|
176
|
+
*/
|
|
177
|
+
function toListing(grant, donations) {
|
|
178
|
+
const unterminated = donations.filter((d) => d.status !== 'terminated');
|
|
179
|
+
return {
|
|
180
|
+
...grant,
|
|
181
|
+
liveNodes: unterminated.filter((d) => isLiveDonationStatus(d.status)).length,
|
|
182
|
+
donations: unterminated.map(({ id, status }) => ({ id, status })),
|
|
183
|
+
};
|
|
137
184
|
}
|
|
138
185
|
function generateToken() {
|
|
139
186
|
// base64url so it survives in URLs, QR codes, and shell arguments.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant-service.js","sourceRoot":"","sources":["../../src/donation/grant-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"grant-service.js","sourceRoot":"","sources":["../../src/donation/grant-service.ts"],"names":[],"mappings":"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"}
|
package/dist/donation/index.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export { GrantStore } from './grant-store.js';
|
|
|
11
11
|
export { GrantService, createGrantAdminHandlers, DEFAULT_MAX_NODES, } from './grant-service.js';
|
|
12
12
|
export type { GrantServiceOptions } from './grant-service.js';
|
|
13
13
|
export { GrantError, DonationError } from './types.js';
|
|
14
|
-
export type { Grant, GrantDenyReason, GrantValidation, GrantValidator, GrantFile, GrantAdminHandlers, GrantErrorCode, } from './types.js';
|
|
15
|
-
export { DonationStore } from './donation-store.js';
|
|
14
|
+
export type { Grant, GrantListing, GrantDenyReason, GrantValidation, GrantValidator, GrantFile, GrantAdminHandlers, GrantErrorCode, } from './types.js';
|
|
15
|
+
export { DonationStore, isLiveDonationStatus } from './donation-store.js';
|
|
16
16
|
export { DonationService, DONATION_AWAITING_SEED_TTL_MS, DONATION_PROVISIONING_TTL_MS, DONATION_REAP_SWEEP_MS, } from './donation-service.js';
|
|
17
17
|
export type { DonationOrchestrator, DonationProvisionRequest, DonationSeedResult, DonationPeerInfo, DonationServiceOptions, RespawnResult, } from './donation-service.js';
|
|
18
18
|
export { DonationSupervisor, DONATION_RESPAWN_BACKOFF_BASE_MS, DONATION_RESPAWN_BACKOFF_MAX_MS, DONATION_RESPAWN_MAX_ATTEMPTS, DONATION_RESPAWN_HEALTHY_MS, DONATION_RESPAWN_SWEEP_MS, } from './donation-supervisor.js';
|
package/dist/donation/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export { GrantStore } from './grant-store.js';
|
|
|
11
11
|
export { GrantService, createGrantAdminHandlers, DEFAULT_MAX_NODES, } from './grant-service.js';
|
|
12
12
|
export { GrantError, DonationError } from './types.js';
|
|
13
13
|
/* ──────────────── donation lifecycle (2-donation-service) ──────────────── */
|
|
14
|
-
export { DonationStore } from './donation-store.js';
|
|
14
|
+
export { DonationStore, isLiveDonationStatus } from './donation-store.js';
|
|
15
15
|
export { DonationService, DONATION_AWAITING_SEED_TTL_MS, DONATION_PROVISIONING_TTL_MS, DONATION_REAP_SWEEP_MS, } from './donation-service.js';
|
|
16
16
|
export { DonationSupervisor, DONATION_RESPAWN_BACKOFF_BASE_MS, DONATION_RESPAWN_BACKOFF_MAX_MS, DONATION_RESPAWN_MAX_ATTEMPTS, DONATION_RESPAWN_HEALTHY_MS, DONATION_RESPAWN_SWEEP_MS, } from './donation-supervisor.js';
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/donation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/donation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAYvD,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
|
package/dist/donation/types.d.ts
CHANGED
|
@@ -36,6 +36,16 @@ export interface Grant {
|
|
|
36
36
|
/** Set when the admin revokes; a revoked grant validates as denied. */
|
|
37
37
|
revokedAt?: string;
|
|
38
38
|
}
|
|
39
|
+
/** One grant as the admin list reports it: the grant plus what is running under it. */
|
|
40
|
+
export interface GrantListing extends Grant {
|
|
41
|
+
/** Donations counting against `maxNodes` (provisioning / awaiting_seed / seeded). */
|
|
42
|
+
liveNodes: number;
|
|
43
|
+
/** Every donation under this grant that is not `terminated` — what revoke would tear down. */
|
|
44
|
+
donations: Array<{
|
|
45
|
+
id: string;
|
|
46
|
+
status: DonationStatus;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
39
49
|
/** Why a presented grant token was denied. */
|
|
40
50
|
export type GrantDenyReason = 'unknown_token' | 'expired' | 'revoked' | 'quota_exceeded';
|
|
41
51
|
/** Result of validating a presented bearer token. */
|
|
@@ -80,12 +90,11 @@ export interface GrantFile {
|
|
|
80
90
|
/**
|
|
81
91
|
* Typed handlers exposed to the loopback management server for the **admin**
|
|
82
92
|
* grant surface (`/grants-admin`). Distinct from the grantee-facing `/grants`
|
|
83
|
-
* provisioning surface
|
|
84
|
-
*
|
|
85
|
-
* posture.
|
|
93
|
+
* provisioning surface: the admin surface is loopback, no bearer — same-machine
|
|
94
|
+
* admin, matching cadre-host's local-UI "no login" posture.
|
|
86
95
|
*
|
|
87
|
-
* Handlers throw a `GrantError`
|
|
88
|
-
* status (see `server/error-handler.ts`).
|
|
96
|
+
* Handlers throw a `GrantError` (or, for donation teardown, a `DonationError`)
|
|
97
|
+
* whose `.code` the server maps to an HTTP status (see `server/error-handler.ts`).
|
|
89
98
|
*/
|
|
90
99
|
export interface GrantAdminHandlers {
|
|
91
100
|
postGrant(body: {
|
|
@@ -96,9 +105,22 @@ export interface GrantAdminHandlers {
|
|
|
96
105
|
grant: Grant;
|
|
97
106
|
}>;
|
|
98
107
|
listGrants(): Promise<{
|
|
99
|
-
grants:
|
|
108
|
+
grants: GrantListing[];
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Revoke a grant and, unless `keepNodes`, terminate every donated node under
|
|
112
|
+
* it. Resolves with the ids of the donations terminated.
|
|
113
|
+
*/
|
|
114
|
+
deleteGrant(token: string, opts: {
|
|
115
|
+
keepNodes: boolean;
|
|
116
|
+
}): Promise<{
|
|
117
|
+
terminated: string[];
|
|
100
118
|
}>;
|
|
101
|
-
|
|
119
|
+
/**
|
|
120
|
+
* Terminate one donated node by id, whatever state its grant is in. Absent
|
|
121
|
+
* when no donation service is wired — there are then no donated nodes to end.
|
|
122
|
+
*/
|
|
123
|
+
terminateDonation?(id: string): Promise<void>;
|
|
102
124
|
}
|
|
103
125
|
/**
|
|
104
126
|
* Lifecycle of one donated node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/donation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/donation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAiNH,sEAAsE;AACtE,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGtC,YAAY,IAAuB,EAAE,OAAe;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAUD,6DAA6D;AAC7D,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGnC,YAAY,IAAoB,EAAE,OAAe;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -37,4 +37,4 @@ export type { UpdateServiceOptions, UpdateHandlers, UpdateState, SignedManifest,
|
|
|
37
37
|
export { NatService, NatStore, NatError, createNatHandlers, ExternalIpDetector, PortMapperService, createDefaultPortMapper, evaluateReachability, buildInviteAddresses, BUILTIN_PROVIDERS, getProvider, listProviders, duckDnsProvider, DdnsUpdater, KeytarSecretsStore, FileSecretsStore, createSecretsStore, ddnsAccount, KEYTAR_SERVICE, DEFAULT_LEASE_TTL_MS, DEFAULT_REFRESH_MS, isPlausibleIp, } from './nat/index.js';
|
|
38
38
|
export type { NatServiceOptions, CadreNodeLike as NatCadreNodeLike, NatStatusSnapshot, NatDdnsStatus, NatSettingsFile, NatDdnsSettings, NatHandlers, NatErrorCode, PortForwardMode, DirectReachability, DdnsProviderInfo, DdnsConfigField, ExternalIpResult, RouterIpProbe, ExternalIpDetectorOptions, PortMapper, PortMappingResult, PortMapOptions, PortMapperState, PortMapperServiceOptions, BuildInviteAddressesInput, DdnsProvider, DdnsProviderDeps, DdnsUpdaterOptions, DdnsUpdateOutcome, SecretsStore, KeytarLike, } from './nat/index.js';
|
|
39
39
|
export { createLocalUiServer, EventBus, HostSettingsStore, } from './server/index.js';
|
|
40
|
-
export type { LocalUiServer, LocalUiServerOptions, LocalUiEvent, LocalUiEventType, LocalUiEventListener, } from './server/index.js';
|
|
40
|
+
export type { FounderServices, HostRole, LocalUiServer, LocalUiServerOptions, LocalUiEvent, LocalUiEventType, LocalUiEventListener, } from './server/index.js';
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* Inputs are the host's currently-best understanding of its dialable surface:
|
|
5
5
|
* - DDNS hostname (`/dns4/<hostname>/...`) when configured AND reachable.
|
|
6
6
|
* - Raw external IP (`/ip4/<ip>/...`) when no DDNS but reachable.
|
|
7
|
-
* - Whatever libp2p reports otherwise —
|
|
8
|
-
*
|
|
7
|
+
* - Whatever libp2p reports otherwise — which would include a `/p2p-circuit/`
|
|
8
|
+
* address once cadre-host passes a relay to its owner node; it passes none
|
|
9
|
+
* yet (docs/cadre-host.md → "NAT and DDNS", item 2).
|
|
9
10
|
*
|
|
10
11
|
* This is intentionally a pure function so it's trivial to unit-test, and so
|
|
11
12
|
* the NatService can be the only place that knows about settings → multiaddrs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-resolver.js","sourceRoot":"","sources":["../../src/nat/address-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"address-resolver.js","sourceRoot":"","sources":["../../src/nat/address-resolver.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;IACtC,+CAA+C;IAC/C,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1C,OAAO,CAAC,SAAS,KAAK,CAAC,YAAY,QAAQ,KAAK,CAAC,YAAY,GAAG,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,gDAAgD;IAChD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,QAAQ,KAAK,CAAC,UAAU,QAAQ,KAAK,CAAC,YAAY,GAAG,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,oEAAoE;IACpE,qEAAqE;IACrE,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,MAAc;IAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,MAAM,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,CAAE,0BAA0B;IACpE,OAAO,GAAG,IAAI,QAAQ,MAAM,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,MAAM,CAAC,GAAG,8CAA8C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Orchestrator, type OrchestratorCreateRequest, type OrchestratorCreateResult, type OrchestratorStats } from '@serfab/cadre-provider';
|
|
2
2
|
import { type OwnerSpawnConfig, type HostProcessConfig, type ManagedNodeInfo, type NodePorts, type NodeStateListener } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* The libp2p listen addresses a managed child binds — its `CADRE_LISTEN_ADDRS`, one
|
|
@@ -5,12 +5,16 @@ import { existsSync, readFileSync, rmSync, writeFileSync, mkdirSync, statSync, o
|
|
|
5
5
|
import { join, resolve as resolvePath, sep } from 'node:path';
|
|
6
6
|
import debug from 'debug';
|
|
7
7
|
import pidusage from 'pidusage';
|
|
8
|
+
import { PortAllocator, } from '@serfab/cadre-provider';
|
|
8
9
|
import { defaultLogPath, rotateOnDisk } from './log-rotator.js';
|
|
9
10
|
import { ensureNodeIdentity } from './node-identity.js';
|
|
10
|
-
import { allocateNodePorts,
|
|
11
|
+
import { allocateNodePorts, releaseNodePorts, reserveNodePorts, reusedNodePorts, } from './port-allocator.js';
|
|
11
12
|
import { StateStore } from './state-store.js';
|
|
12
13
|
import { isPidAlive } from './pid-liveness.js';
|
|
13
14
|
import { assertPortFree } from './port-probe.js';
|
|
15
|
+
// The child's `cadre.json` is typed against the CLI's own config schema, so a key the CLI stops
|
|
16
|
+
// accepting (or starts requiring) is a compile error here rather than a child that fails to start.
|
|
17
|
+
import { strandFilterConfigFromText } from '@serfab/cadre-cli';
|
|
14
18
|
import { encodeDockerId, } from './types.js';
|
|
15
19
|
const log = debug('cadre:host:orchestrator');
|
|
16
20
|
const DEFAULTS = {
|
|
@@ -536,15 +540,16 @@ export class HostProcessOrchestrator {
|
|
|
536
540
|
// NOTE: the scrub above drops every CADRE_* var and `extraEnv` is built only from
|
|
537
541
|
// pinnedOwnerKeys, so a managed child advertises only the ports assigned to it here
|
|
538
542
|
// — `CADRE_ANNOUNCE_ADDRS`/`CADRE_APPEND_ANNOUNCE_ADDRS` cannot reach it. Fine while
|
|
539
|
-
// children are reached at those ports
|
|
540
|
-
//
|
|
543
|
+
// children are reached at those ports; if a host is ever fronted by a proxy or DNS
|
|
544
|
+
// name, plumb an announce var through from host config. The TCP
|
|
541
545
|
// and WebSocket ports are the CHILD'S CONTROL NODE's alone: each strand node the
|
|
542
546
|
// child runs binds the same two entries with OS-assigned ports instead, since one
|
|
543
547
|
// port cannot be held twice (`cadre-core/src/strand-network-config.ts`). A NAT
|
|
544
548
|
// forward (the owner node's, via `NatService`) covers the TCP port only, so it
|
|
545
549
|
// reaches the control node over TCP alone; a phone outside the LAN, which needs the
|
|
546
|
-
// WebSocket port, and every strand node are reached through observed addresses
|
|
547
|
-
// a relay
|
|
550
|
+
// WebSocket port, and every strand node are reached through observed addresses only,
|
|
551
|
+
// since no `CADRE_RELAY_ADDRS` is set here and a child therefore holds no relay
|
|
552
|
+
// reservation.
|
|
548
553
|
CADRE_SEED_TOKEN: seedToken,
|
|
549
554
|
// Pin each child's node-local state (trusted-owner anchor, retained
|
|
550
555
|
// cold-start dial targets) to its OWN workdir. This is the same value the
|
|
@@ -910,17 +915,22 @@ export class HostProcessOrchestrator {
|
|
|
910
915
|
bootstrapNodes: req.bootstrapNodes,
|
|
911
916
|
},
|
|
912
917
|
profile: req.profile,
|
|
913
|
-
|
|
918
|
+
// The request carries the filter as text (the provider hands the same text to
|
|
919
|
+
// CADRE_STRAND_FILTER); the file form is `all`/`none` or the parsed JSON object, and a
|
|
920
|
+
// filter the node would refuse fails here, before anything is spawned.
|
|
921
|
+
// NOTE: an empty string is refused here, where cadre-provider's container-env treats it as
|
|
922
|
+
// unset. Nothing in cadre-host populates `req.strandFilter` today; if the provision route
|
|
923
|
+
// starts accepting one, pick one rule for both.
|
|
924
|
+
strandFilter: req.strandFilter === undefined ? 'all' : strandFilterConfigFromText(req.strandFilter),
|
|
914
925
|
};
|
|
915
926
|
if (req.profile === 'storage') {
|
|
916
|
-
|
|
927
|
+
cfg.storage = {
|
|
917
928
|
type: 'file',
|
|
918
929
|
path: join(workdir, 'storage'),
|
|
930
|
+
...(req.resources?.storageQuotaBytes !== undefined
|
|
931
|
+
? { quotaBytes: req.resources.storageQuotaBytes }
|
|
932
|
+
: {}),
|
|
919
933
|
};
|
|
920
|
-
if (req.resources?.storageQuotaBytes !== undefined) {
|
|
921
|
-
storage.quotaBytes = req.resources.storageQuotaBytes;
|
|
922
|
-
}
|
|
923
|
-
cfg.storage = storage;
|
|
924
934
|
}
|
|
925
935
|
// Push credentials land in the child's cadre.json on the host filesystem —
|
|
926
936
|
// the same trust boundary as the control-DB storage in this workdir. The
|