@camstack/system 1.2.386 → 1.2.388
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtins/system-config/mesh-actions.d.ts +12 -0
- package/dist/builtins/system-config/system-config.addon.d.ts +25 -5
- package/dist/builtins/system-config/system-config.addon.js +303 -59
- package/dist/builtins/system-config/system-config.addon.mjs +296 -61
- package/dist/index.js +9 -0
- package/dist/index.mjs +2 -2
- package/dist/kernel/index.d.ts +2 -0
- package/dist/kernel/moleculer/agent-ui-unlock.d.ts +52 -0
- package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +16 -3
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { n as require_safe_buffer, t as require_ms } from "../../ms-DlIWNkkk.mjs
|
|
|
4
4
|
import { a as MESH_CA_FIELD, c as MESH_CA_VALIDITY_DAYS, f as CLUSTER_SECRET_REF, i as MESH_CA_COMMON_NAME, l as MESH_JOIN_TOKEN_MAX_TTL_SEC, n as DEFAULT_HUB_TCP_PORT, o as MESH_CA_KEY_REF, r as DEFAULT_HUB_TLS_TCP_PORT, s as MESH_CA_SETTINGS_KEY, t as CLIENT_AUTH_OID, u as SERVER_AUTH_OID, x as setProcessClusterSecretGate, y as hashClusterSecret } from "../../constants-D5z4EwY8.mjs";
|
|
5
5
|
import { a as KeyUsagesExtension, c as Pkcs10CertificateRequestGenerator, d as X509Certificate$1, f as X509CertificateGenerator, i as KeyUsageFlags, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, s as Pkcs10CertificateRequest, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "../../x509.es-Xf3K_brW.mjs";
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
import { X509Certificate, createHash, randomBytes, webcrypto } from "node:crypto";
|
|
7
|
+
import { X509Certificate, createHash, createHmac, randomBytes, timingSafeEqual, webcrypto } from "node:crypto";
|
|
8
8
|
import { BlockList, isIP } from "node:net";
|
|
9
9
|
import { lstat, readdir, readlink, realpath } from "node:fs/promises";
|
|
10
10
|
import { posix, win32 } from "node:path";
|
|
@@ -141,6 +141,145 @@ function getProcessMeshAuthStatus() {
|
|
|
141
141
|
return typeof source === "function" ? source() : null;
|
|
142
142
|
}
|
|
143
143
|
//#endregion
|
|
144
|
+
//#region src/kernel/moleculer/agent-ui-unlock.ts
|
|
145
|
+
/**
|
|
146
|
+
* Agent UI remote unlock tickets (D821).
|
|
147
|
+
*
|
|
148
|
+
* A hub admin mints a short-lived HMAC ticket bound to one agent `nodeId`.
|
|
149
|
+
* The agent redeems it once for a tab session Bearer — the cluster secret
|
|
150
|
+
* stays a mesh / pairing credential and is not pasted into the browser for
|
|
151
|
+
* daily unlock.
|
|
152
|
+
*
|
|
153
|
+
* K = SHA-256(cluster secret) — same as mesh join (D802)
|
|
154
|
+
* ticket = base64url(JSON payload) + '.' + base64url(HMAC-SHA256(K, DOMAIN|payloadB64))
|
|
155
|
+
* payload = { v: 1, nodeId, exp (ms), jti }
|
|
156
|
+
*/
|
|
157
|
+
var AGENT_UI_UNLOCK_DOMAIN = "camstack-agent-ui-unlock/v1";
|
|
158
|
+
var AGENT_UI_UNLOCK_VERSION = 1;
|
|
159
|
+
/** Ticket lifetime — long enough for a redirect hop, short enough to steal poorly. */
|
|
160
|
+
var AGENT_UI_UNLOCK_TTL_MS = 5 * 6e4;
|
|
161
|
+
/**
|
|
162
|
+
* Cluster settings key: extra origins allowed as `returnTo` for Continue-with-hub
|
|
163
|
+
* (NPM hostnames that are not `:4444` on a LAN IP). Comma-separated origins.
|
|
164
|
+
*/
|
|
165
|
+
var AGENT_DASHBOARD_ORIGINS_FIELD = "agentDashboardOrigins";
|
|
166
|
+
/** In-memory spent `jti` until `exp` (ms). */
|
|
167
|
+
var UnlockTicketJtiStore = class {
|
|
168
|
+
spent = /* @__PURE__ */ new Map();
|
|
169
|
+
isSpent(jti, nowMs = Date.now()) {
|
|
170
|
+
this.gc(nowMs);
|
|
171
|
+
return this.spent.has(jti);
|
|
172
|
+
}
|
|
173
|
+
/** Record a jti as used until `exp`. Returns false if already spent. */
|
|
174
|
+
consume(jti, exp, nowMs = Date.now()) {
|
|
175
|
+
this.gc(nowMs);
|
|
176
|
+
if (this.spent.has(jti)) return false;
|
|
177
|
+
this.spent.set(jti, exp);
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
/** Test helper. */
|
|
181
|
+
size() {
|
|
182
|
+
return this.spent.size;
|
|
183
|
+
}
|
|
184
|
+
gc(nowMs) {
|
|
185
|
+
for (const [jti, exp] of this.spent) if (exp <= nowMs) this.spent.delete(jti);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
function mintAgentUiUnlockTicket(input) {
|
|
189
|
+
const nowMs = input.nowMs ?? Date.now();
|
|
190
|
+
const ttl = Math.min(Math.max(1e3, input.ttlMs ?? 3e5), AGENT_UI_UNLOCK_TTL_MS);
|
|
191
|
+
const payload = {
|
|
192
|
+
v: 1,
|
|
193
|
+
nodeId: input.nodeId,
|
|
194
|
+
exp: nowMs + ttl,
|
|
195
|
+
jti: input.jti ?? randomBytes(16).toString("base64url")
|
|
196
|
+
};
|
|
197
|
+
const payloadB64 = Buffer.from(JSON.stringify(payload), "utf8").toString("base64url");
|
|
198
|
+
return `${payloadB64}.${sign(input.secretHash, payloadB64)}`;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Verify a ticket under `secretHash`. Returns the payload, or `null` when the
|
|
202
|
+
* signature, shape, expiry or nodeId fails (no reason string — refuse quietly).
|
|
203
|
+
*/
|
|
204
|
+
function verifyAgentUiUnlockTicket(secretHash, ticket, options) {
|
|
205
|
+
const nowMs = options.nowMs ?? Date.now();
|
|
206
|
+
const dot = ticket.indexOf(".");
|
|
207
|
+
if (dot <= 0 || dot === ticket.length - 1) return null;
|
|
208
|
+
const payloadB64 = ticket.slice(0, dot);
|
|
209
|
+
const sig = ticket.slice(dot + 1);
|
|
210
|
+
if (!sigsEqual(sign(secretHash, payloadB64), sig)) return null;
|
|
211
|
+
let parsed;
|
|
212
|
+
try {
|
|
213
|
+
parsed = JSON.parse(Buffer.from(payloadB64, "base64url").toString("utf8"));
|
|
214
|
+
} catch {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
const payload = parsePayload(parsed);
|
|
218
|
+
if (payload === null) return null;
|
|
219
|
+
if (payload.exp <= nowMs) return null;
|
|
220
|
+
if (payload.nodeId !== options.expectedNodeId) return null;
|
|
221
|
+
return payload;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* True when `returnTo` may receive a ticket redirect. Default: any http(s)
|
|
225
|
+
* origin whose port is 4444. Extra origins come from
|
|
226
|
+
* {@link AGENT_DASHBOARD_ORIGINS_FIELD} (exact origin match).
|
|
227
|
+
*/
|
|
228
|
+
function isAllowedAgentDashboardReturnTo(returnTo, extraOrigins = []) {
|
|
229
|
+
let url;
|
|
230
|
+
try {
|
|
231
|
+
url = new URL(returnTo);
|
|
232
|
+
} catch {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") return false;
|
|
236
|
+
if (url.username !== "" || url.password !== "") return false;
|
|
237
|
+
if (url.pathname !== "/" && url.pathname !== "") return false;
|
|
238
|
+
if (url.port === "4444") return true;
|
|
239
|
+
const origin = url.origin;
|
|
240
|
+
return extraOrigins.some((o) => o === origin);
|
|
241
|
+
}
|
|
242
|
+
/** Parse a stored comma/whitespace-separated origins list. */
|
|
243
|
+
function parseAgentDashboardOrigins(stored) {
|
|
244
|
+
if (typeof stored !== "string" || stored.trim().length === 0) return [];
|
|
245
|
+
const out = [];
|
|
246
|
+
for (const part of stored.split(/[,\s]+/)) {
|
|
247
|
+
const t = part.trim();
|
|
248
|
+
if (t.length === 0) continue;
|
|
249
|
+
try {
|
|
250
|
+
const u = new URL(t);
|
|
251
|
+
if (u.protocol === "http:" || u.protocol === "https:") out.push(u.origin);
|
|
252
|
+
} catch {}
|
|
253
|
+
}
|
|
254
|
+
return out;
|
|
255
|
+
}
|
|
256
|
+
function sign(secretHash, payloadB64) {
|
|
257
|
+
return createHmac("sha256", Buffer.from(secretHash, "utf8")).update(`${AGENT_UI_UNLOCK_DOMAIN}|${payloadB64}`, "utf8").digest("base64url");
|
|
258
|
+
}
|
|
259
|
+
function sigsEqual(expected, presented) {
|
|
260
|
+
const a = Buffer.from(expected, "utf8");
|
|
261
|
+
const b = Buffer.from(presented, "utf8");
|
|
262
|
+
if (a.length !== b.length) return false;
|
|
263
|
+
return timingSafeEqual(a, b);
|
|
264
|
+
}
|
|
265
|
+
function parsePayload(value) {
|
|
266
|
+
if (typeof value !== "object" || value === null) return null;
|
|
267
|
+
const rec = value;
|
|
268
|
+
if (rec["v"] !== 1) return null;
|
|
269
|
+
const nodeId = rec["nodeId"];
|
|
270
|
+
const exp = rec["exp"];
|
|
271
|
+
const jti = rec["jti"];
|
|
272
|
+
if (typeof nodeId !== "string" || nodeId.length === 0) return null;
|
|
273
|
+
if (typeof exp !== "number" || !Number.isFinite(exp)) return null;
|
|
274
|
+
if (typeof jti !== "string" || jti.length === 0) return null;
|
|
275
|
+
return {
|
|
276
|
+
v: 1,
|
|
277
|
+
nodeId,
|
|
278
|
+
exp,
|
|
279
|
+
jti
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
//#endregion
|
|
144
283
|
//#region src/kernel/moleculer/mesh-mtls/mesh-ca.ts
|
|
145
284
|
cryptoProvider.set(webcrypto);
|
|
146
285
|
var MS_PER_DAY = 864e5;
|
|
@@ -87369,6 +87508,9 @@ var TlsTcpTransporter = class extends TcpTransporter {
|
|
|
87369
87508
|
/** Node id (certificate CN) → serial of every peer that completed a mutual-TLS handshake. */
|
|
87370
87509
|
tlsPeers = /* @__PURE__ */ new Map();
|
|
87371
87510
|
clearDisabled = false;
|
|
87511
|
+
/** Clear-text `TcpWriter.connect` captured once before the TLS wrap (A→B). */
|
|
87512
|
+
clearWriterConnect = null;
|
|
87513
|
+
writerTlsPatched = false;
|
|
87372
87514
|
constructor(opts = {}) {
|
|
87373
87515
|
super({ ...opts });
|
|
87374
87516
|
this.meshTls = opts.meshTls ?? null;
|
|
@@ -87391,20 +87533,43 @@ var TlsTcpTransporter = class extends TcpTransporter {
|
|
|
87391
87533
|
}).then(() => this.onConnected());
|
|
87392
87534
|
}
|
|
87393
87535
|
/**
|
|
87394
|
-
*
|
|
87395
|
-
*
|
|
87536
|
+
* Outbound dial uses mTLS when the peer is already known on TLS (inbound
|
|
87537
|
+
* handshake), or when dialling the hub node id (agent → hub). Everyone else
|
|
87538
|
+
* (runners, unenrolled agents) stays on the clear writer — the hub must not
|
|
87539
|
+
* TLS-wrap every `connect` after deferred `enableMeshTls`.
|
|
87540
|
+
*/
|
|
87541
|
+
shouldDialPeerWithTls(nodeID) {
|
|
87542
|
+
if (nodeID === "hub") return true;
|
|
87543
|
+
return this.tlsPeers.has(nodeID);
|
|
87544
|
+
}
|
|
87545
|
+
peerTlsDialPort() {
|
|
87546
|
+
return this.opts.tlsPort ?? 6443;
|
|
87547
|
+
}
|
|
87548
|
+
/**
|
|
87549
|
+
* Wrap `TcpWriter.connect` so TLS peers are dialed with mutual TLS on the
|
|
87550
|
+
* well-known mesh TLS port (default 6443). Idempotent: the clear connect is
|
|
87551
|
+
* captured once; material refresh rebinds the wrapper.
|
|
87396
87552
|
*/
|
|
87397
87553
|
patchWriterForTlsClient() {
|
|
87398
|
-
|
|
87399
|
-
if (material === null) return;
|
|
87554
|
+
if (this.meshTls === null) return;
|
|
87400
87555
|
const writer = this.writer;
|
|
87401
87556
|
if (writer === null || typeof writer.connect !== "function") return;
|
|
87557
|
+
if (!this.writerTlsPatched) {
|
|
87558
|
+
this.clearWriterConnect = writer.connect.bind(writer);
|
|
87559
|
+
this.writerTlsPatched = true;
|
|
87560
|
+
}
|
|
87561
|
+
const clearConnect = this.clearWriterConnect;
|
|
87562
|
+
if (clearConnect === null) return;
|
|
87402
87563
|
const crl = this.crl;
|
|
87564
|
+
const self = this;
|
|
87403
87565
|
writer.connect = (nodeID) => {
|
|
87566
|
+
if (!self.shouldDialPeerWithTls(nodeID)) return clearConnect(nodeID);
|
|
87567
|
+
const material = self.meshTls;
|
|
87568
|
+
if (material === null) return clearConnect(nodeID);
|
|
87404
87569
|
const node = writer.transporter.getNode(nodeID);
|
|
87405
87570
|
if (!node) return writer.Promise.reject(/* @__PURE__ */ new Error(`Missing node info for '${nodeID}'!`));
|
|
87406
87571
|
const host = writer.transporter.getNodeAddress(node);
|
|
87407
|
-
const port =
|
|
87572
|
+
const port = self.peerTlsDialPort();
|
|
87408
87573
|
writer.logger.debug(`Connecting (TLS) to '${nodeID}' via ${host}:${port}`);
|
|
87409
87574
|
return new writer.Promise((resolve, reject) => {
|
|
87410
87575
|
const socket = tls.connect({
|
|
@@ -87433,6 +87598,11 @@ var TlsTcpTransporter = class extends TcpTransporter {
|
|
|
87433
87598
|
if (identity) {
|
|
87434
87599
|
tlsSock.meshPeerCn = identity.cn;
|
|
87435
87600
|
tlsSock.meshPeerSerial = identity.serial;
|
|
87601
|
+
self.tlsPeers.set(identity.cn, identity.serial);
|
|
87602
|
+
self.tlsSockets.add(tlsSock);
|
|
87603
|
+
tlsSock.on("close", () => {
|
|
87604
|
+
self.tlsSockets.delete(tlsSock);
|
|
87605
|
+
});
|
|
87436
87606
|
}
|
|
87437
87607
|
writer.addSocket(nodeID, tlsSock, true);
|
|
87438
87608
|
writer.logger.debug(`Connected successfully (TLS) to '${nodeID}'.`);
|
|
@@ -87455,11 +87625,13 @@ var TlsTcpTransporter = class extends TcpTransporter {
|
|
|
87455
87625
|
}
|
|
87456
87626
|
/**
|
|
87457
87627
|
* Enable (or refresh) the TLS listener once the mesh CA / hub leaf are ready.
|
|
87458
|
-
* Safe to call after connect — starts listening on `tlsPort` alongside clear
|
|
87628
|
+
* Safe to call after connect — starts listening on `tlsPort` alongside clear
|
|
87629
|
+
* and patches the writer so hub→agent dials use mTLS (Release A→B).
|
|
87459
87630
|
*/
|
|
87460
87631
|
async enableMeshTls(material) {
|
|
87461
87632
|
this.meshTls = material;
|
|
87462
87633
|
await this.startTlsServerIfReady();
|
|
87634
|
+
this.patchWriterForTlsClient();
|
|
87463
87635
|
}
|
|
87464
87636
|
/**
|
|
87465
87637
|
* How `nodeId` reaches this transporter: `tls` once it completed a mutual-TLS
|
|
@@ -87650,7 +87822,7 @@ function isTlsSocket(socket) {
|
|
|
87650
87822
|
* - no marker → the secret is MANDATORY (D802): the keeper asks
|
|
87651
87823
|
* its owner to generate one (`generateSecret`), and
|
|
87652
87824
|
* until that succeeds the gate is `off` — no node can
|
|
87653
|
-
* authenticate
|
|
87825
|
+
* authenticate (mesh auth is always enforced, D821);
|
|
87654
87826
|
* - marker + value → `on` — nodes prove the secret;
|
|
87655
87827
|
* - marker, no answer → `unknown` — refused, retryably, and retried here.
|
|
87656
87828
|
* A locked keychain or a value lost to a reset NEVER opens the gate, and
|
|
@@ -87713,7 +87885,7 @@ var ClusterSecretKeeper = class {
|
|
|
87713
87885
|
reason: `settings unreadable: ${errText(err)}`
|
|
87714
87886
|
};
|
|
87715
87887
|
}
|
|
87716
|
-
setProcessMeshAuthMode(
|
|
87888
|
+
setProcessMeshAuthMode("enforced");
|
|
87717
87889
|
const stored = section[CLUSTER_SECRET_FIELD];
|
|
87718
87890
|
if (stored === void 0 || stored === null || stored === "") return { kind: "off" };
|
|
87719
87891
|
if (!isSecretMarker(stored)) return {
|
|
@@ -87781,28 +87953,48 @@ function errText(err) {
|
|
|
87781
87953
|
//#endregion
|
|
87782
87954
|
//#region src/builtins/system-config/mesh-actions.ts
|
|
87783
87955
|
/**
|
|
87784
|
-
* System → Cluster — mint a single-use mesh join token (Release A)
|
|
87956
|
+
* System → Cluster — mint a single-use mesh join token (Release A) and
|
|
87957
|
+
* agent-ui unlock tickets (D821).
|
|
87785
87958
|
*/
|
|
87786
|
-
var systemConfigMeshActions = defineCustomActions({
|
|
87787
|
-
|
|
87788
|
-
|
|
87789
|
-
|
|
87790
|
-
|
|
87791
|
-
|
|
87792
|
-
|
|
87793
|
-
|
|
87794
|
-
|
|
87795
|
-
|
|
87796
|
-
|
|
87797
|
-
|
|
87798
|
-
|
|
87799
|
-
|
|
87800
|
-
|
|
87801
|
-
|
|
87802
|
-
|
|
87803
|
-
|
|
87804
|
-
|
|
87805
|
-
|
|
87959
|
+
var systemConfigMeshActions = defineCustomActions({
|
|
87960
|
+
mintJoinToken: customAction(z.object({
|
|
87961
|
+
/** Optional pinned node id for the CSR CN. */
|
|
87962
|
+
nodeId: z.string().min(1).optional(),
|
|
87963
|
+
/** Override hub HTTPS base (default: local-network publicEndpoint). */
|
|
87964
|
+
hubUrl: z.string().url().optional(),
|
|
87965
|
+
/** Override `host:6000` clear mesh address carried in the token. */
|
|
87966
|
+
hubMeshAddress: z.string().min(3).optional(),
|
|
87967
|
+
/** Seconds until expiry; capped at 1 h. */
|
|
87968
|
+
ttlSec: z.number().int().positive().max(3600).optional()
|
|
87969
|
+
}).optional(), z.object({
|
|
87970
|
+
token: z.string().min(1),
|
|
87971
|
+
exp: z.number().int(),
|
|
87972
|
+
hubUrl: z.string(),
|
|
87973
|
+
hubMeshAddress: z.string(),
|
|
87974
|
+
caFingerprint: z.string(),
|
|
87975
|
+
nodeId: z.string().optional()
|
|
87976
|
+
}), {
|
|
87977
|
+
kind: "mutation",
|
|
87978
|
+
auth: "admin"
|
|
87979
|
+
}),
|
|
87980
|
+
/** Hub admin → short-lived ticket the agent redeems for a tab session (D821). */
|
|
87981
|
+
mintAgentUiUnlockTicket: customAction(z.object({
|
|
87982
|
+
nodeId: z.string().min(1),
|
|
87983
|
+
/**
|
|
87984
|
+
* Preferred agent dashboard base (`http://host:4444`). When set, the
|
|
87985
|
+
* answer includes `dashboardUrl` with `?ticket=` already attached.
|
|
87986
|
+
*/
|
|
87987
|
+
dashboardBaseUrl: z.string().url().optional()
|
|
87988
|
+
}), z.object({
|
|
87989
|
+
ticket: z.string().min(1),
|
|
87990
|
+
exp: z.number().int(),
|
|
87991
|
+
nodeId: z.string().min(1),
|
|
87992
|
+
dashboardUrl: z.string().url().optional()
|
|
87993
|
+
}), {
|
|
87994
|
+
kind: "mutation",
|
|
87995
|
+
auth: "admin"
|
|
87996
|
+
})
|
|
87997
|
+
});
|
|
87806
87998
|
//#endregion
|
|
87807
87999
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
87808
88000
|
/**
|
|
@@ -87867,7 +88059,8 @@ var KEY_TO_SECTION = {
|
|
|
87867
88059
|
trustedNetworks: "auth",
|
|
87868
88060
|
[CLUSTER_SECRET_FIELD]: "cluster",
|
|
87869
88061
|
[MESH_AUTH_MODE_FIELD]: "cluster",
|
|
87870
|
-
[MESH_CLEAR_PORT_FIELD]: "cluster"
|
|
88062
|
+
[MESH_CLEAR_PORT_FIELD]: "cluster",
|
|
88063
|
+
[AGENT_DASHBOARD_ORIGINS_FIELD]: "cluster"
|
|
87871
88064
|
};
|
|
87872
88065
|
/** Bytes of a generated cluster secret (D802) — 256 bits, base64url (43 chars). */
|
|
87873
88066
|
var GENERATED_SECRET_BYTES = 32;
|
|
@@ -87876,10 +88069,10 @@ var STATE_LABELS = {
|
|
|
87876
88069
|
legacy: "legacy hash only — update the agent",
|
|
87877
88070
|
unauthenticated: "not authenticated — enter the cluster secret in this agent"
|
|
87878
88071
|
};
|
|
87879
|
-
/** The Cluster page's live line per node (D802). */
|
|
88072
|
+
/** The Cluster page's live line per node (D802). Mode is always enforced (D821). */
|
|
87880
88073
|
function describeMeshStatus(status) {
|
|
87881
88074
|
if (status === null) return "The mesh status is available on the hub only.";
|
|
87882
|
-
const head =
|
|
88075
|
+
const head = "Enforced: a node that has not authenticated is refused.";
|
|
87883
88076
|
if (status.nodes.length === 0) return `${head}\nNo other node is connected.`;
|
|
87884
88077
|
return `${head}\n${status.nodes.map((n) => `• ${n.nodeId}: ${STATE_LABELS[n.state] ?? n.state}`).join("\n")}`;
|
|
87885
88078
|
}
|
|
@@ -87910,6 +88103,9 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
87910
88103
|
this.ctx.logger.info("Mesh authentication is now ENFORCED", { meta: { reason } });
|
|
87911
88104
|
});
|
|
87912
88105
|
await this.clusterSecretKeeper.start();
|
|
88106
|
+
try {
|
|
88107
|
+
await this.writeMeshAuthMode("enforced");
|
|
88108
|
+
} catch {}
|
|
87913
88109
|
this.meshCaKeeper = new MeshCaKeeper({
|
|
87914
88110
|
secrets: this.systemSecrets(),
|
|
87915
88111
|
readClusterSection: async () => await this.ctx.settings?.getSection("cluster") ?? {},
|
|
@@ -87924,7 +88120,10 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
87924
88120
|
this.ctx.logger.info("Initialized — exposes yml-backed sections via getGlobalSettings");
|
|
87925
88121
|
return {
|
|
87926
88122
|
customActions: systemConfigMeshActions,
|
|
87927
|
-
actionHandlers: {
|
|
88123
|
+
actionHandlers: {
|
|
88124
|
+
mintJoinToken: async (input) => this.mintJoinToken(parseMintJoinTokenInput(input)),
|
|
88125
|
+
mintAgentUiUnlockTicket: async (input) => this.mintAgentUiUnlock(parseMintUnlockInput(input))
|
|
88126
|
+
}
|
|
87928
88127
|
};
|
|
87929
88128
|
}
|
|
87930
88129
|
async onShutdown() {
|
|
@@ -87977,6 +88176,41 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
87977
88176
|
...input.nodeId !== void 0 ? { nodeId: input.nodeId } : {}
|
|
87978
88177
|
};
|
|
87979
88178
|
}
|
|
88179
|
+
/** D821 — short-lived ticket for the agent's `:4444` unlock session. */
|
|
88180
|
+
async mintAgentUiUnlock(input) {
|
|
88181
|
+
const secrets = this.systemSecrets();
|
|
88182
|
+
if (secrets === null) throw new Error("system-config: no keychain door — cannot mint an unlock ticket");
|
|
88183
|
+
const entry = (await secrets.resolve([CLUSTER_SECRET_REF]))[CLUSTER_SECRET_REF];
|
|
88184
|
+
if (entry?.kind !== "value") throw new Error("system-config: cluster secret is not available — cannot mint an unlock ticket");
|
|
88185
|
+
if (input.dashboardBaseUrl !== void 0) {
|
|
88186
|
+
const origins = await this.readAgentDashboardOrigins();
|
|
88187
|
+
if (!isAllowedAgentDashboardReturnTo(input.dashboardBaseUrl, origins)) throw new Error("dashboardBaseUrl is not an allowed agent dashboard origin (:4444 or agentDashboardOrigins)");
|
|
88188
|
+
}
|
|
88189
|
+
const ticket = mintAgentUiUnlockTicket({
|
|
88190
|
+
secretHash: hashClusterSecret(entry.value),
|
|
88191
|
+
nodeId: input.nodeId
|
|
88192
|
+
});
|
|
88193
|
+
const payloadJson = Buffer.from(ticket.split(".")[0] ?? "", "base64url").toString("utf8");
|
|
88194
|
+
const exp = JSON.parse(payloadJson).exp ?? 0;
|
|
88195
|
+
const dashboardUrl = input.dashboardBaseUrl === void 0 ? void 0 : (() => {
|
|
88196
|
+
const u = new URL(input.dashboardBaseUrl);
|
|
88197
|
+
u.searchParams.set("ticket", ticket);
|
|
88198
|
+
return u.toString();
|
|
88199
|
+
})();
|
|
88200
|
+
return {
|
|
88201
|
+
ticket,
|
|
88202
|
+
exp,
|
|
88203
|
+
nodeId: input.nodeId,
|
|
88204
|
+
...dashboardUrl !== void 0 ? { dashboardUrl } : {}
|
|
88205
|
+
};
|
|
88206
|
+
}
|
|
88207
|
+
async readAgentDashboardOrigins() {
|
|
88208
|
+
try {
|
|
88209
|
+
return parseAgentDashboardOrigins((await this.ctx.settings?.getSection("cluster"))?.[AGENT_DASHBOARD_ORIGINS_FIELD]);
|
|
88210
|
+
} catch {
|
|
88211
|
+
return [];
|
|
88212
|
+
}
|
|
88213
|
+
}
|
|
87980
88214
|
async resolveHubUrl() {
|
|
87981
88215
|
try {
|
|
87982
88216
|
const book = await this.ctx.api?.localNetwork?.getAddresses?.query({ scheme: "https" });
|
|
@@ -88096,20 +88330,6 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88096
88330
|
label: "Cluster secret",
|
|
88097
88331
|
description: "Mandatory — generated by the hub at first boot and stored in the keychain. To pair an agent: Reveal and copy it here, then enter it in the agent (its status page, or the desktop setup window). Saving a new value rotates it: every agent must then be given the new one."
|
|
88098
88332
|
},
|
|
88099
|
-
{
|
|
88100
|
-
type: "select",
|
|
88101
|
-
key: MESH_AUTH_MODE_FIELD,
|
|
88102
|
-
label: "Agents without the secret",
|
|
88103
|
-
description: "Transition lets an agent that has not authenticated keep working (with a warning) while you give each agent the secret; it ends by itself once every known agent has authenticated. Enforced refuses it.",
|
|
88104
|
-
default: "transition",
|
|
88105
|
-
options: [{
|
|
88106
|
-
value: "transition",
|
|
88107
|
-
label: "Transition — allow, warn"
|
|
88108
|
-
}, {
|
|
88109
|
-
value: "enforced",
|
|
88110
|
-
label: "Enforced — refuse"
|
|
88111
|
-
}]
|
|
88112
|
-
},
|
|
88113
88333
|
{
|
|
88114
88334
|
type: "select",
|
|
88115
88335
|
key: MESH_CLEAR_PORT_FIELD,
|
|
@@ -88131,6 +88351,12 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88131
88351
|
content: describeMeshStatus(getProcessMeshAuthStatus()),
|
|
88132
88352
|
variant: "info"
|
|
88133
88353
|
},
|
|
88354
|
+
{
|
|
88355
|
+
type: "string",
|
|
88356
|
+
key: AGENT_DASHBOARD_ORIGINS_FIELD,
|
|
88357
|
+
label: "Agent dashboard origins (NPM)",
|
|
88358
|
+
description: "Extra origins allowed for Continue-with-hub unlock redirects (comma-separated), e.g. https://agent.example.com. LAN agents on :4444 are always allowed."
|
|
88359
|
+
},
|
|
88134
88360
|
{
|
|
88135
88361
|
type: "addon-action-button",
|
|
88136
88362
|
key: "mintJoinTokenAction",
|
|
@@ -88203,15 +88429,14 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88203
88429
|
* The cluster secret's save path: the value goes to the keychain (owner
|
|
88204
88430
|
* `system`), the row gets the marker; `''` / a view keeps. `$secretClear` is
|
|
88205
88431
|
* REFUSED: the secret is mandatory (D802). A value the keychain cannot store
|
|
88206
|
-
* is REFUSED — never written inline (D787, P5).
|
|
88432
|
+
* is REFUSED — never written inline (D787, P5). Mesh auth mode is always
|
|
88433
|
+
* enforced (D821) — a legacy `meshAuth` in the patch is ignored.
|
|
88207
88434
|
*/
|
|
88208
88435
|
async writeClusterSection(patch) {
|
|
88209
|
-
const { [MESH_AUTH_MODE_FIELD]:
|
|
88436
|
+
const { [MESH_AUTH_MODE_FIELD]: _legacyMode, [MESH_CLEAR_PORT_FIELD]: clearPort, [AGENT_DASHBOARD_ORIGINS_FIELD]: dashboardOrigins, ...secretPatch } = patch;
|
|
88210
88437
|
if (clearPort !== void 0) await this.writeMeshClearPort(clearPort);
|
|
88211
|
-
if (
|
|
88212
|
-
|
|
88213
|
-
await this.writeMeshAuthMode(mode);
|
|
88214
|
-
}
|
|
88438
|
+
if (dashboardOrigins !== void 0) await this.ctx.settings.setSection("cluster", { [AGENT_DASHBOARD_ORIGINS_FIELD]: typeof dashboardOrigins === "string" ? dashboardOrigins : "" });
|
|
88439
|
+
await this.writeMeshAuthMode("enforced");
|
|
88215
88440
|
if (Object.keys(secretPatch).length === 0) return;
|
|
88216
88441
|
if (isSecretClear(secretPatch["clusterSecret"])) throw new Error("The cluster secret is mandatory and cannot be cleared — save a new value to rotate it");
|
|
88217
88442
|
await this.storeClusterSecret(secretPatch);
|
|
@@ -88239,16 +88464,15 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88239
88464
|
await applyProcessMeshClearPort(value);
|
|
88240
88465
|
this.ctx.logger.info("Mesh clear port switched", { meta: { mode: value } });
|
|
88241
88466
|
}
|
|
88242
|
-
/**
|
|
88467
|
+
/** Persist + publish mesh auth mode (always `enforced` after D821). */
|
|
88243
88468
|
async writeMeshAuthMode(mode) {
|
|
88244
88469
|
await this.ctx.settings.setSection("cluster", { [MESH_AUTH_MODE_FIELD]: mode });
|
|
88245
|
-
|
|
88470
|
+
setProcessMeshAuthMode(mode);
|
|
88246
88471
|
}
|
|
88247
88472
|
/**
|
|
88248
88473
|
* First boot, or a keychain reset that cleared the marker (D802): a fresh
|
|
88249
|
-
* random secret, stored like an operator save.
|
|
88250
|
-
*
|
|
88251
|
-
* with no agent yet, the hub's auto-enforce ends it at once.
|
|
88474
|
+
* random secret, stored like an operator save. Mesh auth stays enforced
|
|
88475
|
+
* (D821) — every agent must present the secret; there is no transition window.
|
|
88252
88476
|
*/
|
|
88253
88477
|
async generateClusterSecret() {
|
|
88254
88478
|
const settings = this.ctx.settings;
|
|
@@ -88263,7 +88487,8 @@ var SystemConfigAddon = class extends BaseAddon {
|
|
|
88263
88487
|
if (existing?.kind !== "missing") throw new Error(`the keychain cannot answer for the cluster secret (${existing?.kind ?? "no answer"})`);
|
|
88264
88488
|
const value = randomBytes(GENERATED_SECRET_BYTES).toString("base64url");
|
|
88265
88489
|
await this.storeClusterSecret({ [CLUSTER_SECRET_FIELD]: value });
|
|
88266
|
-
await settings.setSection("cluster", { [MESH_AUTH_MODE_FIELD]: "
|
|
88490
|
+
await settings.setSection("cluster", { [MESH_AUTH_MODE_FIELD]: "enforced" });
|
|
88491
|
+
setProcessMeshAuthMode("enforced");
|
|
88267
88492
|
}
|
|
88268
88493
|
async storeClusterSecret(patch) {
|
|
88269
88494
|
const settings = this.ctx.settings;
|
|
@@ -88296,6 +88521,16 @@ function parseMintJoinTokenInput(input) {
|
|
|
88296
88521
|
if (typeof ttlSec === "number") out.ttlSec = ttlSec;
|
|
88297
88522
|
return out;
|
|
88298
88523
|
}
|
|
88524
|
+
function parseMintUnlockInput(input) {
|
|
88525
|
+
if (input === null || typeof input !== "object") throw new Error("system-config: mintAgentUiUnlockTicket requires { nodeId }");
|
|
88526
|
+
const nodeId = Reflect.get(input, "nodeId");
|
|
88527
|
+
if (typeof nodeId !== "string" || nodeId.length === 0) throw new Error("system-config: mintAgentUiUnlockTicket requires { nodeId }");
|
|
88528
|
+
const dashboardBaseUrl = Reflect.get(input, "dashboardBaseUrl");
|
|
88529
|
+
return {
|
|
88530
|
+
nodeId,
|
|
88531
|
+
...typeof dashboardBaseUrl === "string" ? { dashboardBaseUrl } : {}
|
|
88532
|
+
};
|
|
88533
|
+
}
|
|
88299
88534
|
/** Read `exp` from an unencrypted JWT payload (no verify — already minted here). */
|
|
88300
88535
|
function readJwtExp(token) {
|
|
88301
88536
|
const parts = token.split(".");
|
|
@@ -88307,4 +88542,4 @@ function readJwtExp(token) {
|
|
|
88307
88542
|
return typeof exp === "number" ? exp : 0;
|
|
88308
88543
|
}
|
|
88309
88544
|
//#endregion
|
|
88310
|
-
export { loadMeshCa as A,
|
|
88545
|
+
export { loadMeshCa as A, MESH_AUTH_MODE_FIELD as B, caFingerprintCompact as C, generateMeshKeyPair as D, generateMeshCa as E, UnlockTicketJtiStore as F, requestProcessMeshEnforcement as G, getProcessMeshAuthStatus as H, isAllowedAgentDashboardReturnTo as I, setProcessMeshEnforcer as J, setProcessMeshAuthMode as K, mintAgentUiUnlockTicket as L, AGENT_UI_UNLOCK_DOMAIN as M, AGENT_UI_UNLOCK_TTL_MS as N, issueMeshLeafForNode as O, AGENT_UI_UNLOCK_VERSION as P, readCidrSetting as Q, parseAgentDashboardOrigins as R, caFingerprint as S, SYSTEM_CONFIG_CLUSTER_SECTION_ID, SystemConfigAddon, SystemConfigAddon as default, exportMeshPrivateKeyPem as T, isMeshAuthMode as U, getProcessMeshAuthMode as V, parseMeshAuthMode as W, normalizeIp as X, createCidrMatcher as Y, parseCidrList as Z, MeshCrl as _, setProcessMeshTlsEnabler as a, getProcessMeshCaState as b, mintMeshJoinToken as c, MESH_CLEAR_PORT_FIELD as d, applyProcessMeshClearPort as f, setProcessMeshClearPortControl as g, getProcessNodeMeshTransport as h, ServiceBroker as i, AGENT_DASHBOARD_ORIGINS_FIELD as j, issueMeshLeafFromCsr as k, processJoinTokenJtiStore as l, decideMeshClearPortOff as m, TlsTcpTransporter as n, enrollMeshNode as o, checkProcessMeshClearPort as p, setProcessMeshAuthStatusSource as q, Errors as r, JoinTokenJtiStore as s, systemConfigMeshActions as t, verifyMeshJoinToken as u, processMeshCrl as v, createMeshCsrPem as w, requireProcessMeshCa as x, MeshCaKeeper as y, verifyAgentUiUnlockTicket as z };
|
package/dist/index.js
CHANGED
|
@@ -13863,8 +13863,12 @@ exports.ADMIN_TOKEN_MAX_LIFETIME_MS = require_builtins_local_auth_local_auth_add
|
|
|
13863
13863
|
exports.ADMIN_TOKEN_PREFIX = require_builtins_local_auth_local_auth_addon.ADMIN_TOKEN_PREFIX;
|
|
13864
13864
|
exports.AGENT_CAP_FWD_ACTION = require_child_cap_dispatch.AGENT_CAP_FWD_ACTION;
|
|
13865
13865
|
exports.AGENT_CAP_FWD_SERVICE = require_child_cap_dispatch.AGENT_CAP_FWD_SERVICE;
|
|
13866
|
+
exports.AGENT_DASHBOARD_ORIGINS_FIELD = require_builtins_system_config_system_config_addon.AGENT_DASHBOARD_ORIGINS_FIELD;
|
|
13866
13867
|
exports.AGENT_READINESS_SERVICE_NAME = AGENT_READINESS_SERVICE_NAME;
|
|
13867
13868
|
exports.AGENT_REGISTER_NODE_ACTION = AGENT_REGISTER_NODE_ACTION;
|
|
13869
|
+
exports.AGENT_UI_UNLOCK_DOMAIN = require_builtins_system_config_system_config_addon.AGENT_UI_UNLOCK_DOMAIN;
|
|
13870
|
+
exports.AGENT_UI_UNLOCK_TTL_MS = require_builtins_system_config_system_config_addon.AGENT_UI_UNLOCK_TTL_MS;
|
|
13871
|
+
exports.AGENT_UI_UNLOCK_VERSION = require_builtins_system_config_system_config_addon.AGENT_UI_UNLOCK_VERSION;
|
|
13868
13872
|
exports.ALL_CAPABILITY_DEFINITIONS = require_dist.ALL_CAPABILITY_DEFINITIONS;
|
|
13869
13873
|
exports.ARRAY_BUFFER_CENSUS_COOLDOWN_MS = require_child_cap_dispatch.ARRAY_BUFFER_CENSUS_COOLDOWN_MS;
|
|
13870
13874
|
exports.ARRAY_BUFFER_CENSUS_SUSTAIN_MS = require_child_cap_dispatch.ARRAY_BUFFER_CENSUS_SUSTAIN_MS;
|
|
@@ -14060,6 +14064,7 @@ exports.UPLOADED_CA_FILE = require_tls.UPLOADED_CA_FILE;
|
|
|
14060
14064
|
exports.USER_MANAGEMENT_INTERNAL = require_builtins_local_auth_local_auth_addon.USER_MANAGEMENT_INTERNAL;
|
|
14061
14065
|
exports.UdsLocalTransportClient = require_child_cap_dispatch.UdsLocalTransportClient;
|
|
14062
14066
|
exports.UdsLocalTransportServer = require_child_cap_dispatch.UdsLocalTransportServer;
|
|
14067
|
+
exports.UnlockTicketJtiStore = require_builtins_system_config_system_config_addon.UnlockTicketJtiStore;
|
|
14063
14068
|
exports.UserManager = require_builtins_local_auth_local_auth_addon.UserManager;
|
|
14064
14069
|
exports.WinstonDestination = require_builtins_winston_logging_index.WinstonDestination$1;
|
|
14065
14070
|
exports.WinstonLoggingAddon = require_builtins_winston_logging_index.WinstonLoggingAddon$1;
|
|
@@ -14292,6 +14297,7 @@ Object.defineProperty(exports, "installPythonRequirements", {
|
|
|
14292
14297
|
});
|
|
14293
14298
|
exports.ipcParentLink = require_child_cap_dispatch.ipcParentLink;
|
|
14294
14299
|
exports.isAddonDeploySource = isAddonDeploySource;
|
|
14300
|
+
exports.isAllowedAgentDashboardReturnTo = require_builtins_system_config_system_config_addon.isAllowedAgentDashboardReturnTo;
|
|
14295
14301
|
exports.isArrayBufferCensusReport = require_child_cap_dispatch.isArrayBufferCensusReport;
|
|
14296
14302
|
exports.isArrayOutputSchema = require_dist.isArrayOutputSchema;
|
|
14297
14303
|
exports.isClusterSecretMismatchError = require_constants.isClusterSecretMismatchError;
|
|
@@ -14314,11 +14320,13 @@ exports.loadTlsCert = require_tls.loadTlsCert;
|
|
|
14314
14320
|
exports.localEndpointPath = require_child_cap_dispatch.localEndpointPath;
|
|
14315
14321
|
exports.localProviderLink = require_child_cap_dispatch.localProviderLink;
|
|
14316
14322
|
exports.meshErrorType = meshErrorType;
|
|
14323
|
+
exports.mintAgentUiUnlockTicket = require_builtins_system_config_system_config_addon.mintAgentUiUnlockTicket;
|
|
14317
14324
|
exports.mintMeshJoinToken = require_builtins_system_config_system_config_addon.mintMeshJoinToken;
|
|
14318
14325
|
exports.mountNativeCapService = require_child_cap_dispatch.mountNativeCapService;
|
|
14319
14326
|
exports.nextRssBudgetState = require_child_cap_dispatch.nextRssBudgetState;
|
|
14320
14327
|
exports.normalizeIp = require_builtins_system_config_system_config_addon.normalizeIp;
|
|
14321
14328
|
exports.overlayGetStatus = overlayGetStatus;
|
|
14329
|
+
exports.parseAgentDashboardOrigins = require_builtins_system_config_system_config_addon.parseAgentDashboardOrigins;
|
|
14322
14330
|
exports.parseCapAction = require_child_cap_dispatch.parseCapAction;
|
|
14323
14331
|
exports.parseCidrList = require_builtins_system_config_system_config_addon.parseCidrList;
|
|
14324
14332
|
exports.parseMeshAuthMode = require_builtins_system_config_system_config_addon.parseMeshAuthMode;
|
|
@@ -14404,6 +14412,7 @@ exports.subscribePassthrough = require_child_cap_dispatch.subscribePassthrough;
|
|
|
14404
14412
|
exports.udsChildLogToWorkerEntry = require_child_cap_dispatch.udsChildLogToWorkerEntry;
|
|
14405
14413
|
exports.validateProviderRegistrations = require_child_cap_dispatch.validateProviderRegistrations;
|
|
14406
14414
|
exports.validateUploadedTls = require_tls.validateUploadedTls;
|
|
14415
|
+
exports.verifyAgentUiUnlockTicket = require_builtins_system_config_system_config_addon.verifyAgentUiUnlockTicket;
|
|
14407
14416
|
exports.verifyMeshJoinToken = require_builtins_system_config_system_config_addon.verifyMeshJoinToken;
|
|
14408
14417
|
exports.waitUntilReady = waitUntilReady;
|
|
14409
14418
|
exports.writeExtraSans = require_tls.writeExtraSans;
|
package/dist/index.mjs
CHANGED
|
@@ -27,7 +27,7 @@ import { i as stripForwardedCaller, n as HUB_CAP_FWD_SERVICE, r as createHubCapF
|
|
|
27
27
|
import { StorageOrchestratorAddon, n as buildStorageLocationRegistry, t as StorageOrchestratorService } from "./builtins/storage-orchestrator/storage-orchestrator.addon.mjs";
|
|
28
28
|
import "./builtins/storage-orchestrator/index.mjs";
|
|
29
29
|
import { _ as clusterSecretMatches, a as MESH_CA_FIELD, b as isClusterSecretMismatchError, d as CLUSTER_SECRET_MISMATCH_TYPE, f as CLUSTER_SECRET_REF, g as checkClusterSecret, h as CLUSTER_SECRET_UNAVAILABLE_TYPE, m as CLUSTER_SECRET_SETTINGS_KEY, o as MESH_CA_KEY_REF, p as CLUSTER_SECRET_REJECTED_EXIT_CODE, r as DEFAULT_HUB_TLS_TCP_PORT, s as MESH_CA_SETTINGS_KEY, v as getProcessClusterSecretGate, x as setProcessClusterSecretGate, y as hashClusterSecret } from "./constants-D5z4EwY8.mjs";
|
|
30
|
-
import { A as loadMeshCa, B as
|
|
30
|
+
import { A as loadMeshCa, B as MESH_AUTH_MODE_FIELD, C as caFingerprintCompact, D as generateMeshKeyPair, E as generateMeshCa, F as UnlockTicketJtiStore, G as requestProcessMeshEnforcement, H as getProcessMeshAuthStatus, I as isAllowedAgentDashboardReturnTo, J as setProcessMeshEnforcer, K as setProcessMeshAuthMode, L as mintAgentUiUnlockTicket, M as AGENT_UI_UNLOCK_DOMAIN, N as AGENT_UI_UNLOCK_TTL_MS, O as issueMeshLeafForNode, P as AGENT_UI_UNLOCK_VERSION, Q as readCidrSetting, R as parseAgentDashboardOrigins, S as caFingerprint, SystemConfigAddon, T as exportMeshPrivateKeyPem, U as isMeshAuthMode, V as getProcessMeshAuthMode, W as parseMeshAuthMode, X as normalizeIp, Y as createCidrMatcher, Z as parseCidrList, _ as MeshCrl, a as setProcessMeshTlsEnabler, b as getProcessMeshCaState, c as mintMeshJoinToken, d as MESH_CLEAR_PORT_FIELD, f as applyProcessMeshClearPort, g as setProcessMeshClearPortControl, h as getProcessNodeMeshTransport, i as ServiceBroker, j as AGENT_DASHBOARD_ORIGINS_FIELD, k as issueMeshLeafFromCsr, l as processJoinTokenJtiStore, m as decideMeshClearPortOff, n as TlsTcpTransporter, o as enrollMeshNode, p as checkProcessMeshClearPort, q as setProcessMeshAuthStatusSource, r as Errors, s as JoinTokenJtiStore, u as verifyMeshJoinToken, v as processMeshCrl, w as createMeshCsrPem, x as requireProcessMeshCa, y as MeshCaKeeper, z as verifyAgentUiUnlockTicket } from "./builtins/system-config/system-config.addon.mjs";
|
|
31
31
|
import "./builtins/system-config/index.mjs";
|
|
32
32
|
import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
|
|
33
33
|
import { C as resolveFormatRevision, S as isModelDownloaded, _ as downloadModel, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as ensureModel, w as revisionWeightUrl, y as fetchJson } from "./event-loop-stall-monitor-BtK_0Pjc.mjs";
|
|
@@ -13856,4 +13856,4 @@ var LifecycleJobEngine = class {
|
|
|
13856
13856
|
}
|
|
13857
13857
|
};
|
|
13858
13858
|
//#endregion
|
|
13859
|
-
export { ADMIN_TOKEN_MAX_LIFETIME_MS, ADMIN_TOKEN_PREFIX, AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, AGENT_REGISTER_NODE_ACTION, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AdminTokenManager, AgentMeshAuthenticator, AlertCenterAddon, ApiKeyManager, AuthAuditLog, AuthManager, BackupDecryptError, BackupKeyFormatError, BackupKeyMismatchError, BackupKeyRequiredError, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CAP_METHOD_NOT_IMPLEMENTED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REF, CLUSTER_SECRET_REJECTED_EXIT_CODE, CLUSTER_SECRET_SETTINGS_KEY, CLUSTER_SECRET_UNAVAILABLE_TYPE, CORE_CAP_SERVICE_NAME, CalendarsAddon, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ComposerAddon, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_HUB_TLS_TCP_PORT, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FIRST_BOOT_ADMIN_PASSWORD, FIRST_BOOT_ADMIN_USERNAME, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, GET_STATUS_METHOD, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JWT_SIGNING_KEY_REF, JobJournal, JoinTokenJtiStore, JwtSigningKeyUnavailableError, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LoginSessionManager, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_ACTION_FORBIDDEN_TYPE, MESH_AUTH_MODE_FIELD, MESH_AUTO_ENFORCE_GRACE_MS, MESH_CA_FIELD, MESH_CA_KEY_REF, MESH_CA_SETTINGS_KEY, MESH_CLEAR_PORT_FIELD, MESH_JOIN_AUTHENTICATE_ACTION, MESH_JOIN_CHALLENGE_ACTION, MESH_JOIN_CHALLENGE_INVALID_TYPE, MESH_JOIN_CHALLENGE_TTL_MS, MESH_JOIN_PROTOCOL, MESH_NODE_UNAUTHENTICATED_TYPE, MESH_QUEUE_TOP_N, METHOD_ACCESS_MAP, MeshAuthenticator, MeshCaKeeper, MeshCrl, MeshJoinClient, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PeerAnsweredError, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, REFRESH_TOKEN_PREFIX, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, STORE_READABLE_BOOTSTRAP_KEYS, SYSTEM_SECRET_OWNER, ScopedLogger, ScopedTokenManager, SettingsReadUnavailableError, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemBackupService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, TlsTcpTransporter, ToastService, UDS_NO_ROUTE_PREFIX, UNCLAIMED, UPLOADED_CA_FILE, USER_MANAGEMENT_INTERNAL, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, adoptModelRevisions, afterWorkerOnlineAnnounce, allFamiliesListenHost, answerClaimedGetStatus, applyCertificateToListener, applyLanHttp, applyProcessMeshClearPort, attachUserManagementInternal, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, builderMountedCapNames, caFingerprint, caFingerprintCompact, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, checkClusterSecret, checkProcessMeshClearPort, classifyAddonDir, classifyCapRoute, clearHttpsListener, clearPendingRestart, clearPlatformKeychainKey, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, computeHubJoinProof, computeNodeJoinProof, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonPeerBytesFacility, createAddonService, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCidrMatcher, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createMeshAccessMiddleware, createMeshCsrPem, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, decideMeshAutoEnforce, decideMeshClearPortOff, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, deviceOfGetStatus, diffCapActionCensus, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, enrollMeshNode, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, exportMeshPrivateKeyPem, fetchJson, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, generateBackupKeyPair, generateMeshCa, generateMeshKeyPair, getBrokerEventBus, getBrokerTlsTransporter, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPlatformKeychainKey, getProcessClusterSecretGate, getProcessJwtSigningKeyState, getProcessMeshAuthMode, getProcessMeshAuthStatus, getProcessMeshCaState, getProcessNodeMeshTransport, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getUserManagementInternal, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hostNodeIdOf, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayBufferCensusReport, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isCredentialKeyName, isInfraCapability, isMeshAuthMode, isModelDownloaded, isOwnChildNodeId, isRemoteForbiddenAction, isRemoteForbiddenOnAgent, isSettingsReadUnavailable, isSourceNewer, isolatedBuiltinPhase, issueMeshLeafForNode, issueMeshLeafFromCsr, leafFingerprintOf, loadMeshCa, loadTlsCert, localEndpointPath, localProviderLink, meshErrorType, mintMeshJoinToken, mountNativeCapService, nextRssBudgetState, normalizeIp, overlayGetStatus, parseCapAction, parseCidrList, parseMeshAuthMode, parseRangeHeader, parseRssBudgetMb, parseTokenExpiry, parseTokenizedUrl, partitionIsolatedBuiltinIds, prepareBootTls, prepareRestoreArchive, processJoinTokenJtiStore, processJwtSigningKey, processMeshCrl, proxyToUpstream, quarantineAddonResidue, readBackupEncryptionHeader, readCidrSetting, readExtraSans, readHeapSpaces, readLanHttpState, readPendingRestart, readSocketQueues, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, redactLogEntry, redactLogMeta, redactLogText, regenerateCertificate, registerEventBusService, registerHttpsListener, registerLanHttpHandler, reissueTlsLeaf, reloadHttpsListener, requestProcessMeshEnforcement, requireProcessMeshCa, resolveFilePath, resolveFormatRevision, resolveHwAccel, resolveNpmInvocation, revertToGeneratedCertificate, revisionWeightUrl, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, servedHttpsLeafFingerprint, setHubConnected, setNodeEventInterest, setPlatformKeychainKey, setProcessClusterSecretGate, setProcessMeshAuthMode, setProcessMeshAuthStatusSource, setProcessMeshClearPortControl, setProcessMeshEnforcer, setProcessMeshTlsEnabler, setWrapperActive, shouldReclaim, signalAllRunnerGroups, socketDirectionBytes, socketDirectionMessages, splitPemCertificates, stampCallerAddonId, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, staticJwtSigningKey, storeMayAnswer, storeUploadedCertificate, strandedMb, stripCamstackDeps, stripForgedIdentity, stripForwardedCaller, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, verifyMeshJoinToken, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
|
|
13859
|
+
export { ADMIN_TOKEN_MAX_LIFETIME_MS, ADMIN_TOKEN_PREFIX, AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_DASHBOARD_ORIGINS_FIELD, AGENT_READINESS_SERVICE_NAME, AGENT_REGISTER_NODE_ACTION, AGENT_UI_UNLOCK_DOMAIN, AGENT_UI_UNLOCK_TTL_MS, AGENT_UI_UNLOCK_VERSION, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AdminTokenManager, AgentMeshAuthenticator, AlertCenterAddon, ApiKeyManager, AuthAuditLog, AuthManager, BackupDecryptError, BackupKeyFormatError, BackupKeyMismatchError, BackupKeyRequiredError, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CAP_METHOD_NOT_IMPLEMENTED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REF, CLUSTER_SECRET_REJECTED_EXIT_CODE, CLUSTER_SECRET_SETTINGS_KEY, CLUSTER_SECRET_UNAVAILABLE_TYPE, CORE_CAP_SERVICE_NAME, CalendarsAddon, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ComposerAddon, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_HUB_TLS_TCP_PORT, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FIRST_BOOT_ADMIN_PASSWORD, FIRST_BOOT_ADMIN_USERNAME, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, GET_STATUS_METHOD, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JWT_SIGNING_KEY_REF, JobJournal, JoinTokenJtiStore, JwtSigningKeyUnavailableError, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LoginSessionManager, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_ACTION_FORBIDDEN_TYPE, MESH_AUTH_MODE_FIELD, MESH_AUTO_ENFORCE_GRACE_MS, MESH_CA_FIELD, MESH_CA_KEY_REF, MESH_CA_SETTINGS_KEY, MESH_CLEAR_PORT_FIELD, MESH_JOIN_AUTHENTICATE_ACTION, MESH_JOIN_CHALLENGE_ACTION, MESH_JOIN_CHALLENGE_INVALID_TYPE, MESH_JOIN_CHALLENGE_TTL_MS, MESH_JOIN_PROTOCOL, MESH_NODE_UNAUTHENTICATED_TYPE, MESH_QUEUE_TOP_N, METHOD_ACCESS_MAP, MeshAuthenticator, MeshCaKeeper, MeshCrl, MeshJoinClient, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PeerAnsweredError, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, REFRESH_TOKEN_PREFIX, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, STORE_READABLE_BOOTSTRAP_KEYS, SYSTEM_SECRET_OWNER, ScopedLogger, ScopedTokenManager, SettingsReadUnavailableError, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemBackupService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, TlsTcpTransporter, ToastService, UDS_NO_ROUTE_PREFIX, UNCLAIMED, UPLOADED_CA_FILE, USER_MANAGEMENT_INTERNAL, UdsLocalTransportClient, UdsLocalTransportServer, UnlockTicketJtiStore, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, adoptModelRevisions, afterWorkerOnlineAnnounce, allFamiliesListenHost, answerClaimedGetStatus, applyCertificateToListener, applyLanHttp, applyProcessMeshClearPort, attachUserManagementInternal, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, builderMountedCapNames, caFingerprint, caFingerprintCompact, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, checkClusterSecret, checkProcessMeshClearPort, classifyAddonDir, classifyCapRoute, clearHttpsListener, clearPendingRestart, clearPlatformKeychainKey, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, computeHubJoinProof, computeNodeJoinProof, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonPeerBytesFacility, createAddonService, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCidrMatcher, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createMeshAccessMiddleware, createMeshCsrPem, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, decideMeshAutoEnforce, decideMeshClearPortOff, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, deviceOfGetStatus, diffCapActionCensus, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, enrollMeshNode, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, exportMeshPrivateKeyPem, fetchJson, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, generateBackupKeyPair, generateMeshCa, generateMeshKeyPair, getBrokerEventBus, getBrokerTlsTransporter, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPlatformKeychainKey, getProcessClusterSecretGate, getProcessJwtSigningKeyState, getProcessMeshAuthMode, getProcessMeshAuthStatus, getProcessMeshCaState, getProcessNodeMeshTransport, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getUserManagementInternal, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hostNodeIdOf, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isAllowedAgentDashboardReturnTo, isArrayBufferCensusReport, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isCredentialKeyName, isInfraCapability, isMeshAuthMode, isModelDownloaded, isOwnChildNodeId, isRemoteForbiddenAction, isRemoteForbiddenOnAgent, isSettingsReadUnavailable, isSourceNewer, isolatedBuiltinPhase, issueMeshLeafForNode, issueMeshLeafFromCsr, leafFingerprintOf, loadMeshCa, loadTlsCert, localEndpointPath, localProviderLink, meshErrorType, mintAgentUiUnlockTicket, mintMeshJoinToken, mountNativeCapService, nextRssBudgetState, normalizeIp, overlayGetStatus, parseAgentDashboardOrigins, parseCapAction, parseCidrList, parseMeshAuthMode, parseRangeHeader, parseRssBudgetMb, parseTokenExpiry, parseTokenizedUrl, partitionIsolatedBuiltinIds, prepareBootTls, prepareRestoreArchive, processJoinTokenJtiStore, processJwtSigningKey, processMeshCrl, proxyToUpstream, quarantineAddonResidue, readBackupEncryptionHeader, readCidrSetting, readExtraSans, readHeapSpaces, readLanHttpState, readPendingRestart, readSocketQueues, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, redactLogEntry, redactLogMeta, redactLogText, regenerateCertificate, registerEventBusService, registerHttpsListener, registerLanHttpHandler, reissueTlsLeaf, reloadHttpsListener, requestProcessMeshEnforcement, requireProcessMeshCa, resolveFilePath, resolveFormatRevision, resolveHwAccel, resolveNpmInvocation, revertToGeneratedCertificate, revisionWeightUrl, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, servedHttpsLeafFingerprint, setHubConnected, setNodeEventInterest, setPlatformKeychainKey, setProcessClusterSecretGate, setProcessMeshAuthMode, setProcessMeshAuthStatusSource, setProcessMeshClearPortControl, setProcessMeshEnforcer, setProcessMeshTlsEnabler, setWrapperActive, shouldReclaim, signalAllRunnerGroups, socketDirectionBytes, socketDirectionMessages, splitPemCertificates, stampCallerAddonId, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, staticJwtSigningKey, storeMayAnswer, storeUploadedCertificate, strandedMb, stripCamstackDeps, stripForgedIdentity, stripForwardedCaller, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, verifyAgentUiUnlockTicket, verifyMeshJoinToken, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
|