@spine-event-engine/auth 2.0.0-snapshot.23 → 2.0.0-snapshot.24

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.
@@ -11,7 +11,7 @@
11
11
  * or implied. See the License for the specific language governing permissions and limitations under
12
12
  * the License.
13
13
  */
14
- import { clone, create, fromBinary, toBinary } from "@bufbuild/protobuf";
14
+ import { clone, create, equals, fromBinary, toBinary } from "@bufbuild/protobuf";
15
15
  import { Code, ConnectError, createClient, } from "@connectrpc/connect";
16
16
  import { CommandService, QueryService, SubscriptionSchema, SubscriptionService, SubscriptionUpdateSchema, TopicSchema, } from "@spine-event-engine/proto/client";
17
17
  import { AuthenticationService } from "@spine-event-engine/proto/auth";
@@ -166,6 +166,12 @@ export class SubscriptionUpdateRelay {
166
166
  * Creates completed native-relay rejection values.
167
167
  */
168
168
  const NativeRelayValues = Object.freeze({
169
+ /**
170
+ * Returns a rejected update relay promise.
171
+ *
172
+ * @param reason The original failure reason.
173
+ * @returns A rejected relay promise.
174
+ */
169
175
  rejectedRelayPromise(reason) {
170
176
  return Promise.resolve().then(() => {
171
177
  throw reason;
@@ -216,11 +222,19 @@ export class NativeSubscriptionCreator {
216
222
  */
217
223
  async activate(request, signal) {
218
224
  const subscription = fromBinary(SubscriptionSchema, request.wire.bytes);
219
- for await (const update of createClient(SubscriptionService, this.#transport).activate(subscription, { signal }))
225
+ for await (const update of createClient(SubscriptionService, this.#transport).activate(subscription, { signal })) {
226
+ const topic = subscription.topic;
227
+ const updateTopic = update.subscription?.topic;
228
+ if (update.subscription?.id?.value !== subscription.id?.value ||
229
+ topic === undefined ||
230
+ updateTopic === undefined ||
231
+ !equals(TopicSchema, updateTopic, topic))
232
+ throw new Error("Backend child update does not match its subscription.");
220
233
  await request.updates({
221
234
  kind: "subscription-update",
222
235
  bytes: toBinary(SubscriptionUpdateSchema, update),
223
236
  });
237
+ }
224
238
  }
225
239
  /**
226
240
  * Cancels the native subscription represented by the canonical definition.
@@ -285,6 +299,14 @@ export function createNativeGatewayServices(options) {
285
299
  * Converts native Connect gateway inputs, responses, and errors.
286
300
  */
287
301
  const NativeGatewayValues = Object.freeze({
302
+ /**
303
+ * Resolves authenticated context for a public request.
304
+ *
305
+ * @param options Configuration for this transport operation.
306
+ * @param request The admitted or incoming request.
307
+ * @param context The authenticated or RPC context.
308
+ * @returns The trusted actor context.
309
+ */
288
310
  async resolveContext(options, request, context) {
289
311
  const result = await options.unary.handle({
290
312
  service: "spine.auth.AuthenticationService",
@@ -300,6 +322,14 @@ const NativeGatewayValues = Object.freeze({
300
322
  throw new ConnectError("gateway forwarded ResolveContext unexpectedly", Code.Internal);
301
323
  return fromBinary(AuthenticationService.method.resolveContext.output, result.value);
302
324
  },
325
+ /**
326
+ * Maps a forwarded Command result to the public response.
327
+ *
328
+ * @param options Configuration for this transport operation.
329
+ * @param request The admitted or incoming request.
330
+ * @param context The authenticated or RPC context.
331
+ * @returns The public Command response.
332
+ */
303
333
  async commandResponse(options, request, context) {
304
334
  const result = await options.unary.handle({
305
335
  service: "spine.client.CommandService",
@@ -313,6 +343,14 @@ const NativeGatewayValues = Object.freeze({
313
343
  throw NativeGatewayValues.unaryError(result);
314
344
  return fromBinary(CommandService.method.post.output, result.value);
315
345
  },
346
+ /**
347
+ * Maps a forwarded Query result to the public response.
348
+ *
349
+ * @param options Configuration for this transport operation.
350
+ * @param request The admitted or incoming request.
351
+ * @param context The authenticated or RPC context.
352
+ * @returns The public Query response.
353
+ */
316
354
  async queryResponse(options, request, context) {
317
355
  const result = await options.unary.handle({
318
356
  service: "spine.client.QueryService",
@@ -326,6 +364,14 @@ const NativeGatewayValues = Object.freeze({
326
364
  throw NativeGatewayValues.unaryError(result);
327
365
  return fromBinary(QueryService.method.read.output, result.value);
328
366
  },
367
+ /**
368
+ * Activates the authenticated subscription stream.
369
+ *
370
+ * @param options Configuration for this transport operation.
371
+ * @param request The admitted or incoming request.
372
+ * @param context The authenticated or RPC context.
373
+ * @returns Completion or stream of activation updates.
374
+ */
329
375
  activate(options, request, context) {
330
376
  const relay = new SubscriptionUpdateRelay(options.relay);
331
377
  const controller = new AbortController();
@@ -390,8 +436,20 @@ const NativeGatewayValues = Object.freeze({
390
436
  close(reason, true);
391
437
  });
392
438
  },
439
+ /**
440
+ * Wraps a relay as an asynchronous update stream.
441
+ *
442
+ * @param relay The bounded update relay.
443
+ * @param onClose Callback invoked when the stream closes.
444
+ * @returns An asynchronous stream of subscription updates.
445
+ */
393
446
  activationStream(relay, onClose) {
394
447
  return {
448
+ /**
449
+ * Returns the public subscription update iterator.
450
+ *
451
+ * @returns The public update iterator.
452
+ */
395
453
  [Symbol.asyncIterator]() {
396
454
  const iterator = relay[Symbol.asyncIterator]();
397
455
  return {
@@ -408,6 +466,15 @@ const NativeGatewayValues = Object.freeze({
408
466
  },
409
467
  };
410
468
  },
469
+ /**
470
+ * Builds a gateway request from the authenticated RPC.
471
+ *
472
+ * @param method The subscription RPC method.
473
+ * @param bytes Serialized subscription request bytes.
474
+ * @param context The authenticated or RPC context.
475
+ * @param requests The authenticated request handler.
476
+ * @returns The gateway request.
477
+ */
411
478
  subscriptionRequest(method, bytes, context, requests) {
412
479
  return {
413
480
  service: "spine.client.SubscriptionService",
@@ -419,6 +486,12 @@ const NativeGatewayValues = Object.freeze({
419
486
  transport: requests.transport(context),
420
487
  };
421
488
  },
489
+ /**
490
+ * Maps a failed unary forwarding result to a Connect error.
491
+ *
492
+ * @param result The gateway operation result.
493
+ * @returns The unary Connect error.
494
+ */
422
495
  unaryError(result) {
423
496
  const code = result.reason === "unauthenticated"
424
497
  ? Code.Unauthenticated
@@ -431,6 +504,12 @@ const NativeGatewayValues = Object.freeze({
431
504
  : Code.InvalidArgument;
432
505
  return new ConnectError(`gateway rejected ${result.reason}`, code);
433
506
  },
507
+ /**
508
+ * Maps a rejected gateway result to a Connect error.
509
+ *
510
+ * @param result The gateway operation result.
511
+ * @returns The public Connect error.
512
+ */
434
513
  gatewayResultError(result) {
435
514
  if (result.kind !== "rejected")
436
515
  return new ConnectError("subscription gateway returned an unexpected operation result", Code.Internal);
@@ -447,6 +526,12 @@ const NativeGatewayValues = Object.freeze({
447
526
  : Code.InvalidArgument;
448
527
  return new ConnectError(`gateway rejected ${result.reason}`, code);
449
528
  },
529
+ /**
530
+ * Validates and fills the update relay limits.
531
+ *
532
+ * @param input Caller-supplied limits.
533
+ * @returns Validated relay limits.
534
+ */
450
535
  relayLimits(input) {
451
536
  const limits = { ...relayDefaults, ...input };
452
537
  for (const limit of Object.values(limits))
@@ -454,6 +539,12 @@ const NativeGatewayValues = Object.freeze({
454
539
  throw new RangeError("subscription relay limits must be positive safe integers");
455
540
  return limits;
456
541
  },
542
+ /**
543
+ * Converts an unknown terminal failure to a Connect error.
544
+ *
545
+ * @param reason The original failure reason.
546
+ * @returns The terminal Connect error.
547
+ */
457
548
  terminalError(reason) {
458
549
  return reason instanceof Error
459
550
  ? reason
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"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"}
@@ -296,7 +296,9 @@ export interface SubscriptionCreator {
296
296
  */
297
297
  subscribe(request: PublicSubscriptionWire, signal: SubscriptionAbortSignal): Promise<BackendSubscriptionEnvelope>;
298
298
  /**
299
- * Activates a backend subscription.
299
+ * Activates a backend subscription and validates relayed updates.
300
+ * A custom creator checks every forwarded update's subscription ID and Topic
301
+ * against the Subscription accepted by its backend. The envelope remains opaque.
300
302
  * @param request Supplies the copied private backend envelope and update sink.
301
303
  * @param signal Cancels the backend operation.
302
304
  * @returns Completes after activation ends.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/subscriptions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/subscriptions/index.ts"],"names":[],"mappings":"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"}
@@ -294,6 +294,14 @@ export class InMemorySubscriptionBindings {
294
294
  definition.bytes.fill(0);
295
295
  }
296
296
  }
297
+ /**
298
+ * Serializes a logical binding operation behind its current tail.
299
+ *
300
+ * @typeParam T The operation result.
301
+ * @param id The logical subscription identifier.
302
+ * @param operation The operation to serialize.
303
+ * @returns The operation result after preceding work settles.
304
+ */
297
305
  async #coordinate(id, operation) {
298
306
  const binding = this.#bindings.get(id);
299
307
  if (binding === undefined)
@@ -327,6 +335,7 @@ export class SubscriptionGateway {
327
335
  #limits;
328
336
  #expiryTimers = new Set();
329
337
  #publicPendingTimers = new Map();
338
+ #cancellations = new Map();
330
339
  #closed = false;
331
340
  /**
332
341
  * Creates the subscription gateway.
@@ -528,8 +537,31 @@ export class SubscriptionGateway {
528
537
  throw cleanupFailure;
529
538
  return outcome;
530
539
  }
531
- async #cancel(id, context, nowMs) {
532
- this.#clearPublicPending(id);
540
+ #cancel(id, context, nowMs) {
541
+ const active = this.#cancellations.get(id) ?? [];
542
+ const matching = active.find((entry) => SubscriptionGatewayValues.contextsEqual(entry.context, context));
543
+ if (matching !== undefined)
544
+ return matching.promise;
545
+ const promise = this.#cancelOnce(id, context, nowMs);
546
+ const entry = { context: clone(ActorContextSchema, context), promise };
547
+ active.push(entry);
548
+ this.#cancellations.set(id, active);
549
+ // spine-log-boundary: auth.subscription_cancel_finally_observer
550
+ void promise
551
+ .finally(() => {
552
+ const current = this.#cancellations.get(id);
553
+ if (current === undefined)
554
+ return;
555
+ const remaining = current.filter((candidate) => candidate !== entry);
556
+ if (remaining.length === 0)
557
+ this.#cancellations.delete(id);
558
+ else
559
+ this.#cancellations.set(id, remaining);
560
+ })
561
+ .catch(() => undefined);
562
+ return promise;
563
+ }
564
+ async #cancelOnce(id, context, nowMs) {
533
565
  try {
534
566
  const result = await this.#options.bindings.cancel({
535
567
  id,
@@ -537,9 +569,10 @@ export class SubscriptionGateway {
537
569
  nowMs,
538
570
  onDefinition: (definition, effectSignal) => this.#forwardCancel(definition, effectSignal),
539
571
  });
540
- return result.kind === "denied"
541
- ? SubscriptionGatewayValues.rejected("denied")
542
- : { kind: "cancelled" };
572
+ if (result.kind === "denied")
573
+ return SubscriptionGatewayValues.rejected("denied");
574
+ this.#clearPublicPending(id);
575
+ return { kind: "cancelled" };
543
576
  }
544
577
  catch (error) {
545
578
  if (error instanceof Error && error.message === "binding-busy")
@@ -665,13 +698,32 @@ export class SubscriptionGateway {
665
698
  */
666
699
  const SubscriptionGatewayValues = Object.freeze({
667
700
  publicPrincipal: Object.freeze({ id: "spine-gateway-public" }),
701
+ /**
702
+ * Stops delivery of an update from a closed or rejected stream.
703
+ *
704
+ * @param update The update being delivered.
705
+ * @returns Completion after discarding the update.
706
+ */
668
707
  discardUpdate(update) {
669
708
  update.bytes.fill(0);
670
709
  return Promise.resolve();
671
710
  },
711
+ /**
712
+ * Copies the public subscription wire bytes.
713
+ *
714
+ * @param wire Serialized public subscription bytes.
715
+ * @returns Copied public subscription bytes.
716
+ */
672
717
  copyPublic(wire) {
673
718
  return { kind: wire.kind, bytes: wire.bytes.slice() };
674
719
  },
720
+ /**
721
+ * Builds a successful subscription response.
722
+ *
723
+ * @param id The logical subscription identifier.
724
+ * @param topicBytes Serialized subscription Topic.
725
+ * @returns A successful subscription response.
726
+ */
675
727
  subscribed(id, topicBytes) {
676
728
  return {
677
729
  kind: "subscribed",
@@ -684,10 +736,24 @@ const SubscriptionGatewayValues = Object.freeze({
684
736
  },
685
737
  };
686
738
  },
739
+ /**
740
+ * Decodes and validates a typed incoming request.
741
+ *
742
+ * @param kind Expected request kind.
743
+ * @param bytes Serialized subscription request bytes.
744
+ * @param transport Safe request transport metadata.
745
+ * @returns The decoded request when its kind matches.
746
+ */
687
747
  decode(kind, bytes, transport) {
688
748
  const result = IncomingRequests.decode({ kind, value: bytes.slice(), transport });
689
749
  return result?.kind === kind ? result : undefined;
690
750
  },
751
+ /**
752
+ * Builds actor context from resolved credentials.
753
+ *
754
+ * @param context The authenticated or RPC context.
755
+ * @returns The trusted actor context.
756
+ */
691
757
  trustedContext(context) {
692
758
  return create(ActorContextSchema, {
693
759
  actor: context.actor,
@@ -697,9 +763,23 @@ const SubscriptionGatewayValues = Object.freeze({
697
763
  ...(context.language === undefined ? {} : { language: context.language }),
698
764
  });
699
765
  },
766
+ /**
767
+ * Checks whether requested context matches trusted context.
768
+ *
769
+ * @param requested Context supplied by the caller.
770
+ * @param trusted Context resolved by authentication.
771
+ * @returns Whether requested context matches authentication.
772
+ */
700
773
  matches(requested, trusted) {
701
774
  return SubscriptionGatewayValues.contextsEqual(requested, trusted);
702
775
  },
776
+ /**
777
+ * Compares authenticated actor and tenant identities.
778
+ *
779
+ * @param left First context to compare.
780
+ * @param right Second context to compare.
781
+ * @returns Whether the actor and tenant identities match.
782
+ */
703
783
  contextsEqual(left, right) {
704
784
  if (left.actor?.value !== right.actor?.value)
705
785
  return false;
@@ -709,6 +789,13 @@ const SubscriptionGatewayValues = Object.freeze({
709
789
  const second = toBinary(TenantIdSchema, right.tenantId);
710
790
  return (first.byteLength === second.byteLength && first.every((byte, index) => byte === second[index]));
711
791
  },
792
+ /**
793
+ * Transforms subscription context with authenticated values.
794
+ *
795
+ * @param incoming Decoded subscription request.
796
+ * @param context The authenticated or RPC context.
797
+ * @returns Serialized subscription with trusted context.
798
+ */
712
799
  rewrite(incoming, context) {
713
800
  if (incoming.kind === "subscribe") {
714
801
  const topic = clone(TopicSchema, incoming.topic);
@@ -723,6 +810,12 @@ const SubscriptionGatewayValues = Object.freeze({
723
810
  subscription.topic = topic;
724
811
  return toBinary(SubscriptionSchema, subscription);
725
812
  },
813
+ /**
814
+ * Determines the subscription operation for a request.
815
+ *
816
+ * @param request The admitted or incoming request.
817
+ * @returns The recognized subscription operation, if any.
818
+ */
726
819
  operationFor(request) {
727
820
  if (request.service !== "spine.client.SubscriptionService")
728
821
  return undefined;
@@ -734,6 +827,12 @@ const SubscriptionGatewayValues = Object.freeze({
734
827
  return "cancel";
735
828
  return undefined;
736
829
  },
830
+ /**
831
+ * Copies safe transport metadata from the request.
832
+ *
833
+ * @param request The admitted or incoming request.
834
+ * @returns Copied safe transport context.
835
+ */
737
836
  snapshotTransport(request) {
738
837
  return Object.freeze({
739
838
  service: request.service,
@@ -753,9 +852,22 @@ const SubscriptionGatewayValues = Object.freeze({
753
852
  : { userAgent: request.transport.userAgent }),
754
853
  });
755
854
  },
855
+ /**
856
+ * Builds a rejected gateway result.
857
+ *
858
+ * @param reason The original failure reason.
859
+ * @returns The rejected gateway result.
860
+ */
756
861
  rejected(reason) {
757
862
  return { kind: "rejected", reason };
758
863
  },
864
+ /**
865
+ * Converts a Protobuf timestamp to safe milliseconds.
866
+ *
867
+ * @param seconds Whole timestamp seconds.
868
+ * @param nanos Timestamp nanoseconds.
869
+ * @returns Safe milliseconds, or undefined for invalid input.
870
+ */
759
871
  timestampMs(seconds, nanos) {
760
872
  const value = Number(seconds);
761
873
  if (!Number.isSafeInteger(value) ||
@@ -766,6 +878,12 @@ const SubscriptionGatewayValues = Object.freeze({
766
878
  const result = value * 1_000 + Math.floor(nanos / 1_000_000);
767
879
  return Number.isSafeInteger(result) ? result : undefined;
768
880
  },
881
+ /**
882
+ * Validates and fills gateway subscription limits.
883
+ *
884
+ * @param input Caller-supplied limits.
885
+ * @returns Validated gateway limits.
886
+ */
769
887
  limits(input) {
770
888
  const value = { ...defaultLimits, ...input };
771
889
  for (const limit of Object.values(value))
@@ -773,6 +891,13 @@ const SubscriptionGatewayValues = Object.freeze({
773
891
  throw new Error("subscription limits must be positive safe integers");
774
892
  return value;
775
893
  },
894
+ /**
895
+ * Copies a bounded gateway request for admission.
896
+ *
897
+ * @param request The admitted or incoming request.
898
+ * @param limit Configured admission bounds.
899
+ * @returns The copied request, or undefined when too large.
900
+ */
776
901
  admit(request, limit) {
777
902
  if (request.wire.bytes.byteLength > limit.maxRequestBytes)
778
903
  return undefined;
@@ -788,6 +913,15 @@ const SubscriptionGatewayValues = Object.freeze({
788
913
  ...(request.signal === undefined ? {} : { signal: request.signal }),
789
914
  };
790
915
  },
916
+ /**
917
+ * Waits for one subscription operation within its finite timeout.
918
+ *
919
+ * @typeParam T The operation result.
920
+ * @param effect The in-flight operation.
921
+ * @param milliseconds Maximum duration in milliseconds.
922
+ * @param controller Controller used to cancel the operation.
923
+ * @returns The operation result before timeout.
924
+ */
791
925
  async withTimeout(effect, milliseconds, controller) {
792
926
  if (controller.signal.aborted)
793
927
  throw new Error("subscription operation aborted");