@xemahq/authorization-nest 0.6.0 → 0.7.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.
Files changed (48) hide show
  1. package/dist/authzen.transport.d.ts +11 -8
  2. package/dist/authzen.transport.d.ts.map +1 -1
  3. package/dist/authzen.transport.js +20 -12
  4. package/dist/authzen.transport.js.map +1 -1
  5. package/dist/durable-delegation/carrier-mint.d.ts +20 -0
  6. package/dist/durable-delegation/carrier-mint.d.ts.map +1 -0
  7. package/dist/durable-delegation/carrier-mint.js +19 -0
  8. package/dist/durable-delegation/carrier-mint.js.map +1 -0
  9. package/dist/durable-delegation/carrier-shape.d.ts +8 -0
  10. package/dist/durable-delegation/carrier-shape.d.ts.map +1 -0
  11. package/dist/durable-delegation/carrier-shape.js +32 -0
  12. package/dist/durable-delegation/carrier-shape.js.map +1 -0
  13. package/dist/durable-delegation/carrier-window.d.ts +21 -0
  14. package/dist/durable-delegation/carrier-window.d.ts.map +1 -0
  15. package/dist/durable-delegation/carrier-window.js +28 -0
  16. package/dist/durable-delegation/carrier-window.js.map +1 -0
  17. package/dist/durable-delegation/holder-client.d.ts +69 -13
  18. package/dist/durable-delegation/holder-client.d.ts.map +1 -1
  19. package/dist/durable-delegation/holder-client.js +178 -17
  20. package/dist/durable-delegation/holder-client.js.map +1 -1
  21. package/dist/durable-delegation/holder-errors.d.ts +6 -0
  22. package/dist/durable-delegation/holder-errors.d.ts.map +1 -1
  23. package/dist/durable-delegation/holder-errors.js +14 -1
  24. package/dist/durable-delegation/holder-errors.js.map +1 -1
  25. package/dist/durable-delegation/holder-lifecycle.d.ts +11 -4
  26. package/dist/durable-delegation/holder-lifecycle.d.ts.map +1 -1
  27. package/dist/durable-delegation/holder-lifecycle.js +41 -27
  28. package/dist/durable-delegation/holder-lifecycle.js.map +1 -1
  29. package/dist/ephemeral-delegation/ephemeral-delegation.d.ts +71 -0
  30. package/dist/ephemeral-delegation/ephemeral-delegation.d.ts.map +1 -0
  31. package/dist/ephemeral-delegation/ephemeral-delegation.js +147 -0
  32. package/dist/ephemeral-delegation/ephemeral-delegation.js.map +1 -0
  33. package/dist/grant-version.reader.d.ts +3 -2
  34. package/dist/grant-version.reader.d.ts.map +1 -1
  35. package/dist/grant-version.reader.js +6 -3
  36. package/dist/grant-version.reader.js.map +1 -1
  37. package/dist/index.d.ts +4 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +4 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/route-action-evaluator.js +3 -3
  42. package/dist/route-action-evaluator.js.map +1 -1
  43. package/dist/subject-from-context.d.ts.map +1 -1
  44. package/dist/subject-from-context.js.map +1 -1
  45. package/dist/xema-authz.service.d.ts.map +1 -1
  46. package/dist/xema-authz.service.js +14 -6
  47. package/dist/xema-authz.service.js.map +1 -1
  48. package/package.json +19 -14
@@ -10,11 +10,11 @@ export interface AuthzenPdpCallOptions {
10
10
  readonly onPolicyModel?: (policyModel: string | undefined) => void;
11
11
  }
