@spine-event-engine/auth 2.0.0-snapshot.25 → 2.0.0-snapshot.28

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.
Files changed (82) hide show
  1. package/README.md +128 -11
  2. package/REFERENCE.md +166 -12
  3. package/dist/gateway/dynamic-unary-forwarder.d.ts +62 -3
  4. package/dist/gateway/dynamic-unary-forwarder.d.ts.map +1 -1
  5. package/dist/gateway/dynamic-unary-forwarder.js +189 -10
  6. package/dist/gateway/dynamic-unary-forwarder.js.map +1 -1
  7. package/dist/gateway/index.d.ts +5 -0
  8. package/dist/gateway/index.d.ts.map +1 -1
  9. package/dist/gateway/index.js +65 -7
  10. package/dist/gateway/index.js.map +1 -1
  11. package/dist/index.d.ts +60 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +4 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/native/index.d.ts +43 -3
  16. package/dist/native/index.d.ts.map +1 -1
  17. package/dist/native/index.js +178 -32
  18. package/dist/native/index.js.map +1 -1
  19. package/dist/oidc/contracts.d.ts +18 -4
  20. package/dist/oidc/contracts.d.ts.map +1 -1
  21. package/dist/oidc/flow-store.d.ts +143 -0
  22. package/dist/oidc/flow-store.d.ts.map +1 -0
  23. package/dist/oidc/flow-store.js +184 -0
  24. package/dist/oidc/flow-store.js.map +1 -0
  25. package/dist/oidc/index.d.ts +29 -9
  26. package/dist/oidc/index.d.ts.map +1 -1
  27. package/dist/oidc/index.js +611 -152
  28. package/dist/oidc/index.js.map +1 -1
  29. package/dist/oidc/persistent-flow-store.d.ts +117 -0
  30. package/dist/oidc/persistent-flow-store.d.ts.map +1 -0
  31. package/dist/oidc/persistent-flow-store.js +413 -0
  32. package/dist/oidc/persistent-flow-store.js.map +1 -0
  33. package/dist/oidc/records.d.ts +15 -0
  34. package/dist/oidc/records.d.ts.map +1 -0
  35. package/dist/oidc/records.js +91 -0
  36. package/dist/oidc/records.js.map +1 -0
  37. package/dist/providers/index.d.ts +10 -5
  38. package/dist/providers/index.d.ts.map +1 -1
  39. package/dist/providers/index.js +103 -30
  40. package/dist/providers/index.js.map +1 -1
  41. package/dist/request/index.d.ts +3 -0
  42. package/dist/request/index.d.ts.map +1 -1
  43. package/dist/request/index.js +17 -1
  44. package/dist/request/index.js.map +1 -1
  45. package/dist/sessions/cookies.d.ts +46 -8
  46. package/dist/sessions/cookies.d.ts.map +1 -1
  47. package/dist/sessions/cookies.js +269 -47
  48. package/dist/sessions/cookies.js.map +1 -1
  49. package/dist/sessions/opaque-session-store.d.ts +143 -0
  50. package/dist/sessions/opaque-session-store.d.ts.map +1 -0
  51. package/dist/sessions/opaque-session-store.js +185 -0
  52. package/dist/sessions/opaque-session-store.js.map +1 -0
  53. package/dist/sessions/opaque.d.ts +93 -106
  54. package/dist/sessions/opaque.d.ts.map +1 -1
  55. package/dist/sessions/opaque.js +501 -232
  56. package/dist/sessions/opaque.js.map +1 -1
  57. package/dist/sessions/persistent-opaque-session-store.d.ts +105 -0
  58. package/dist/sessions/persistent-opaque-session-store.d.ts.map +1 -0
  59. package/dist/sessions/persistent-opaque-session-store.js +333 -0
  60. package/dist/sessions/persistent-opaque-session-store.js.map +1 -0
  61. package/dist/sessions/persistent-token-revocations.d.ts +90 -0
  62. package/dist/sessions/persistent-token-revocations.d.ts.map +1 -0
  63. package/dist/sessions/persistent-token-revocations.js +422 -0
  64. package/dist/sessions/persistent-token-revocations.js.map +1 -0
  65. package/dist/sessions/session-lifetime.d.ts +67 -0
  66. package/dist/sessions/session-lifetime.d.ts.map +1 -0
  67. package/dist/sessions/session-lifetime.js +165 -0
  68. package/dist/sessions/session-lifetime.js.map +1 -0
  69. package/dist/sessions/session-record.d.ts +15 -0
  70. package/dist/sessions/session-record.d.ts.map +1 -0
  71. package/dist/sessions/session-record.js +109 -0
  72. package/dist/sessions/session-record.js.map +1 -0
  73. package/dist/sessions/signed.d.ts +5 -4
  74. package/dist/sessions/signed.d.ts.map +1 -1
  75. package/dist/sessions/signed.js +212 -74
  76. package/dist/sessions/signed.js.map +1 -1
  77. package/dist/subscriptions/index.d.ts +35 -3
  78. package/dist/subscriptions/index.d.ts.map +1 -1
  79. package/dist/subscriptions/index.js +680 -134
  80. package/dist/subscriptions/index.js.map +1 -1
  81. package/dist/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +20 -6
