@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
package/dist/subjects.d.ts
CHANGED
|
@@ -72,6 +72,27 @@ export declare function principalKey(owner: string, actor: string): {
|
|
|
72
72
|
key: string;
|
|
73
73
|
name: string;
|
|
74
74
|
};
|
|
75
|
+
export declare function assertLifecycleToken(v: string, what?: string): string;
|
|
76
|
+
/** Mint a fresh lifecycle UID: `[a-z0-9]{26,32}`, >=128 bits of CSPRNG entropy (SPEC §13.1). 20
|
|
77
|
+
* random bytes (160 bits) render to at most 31 base36 chars; left-padding to 26 keeps the rare
|
|
78
|
+
* short render in-grammar without losing entropy. The UID is minted ONCE per lifecycle by the
|
|
79
|
+
* provisioning path and preserved across supervised restarts — never re-minted per process. */
|
|
80
|
+
export declare function mintLifecycleUid(): string;
|
|
81
|
+
/** The lifecycle-scoped JetStream-name form `<owner>-<actor>-<lifecycleUid>` (SPEC §13.1 "the UID is
|
|
82
|
+
* part of the resource NAME"). Injective: owner/actor tokens ban `-` (see {@link principalKey}), the
|
|
83
|
+
* UID is `[a-z0-9]` (dash-free), and `-` is the sole separator. */
|
|
84
|
+
export declare function lifecycleNameKey(owner: string, actor: string, lifecycleUid: string): string;
|
|
85
|
+
/** The lifecycle-scoped subject/KV dot-form `<owner>.<actor>.<lifecycleUid>` (ACL rows, member-row
|
|
86
|
+
* principals, dinbox/dlv subject tails). Injective: owner/actor are dot-free tokens and the UID is
|
|
87
|
+
* `[a-z0-9]`, so exactly three dot-separated tokens. */
|
|
88
|
+
export declare function lifecycleSubjectKey(owner: string, actor: string, lifecycleUid: string): string;
|
|
89
|
+
/** Inverse of {@link lifecycleSubjectKey}: split `<owner>.<actor>.<uid>` back into its three tokens,
|
|
90
|
+
* or `null` if the string is not exactly that shape. */
|
|
91
|
+
export declare function parseLifecycleSubjectKey(key: string): {
|
|
92
|
+
owner: string;
|
|
93
|
+
actor: string;
|
|
94
|
+
lifecycleUid: string;
|
|
95
|
+
} | null;
|
|
75
96
|
/** Principal key form for subjects and KV keys. Alias for callers/tests that need one form explicitly. */
|
|
76
97
|
export declare function principalSubjectKey(owner: string, actor: string): string;
|
|
77
98
|
/** Principal key form for JetStream names. Alias for callers/tests that need one form explicitly. */
|
|
@@ -81,12 +102,24 @@ export declare function principalNameKey(owner: string, actor: string): string;
|
|
|
81
102
|
* single `.` separates them unambiguously — exactly two segments, both {@link assertValidOwnerToken}-valid.
|
|
82
103
|
* Used where a stored principal (a member/from.id dot-form) must be re-split to feed the owner+actor
|
|
83
104
|
* subject builders (e.g. fan-out → `dinboxSubject`). */
|
|
84
|
-
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
|
|
105
|
+
/** A deprovision target is a LIFECYCLE, never an alias (SPEC §13.1 "the teardown credential is
|
|
106
|
+
* minted target-pinned to `(principal, lifecycleUid)` by exact name"): the principal dot-form
|
|
107
|
+
* (`u_….<actor>`, user-mode agents) or a bare static/dev actor id (an nkey pub — never contains a
|
|
108
|
+
* dot, keyed under {@link DEV_OWNER}), PLUS the lifecycle UID of exactly the incarnation being torn
|
|
109
|
+
* down. A stale/replayed teardown for a retired lifecycle then names only retired resources — it is
|
|
110
|
+
* broker-denied against a same-alias successor. */
|
|
111
|
+
export interface DeprovisionTarget {
|
|
112
|
+
/** `<owner>.<actor>` dot-form, or a bare static actor id. */
|
|
113
|
+
principal: string;
|
|
114
|
+
/** The retired/target incarnation's lifecycle UID — the successor's differs by construction. */
|
|
115
|
+
lifecycleUid: string;
|
|
116
|
+
}
|
|
117
|
+
/** Resolve a deprovision target to its `(owner, actor, lifecycleUid)` triple. Shared by the
|
|
118
|
+
* deprovisioner permission pin and the teardown helper so they can't diverge. */
|
|
119
|
+
export declare function deprovisionTargetPrincipal(target: DeprovisionTarget): {
|
|
88
120
|
owner: string;
|
|
89
121
|
actor: string;
|
|
122
|
+
lifecycleUid: string;
|
|
90
123
|
};
|
|
91
124
|
export declare function parsePrincipalKey(key: string): {
|
|
92
125
|
owner: string;
|
|
@@ -254,6 +287,16 @@ export declare const CONTROL_DELIVERY: "delivery";
|
|
|
254
287
|
* cred is default-denied — nats-server is the boundary, same pattern as {@link CONTROL_ADMIN});
|
|
255
288
|
* the `delivery` cred holds the serve + bounded-reply side. */
|
|
256
289
|
export declare const CONTROL_DELIVERY_ADMIN: "delivery-admin";
|
|
290
|
+
/** The AUTH service's control rail (#29 piece 3; SPEC 13.2 reserved): lifecycle-authority ops the
|
|
291
|
+
* AUTH plane serves — the D5 split's other half (retirement is the auth plane's operation; it
|
|
292
|
+
* never rides the DELIVERY daemon's rail). The surface is GENERIC — "retire a lifecycle
|
|
293
|
+
* (owner, actor, lifecycleUid)" — never caller-specific: the manager's despawn is ONE caller,
|
|
294
|
+
* and the serve-time authz (the space-manager-lease holder check, leader-read fresh per
|
|
295
|
+
* request) is the auth service's, not the subject grammar's. Caller attribution is
|
|
296
|
+
* SUBJECT-derived (`ctl.auth-admin.<owner>.<actor>`, broker-ACL-enforced): only a credential
|
|
297
|
+
* minted with that principal's request-publish grant reaches it, and replies are bound under
|
|
298
|
+
* the sender's own `<request>.reply.>` subtree. */
|
|
299
|
+
export declare const CONTROL_AUTH_ADMIN: "auth-admin";
|
|
257
300
|
/** The three control-plane tiers the manager serves — values tie to the `CONTROL_*` service
|
|
258
301
|
* names so handler routing can't drift from the subject names. */
|
|
259
302
|
export type ControlTier = typeof CONTROL_PRIVILEGED | typeof CONTROL_SELF_SERVICE | typeof CONTROL_ADMIN;
|
|
@@ -311,19 +354,22 @@ export declare const CHANNEL_DEFAULTS_KEY = "=defaults";
|
|
|
311
354
|
* owner) under {@link memberKey}; the source of truth for `channelMembers()` and the fan-out's
|
|
312
355
|
* member list, moved off JetStream consumer topology (which core-sub joins don't create). */
|
|
313
356
|
export declare function membersBucket(space: string): string;
|
|
314
|
-
/** KV key for one membership record: `<channel>/<principal>`, where
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
*
|
|
357
|
+
/** KV key for one membership record: `<channel>/<principal>.<lifecycleUid>`, where the tail is the
|
|
358
|
+
* member's lifecycle-scoped dot-form ({@link lifecycleSubjectKey}, SPEC §13.1: membership rows are
|
|
359
|
+
* lifecycle-keyed, so a same-alias successor starts unjoined and inherits no cursors — the
|
|
360
|
+
* join/leave cursors ride this row). The channel is concrete (no `*`/`>`, validated at the write
|
|
361
|
+
* path) so it is dotted-but-`/`-free, and the tail is `[A-Za-z0-9_.]` (also `/`-free), so the single
|
|
362
|
+
* `/` separates them unambiguously — both halves recover via {@link parseMemberKey}. `/`, `.`, and
|
|
363
|
+
* `[A-Za-z0-9_]` are all legal KV-key chars (`/^[-/=.\w]+$/`), so no encoding is needed. */
|
|
364
|
+
export declare function memberKey(channel: string, principal: string, lifecycleUid: string): string;
|
|
365
|
+
/** Inverse of {@link memberKey}: split a member key back into `{ channel, principal, lifecycleUid }`,
|
|
366
|
+
* or `null` if it isn't one (no `/`, or the tail is not a lifecycle-scoped dot-form). Splits on the
|
|
367
|
+
* single `/`, then peels the trailing `.<uid>` token — owner/actor tokens are dot-free, so the last
|
|
368
|
+
* dot separates the uid unambiguously. */
|
|
324
369
|
export declare function parseMemberKey(key: string): {
|
|
325
370
|
channel: string;
|
|
326
371
|
principal: string;
|
|
372
|
+
lifecycleUid: string;
|
|
327
373
|
} | null;
|
|
328
374
|
/** Name of the KV bucket holding the durable read-ACL registry (Plane-3) for a space — a
|
|
329
375
|
* privileged-write sibling of the members/channels buckets. One record per OWNER (key = owner id),
|
|
@@ -332,11 +378,16 @@ export declare function parseMemberKey(key: string): {
|
|
|
332
378
|
* stateless, server-side daemon re-reads it on boot (fixes the restart-fragility nak-loop). It is
|
|
333
379
|
* ALSO what the daemon validates a runtime durable-join against (channel ∈ the owner's ACL). */
|
|
334
380
|
export declare function aclBucket(space: string): string;
|
|
335
|
-
/** KV key for one
|
|
336
|
-
*
|
|
337
|
-
* is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do
|
|
338
|
-
* which rewrites `.`→`_` and would alias distinct principals onto one
|
|
339
|
-
|
|
381
|
+
/** KV key for one lifecycle's read-ACL record: `<owner>.<actor>.<lifecycleUid>` (SPEC §13.1: ACL rows
|
|
382
|
+
* are lifecycle-keyed, so the deprovisioner's exact-key delete grant can never name a same-alias
|
|
383
|
+
* successor's row). The dot-form is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do
|
|
384
|
+
* NOT run it through `token()`, which rewrites `.`→`_` and would alias distinct principals onto one
|
|
385
|
+
* key. Alias-level lookups that hold no uid enumerate `aclAliasFilter` and REFUSE ambiguity. */
|
|
386
|
+
export declare function aclKey(principal: string, lifecycleUid: string): string;
|
|
387
|
+
/** KV key filter matching every lifecycle row of one alias: `<owner>.<actor>.*`. For the bounded
|
|
388
|
+
* alias-level enumeration (join authz, deprovision-by-alias refusal): AT MOST ONE live row per alias
|
|
389
|
+
* is the §13.1 invariant, and a reader that finds two MUST fail loud, never take first-match. */
|
|
390
|
+
export declare function aclAliasFilter(principal: string): string;
|
|
340
391
|
/** Name of the KV bucket holding the derived channel-membership feed for a space (data-account, derived
|
|
341
392
|
* from CONNZ ∪ the members registry). One entry per AGENT (key = the agent nkey / `card.id`); value is a
|
|
342
393
|
* {@link import("./types.js").ChannelMembership}. Per-agent keying (not per-channel) keeps keys dot-free
|
|
@@ -427,23 +478,29 @@ export declare function taskStream(space: string): string;
|
|
|
427
478
|
export declare function inboxStream(space: string): string;
|
|
428
479
|
/** Stream capturing `dlv.>` — the per-member post-auth delivery store (agent binds + acks). */
|
|
429
480
|
export declare function dlvStream(space: string): string;
|
|
430
|
-
/** Subject of a
|
|
431
|
-
* the fan-out delivers a per-member copy
|
|
432
|
-
*
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
*
|
|
481
|
+
/** Subject of a lifecycle's mixed durable inbox: `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`
|
|
482
|
+
* (one per LIFECYCLE, SPEC §13.1: the fan-out delivers a per-member copy addressed to the member
|
|
483
|
+
* row's recorded lifecycle, so a same-alias successor inherits no pending entries). Identity slots
|
|
484
|
+
* accept `*` for the daemon's fan-out write grant (`dinbox.*.*.*`). */
|
|
485
|
+
export declare function dinboxSubject(space: string, owner: string, actor: string, lifecycleUid: string): string;
|
|
486
|
+
/** Subject of a lifecycle's post-auth delivery: `cotal.<space>.dlv.<owner>.<actor>.<lifecycleUid>`. */
|
|
487
|
+
export declare function dlvSubject(space: string, owner: string, actor: string, lifecycleUid: string): string;
|
|
488
|
+
/** Parse the lifecycle-scoped principal out of a mixed-inbox subject
|
|
489
|
+
* `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`, or null. The trusted reader is a SINGLE
|
|
490
|
+
* consumer over `dinbox.>` (all principals), so it recovers the per-message owner+actor+lifecycle
|
|
491
|
+
* from the subject (split only — the broker forge-locked the slots at write). A 5-segment pre-cut
|
|
492
|
+
* subject parses to null and the reader refuses it loudly rather than delivering unattributed. */
|
|
439
493
|
export declare function parseDinboxPrincipal(subject: string): {
|
|
440
494
|
owner: string;
|
|
441
495
|
actor: string;
|
|
496
|
+
lifecycleUid: string;
|
|
442
497
|
} | null;
|
|
443
|
-
/**
|
|
444
|
-
* durable NAME is the
|
|
445
|
-
*
|
|
446
|
-
|
|
498
|
+
/** A lifecycle's bind-only per-member consumer on {@link dlvStream} (filter
|
|
499
|
+
* `dlv.<owner>.<actor>.<lifecycleUid>`). The durable NAME is the lifecycle-scoped dash-form
|
|
500
|
+
* (`dlv_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1/§8): the UID in the NAME is what lets the
|
|
501
|
+
* deprovisioner be target-pinned by exact name, so a stale teardown credential structurally cannot
|
|
502
|
+
* reach a same-alias successor's consumer. */
|
|
503
|
+
export declare function dlvDurable(owner: string, actor: string, lifecycleUid: string): string;
|
|
447
504
|
/** The single privileged fan-out consumer on the CHAT stream (delivery-daemon-pumped; routing, not
|
|
448
505
|
* auth). N=1 keeps this exact name (see {@link fanoutDurable}). */
|
|
449
506
|
export declare const FANOUT_DURABLE: "fanout";
|
|
@@ -461,14 +518,17 @@ export declare function readerDurable(shard?: number, shards?: number): string;
|
|
|
461
518
|
* read-ACL conformance test asserts an agent can NOT create — it has no live callers, the live read is
|
|
462
519
|
* now a native core subscription. Principal name-form (`chat_<owner>-<actor>`) for namespace consistency. */
|
|
463
520
|
export declare function chatDurable(owner: string, actor: string): string;
|
|
464
|
-
/** Consumer name for
|
|
465
|
-
* drop-marker). A single per-
|
|
466
|
-
* (`chathist_<owner>-<actor
|
|
467
|
-
* a peer can never bind it — while the
|
|
468
|
-
* pins to `allowSubscribe`. */
|
|
469
|
-
export declare function chatHistDurable(owner: string, actor: string): string;
|
|
470
|
-
/** Durable consumer name for
|
|
471
|
-
|
|
521
|
+
/** Consumer name for a lifecycle's short-lived chat **history** reads (join-backfill, focus-recall,
|
|
522
|
+
* drop-marker). A single per-lifecycle name in the lifecycle-scoped dash-form
|
|
523
|
+
* (`chathist_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1) so its create/info/fetch/delete grants
|
|
524
|
+
* name-scope to that lifecycle — a peer or a same-alias successor can never bind it — while the
|
|
525
|
+
* per-read single `filter_subject` is what the create-time ACL pins to `allowSubscribe`. */
|
|
526
|
+
export declare function chatHistDurable(owner: string, actor: string, lifecycleUid: string): string;
|
|
527
|
+
/** Durable consumer name for a lifecycle's private DM inbox — the lifecycle-scoped dash-form
|
|
528
|
+
* (`dm_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1). The DM SUBJECTS (`inst.>`) keep the alias
|
|
529
|
+
* grammar; the backing consumer is lifecycle-keyed and starts at the activation frontier
|
|
530
|
+
* ({@link import("./streams.js").dmDurableConfig}), so a successor inherits no predecessor DMs. */
|
|
531
|
+
export declare function dmDurable(owner: string, actor: string, lifecycleUid: string): string;
|
|
472
532
|
/** Durable consumer name (shared across instances of a role) for the task queue. */
|
|
473
533
|
export declare function taskDurable(service: string): string;
|
|
474
534
|
//# sourceMappingURL=subjects.d.ts.map
|
package/dist/subjects.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,gEAAgE;AAChE,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvC;AAED,eAAO,MAAM,IAAI,UAAU,CAAC;AAE5B,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;gFAEgF;AAChF,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAI3E;AAyCD;;6DAE6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhG;AAED;iFACiF;AACjF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;iCAEiC;AACjC,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAUxE;AAED;;;;;;;;;;yDAUyD;AACzD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiB1D;AAED;;;;;;;;;;;;6FAY6F;AAC7F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED;;;;;;;;;;;;iGAYiG;AACjG,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAIxF;AAUD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,SAAiB,GAAG,MAAM,CAG7E;AAED;;;gGAGgG;AAChG,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;oEAEoE;AACpE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED;;yDAEyD;AACzD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED;yDACyD;AACzD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOnH;AAED,0GAA0G;AAC1G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;yDAIyD;AACzD;;;;;oDAKoD;AACpD,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;kFACkF;AAClF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAG5H;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQtF;AAED;;;;;;;4GAO4G;AAC5G,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;;;;;qGAOqG;AACrG,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;;;gFAIgF;AAChF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAGpE;AAED;;;;oDAIoD;AACpD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAWpF;AAED;;;;gEAIgE;AAChE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED;;;;;;;;qGAQqG;AACrG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAE9G;AAED;;;;6FAI6F;AAC7F,eAAO,MAAM,SAAS,UAAU,CAAC;AAEjC,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;;;;;;;;;;+DAW+D;AAC/D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;;;;;;;;;4GAU4G;AAC5G,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAWpG;AAED;;;;qGAIqG;AACrG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAyB,GAAG,OAAO,CAOnH;AAED;;;;2FAI2F;AAC3F,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;mEAKmE;AACnE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAgBnE;AAED;;;+FAG+F;AAC/F,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;2FAI2F;AAC3F,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAGnE;AAED;;;;uDAIuD;AACvD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED;+FAC+F;AAC/F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;0FAC0F;AAC1F,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnG;AAED;6FAC6F;AAC7F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;+GAC+G;AAC/G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1G;AAED;;;;;;;;8DAQ8D;AAC9D,eAAO,MAAM,kBAAkB,EAAG,SAAkB,CAAC;AACrD,eAAO,MAAM,oBAAoB,EAAG,MAAe,CAAC;AACpD,eAAO,MAAM,aAAa,EAAG,OAAgB,CAAC;AAC9C;;;;;;;4FAO4F;AAC5F,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAC;AACpD;;;;;gEAKgE;AAChE,eAAO,MAAM,sBAAsB,EAAG,gBAAyB,CAAC;AAChE;;;;;;;;oDAQoD;AACpD,eAAO,MAAM,kBAAkB,EAAG,YAAqB,CAAC;AACxD;mEACmE;AACnE,MAAM,MAAM,WAAW,GAAG,OAAO,kBAAkB,GAAG,OAAO,oBAAoB,GAAG,OAAO,aAAa,CAAC;AAEzG,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;0DAC0D;AAC1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,yFAAyF;AACzF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D;;;;4FAI4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,uHAAuH;IACvH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAmBlE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAI/D;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;wFACwF;AACxF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;0FAE0F;AAC1F,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD;;;8FAG8F;AAC9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;6FAM6F;AAC7F,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED;;;2CAG2C;AAC3C,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAW/G;AAED;;;;;iGAKiG;AACjG,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;iGAIiG;AACjG,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;kGAEkG;AAClG,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AASD;;;;8FAI8F;AAC9F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;gFAIgF;AAChF,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;qCAIqC;AACrC,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C;;;aAGa;AACb,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE;;;0GAG0G;AAC1G,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;uGAGuG;AACvG,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AACD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;;;0GAM0G;AAC1G,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;;;;kCAakC;AAClC,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzF;AAED;;;;;0GAK0G;AAC1G,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;0GAG0G;AAC1G,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AACD,wFAAwF;AACxF,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC;;;;;kBAKkB;AAClB,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQxD;AAID,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAWD,0GAA0G;AAC1G,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;wEAGwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvG;AAED,uGAAuG;AACvG,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEpG;AAED;;;;mGAImG;AACnG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMnH;AAED;;;;+CAI+C;AAC/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;oEACoE;AACpE,eAAO,MAAM,cAAc,EAAG,QAAiB,CAAC;AAEhD;;4EAE4E;AAC5E,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AAEtD;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,KAAK,SAAI,EAAE,MAAM,SAAI,GAAG,MAAM,CAE3D;AAED,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,KAAK,SAAI,EAAE,MAAM,SAAI,GAAG,MAAM,CAE3D;AAED;;8GAE8G;AAC9G,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;6FAI6F;AAC7F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED;;;oGAGoG;AACpG,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|
package/dist/subjects.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Presence lives in a JetStream KV bucket, not a subject (see presenceBucket()).
|
|
12
12
|
*/
|
|
13
|
+
import { randomBytes } from "node:crypto";
|
|
13
14
|
const ILLEGAL = /[^A-Za-z0-9_-]/g;
|
|
14
15
|
/** Make a string safe to use as a single NATS subject token. */
|
|
15
16
|
export function token(s) {
|
|
@@ -165,6 +166,50 @@ export function principalKey(owner, actor) {
|
|
|
165
166
|
assertValidOwnerToken(actor);
|
|
166
167
|
return { key: `${owner}.${actor}`, name: `${owner}-${actor}` };
|
|
167
168
|
}
|
|
169
|
+
// ---- Lifecycle UID (SPEC §13.1) ----
|
|
170
|
+
//
|
|
171
|
+
// One grammar bounds both `lifecycleUid` and the endpoint-surface `instanceId` (§13.1/§13.2) —
|
|
172
|
+
// deliberately a single definition so the bound cannot drift. Defined HERE (the module with no
|
|
173
|
+
// local imports) because the messaging plane needs it for lifecycle-keyed resource names;
|
|
174
|
+
// endpoint-subjects re-exports it for the endpoint rails.
|
|
175
|
+
const LIFECYCLE_TOKEN = /^[a-z0-9]{26,32}$/;
|
|
176
|
+
export function assertLifecycleToken(v, what = "lifecycleUid") {
|
|
177
|
+
if (!LIFECYCLE_TOKEN.test(v))
|
|
178
|
+
throw new Error(`${what} "${v}" is not a valid lifecycle token ([a-z0-9]{26,32})`);
|
|
179
|
+
return v;
|
|
180
|
+
}
|
|
181
|
+
/** Mint a fresh lifecycle UID: `[a-z0-9]{26,32}`, >=128 bits of CSPRNG entropy (SPEC §13.1). 20
|
|
182
|
+
* random bytes (160 bits) render to at most 31 base36 chars; left-padding to 26 keeps the rare
|
|
183
|
+
* short render in-grammar without losing entropy. The UID is minted ONCE per lifecycle by the
|
|
184
|
+
* provisioning path and preserved across supervised restarts — never re-minted per process. */
|
|
185
|
+
export function mintLifecycleUid() {
|
|
186
|
+
return assertLifecycleToken(BigInt(`0x${randomBytes(20).toString("hex")}`).toString(36).padStart(26, "0"));
|
|
187
|
+
}
|
|
188
|
+
/** The lifecycle-scoped JetStream-name form `<owner>-<actor>-<lifecycleUid>` (SPEC §13.1 "the UID is
|
|
189
|
+
* part of the resource NAME"). Injective: owner/actor tokens ban `-` (see {@link principalKey}), the
|
|
190
|
+
* UID is `[a-z0-9]` (dash-free), and `-` is the sole separator. */
|
|
191
|
+
export function lifecycleNameKey(owner, actor, lifecycleUid) {
|
|
192
|
+
return `${principalKey(owner, actor).name}-${assertLifecycleToken(lifecycleUid)}`;
|
|
193
|
+
}
|
|
194
|
+
/** The lifecycle-scoped subject/KV dot-form `<owner>.<actor>.<lifecycleUid>` (ACL rows, member-row
|
|
195
|
+
* principals, dinbox/dlv subject tails). Injective: owner/actor are dot-free tokens and the UID is
|
|
196
|
+
* `[a-z0-9]`, so exactly three dot-separated tokens. */
|
|
197
|
+
export function lifecycleSubjectKey(owner, actor, lifecycleUid) {
|
|
198
|
+
return `${principalKey(owner, actor).key}.${assertLifecycleToken(lifecycleUid)}`;
|
|
199
|
+
}
|
|
200
|
+
/** Inverse of {@link lifecycleSubjectKey}: split `<owner>.<actor>.<uid>` back into its three tokens,
|
|
201
|
+
* or `null` if the string is not exactly that shape. */
|
|
202
|
+
export function parseLifecycleSubjectKey(key) {
|
|
203
|
+
if (typeof key !== "string")
|
|
204
|
+
return null;
|
|
205
|
+
const parts = key.split(".");
|
|
206
|
+
if (parts.length !== 3)
|
|
207
|
+
return null;
|
|
208
|
+
const [owner, actor, uid] = parts;
|
|
209
|
+
if (!/^[A-Za-z0-9_]+$/.test(owner) || !/^[A-Za-z0-9_]+$/.test(actor) || !LIFECYCLE_TOKEN.test(uid))
|
|
210
|
+
return null;
|
|
211
|
+
return { owner, actor, lifecycleUid: uid };
|
|
212
|
+
}
|
|
168
213
|
/** Principal key form for subjects and KV keys. Alias for callers/tests that need one form explicitly. */
|
|
169
214
|
export function principalSubjectKey(owner, actor) {
|
|
170
215
|
return principalKey(owner, actor).key;
|
|
@@ -173,16 +218,11 @@ export function principalSubjectKey(owner, actor) {
|
|
|
173
218
|
export function principalNameKey(owner, actor) {
|
|
174
219
|
return principalKey(owner, actor).name;
|
|
175
220
|
}
|
|
176
|
-
/**
|
|
177
|
-
*
|
|
178
|
-
* single `.` separates them unambiguously — exactly two segments, both {@link assertValidOwnerToken}-valid.
|
|
179
|
-
* Used where a stored principal (a member/from.id dot-form) must be re-split to feed the owner+actor
|
|
180
|
-
* subject builders (e.g. fan-out → `dinboxSubject`). */
|
|
181
|
-
/** Resolve a deprovision target: a full principal dot-form (`u_….<actor>`, user-mode agents) or a
|
|
182
|
-
* bare static/dev actor id (an nkey pub — never contains a dot), keyed under {@link DEV_OWNER}.
|
|
183
|
-
* Shared by the deprovisioner permission pin and the teardown helper so they can't diverge. */
|
|
221
|
+
/** Resolve a deprovision target to its `(owner, actor, lifecycleUid)` triple. Shared by the
|
|
222
|
+
* deprovisioner permission pin and the teardown helper so they can't diverge. */
|
|
184
223
|
export function deprovisionTargetPrincipal(target) {
|
|
185
|
-
|
|
224
|
+
const pr = parsePrincipalKey(target.principal) ?? { owner: DEV_OWNER, actor: target.principal };
|
|
225
|
+
return { ...pr, lifecycleUid: assertLifecycleToken(target.lifecycleUid) };
|
|
186
226
|
}
|
|
187
227
|
export function parsePrincipalKey(key) {
|
|
188
228
|
if (typeof key !== "string")
|
|
@@ -448,6 +488,16 @@ export const CONTROL_DELIVERY = "delivery";
|
|
|
448
488
|
* cred is default-denied — nats-server is the boundary, same pattern as {@link CONTROL_ADMIN});
|
|
449
489
|
* the `delivery` cred holds the serve + bounded-reply side. */
|
|
450
490
|
export const CONTROL_DELIVERY_ADMIN = "delivery-admin";
|
|
491
|
+
/** The AUTH service's control rail (#29 piece 3; SPEC 13.2 reserved): lifecycle-authority ops the
|
|
492
|
+
* AUTH plane serves — the D5 split's other half (retirement is the auth plane's operation; it
|
|
493
|
+
* never rides the DELIVERY daemon's rail). The surface is GENERIC — "retire a lifecycle
|
|
494
|
+
* (owner, actor, lifecycleUid)" — never caller-specific: the manager's despawn is ONE caller,
|
|
495
|
+
* and the serve-time authz (the space-manager-lease holder check, leader-read fresh per
|
|
496
|
+
* request) is the auth service's, not the subject grammar's. Caller attribution is
|
|
497
|
+
* SUBJECT-derived (`ctl.auth-admin.<owner>.<actor>`, broker-ACL-enforced): only a credential
|
|
498
|
+
* minted with that principal's request-publish grant reaches it, and replies are bound under
|
|
499
|
+
* the sender's own `<request>.reply.>` subtree. */
|
|
500
|
+
export const CONTROL_AUTH_ADMIN = "auth-admin";
|
|
451
501
|
export function traceSubject(space, agentId) {
|
|
452
502
|
return `${spacePrefix(space)}.trace.${token(agentId)}`;
|
|
453
503
|
}
|
|
@@ -527,23 +577,34 @@ export const CHANNEL_DEFAULTS_KEY = "=defaults";
|
|
|
527
577
|
export function membersBucket(space) {
|
|
528
578
|
return `cotal_members_${token(space)}`;
|
|
529
579
|
}
|
|
530
|
-
/** KV key for one membership record: `<channel>/<principal>`, where
|
|
531
|
-
*
|
|
532
|
-
*
|
|
533
|
-
*
|
|
534
|
-
*
|
|
535
|
-
*
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
*
|
|
580
|
+
/** KV key for one membership record: `<channel>/<principal>.<lifecycleUid>`, where the tail is the
|
|
581
|
+
* member's lifecycle-scoped dot-form ({@link lifecycleSubjectKey}, SPEC §13.1: membership rows are
|
|
582
|
+
* lifecycle-keyed, so a same-alias successor starts unjoined and inherits no cursors — the
|
|
583
|
+
* join/leave cursors ride this row). The channel is concrete (no `*`/`>`, validated at the write
|
|
584
|
+
* path) so it is dotted-but-`/`-free, and the tail is `[A-Za-z0-9_.]` (also `/`-free), so the single
|
|
585
|
+
* `/` separates them unambiguously — both halves recover via {@link parseMemberKey}. `/`, `.`, and
|
|
586
|
+
* `[A-Za-z0-9_]` are all legal KV-key chars (`/^[-/=.\w]+$/`), so no encoding is needed. */
|
|
587
|
+
export function memberKey(channel, principal, lifecycleUid) {
|
|
588
|
+
return `${channel}/${principal}.${assertLifecycleToken(lifecycleUid)}`;
|
|
589
|
+
}
|
|
590
|
+
/** Inverse of {@link memberKey}: split a member key back into `{ channel, principal, lifecycleUid }`,
|
|
591
|
+
* or `null` if it isn't one (no `/`, or the tail is not a lifecycle-scoped dot-form). Splits on the
|
|
592
|
+
* single `/`, then peels the trailing `.<uid>` token — owner/actor tokens are dot-free, so the last
|
|
593
|
+
* dot separates the uid unambiguously. */
|
|
542
594
|
export function parseMemberKey(key) {
|
|
543
595
|
const i = key.indexOf("/");
|
|
544
596
|
if (i <= 0 || i >= key.length - 1)
|
|
545
597
|
return null;
|
|
546
|
-
|
|
598
|
+
const channel = key.slice(0, i);
|
|
599
|
+
const tail = key.slice(i + 1);
|
|
600
|
+
const dot = tail.lastIndexOf(".");
|
|
601
|
+
if (dot <= 0 || dot >= tail.length - 1)
|
|
602
|
+
return null;
|
|
603
|
+
const principal = tail.slice(0, dot);
|
|
604
|
+
const uid = tail.slice(dot + 1);
|
|
605
|
+
if (!LIFECYCLE_TOKEN.test(uid) || parsePrincipalKey(principal) === null)
|
|
606
|
+
return null;
|
|
607
|
+
return { channel, principal, lifecycleUid: uid };
|
|
547
608
|
}
|
|
548
609
|
/** Name of the KV bucket holding the durable read-ACL registry (Plane-3) for a space — a
|
|
549
610
|
* privileged-write sibling of the members/channels buckets. One record per OWNER (key = owner id),
|
|
@@ -554,12 +615,19 @@ export function parseMemberKey(key) {
|
|
|
554
615
|
export function aclBucket(space) {
|
|
555
616
|
return `cotal_acl_${token(space)}`;
|
|
556
617
|
}
|
|
557
|
-
/** KV key for one
|
|
558
|
-
*
|
|
559
|
-
* is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do
|
|
560
|
-
* which rewrites `.`→`_` and would alias distinct principals onto one
|
|
561
|
-
|
|
562
|
-
|
|
618
|
+
/** KV key for one lifecycle's read-ACL record: `<owner>.<actor>.<lifecycleUid>` (SPEC §13.1: ACL rows
|
|
619
|
+
* are lifecycle-keyed, so the deprovisioner's exact-key delete grant can never name a same-alias
|
|
620
|
+
* successor's row). The dot-form is a legal KV key (`/^[-/=.\w]+$/`); pass it through UNCHANGED — do
|
|
621
|
+
* NOT run it through `token()`, which rewrites `.`→`_` and would alias distinct principals onto one
|
|
622
|
+
* key. Alias-level lookups that hold no uid enumerate `aclAliasFilter` and REFUSE ambiguity. */
|
|
623
|
+
export function aclKey(principal, lifecycleUid) {
|
|
624
|
+
return `${principal}.${assertLifecycleToken(lifecycleUid)}`;
|
|
625
|
+
}
|
|
626
|
+
/** KV key filter matching every lifecycle row of one alias: `<owner>.<actor>.*`. For the bounded
|
|
627
|
+
* alias-level enumeration (join authz, deprovision-by-alias refusal): AT MOST ONE live row per alias
|
|
628
|
+
* is the §13.1 invariant, and a reader that finds two MUST fail loud, never take first-match. */
|
|
629
|
+
export function aclAliasFilter(principal) {
|
|
630
|
+
return `${principal}.*`;
|
|
563
631
|
}
|
|
564
632
|
// ---- Authoritative channel membership (broker CONNZ → derived feed) ----
|
|
565
633
|
//
|
|
@@ -708,31 +776,36 @@ export function inboxStream(space) {
|
|
|
708
776
|
export function dlvStream(space) {
|
|
709
777
|
return `DLV_${token(space)}`;
|
|
710
778
|
}
|
|
711
|
-
/** Subject of a
|
|
712
|
-
* the fan-out delivers a per-member copy
|
|
713
|
-
*
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
*
|
|
779
|
+
/** Subject of a lifecycle's mixed durable inbox: `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`
|
|
780
|
+
* (one per LIFECYCLE, SPEC §13.1: the fan-out delivers a per-member copy addressed to the member
|
|
781
|
+
* row's recorded lifecycle, so a same-alias successor inherits no pending entries). Identity slots
|
|
782
|
+
* accept `*` for the daemon's fan-out write grant (`dinbox.*.*.*`). */
|
|
783
|
+
export function dinboxSubject(space, owner, actor, lifecycleUid) {
|
|
784
|
+
return `${spacePrefix(space)}.dinbox.${ownerToken(owner)}.${ownerToken(actor)}.${assertLifecycleToken(lifecycleUid)}`;
|
|
785
|
+
}
|
|
786
|
+
/** Subject of a lifecycle's post-auth delivery: `cotal.<space>.dlv.<owner>.<actor>.<lifecycleUid>`. */
|
|
787
|
+
export function dlvSubject(space, owner, actor, lifecycleUid) {
|
|
788
|
+
return `${spacePrefix(space)}.dlv.${ownerToken(owner)}.${ownerToken(actor)}.${assertLifecycleToken(lifecycleUid)}`;
|
|
789
|
+
}
|
|
790
|
+
/** Parse the lifecycle-scoped principal out of a mixed-inbox subject
|
|
791
|
+
* `cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>`, or null. The trusted reader is a SINGLE
|
|
792
|
+
* consumer over `dinbox.>` (all principals), so it recovers the per-message owner+actor+lifecycle
|
|
793
|
+
* from the subject (split only — the broker forge-locked the slots at write). A 5-segment pre-cut
|
|
794
|
+
* subject parses to null and the reader refuses it loudly rather than delivering unattributed. */
|
|
724
795
|
export function parseDinboxPrincipal(subject) {
|
|
725
796
|
const parts = subject.split(".");
|
|
726
|
-
// cotal.<space>.dinbox.<owner>.<actor>
|
|
727
|
-
return parts.length ===
|
|
728
|
-
? { owner: parts[3], actor: parts[4] }
|
|
797
|
+
// cotal.<space>.dinbox.<owner>.<actor>.<lifecycleUid>
|
|
798
|
+
return parts.length === 6 && parts[0] === ROOT && parts[2] === "dinbox" && LIFECYCLE_TOKEN.test(parts[5])
|
|
799
|
+
? { owner: parts[3], actor: parts[4], lifecycleUid: parts[5] }
|
|
729
800
|
: null;
|
|
730
801
|
}
|
|
731
|
-
/**
|
|
732
|
-
* durable NAME is the
|
|
733
|
-
*
|
|
734
|
-
|
|
735
|
-
|
|
802
|
+
/** A lifecycle's bind-only per-member consumer on {@link dlvStream} (filter
|
|
803
|
+
* `dlv.<owner>.<actor>.<lifecycleUid>`). The durable NAME is the lifecycle-scoped dash-form
|
|
804
|
+
* (`dlv_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1/§8): the UID in the NAME is what lets the
|
|
805
|
+
* deprovisioner be target-pinned by exact name, so a stale teardown credential structurally cannot
|
|
806
|
+
* reach a same-alias successor's consumer. */
|
|
807
|
+
export function dlvDurable(owner, actor, lifecycleUid) {
|
|
808
|
+
return `dlv_${lifecycleNameKey(owner, actor, lifecycleUid)}`;
|
|
736
809
|
}
|
|
737
810
|
/** The single privileged fan-out consumer on the CHAT stream (delivery-daemon-pumped; routing, not
|
|
738
811
|
* auth). N=1 keeps this exact name (see {@link fanoutDurable}). */
|
|
@@ -757,17 +830,20 @@ export function readerDurable(shard = 0, shards = 1) {
|
|
|
757
830
|
export function chatDurable(owner, actor) {
|
|
758
831
|
return `chat_${principalKey(owner, actor).name}`;
|
|
759
832
|
}
|
|
760
|
-
/** Consumer name for
|
|
761
|
-
* drop-marker). A single per-
|
|
762
|
-
* (`chathist_<owner>-<actor
|
|
763
|
-
* a peer can never bind it — while the
|
|
764
|
-
* pins to `allowSubscribe`. */
|
|
765
|
-
export function chatHistDurable(owner, actor) {
|
|
766
|
-
return `chathist_${
|
|
767
|
-
}
|
|
768
|
-
/** Durable consumer name for
|
|
769
|
-
|
|
770
|
-
|
|
833
|
+
/** Consumer name for a lifecycle's short-lived chat **history** reads (join-backfill, focus-recall,
|
|
834
|
+
* drop-marker). A single per-lifecycle name in the lifecycle-scoped dash-form
|
|
835
|
+
* (`chathist_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1) so its create/info/fetch/delete grants
|
|
836
|
+
* name-scope to that lifecycle — a peer or a same-alias successor can never bind it — while the
|
|
837
|
+
* per-read single `filter_subject` is what the create-time ACL pins to `allowSubscribe`. */
|
|
838
|
+
export function chatHistDurable(owner, actor, lifecycleUid) {
|
|
839
|
+
return `chathist_${lifecycleNameKey(owner, actor, lifecycleUid)}`;
|
|
840
|
+
}
|
|
841
|
+
/** Durable consumer name for a lifecycle's private DM inbox — the lifecycle-scoped dash-form
|
|
842
|
+
* (`dm_<owner>-<actor>-<lifecycleUid>`, SPEC §13.1). The DM SUBJECTS (`inst.>`) keep the alias
|
|
843
|
+
* grammar; the backing consumer is lifecycle-keyed and starts at the activation frontier
|
|
844
|
+
* ({@link import("./streams.js").dmDurableConfig}), so a successor inherits no predecessor DMs. */
|
|
845
|
+
export function dmDurable(owner, actor, lifecycleUid) {
|
|
846
|
+
return `dm_${lifecycleNameKey(owner, actor, lifecycleUid)}`;
|
|
771
847
|
}
|
|
772
848
|
/** Durable consumer name (shared across instances of a role) for the task queue. */
|
|
773
849
|
export function taskDurable(service) {
|
package/dist/subjects.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subjects.js","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subjects.js","sourceRoot":"","sources":["../src/subjects.ts"],"names":[],"mappings":"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"}
|