12
12
  export interface AuthzenPdpTransport {
13
- evaluation(orgId: string | null, request: AccessEvaluationRequest): Promise<AccessEvaluationResponse>;
13
+ evaluation(orgId: string | null, request: AccessEvaluationRequest, options?: AuthzenPdpCallOptions): Promise<AccessEvaluationResponse>;
14
14
  evaluations(orgId: string, request: AccessEvaluationsRequest, options?: AuthzenPdpCallOptions): Promise<AccessEvaluationsResponse>;
15
- searchResource(orgId: string, request: ResourceSearchRequest): Promise<ResourceSearchResponse>;
16
- searchSubject(orgId: string, request: SubjectSearchRequest): Promise<SubjectSearchResponse>;
17
- searchAction(orgId: string, request: ActionSearchRequest): Promise<ActionSearchResponse>;
15
+ searchResource(orgId: string, request: ResourceSearchRequest, options?: AuthzenPdpCallOptions): Promise<ResourceSearchResponse>;
16
+ searchSubject(orgId: string, request: SubjectSearchRequest, options?: AuthzenPdpCallOptions): Promise<SubjectSearchResponse>;
17
+ searchAction(orgId: string, request: ActionSearchRequest, options?: AuthzenPdpCallOptions): Promise<ActionSearchResponse>;
18
18
  }
19
19
  export declare const AUTHZEN_PDP_TRANSPORT: unique symbol;
