@cotal-ai/core 0.12.0 → 0.13.1
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 +31 -7
- package/dist/acls.d.ts.map +1 -1
- package/dist/acls.js +105 -17
- package/dist/acls.js.map +1 -1
- package/dist/agent-file.js +1 -1
- package/dist/agent-file.js.map +1 -1
- package/dist/auth-provider.d.ts +8 -0
- package/dist/auth-provider.d.ts.map +1 -1
- package/dist/auth-provider.js.map +1 -1
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +6 -4
- package/dist/backup.js.map +1 -1
- package/dist/broker-floor.d.ts +34 -0
- package/dist/broker-floor.d.ts.map +1 -0
- package/dist/broker-floor.js +39 -0
- package/dist/broker-floor.js.map +1 -0
- package/dist/canonical.d.ts +24 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/canonical.js +159 -0
- package/dist/canonical.js.map +1 -0
- package/dist/connector.d.ts +4 -0
- package/dist/connector.d.ts.map +1 -1
- package/dist/endpoint-action.d.ts +424 -0
- package/dist/endpoint-action.d.ts.map +1 -0
- package/dist/endpoint-action.js +910 -0
- package/dist/endpoint-action.js.map +1 -0
- package/dist/endpoint-binding.d.ts +344 -0
- package/dist/endpoint-binding.d.ts.map +1 -0
- package/dist/endpoint-binding.js +753 -0
- package/dist/endpoint-binding.js.map +1 -0
- package/dist/endpoint-checkpoint.d.ts +292 -0
- package/dist/endpoint-checkpoint.d.ts.map +1 -0
- package/dist/endpoint-checkpoint.js +818 -0
- package/dist/endpoint-checkpoint.js.map +1 -0
- package/dist/endpoint-cluster.d.ts +95 -0
- package/dist/endpoint-cluster.d.ts.map +1 -0
- package/dist/endpoint-cluster.js +194 -0
- package/dist/endpoint-cluster.js.map +1 -0
- package/dist/endpoint-contract-store.d.ts +90 -0
- package/dist/endpoint-contract-store.d.ts.map +1 -0
- package/dist/endpoint-contract-store.js +348 -0
- package/dist/endpoint-contract-store.js.map +1 -0
- package/dist/endpoint-envelope.d.ts +165 -0
- package/dist/endpoint-envelope.d.ts.map +1 -0
- package/dist/endpoint-envelope.js +346 -0
- package/dist/endpoint-envelope.js.map +1 -0
- package/dist/endpoint-grants.d.ts +123 -0
- package/dist/endpoint-grants.d.ts.map +1 -0
- package/dist/endpoint-grants.js +215 -0
- package/dist/endpoint-grants.js.map +1 -0
- package/dist/endpoint-guard.d.ts +222 -0
- package/dist/endpoint-guard.d.ts.map +1 -0
- package/dist/endpoint-guard.js +468 -0
- package/dist/endpoint-guard.js.map +1 -0
- package/dist/endpoint-handle.d.ts +176 -0
- package/dist/endpoint-handle.d.ts.map +1 -0
- package/dist/endpoint-handle.js +608 -0
- package/dist/endpoint-handle.js.map +1 -0
- package/dist/endpoint-journal.d.ts +225 -0
- package/dist/endpoint-journal.d.ts.map +1 -0
- package/dist/endpoint-journal.js +431 -0
- package/dist/endpoint-journal.js.map +1 -0
- package/dist/endpoint-receipt.d.ts +225 -0
- package/dist/endpoint-receipt.d.ts.map +1 -0
- package/dist/endpoint-receipt.js +417 -0
- package/dist/endpoint-receipt.js.map +1 -0
- package/dist/endpoint-records.d.ts +243 -0
- package/dist/endpoint-records.d.ts.map +1 -0
- package/dist/endpoint-records.js +591 -0
- package/dist/endpoint-records.js.map +1 -0
- package/dist/endpoint-serve.d.ts +176 -0
- package/dist/endpoint-serve.d.ts.map +1 -0
- package/dist/endpoint-serve.js +446 -0
- package/dist/endpoint-serve.js.map +1 -0
- package/dist/endpoint-service.d.ts +518 -0
- package/dist/endpoint-service.d.ts.map +1 -0
- package/dist/endpoint-service.js +973 -0
- package/dist/endpoint-service.js.map +1 -0
- package/dist/endpoint-session.d.ts +398 -0
- package/dist/endpoint-session.d.ts.map +1 -0
- package/dist/endpoint-session.js +834 -0
- package/dist/endpoint-session.js.map +1 -0
- package/dist/endpoint-signing.d.ts +105 -0
- package/dist/endpoint-signing.d.ts.map +1 -0
- package/dist/endpoint-signing.js +190 -0
- package/dist/endpoint-signing.js.map +1 -0
- package/dist/endpoint-subjects.d.ts +222 -0
- package/dist/endpoint-subjects.d.ts.map +1 -0
- package/dist/endpoint-subjects.js +381 -0
- package/dist/endpoint-subjects.js.map +1 -0
- package/dist/endpoint-supervisor.d.ts +19 -0
- package/dist/endpoint-supervisor.d.ts.map +1 -0
- package/dist/endpoint-supervisor.js +12 -0
- package/dist/endpoint-supervisor.js.map +1 -0
- package/dist/endpoint-traits.d.ts +225 -0
- package/dist/endpoint-traits.d.ts.map +1 -0
- package/dist/endpoint-traits.js +469 -0
- package/dist/endpoint-traits.js.map +1 -0
- package/dist/endpoint-verbs.d.ts +277 -0
- package/dist/endpoint-verbs.d.ts.map +1 -0
- package/dist/endpoint-verbs.js +576 -0
- package/dist/endpoint-verbs.js.map +1 -0
- package/dist/endpoint-virtual.d.ts +308 -0
- package/dist/endpoint-virtual.d.ts.map +1 -0
- package/dist/endpoint-virtual.js +440 -0
- package/dist/endpoint-virtual.js.map +1 -0
- package/dist/endpoint-work.d.ts +304 -0
- package/dist/endpoint-work.d.ts.map +1 -0
- package/dist/endpoint-work.js +728 -0
- package/dist/endpoint-work.js.map +1 -0
- package/dist/endpoint.d.ts +66 -22
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +289 -89
- package/dist/endpoint.js.map +1 -1
- package/dist/evict.d.ts +95 -32
- package/dist/evict.d.ts.map +1 -1
- package/dist/evict.js +193 -3
- package/dist/evict.js.map +1 -1
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/lease.d.ts +4 -0
- package/dist/lease.d.ts.map +1 -1
- package/dist/lease.js.map +1 -1
- package/dist/members.d.ts +4 -4
- package/dist/members.d.ts.map +1 -1
- package/dist/members.js +12 -12
- package/dist/members.js.map +1 -1
- package/dist/provision.d.ts +70 -18
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +194 -33
- package/dist/provision.js.map +1 -1
- package/dist/safe-pattern.d.ts +33 -0
- package/dist/safe-pattern.d.ts.map +1 -0
- package/dist/safe-pattern.js +486 -0
- package/dist/safe-pattern.js.map +1 -0
- package/dist/schema-profile.d.ts +93 -0
- package/dist/schema-profile.d.ts.map +1 -0
- package/dist/schema-profile.js +284 -0
- package/dist/schema-profile.js.map +1 -0
- package/dist/streams.d.ts +13 -8
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +35 -18
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +100 -40
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +136 -60
- package/dist/subjects.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-serve.js","sourceRoot":"","sources":["../src/endpoint-serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v0.4 service registry (SPEC §13.7 "Descriptor and describe", §13.5 scatter freeze, §13.9
|
|
3
|
+
* writer table) — the `svc` record kind's value shapes with their consuming-boundary
|
|
4
|
+
* validators, service-name authority enforcement, the mediated registration and epoch-fenced
|
|
5
|
+
* status writes, and the scatter expected-set freeze.
|
|
6
|
+
*
|
|
7
|
+
* Registry entries are DISCOVERY, never authority (§13.9): nothing here grants subscribe or
|
|
8
|
+
* reply authority or scatter membership by itself — the serve credential is the authority, and
|
|
9
|
+
* a foreign credential cannot subscribe a class rail, answer as an instance, or enter a frozen
|
|
10
|
+
* scatter set. The helpers below run inside the trusted writer principals the §13.9 writer
|
|
11
|
+
* table names (`provisioner-registration` for spec, `instance-commit-epoch-fenced` for status).
|
|
12
|
+
*/
|
|
13
|
+
import type { KV } from "@nats-io/kv";
|
|
14
|
+
import type { JetStreamManager } from "@nats-io/jetstream";
|
|
15
|
+
import { type EpAuthzMode } from "./endpoint-subjects.js";
|
|
16
|
+
import { type EpClass } from "./endpoint-envelope.js";
|
|
17
|
+
import { type DescribeDescriptor } from "./endpoint-cluster.js";
|
|
18
|
+
import { type SupervisorWriteGrant } from "./endpoint-supervisor.js";
|
|
19
|
+
import type { EpRegistrationState } from "./endpoint-verbs.js";
|
|
20
|
+
/** The `svc….spec` value: the instance's registered descriptor identity. The spec KEY's store
|
|
21
|
+
* revision is the instance's `registrationRevision` (§13.7): it advances only when the
|
|
22
|
+
* mediated registration path writes the key, so an advance during a scatter is exactly a
|
|
23
|
+
* re-registration. */
|
|
24
|
+
export interface ServiceSpec {
|
|
25
|
+
endpoint: string;
|
|
26
|
+
/** The serving owner — determined by the NAME (§13.2 single-owner names), recorded here. */
|
|
27
|
+
owner: string;
|
|
28
|
+
endpointType?: string;
|
|
29
|
+
/** Complete-closure digests of the served cluster documents (§13.7). */
|
|
30
|
+
clusterDigests: string[];
|
|
31
|
+
/** The discovery protocol version — additive evolution only (§13.7). */
|
|
32
|
+
protocol: {
|
|
33
|
+
v: 1;
|
|
34
|
+
};
|
|
35
|
+
/** Virtual-endpoint activation policy (§13.6), opaque to the registry. */
|
|
36
|
+
activation?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/** The `svc….status` value: the instance's own convergence projection, written epoch-fenced
|
|
39
|
+
* through its `epr` rail (§13.9: the writer reads the epoch from the broker-authenticated
|
|
40
|
+
* subject, never from payload). `state` is a bounded token; readers key on
|
|
41
|
+
* {@link SERVICE_READY}/{@link SERVICE_EXITED} (§13.6: an entity's convergence is observable
|
|
42
|
+
* on its own status record). */
|
|
43
|
+
export interface ServiceStatus {
|
|
44
|
+
epoch: number;
|
|
45
|
+
state: string;
|
|
46
|
+
observedSpecRevision: number;
|
|
47
|
+
[key: string]: unknown;
|
|
48
|
+
}
|
|
49
|
+
/** The convergence states the SPEC keys on (§13.6 item 6). */
|
|
50
|
+
export declare const SERVICE_READY = "ready";
|
|
51
|
+
export declare const SERVICE_EXITED = "exited";
|
|
52
|
+
/** Restart-intensity escalation (§13.6 virtual endpoints): the instance stops restarting and
|
|
53
|
+
* the lifecycle retires terminally; readers treat it as permanently not-startable. The state
|
|
54
|
+
* is IRREVERSIBLE at {@link writeServiceStatus}: no later status write (any epoch) replaces
|
|
55
|
+
* it — the only touch a stored escalated row admits is the supervisor's own revision-pinned
|
|
56
|
+
* retirement mark, written directly by the reconciler, never through this writer. */
|
|
57
|
+
export declare const SERVICE_ESCALATED = "escalated";
|
|
58
|
+
/** The SUPERVISOR-OWNED status fields (§13.6 restart intensity): the durable restart history
|
|
59
|
+
* and the retirement-complete mark. {@link writeServiceStatus} carries them forward on every
|
|
60
|
+
* INSTANCE-side write and strips whatever the caller supplied; ONLY a holder of the branded
|
|
61
|
+
* {@link SupervisorWriteGrant} may originate them or the `escalated` state. */
|
|
62
|
+
export declare const SERVICE_RESTART_HISTORY_FIELD = "restarts";
|
|
63
|
+
export declare const SERVICE_RETIRED_MARK_FIELD = "retiredAt";
|
|
64
|
+
/** The AUTHORITY to originate supervisor-owned state (the restart history, the retirement mark,
|
|
65
|
+
* the `escalated` state) through {@link writeServiceStatus} — the type only. The MINT lives in
|
|
66
|
+
* the package-internal `endpoint-supervisor` module (never re-exported), so it is not
|
|
67
|
+
* ambiently obtainable: possession of a genuine grant proves the write came from a §13.6
|
|
68
|
+
* supervisor seam, not a scalar flag any caller could set. */
|
|
69
|
+
export type { SupervisorWriteGrant };
|
|
70
|
+
/** The §13.6 virtual activation policy (`spec.activation`), a CLOSED schema: `mode` is the
|
|
71
|
+
* literal `on-demand` and `capacity` (the pool admission bound) is REQUIRED — an unbounded
|
|
72
|
+
* pool is not a policy, and a free-floating capacity knob unbound from the registration was
|
|
73
|
+
* the drift the panel refused. The restart knobs default per SPEC (3 within 60s). */
|
|
74
|
+
export interface VirtualActivationPolicy {
|
|
75
|
+
mode: "on-demand";
|
|
76
|
+
capacity: number;
|
|
77
|
+
maxRestarts?: number;
|
|
78
|
+
restartWindowMs?: number;
|
|
79
|
+
}
|
|
80
|
+
export declare function parseActivationPolicy(raw: unknown): VirtualActivationPolicy;
|
|
81
|
+
/** Validate a `svc….spec` value at its consuming boundary (§13.3: every plane is
|
|
82
|
+
* runtime-validated; mediated-writer state that does not validate is a writer bug, never a
|
|
83
|
+
* data error). The body's endpoint must AGREE with the key's endpoint qualifier. */
|
|
84
|
+
export declare function parseServiceSpec(raw: unknown, key: {
|
|
85
|
+
endpoint: string;
|
|
86
|
+
}): ServiceSpec;
|
|
87
|
+
/** Validate a `svc….status` value at its consuming boundary. */
|
|
88
|
+
export declare function parseServiceStatus(raw: unknown): ServiceStatus;
|
|
89
|
+
/** The deployment's name-authority source (pluggable — identity is an adapter, §13.9): core
|
|
90
|
+
* single-label names require operator provisioning authority; reverse-DNS names bind to their
|
|
91
|
+
* REGISTERED domain owner. The answer comes from the deployment's trusted registry, never from
|
|
92
|
+
* the registrant's claim. */
|
|
93
|
+
export interface ServiceNameAuthority {
|
|
94
|
+
/** ONE atomic leader-served authority decision for `(name, owner)` (§13.9), returning the
|
|
95
|
+
* authorization result AND the name-authority binding revision from a SINGLE read so the two
|
|
96
|
+
* can never TEAR across a concurrent transfer (a read is never a fence, §13.1; the returned
|
|
97
|
+
* revision is a THIRD currency dimension bound into the issuance gate and re-checked at mint,
|
|
98
|
+
* so a transfer AFTER authorization can never release an old-owner credential). `authorized`
|
|
99
|
+
* is true iff `owner` may serve `name`: for a core single-label name, iff `owner` holds
|
|
100
|
+
* operator provisioning authority; for a reverse-DNS name, iff `owner` is the REGISTERED
|
|
101
|
+
* domain owner (an unregistered name is never authorized, fail-closed). `revision` advances
|
|
102
|
+
* whenever the name transfers or its operator-authority grant changes. */
|
|
103
|
+
authorize(name: string, owner: string): Promise<{
|
|
104
|
+
authorized: boolean;
|
|
105
|
+
revision: number;
|
|
106
|
+
}> | {
|
|
107
|
+
authorized: boolean;
|
|
108
|
+
revision: number;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/** Enforce §13.9 name authority before a registration/serve grant is minted, from ONE atomic
|
|
112
|
+
* snapshot: an endpoint name binds to exactly ONE owner (§13.2), so a registration claiming a
|
|
113
|
+
* name its owner does not hold fails `permission-denied`, and an UNREGISTERED reverse-DNS name
|
|
114
|
+
* fails closed. Returns the name-authority binding REVISION read atomically WITH the decision —
|
|
115
|
+
* the caller binds it into the issuance gate so a transfer between decision and mint is fenced,
|
|
116
|
+
* never a torn owner-vs-revision read. */
|
|
117
|
+
export declare function assertServiceNameAuthority(endpoint: string, owner: string, authority: ServiceNameAuthority): Promise<number>;
|
|
118
|
+
export declare function registerServiceInstance(kv: KV, args: {
|
|
119
|
+
space: string;
|
|
120
|
+
spec: ServiceSpec;
|
|
121
|
+
instanceId: string;
|
|
122
|
+
registrant: {
|
|
123
|
+
owner: string;
|
|
124
|
+
};
|
|
125
|
+
authority: ServiceNameAuthority;
|
|
126
|
+
barrier: EpIssuanceBarrier;
|
|
127
|
+
/** Content-store reader for the spec's cluster digests, REQUIRED (§13.7): governed
|
|
128
|
+
* continuity is not an optional seam. It is the ONLY policy input - the governed set
|
|
129
|
+
* itself is pinned internally to the canonical {@link GOVERNED_TRAIT_URNS} (the same
|
|
130
|
+
* constant feeding serve-side enforcement), never a caller-supplied list: a tunable set
|
|
131
|
+
* was the subset-narrowing escape (guarded-only wiring silently un-tracks priced), the
|
|
132
|
+
* `previous:null` class one notch smaller. */
|
|
133
|
+
readClusterArtifact: (digest: string) => Promise<unknown> | unknown;
|
|
134
|
+
}): Promise<{
|
|
135
|
+
registrationRevision: number;
|
|
136
|
+
}>;
|
|
137
|
+
/** Write an instance's status with the FULL §13.9 writer fence. `epoch` is the
|
|
138
|
+
* WRITER-AUTHENTICATED epoch — in production the record writer reads it from the
|
|
139
|
+
* broker-authenticated `epr` subject (§13.9), never from the payload; this helper trusts its
|
|
140
|
+
* caller to be that seam and additionally requires the payload to agree. The fence is
|
|
141
|
+
* THREE-part, in order:
|
|
142
|
+
* 1. a registered spec must exist and `observedSpecRevision` must not run AHEAD of it — a
|
|
143
|
+
* spec-less status is the torn record state readers reject (§13.4), never written;
|
|
144
|
+
* 2. the epoch must equal a FRESH read of the authoritative lifecycle mapping's
|
|
145
|
+
* `processEpoch` (`expired` otherwise) — monotonicity against the stored status alone is
|
|
146
|
+
* NOT sufficient: between the takeover CAS (N→N+1) and the completed revoke/evict barrier
|
|
147
|
+
* the superseded N still equals the stored epoch (§13.9);
|
|
148
|
+
* 3. a below-stored epoch is `conflict` (§13.9), distinct from the mapping fence.
|
|
149
|
+
* `readProcessEpoch` is the trusted mapping-reader seam (leader-served, §13.9; the D13
|
|
150
|
+
* lifecycle registry provides the production reader). The racing CAS loss is a loud `conflict`.
|
|
151
|
+
* `expectedStatusRevision` pins the CAS to the CALLER's observed status revision (0 = observed
|
|
152
|
+
* ABSENT) for read-modify-write callers whose new value derives from the stored one (the §13.6
|
|
153
|
+
* restart-intensity history): without the pin, this function's own fresh internal read would
|
|
154
|
+
* let two concurrent derivations silently merge-lose each other's contribution. It is PURELY a
|
|
155
|
+
* CAS pin — the AUTHORITY to originate supervisor-owned state is the separate branded
|
|
156
|
+
* {@link SupervisorWriteGrant} (`supervisor`), never revision presence. Without the grant this
|
|
157
|
+
* is an instance-side write: it may not carry the restart history, the retirement mark, or the
|
|
158
|
+
* `escalated` state (they are stripped on both create and update, and `escalated` refuses),
|
|
159
|
+
* and the stored supervisor fields ride forward untouched. */
|
|
160
|
+
export declare function writeServiceStatus(kv: KV, args: {
|
|
161
|
+
endpoint: string;
|
|
162
|
+
instanceId: string;
|
|
163
|
+
epoch: number;
|
|
164
|
+
status: ServiceStatus;
|
|
165
|
+
readProcessEpoch: () => Promise<number> | number;
|
|
166
|
+
expectedStatusRevision?: number;
|
|
167
|
+
supervisor?: SupervisorWriteGrant;
|
|
168
|
+
}): Promise<number>;
|
|
169
|
+
/** One frozen scatter slot: `(instanceId, registrationRevision, epoch)` (§13.5). */
|
|
170
|
+
export interface FrozenInstance {
|
|
171
|
+
instanceId: string;
|
|
172
|
+
/** The `svc….spec` key's store revision at freeze time. */
|
|
173
|
+
registrationRevision: number;
|
|
174
|
+
epoch: number;
|
|
175
|
+
}
|
|
176
|
+
/** Freeze the request-scoped expected set (§13.5): the LIVE instances of a class from the
|
|
177
|
+
* service registry at send time — VALIDATED registered spec, status present and caught up to
|
|
178
|
+
* the current registration (a stale projection is an instance not yet live under it, so
|
|
179
|
+
* freezing `(new registrationRevision, pre-registration epoch)` would combine a registration
|
|
180
|
+
* with liveness it never had), and not {@link SERVICE_EXITED}. An EMPTY or UNREADABLE registry
|
|
181
|
+
* is `failed-precondition`, never an empty success (§13.5); a MALFORMED registry record fails
|
|
182
|
+
* loud (`internal`, §13.9: readers fail loud on invalid mediated-writer state). The read grant
|
|
183
|
+
* this runs under is a §13.9 matrix row. */
|
|
184
|
+
export declare function freezeExpectedSet(jsm: JetStreamManager, kv: KV, space: string, endpoint: string): Promise<FrozenInstance[]>;
|
|
185
|
+
/** The PRODUCTION `reconcileRegistration` hook for {@link epScatter} (§13.5): a bounded post-T
|
|
186
|
+
* LEADER-SERVED read of every frozen slot's CURRENT `svc….spec` key (the same §13.9 read class as
|
|
187
|
+
* the freeze). Per slot: a live spec is `{ registered: true, registrationRevision }` (the key's
|
|
188
|
+
* CURRENT store revision — an advance past the frozen value is what the gather classifies as
|
|
189
|
+
* `registration` churn); an absent OR deleted spec is the EXPLICIT `{ registered: false }` verdict
|
|
190
|
+
* (a mid-scatter deregistration, §13.5: not churn). Only the spec KEY is read — the reconcile
|
|
191
|
+
* compares registration currency, not liveness. A malformed spec fails loud (`internal`, §13.9);
|
|
192
|
+
* an unreadable registry normalizes to `failed-precondition` (§13.5: never a fabricated verdict).
|
|
193
|
+
* Leader-served so a follower-stale read can never miss an advanced revision and falsely retain a
|
|
194
|
+
* counted reply (engineer/distsys). */
|
|
195
|
+
export declare function registrationReconciler(jsm: JetStreamManager, space: string, endpoint: string, frozen: readonly FrozenInstance[]): () => Promise<Map<string, EpRegistrationState>>;
|
|
196
|
+
/** The PRODUCTION `currentEpoch` hook for {@link epCall} on the `one` rail (§13.2): a LEADER-SERVED
|
|
197
|
+
* read of the answering instance's CURRENT `svc….status` epoch. An unregistered instance or one
|
|
198
|
+
* that never converged (no status) has no current epoch to verify a queue winner against and
|
|
199
|
+
* refuses `failed-precondition` — the read's OWN failure, which {@link epCall} never mislabels as
|
|
200
|
+
* responder staleness. Leader-served so a follower-stale status read can never accept a
|
|
201
|
+
* just-superseded queue winner at an old epoch (engineer/distsys). A stale projection does not
|
|
202
|
+
* refuse: `epoch` advances only through a takeover's status write (§13.5). */
|
|
203
|
+
export declare function serviceEpochReader(jsm: JetStreamManager, space: string, endpoint: string): (instanceId: string) => Promise<number>;
|
|
204
|
+
/** One command's VERIFIED registered authority: everything the serve boundary enforces about
|
|
205
|
+
* the command, taken from a cluster document whose bytes hash to a digest the registered spec
|
|
206
|
+
* names — never from a caller-supplied declaration. */
|
|
207
|
+
export interface EpCommandAuthority {
|
|
208
|
+
/** The registered cluster (closure digest) that declares this command. */
|
|
209
|
+
clusterDigest: string;
|
|
210
|
+
class: EpClass;
|
|
211
|
+
targeted: boolean;
|
|
212
|
+
/** Admitted authorization modes; empty exactly when untargeted (§13.7). */
|
|
213
|
+
modes: readonly EpAuthzMode[];
|
|
214
|
+
capability: string;
|
|
215
|
+
inputDigest: string;
|
|
216
|
+
outputDigest: string;
|
|
217
|
+
/** Declared trait URNs (§13.7), out of the digest-verified cluster bytes; empty when the
|
|
218
|
+
* declaration carries none. Governed entries (`ai.cotal.guarded`/`ai.cotal.priced`) are
|
|
219
|
+
* what the serve boundary's pre-effect gate keys on; the rest are vocabulary. */
|
|
220
|
+
traits: readonly string[];
|
|
221
|
+
}
|
|
222
|
+
/** The registry-authorized serve ARTIFACT {@link authorizeServeGrant} returns: ONE deep-frozen,
|
|
223
|
+
* brand-registered value binding space, registered identity, epoch, owner, registration
|
|
224
|
+
* revision, the FULL registered command set (§13.9: the instance credential binds its whole
|
|
225
|
+
* registered surface; caller-specific scoping happens only in the response-time describe
|
|
226
|
+
* answer, never in the registration), the digest-VERIFIED per-command surface, and the derived
|
|
227
|
+
* descriptor — consumed by both the credential mint (`permissionsFor`/`mintCreds`, profile
|
|
228
|
+
* `endpoint-serve`) and `serveEndpoint`, so neither ever accepts a raw spec/descriptor/command
|
|
229
|
+
* list again. The registry stays discovery (§13.9); this seam is what turns a REGISTRATION
|
|
230
|
+
* into serve authority. */
|
|
231
|
+
export interface EpServeGrant {
|
|
232
|
+
space: string;
|
|
233
|
+
endpoint: string;
|
|
234
|
+
instanceId: string;
|
|
235
|
+
epoch: number;
|
|
236
|
+
/** The registered owner (the only principal this artifact mints for). */
|
|
237
|
+
owner: string;
|
|
238
|
+
/** The `svc….spec` store revision the surface was verified at (§13.7 `registrationRevision`);
|
|
239
|
+
* the mint's issuance fence refuses if the registration has advanced (a re-registration
|
|
240
|
+
* supersedes the branded surface). */
|
|
241
|
+
registrationRevision: number;
|
|
242
|
+
/** The name-authority binding revision the serving owner was verified against (§13.9); the
|
|
243
|
+
* mint's issuance fence refuses if it has advanced (a name transfer supersedes the owner). */
|
|
244
|
+
nameAuthorityRevision: number;
|
|
245
|
+
commands: readonly string[];
|
|
246
|
+
/** Command → its verified registered declaration. */
|
|
247
|
+
surface: Readonly<Record<string, EpCommandAuthority>>;
|
|
248
|
+
/** DERIVED from the verified surface (never caller-asserted): true iff any registered command
|
|
249
|
+
* is `class: "journal"` — the mint emits the shared `eff_<e>` effects bind rows exactly then
|
|
250
|
+
* (§13.9 "the credential also carries the effects bind"; an ephemeral-only endpoint gets
|
|
251
|
+
* none, default-deny both directions). */
|
|
252
|
+
journalClass: boolean;
|
|
253
|
+
/** The endpoint's owned work pools, sorted — PROVISIONING truth (the exact pools whose
|
|
254
|
+
* `pool_<e>_<pool>` durables the provisioner pre-created), asserted by the authorizing
|
|
255
|
+
* provisioner at this boundary because no registered record enumerates pool names (routes
|
|
256
|
+
* are per-acceptance policy decisions, §13.6). Own-endpoint-confined by construction: every
|
|
257
|
+
* emitted row names `pool_<endpoint>_<pool>`, so a wrong pool name binds nothing foreign. */
|
|
258
|
+
pools: readonly string[];
|
|
259
|
+
/** The full authoritative descriptor describe publishes: DERIVED from verified registered
|
|
260
|
+
* bytes, deep-frozen. */
|
|
261
|
+
descriptor: DescribeDescriptor;
|
|
262
|
+
}
|
|
263
|
+
/** Brand registry: authorized artifact → its immutable authorized snapshot. Like the §13.12
|
|
264
|
+
* consumer-config family bond, the brand (not structure) is what the consuming seams check,
|
|
265
|
+
* so a structural copy or post-authorization mutation can never carry serve authority. */
|
|
266
|
+
interface AuthorizedServe {
|
|
267
|
+
space: string;
|
|
268
|
+
endpoint: string;
|
|
269
|
+
instanceId: string;
|
|
270
|
+
epoch: number;
|
|
271
|
+
owner: string;
|
|
272
|
+
registrationRevision: number;
|
|
273
|
+
nameAuthorityRevision: number;
|
|
274
|
+
commands: string[];
|
|
275
|
+
journalClass: boolean;
|
|
276
|
+
pools: string[];
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Authorize a serve credential against the REGISTERED service (§13.9: serving is granted
|
|
280
|
+
* authority, dual to calling — the registry is discovery, the serve grant is the authority).
|
|
281
|
+
* Runs inside the provisioner. The fence, in order:
|
|
282
|
+
* 1. the instance must be REGISTERED (its `svc….spec` record exists) — `failed-precondition`;
|
|
283
|
+
* 2. the credential's holder must BE the registered owner (`permission-denied`), and the name
|
|
284
|
+
* authority is re-checked FRESH (`permission-denied` on drift);
|
|
285
|
+
* 3. every registered cluster is read through the two-stage §13.7 content-address protocol:
|
|
286
|
+
* the MANIFEST is fetched at the registered CLOSURE digest and verified, `members` must be
|
|
287
|
+
* empty (P1 single-document clusters; a non-empty closure is the D8 loader's, refused loud
|
|
288
|
+
* until then), then the ROOT cluster document is fetched at `manifest.root` and verified.
|
|
289
|
+
* The verified documents are the ONLY command source — the FULL union of their declared
|
|
290
|
+
* commands is the surface (no caller subset; caller scoping is response-time describe).
|
|
291
|
+
* `describe` is derived by the row builder, never a registered command;
|
|
292
|
+
* 4. the epoch must EQUAL a fresh read of the authoritative mapping's `processEpoch`
|
|
293
|
+
* (`expired`): a serve credential binds the CURRENT incarnation.
|
|
294
|
+
* The returned artifact carries the verified surface, the derived descriptor, and the
|
|
295
|
+
* registration revision. The MINT's fence is the durable issuance gate ({@link
|
|
296
|
+
* finalizeServeIssuance}), NOT this authorization (a read is never a fence, §13.1): this seam
|
|
297
|
+
* produces the surface, the gate serializes its release against takeover and re-registration.
|
|
298
|
+
*/
|
|
299
|
+
export declare function authorizeServeGrant(kv: KV, args: {
|
|
300
|
+
space: string;
|
|
301
|
+
endpoint: string;
|
|
302
|
+
instanceId: string;
|
|
303
|
+
epoch: number;
|
|
304
|
+
holder: {
|
|
305
|
+
owner: string;
|
|
306
|
+
};
|
|
307
|
+
authority: ServiceNameAuthority;
|
|
308
|
+
readProcessEpoch: () => Promise<number> | number;
|
|
309
|
+
/** The contract-store read seam (§13.7 digest subjects; the D8 tooling provides the
|
|
310
|
+
* production reader): the ARTIFACT stored at a digest subject (`epc.<digest>`) — a
|
|
311
|
+
* cluster MANIFEST at a closure digest, a cluster DOCUMENT at a root artifact digest — or
|
|
312
|
+
* `undefined` when the store has no such artifact (fail-closed). */
|
|
313
|
+
readClusterArtifact: (digest: string) => Promise<unknown> | unknown;
|
|
314
|
+
/** The endpoint's owned work pools (PROVISIONING truth: exactly the pools whose durables
|
|
315
|
+
* the calling provisioner pre-created; omitted = none). Validated tokens, no duplicates,
|
|
316
|
+
* and only meaningful on a journal-class surface — a pool list on an ephemeral-only
|
|
317
|
+
* endpoint is a caller bug and refuses loud. */
|
|
318
|
+
pools?: string[];
|
|
319
|
+
}): Promise<EpServeGrant>;
|
|
320
|
+
/** The brand check every consuming seam runs: `serve` must be the ARTIFACT
|
|
321
|
+
* {@link authorizeServeGrant} returned, field-for-field equal to its authorized snapshot. A
|
|
322
|
+
* structural copy, a raw literal, or a diverging value refuses — serve authority flows only
|
|
323
|
+
* THROUGH the registry authorization. Returns the immutable snapshot (space/owner/epoch/
|
|
324
|
+
* registrationRevision the release fence checks against). */
|
|
325
|
+
export declare function assertServeGrantAuthorized(serve: EpServeGrant): AuthorizedServe;
|
|
326
|
+
/** The mint-side CONTEXT binding (`permissionsFor`, profile `endpoint-serve`): brand + snapshot
|
|
327
|
+
* equality plus the mint context bound to the artifact (same space, and the minted principal
|
|
328
|
+
* IS the registered owner — an authorized artifact for space A/owner X emits rows for no other
|
|
329
|
+
* space or principal). This is NOT the freshness fence: {@link finalizeServeIssuance} is, and
|
|
330
|
+
* `mintCreds` runs it before releasing the credential. */
|
|
331
|
+
export declare function assertServeGrantMintable(serve: EpServeGrant, mint: {
|
|
332
|
+
space: string;
|
|
333
|
+
holderOwner: string;
|
|
334
|
+
}): AuthorizedServe;
|
|
335
|
+
/** The observed state of an instance's durable issuance gate (§13.1: the auth bucket's
|
|
336
|
+
* `gate.<lifecycleUid>`, leader-served with `allow_direct=false` so a read is read-your-writes,
|
|
337
|
+
* never a follower's stale `open`). ONE key binds ALL THREE currency authorities the serve mint
|
|
338
|
+
* depends on: `processEpoch` (advanced by a takeover barrier), `registrationRevision` (advanced
|
|
339
|
+
* by a re-registration barrier), and `nameAuthorityRevision` (advanced when the endpoint NAME's
|
|
340
|
+
* authority binding transfers, §13.9). `generation` is a monotonic freeze/reopen counter (every
|
|
341
|
+
* barrier bumps it, so a superseded mint's rebuilt CAS loses even if two coordinates coincide).
|
|
342
|
+
* `revision` is the KV store revision the mint's CAS and every barrier's freeze pin. */
|
|
343
|
+
export interface EpGateState {
|
|
344
|
+
/** The gate's space. In production the gate physically lives in the per-space
|
|
345
|
+
* `KV_cotal_auth_<space>` bucket (§13.9:2393), so the space is the bucket and cannot be crossed;
|
|
346
|
+
* carrying it here is defense-in-depth for the in-memory seam/fake, so a mint/registration
|
|
347
|
+
* handed a gate constructed for another space is refused rather than trusting the caller wired
|
|
348
|
+
* the right bucket. */
|
|
349
|
+
space: string;
|
|
350
|
+
/** The gate's OWN instance identity, `(endpoint, lifecycleUid)` (§13.1). For an endpoint the
|
|
351
|
+
* lifecycle identity is `instanceId`, which SPEC 13.1:1008-1013 makes unique only within
|
|
352
|
+
* `(space, endpoint)` (its ≥128-bit CSPRNG entropy is what makes the SPEC's `gate.<lifecycleUid>`
|
|
353
|
+
* key collision-free within the space bucket). Binding the ENDPOINT here is the explicit
|
|
354
|
+
* identity check that does not rely on that entropy: a caller that passes a DIFFERENT endpoint's
|
|
355
|
+
* gate sharing the instance token (or any wrong gate) is refused, never confused, and the
|
|
356
|
+
* credential family stays per-`(endpoint, instance)`. The durable keys carry the endpoint
|
|
357
|
+
* explicitly: the normative DISJOINT endpoint families are `epgate.<endpoint>.<instanceId>`
|
|
358
|
+
* and `epcred.<endpoint>.<instanceId>.<credentialId>` (SPEC 13.9/13.12 — disjoint from the
|
|
359
|
+
* agent `gate.<lifecycleUid>`/`cred.…` families by PREFIX, never arity), so the key
|
|
360
|
+
* derivation matches this check rather than leaning on the instance-token entropy alone.
|
|
361
|
+
* The agent families stay endpoint-blind BY DESIGN (a lifecycle uid is space-globally
|
|
362
|
+
* reserved, not an endpoint child). */
|
|
363
|
+
endpoint: string;
|
|
364
|
+
lifecycleUid: string;
|
|
365
|
+
/** The registered serving instance's CONNZ-attributable connection principal (`<owner>.<actor>`
|
|
366
|
+
* dot-form, §13.1:1056-1069): the eviction target, and the value every `epcred` row MUST copy
|
|
367
|
+
* as its `holderPrincipal`. The mint is bound to it — a credential whose minting `owner.actor`
|
|
368
|
+
* is not this principal (a SIBLING ACTOR under the registered owner) cannot win the gate — so
|
|
369
|
+
* the ledger/eviction target can never diverge from the registered serving principal. */
|
|
370
|
+
principal: string;
|
|
371
|
+
state: "open" | "frozen" | "retired";
|
|
372
|
+
generation: number;
|
|
373
|
+
processEpoch: number;
|
|
374
|
+
registrationRevision: number;
|
|
375
|
+
nameAuthorityRevision: number;
|
|
376
|
+
revision: number;
|
|
377
|
+
}
|
|
378
|
+
/** The successor gate coordinate a barrier reopens at (§13.1): the three currency dimensions plus
|
|
379
|
+
* the bumped `generation`. A re-registration advances `registrationRevision`; a takeover advances
|
|
380
|
+
* `processEpoch`; a name transfer advances `nameAuthorityRevision`; each also bumps `generation`. */
|
|
381
|
+
export interface EpGateSuccessor {
|
|
382
|
+
generation: number;
|
|
383
|
+
processEpoch: number;
|
|
384
|
+
registrationRevision: number;
|
|
385
|
+
nameAuthorityRevision: number;
|
|
386
|
+
}
|
|
387
|
+
/** One staged credential-ledger row, durably keyed in the ENDPOINT family
|
|
388
|
+
* `epcred.<endpoint>.<instanceId>.<credentialId>` (SPEC 13.9/13.12; disjoint by prefix from the
|
|
389
|
+
* agent `cred.<lifecycleUid>.…` family, which stays endpoint-blind by design): written BEFORE
|
|
390
|
+
* the winning CAS and carrying the NORMATIVE ledger fields (§13.1) so a later barrier's
|
|
391
|
+
* enumeration can find the credential, prove which surface/incarnation it covered, and EVICT its
|
|
392
|
+
* holder:
|
|
393
|
+
* - `credentialId` is the PER-ISSUED-JWT identity (a digest of the credential), so standing
|
|
394
|
+
* renewal (multiple JWTs for one nkey) writes a DISTINCT row each time — the §13.1 invariant
|
|
395
|
+
* "every credential ever released resolves to a row" holds, and monotonic `state` is never
|
|
396
|
+
* overwritten by a re-mint;
|
|
397
|
+
* - `credentialKey` is the stable holder NKEY the broker revokes by (many JWTs share it);
|
|
398
|
+
* - `holderPrincipal` (owner.actor) is what cluster-wide eviction targets;
|
|
399
|
+
* - `lifecycleUid` is the instance's never-reused lifecycle identity (the gate key);
|
|
400
|
+
* - `sourceChain` is the credential's §13.1 issuance lineage (`root` | `handle.…` | `session.…`);
|
|
401
|
+
* - `state` is monotonic — a barrier flips `active`→`revoked`, never back;
|
|
402
|
+
* - `exp` is the credential's expiry (for ledger audit/GC);
|
|
403
|
+
* - the three currency coordinates + `generation` pin the incarnation the surface covered. */
|
|
404
|
+
export interface EpServeLedgerRow {
|
|
405
|
+
credentialId: string;
|
|
406
|
+
credentialKey: string;
|
|
407
|
+
holderPrincipal: string;
|
|
408
|
+
/** The served endpoint — the instance token is unique only within `(space, endpoint)`, so the
|
|
409
|
+
* credential family is keyed by `(endpoint, lifecycleUid)`, never the instance token alone. */
|
|
410
|
+
endpoint: string;
|
|
411
|
+
lifecycleUid: string;
|
|
412
|
+
sourceChain: readonly string[];
|
|
413
|
+
state: "active" | "revoked";
|
|
414
|
+
exp?: number;
|
|
415
|
+
generation: number;
|
|
416
|
+
processEpoch: number;
|
|
417
|
+
registrationRevision: number;
|
|
418
|
+
nameAuthorityRevision: number;
|
|
419
|
+
}
|
|
420
|
+
/** The MINT half of the durable, single-key issuance-gate seam the serve release fence rides
|
|
421
|
+
* (§13.1). One gate per instance; production wires it to the endpoint family's
|
|
422
|
+
* `epgate.<endpoint>.<instanceId>` in the credential ledger (the auth implementation's
|
|
423
|
+
* `kvServeIssuanceGate`; `allow_direct=false`, revision-pinned CAS). A takeover, a
|
|
424
|
+
* re-registration, and a name transfer are each a {@link EpIssuanceBarrier} that CASes this SAME
|
|
425
|
+
* key to `frozen` before proceeding and reopens it at the successor coordinate, so mint-finalize
|
|
426
|
+
* and every barrier serialize on one key — never a pseudo-transaction across two. */
|
|
427
|
+
export interface EpIssuanceGate {
|
|
428
|
+
/** Leader-served read of the gate; `null` when there is no gate for this instance (fail
|
|
429
|
+
* closed — a serve credential never mints against a missing gate). */
|
|
430
|
+
observe: () => Promise<EpGateState | null> | EpGateState | null;
|
|
431
|
+
/** Write the staged credential-ledger row (the §13.1 "write rows" step), before the CAS.
|
|
432
|
+
* CREATE-ONLY / idempotent-if-identical: staging a `credentialId` that is already present must
|
|
433
|
+
* succeed only when the row is byte-identical (a retry of the SAME issuance), and CONFLICT when
|
|
434
|
+
* it differs (a different holder/lineage must never overwrite the row revocation/audit relies
|
|
435
|
+
* on). Because `credentialId` is a per-JWT digest, a re-mint is a new id, never an overwrite. */
|
|
436
|
+
stage: (row: EpServeLedgerRow) => Promise<void> | void;
|
|
437
|
+
/** Revision-pinned CAS: keep the gate `open`, unchanged, at `expectedRevision`. TRUE iff this
|
|
438
|
+
* mint won the single-key serialization; FALSE on any change (a freeze/retire, or a
|
|
439
|
+
* reopen at a new generation/epoch/registrationRevision/nameAuthorityRevision advanced the
|
|
440
|
+
* revision). */
|
|
441
|
+
commit: (expectedRevision: number) => Promise<boolean> | boolean;
|
|
442
|
+
/** Mark the staged row revoked on CAS loss / abort (the credential is never released). */
|
|
443
|
+
revoke: (row: EpServeLedgerRow) => Promise<void> | void;
|
|
444
|
+
}
|
|
445
|
+
/** The BARRIER half of the SAME single-key gate (§13.1): the typed protocol a takeover, a
|
|
446
|
+
* re-registration, or a name transfer runs to serialize itself against in-flight serve mints —
|
|
447
|
+
* NOT ad-hoc mutation. A barrier freezes the gate FIRST (so a fresh mint observes `frozen` and
|
|
448
|
+
* refuses, and a staged-but-uncommitted mint loses its revision-pinned CAS), enumerates the
|
|
449
|
+
* ledger rows the superseded surface authorized, revokes/evicts them, then reopens at the
|
|
450
|
+
* successor coordinate (advancing the dimension it changed). Both halves are exported TOGETHER
|
|
451
|
+
* so core never publishes an independently-callable unsafe writer beside the fence: the spec
|
|
452
|
+
* writer {@link registerServiceInstance} drives this seam and has no bare spec-key advance. */
|
|
453
|
+
export interface EpIssuanceBarrier {
|
|
454
|
+
/** Leader-served read of the gate (same key as the mint's {@link EpIssuanceGate.observe}). */
|
|
455
|
+
observe: () => Promise<EpGateState | null> | EpGateState | null;
|
|
456
|
+
/** Revision-pinned CAS `open` → `frozen` at `expectedRevision`, returning the FENCING TOKEN
|
|
457
|
+
* (the frozen store revision) on success, or `null` on loss (another barrier froze/reopened,
|
|
458
|
+
* or the gate retired) — a loser MUST abort and never write the spec. The token is consumed by
|
|
459
|
+
* {@link reopen} so ONLY the barrier that still holds its freeze can reopen: a stalled/duplicate
|
|
460
|
+
* barrier resuming after a reconciler cannot clobber the newer gate (§13.1). */
|
|
461
|
+
freeze: (expectedRevision: number) => Promise<number | null> | number | null;
|
|
462
|
+
/** Enumerate the credential-ledger rows under the frozen gate (§13.1 "enumerate the family"):
|
|
463
|
+
* every credential the incarnation the barrier supersedes authorized. */
|
|
464
|
+
enumerate: () => Promise<EpServeLedgerRow[]> | EpServeLedgerRow[];
|
|
465
|
+
/** Flip one enumerated row `active`→`revoked` (§13.1: enforce revocation on the ledger). */
|
|
466
|
+
revoke: (row: EpServeLedgerRow) => Promise<void> | void;
|
|
467
|
+
/** VERIFIED cluster-wide eviction of a revoked `holderPrincipal` (§13.1): enforce the
|
|
468
|
+
* revocation on every server, evict the principal's live connections, and RE-SCAN — returning
|
|
469
|
+
* `true` only when the principal is verified GONE. FAIL-CLOSED: `false` (or a throw) means the
|
|
470
|
+
* barrier MUST NOT complete (no spec write, no reopen); the gate stays frozen for reconciliation
|
|
471
|
+
* so old authority is never published-over while it is still live. */
|
|
472
|
+
evict: (holderPrincipal: string) => Promise<boolean> | boolean;
|
|
473
|
+
/** Token-pinned CAS `frozen` → `open` at the successor coordinate (§13.1). TRUE iff the gate is
|
|
474
|
+
* still frozen at THIS barrier's `token`; FALSE if a reconciler/newer barrier superseded it (a
|
|
475
|
+
* stale reopen loses and never clobbers the newer gate). Advances the currency the barrier
|
|
476
|
+
* changed, so a superseded mint's rebuilt CAS still loses. */
|
|
477
|
+
reopen: (token: number, successor: EpGateSuccessor) => Promise<boolean> | boolean;
|
|
478
|
+
}
|
|
479
|
+
/** The minted-credential context the release fence records into its §13.1 ledger row: the
|
|
480
|
+
* credential's own identity, its holder ACTOR (the owner comes from the authorized grant, so the
|
|
481
|
+
* eviction target `holderPrincipal` = `owner.actor`), its provenance lineage, and its expiry.
|
|
482
|
+
* `mintCreds` supplies these from the same values it stamps into the JWT — the ledger row and
|
|
483
|
+
* the credential describe ONE credential, never two. */
|
|
484
|
+
export interface EpServeCredential {
|
|
485
|
+
/** PER-ISSUED-JWT identity (a digest of the credential): the ledger key, unique per JWT so a
|
|
486
|
+
* standing renewal never overwrites the prior row. */
|
|
487
|
+
credentialId: string;
|
|
488
|
+
/** The stable holder NKEY (public key) the broker revokes by; many JWTs share it. */
|
|
489
|
+
credentialKey: string;
|
|
490
|
+
/** The holder's actor (owner.actor is the §13.1 eviction target). */
|
|
491
|
+
holderActor: string;
|
|
492
|
+
/** The credential's §13.1 issuance lineage: each element `root` | `handle.<issuerKeyId>.<id>` |
|
|
493
|
+
* `session.<sessionId>` (a root serve mint is `["root"]`). */
|
|
494
|
+
sourceChain: readonly string[];
|
|
495
|
+
/** The credential's expiry (unix seconds), or `undefined` for a non-expiring credential. */
|
|
496
|
+
exp?: number;
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* The serve-credential release fence (§13.1 "observe gate → write rows → CAS the gate →
|
|
500
|
+
* release"). `mintCreds` calls this AFTER building the credential and BEFORE returning it, so a
|
|
501
|
+
* credential is released only when its ledger row is durably written and its winning CAS proves
|
|
502
|
+
* the gate was still `open` at the SAME `(processEpoch, registrationRevision, nameAuthorityRevision)`
|
|
503
|
+
* the artifact was verified against:
|
|
504
|
+
* - observe the gate; a missing gate or a `frozen`/`retired` state refuses (`expired`);
|
|
505
|
+
* - the observed `processEpoch`, `registrationRevision`, and `nameAuthorityRevision` MUST each
|
|
506
|
+
* equal the artifact's — a takeover (epoch), a re-registration (revision), or a name transfer
|
|
507
|
+
* (name authority) that already froze+reopened advanced one of them, and this mint's surface
|
|
508
|
+
* or its owner is superseded (`expired`);
|
|
509
|
+
* - stage the NORMATIVE ledger row (`holderPrincipal`/`lifecycleUid`/`sourceChain`/`state`/`exp`
|
|
510
|
+
* plus the three currency coordinates), then revision-pinned CAS the gate; a LOSS (a
|
|
511
|
+
* concurrent barrier's freeze CAS won the single key) revokes the staged row and releases
|
|
512
|
+
* nothing (`expired`).
|
|
513
|
+
* The race is closed by serialization on ONE key: a mint that wins wrote its row before its
|
|
514
|
+
* winning CAS, so a later barrier enumerates and revokes/evicts it by `holderPrincipal`; a mint
|
|
515
|
+
* that loses never released.
|
|
516
|
+
*/
|
|
517
|
+
export declare function finalizeServeIssuance(gate: EpIssuanceGate, serve: EpServeGrant, credential: EpServeCredential): Promise<void>;
|
|
518
|
+
//# sourceMappingURL=endpoint-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-service.d.ts","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
|