@cotal-ai/core 0.17.0 → 0.19.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/acls.d.ts +0 -7
- package/dist/acls.d.ts.map +1 -1
- package/dist/acls.js +10 -7
- package/dist/acls.js.map +1 -1
- package/dist/agui-kind.d.ts +71 -0
- package/dist/agui-kind.d.ts.map +1 -0
- package/dist/agui-kind.js +95 -0
- package/dist/agui-kind.js.map +1 -0
- package/dist/endpoint-action.d.ts +3 -3
- package/dist/endpoint-action.js +4 -4
- package/dist/endpoint-action.js.map +1 -1
- package/dist/endpoint-binding.d.ts +48 -5
- package/dist/endpoint-binding.d.ts.map +1 -1
- package/dist/endpoint-binding.js +82 -6
- package/dist/endpoint-binding.js.map +1 -1
- package/dist/endpoint-cluster.d.ts +20 -0
- package/dist/endpoint-cluster.d.ts.map +1 -1
- package/dist/endpoint-cluster.js +47 -0
- package/dist/endpoint-cluster.js.map +1 -1
- package/dist/endpoint-contract-store.d.ts +6 -0
- package/dist/endpoint-contract-store.d.ts.map +1 -1
- package/dist/endpoint-contract-store.js +21 -2
- package/dist/endpoint-contract-store.js.map +1 -1
- package/dist/endpoint-effects.d.ts +73 -0
- package/dist/endpoint-effects.d.ts.map +1 -0
- package/dist/endpoint-effects.js +46 -0
- package/dist/endpoint-effects.js.map +1 -0
- package/dist/endpoint-envelope.d.ts +32 -1
- package/dist/endpoint-envelope.d.ts.map +1 -1
- package/dist/endpoint-envelope.js +56 -2
- package/dist/endpoint-envelope.js.map +1 -1
- package/dist/endpoint-epname.d.ts +62 -0
- package/dist/endpoint-epname.d.ts.map +1 -0
- package/dist/endpoint-epname.js +273 -0
- package/dist/endpoint-epname.js.map +1 -0
- package/dist/endpoint-error.d.ts +155 -1
- package/dist/endpoint-error.d.ts.map +1 -1
- package/dist/endpoint-error.js +114 -2
- package/dist/endpoint-error.js.map +1 -1
- package/dist/endpoint-goaleff.d.ts +56 -0
- package/dist/endpoint-goaleff.d.ts.map +1 -0
- package/dist/endpoint-goaleff.js +212 -0
- package/dist/endpoint-goaleff.js.map +1 -0
- package/dist/endpoint-grants.d.ts +46 -0
- package/dist/endpoint-grants.d.ts.map +1 -1
- package/dist/endpoint-grants.js +68 -0
- package/dist/endpoint-grants.js.map +1 -1
- package/dist/endpoint-invoke.d.ts +1 -1
- package/dist/endpoint-invoke.d.ts.map +1 -1
- package/dist/endpoint-invoke.js +162 -27
- package/dist/endpoint-invoke.js.map +1 -1
- package/dist/endpoint-journal.d.ts +103 -0
- package/dist/endpoint-journal.d.ts.map +1 -1
- package/dist/endpoint-journal.js +290 -0
- package/dist/endpoint-journal.js.map +1 -1
- package/dist/endpoint-records.d.ts.map +1 -1
- package/dist/endpoint-records.js +37 -0
- package/dist/endpoint-records.js.map +1 -1
- package/dist/endpoint-serve.d.ts.map +1 -1
- package/dist/endpoint-serve.js +45 -1
- package/dist/endpoint-serve.js.map +1 -1
- package/dist/endpoint-subjects.d.ts +10 -0
- package/dist/endpoint-subjects.d.ts.map +1 -1
- package/dist/endpoint-subjects.js +10 -0
- package/dist/endpoint-subjects.js.map +1 -1
- package/dist/endpoint-verbs.d.ts +12 -3
- package/dist/endpoint-verbs.d.ts.map +1 -1
- package/dist/endpoint-verbs.js +113 -19
- package/dist/endpoint-verbs.js.map +1 -1
- package/dist/endpoint.d.ts +170 -6
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +472 -37
- package/dist/endpoint.js.map +1 -1
- package/dist/event-channel.d.ts +107 -0
- package/dist/event-channel.d.ts.map +1 -0
- package/dist/event-channel.js +139 -0
- package/dist/event-channel.js.map +1 -0
- package/dist/evict.d.ts +47 -0
- package/dist/evict.d.ts.map +1 -1
- package/dist/evict.js +191 -59
- package/dist/evict.js.map +1 -1
- package/dist/identity.d.ts +15 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +34 -0
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/membership-feed.d.ts.map +1 -1
- package/dist/membership-feed.js +35 -12
- package/dist/membership-feed.js.map +1 -1
- package/dist/parts.d.ts +29 -5
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +46 -3
- package/dist/parts.js.map +1 -1
- package/dist/provision.d.ts +19 -7
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +75 -14
- package/dist/provision.js.map +1 -1
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +38 -0
- package/dist/resolve.js.map +1 -1
- package/dist/streams.d.ts +142 -3
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +192 -17
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +49 -15
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +130 -15
- package/dist/subjects.js.map +1 -1
- package/package.json +5 -2
package/dist/endpoint-verbs.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { randomBytes } from "node:crypto";
|
|
16
16
|
import { spacePrefix } from "./subjects.js";
|
|
17
17
|
import { epRequestSubject, parseEpSubject, callerTokens, assertLifecycleToken, assertBoundedOwner, } from "./endpoint-subjects.js";
|
|
18
|
-
import { EpEnvelopeError, parseEndpointReply, parseEndpointEvent, assertArgsValid, assertOutputValid, } from "./endpoint-envelope.js";
|
|
18
|
+
import { EpEnvelopeError, EP_UNBOUND_RESPONDER, EP_UNANSWERED, EP_REGISTRY_READ_FAILED, EP_BIND_REFUSED, registryReadFailed, bindRefusalMarked, parseEndpointReply, parseEndpointEvent, assertArgsValid, assertOutputValid, } from "./endpoint-envelope.js";
|
|
19
19
|
import { freezeExpectedSet, registrationReconciler, serviceEpochReader } from "./endpoint-service.js";
|
|
20
20
|
const nonce = () => randomBytes(24).toString("base64url"); // 32 tokens of [A-Za-z0-9_-], 192 bits
|
|
21
21
|
function subjectTarget(t) {
|
|
@@ -40,6 +40,17 @@ function buildRequest(space, route, op, verb) {
|
|
|
40
40
|
// same budget the responder runs, so a request this boundary admits pins digests the
|
|
41
41
|
// responder can honor or reject, never digests detached from the payload.
|
|
42
42
|
assertArgsValid(op.contract.input.validate, op.args);
|
|
43
|
+
// The responder refuses these too (§13.3), but a caller that would emit an unservable request
|
|
44
|
+
// should not have to learn it from a round trip: `describe` is what produces a bind, and a
|
|
45
|
+
// scatter addresses every incarnation, so neither can carry one.
|
|
46
|
+
if (op.bind !== undefined) {
|
|
47
|
+
if (op.command === "describe")
|
|
48
|
+
throw new EpEnvelopeError("bad-request", "describe carries no bind: it is the bootstrap that produces one (SPEC 13.3)");
|
|
49
|
+
if (route.mode === "all")
|
|
50
|
+
throw new EpEnvelopeError("bad-request", "a scatter addresses every incarnation; a bind would make every member but one refuse (SPEC 13.5)");
|
|
51
|
+
if (route.mode === "inst" && op.bind.instanceId !== route.instanceId)
|
|
52
|
+
throw new EpEnvelopeError("bad-request", `bind.instanceId "${op.bind.instanceId}" contradicts the inst-rail route's instance "${route.instanceId}" (SPEC 13.2)`);
|
|
53
|
+
}
|
|
43
54
|
const n = nonce();
|
|
44
55
|
const subject = epRequestSubject(space, {
|
|
45
56
|
route, endpoint: op.endpoint, command: op.command,
|
|
@@ -60,6 +71,7 @@ function buildRequest(space, route, op, verb) {
|
|
|
60
71
|
replyExpected: verb.replyExpected,
|
|
61
72
|
...(op.goalId !== undefined ? { goalId: op.goalId } : {}),
|
|
62
73
|
...(op.target && op.target.mode !== "self" ? { target: bodyTarget(op.target) } : {}),
|
|
74
|
+
...(op.bind !== undefined ? { bind: { instanceId: assertLifecycleToken(op.bind.instanceId, "bind instanceId"), epoch: op.bind.epoch } } : {}),
|
|
63
75
|
...(op.args !== undefined ? { args: op.args } : {}),
|
|
64
76
|
from: { id: `${op.caller.owner}.${op.caller.actor}`, name: op.name ?? op.caller.actor },
|
|
65
77
|
...(verb.deadlineMs !== undefined ? { deadlineMs: verb.deadlineMs } : {}),
|
|
@@ -89,12 +101,12 @@ function isNoRespondersMsg(msg) {
|
|
|
89
101
|
}
|
|
90
102
|
/** Race a caller-supplied read against a bounded budget so a never-settling hook cannot exceed the
|
|
91
103
|
* operation deadline (SPEC 13.5: deadline mandatory). Clears its timer on either outcome. */
|
|
92
|
-
async function raceBounded(read, ms, what) {
|
|
104
|
+
async function raceBounded(read, ms, what, details) {
|
|
93
105
|
let t;
|
|
94
106
|
try {
|
|
95
107
|
return await Promise.race([
|
|
96
108
|
(async () => read())(),
|
|
97
|
-
new Promise((_, reject) => { t = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `${what} did not settle within the ${ms}ms budget (SPEC 13.5)
|
|
109
|
+
new Promise((_, reject) => { t = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `${what} did not settle within the ${ms}ms budget (SPEC 13.5)`, details)), ms); }),
|
|
98
110
|
]);
|
|
99
111
|
}
|
|
100
112
|
finally {
|
|
@@ -102,16 +114,55 @@ async function raceBounded(read, ms, what) {
|
|
|
102
114
|
clearTimeout(t);
|
|
103
115
|
}
|
|
104
116
|
}
|
|
117
|
+
/** The {@link EP_UNANSWERED} detail for `op`: set ONLY where this module observed that nothing
|
|
118
|
+
* answered (the broker's no-responders control frame, or the reply deadline elapsing). */
|
|
119
|
+
const unansweredDetail = (op) => ({ kind: EP_UNANSWERED, endpoint: op.endpoint, command: op.command });
|
|
120
|
+
/** The {@link EP_REGISTRY_READ_FAILED} detail for `op`: set where the scatter's OWN registry read
|
|
121
|
+
* (freeze or reconcile) failed, so the failure is never read as the responders' silence. */
|
|
122
|
+
const registryReadDetail = (op) => ({ kind: EP_REGISTRY_READ_FAILED, endpoint: op.endpoint, command: op.command });
|
|
105
123
|
/** The caller's per-request reply subscription: its own rail narrowed to exactly this request's
|
|
106
124
|
* nonce (contained in the §13.9 reply-read grant), so concurrent calls never see each other. */
|
|
107
125
|
function replySubjectFor(space, caller, n) {
|
|
108
126
|
return `${spacePrefix(space)}.ep.reply.*.*.*.${callerTokens(caller).join(".")}.${n}`;
|
|
109
127
|
}
|
|
128
|
+
/** The stale-epoch refusal, worded by DIRECTION and by what the caller's reference epoch IS, and
|
|
129
|
+
* carrying the {@link EP_UNBOUND_RESPONDER} marker. Both rails reach it after an ATTRIBUTED reply:
|
|
130
|
+
* the responder received the request and answered it, at an epoch other than the caller's reference.
|
|
131
|
+
* The reference has two meanings, and the message must not lend one caller's meaning to the other:
|
|
132
|
+
* - `bind`: the epoch this caller's own resolve bound (the `inst` rail's pinned epoch, or the
|
|
133
|
+
* describe-bound default on `one`). `answered > held` means a SUCCESSOR of the bound incarnation
|
|
134
|
+
* answered (a same-root restart, or a supersession): the caller's handle is the stale side, and
|
|
135
|
+
* re-resolving adopts the successor. `answered < held` means a superseded incarnation still
|
|
136
|
+
* connected answered, and its reply is what is rejected.
|
|
137
|
+
* - `registry`: a currency read of the responder's CURRENT registered epoch (epCall's documented
|
|
138
|
+
* `currentEpoch` contract, {@link serviceEpochReader}). Nothing of the caller's is stale here:
|
|
139
|
+
* `answered > current` means the read lags a restart, `answered < current` a superseded
|
|
140
|
+
* incarnation still answering.
|
|
141
|
+
* Either way the marker says what the code alone cannot: a retry is a second attempt. The kind is
|
|
142
|
+
* explicit rather than inferred because a single wording names the wrong stale side on one of the
|
|
143
|
+
* two paths, whichever meaning it picks. */
|
|
144
|
+
function staleEpochRefusal(op, responder, held, reference, rail) {
|
|
145
|
+
const who = `the ${op.endpoint} instance ${responder.instanceId}`;
|
|
146
|
+
const ahead = responder.epoch > held;
|
|
147
|
+
const situation = reference === "bind"
|
|
148
|
+
? (ahead
|
|
149
|
+
? `${who} answered at epoch ${responder.epoch}, but this handle resolved against it at epoch ${held}: a SUCCESSOR of the bound incarnation answered (a restart or supersession), so the handle is the stale side; re-resolve to adopt it`
|
|
150
|
+
: `${who} answered at epoch ${responder.epoch}, but this handle resolved against it at epoch ${held}: a SUPERSEDED incarnation still connected answered, and its reply is rejected`)
|
|
151
|
+
: (ahead
|
|
152
|
+
? `${who} answered at epoch ${responder.epoch}, but a currency read of its registered epoch returned ${held}: the responder is ahead of the registry read (the read lags a restart), so its reply is rejected until the read catches up; nothing of this caller's is stale`
|
|
153
|
+
: `${who} answered at epoch ${responder.epoch}, but a currency read of its registered epoch returned ${held}: a SUPERSEDED incarnation still connected answered, and its reply is rejected`);
|
|
154
|
+
const detail = {
|
|
155
|
+
kind: EP_UNBOUND_RESPONDER, endpoint: op.endpoint, command: op.command, answeredBy: responder.instanceId,
|
|
156
|
+
...(reference === "bind" ? { boundTo: responder.instanceId } : {}),
|
|
157
|
+
answeredEpoch: responder.epoch, heldEpoch: held, reference, pinned: rail === "inst",
|
|
158
|
+
};
|
|
159
|
+
return new EpEnvelopeError("expired", `${situation}. THIS SAYS NOTHING ABOUT WHETHER THE COMMAND RAN: ${responder.instanceId} received the request and answered it, so if "${op.command}" mutates, that effect may already have landed; verify the outcome ('ps'/'inspect'/roster) before re-issuing (SPEC 13.2, the stale-reply rejection rule)`, [detail]);
|
|
160
|
+
}
|
|
110
161
|
function parseAttributedReply(space, subject, data, requestId, op, expect) {
|
|
111
162
|
const parsed = parseEpSubject(subject);
|
|
112
163
|
if (!parsed || parsed.plane !== "reply")
|
|
113
164
|
throw new EpEnvelopeError("internal", `a message on the caller's reply rail does not parse as a reply subject: ${subject}`);
|
|
114
|
-
// §13.2
|
|
165
|
+
// SPEC §13.2: ACCEPTANCE binds the subject-borne attribution to the INVOKED identity.
|
|
115
166
|
// Reading the endpoint/instance/epoch off the subject is not the same as checking them against the
|
|
116
167
|
// invocation: a truthfully-attributed reply from a DIFFERENT endpoint (or a stale/other instance)
|
|
117
168
|
// is not the requested responder, and nonce possession is addressing, not authorization. A stale
|
|
@@ -121,7 +172,7 @@ function parseAttributedReply(space, subject, data, requestId, op, expect) {
|
|
|
121
172
|
if (expect?.instanceId !== undefined && parsed.instanceId !== expect.instanceId)
|
|
122
173
|
throw new EpEnvelopeError("internal", `reply instance "${parsed.instanceId}" is not the addressed instance "${expect.instanceId}" (SPEC 13.2)`);
|
|
123
174
|
if (expect?.epoch !== undefined && parsed.epoch !== expect.epoch)
|
|
124
|
-
throw
|
|
175
|
+
throw staleEpochRefusal(op, { instanceId: parsed.instanceId, epoch: parsed.epoch }, expect.epoch, "bind", "inst");
|
|
125
176
|
// §13.3: an unparseable body is THIS boundary's own structured refusal — the documented catalog
|
|
126
177
|
// (`internal`) holds; a raw SyntaxError must never escape the verb (the watch path already wraps
|
|
127
178
|
// its decode the same way).
|
|
@@ -146,20 +197,24 @@ function parseAttributedReply(space, subject, data, requestId, op, expect) {
|
|
|
146
197
|
* Call one command and await its reply within `deadlineMs`: on the `one` (queue-group anycast) or
|
|
147
198
|
* `inst` (stable incarnation) rail with `replyExpected: true`, subscribe the caller's own
|
|
148
199
|
* nonce-scoped reply subject BEFORE publishing, and resolve the first attributed reply — BOUND to
|
|
149
|
-
* the invoked identity (§13.2
|
|
200
|
+
* the invoked identity (§13.2, the stale-reply rejection rule: "callers reject" stale-process replies), on BOTH rails:
|
|
150
201
|
* - `inst` pins the addressed `(instanceId, epoch)` incarnation up front; a stale-epoch reply is
|
|
151
202
|
* `expired` and a wrong-instance reply `internal`.
|
|
152
203
|
* - `one` cannot pin an instance up front (the queue picks the responder), so the caller MUST supply
|
|
153
204
|
* `currentEpoch(instanceId)`: after the reply lands, the answering incarnation's epoch is checked
|
|
154
205
|
* against its current registry epoch, and a superseded-but-still-connected queue member's reply is
|
|
155
206
|
* `expired`. The queue winner is NOT implicitly current — that is a check, not an assumption.
|
|
207
|
+
* `currencyReference` says what that hook returns, for the refusal's wording and marker: the
|
|
208
|
+
* documented `registry` read (default), or `bind` when a caller supplies its own resolve's epoch
|
|
209
|
+
* instead (the describe-bound default in {@link invokeCommand}), where a responder ahead of it is
|
|
210
|
+
* a successor and the caller's handle is the stale side.
|
|
156
211
|
*
|
|
157
212
|
* Application-level failure is NOT a throw: the resolved `reply` carries `ok: false` with the
|
|
158
213
|
* responder's structured error (§13.3). This boundary throws only for its own refusals: invalid args
|
|
159
214
|
* `bad-request`; an unparseable/mis-echoed/mis-attributed reply `internal` (a raw decode error never
|
|
160
215
|
* escapes); a throwing `currentEpoch` hook `internal` and a garbled (non-integer/negative) currency
|
|
161
216
|
* value `failed-precondition` (the read's own failure, never mislabeled staleness); a stale reply `expired`;
|
|
162
|
-
* NO responder `unavailable` (SPEC 13.5
|
|
217
|
+
* NO responder `unavailable` (SPEC 13.5, the broker no-responders answer — the broker's no-responders 503 lands on a reply-to that
|
|
163
218
|
* sits on THIS caller's own rail, so a manual, fully-disposed probe distinguishes it from a slow
|
|
164
219
|
* responder without leaving a lingering request); a failed reply subscription `unavailable`; the
|
|
165
220
|
* elapsed budget `deadline-exceeded`. Every subscription and timer is released in the `finally`.
|
|
@@ -167,7 +222,7 @@ function parseAttributedReply(space, subject, data, requestId, op, expect) {
|
|
|
167
222
|
export async function epCall(nc, space, route, op, opts) {
|
|
168
223
|
const deadlineMs = assertDeadline(opts.deadlineMs);
|
|
169
224
|
if (route.mode === "one" && opts.currentEpoch === undefined)
|
|
170
|
-
throw new EpEnvelopeError("bad-request", "epCall on the `one` rail requires opts.currentEpoch: the queue winner is not implicitly current, and a superseded-but-connected member's reply must be rejected (SPEC 13.2
|
|
225
|
+
throw new EpEnvelopeError("bad-request", "epCall on the `one` rail requires opts.currentEpoch: the queue winner is not implicitly current, and a superseded-but-connected member's reply must be rejected (SPEC 13.2, the stale-reply rejection rule)");
|
|
171
226
|
const req = buildRequest(space, route, op, { replyExpected: true, deadlineMs });
|
|
172
227
|
const expect = route.mode === "inst" ? { instanceId: route.instanceId, epoch: route.epoch } : undefined;
|
|
173
228
|
// A no-responders reply-to that lands on THIS caller's OWN rail (within its §13.9 read grant, no
|
|
@@ -194,7 +249,7 @@ export async function epCall(nc, space, route, op, opts) {
|
|
|
194
249
|
// the broker-control path.
|
|
195
250
|
if (msg.subject === noRespReplyTo) {
|
|
196
251
|
if (isNoRespondersMsg(msg)) {
|
|
197
|
-
reject(new EpEnvelopeError("unavailable", `no responder for ${op.endpoint}.${op.command} (SPEC 13.5)
|
|
252
|
+
reject(new EpEnvelopeError("unavailable", `no responder for ${op.endpoint}.${op.command} (SPEC 13.5)`, [unansweredDetail(op)]));
|
|
198
253
|
return;
|
|
199
254
|
}
|
|
200
255
|
reject(new EpEnvelopeError("internal", `a non-503 message reached the reserved no-responders sentinel for ${op.endpoint}.${op.command}; nothing but the broker control frame is addressable there`));
|
|
@@ -205,11 +260,46 @@ export async function epCall(nc, space, route, op, opts) {
|
|
|
205
260
|
});
|
|
206
261
|
});
|
|
207
262
|
nc.publish(req.subject, req.body, { reply: noRespReplyTo });
|
|
208
|
-
const timeout = new Promise((_, reject) => { timer = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `no reply to ${op.endpoint}.${op.command} within the ${deadlineMs}ms budget (SPEC 13.5)
|
|
263
|
+
const timeout = new Promise((_, reject) => { timer = setTimeout(() => reject(new EpEnvelopeError("deadline-exceeded", `no reply to ${op.endpoint}.${op.command} within the ${deadlineMs}ms budget (SPEC 13.5)`, [unansweredDetail(op)])), deadlineMs); });
|
|
209
264
|
const msg = await Promise.race([outcome, timeout]);
|
|
210
265
|
const attributed = parseAttributedReply(space, msg.subject, msg.data, req.requestId, op, expect);
|
|
266
|
+
// Taken BEFORE the currency check below, because a responder that fenced on the bind settled
|
|
267
|
+
// the same question better: it knows it did not run the command, where the check can only
|
|
268
|
+
// observe that the answer came from elsewhere. Returning the refusal keeps it an ordinary
|
|
269
|
+
// application-level failure (§13.5) that tells the caller a retry is safe, instead of a throw
|
|
270
|
+
// that says nothing about whether the command ran. Cross-checked against the SUBJECT first: a
|
|
271
|
+
// reply attributed to the very incarnation the caller bound cannot coherently claim it is not
|
|
272
|
+
// that incarnation (§13.3).
|
|
273
|
+
// Gated on the marker's PRESENCE, not on the outcome. Whether the caller may act on this
|
|
274
|
+
// refusal is a separate question, settled downstream by `replyRefusedBeforeEffect`; whether the
|
|
275
|
+
// reply is coherent is settled here, and a reply that omits the outcome is no less obliged to
|
|
276
|
+
// agree with its own attribution. Gating both on the same predicate let a refusal buy its way
|
|
277
|
+
// out of the checks by leaving a field off.
|
|
278
|
+
if (attributed.reply.ok === false && bindRefusalMarked(attributed.reply.error)) {
|
|
279
|
+
if (op.bind === undefined)
|
|
280
|
+
throw new EpEnvelopeError("internal", `${op.endpoint}.${op.command} replied with a bind refusal to a request that carried no bind`);
|
|
281
|
+
const r = attributed.responder;
|
|
282
|
+
if (r.instanceId === op.bind.instanceId && r.epoch === op.bind.epoch)
|
|
283
|
+
throw new EpEnvelopeError("internal", `${op.endpoint} instance ${r.instanceId} refused ${op.command} as the wrong incarnation, but the reply subject attributes it to exactly the bound one (${op.bind.instanceId} epoch ${op.bind.epoch}); the body does not get to contradict its own attribution (SPEC 13.3)`);
|
|
284
|
+
// AND THE REFUSAL MUST BE AN ANSWER TO *THIS* REQUEST, FROM *THIS* RESPONDER. THREE CHECKS ARE
|
|
285
|
+
// JOINTLY REQUIRED here — the subject check above, plus `boundTo` and `servedBy` below — and
|
|
286
|
+
// removing any one of them accepts a "did not run" the caller cannot derive. A caller acts on
|
|
287
|
+
// this marker by re-issuing a command it would otherwise never repeat, so it is checked rather
|
|
288
|
+
// than believed: a fence computes it from the request's own bind against its own identity, so
|
|
289
|
+
// both halves are DERIVABLE. A `boundTo` that is not the block this request carried was not
|
|
290
|
+
// computed from this request; a `servedBy` disagreeing with the reply subject is a body
|
|
291
|
+
// contradicting its own attribution. Both are `internal`, not a retry.
|
|
292
|
+
const refusal = (attributed.reply.error?.details ?? []).find((d) => d.kind === EP_BIND_REFUSED);
|
|
293
|
+
if (refusal === undefined)
|
|
294
|
+
throw new EpEnvelopeError("internal", `${op.endpoint}.${op.command} came back marked ${EP_BIND_REFUSED} with no such detail to derive it from (SPEC 13.3)`);
|
|
295
|
+
if (refusal.boundTo.instanceId !== op.bind.instanceId || refusal.boundTo.epoch !== op.bind.epoch)
|
|
296
|
+
throw new EpEnvelopeError("internal", `${op.endpoint} refused ${op.command} against bind ${refusal.boundTo.instanceId} epoch ${refusal.boundTo.epoch}, but this request carried ${op.bind.instanceId} epoch ${op.bind.epoch}; a refusal computed from another request proves nothing about this one (SPEC 13.3)`);
|
|
297
|
+
if (refusal.servedBy.instanceId !== r.instanceId || refusal.servedBy.epoch !== r.epoch)
|
|
298
|
+
throw new EpEnvelopeError("internal", `${op.endpoint} refused ${op.command} claiming to be served by ${refusal.servedBy.instanceId} epoch ${refusal.servedBy.epoch}, but the reply subject attributes it to ${r.instanceId} epoch ${r.epoch}; the body does not get to contradict its own attribution (SPEC 13.3)`);
|
|
299
|
+
return attributed;
|
|
300
|
+
}
|
|
211
301
|
if (route.mode === "one") {
|
|
212
|
-
// §13.2
|
|
302
|
+
// §13.2, the stale-reply rejection rule currency for the queue winner, bounded by the REMAINING budget so the whole
|
|
213
303
|
// call stays within ONE `deadlineMs` (deliberately NOT a second dedicated budget like scatter's
|
|
214
304
|
// `reconcileDeadlineMs`: a call's reply usually arrives well before T, leaving room to verify,
|
|
215
305
|
// whereas scatter's gather deterministically eats its whole deadline). The consequence is a
|
|
@@ -235,7 +325,7 @@ export async function epCall(nc, space, route, op, opts) {
|
|
|
235
325
|
if (!Number.isSafeInteger(cur) || cur < 0)
|
|
236
326
|
throw new EpEnvelopeError("failed-precondition", `the \`one\` currency read returned a non-integer/negative epoch ${String(cur)}; a garbled currency read is refused as the read's own failure, never reported as responder staleness (SPEC 13.2)`);
|
|
237
327
|
if (attributed.responder.epoch !== cur)
|
|
238
|
-
throw
|
|
328
|
+
throw staleEpochRefusal(op, attributed.responder, cur, opts.currencyReference ?? "registry", "one");
|
|
239
329
|
}
|
|
240
330
|
return attributed;
|
|
241
331
|
}
|
|
@@ -473,19 +563,23 @@ export async function epScatter(nc, space, op, opts) {
|
|
|
473
563
|
}
|
|
474
564
|
});
|
|
475
565
|
// Reconcile shortly after T, bounded by its OWN explicit budget (not a second full `deadlineMs`):
|
|
476
|
-
// a never-settling read is `unavailable`, an unreadable registry `failed-precondition`.
|
|
566
|
+
// a never-settling read is `unavailable`, an unreadable registry `failed-precondition`. Only the
|
|
567
|
+
// bound's own MARKED refusal passes through as is: the hook is untrusted caller-supplied code,
|
|
568
|
+
// so whatever it throws is the read failing and is normalized and marked here. Keying the
|
|
569
|
+
// pass-through on the code instead would let a hook's bare `unavailable` escape unmarked, and an
|
|
570
|
+
// unmarked refusal is what a consumer cannot classify.
|
|
477
571
|
let current;
|
|
478
572
|
let reconcileTimer;
|
|
479
573
|
try {
|
|
480
574
|
current = await Promise.race([
|
|
481
575
|
opts.reconcileRegistration(),
|
|
482
|
-
new Promise((_, reject) => { reconcileTimer = setTimeout(() => reject(new EpEnvelopeError("unavailable", `the scatter registration reconcile did not settle within its ${reconcileDeadlineMs}ms bound (SPEC 13.5: deadline mandatory, never a hung scatter)
|
|
576
|
+
new Promise((_, reject) => { reconcileTimer = setTimeout(() => reject(new EpEnvelopeError("unavailable", `the scatter registration reconcile did not settle within its ${reconcileDeadlineMs}ms bound (SPEC 13.5: deadline mandatory, never a hung scatter)`, [registryReadDetail(op)])), reconcileDeadlineMs); }),
|
|
483
577
|
]);
|
|
484
578
|
}
|
|
485
579
|
catch (e) {
|
|
486
|
-
if (e
|
|
487
|
-
throw e; // the reconcile bound
|
|
488
|
-
throw new EpEnvelopeError("failed-precondition", `the scatter registration reconcile is unreadable; an unreadable registry is failed-precondition, never an empty success (SPEC 13.5): ${failMsg(e)}
|
|
580
|
+
if (registryReadFailed(e))
|
|
581
|
+
throw e; // the reconcile bound above
|
|
582
|
+
throw new EpEnvelopeError("failed-precondition", `the scatter registration reconcile is unreadable; an unreadable registry is failed-precondition, never an empty success (SPEC 13.5): ${failMsg(e)}`, [registryReadDetail(op)]);
|
|
489
583
|
}
|
|
490
584
|
finally {
|
|
491
585
|
if (reconcileTimer !== undefined)
|
|
@@ -556,10 +650,10 @@ export async function epScatterService(nc, jsm, space, op, opts) {
|
|
|
556
650
|
// its budget, and the gather runs on the REMAINING budget.
|
|
557
651
|
const deadlineMs = assertDeadline(opts.deadlineMs);
|
|
558
652
|
const started = Date.now();
|
|
559
|
-
const expected = await raceBounded(() => freezeExpectedSet(jsm, space, op.endpoint), deadlineMs, `the scatter freeze for ${op.endpoint}
|
|
653
|
+
const expected = await raceBounded(() => freezeExpectedSet(jsm, space, op.endpoint), deadlineMs, `the scatter freeze for ${op.endpoint}`, [registryReadDetail(op)]);
|
|
560
654
|
const remaining = deadlineMs - (Date.now() - started);
|
|
561
655
|
if (remaining <= 0)
|
|
562
|
-
throw new EpEnvelopeError("deadline-exceeded", `the scatter freeze for ${op.endpoint} consumed the whole ${deadlineMs}ms budget; no time left to gather (SPEC 13.5)
|
|
656
|
+
throw new EpEnvelopeError("deadline-exceeded", `the scatter freeze for ${op.endpoint} consumed the whole ${deadlineMs}ms budget; no time left to gather (SPEC 13.5)`, [registryReadDetail(op)]);
|
|
563
657
|
return epScatter(nc, space, op, { ...opts, deadlineMs: remaining, expected, reconcileRegistration: registrationReconciler(jsm, space, op.endpoint, expected) });
|
|
564
658
|
}
|
|
565
659
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint-verbs.js","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoint-verbs.js","sourceRoot":"","sources":["../src/endpoint-verbs.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoint.d.ts
CHANGED
|
@@ -249,17 +249,33 @@ export declare class CotalEndpoint extends EventEmitter {
|
|
|
249
249
|
private readonly owner;
|
|
250
250
|
/** This endpoint's actor token (principal half 2) — the connection id in the dev default. */
|
|
251
251
|
private readonly actor;
|
|
252
|
+
/** True when {@link actor} was SELF-MINTED at construction — a fresh random token, because the
|
|
253
|
+
* card declared no actor and no id and no creds named one. Such a principal differs on every
|
|
254
|
+
* restart, so nothing can be granted to it in advance and nothing durable may be keyed on it.
|
|
255
|
+
* Exposed via {@link actorIsEphemeral} so a caller deriving a per-agent resource name can refuse
|
|
256
|
+
* the mode instead of silently keying on a value that will not survive the process. */
|
|
257
|
+
readonly actorIsEphemeral: boolean;
|
|
252
258
|
/** This incarnation's lifecycle UID (opts.lifecycleUid) — see {@link EndpointOptions.lifecycleUid}. */
|
|
253
259
|
private readonly ownLifecycleUid?;
|
|
254
260
|
/** Per-endpoint-name {@link resolveService} cache for {@link invokeService} — dropped on a
|
|
255
261
|
* `failed-precondition` currency refusal (the described incarnation was superseded). */
|
|
256
262
|
private readonly resolvedServices;
|
|
263
|
+
/** How many calls {@link invokeService} has silently recovered from a bind refusal (§13.2) — the
|
|
264
|
+
* class-queue splits this endpoint hit and survived.
|
|
265
|
+
*
|
|
266
|
+
* Counted because it is recovered: handling the split is what makes it invisible, so this is the
|
|
267
|
+
* only evidence the split rate exists. Always on, never behind a flag — a counter you have to
|
|
268
|
+
* enable is not there when the thing you needed it for happened. */
|
|
269
|
+
private splitsRecovered;
|
|
257
270
|
/** This endpoint's wire principal (owner + actor tokens, §13.2) — what its minted grant rows
|
|
258
271
|
* pin. Public so a caller can build owner-mode target blocks for {@link invokeService}. */
|
|
259
272
|
get principal(): {
|
|
260
273
|
owner: string;
|
|
261
274
|
actor: string;
|
|
262
275
|
};
|
|
276
|
+
/** Class-queue splits this endpoint has hit and silently survived ({@link splitsRecovered}).
|
|
277
|
+
* Pull it, or listen for `split-recovered` — the event can be missed, the count cannot. */
|
|
278
|
+
get splitRecoveryCount(): number;
|
|
263
279
|
/** The endpoint's own lifecycle UID, REQUIRED for every lifecycle-keyed messaging resource; absent
|
|
264
280
|
* ⇒ loud refusal naming the operation (the hard cut of SPEC §13.1 — no alias-keyed fallback). */
|
|
265
281
|
private requireLifecycleUid;
|
|
@@ -428,6 +444,112 @@ export declare class CotalEndpoint extends EventEmitter {
|
|
|
428
444
|
contextId?: string;
|
|
429
445
|
mentions?: string[];
|
|
430
446
|
}): Promise<CotalMessage>;
|
|
447
|
+
/** The broker's live `max_payload` — the CEILING a frame is measured against, not a budget for a
|
|
448
|
+
* caller's own payload.
|
|
449
|
+
*
|
|
450
|
+
* Exposed because the connection is private and callers outside core (a connector assembling a
|
|
451
|
+
* batched payload) otherwise have no way to learn the ceiling except by failing a publish.
|
|
452
|
+
* Throws rather than guessing a default: a wrong ceiling is worse than none, because it splits
|
|
453
|
+
* either too eagerly or too late and both look like working code.
|
|
454
|
+
*
|
|
455
|
+
* THIS ALONE CANNOT SIZE A MESSAGE. The envelope this endpoint adds after the publish call, and
|
|
456
|
+
* the client's own headers, are charged against the same ceiling and the caller never sees them.
|
|
457
|
+
* Use {@link encodedSize}, which measures what will actually be sent. */
|
|
458
|
+
get maxPayload(): number;
|
|
459
|
+
/**
|
|
460
|
+
* Verify the PRECONDITION {@link multicastExpecting} depends on: that the chat stream evaluates
|
|
461
|
+
* the subject expectation BEFORE the `Nats-Msg-Id` dedup cache. **Throws if it cannot be
|
|
462
|
+
* guaranteed.** Call before the first serialized append on a given endpoint.
|
|
463
|
+
*
|
|
464
|
+
* **The ordering follows the stream's REPLICATION FACTOR, not the deployment.** A standalone R1
|
|
465
|
+
* stream and an R1 stream inside a real 3-node cluster both refuse a stale expectation with a CAS
|
|
466
|
+
* error; only an R3 stream evaluates dedup first and answers a retry with `duplicate: true`. A
|
|
467
|
+
* check written against cluster size would pass on exactly the deployment that breaks.
|
|
468
|
+
*
|
|
469
|
+
* Every stream Cotal creates is `num_replicas: 1`, from the same canonical config the restore path
|
|
470
|
+
* uses, so the property holds by construction today. This exists because "by construction" is an
|
|
471
|
+
* observation until something checks it: nothing in the wire contract reserves the replica factor.
|
|
472
|
+
* A caller appending under a stale assumption does not fail loudly; it accepts a retry as success
|
|
473
|
+
* and drops a message.
|
|
474
|
+
*
|
|
475
|
+
* Evidence is `smoke:cas-preflight-cluster`, which records the server version it measured against
|
|
476
|
+
* rather than naming one here — the suites resolve `nats-server` from `PATH`, so a hardcoded
|
|
477
|
+
* provenance ages into a claim about a machine that no longer exists.
|
|
478
|
+
*
|
|
479
|
+
* @throws if the stream is unreadable (no `STREAM.INFO` grant, or absent) or reports more than
|
|
480
|
+
* one replica. Never degrades to a warning: the failure it prevents is silent.
|
|
481
|
+
*/
|
|
482
|
+
assertExpectationSemantics(): Promise<void>;
|
|
483
|
+
/** The envelope {@link multicastExpecting} publishes, built in ONE place so that a frame and any
|
|
484
|
+
* measurement of that frame cannot describe different messages. The fields this adds — `ts`,
|
|
485
|
+
* `space`, `from`, `channel` and the normalized `mentions` — are exactly the ones a caller
|
|
486
|
+
* holding only its parts cannot account for. */
|
|
487
|
+
private casEnvelope;
|
|
488
|
+
/**
|
|
489
|
+
* The bytes this frame will ACTUALLY put on the wire, to compare against {@link maxPayload}.
|
|
490
|
+
*
|
|
491
|
+
* Caller-side arithmetic is wrong in the dangerous direction: a split sized against the caller's
|
|
492
|
+
* own payload produces a frame the broker REJECTS, and a rejected truncation makes the loss silent
|
|
493
|
+
* again — the failure splitting exists to prevent.
|
|
494
|
+
*
|
|
495
|
+
* It lives on the surface that BUILDS the envelope so measurement and construction cannot drift
|
|
496
|
+
* apart unnoticed: it shares {@link casEnvelope} with the publish path, sets the same two headers,
|
|
497
|
+
* and lets the client's own encoder encode them rather than re-implementing the wire format.
|
|
498
|
+
* `frame-size.smoke.ts` binary-searches a real broker's ceiling and requires this number to land
|
|
499
|
+
* on it exactly.
|
|
500
|
+
*
|
|
501
|
+
* `expectedLastSubjectSeq` is a parameter because it is a header VALUE: sizing at 0 and publishing
|
|
502
|
+
* at 123456 differ by five bytes.
|
|
503
|
+
*
|
|
504
|
+
* Residual: `ts` is re-stamped at publish, so the two differ in value — not in length until
|
|
505
|
+
* epoch-millis needs a 14th digit.
|
|
506
|
+
*/
|
|
507
|
+
encodedSize(opts: {
|
|
508
|
+
channel: string;
|
|
509
|
+
parts: Part[];
|
|
510
|
+
id: string;
|
|
511
|
+
expectedLastSubjectSeq: number;
|
|
512
|
+
mentions?: string[];
|
|
513
|
+
replyTo?: string;
|
|
514
|
+
contextId?: string;
|
|
515
|
+
}): number;
|
|
516
|
+
/**
|
|
517
|
+
* Multicast with an OPTIMISTIC-CONCURRENCY expectation and a caller-chosen dedup id, returning
|
|
518
|
+
* the `PubAck` fields instead of discarding them. The serialized-append primitive: two writers
|
|
519
|
+
* racing one subject cannot interleave, because the loser's expectation no longer holds.
|
|
520
|
+
*
|
|
521
|
+
* **Why a separate method rather than options on {@link multicast}.** `multicast` mints a fresh
|
|
522
|
+
* `id` per call and drops the ack; both are right for ordinary chat and both are fatal to a
|
|
523
|
+
* caller that must retry an append idempotently. Keeping them apart means no existing caller
|
|
524
|
+
* changes behaviour, and the stricter validation below applies only where a caller opted in.
|
|
525
|
+
*
|
|
526
|
+
* - `id` becomes the JetStream `Nats-Msg-Id`, so the SAME id may be republished on retry and the
|
|
527
|
+
* server dedups it within the stream's duplicate window. It is validated rather than trusted:
|
|
528
|
+
* it lands in a wire header, and the dedup cache is **stream-wide**, so a caller-supplied id is
|
|
529
|
+
* both an injection surface and a way to suppress another publisher's message.
|
|
530
|
+
* - `expectedLastSubjectSeq` is the sequence this publisher believes is the subject's tip; `0`
|
|
531
|
+
* means "the subject must be empty". A mismatch throws, and the throw stays classifiable by the
|
|
532
|
+
* already-public {@link isCasLoss} — the error is deliberately **not wrapped**, since wrapping
|
|
533
|
+
* would hide the `err_code` that classification reads.
|
|
534
|
+
*
|
|
535
|
+
* @throws if the endpoint is not live, the channel is not concrete, `id` is malformed, `parts` is
|
|
536
|
+
* empty, or `expectedLastSubjectSeq` is not a non-negative safe integer.
|
|
537
|
+
*/
|
|
538
|
+
multicastExpecting(opts: {
|
|
539
|
+
channel: string;
|
|
540
|
+
parts: Part[];
|
|
541
|
+
id: string;
|
|
542
|
+
expectedLastSubjectSeq: number;
|
|
543
|
+
mentions?: string[];
|
|
544
|
+
replyTo?: string;
|
|
545
|
+
contextId?: string;
|
|
546
|
+
}): Promise<{
|
|
547
|
+
message: CotalMessage;
|
|
548
|
+
ack: {
|
|
549
|
+
seq: number;
|
|
550
|
+
duplicate: boolean;
|
|
551
|
+
};
|
|
552
|
+
}>;
|
|
431
553
|
/** Unicast: direct message to one specific instance. */
|
|
432
554
|
unicast(instanceId: string, text: string, opts?: {
|
|
433
555
|
parts?: Part[];
|
|
@@ -484,11 +606,22 @@ export declare class CotalEndpoint extends EventEmitter {
|
|
|
484
606
|
/** GENERIC v0.4 service invoke over this endpoint's own connection (P2 item 1, 1c.2b): resolve
|
|
485
607
|
* the named endpoint's registered surface — describe, §13.7 store fetch, digest-verified
|
|
486
608
|
* recompile ({@link resolveService}; cached per endpoint name) — and invoke one command. The
|
|
487
|
-
* resolve is describe-bound currency
|
|
488
|
-
*
|
|
489
|
-
*
|
|
490
|
-
*
|
|
491
|
-
*
|
|
609
|
+
* resolve is describe-bound currency, and a call that reaches the wrong incarnation is recovered
|
|
610
|
+
* two ways depending on WHO caught it — the difference between knowing the command did not run
|
|
611
|
+
* and only knowing someone answered:
|
|
612
|
+
* - the RESPONDER fenced it on the request's `bind` (§13.2, an `ok:false` reply marked
|
|
613
|
+
* {@link replyRefusedBeforeEffect}): the command did not run, so the bind is dropped and the
|
|
614
|
+
* call re-issued ONCE for any command. If that re-issue cannot be resolved, the refusal
|
|
615
|
+
* surfaces — still saying the command did not run — naming the resolve failure as why the
|
|
616
|
+
* repair could not be attempted.
|
|
617
|
+
* - this CLIENT caught it on the reply ({@link respondedButUnbound}: a different instance,
|
|
618
|
+
* `failed-precondition`; the same instance at any other epoch, `expired`), which is what a
|
|
619
|
+
* responder too old to know the field produces. A live instance received and answered it, so
|
|
620
|
+
* the bind is dropped but the call is re-issued only for a command on the
|
|
621
|
+
* {@link isRepeatSafeCommand} allowlist; anything else surfaces, since a second attempt could
|
|
622
|
+
* duplicate its effect.
|
|
623
|
+
* Errors from the responder come back structurally on the attributed reply
|
|
624
|
+
* (`reply.ok === false`); transport/validation refusals throw {@link EpEnvelopeError}. */
|
|
492
625
|
invokeService(endpoint: string, command: string, args?: Record<string, unknown>, opts?: {
|
|
493
626
|
target?: EpVerbTarget;
|
|
494
627
|
deadlineMs?: number;
|
|
@@ -702,7 +835,7 @@ export declare class CotalEndpoint extends EventEmitter {
|
|
|
702
835
|
*/
|
|
703
836
|
provisionDmInbox(owner: string, actor: string, lifecycleUid: string): Promise<void>;
|
|
704
837
|
/** Idempotent-PER-LIFECYCLE create of a `dm_<o>-<a>-<uid>` durable with its ACTIVATION FRONTIER
|
|
705
|
-
* (SPEC
|
|
838
|
+
* (SPEC §8). Info-first: an existing durable (a manager-restart re-provision of the SAME uid, or
|
|
706
839
|
* the same lifecycle's own restart) is kept as-is, preserving the ORIGINAL frontier — the
|
|
707
840
|
* activation moment never moves. A fresh lifecycle captures the DM stream's current `last_seq` and
|
|
708
841
|
* starts delivery at frontier+1, so a same-alias successor inherits none of the predecessor's
|
|
@@ -808,6 +941,16 @@ export declare class CotalEndpoint extends EventEmitter {
|
|
|
808
941
|
/** Renew THIS instance's held key (CAS update against `revision`) before the bucket TTL expires it.
|
|
809
942
|
* Throws if the revision moved (lost the lease). Returns the new revision. */
|
|
810
943
|
renewManagerLease(info: Omit<ManagerLeaseInfo, "since">, revision: number): Promise<number>;
|
|
944
|
+
/** Read THIS instance's OWN lease key, keyed (not the `lease.*` sweep {@link readManagerLease} does).
|
|
945
|
+
*
|
|
946
|
+
* `undefined` means the key IS NOT THERE — a definite absence, established by a completed read.
|
|
947
|
+
* A read that could not be completed THROWS instead, so a caller can tell "it is gone" from "I could
|
|
948
|
+
* not find out". That distinction is the whole point of the method: a renew that got no answer has
|
|
949
|
+
* proved nothing, and only a definite answer here may be acted on. */
|
|
950
|
+
readOwnManagerLease(instanceId: string): Promise<{
|
|
951
|
+
info: ManagerLeaseInfo;
|
|
952
|
+
revision: number;
|
|
953
|
+
} | undefined>;
|
|
811
954
|
/** Release THIS instance's key on clean shutdown so a same-id restart re-acquires immediately. CAS-guarded
|
|
812
955
|
* by `revision`: if we already LOST it (renew gap) the stored revision has moved, the conditional delete
|
|
813
956
|
* no-ops. Keyed per instance, so a release NEVER touches a sibling manager's key (security pin 6). */
|
|
@@ -889,6 +1032,7 @@ export declare class CotalEndpoint extends EventEmitter {
|
|
|
889
1032
|
reloadMembershipCreds?: (expected?: string) => Promise<unknown>;
|
|
890
1033
|
evictPrincipal?: (principal: string) => Promise<unknown>;
|
|
891
1034
|
planeConnLiveness?: (query: unknown) => Promise<unknown>;
|
|
1035
|
+
principalLiveness?: (principal: string) => Promise<unknown>;
|
|
892
1036
|
}): Promise<void>;
|
|
893
1037
|
/** Serve one runtime durable-membership control request (the server-side delivery daemon). The caller
|
|
894
1038
|
* id is the authenticated subject sender ({@link serveControl} fail-closes on a mismatch). Validation
|
|
@@ -1152,6 +1296,26 @@ interface AuthOpts {
|
|
|
1152
1296
|
* "service down". Unwraps a wrapped `cause` and falls back to the server's error text, since
|
|
1153
1297
|
* a denied publish can surface either as the typed error or inside a request rejection. */
|
|
1154
1298
|
export declare function isPermissionDenied(e: unknown): boolean;
|
|
1299
|
+
/** True ONLY for a denial on a **publish** — the single case that proves the message was never
|
|
1300
|
+
* ACCEPTED or stored. (Not "never reached the server": the server necessarily received enough of
|
|
1301
|
+
* it to reject it. The distinction matters precisely here, because this helper exists to separate
|
|
1302
|
+
* provably-not-stored from possibly-stored, and the looser phrasing overstates the very thing
|
|
1303
|
+
* being measured.) {@link isPermissionDenied} deliberately does not look at the operation: it exists to
|
|
1304
|
+
* separate "denied" from "service down", and that answer is the same either way. The operation
|
|
1305
|
+
* matters enormously to a caller that reports *delivery*, because a JetStream publish is
|
|
1306
|
+
* request/PubAck and the subscription half is the reply inbox — a denial THERE rejects
|
|
1307
|
+
* `js.publish()` while the stream may already hold the message. Verified against a live broker: a
|
|
1308
|
+
* user allowed to publish but denied its `_INBOX` subscription got
|
|
1309
|
+
* `Permissions Violation for Subscription to "_INBOX.….*"` back from `js.publish()`, and an
|
|
1310
|
+
* unrestricted observer then read `messages: 1` off the stream.
|
|
1311
|
+
*
|
|
1312
|
+
* Note what is deliberately NOT accepted: the untyped text fallback above. A permission-shaped
|
|
1313
|
+
* message string carries no operation, so it cannot prove non-delivery, and guessing "publish"
|
|
1314
|
+
* from wording would reintroduce exactly the false certainty this exists to prevent. Anything not
|
|
1315
|
+
* provably a publish denial is unknown, and a caller reporting delivery must fail toward
|
|
1316
|
+
* "I could not confirm" rather than toward "it did not happen" — the costly mistake is telling
|
|
1317
|
+
* someone to re-send a message that was in fact stored. */
|
|
1318
|
+
export declare function isPublishPermissionDenied(e: unknown): boolean;
|
|
1155
1319
|
/** Whether a NATS server is *running* at `servers`. With NO creds this is a SILENT plaintext
|
|
1156
1320
|
* liveness check ({@link tcpInfoProbe}): it reads the server's pre-auth `INFO` greeting and closes
|
|
1157
1321
|
* WITHOUT authenticating, so a live broker (open OR auth — INFO precedes auth) returns true while
|