20
20
  export declare class AuthzenPdpError extends Error {
@@ -22,16 +22,19 @@ export declare class AuthzenPdpError extends Error {
22
22
  readonly code: string | undefined;
23
23
  constructor(message: string, status: number, code: string | undefined);
24
24
  }
25
+ export declare class AuthzenCallerContextRequiredError extends AuthzenPdpError {
26
+ constructor(path: string);
27
+ }
25
28
  export declare class HttpAuthzenPdpTransport implements AuthzenPdpTransport {
26
29
  private readonly registry;
27
30
  private readonly identityBootstrap;
28
31
  private readonly options;
29
32
  constructor(registry: ServiceRegistry, identityBootstrap: IdentityBootstrapService, options: XemaAuthorizationOptions);
30
- evaluation(orgId: string | null, request: AccessEvaluationRequest): Promise<AccessEvaluationResponse>;
33
+ evaluation(orgId: string | null, request: AccessEvaluationRequest, options?: AuthzenPdpCallOptions): Promise<AccessEvaluationResponse>;
31
34
  evaluations(orgId: string, request: AccessEvaluationsRequest, options?: AuthzenPdpCallOptions): Promise<AccessEvaluationsResponse>;
32
- searchResource(orgId: string, request: ResourceSearchRequest): Promise<ResourceSearchResponse>;
33
- searchSubject(orgId: string, request: SubjectSearchRequest): Promise<SubjectSearchResponse>;
34
- searchAction(orgId: string, request: ActionSearchRequest): Promise<ActionSearchResponse>;
35
+ searchResource(orgId: string, request: ResourceSearchRequest, options?: AuthzenPdpCallOptions): Promise<ResourceSearchResponse>;
36
+ searchSubject(orgId: string, request: SubjectSearchRequest, options?: AuthzenPdpCallOptions): Promise<SubjectSearchResponse>;
37
+ searchAction(orgId: string, request: ActionSearchRequest, options?: AuthzenPdpCallOptions): Promise<ActionSearchResponse>;
35
38
  private post;
36
39
  }
37
40
  //# sourceMappingURL=authzen.transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authzen.transport.d.ts","sourceRoot":"","sources":["../src/authzen.transport.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AAoBjC,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AAGjE,MAAM,WAAW,qBAAqB;IAQpC,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAElD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAK9B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,WAAW,CACT,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtC,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,aAAa,CACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClC,YAAY,CACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAGrE,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM,GAAG,SAAS;gBAFxC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,SAAS;CAK3C;AAED,qBACa,uBAAwB,YAAW,mBAAmB;IAG/D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAElC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHP,QAAQ,EAAE,eAAe,EACzB,iBAAiB,EAAE,wBAAwB,EAE3C,OAAO,EAAE,wBAAwB;IAG7C,UAAU,CACf,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,wBAAwB,CAAC;IAS7B,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,yBAAyB,CAAC;IAU9B,cAAc,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAS3B,aAAa,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAS1B,YAAY,CACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,oBAAoB,CAAC;YASlB,IAAI;CAqDnB"}
1
+ {"version":3,"file":"authzen.transport.d.ts","sourceRoot":"","sources":["../src/authzen.transport.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.HttpAuthzenPdpTransport = exports.AuthzenPdpError = exports.AUTHZEN_PDP_TRANSPORT = exports.AUTHZEN_POLICY_MODEL_HEADER = void 0;
15
+ exports.HttpAuthzenPdpTransport = exports.AuthzenCallerContextRequiredError = exports.AuthzenPdpError = exports.AUTHZEN_PDP_TRANSPORT = exports.AUTHZEN_POLICY_MODEL_HEADER = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const authzen_1 = require("@xemahq/contracts/authzen");
18
18
  const service_registry_1 = require("@xemahq/contracts/service-registry");
@@ -33,6 +33,13 @@ class AuthzenPdpError extends Error {
33
33
  }
34
34
  }
35
35
  exports.AuthzenPdpError = AuthzenPdpError;
36
+ class AuthzenCallerContextRequiredError extends AuthzenPdpError {
37
+ constructor(path) {
38
+ super(`authorization-api POST ${path} requires the caller's own verified context; none is held.`, 403, 'caller_context_required');
39
+ this.name = AuthzenCallerContextRequiredError.name;
40
+ }
41
+ }
42
+ exports.AuthzenCallerContextRequiredError = AuthzenCallerContextRequiredError;
36
43
  let HttpAuthzenPdpTransport = class HttpAuthzenPdpTransport {
37
44
  registry;
38
45
  identityBootstrap;
@@ -42,26 +49,27 @@ let HttpAuthzenPdpTransport = class HttpAuthzenPdpTransport {
42
49
  this.identityBootstrap = identityBootstrap;
43
50
  this.options = options;
44
51
  }
45
- evaluation(orgId, request) {
46
- return this.post(orgId, authzen_1.AuthzenEndpointPath.Evaluation, request, authzen_1.AccessEvaluationResponseSchema);
52
+ evaluation(orgId, request, options) {
53
+ return this.post(orgId, authzen_1.AuthzenEndpointPath.Evaluation, request, authzen_1.AccessEvaluationResponseSchema, options);
47
54
  }
48
55
  evaluations(orgId, request, options) {
49
56
  return this.post(orgId, authzen_1.AuthzenEndpointPath.Evaluations, request, authzen_1.AccessEvaluationsResponseSchema, options);
50
57
  }
51
- searchResource(orgId, request) {
52
- return this.post(orgId, authzen_1.AuthzenEndpointPath.SearchResource, request, authzen_1.ResourceSearchResponseSchema);
58
+ searchResource(orgId, request, options) {
59
+ return this.post(orgId, authzen_1.AuthzenEndpointPath.SearchResource, request, authzen_1.ResourceSearchResponseSchema, options);
53
60
  }
54
- searchSubject(orgId, request) {
55
- return this.post(orgId, authzen_1.AuthzenEndpointPath.SearchSubject, request, authzen_1.SubjectSearchResponseSchema);
61
+ searchSubject(orgId, request, options) {
62
+ return this.post(orgId, authzen_1.AuthzenEndpointPath.SearchSubject, request, authzen_1.SubjectSearchResponseSchema, options);
56
63
  }
57
- searchAction(orgId, request) {
58
- return this.post(orgId, authzen_1.AuthzenEndpointPath.SearchAction, request, authzen_1.ActionSearchResponseSchema);
64
+ searchAction(orgId, request, options) {
65
+ return this.post(orgId, authzen_1.AuthzenEndpointPath.SearchAction, request, authzen_1.ActionSearchResponseSchema, options);
59
66
  }
60
67
  async post(orgId, path, body, schema, options = {}) {
61
68
  const baseUrl = await (0, service_registry_nest_1.resolveHttpUrl)(this.registry, service_registry_1.ServiceName.AUTHORIZATION_API);
62
- const authorization = options.forwardedCaller === undefined
63
- ? { Authorization: `Bearer ${await this.identityBootstrap.getAccessToken()}` }
64
- : await (0, platform_common_1.forwardedCallerHeaders)(options.forwardedCaller, this.identityBootstrap);
69
+ if (options.forwardedCaller === undefined) {
70
+ throw new AuthzenCallerContextRequiredError(path);
71
+ }
72
+ const authorization = await (0, platform_common_1.forwardedCallerHeaders)(options.forwardedCaller, this.identityBootstrap);
65
73
  const timeout = AbortSignal.timeout(this.options.requestTimeoutMs);
66
74
  const response = await fetch(`${baseUrl.replace(/\/+$/, '')}${path}`, {
67
75
  method: 'POST',
@@ -1 +1 @@
1
- {"version":3,"file":"authzen.transport.js","sourceRoot":"","sources":["../src/authzen.transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authzen.transport.js","sourceRoot":"","sources":["../src/authzen.transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type HeldDurableDelegation } from '@xemahq/xema-service-nest';
2
+ import type { ScopedAccessToken } from '@xemahq/identity-client';
3
+ import type { ReceiverAudience } from '@xemahq/platform-common';
4
+ export interface DurableDelegationCarrierRef {
5
+ readonly delegationId: string;
6
+ readonly organizationId: string;
7
+ readonly carrierId: string;
8
+ }
9
+ export interface DurableDelegationMinter {
10
+ mintDelegatedContext(params: {
11
+ delegationId: string;
12
+ audience?: string;
13
+ realm?: string;
14
+ }): Promise<ScopedAccessToken>;
15
+ }
16
+ export declare function mintDurableDelegatedToken(minter: DurableDelegationMinter, ref: DurableDelegationCarrierRef, options: {
17
+ readonly audience: ReceiverAudience;
18
+ }): Promise<ScopedAccessToken>;
19
+ export declare function heldDurableDelegation(minter: DurableDelegationMinter, ref: DurableDelegationCarrierRef): HeldDurableDelegation;
20
+ //# sourceMappingURL=carrier-mint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-mint.d.ts","sourceRoot":"","sources":["../../src/durable-delegation/carrier-mint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEtG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQhE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,CAAC,MAAM,EAAE;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AASD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,2BAA2B,EAChC,OAAO,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,GAC/C,OAAO,CAAC,iBAAiB,CAAC,CAK5B;AAOD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,2BAA2B,GAC/B,qBAAqB,CAMvB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mintDurableDelegatedToken = mintDurableDelegatedToken;
4
+ exports.heldDurableDelegation = heldDurableDelegation;
5
+ const xema_service_nest_1 = require("@xemahq/xema-service-nest");
6
+ function mintDurableDelegatedToken(minter, ref, options) {
7
+ return minter.mintDelegatedContext({
8
+ delegationId: ref.carrierId,
9
+ audience: options.audience,
10
+ });
11
+ }
12
+ function heldDurableDelegation(minter, ref) {
13
+ return {
14
+ brand: xema_service_nest_1.HELD_DURABLE_DELEGATION_BRAND,
15
+ organizationId: ref.organizationId,
16
+ mintDelegatedContext: ({ audience }) => mintDurableDelegatedToken(minter, ref, { audience }),
17
+ };
18
+ }
19
+ //# sourceMappingURL=carrier-mint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-mint.js","sourceRoot":"","sources":["../../src/durable-delegation/carrier-mint.ts"],"names":[],"mappings":";;AAiCA,8DASC;AAOD,sDASC;AA1DD,iEAAsG;AAiCtG,SAAgB,yBAAyB,CACvC,MAA+B,EAC/B,GAAgC,EAChC,OAAgD;IAEhD,OAAO,MAAM,CAAC,oBAAoB,CAAC;QACjC,YAAY,EAAE,GAAG,CAAC,SAAS;QAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACL,CAAC;AAOD,SAAgB,qBAAqB,CACnC,MAA+B,EAC/B,GAAgC;IAEhC,OAAO;QACL,KAAK,EAAE,iDAA6B;QACpC,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC;KAC7F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const DURABLE_DELEGATION_SCOPE_PREFIX = "durable-delegation:";
2
+ export declare const DURABLE_DELEGATION_BASIS_PREFIX = "durable-delegation:";
3
+ export declare const DURABLE_DELEGATION_CARRY_ACTION = "xema_durable_delegation#carry";
4
+ export declare function durableDelegationRootMarker(rootId: string): string;
5
+ export declare function durableDelegationBasis(recordId: string): string;
6
+ export declare function recordIdOfDurableBasis(basis: string | null): string | undefined;
7
+ export declare function durableDelegationIdOfScope(scope: readonly string[] | undefined): string | undefined;
8
+ //# sourceMappingURL=carrier-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-shape.d.ts","sourceRoot":"","sources":["../../src/durable-delegation/carrier-shape.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AAGrE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AAMrE,eAAO,MAAM,+BAA+B,kCAAkC,CAAC;AAG/E,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;AAGD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE/D;AAGD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAI/E;AAQD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CASpB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DURABLE_DELEGATION_CARRY_ACTION = exports.DURABLE_DELEGATION_BASIS_PREFIX = exports.DURABLE_DELEGATION_SCOPE_PREFIX = void 0;
4
+ exports.durableDelegationRootMarker = durableDelegationRootMarker;
5
+ exports.durableDelegationBasis = durableDelegationBasis;
6
+ exports.recordIdOfDurableBasis = recordIdOfDurableBasis;
7
+ exports.durableDelegationIdOfScope = durableDelegationIdOfScope;
8
+ exports.DURABLE_DELEGATION_SCOPE_PREFIX = 'durable-delegation:';
9
+ exports.DURABLE_DELEGATION_BASIS_PREFIX = 'durable-delegation:';
10
+ exports.DURABLE_DELEGATION_CARRY_ACTION = 'xema_durable_delegation#carry';
11
+ function durableDelegationRootMarker(rootId) {
12
+ return `${exports.DURABLE_DELEGATION_SCOPE_PREFIX}${rootId}`;
13
+ }
14
+ function durableDelegationBasis(recordId) {
15
+ return `${exports.DURABLE_DELEGATION_BASIS_PREFIX}${recordId}`;
16
+ }
17
+ function recordIdOfDurableBasis(basis) {
18
+ return basis !== null && basis.startsWith(exports.DURABLE_DELEGATION_BASIS_PREFIX)
19
+ ? basis.slice(exports.DURABLE_DELEGATION_BASIS_PREFIX.length)
20
+ : undefined;
21
+ }
22
+ function durableDelegationIdOfScope(scope) {
23
+ if (scope === undefined) {
24
+ return undefined;
25
+ }
26
+ const entries = scope.filter((entry) => entry.startsWith(exports.DURABLE_DELEGATION_SCOPE_PREFIX));
27
+ if (entries.length !== 1) {
28
+ return entries.length === 0 ? undefined : '';
29
+ }
30
+ return entries[0].slice(exports.DURABLE_DELEGATION_SCOPE_PREFIX.length);
31
+ }
32
+ //# sourceMappingURL=carrier-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-shape.js","sourceRoot":"","sources":["../../src/durable-delegation/carrier-shape.ts"],"names":[],"mappings":";;;AA2BA,kEAEC;AAGD,wDAEC;AAGD,wDAIC;AAQD,gEAWC;AA7CY,QAAA,+BAA+B,GAAG,qBAAqB,CAAC;AAGxD,QAAA,+BAA+B,GAAG,qBAAqB,CAAC;AAMxD,QAAA,+BAA+B,GAAG,+BAA+B,CAAC;AAG/E,SAAgB,2BAA2B,CAAC,MAAc;IACxD,OAAO,GAAG,uCAA+B,GAAG,MAAM,EAAE,CAAC;AACvD,CAAC;AAGD,SAAgB,sBAAsB,CAAC,QAAgB;IACrD,OAAO,GAAG,uCAA+B,GAAG,QAAQ,EAAE,CAAC;AACzD,CAAC;AAGD,SAAgB,sBAAsB,CAAC,KAAoB;IACzD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,uCAA+B,CAAC;QACxE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,uCAA+B,CAAC,MAAM,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAQD,SAAgB,0BAA0B,CACxC,KAAoC;IAEpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,uCAA+B,CAAC,CAAC,CAAC;IAC3F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IACD,OAAQ,OAAO,CAAC,CAAC,CAAY,CAAC,KAAK,CAAC,uCAA+B,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare const CARRIER_BOUND_LIFETIME_MS: number;
2
+ export declare const CARRIER_RENEWAL_WINDOW_MS: number;
3
+ export declare enum CarrierRenewalOutcome {
4
+ Renewed = "renewed",
5
+ NotDue = "not-due",
6
+ CeilingUnknown = "ceiling-unknown",
7
+ AtCeiling = "at-ceiling",
8
+ RenewedByAuthorizationApi = "renewed-by-authorization-api"
9
+ }
10
+ export type ChildCarrierRenewalPlan = {
11
+ readonly outcome: CarrierRenewalOutcome.NotDue;
12
+ } | {
13
+ readonly outcome: CarrierRenewalOutcome.CeilingUnknown;
14
+ } | {
15
+ readonly outcome: CarrierRenewalOutcome.AtCeiling;
16
+ } | {
17
+ readonly outcome: CarrierRenewalOutcome.Renewed;
18
+ readonly expiresAt: Date;
19
+ };
20
+ export declare function planChildCarrierRenewal(now: Date, carrierExpiresAt: Date, ceiling: Date | undefined): ChildCarrierRenewalPlan;
21
+ //# sourceMappingURL=carrier-window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-window.d.ts","sourceRoot":"","sources":["../../src/durable-delegation/carrier-window.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,yBAAyB,QAA2B,CAAC;AAGlE,eAAO,MAAM,yBAAyB,QAA0B,CAAC;AAGjE,oBAAY,qBAAqB;IAE/B,OAAO,YAAY;IAEnB,MAAM,YAAY;IAKlB,cAAc,oBAAoB;IAMlC,SAAS,eAAe;IAExB,yBAAyB,iCAAiC;CAC3D;AAGD,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,cAAc,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC;AASlF,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,EACT,gBAAgB,EAAE,IAAI,EACtB,OAAO,EAAE,IAAI,GAAG,SAAS,GACxB,uBAAuB,CAYzB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CarrierRenewalOutcome = exports.CARRIER_RENEWAL_WINDOW_MS = exports.CARRIER_BOUND_LIFETIME_MS = void 0;
4
+ exports.planChildCarrierRenewal = planChildCarrierRenewal;
5
+ exports.CARRIER_BOUND_LIFETIME_MS = 30 * 24 * 60 * 60 * 1000;
6
+ exports.CARRIER_RENEWAL_WINDOW_MS = 7 * 24 * 60 * 60 * 1000;
7
+ var CarrierRenewalOutcome;
8
+ (function (CarrierRenewalOutcome) {
9
+ CarrierRenewalOutcome["Renewed"] = "renewed";
10
+ CarrierRenewalOutcome["NotDue"] = "not-due";
11
+ CarrierRenewalOutcome["CeilingUnknown"] = "ceiling-unknown";
12
+ CarrierRenewalOutcome["AtCeiling"] = "at-ceiling";
13
+ CarrierRenewalOutcome["RenewedByAuthorizationApi"] = "renewed-by-authorization-api";
14
+ })(CarrierRenewalOutcome || (exports.CarrierRenewalOutcome = CarrierRenewalOutcome = {}));
15
+ function planChildCarrierRenewal(now, carrierExpiresAt, ceiling) {
16
+ if (carrierExpiresAt.getTime() - now.getTime() >= exports.CARRIER_RENEWAL_WINDOW_MS) {
17
+ return { outcome: CarrierRenewalOutcome.NotDue };
18
+ }
19
+ if (ceiling === undefined) {
20
+ return { outcome: CarrierRenewalOutcome.CeilingUnknown };
21
+ }
22
+ const target = Math.min(ceiling.getTime(), now.getTime() + exports.CARRIER_BOUND_LIFETIME_MS);
23
+ if (target <= carrierExpiresAt.getTime()) {
24
+ return { outcome: CarrierRenewalOutcome.AtCeiling };
25
+ }
26
+ return { outcome: CarrierRenewalOutcome.Renewed, expiresAt: new Date(target) };
27
+ }
28
+ //# sourceMappingURL=carrier-window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carrier-window.js","sourceRoot":"","sources":["../../src/durable-delegation/carrier-window.ts"],"names":[],"mappings":";;;AAyDA,0DAgBC;AAxDY,QAAA,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAGrD,QAAA,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAGjE,IAAY,qBAkBX;AAlBD,WAAY,qBAAqB;IAE/B,4CAAmB,CAAA;IAEnB,2CAAkB,CAAA;IAKlB,2DAAkC,CAAA;IAMlC,iDAAwB,CAAA;IAExB,mFAA0D,CAAA;AAC5D,CAAC,EAlBW,qBAAqB,qCAArB,qBAAqB,QAkBhC;AAgBD,SAAgB,uBAAuB,CACrC,GAAS,EACT,gBAAsB,EACtB,OAAyB;IAEzB,IAAI,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,iCAAyB,EAAE,CAAC;QAC5E,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,cAAc,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,iCAAyB,CAAC,CAAC;IACtF,IAAI,MAAM,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,SAAS,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACjF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { type ServiceRegistry } from '@xemahq/contracts/service-registry';
2
- import { IdentityBootstrapService } from '@xemahq/identity-client';
2
+ import { IdentityBootstrapService, type ScopedAccessToken } from '@xemahq/identity-client';
3
3
  import { type ForwardedCallerContext } from '@xemahq/platform-common';
4
+ import { CarrierRenewalOutcome } from './carrier-window';
4
5
  export declare enum DurableDelegationOwnerKind {
5
6
  User = "USER",
6
- Team = "TEAM",
7
7
  Org = "ORG"
8
8
  }
9
9
  export declare enum DurableDelegationRecordState {
@@ -12,32 +12,68 @@ export declare enum DurableDelegationRecordState {
12
12
  Revoked = "REVOKED",
13
13
  Expired = "EXPIRED"
14
14
  }
15
- export interface DurableDelegationCreate {
16
- readonly owner: {
17
- readonly kind: DurableDelegationOwnerKind;
18
- readonly id: string;
19
- };
15
+ export declare enum DurableDelegationEndReason {
16
+ Explicit = "EXPLICIT",
17
+ AnchorInactive = "ANCHOR_INACTIVE",
18
+ AnchorDeleted = "ANCHOR_DELETED",
19
+ OwnerDeleted = "OWNER_DELETED",
20
+ Expired = "EXPIRED",
21
+ ParentEnded = "PARENT_ENDED"
22
+ }
23
+ export declare enum DurableDelegationErrorCode {
24
+ CreationRefused = "DURABLE_DELEGATION_CREATION_REFUSED",
25
+ NotFound = "DURABLE_DELEGATION_NOT_FOUND",
26
+ NotActive = "DURABLE_DELEGATION_NOT_ACTIVE",
27
+ CarrierUnavailable = "DURABLE_DELEGATION_CARRIER_UNAVAILABLE",
28
+ RevocationNotPermitted = "DURABLE_DELEGATION_REVOCATION_NOT_PERMITTED",
29
+ HolderMismatch = "DURABLE_DELEGATION_HOLDER_IS_NOT_PRESENTER",
30
+ RequestKeyConflict = "DURABLE_DELEGATION_REQUEST_KEY_CONFLICT",
31
+ CarrierAlreadyBound = "DURABLE_DELEGATION_CARRIER_ALREADY_BOUND",
32
+ AnchorTypeNotDeclared = "DELEGATION_ANCHOR_TYPE_NOT_DECLARED",
33
+ AnchorOriginationNotDeclared = "DELEGATION_ANCHOR_ORIGINATION_NOT_DECLARED",
34
+ ChainTooDeep = "DELEGATION_CHAIN_TOO_DEEP",
35
+ Ended = "DURABLE_DELEGATION_ENDED",
36
+ MemberBoundParent = "DURABLE_DELEGATION_MEMBER_BOUND_PARENT",
37
+ RootCarrierNotPresenterRenewed = "DURABLE_DELEGATION_ROOT_CARRIER_NOT_PRESENTER_RENEWED",
38
+ BeyondHolderDeclarations = "DELEGATION_BEYOND_HOLDER_DECLARATIONS",
39
+ HolderDeclarationsUnstamped = "DELEGATION_HOLDER_DECLARATIONS_UNSTAMPED"
40
+ }
41
+ export interface OriginateDurableDelegationInput {
42
+ readonly anchorType: string;
43
+ readonly anchorId: string;
44
+ readonly requestKey: string;
45
+ readonly environmentId: string;
46
+ readonly capabilities?: readonly string[];
47
+ readonly redelegable?: readonly string[];
48
+ }
49
+ export interface DurableDelegationChildCreate {
20
50
  readonly scope: readonly string[];
21
51
  readonly capabilities: readonly string[];
22
- readonly integrationId: string;
23
- readonly environmentId: string;
24
- readonly requestKey: string;
52
+ readonly redelegable?: readonly string[];
53
+ readonly holderWorkload: string;
25
54
  readonly holderMember?: string;
55
+ readonly requestKey: string;
26
56
  readonly expiresAt?: Date;
27
57
  }
28
58
  export interface DurableDelegationView {
29
59
  readonly id: string;
30
60
  readonly state: DurableDelegationRecordState;
31
- readonly endReason?: string;
61
+ readonly endReason?: DurableDelegationEndReason;
32
62
  readonly owner: {
33
63
  readonly kind: DurableDelegationOwnerKind;
34
64
  readonly id: string;
35
65
  };
36
66
  readonly scope: readonly string[];
37
67
  readonly capabilities: readonly string[];
38
- readonly integrationId: string;
68
+ readonly anchorType: string;
69
+ readonly anchorId: string;
70
+ readonly parentId?: string;
71
+ readonly rootId: string;
72
+ readonly depth: number;
73
+ readonly redelegable: readonly string[];
39
74
  readonly environmentId: string;
40
75
  readonly holderWorkload: string;
76
+ readonly createdByWorkload?: string;
41
77
  readonly carrierId?: string;
42
78
  readonly expiresAt?: string;
43
79
  readonly lastDenial?: {
@@ -47,6 +83,12 @@ export interface DurableDelegationView {
47
83
  readonly scope: string;
48
84
  };
49
85
  }
86
+ export interface DurableDelegationCarrierWindow {
87
+ readonly delegationId: string;
88
+ readonly carrierId: string;
89
+ readonly carrierExpiresAt: string;
90
+ readonly renewalCeiling?: string;
91
+ }
50
92
  export declare class DurableDelegationRequestError extends Error {
51
93
  readonly status: number;
52
94
  readonly code: string | undefined;
@@ -55,11 +97,25 @@ export declare class DurableDelegationRequestError extends Error {
55
97
  export declare class DurableDelegationHolderClient {
56
98
  private readonly registry;
57
99
  private readonly identity;
100
+ private readonly logger;
58
101
  constructor(registry: ServiceRegistry, identity: IdentityBootstrapService);
59
- create(author: ForwardedCallerContext, request: DurableDelegationCreate): Promise<DurableDelegationView>;
102
+ originate(author: ForwardedCallerContext, input: OriginateDurableDelegationInput): Promise<DurableDelegationView>;
103
+ createChild(orgId: string, parentId: string, request: DurableDelegationChildCreate): Promise<DurableDelegationView>;
60
104
  read(orgId: string, delegationId: string): Promise<DurableDelegationView>;
61
105
  revoke(orgId: string, delegationId: string): Promise<DurableDelegationView>;
106
+ supersede(orgId: string, delegationId: string, original?: unknown): Promise<DurableDelegationView>;
107
+ renewCarrier(orgId: string, delegationId: string): Promise<CarrierRenewalOutcome>;
62
108
  mintContext(carrierId: string): Promise<string>;
109
+ mintDelegatedContext(params: {
110
+ delegationId: string;
111
+ audience?: string;
112
+ realm?: string;
113
+ }): Promise<ScopedAccessToken>;
114
+ private bindOrResume;
115
+ private revokeUnboundCarrier;
116
+ private postChild;
117
+ private reportCarrierWindow;
118
+ private serviceHeaders;
63
119
  private send;
64
120
  }
65
121
  //# sourceMappingURL=holder-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"holder-client.d.ts","sourceRoot":"","sources":["../../src/durable-delegation/holder-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"holder-client.d.ts","sourceRoot":"","sources":["../../src/durable-delegation/holder-client.ts"],"names":[],"mappings":"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"}