@@ -15,11 +15,17 @@ import { clone, fromBinary, toBinary } from "@bufbuild/protobuf";
15
15
  import { ApplicationNode } from "@spine-event-engine/deployment";
16
16
  import { BackendMembershipKernel, } from "@spine-event-engine/deployment/spi/backend-membership";
17
17
  import { SubscriptionSchema, SubscriptionUpdateSchema } from "@spine-event-engine/proto/client";
18
+ import { snapshotTrustedReader, } from "@spine-event-engine/core/spi/trusted-reader";
18
19
  /**
19
20
  * Adapts Gateway unary operations to the deployment-owned membership kernel.
20
21
  * Durable logical ownership remains in the Gateway's subscription bindings.
21
22
  */
22
23
  export class DynamicUnaryForwarder {
24
+ #readers = new Map();
25
+ #children = new Map();
26
+ #associationsById = new Map();
27
+ #pendingAssociations = new WeakMap();
28
+ #activeAssociations = new WeakMap();
23
29
  #kernel;
24
30
  /**
25
31
  * Creates the Gateway adapter around the deployment membership kernel.
@@ -32,11 +38,11 @@ export class DynamicUnaryForwarder {
32
38
  options.maxBackendEnvelopeBytes < 1))
33
39
  throw new RangeError("maxBackendEnvelopeBytes must be a positive safe integer.");
34
40
  this.#kernel = new BackendMembershipKernel({
35
- create: async (node, signal) => DynamicUnaryForwarder.memberClient(await options.create(node, signal)),
41
+ create: async (node, signal) => this.memberClient(await options.create(node, signal)),
36
42
  memberKey: (node) => node.id,
37
43
  sameMember: (left, right) => left.endpoint === right.endpoint && left.tlsServerName === right.tlsServerName,
38
44
  definitionKey: (definition) => DynamicUnaryForwarder.definitionKey(definition),
39
- childDefinition: (definition, node) => DynamicUnaryForwarder.childDefinition(definition, node),
45
+ childDefinition: (definition, node) => this.childDefinition(definition, node),
40
46
  childSize: (child) => child.bytes.byteLength,
41
47
  isActivationAck: (update) => DynamicUnaryForwarder.isActivationAck(update),
42
48
  logicalActivationAck: (definition, childAck) => DynamicUnaryForwarder.logicalActivationAck(definition, childAck),
@@ -48,24 +54,159 @@ export class DynamicUnaryForwarder {
48
54
  : { maxChildBytes: options.maxBackendEnvelopeBytes }),
49
55
  });
50
56
  }
57
+ /**
58
+ * Records the native child definition and its admitted logical reader.
59
+ *
60
+ * @param definition The serialized logical subscription definition.
61
+ * @param node Selected managed application node.
62
+ * @returns The child subscription definition.
63
+ */
64
+ childDefinition(definition, node) {
65
+ const child = DynamicUnaryForwarder.childDefinition(definition, node);
66
+ const logicalId = DynamicUnaryForwarder.definitionKey(definition);
67
+ const reader = this.#readers.get(logicalId ?? "");
68
+ const childId = DynamicUnaryForwarder.definitionKey(child);
69
+ if (logicalId !== undefined && childId !== undefined) {
70
+ const association = { logicalId, initialId: childId, ids: new Set() };
71
+ this.#pendingAssociations.set(child, association);
72
+ this.associateChildId(association, childId, reader);
73
+ }
74
+ return child;
75
+ }
51
76
  /**
52
77
  * Builds membership operations for one connected gateway client.
53
78
  *
54
79
  * @param client The connected gateway client.
55
80
  * @returns The member's forwarding and subscription operations.
56
81
  */
57
- static memberClient(client) {
82
+ memberClient(client) {
58
83
  return {
59
84
  forward: (request) => client.forward(request),
60
- subscribe: (definition, signal) => client.subscribe({ kind: "public-subscription", bytes: definition.slice() }, signal),
85
+ subscribe: (definition, signal) => this.subscribeChild(client, definition, signal),
61
86
  activate: (child, updates, signal) => client.activate({
62
- wire: { kind: "backend-subscription-envelope", bytes: child.bytes.slice() },
87
+ wire: {
88
+ kind: "backend-subscription-envelope",
89
+ bytes: child.bytes.slice(),
90
+ ...this.readerField(child.bytes),
91
+ },
63
92
  updates,
64
93
  }, signal),
65
- dispose: (child, signal) => client.dispose({ kind: "backend-subscription-envelope", bytes: child.bytes.slice() }, signal),
94
+ dispose: (child, signal) => this.disposeChild(client, child, signal),
66
95
  close: () => client.close(),
67
96
  };
68
97
  }
98
+ /**
99
+ * Removes one native child and then retires its reader associations.
100
+ *
101
+ * @param client Connected member client that created this child.
102
+ * @param child Backend-issued child envelope.
103
+ * @param signal Cancellation signal for native disposal.
104
+ * @returns Completion after native disposal and reader cleanup.
105
+ */
106
+ async disposeChild(client, child, signal) {
107
+ await client.dispose({
108
+ kind: "backend-subscription-envelope",
109
+ bytes: child.bytes.slice(),
110
+ ...this.readerField(child.bytes),
111
+ }, signal);
112
+ const association = this.#activeAssociations.get(child);
113
+ if (association !== undefined)
114
+ this.retireChild(association);
115
+ }
116
+ /**
117
+ * Starts a native child and tracks an assigned ID for its admitted reader.
118
+ *
119
+ * @param client Native subscription client.
120
+ * @param definition The serialized subscription definition.
121
+ * @param signal The cancellation signal for this operation.
122
+ * @returns The managed-child subscription.
123
+ */
124
+ subscribeChild(client, definition, signal) {
125
+ const reader = this.readerField(definition);
126
+ const association = this.#pendingAssociations.get(definition);
127
+ const result = client.subscribe({ kind: "public-subscription", bytes: definition.slice(), ...reader }, signal);
128
+ return result.then((child) => {
129
+ if (association !== undefined) {
130
+ this.#activeAssociations.set(child, association);
131
+ this.rememberProducedChild(association, child.bytes);
132
+ }
133
+ return child;
134
+ }, (error) => {
135
+ if (association !== undefined)
136
+ this.retireChild(association);
137
+ throw error;
138
+ });
139
+ }
140
+ /**
141
+ * Finds detached reader facts for one retained logical or native child definition.
142
+ *
143
+ * @param bytes The serialized message bytes.
144
+ * @returns The persisted reader binding field.
145
+ */
146
+ readerField(bytes) {
147
+ let id;
148
+ try {
149
+ id = DynamicUnaryForwarder.definitionKey(bytes);
150
+ }
151
+ catch {
152
+ return {};
153
+ }
154
+ const reader = this.#readers.get(id ?? "");
155
+ return reader === undefined ? {} : { reader: snapshotTrustedReader(reader) };
156
+ }
157
+ /**
158
+ * Records a backend-assigned child ID to its admitted logical reader.
159
+ *
160
+ * @param association Native child attempt that produced the backend ID.
161
+ * @param produced Backend update produced for a subscription.
162
+ */
163
+ rememberProducedChild(association, produced) {
164
+ if (this.#associationsById.get(association.initialId) !== association)
165
+ return;
166
+ let producedId;
167
+ try {
168
+ producedId = DynamicUnaryForwarder.definitionKey(produced);
169
+ }
170
+ catch {
171
+ return;
172
+ }
173
+ if (producedId === undefined)
174
+ return;
175
+ this.associateChildId(association, producedId, this.#readers.get(association.initialId));
176
+ }
177
+ /**
178
+ * Records one child ID with its attempt and current logical reader.
179
+ *
180
+ * @param association Native child attempt that introduced the ID.
181
+ * @param childId Initial or backend-issued child ID.
182
+ * @param reader Current verified reader facts, if supplied.
183
+ */
184
+ associateChildId(association, childId, reader) {
185
+ association.ids.add(childId);
186
+ const children = this.#children.get(association.logicalId) ?? new Set();
187
+ children.add(childId);
188
+ this.#children.set(association.logicalId, children);
189
+ this.#associationsById.set(childId, association);
190
+ if (reader !== undefined)
191
+ this.#readers.set(childId, reader);
192
+ }
193
+ /**
194
+ * Removes only IDs still associated with this retired child attempt.
195
+ *
196
+ * @param association Native child attempt after successful disposal.
197
+ */
198
+ retireChild(association) {
199
+ const children = this.#children.get(association.logicalId);
200
+ for (const id of association.ids) {
201
+ if (this.#associationsById.get(id) !== association)
202
+ continue;
203
+ this.#associationsById.delete(id);
204
+ this.#readers.delete(id);
205
+ children?.delete(id);
206
+ }
207
+ if (children?.size === 0)
208
+ this.#children.delete(association.logicalId);
209
+ }
69
210
  /**
70
211
  * Checks a response-only successful child activation acknowledgement.
71
212
  *
@@ -114,7 +255,11 @@ export class DynamicUnaryForwarder {
114
255
  * @returns Completion of backend cleanup.
115
256
  */
116
257
  close() {
117
- return this.#kernel.close();
258
+ return this.#kernel.close().finally(() => {
259
+ this.#readers.clear();
260
+ this.#children.clear();
261
+ this.#associationsById.clear();
262
+ });
118
263
  }
119
264
  /**
120
265
  * Creates backend children for one logical Gateway subscription.
@@ -128,6 +273,7 @@ export class DynamicUnaryForwarder {
128
273
  if (maxBackendEnvelopeBytes !== undefined &&
129
274
  (!Number.isSafeInteger(maxBackendEnvelopeBytes) || maxBackendEnvelopeBytes < 1))
130
275
  throw new RangeError("maxBackendEnvelopeBytes must be a positive safe integer.");
276
+ this.rememberReader(request);
131
277
  return this.#kernel
132
278
  .subscribe(request.bytes, signal, maxBackendEnvelopeBytes)
133
279
  .catch((error) => DynamicUnaryForwarder.#gatewayError(error));
@@ -143,6 +289,7 @@ export class DynamicUnaryForwarder {
143
289
  if (maxBackendEnvelopeBytes !== undefined &&
144
290
  (!Number.isSafeInteger(maxBackendEnvelopeBytes) || maxBackendEnvelopeBytes < 1))
145
291
  throw new RangeError("maxBackendEnvelopeBytes must be a positive safe integer.");
292
+ this.rememberReader(request);
146
293
  await this.#kernel
147
294
  .rehydrate(request.bytes, maxBackendEnvelopeBytes)
148
295
  .catch((error) => DynamicUnaryForwarder.#gatewayError(error));
@@ -153,10 +300,10 @@ export class DynamicUnaryForwarder {
153
300
  * @param wire Supplies the public subscription wire.
154
301
  * @param updates Receives relayed subscription updates.
155
302
  * @param signal Cancels update relay.
156
- * @returns Completion after cancellation; rejects on unexpected child failure, possibly
157
- * including bounded cleanup failure.
303
+ * @returns Completion after cancellation; rejects on unexpected child or bounded cleanup failure.
158
304
  */
159
305
  activateDefinition(wire, updates, signal) {
306
+ this.rememberReader(wire);
160
307
  return this.#kernel.activate(wire.bytes, updates, signal);
161
308
  }
162
309
  /**
@@ -167,7 +314,34 @@ export class DynamicUnaryForwarder {
167
314
  * @returns Completion of child cleanup.
168
315
  */
169
316
  cancelDefinition(wire, signal) {
170
- return this.#kernel.cancel(wire.bytes, signal);
317
+ this.rememberReader(wire);
318
+ return this.#kernel.cancel(wire.bytes, signal).then(() => {
319
+ const id = DynamicUnaryForwarder.definitionKey(wire.bytes);
320
+ if (id === undefined)
321
+ return;
322
+ this.#readers.delete(id);
323
+ for (const childId of this.#children.get(id) ?? []) {
324
+ this.#readers.delete(childId);
325
+ this.#associationsById.delete(childId);
326
+ }
327
+ this.#children.delete(id);
328
+ });
329
+ }
330
+ /**
331
+ * Updates current reader facts for a retained definition and its native children.
332
+ *
333
+ * @param wire The admitted definition with current verified reader facts.
334
+ */
335
+ rememberReader(wire) {
336
+ if (wire.reader === undefined)
337
+ return;
338
+ const id = DynamicUnaryForwarder.definitionKey(wire.bytes);
339
+ if (id === undefined)
340
+ return;
341
+ const reader = snapshotTrustedReader(wire.reader);
342
+ this.#readers.set(id, reader);
343
+ for (const childId of this.#children.get(id) ?? [])
344
+ this.#readers.set(childId, reader);
171
345
  }
172
346
  /**
173
347
  * Resolves when the supplied signal aborts.
@@ -205,6 +379,11 @@ export class DynamicUnaryForwarder {
205
379
  subscriptionId.value = `${id}/${node.id}`;
206
380
  return toBinary(SubscriptionSchema, subscription);
207
381
  }
382
+ /**
383
+ * Sanitizes a gateway failure before returning it to the caller.
384
+ *
385
+ * @param error The failure being classified or propagated.
386
+ */
208
387
  static #gatewayError(error) {
209
388
  if (error instanceof Error && error.message === "backend membership is unavailable.")
210
389
  throw new Error("Gateway backend is absent.");
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-unary-forwarder.js","sourceRoot":"","sources":["../../src/gateway/dynamic-unary-forwarder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-unary-forwarder.js","sourceRoot":"","sources":["../../src/gateway/dynamic-unary-forwarder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { TypeRegistryLookup } from "@spine-event-engine/core";
2
+ import { type TrustedReaderContext } from "@spine-event-engine/core/spi/trusted-reader";
2
3
  import type { AuthorizationPolicy, Clock, ContextResolver, RequestCredential, SessionResolver, TransportRequestContext } from "../index.js";
3
4
  /**
4
5
  * Owned request bytes and canonical operation identity accepted by the B2 gateway.
@@ -43,6 +44,10 @@ export interface UnaryForwarder {
43
44
  readonly service: string;
44
45
  readonly method: string;
45
46
  readonly value: Uint8Array;
47
+ /**
48
+ * Verified reader data, detached from the session and context resolver.
49
+ */
50
+ readonly reader?: TrustedReaderContext;
46
51
  readonly signal?: AbortSignal;
47
52
  }): Promise<Uint8Array>;
