@cotal-ai/core 0.48.1 → 0.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-file.d.ts +34 -0
- package/dist/agent-file.d.ts.map +1 -1
- package/dist/agent-file.js +94 -2
- package/dist/agent-file.js.map +1 -1
- package/dist/auth-provider.d.ts +25 -1
- package/dist/auth-provider.d.ts.map +1 -1
- package/dist/auth-provider.js.map +1 -1
- package/dist/connector.d.ts +4 -0
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js.map +1 -1
- package/dist/endpoint-action.d.ts +1 -0
- package/dist/endpoint-action.d.ts.map +1 -1
- package/dist/endpoint-action.js +1 -1
- package/dist/endpoint-action.js.map +1 -1
- package/dist/endpoint-binding.d.ts +6 -0
- package/dist/endpoint-binding.d.ts.map +1 -1
- package/dist/endpoint-binding.js +17 -0
- package/dist/endpoint-binding.js.map +1 -1
- package/dist/endpoint-grants.d.ts.map +1 -1
- package/dist/endpoint-grants.js +34 -12
- package/dist/endpoint-grants.js.map +1 -1
- package/dist/endpoint-invoke.d.ts.map +1 -1
- package/dist/endpoint-invoke.js +9 -49
- package/dist/endpoint-invoke.js.map +1 -1
- package/dist/endpoint-publish-denial.d.ts +35 -0
- package/dist/endpoint-publish-denial.d.ts.map +1 -0
- package/dist/endpoint-publish-denial.js +56 -0
- package/dist/endpoint-publish-denial.js.map +1 -0
- package/dist/endpoint-serve-kv.d.ts +16 -0
- package/dist/endpoint-serve-kv.d.ts.map +1 -1
- package/dist/endpoint-serve-kv.js +29 -0
- package/dist/endpoint-serve-kv.js.map +1 -1
- package/dist/endpoint-serve.d.ts.map +1 -1
- package/dist/endpoint-serve.js +9 -4
- package/dist/endpoint-serve.js.map +1 -1
- package/dist/endpoint-service.d.ts +21 -0
- package/dist/endpoint-service.d.ts.map +1 -1
- package/dist/endpoint-service.js +150 -15
- package/dist/endpoint-service.js.map +1 -1
- package/dist/endpoint-subjects.d.ts +34 -0
- package/dist/endpoint-subjects.d.ts.map +1 -1
- package/dist/endpoint-subjects.js +87 -18
- package/dist/endpoint-subjects.js.map +1 -1
- package/dist/endpoint-verbs.d.ts +4 -2
- package/dist/endpoint-verbs.d.ts.map +1 -1
- package/dist/endpoint-verbs.js +22 -7
- package/dist/endpoint-verbs.js.map +1 -1
- package/dist/endpoint.d.ts +155 -5
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +528 -48
- package/dist/endpoint.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/issued-authority.d.ts +168 -0
- package/dist/issued-authority.d.ts.map +1 -0
- package/dist/issued-authority.js +497 -0
- package/dist/issued-authority.js.map +1 -0
- package/dist/issuer-session.d.ts +30 -0
- package/dist/issuer-session.d.ts.map +1 -0
- package/dist/issuer-session.js +51 -0
- package/dist/issuer-session.js.map +1 -0
- package/dist/lifecycle-state.d.ts +9 -2
- package/dist/lifecycle-state.d.ts.map +1 -1
- package/dist/lifecycle-state.js +11 -2
- package/dist/lifecycle-state.js.map +1 -1
- package/dist/provision.d.ts +24 -14
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +137 -14
- package/dist/provision.js.map +1 -1
- package/dist/remote-manager-authority.d.ts +126 -1
- package/dist/remote-manager-authority.d.ts.map +1 -1
- package/dist/remote-manager-authority.js +21 -0
- package/dist/remote-manager-authority.js.map +1 -1
- package/dist/run-admission.d.ts +88 -0
- package/dist/run-admission.d.ts.map +1 -0
- package/dist/run-admission.js +193 -0
- package/dist/run-admission.js.map +1 -0
- package/dist/run-driver-grants.d.ts.map +1 -1
- package/dist/run-driver-grants.js +7 -0
- package/dist/run-driver-grants.js.map +1 -1
- package/dist/run-host.d.ts +5 -0
- package/dist/run-host.d.ts.map +1 -1
- package/dist/run-host.js.map +1 -1
- package/dist/runtime.d.ts +31 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/secret-fs.d.ts +25 -0
- package/dist/secret-fs.d.ts.map +1 -1
- package/dist/secret-fs.js +136 -3
- package/dist/secret-fs.js.map +1 -1
- package/dist/secret-store.d.ts +38 -0
- package/dist/secret-store.d.ts.map +1 -1
- package/dist/secret-store.js +53 -1
- package/dist/secret-store.js.map +1 -1
- package/dist/streams.d.ts +23 -75
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +65 -85
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +3 -1
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +3 -1
- package/dist/subjects.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export * from "./lease.js";
|
|
|
50
50
|
export * from "./agent-file.js";
|
|
51
51
|
export * from "./launch.js";
|
|
52
52
|
export * from "./fs-safe.js";
|
|
53
|
-
export
|
|
53
|
+
export { hardenPrivate, mkSecretDir, writeSecretFile, writeSecretFileAtomic, writeSecretFileCreateOnly, } from "./secret-fs.js";
|
|
54
54
|
export * from "./launch-material.js";
|
|
55
55
|
export * from "./connector-config.js";
|
|
56
56
|
export * from "./kv-scan.js";
|
|
@@ -79,4 +79,7 @@ export * from "./run-migration.js";
|
|
|
79
79
|
export * from "./run-program.js";
|
|
80
80
|
export * from "./run-driver-grants.js";
|
|
81
81
|
export * from "./run-host.js";
|
|
82
|
+
export * from "./issued-authority.js";
|
|
83
|
+
export * from "./run-admission.js";
|
|
84
|
+
export * from "./issuer-session.js";
|
|
82
85
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAK7B,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -50,7 +50,11 @@ export * from "./lease.js";
|
|
|
50
50
|
export * from "./agent-file.js";
|
|
51
51
|
export * from "./launch.js";
|
|
52
52
|
export * from "./fs-safe.js";
|
|
53
|
-
export
|
|
53
|
+
// Explicit, NOT `export *`, and deliberately so: a star export would put the test-only seam
|
|
54
|
+
// `__setPublishLinkForTest` on this package's public root, where any dependent could swap the
|
|
55
|
+
// publish primitive of the code that writes secrets. Everything a consumer legitimately needs is
|
|
56
|
+
// named here; the seam stays reachable from the suite via a deep import of the module itself.
|
|
57
|
+
export { hardenPrivate, mkSecretDir, writeSecretFile, writeSecretFileAtomic, writeSecretFileCreateOnly, } from "./secret-fs.js";
|
|
54
58
|
export * from "./launch-material.js";
|
|
55
59
|
export * from "./connector-config.js";
|
|
56
60
|
export * from "./kv-scan.js";
|
|
@@ -79,4 +83,7 @@ export * from "./run-migration.js";
|
|
|
79
83
|
export * from "./run-program.js";
|
|
80
84
|
export * from "./run-driver-grants.js";
|
|
81
85
|
export * from "./run-host.js";
|
|
86
|
+
export * from "./issued-authority.js";
|
|
87
|
+
export * from "./run-admission.js";
|
|
88
|
+
export * from "./issuer-session.js";
|
|
82
89
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { type JetStreamManager } from "@nats-io/jetstream";
|
|
2
|
+
import type { KV, Kvm } from "@nats-io/kv";
|
|
3
|
+
import type { NatsConnection } from "@nats-io/transport-node";
|
|
4
|
+
import { type EpCaller } from "./endpoint-subjects.js";
|
|
5
|
+
export { assertGeneration, isIssuedCaller, EP_RAIL_V1, type IssuedCaller } from "./endpoint-subjects.js";
|
|
6
|
+
/** The four caller coordinates plus the generation. `generation` is 32 lowercase hex characters
|
|
7
|
+
* of issuer-chosen entropy (at least 128 bits); it is an identifier, never a bearer secret. */
|
|
8
|
+
export interface IssuedAuthorityRef extends EpCaller {
|
|
9
|
+
readonly space: string;
|
|
10
|
+
readonly generation: string;
|
|
11
|
+
}
|
|
12
|
+
/** A fresh generation: 128 bits, hex. Chosen by the ISSUER, never by the client. */
|
|
13
|
+
export declare function mintGeneration(): string;
|
|
14
|
+
/** A fresh accepted-row token: same grammar, chosen by the party that will connect. */
|
|
15
|
+
export declare function mintAcceptedToken(): string;
|
|
16
|
+
/** One direction's allow set. Explicit: the native fragment's omitted or empty `allow` means
|
|
17
|
+
* UNRESTRICTED, and a ceiling that read that as "nothing" would be exactly the inversion a
|
|
18
|
+
* copied ledger row produces, so the mode is always spelled out. */
|
|
19
|
+
export type IssuedSubjectAllow = {
|
|
20
|
+
readonly mode: "all";
|
|
21
|
+
} | {
|
|
22
|
+
readonly mode: "none";
|
|
23
|
+
} | {
|
|
24
|
+
readonly mode: "patterns";
|
|
25
|
+
readonly patterns: readonly string[];
|
|
26
|
+
};
|
|
27
|
+
export interface IssuedSubjectPermission {
|
|
28
|
+
readonly allow: IssuedSubjectAllow;
|
|
29
|
+
readonly deny: readonly string[];
|
|
30
|
+
}
|
|
31
|
+
/** The ceiling: what the credential may publish and subscribe, as the broker enforces it. */
|
|
32
|
+
export interface IssuedSubjectPermissions {
|
|
33
|
+
readonly publish: IssuedSubjectPermission;
|
|
34
|
+
readonly subscribe: IssuedSubjectPermission;
|
|
35
|
+
}
|
|
36
|
+
/** Read a stored permission value back, refusing every shape but the explicit one. */
|
|
37
|
+
export declare function readIssuedSubjectPermission(value: unknown): IssuedSubjectPermission;
|
|
38
|
+
export declare function readIssuedSubjectPermissions(value: unknown): IssuedSubjectPermissions;
|
|
39
|
+
/** The native NATS fragment (`{pub, sub}` with `allow`/`deny` lists) as the JWT carries it: an
|
|
40
|
+
* omitted or empty allow is UNRESTRICTED subject to denies. This is the one importer, and it
|
|
41
|
+
* takes the fragment, never a whole JWT: `resp` and queue-qualified rows need semantics of their
|
|
42
|
+
* own and are refused rather than dropped. */
|
|
43
|
+
export declare function importNativeSubjectPermissions(value: unknown): IssuedSubjectPermissions;
|
|
44
|
+
/** Does the ceiling permit ONE concrete subject? Deny wins; `none` permits nothing. */
|
|
45
|
+
export declare function issuedPermitsSubject(value: IssuedSubjectPermission, concrete: string): boolean;
|
|
46
|
+
/** Does the ceiling permit a SUBSCRIPTION whose filter is `pattern` (which may carry wildcards)?
|
|
47
|
+
* Every subject the filter could deliver must sit inside one allow entry, and no deny entry may
|
|
48
|
+
* overlap it: a subscription is a claim over a set of subjects, so a partial cover is a refusal,
|
|
49
|
+
* never a narrower grant invented on the caller's behalf. */
|
|
50
|
+
export declare function issuedPermitsPattern(value: IssuedSubjectPermission, pattern: string): boolean;
|
|
51
|
+
/** The immutable coordinate of a gate an issuance depends on: one KV row in one bucket. */
|
|
52
|
+
export interface IssuedSourceRef {
|
|
53
|
+
readonly space: string;
|
|
54
|
+
readonly bucket: string;
|
|
55
|
+
readonly key: string;
|
|
56
|
+
}
|
|
57
|
+
/** What the issuer persisted, create-only, before any material was returned. `expiresAt` (unix
|
|
58
|
+
* seconds) is REQUIRED when `sources` is empty: an issuance bound to no gate is a one-shot
|
|
59
|
+
* credential's, and its liveness is its expiry. */
|
|
60
|
+
export interface IssuedEvidence {
|
|
61
|
+
readonly version: 1;
|
|
62
|
+
readonly ref: IssuedAuthorityRef;
|
|
63
|
+
readonly sources: readonly IssuedSourceRef[];
|
|
64
|
+
readonly permissions: IssuedSubjectPermissions;
|
|
65
|
+
readonly expiresAt?: number;
|
|
66
|
+
}
|
|
67
|
+
export type IssuedAttemptState = "prepared" | "active" | "aborted" | "revoked";
|
|
68
|
+
export interface IssuedResolution {
|
|
69
|
+
readonly evidence: IssuedEvidence;
|
|
70
|
+
/** The attempt row's revision at the second (linearizing) read. */
|
|
71
|
+
readonly revision: number;
|
|
72
|
+
}
|
|
73
|
+
/** The per-space evidence store. `allow_direct=false`: every read here is a fence (leader-served,
|
|
74
|
+
* revision-pinned), and Direct Get's follower reads would defeat read-your-writes. */
|
|
75
|
+
export declare function issuedBucket(space: string): string;
|
|
76
|
+
/** The per-space accepted-row store. Its own bucket, and `allow_direct` ON: per-key scoping is
|
|
77
|
+
* only expressible on a `DIRECT.GET` grant, and a stream-wide `STREAM.MSG.GET` on a shared bucket
|
|
78
|
+
* would let a client read every other client's row. */
|
|
79
|
+
export declare function acceptedBucket(space: string): string;
|
|
80
|
+
export declare function issuedEvidenceKey(ref: IssuedAuthorityRef): string;
|
|
81
|
+
export declare function issuedAttemptKey(ref: IssuedAuthorityRef): string;
|
|
82
|
+
/** The reverse index prefix for one source: `bysource.v1.<sha256([1, space, bucket, key])>.`.
|
|
83
|
+
* The digest keeps the key one token; the generation suffix on the full key is load-bearing, since
|
|
84
|
+
* without it a reused root credential id would merge two issuances into one entry. */
|
|
85
|
+
export declare function issuedSourcePrefix(source: IssuedSourceRef): string;
|
|
86
|
+
export declare function issuedSourceIndexKey(source: IssuedSourceRef, ref: IssuedAuthorityRef): string;
|
|
87
|
+
export interface PreparedIssuance {
|
|
88
|
+
readonly key: string;
|
|
89
|
+
}
|
|
90
|
+
/** The store bound to one space over one KV handle. The KV is the ISSUER's (a `issuer` or a
|
|
91
|
+
* `issued-reader` credential); a peer holds no grant on this bucket. */
|
|
92
|
+
export interface IssuedStore {
|
|
93
|
+
/** Persist the evidence and a `prepared` attempt, create-only. A generation that already exists
|
|
94
|
+
* refuses before the CAS, and the CAS is the second line. Nothing is released here. */
|
|
95
|
+
stage(evidence: IssuedEvidence): Promise<PreparedIssuance>;
|
|
96
|
+
/** Run the existing finalizer, then activate by CAS at the revision the prepare observed. If
|
|
97
|
+
* the finalizer succeeds and the activation loses, the issuance is retired and the call throws:
|
|
98
|
+
* no material may be released on it. */
|
|
99
|
+
release(prepared: PreparedIssuance, finalizeExisting: () => Promise<void>): Promise<void>;
|
|
100
|
+
/** `prepared` becomes `aborted`, `active` becomes `revoked`; idempotent on a terminal state. */
|
|
101
|
+
retire(ref: IssuedAuthorityRef): Promise<IssuedAttemptState>;
|
|
102
|
+
/** The resolution a consumer acts on: evidence read, attempt `active`, every source live (or
|
|
103
|
+
* the one-shot expiry not reached), and the attempt still `active` at the SAME revision on a
|
|
104
|
+
* second read after the source await. That second read is the linearization point. A failed
|
|
105
|
+
* read on either side is a refusal, never an absence of revocation. */
|
|
106
|
+
resolve(ref: IssuedAuthorityRef, sourceIsLive: (source: IssuedSourceRef) => Promise<boolean>, now?: () => number): Promise<IssuedResolution>;
|
|
107
|
+
/** Retire every issuance indexed under one source. The caller freezes the source gate FIRST. */
|
|
108
|
+
retireSource(source: IssuedSourceRef): Promise<number>;
|
|
109
|
+
/** A RENEWAL under an existing generation: the evidence must exist, its attempt must be
|
|
110
|
+
* `active`, and its recorded ceiling must EQUAL `permissions`. A generation is reused only when
|
|
111
|
+
* its immutable ceiling still matches (SPEC 13.15); a changed ceiling is a fresh issuance on a
|
|
112
|
+
* fresh generation and a new connection, never an update of this one. */
|
|
113
|
+
confirm(ref: IssuedAuthorityRef, permissions: IssuedSubjectPermissions): Promise<void>;
|
|
114
|
+
}
|
|
115
|
+
/** What an issuing mint hands {@link mintCreds}: the store and accepted-row handles of an
|
|
116
|
+
* `issuer` connection, the immutable source coordinates the evidence names, and the existing
|
|
117
|
+
* finalizer (a ledger append) release runs BEFORE activation. `renew` reuses a generation whose
|
|
118
|
+
* ceiling is unchanged and stages nothing. */
|
|
119
|
+
export interface IssuanceSeam {
|
|
120
|
+
readonly mode: "issue" | "renew";
|
|
121
|
+
readonly store: IssuedStore;
|
|
122
|
+
readonly accepted: KV;
|
|
123
|
+
readonly sources: readonly IssuedSourceRef[];
|
|
124
|
+
readonly finalize?: (credentialId: string) => Promise<void>;
|
|
125
|
+
}
|
|
126
|
+
/** The broker-enforced part of every authority store's immutability (SPEC 13.12): no rollup
|
|
127
|
+
* header, no message delete, no purge. The records store carries the same three. */
|
|
128
|
+
export declare const AUTHORITY_STORE_IMMUTABLE_FLAGS: Readonly<{
|
|
129
|
+
allow_rollup_hdrs: false;
|
|
130
|
+
deny_delete: true;
|
|
131
|
+
deny_purge: true;
|
|
132
|
+
}>;
|
|
133
|
+
/** Write-once per key: one message per subject and `discard: new` applied per subject, so the
|
|
134
|
+
* broker refuses the SECOND message on a key whatever it carries. Other keys are unaffected. */
|
|
135
|
+
export declare const WRITE_ONCE_PER_KEY: Readonly<{
|
|
136
|
+
max_msgs_per_subject: 1;
|
|
137
|
+
discard: "new";
|
|
138
|
+
discard_new_per_subject: true;
|
|
139
|
+
}>;
|
|
140
|
+
/** Append-only per key: unlimited per-key history, nothing ever removed. A reader that wants the
|
|
141
|
+
* row that was created reads the FIRST message on its key. */
|
|
142
|
+
export declare const APPEND_ONLY_PER_KEY: Readonly<{
|
|
143
|
+
max_msgs_per_subject: -1;
|
|
144
|
+
}>;
|
|
145
|
+
/** Every field of `shape` must read back from the broker as set; the mismatches are named. */
|
|
146
|
+
export declare function assertStoreShape(cfg: Record<string, unknown>, shape: Record<string, unknown>, bucket: string, spec: string): void;
|
|
147
|
+
/** The two issued-authority streams, for the provisioner's create-or-verify inventory. */
|
|
148
|
+
export declare function issuedStoreStreamNames(space: string): string[];
|
|
149
|
+
export declare function openIssuedStore(kv: KV, jsm: JetStreamManager, space: string): IssuedStore;
|
|
150
|
+
/** Create-or-verify the two issued-authority stores. Evidence: `allow_direct=false`, file,
|
|
151
|
+
* no eviction. Accepted: `allow_direct=true`, file, no eviction. A drifted store fails loud. */
|
|
152
|
+
export declare function ensureIssuedStores(jsm: JetStreamManager, kvm: Kvm, space: string): Promise<void>;
|
|
153
|
+
export declare function acceptedKey(acceptedToken: string): string;
|
|
154
|
+
/** The read grant an issued ceiling carries for exactly its own accepted row and nothing else. */
|
|
155
|
+
export declare function acceptedReadGrant(space: string, acceptedToken: string): string;
|
|
156
|
+
/** Written by the issuer at release, create-only: a token is redeemed once. */
|
|
157
|
+
export declare function writeAcceptedRow(kv: KV, acceptedToken: string, ref: IssuedAuthorityRef): Promise<void>;
|
|
158
|
+
/** Read by the CLIENT over its own connection: the reference the ISSUER wrote, so a client that
|
|
159
|
+
* proposed or was told a different generation learns the accepted one here. The broker admits
|
|
160
|
+
* the read only under the ceiling's per-key grant, which is what binds the answer to the
|
|
161
|
+
* credential this connection presented. */
|
|
162
|
+
export declare function readAcceptedRow(nc: NatsConnection, space: string, acceptedToken: string, timeoutMs?: number): Promise<IssuedAuthorityRef>;
|
|
163
|
+
/** The named refusal an endpoint returns for a legacy (unversioned) invocation of a command
|
|
164
|
+
* that requires issued authority (SPEC §13.15 compatibility). */
|
|
165
|
+
/** `details[].kind` of the refusal a command requiring issued caller authority returns to a
|
|
166
|
+
* LEGACY arrival: the request rode the unversioned rail, so no generation binds it (SPEC 13.15). */
|
|
167
|
+
export declare const EP_UNBOUND_CALLER_AUTHORITY = "ai.cotal.ep.unbound-caller-authority";
|
|
168
|
+
//# sourceMappingURL=issued-authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issued-authority.d.ts","sourceRoot":"","sources":["../src/issued-authority.ts"],"names":[],"mappings":"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"}
|