@cotal-ai/core 0.53.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth-provider.d.ts +26 -1
- package/dist/auth-provider.d.ts.map +1 -1
- package/dist/auth-provider.js.map +1 -1
- package/dist/connector.d.ts +7 -1
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js.map +1 -1
- package/dist/endpoint-grants.d.ts +7 -2
- package/dist/endpoint-grants.d.ts.map +1 -1
- package/dist/endpoint-grants.js +11 -4
- package/dist/endpoint-grants.js.map +1 -1
- package/dist/endpoint-invoke.d.ts +22 -11
- package/dist/endpoint-invoke.d.ts.map +1 -1
- package/dist/endpoint-invoke.js +255 -85
- package/dist/endpoint-invoke.js.map +1 -1
- package/dist/endpoint-service.d.ts +12 -0
- package/dist/endpoint-service.d.ts.map +1 -1
- package/dist/endpoint-service.js +1 -1
- package/dist/endpoint-service.js.map +1 -1
- package/dist/endpoint-verbs.d.ts +1 -0
- package/dist/endpoint-verbs.d.ts.map +1 -1
- package/dist/endpoint-verbs.js +14 -6
- package/dist/endpoint-verbs.js.map +1 -1
- package/dist/endpoint.d.ts +69 -3
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +217 -17
- package/dist/endpoint.js.map +1 -1
- package/dist/provision.d.ts +26 -1
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +116 -11
- package/dist/provision.js.map +1 -1
- package/dist/remote-manager-authority.d.ts +111 -0
- package/dist/remote-manager-authority.d.ts.map +1 -1
- package/dist/remote-manager-authority.js +175 -1
- package/dist/remote-manager-authority.js.map +1 -1
- package/dist/resolve.d.ts +13 -0
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +16 -0
- package/dist/resolve.js.map +1 -1
- package/dist/schema-profile.d.ts.map +1 -1
- package/dist/schema-profile.js +87 -8
- package/dist/schema-profile.js.map +1 -1
- package/dist/secret-store.d.ts +39 -0
- package/dist/secret-store.d.ts.map +1 -1
- package/dist/secret-store.js +24 -0
- package/dist/secret-store.js.map +1 -1
- package/dist/streams.d.ts +21 -21
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +52 -29
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +18 -0
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +21 -0
- package/dist/subjects.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { rawDigest } from "./canonical.js";
|
|
2
|
-
import {
|
|
2
|
+
import { EpEnvelopeError } from "./endpoint-error.js";
|
|
3
|
+
import { assertDerivedOwnerToken, assertLifecycleToken, assertValidChannel, assertValidOwnerToken } from "./subjects.js";
|
|
3
4
|
export function remoteManagerActors(instanceId) {
|
|
4
5
|
return {
|
|
5
6
|
supervisor: `manager_${instanceId}`,
|
|
@@ -28,4 +29,177 @@ export function remoteManagerRegistrationProof(owner, request) {
|
|
|
28
29
|
export function managedRetirementOpId(lifecycleUid) {
|
|
29
30
|
return rawDigest(`retire:${assertLifecycleToken(lifecycleUid)}`).slice("sha256:".length, "sha256:".length + 26);
|
|
30
31
|
}
|
|
32
|
+
const IDENTITY_NAMES = ["supervisor", "executor", "serve", "goalWriter", "sessionLedger"];
|
|
33
|
+
/** The bound on one enrollment ACL list. A grant wider than this is a configuration mistake, and a
|
|
34
|
+
* request carrying thousands of patterns is a body-size attack on the host's derivation. */
|
|
35
|
+
const MAX_ENROLLMENT_LIST = 64;
|
|
36
|
+
function enrollmentError(what, detail) {
|
|
37
|
+
throw new EpEnvelopeError("bad-request", `${what} request ${detail}`);
|
|
38
|
+
}
|
|
39
|
+
/** The envelope fields every managed-agent request shares, validated once for both parsers. */
|
|
40
|
+
function parseManagedAgentEnvelope(o, what, kind) {
|
|
41
|
+
if (o.v !== 1 || o.kind !== kind)
|
|
42
|
+
enrollmentError(what, `must carry { v: 1, kind: ${JSON.stringify(kind)} }`);
|
|
43
|
+
for (const key of ["space", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof"])
|
|
44
|
+
if (typeof o[key] !== "string" || o[key].length === 0)
|
|
45
|
+
enrollmentError(what, `requires non-empty ${key}`);
|
|
46
|
+
assertValidOwnerToken(o.actor);
|
|
47
|
+
assertLifecycleToken(o.instanceId, `${what} instanceId`);
|
|
48
|
+
assertLifecycleToken(o.managerLifecycleUid, `${what} lifecycleUid`);
|
|
49
|
+
if (!/^[A-Za-z0-9_-]{22,64}$/.test(o.requestId))
|
|
50
|
+
enrollmentError(what, "requestId must be a 22-64 character idempotency token");
|
|
51
|
+
if (!/^sha256:[0-9a-f]{64}$/.test(o.registrationProof))
|
|
52
|
+
enrollmentError(what, "requires a sha256 registrationProof");
|
|
53
|
+
if (typeof o.serveEpoch !== "number" || !Number.isSafeInteger(o.serveEpoch) || o.serveEpoch < 0)
|
|
54
|
+
enrollmentError(what, "serveEpoch must be a non-negative safe integer");
|
|
55
|
+
const ids = o.identities;
|
|
56
|
+
if (ids === null || typeof ids !== "object" || Array.isArray(ids))
|
|
57
|
+
enrollmentError(what, "requires identities");
|
|
58
|
+
const idObj = ids;
|
|
59
|
+
if (Object.keys(idObj).sort().join(",") !== [...IDENTITY_NAMES].sort().join(","))
|
|
60
|
+
enrollmentError(what, `identities must contain exactly ${IDENTITY_NAMES.join(", ")}`);
|
|
61
|
+
const identities = {};
|
|
62
|
+
for (const name of IDENTITY_NAMES) {
|
|
63
|
+
const item = idObj[name];
|
|
64
|
+
if (item === null || typeof item !== "object" || Array.isArray(item) || Object.keys(item).join(",") !== "id")
|
|
65
|
+
enrollmentError(what, `identities.${name} must be exactly { id }`);
|
|
66
|
+
const id = item.id;
|
|
67
|
+
if (typeof id !== "string" || !/^U[A-Z2-7]{55}$/.test(id))
|
|
68
|
+
enrollmentError(what, `identities.${name}.id must be a user nkey`);
|
|
69
|
+
identities[name] = { id };
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
space: o.space,
|
|
73
|
+
actor: o.actor,
|
|
74
|
+
instanceId: o.instanceId,
|
|
75
|
+
managerLifecycleUid: o.managerLifecycleUid,
|
|
76
|
+
requestId: o.requestId,
|
|
77
|
+
registrationProof: o.registrationProof,
|
|
78
|
+
serveEpoch: o.serveEpoch,
|
|
79
|
+
identities,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** One optional channel/pattern list on an enrollment target: bounded, string-only, in-grammar. */
|
|
83
|
+
function parseEnrollmentList(value, what, field) {
|
|
84
|
+
if (value === undefined)
|
|
85
|
+
return undefined;
|
|
86
|
+
if (!Array.isArray(value))
|
|
87
|
+
enrollmentError(what, `target.${field} must be an array of channel patterns when present`);
|
|
88
|
+
if (value.length > MAX_ENROLLMENT_LIST)
|
|
89
|
+
enrollmentError(what, `target.${field} carries ${value.length} entries, more than the ${MAX_ENROLLMENT_LIST}-entry bound`);
|
|
90
|
+
for (const item of value) {
|
|
91
|
+
if (typeof item !== "string" || item.length === 0)
|
|
92
|
+
enrollmentError(what, `target.${field} must contain only non-empty strings`);
|
|
93
|
+
assertValidChannel(item);
|
|
94
|
+
}
|
|
95
|
+
return [...value];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Parse the enrollment request without retaining unknown input fields. The host derives the
|
|
99
|
+
* lifecycle UID, the role, and the effective ACLs itself, so this parser proves only that what
|
|
100
|
+
* arrived is in-grammar and bounded; it never widens a grant.
|
|
101
|
+
*/
|
|
102
|
+
export function parseRemoteManagedAgentEnrollmentRequest(raw) {
|
|
103
|
+
const what = "managed agent enrollment";
|
|
104
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
105
|
+
enrollmentError(what, "must be an object");
|
|
106
|
+
const o = raw;
|
|
107
|
+
const allowed = new Set([
|
|
108
|
+
"v", "kind", "space", "actor", "instanceId", "managerLifecycleUid", "requestId",
|
|
109
|
+
"registrationProof", "serveEpoch", "target", "identities",
|
|
110
|
+
]);
|
|
111
|
+
for (const key of Object.keys(o))
|
|
112
|
+
if (!allowed.has(key))
|
|
113
|
+
enrollmentError(what, `carries unknown field ${JSON.stringify(key)} (the protocol is closed)`);
|
|
114
|
+
const envelope = parseManagedAgentEnvelope(o, what, "manager-managed-agent-enrollment");
|
|
115
|
+
const target = o.target;
|
|
116
|
+
if (target === null || typeof target !== "object" || Array.isArray(target))
|
|
117
|
+
enrollmentError(what, "requires a target");
|
|
118
|
+
const t = target;
|
|
119
|
+
const targetAllowed = new Set(["actor", "tokenHash", "role", "label", "capabilities", "subscribe", "allowSubscribe", "allowPublish"]);
|
|
120
|
+
for (const key of Object.keys(t))
|
|
121
|
+
if (!targetAllowed.has(key))
|
|
122
|
+
enrollmentError(what, `target carries unknown field ${JSON.stringify(key)} (the protocol is closed)`);
|
|
123
|
+
if (typeof t.actor !== "string" || t.actor.length === 0)
|
|
124
|
+
enrollmentError(what, "target requires a non-empty actor");
|
|
125
|
+
assertValidOwnerToken(t.actor);
|
|
126
|
+
// The digest, never the secret: a request that carried the plaintext standing token would put an
|
|
127
|
+
// agent's whole exchange authority on the wire and in the host's logs.
|
|
128
|
+
if (typeof t.tokenHash !== "string" || !/^[0-9a-f]{64}$/.test(t.tokenHash))
|
|
129
|
+
enrollmentError(what, "target.tokenHash must be a lowercase hex sha256 digest of the locally held actorToken");
|
|
130
|
+
if (t.role !== undefined && (typeof t.role !== "string" || !/^[A-Za-z0-9_-]{1,64}$/.test(t.role)))
|
|
131
|
+
enrollmentError(what, "target.role must be a 1-64 character role token when present");
|
|
132
|
+
if (t.label !== undefined && (typeof t.label !== "string" || t.label.length === 0 || t.label.length > 256))
|
|
133
|
+
enrollmentError(what, "target.label must be a 1-256 character string when present");
|
|
134
|
+
if (t.capabilities !== undefined) {
|
|
135
|
+
if (!Array.isArray(t.capabilities))
|
|
136
|
+
enrollmentError(what, "target.capabilities must be an array when present");
|
|
137
|
+
if (t.capabilities.length > MAX_ENROLLMENT_LIST)
|
|
138
|
+
enrollmentError(what, `target.capabilities carries ${t.capabilities.length} entries, more than the ${MAX_ENROLLMENT_LIST}-entry bound`);
|
|
139
|
+
for (const cap of t.capabilities)
|
|
140
|
+
if (typeof cap !== "string" || !/^[A-Za-z0-9_:-]{1,64}$/.test(cap))
|
|
141
|
+
enrollmentError(what, "target.capabilities must contain only 1-64 character capability tokens");
|
|
142
|
+
}
|
|
143
|
+
const subscribe = parseEnrollmentList(t.subscribe, what, "subscribe");
|
|
144
|
+
const allowSubscribe = parseEnrollmentList(t.allowSubscribe, what, "allowSubscribe");
|
|
145
|
+
const allowPublish = parseEnrollmentList(t.allowPublish, what, "allowPublish");
|
|
146
|
+
return {
|
|
147
|
+
v: 1,
|
|
148
|
+
kind: "manager-managed-agent-enrollment",
|
|
149
|
+
...envelope,
|
|
150
|
+
target: {
|
|
151
|
+
actor: t.actor,
|
|
152
|
+
tokenHash: t.tokenHash,
|
|
153
|
+
...(t.role !== undefined ? { role: t.role } : {}),
|
|
154
|
+
...(t.label !== undefined ? { label: t.label } : {}),
|
|
155
|
+
...(t.capabilities !== undefined ? { capabilities: [...t.capabilities] } : {}),
|
|
156
|
+
...(subscribe !== undefined ? { subscribe } : {}),
|
|
157
|
+
...(allowSubscribe !== undefined ? { allowSubscribe } : {}),
|
|
158
|
+
...(allowPublish !== undefined ? { allowPublish } : {}),
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Parse the prepare-retirement request without retaining unknown input fields. The opId is checked
|
|
164
|
+
* against {@link managedRetirementOpId} here, so a caller cannot name a second operation for one
|
|
165
|
+
* lifecycle and split the terminal barrier in two.
|
|
166
|
+
*/
|
|
167
|
+
export function parseRemoteManagedAgentPrepareRetirementRequest(raw) {
|
|
168
|
+
const what = "managed agent prepare-retirement";
|
|
169
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
170
|
+
enrollmentError(what, "must be an object");
|
|
171
|
+
const o = raw;
|
|
172
|
+
const allowed = new Set([
|
|
173
|
+
"v", "kind", "space", "actor", "instanceId", "managerLifecycleUid", "requestId",
|
|
174
|
+
"registrationProof", "serveEpoch", "target", "opId", "identities",
|
|
175
|
+
]);
|
|
176
|
+
for (const key of Object.keys(o))
|
|
177
|
+
if (!allowed.has(key))
|
|
178
|
+
enrollmentError(what, `carries unknown field ${JSON.stringify(key)} (the protocol is closed)`);
|
|
179
|
+
const envelope = parseManagedAgentEnvelope(o, what, "manager-managed-agent-prepare-retirement");
|
|
180
|
+
const target = o.target;
|
|
181
|
+
if (target === null || typeof target !== "object" || Array.isArray(target) ||
|
|
182
|
+
Object.keys(target).sort().join(",") !== "actor,lifecycleUid,owner")
|
|
183
|
+
enrollmentError(what, "target must be exactly { owner, actor, lifecycleUid }");
|
|
184
|
+
const t = target;
|
|
185
|
+
if (typeof t.owner !== "string" || typeof t.actor !== "string" || typeof t.lifecycleUid !== "string")
|
|
186
|
+
enrollmentError(what, "target must contain string owner, actor, and lifecycleUid");
|
|
187
|
+
const parsedTarget = {
|
|
188
|
+
owner: assertDerivedOwnerToken(t.owner),
|
|
189
|
+
actor: assertValidOwnerToken(t.actor),
|
|
190
|
+
lifecycleUid: assertLifecycleToken(t.lifecycleUid, `${what} target lifecycleUid`),
|
|
191
|
+
};
|
|
192
|
+
if (typeof o.opId !== "string" || o.opId.length === 0)
|
|
193
|
+
enrollmentError(what, "requires a non-empty opId");
|
|
194
|
+
assertLifecycleToken(o.opId, `${what} opId`);
|
|
195
|
+
if (o.opId !== managedRetirementOpId(parsedTarget.lifecycleUid))
|
|
196
|
+
enrollmentError(what, `opId must be the derived terminal operation id for lifecycle ${parsedTarget.lifecycleUid}`);
|
|
197
|
+
return {
|
|
198
|
+
v: 1,
|
|
199
|
+
kind: "manager-managed-agent-prepare-retirement",
|
|
200
|
+
...envelope,
|
|
201
|
+
target: parsedTarget,
|
|
202
|
+
opId: o.opId,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
31
205
|
//# sourceMappingURL=remote-manager-authority.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-manager-authority.js","sourceRoot":"","sources":["../src/remote-manager-authority.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"remote-manager-authority.js","sourceRoot":"","sources":["../src/remote-manager-authority.ts"],"names":[],"mappings":"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"}
|
package/dist/resolve.d.ts
CHANGED
|
@@ -43,6 +43,19 @@ export declare class AmbiguousPeerError extends Error {
|
|
|
43
43
|
export declare function resolvePeer(roster: Presence[], target: string, opts?: {
|
|
44
44
|
selfId?: string;
|
|
45
45
|
}): Presence | undefined;
|
|
46
|
+
/** Maximum length of a display name, in UTF-16 code units.
|
|
47
|
+
*
|
|
48
|
+
* Derived from the transport budget, not picked. The client's CONNECT line carries the user JWT
|
|
49
|
+
* plus every payload the identity rides into (presence rows, message envelopes), and the broker
|
|
50
|
+
* caps that line at `max_control_line` (65536 in the generated config, provision.ts). A name is
|
|
51
|
+
* display data on that path, so an unbounded name is an unbounded CONNECT line: a 70,000-char
|
|
52
|
+
* name was accepted end to end and the connect then hung (issue #375) — the broker drops the
|
|
53
|
+
* oversized line silently and the client retries forever. 128 leaves every human name (~40 chars
|
|
54
|
+
* at the extreme) 3× headroom while keeping dozens of in-flight name-bearing rows an order of
|
|
55
|
+
* magnitude inside the 64 KB line. The grants themselves key on the principal, never the name
|
|
56
|
+
* (event-channel.ts), so this bound guards the payload side of the budget.
|
|
57
|
+
*/
|
|
58
|
+
export declare const MAX_NAME_LENGTH = 128;
|
|
46
59
|
/**
|
|
47
60
|
* Validate a display name. A name must be non-empty, single-line, and free of surrounding
|
|
48
61
|
* whitespace; `/` is reserved as the future `owner/name` separator (and already means "a path"
|
package/dist/resolve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D;6FAC6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;0FAC0F;AAC1F,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE;gBAD3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,aAAa,EAAE;CASvC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,QAAQ,GAAG,SAAS,CAetB;AAuBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D;6FAC6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;0FAC0F;AAC1F,qBAAa,kBAAmB,SAAQ,KAAK;IAEzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE;gBAD3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,aAAa,EAAE;CASvC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,QAAQ,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,QAAQ,GAAG,SAAS,CAetB;AAuBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAgClD"}
|
package/dist/resolve.js
CHANGED
|
@@ -66,6 +66,19 @@ function isWellFormedUtf16(s) {
|
|
|
66
66
|
}
|
|
67
67
|
return true;
|
|
68
68
|
}
|
|
69
|
+
/** Maximum length of a display name, in UTF-16 code units.
|
|
70
|
+
*
|
|
71
|
+
* Derived from the transport budget, not picked. The client's CONNECT line carries the user JWT
|
|
72
|
+
* plus every payload the identity rides into (presence rows, message envelopes), and the broker
|
|
73
|
+
* caps that line at `max_control_line` (65536 in the generated config, provision.ts). A name is
|
|
74
|
+
* display data on that path, so an unbounded name is an unbounded CONNECT line: a 70,000-char
|
|
75
|
+
* name was accepted end to end and the connect then hung (issue #375) — the broker drops the
|
|
76
|
+
* oversized line silently and the client retries forever. 128 leaves every human name (~40 chars
|
|
77
|
+
* at the extreme) 3× headroom while keeping dozens of in-flight name-bearing rows an order of
|
|
78
|
+
* magnitude inside the 64 KB line. The grants themselves key on the principal, never the name
|
|
79
|
+
* (event-channel.ts), so this bound guards the payload side of the budget.
|
|
80
|
+
*/
|
|
81
|
+
export const MAX_NAME_LENGTH = 128;
|
|
69
82
|
/**
|
|
70
83
|
* Validate a display name. A name must be non-empty, single-line, and free of surrounding
|
|
71
84
|
* whitespace; `/` is reserved as the future `owner/name` separator (and already means "a path"
|
|
@@ -75,6 +88,9 @@ function isWellFormedUtf16(s) {
|
|
|
75
88
|
export function assertValidName(name) {
|
|
76
89
|
if (name.length === 0 || name !== name.trim())
|
|
77
90
|
throw new Error(`invalid name ${JSON.stringify(name)}: must be non-empty with no surrounding whitespace`);
|
|
91
|
+
if (name.length > MAX_NAME_LENGTH)
|
|
92
|
+
throw new Error(`invalid name ${JSON.stringify(name.slice(0, 32))}…: ${name.length} characters exceeds the ` +
|
|
93
|
+
`${MAX_NAME_LENGTH}-character limit (the CONNECT line budget that carries it)`);
|
|
78
94
|
if (/[\r\n]/.test(name))
|
|
79
95
|
throw new Error(`invalid name ${JSON.stringify(name)}: must be a single line`);
|
|
80
96
|
if (name.includes("/"))
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-profile.d.ts","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIlE;;6EAE6E;AAC7E,eAAO,MAAM,cAAc;IACzB,mDAAmD;;IAEnD,+EAA+E;;IAE/E,gDAAgD;;
|
|
1
|
+
{"version":3,"file":"schema-profile.d.ts","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIlE;;6EAE6E;AAC7E,eAAO,MAAM,cAAc;IACzB,mDAAmD;;IAEnD,+EAA+E;;IAE/E,gDAAgD;;IAoDhD,+DAA+D;;IAE/D,sCAAsC;;IAEtC,+FAA+F;;IAE/F;;0DAEsD;;IAEtD,0EAA0E;;EAEjE,CAAC;AAuEZ;;cAEc;AACd,eAAO,MAAM,WAAW;;EAA2C,CAAC;AACpE,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,QAA8B,CAAC;AACvE;8EAC8E;AAC9E,eAAO,MAAM,kBAAkB,QAA2E,CAAC;AAK3G;wFACwF;AACxF,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAU;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAqED;mFACmF;AACnF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AA0HD;;;;;;;;;;gCAUgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAaD,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAEpE;AAED;gGACgG;AAChG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAIjF;AA8JD;;8DAE8D;AAC9D,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAGtE;AAED,8FAA8F;AAC9F,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAE5E;AAED;;;;4BAI4B;AAC5B,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,MAA4C,GAAG;IACnG,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,gBAAgB,CAAC;IACpD,IAAI,EAAE,MAAM,MAAM,CAAC;CACpB,CAmBA"}
|
package/dist/schema-profile.js
CHANGED
|
@@ -40,11 +40,15 @@ export const SCHEMA_PROFILE = Object.freeze({
|
|
|
40
40
|
//
|
|
41
41
|
// CRASH. A 2048-node patterned-properties document was observed to RangeError in Ajv's codegen
|
|
42
42
|
// at ~186KB — inside `maxDocumentBytes` — which looked like a hard edge worth standing in front
|
|
43
|
-
// of. It is not an edge
|
|
44
|
-
//
|
|
45
|
-
// and
|
|
46
|
-
//
|
|
47
|
-
//
|
|
43
|
+
// of. It is not an edge — not because it is unstable (re-measured for #1551: the SAME 2062-
|
|
44
|
+
// property/187545-byte document RangeErrors 15/15 fresh processes at this profile's default
|
|
45
|
+
// stack, and the reported cold-then-warm-compiles pattern did not reproduce once) — but because
|
|
46
|
+
// the edge is a function of the STACK BUDGET, not the schema: it moves linearly with
|
|
47
|
+
// `--stack-size` (measured 256KB→~460, 8MB default→~2050, on the pin this profile ships;
|
|
48
|
+
// flattening ajv's codegen with `allErrors: true` moves the same edge to roughly 3.4x wider at
|
|
49
|
+
// any given stack budget, never removes it) and by a fraction of a property per extra caller
|
|
50
|
+
// frame burned before the compile call. A frozen node-count constant cannot express an edge that
|
|
51
|
+
// moves with the CALLER's stack depth, which is outside this module's control.
|
|
48
52
|
//
|
|
49
53
|
// AND THE VALUE WAS UNSAFE ON AN AXIS NOBODY MEASURED. Under `node --stack-size=256` a 512-node
|
|
50
54
|
// object RangeErrors, while 384 compiles — so the proposed `maxSchemaNodes: 512` did not hold
|
|
@@ -54,8 +58,10 @@ export const SCHEMA_PROFILE = Object.freeze({
|
|
|
54
58
|
// WHAT STANDS IN ITS PLACE is what was doing the work the whole time: `maxDocumentBytes` and
|
|
55
59
|
// `maxClosureBytes`, `maxDepth`, `maxRefChain`, `maxPatternChars`, the admitted-vocabulary
|
|
56
60
|
// refusal, and — for exactly the codegen overflow above — the compile-error catch in
|
|
57
|
-
// `compileWithinBudget`, which
|
|
58
|
-
//
|
|
61
|
+
// `compileWithinBudget`, which normalises a stack overflow to `contract-invalid` naming the
|
|
62
|
+
// COMPILER's generated-code shape and the property count that triggered it, never the caller's
|
|
63
|
+
// schema (#1551). That set refuses everything it refused before; removing an unfounded bound only
|
|
64
|
+
// LOOSENS, and
|
|
59
65
|
// loosening cannot break a contract that was already valid.
|
|
60
66
|
//
|
|
61
67
|
// BEFORE PROPOSING ONE AGAIN, run `implementations/manager/smoke/_probe-nodecount-rejected.ts`.
|
|
@@ -91,7 +97,31 @@ export const SCHEMA_PROFILE = Object.freeze({
|
|
|
91
97
|
*/
|
|
92
98
|
const AJV_PROFILE_OPTIONS = Object.freeze({
|
|
93
99
|
strict: false, // the wire accepts full 2020-12, not ajv's strict-mode dialect subset
|
|
94
|
-
|
|
100
|
+
// PINNED TRUE, not ajv's `false` default, for the flat code shape it produces (#1551).
|
|
101
|
+
// `allErrors: false` makes ajv nest one continuation `if` per property in the generated
|
|
102
|
+
// validator, so the compile of a wide object schema overflows the host call stack at a width
|
|
103
|
+
// set by the STACK BUDGET, not by any ceiling this profile enforces — every document this
|
|
104
|
+
// profile admits (bytes, depth, ref-chain, pattern length, vocabulary) can still fail to
|
|
105
|
+
// compile purely on shape. `allErrors: true` builds the same validations as a flat sequence
|
|
106
|
+
// instead, which does not remove the stack-bounded ceiling (ajv's codegen still recurses while
|
|
107
|
+
// it builds the code tree) but moves it about 3.4x wider at any given stack budget: measured on
|
|
108
|
+
// this pin, default 8MB stack SMALLEST_FAIL moved from 2055 properties to 6946, and
|
|
109
|
+
// `--stack-size=256` moved from 494 to 1769 (one host, Node 24; the ratio is the stable
|
|
110
|
+
// quantity, not the absolute counts — re-measure with a child process per candidate width, one
|
|
111
|
+
// `--stack-size` per row, per issue #1551's method).
|
|
112
|
+
//
|
|
113
|
+
// Safe to flip only because it changes NO VERDICT this profile's own checks depend on: ajv
|
|
114
|
+
// orders keyword/property evaluation identically regardless of `allErrors`, so `errors[0]` —
|
|
115
|
+
// the only field any caller-facing message reads (`endpoint-envelope.ts` firstErrorDetail,
|
|
116
|
+
// `endpoint-traits.ts` readSchema) — is byte-identical between the two settings for every
|
|
117
|
+
// schema/instance pair tried, and `packages/core/smoke/schema-profile.smoke.ts`'s full 67-check
|
|
118
|
+
// suite (every `refuses`/`ok` assertion, including the pattern safe-subset gate and the
|
|
119
|
+
// admitted-vocabulary walk) passes unchanged under either setting. Nothing on the wire ever
|
|
120
|
+
// reads ajv's full `errors` array, only its first entry, so `allErrors`'s extra collected
|
|
121
|
+
// errors are never observed by a caller. If a future change makes any of that no longer true —
|
|
122
|
+
// a caller starts reading `errors.length`, or a verdict diverges between the settings — this
|
|
123
|
+
// pin must be re-measured before it stays.
|
|
124
|
+
allErrors: true,
|
|
95
125
|
validateFormats: false,
|
|
96
126
|
loadSchema: undefined,
|
|
97
127
|
// PINNED, never inherited from Ajv's default: the safe-pattern analyzer models `/u`
|
|
@@ -401,6 +431,41 @@ function assertClosureProfile(bundle) {
|
|
|
401
431
|
throw new ContractInvalidError(`bundle carries ${extras.length} member(s) unreachable from the root (${extras.slice(0, 3).join(", ")}${extras.length > 3 ? ", …" : ""})`);
|
|
402
432
|
return contractDigest({ v: 1, root: digestOrInvalid(bundle.root, "root schema"), members: [...seen].sort() });
|
|
403
433
|
}
|
|
434
|
+
/** The size of the widest map-valued keyword (`properties`, `patternProperties`, `$defs`,
|
|
435
|
+
* `definitions`, `dependentSchemas`, `dependencies`) anywhere in one document — the shape that
|
|
436
|
+
* drives ajv's per-property codegen (SPEC §13.7). Used only to NAME a codegen overflow after it
|
|
437
|
+
* happens; every ceiling in {@link SCHEMA_PROFILE} has already admitted this document by the time
|
|
438
|
+
* anything calls this, so it never gates anything itself. */
|
|
439
|
+
function widestMapKeywordSize(doc, max = 0) {
|
|
440
|
+
if (doc === null || typeof doc !== "object" || Array.isArray(doc))
|
|
441
|
+
return max;
|
|
442
|
+
for (const [k, v] of Object.entries(doc)) {
|
|
443
|
+
if (SCHEMA_VALUED_MAP_KEYS.includes(k) && v && typeof v === "object" && !Array.isArray(v)) {
|
|
444
|
+
const size = Object.keys(v).length;
|
|
445
|
+
if (size > max)
|
|
446
|
+
max = size;
|
|
447
|
+
for (const sub of Object.values(v))
|
|
448
|
+
max = widestMapKeywordSize(sub, max);
|
|
449
|
+
}
|
|
450
|
+
else if (SCHEMA_VALUED_KEYS.includes(k)) {
|
|
451
|
+
max = widestMapKeywordSize(v, max);
|
|
452
|
+
}
|
|
453
|
+
else if (SCHEMA_VALUED_LIST_KEYS.includes(k) && Array.isArray(v)) {
|
|
454
|
+
for (const sub of v)
|
|
455
|
+
max = widestMapKeywordSize(sub, max);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
return max;
|
|
459
|
+
}
|
|
460
|
+
/** The widest map-valued keyword across the whole closure (root plus every bundle member) — the
|
|
461
|
+
* quantity {@link widestMapKeywordSize} measures, maximised over every document a compile call
|
|
462
|
+
* actually sees. */
|
|
463
|
+
function widestClosurePropertyCount(bundle) {
|
|
464
|
+
let max = widestMapKeywordSize(bundle.root);
|
|
465
|
+
for (const member of Object.values(bundle.members ?? {}))
|
|
466
|
+
max = widestMapKeywordSize(member, max);
|
|
467
|
+
return max;
|
|
468
|
+
}
|
|
404
469
|
function compileWithinBudget(bundle) {
|
|
405
470
|
// NOTHING HERE REFUSES A SCHEMA FOR BEING EXPENSIVE, and that is deliberate rather than
|
|
406
471
|
// overlooked. The timing below is an OBSERVATION and refuses nothing; the node ceiling that was
|
|
@@ -456,6 +521,20 @@ function compileWithinBudget(bundle) {
|
|
|
456
521
|
validate = ajv.compile(bundle.root);
|
|
457
522
|
}
|
|
458
523
|
catch (e) {
|
|
524
|
+
// A `RangeError` here is the compiler's own generated code overflowing the host's call
|
|
525
|
+
// stack (SPEC §13.7) — every ceiling above already admitted this document, so the schema is
|
|
526
|
+
// not what failed. Naming the caller's schema in that case (as the generic branch below does
|
|
527
|
+
// for every other compile failure) sends the caller to rewrite something that was never
|
|
528
|
+
// wrong. Named instead: the shape that overflowed (ajv's per-property codegen), and the width
|
|
529
|
+
// that did it (the widest `properties`/`patternProperties`/`$defs`/… map anywhere in the
|
|
530
|
+
// closure) — the two facts a caller needs to know this is not their schema's fault.
|
|
531
|
+
if (e instanceof RangeError) {
|
|
532
|
+
const width = widestClosurePropertyCount(bundle);
|
|
533
|
+
throw new ContractInvalidError(`schema does not compile under the 2020-12 profile: the generated validator's code shape overflowed `
|
|
534
|
+
+ `the call stack (${e.message}) compiling a ${width}-property object, which every profile `
|
|
535
|
+
+ `ceiling (document/closure bytes, depth, ref-chain, pattern length, admitted vocabulary) had already `
|
|
536
|
+
+ `admitted; this is the compiler's generated-code shape running out of stack, not a defect in the schema`);
|
|
537
|
+
}
|
|
459
538
|
throw new ContractInvalidError(`schema does not compile under the 2020-12 profile: ${e.message}`);
|
|
460
539
|
}
|
|
461
540
|
const cpu = process.cpuUsage(startedCpu);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-profile.js","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-profile.js","sourceRoot":"","sources":["../src/schema-profile.ts"],"names":[],"mappings":"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"}
|
package/dist/secret-store.d.ts
CHANGED
|
@@ -75,6 +75,45 @@ export declare function formatSecretStoreIdentity(id: SecretStoreIdentity): stri
|
|
|
75
75
|
* values, and mixed fs/injected shapes are refused rather than guessed.
|
|
76
76
|
*/
|
|
77
77
|
export declare function parseSecretStoreIdentity(raw: unknown): SecretStoreIdentity;
|
|
78
|
+
/**
|
|
79
|
+
* The delivery daemon's answer to the `reloadStoreIdentity` challenge: the store it reloads from,
|
|
80
|
+
* PLUS the binding that says whose answer this is.
|
|
81
|
+
*
|
|
82
|
+
* The binding is why this is not just a {@link SecretStoreIdentity}. The delivery-admin rail is
|
|
83
|
+
* QUEUE-GROUPED, so a request lands on whichever bound responder the broker picks. Every process
|
|
84
|
+
* holding a `delivery` credential for the space can serve it, while only ONE of them holds the
|
|
85
|
+
* delivery lease and therefore actually reloads the standing credentials. Taking the first reply
|
|
86
|
+
* and calling it "the daemon's store" answers a question nobody asked: it reports the store of AN
|
|
87
|
+
* answerer, and a manager then decides whether to remint based on a process that may reload
|
|
88
|
+
* nothing. Carrying the answerer's identity and its lease claim lets the caller require that the
|
|
89
|
+
* store it compares against belongs to the process that reloads (#1694).
|
|
90
|
+
*/
|
|
91
|
+
export interface DaemonStoreAnswer {
|
|
92
|
+
/** The store the answering process reloads standing credentials from. */
|
|
93
|
+
identity: SecretStoreIdentity;
|
|
94
|
+
/** The answering endpoint's wire identity, so the answer names a process rather than a rail. */
|
|
95
|
+
responder: string;
|
|
96
|
+
/** Did the answering process say it held this space's delivery lease at the moment it answered?
|
|
97
|
+
*
|
|
98
|
+
* THIS IS THE ANSWERER'S OWN CLAIM, NOT A VERIFIED FACT, and a caller that decides anything on
|
|
99
|
+
* it alone is trusting a boolean the answerer chose. `false` is the honest reading for a
|
|
100
|
+
* responder that does not own the shard, and it is useful exactly because an honest non-holder
|
|
101
|
+
* sends it. A responder that is not honest can send `true`. A caller requiring the answer to
|
|
102
|
+
* come from the process that reloads must verify the binding itself, by reading the lease row
|
|
103
|
+
* and comparing its holder against {@link DaemonStoreAnswer.responder}. */
|
|
104
|
+
holdsDeliveryLease: boolean;
|
|
105
|
+
}
|
|
106
|
+
/** Parse a {@link DaemonStoreAnswer} off the wire through the same closed-parser discipline as
|
|
107
|
+
* {@link parseSecretStoreIdentity}: a reply that cannot produce every field is a failure to
|
|
108
|
+
* determine, raised here, never a partially trusted answer assembled by the caller. CLOSED means
|
|
109
|
+
* closed in both directions: an unknown top-level key is refused rather than ignored, so a reply
|
|
110
|
+
* carrying a field this version does not know about is a failure to determine instead of an
|
|
111
|
+
* answer that was silently read as something narrower than it claimed to be.
|
|
112
|
+
*
|
|
113
|
+
* A daemon older than #1694 replies with a bare identity and no binding. That lands here as a
|
|
114
|
+
* parse failure, which is the intended reading: the caller cannot establish who answered, so it
|
|
115
|
+
* must refuse rather than fall back to the unbound comparison this type exists to replace. */
|
|
116
|
+
export declare function parseDaemonStoreAnswer(raw: unknown): DaemonStoreAnswer;
|
|
78
117
|
/**
|
|
79
118
|
* The notice a manager logs when its remint store and the daemon's reload source are not one
|
|
80
119
|
* authority. That manager is not the daemon-credential renewal owner: it serves the space and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-store.d.ts","sourceRoot":"","sources":["../src/secret-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;mEAI+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAExC,4DAA4D;IAC5D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9C;;;;0GAIsG;IACtG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;sEAIkE;IAClE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAK/F;AAMD,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAEzE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAoB1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAQ1G"}
|
|
1
|
+
{"version":3,"file":"secret-store.d.ts","sourceRoot":"","sources":["../src/secret-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;mEAI+D;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAExC,4DAA4D;IAC5D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9C;;;;0GAIsG;IACtG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;;;sEAIkE;IAClE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,yGAAyG;AACzG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAK/F;AAMD,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAEzE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAoB1E;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,gGAAgG;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;gFAO4E;IAC5E,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;+FAS+F;AAC/F,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAetE;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAQ1G"}
|
package/dist/secret-store.js
CHANGED
|
@@ -40,6 +40,30 @@ export function parseSecretStoreIdentity(raw) {
|
|
|
40
40
|
}
|
|
41
41
|
throw new Error('secret-store identity kind must be "fs" or "injected"');
|
|
42
42
|
}
|
|
43
|
+
/** Parse a {@link DaemonStoreAnswer} off the wire through the same closed-parser discipline as
|
|
44
|
+
* {@link parseSecretStoreIdentity}: a reply that cannot produce every field is a failure to
|
|
45
|
+
* determine, raised here, never a partially trusted answer assembled by the caller. CLOSED means
|
|
46
|
+
* closed in both directions: an unknown top-level key is refused rather than ignored, so a reply
|
|
47
|
+
* carrying a field this version does not know about is a failure to determine instead of an
|
|
48
|
+
* answer that was silently read as something narrower than it claimed to be.
|
|
49
|
+
*
|
|
50
|
+
* A daemon older than #1694 replies with a bare identity and no binding. That lands here as a
|
|
51
|
+
* parse failure, which is the intended reading: the caller cannot establish who answered, so it
|
|
52
|
+
* must refuse rather than fall back to the unbound comparison this type exists to replace. */
|
|
53
|
+
export function parseDaemonStoreAnswer(raw) {
|
|
54
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
55
|
+
throw new Error("delivery-daemon store answer must be an object");
|
|
56
|
+
const o = raw;
|
|
57
|
+
const ADMITTED = ["identity", "responder", "holdsDeliveryLease"];
|
|
58
|
+
const unknown = Object.keys(o).filter((k) => !ADMITTED.includes(k));
|
|
59
|
+
if (unknown.length)
|
|
60
|
+
throw new Error(`delivery-daemon store answer admits only {identity, responder, holdsDeliveryLease} (unknown: ${unknown.sort().join(", ")})`);
|
|
61
|
+
if (typeof o.responder !== "string" || !o.responder.trim())
|
|
62
|
+
throw new Error("delivery-daemon store answer requires a non-blank responder identity");
|
|
63
|
+
if (typeof o.holdsDeliveryLease !== "boolean")
|
|
64
|
+
throw new Error("delivery-daemon store answer requires holdsDeliveryLease as a boolean (an absent claim is not a false one)");
|
|
65
|
+
return { identity: parseSecretStoreIdentity(o.identity), responder: o.responder, holdsDeliveryLease: o.holdsDeliveryLease };
|
|
66
|
+
}
|
|
43
67
|
/**
|
|
44
68
|
* The notice a manager logs when its remint store and the daemon's reload source are not one
|
|
45
69
|
* authority. That manager is not the daemon-credential renewal owner: it serves the space and
|
package/dist/secret-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-store.js","sourceRoot":"","sources":["../src/secret-store.ts"],"names":[],"mappings":"AAqEA,yGAAyG;AACzG,MAAM,UAAU,uBAAuB,CAAC,CAAsB,EAAE,CAAsB;IACpF,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/F,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC;IACzF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,yBAAyB,CAAC,EAAuB;IAC/D,OAAO,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,YAAY,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE;YAC1D,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAC3E,CAAC;
|
|
1
|
+
{"version":3,"file":"secret-store.js","sourceRoot":"","sources":["../src/secret-store.ts"],"names":[],"mappings":"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"}
|