48
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,8 @@
14
14
  import { clone, create, fromBinary, toBinary } from "@bufbuild/protobuf";
15
15
  import { ActorContextSchema, CommandContextSchema, CommandSchema, TenantIdSchema, } from "@spine-event-engine/proto";
16
16
  import { ResolveContextRequestSchema, ResolveContextResponseSchema, } from "@spine-event-engine/proto/auth";
17
- import { QuerySchema } from "@spine-event-engine/proto/client";
17
+ import { AppQuerySchema, QuerySchema } from "@spine-event-engine/proto/client";
18
+ import { snapshotTrustedReader, } from "@spine-event-engine/core/spi/trusted-reader";
18
19
  import { IncomingRequests } from "../request/index.js";
19
20
  /**
20
21
  * Transport-neutral unary admission pipeline for Commands and Queries.
@@ -52,31 +53,74 @@ export class UnaryGateway {
52
53
  const source = UnaryGatewayValues.decode(operation, value, transport, this.#options.registry);
53
54
  if (source === undefined)
54
55
  return UnaryGatewayValues.reject("malformed-request");
56
+ return this.#handleAuthorized(operation, source, value, transport, request);
57
+ }
58
+ /**
59
+ * Authorizes one decoded request and resolves its trusted actor and tenant.
60
+ *
61
+ * @param operation Accepted asynchronous operation.
62
+ * @param source Decoded incoming Command or Query request.
63
+ * @param value Decoded request bytes to authorize.
64
+ * @param transport The connected native transport.
65
+ * @param request The request being processed.
66
+ * @returns The authorized gateway response.
67
+ */
68
+ async #handleAuthorized(operation, source, value, transport, request) {
55
69
  const requestedContext = clone(ActorContextSchema, source.requestedContext);
56
70
  const session = await this.#session(request.credential);
57
71
  if (session === undefined)
58
72
  return UnaryGatewayValues.reject("unauthenticated");
59
- const authorizationRequest = UnaryGatewayValues.decode(operation, value, UnaryGatewayValues.snapshotTransport(operation, transport), this.#options.registry);
73
+ const authorizationRequest = this.#decodeRequest(operation, value, transport);
60
74
  // The same immutable owned bytes and fixed registry decoded above already proved this shape.
61
75
  /* v8 ignore next */
62
76
  if (authorizationRequest === undefined)
63
77
  return UnaryGatewayValues.reject("malformed-request");
64
78
  if (!(await this.#options.authorize(session.principal, authorizationRequest)))
65
79
  return UnaryGatewayValues.reject("forbidden");
66
- const contextRequest = UnaryGatewayValues.decode(operation, value, UnaryGatewayValues.snapshotTransport(operation, transport), this.#options.registry);
80
+ const contextRequest = this.#decodeRequest(operation, value, transport);
67
81
  if (contextRequest === undefined)
68
82
  return UnaryGatewayValues.reject("malformed-request");
69
83
  const trusted = await this.#options.contexts.resolve(session.principal, contextRequest, this.#options.clock);
70
84
  if (!UnaryGatewayValues.matches(requestedContext, trusted))
71
85
  return UnaryGatewayValues.reject("context-stale");
86
+ return this.#forwardTrusted(operation, source, trusted, session.principal, request.signal);
87
+ }
88
+ /**
89
+ * Decodes a fresh collaborator view from admitted bytes and fixed transport facts.
90
+ *
91
+ * @param operation Accepted asynchronous operation.
92
+ * @param value Canonical request bytes decoded for the collaborator.
93
+ * @param transport The connected native transport.
94
+ * @returns The decoded request, if well formed.
95
+ */
96
+ #decodeRequest(operation, value, transport) {
97
+ return UnaryGatewayValues.decode(operation, value, UnaryGatewayValues.snapshotTransport(operation, transport), this.#options.registry);
98
+ }
99
+ /**
100
+ * Forwards the rewritten request with detached verified reader facts.
101
+ *
102
+ * @param operation Accepted asynchronous operation.
103
+ * @param source Decoded incoming Command or Query request.
104
+ * @param trusted Verified principal and authority context.
105
+ * @param principal Verified principal from session resolution.
106
+ * @param signal The cancellation signal for this operation.
107
+ * @returns The verified forwarded request.
108
+ */
109
+ async #forwardTrusted(operation, source, trusted, principal, signal) {
72
110
  return {
73
111
  kind: "forwarded",
74
112
  value: await UnaryGatewayValues.abortable(this.#options.forward({
75
113
  service: operation.service,
76
114
  method: operation.method,
77
115
  value: UnaryGatewayValues.rewrite(source, trusted),
78
- ...(request.signal === undefined ? {} : { signal: request.signal }),
79
- }), request.signal),
116
+ reader: snapshotTrustedReader({
117
+ ...(this.#options.publicAccess === true ? {} : { principal }),
118
+ ...(this.#options.publicAccess === true || trusted.authorityFacts === undefined
119
+ ? {}
120
+ : { authorityFacts: trusted.authorityFacts }),
121
+ }),
122
+ ...(signal === undefined ? {} : { signal }),
123
+ }), signal),
80
124
  };
81
125
  }
82
126
  /**
@@ -105,7 +149,12 @@ export class UnaryGateway {
105
149
  })),
106
150
  };
107
151
  }
108
- async #session(credential) {
152
+ /**
153
+ * Resolves the current gateway session from the incoming credential.
154
+ *
155
+ * @param credential Incoming gateway credential, if present.
156
+ * @returns The resolved session, if authenticated.
157
+ */ async #session(credential) {
109
158
  if (this.#options.publicAccess === true)
110
159
  return { principal: UnaryGatewayValues.publicPrincipal };
111
160
  if (credential === undefined)
@@ -135,6 +184,8 @@ const UnaryGatewayValues = Object.freeze({
135
184
  return { kind: "command", service: request.service, method: request.method };
136
185
  if (request.service === "spine.client.QueryService" && request.method === "Read")
137
186
  return { kind: "query", service: request.service, method: request.method };
187
+ if (request.service === "spine.client.QueryService" && request.method === "Execute")
188
+ return { kind: "app-query", service: request.service, method: request.method };
138
189
  if (request.service === "spine.auth.AuthenticationService" &&
139
190
  request.method === "ResolveContext")
140
191
  return { kind: "resolve-context", service: request.service, method: request.method };
@@ -177,7 +228,9 @@ const UnaryGatewayValues = Object.freeze({
177
228
  }
178
229
  : { kind: operation.kind, value, transport };
179
230
  const result = IncomingRequests.decode(input);
180
- return result?.kind === "command" || result?.kind === "query" ? result : undefined;
231
+ return result?.kind === "command" || result?.kind === "query" || result?.kind === "app-query"
232
+ ? result
233
+ : undefined;
181
234
  },
182
235
  /**
183
236
  * Checks the requested actor and tenant against trusted resolution.
@@ -229,6 +282,11 @@ const UnaryGatewayValues = Object.freeze({
229
282
  ...(trusted.zoneId === undefined ? {} : { zoneId: trusted.zoneId }),
230
283
  ...(trusted.language === undefined ? {} : { language: trusted.language }),
231
284
  });
285
+ if (source.kind === "app-query") {
286
+ const query = clone(AppQuerySchema, source.query);
287
+ query.context = context;
288
+ return toBinary(AppQuerySchema, query);
289
+ }
232
290
  const query = clone(QuerySchema, source.query);
233
291
  query.context = context;
234
292
  return toBinary(QuerySchema, query);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateway/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { Message } from "@bufbuild/protobuf";
2
2
  import type { TypeRegistryLookup } from "@spine-event-engine/core";
3
+ import type { AuthorityFact } from "@spine-event-engine/core/spi/trusted-reader";
3
4
  import type { ActorContext, Command, Language, TenantId, UserId, ZoneId } from "@spine-event-engine/proto";
4
- import { type Query, type Subscription, type Target, type Topic } from "@spine-event-engine/proto/client";
5
+ import { type Query, type AppQuery, type Subscription, type Target, type Topic } from "@spine-event-engine/proto/client";
5
6
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
6
7
  /**
7
8
  * Allowlisted RPC facts exposed to authorization policy and diagnostics.
@@ -99,6 +100,27 @@ export interface IncomingQuery {
99
100
  */
100
101
  readonly transport: TransportRequestContext;
101
102
  }
103
+ /**
104
+ * Application Query facts available to authorization policy.
105
+ */
106
+ export interface IncomingAppQuery {
107
+ /**
108
+ * Identifies application query execution.
109
+ */
110
+ readonly kind: "app-query";
111
+ /**
112
+ * Carries the received App Query envelope and packed Q.
113
+ */
114
+ readonly query: AppQuery;
115
+ /**
116
+ * Carries the caller-requested actor and tenant.
117
+ */
118
+ readonly requestedContext: ActorContext;
119
+ /**
120
+ * Carries allowlisted transport facts.
121
+ */
122
+ readonly transport: TransportRequestContext;
123
+ }
102
124
  /**
103
125
  * Subscription-creation facts available to authorization policy.
104
126
  */
@@ -169,7 +191,7 @@ export interface IncomingSubscriptionCancellation {
169
191
  /**
170
192
  * Exhaustive request model used at the authorization boundary.
171
193
  */
172
- export type IncomingRequest = IncomingCommand | IncomingQuery | IncomingSubscription | IncomingSubscriptionActivation | IncomingSubscriptionCancellation;
194
+ export type IncomingRequest = IncomingCommand | IncomingQuery | IncomingAppQuery | IncomingSubscription | IncomingSubscriptionActivation | IncomingSubscriptionCancellation;
173
195
  /**
174
196
  * Identity established by an application-specific authenticator.
175
197
  */
@@ -226,6 +248,10 @@ export interface ResolvedSession {
226
248
  * Specifies when the resolved session expires.
227
249
  */
228
250
  readonly expiresAt: Timestamp;
251
+ /**
252
+ * Ends this monitored operation on local logout, expiry, or strategy close.
253
+ */
254
+ readonly invalidated?: AbortSignal;
229
255
  }
230
256
  /**
231
257
  * Provider-neutral authentication boundary. Credentials do not reach policy request facts.
@@ -245,9 +271,10 @@ export interface SessionResolver {
245
271
  /**
246
272
  * Resolves a presented credential into a valid session.
247
273
  * @param credential Supplies the credential to resolve.
274
+ * @param lifetime Optional operation signal; omission retains no monitor.
248
275
  * @returns Returns the resolved session or `undefined` when it is invalid.
249
276
  */
250
- resolve(credential: RequestCredential): Promise<ResolvedSession | undefined>;
277
+ resolve(credential: RequestCredential, lifetime?: AbortSignal): Promise<ResolvedSession | undefined>;
251
278
  }
252
279
  /**
253
280
  * Authorization policy boundary evaluated separately for every incoming request.
@@ -287,6 +314,11 @@ export interface AuthorizedRequestContext {
287
314
  * Identifies the actor's resolved language for Query and subscription contexts.
288
315
  */
289
316
  readonly language?: Language;
317
+ /**
318
+ * Application-resolved authority facts for the admitted invocation.
319
+ * These facts are independent of provider credentials and may be absent.
320
+ */
321
+ readonly authorityFacts?: Readonly<Record<string, AuthorityFact>>;
290
322
  }
291
323
  /**
292
324
  * Application actor and tenant resolution boundary. Command actor and tenant must
@@ -346,6 +378,19 @@ export type IncomingRequestInput = CommandRequestInput | {
346
378
  * Carries allowlisted transport facts.
347
379
  */
348
380
  readonly transport: TransportRequestContext;
381
+ } | {
382
+ /**
383
+ * Identifies an App Query wire envelope.
384
+ */
385
+ readonly kind: "app-query";
386
+ /**
387
+ * Carries serialized App Query bytes.
388
+ */
389
+ readonly value: Uint8Array;
390
+ /**
391
+ * Carries allowlisted transport facts.
392
+ */
393
+ readonly transport: TransportRequestContext;
349
394
  } | {
350
395
  /**
351
396
  * Identifies this input as subscription creation.
@@ -407,6 +452,9 @@ export interface CommandRequestInput {
407
452
  */
408
453
  readonly registry?: TypeRegistryLookup;
409
454
  }
455
+ /**
456
+ * Builds the allowlisted transport facts exposed to admission policies.
457
+ */
410
458
  interface TransportFactsApi {
411
459
  /**
412
460
  * Builds allowlisted transport facts without credentials.
@@ -423,6 +471,15 @@ export { IncomingRequests } from "./request/index.js";
423
471
  export { UnaryGateway } from "./gateway/index.js";
424
472
  export { OpaqueSessionCookies } from "./sessions/cookies.js";
425
473
  export { OpaqueSessions } from "./sessions/opaque.js";
474
+ export { MemoryOpaqueSessionStore } from "./sessions/opaque-session-store.js";
475
+ export type { OpaqueSessionStore } from "./sessions/opaque-session-store.js";
476
+ export { PersistentOpaqueSessionStore } from "./sessions/persistent-opaque-session-store.js";
477
+ export type { PersistentOpaqueStoreOptions } from "./sessions/persistent-opaque-session-store.js";
478
+ export { PersistentOidcFlowStore } from "./oidc/persistent-flow-store.js";
479
+ export type { PersistentOidcFlowOptions } from "./oidc/persistent-flow-store.js";
480
+ export { PersistentTokenRevocations } from "./sessions/persistent-token-revocations.js";
481
+ export type { PersistentTokenRevocationsOptions } from "./sessions/persistent-token-revocations.js";
482
+ export type { OidcFlowStore } from "./oidc/flow-store.js";
426
483
  export { SignedSessions } from "./sessions/signed.js";
427
484
  export { OidcFlow } from "./oidc/index.js";
428
485
  export { createGitHubProvider, createGoogleProvider, createOidcProvider, discoverOidcProvider, } from "./providers/index.js";