@xemahq/platform-common 0.2.18 → 0.2.20
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/ambient-org-context.d.ts +3 -0
- package/dist/lib/ambient-org-context.d.ts.map +1 -0
- package/dist/lib/ambient-org-context.js +26 -0
- package/dist/lib/ambient-org-context.js.map +1 -0
- package/dist/nestjs/ambient-org-context.middleware.d.ts +5 -0
- package/dist/nestjs/ambient-org-context.middleware.d.ts.map +1 -0
- package/dist/nestjs/ambient-org-context.middleware.js +27 -0
- package/dist/nestjs/ambient-org-context.middleware.js.map +1 -0
- package/dist/nestjs/auth/actor-classification.d.ts +20 -0
- package/dist/nestjs/auth/actor-classification.d.ts.map +1 -0
- package/dist/nestjs/auth/actor-classification.js +105 -0
- package/dist/nestjs/auth/actor-classification.js.map +1 -0
- package/dist/nestjs/auth/configure-auth-middleware.d.ts.map +1 -1
- package/dist/nestjs/auth/configure-auth-middleware.js +3 -2
- package/dist/nestjs/auth/configure-auth-middleware.js.map +1 -1
- package/dist/nestjs/index.d.ts +2 -0
- package/dist/nestjs/index.d.ts.map +1 -1
- package/dist/nestjs/index.js +12 -2
- package/dist/nestjs/index.js.map +1 -1
- package/dist/nestjs/request-context.middleware.d.ts +0 -6
- package/dist/nestjs/request-context.middleware.d.ts.map +1 -1
- package/dist/nestjs/request-context.middleware.js +4 -81
- package/dist/nestjs/request-context.middleware.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export * from './lib/tool-usage-counter';
|
|
|
23
23
|
export * from './lib/omit-undefined';
|
|
24
24
|
export * from './lib/redaction/index';
|
|
25
25
|
export * from './lib/orval-client-config';
|
|
26
|
+
export * from './lib/ambient-org-context';
|
|
26
27
|
export * from './lib/request-context';
|
|
27
28
|
export * from './lib/resolve-acting-user';
|
|
28
29
|
export * from './lib/vote-feedback';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAIrC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAIrC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -62,6 +62,7 @@ __exportStar(require("./lib/tool-usage-counter"), exports);
|
|
|
62
62
|
__exportStar(require("./lib/omit-undefined"), exports);
|
|
63
63
|
__exportStar(require("./lib/redaction/index"), exports);
|
|
64
64
|
__exportStar(require("./lib/orval-client-config"), exports);
|
|
65
|
+
__exportStar(require("./lib/ambient-org-context"), exports);
|
|
65
66
|
__exportStar(require("./lib/request-context"), exports);
|
|
66
67
|
__exportStar(require("./lib/resolve-acting-user"), exports);
|
|
67
68
|
__exportStar(require("./lib/vote-feedback"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AAIrC,mEAAmD;AACnD,oEAAkD;AAClD,wEAAsD;AACtD,mDAAiC;AACjC,4DAA0C;AAC1C,oDAAkC;AAClC,+DAA6C;AAC7C,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,yDAAuC;AACvC,mEAAiD;AACjD,wDAAsC;AACtC,4DAA0C;AAC1C,yDAAuC;AACvC,yDAAuC;AACvC,gEAA8C;AAC9C,sDAAoC;AACpC,2DAAyC;AACzC,uDAAqC;AACrC,wDAAsC;AACtC,4DAA0C;AAC1C,wDAAsC;AACtC,4DAA0C;AAC1C,sDAAoC;AACpC,qDAAmC;AACnC,qEAAmD;AACnD,0DAAwC;AAGxC,kEAAgD;AAChD,uDAAqC;AACrC,2DAAyC;AACzC,4DAA0C;AAG1C,yDAAuC;AAGvC,uDAAqC;AAGrC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AAIrC,mEAAmD;AACnD,oEAAkD;AAClD,wEAAsD;AACtD,mDAAiC;AACjC,4DAA0C;AAC1C,oDAAkC;AAClC,+DAA6C;AAC7C,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,yDAAuC;AACvC,mEAAiD;AACjD,wDAAsC;AACtC,4DAA0C;AAC1C,yDAAuC;AACvC,yDAAuC;AACvC,gEAA8C;AAC9C,sDAAoC;AACpC,2DAAyC;AACzC,uDAAqC;AACrC,wDAAsC;AACtC,4DAA0C;AAC1C,4DAA0C;AAC1C,wDAAsC;AACtC,4DAA0C;AAC1C,sDAAoC;AACpC,qDAAmC;AACnC,qEAAmD;AACnD,0DAAwC;AAGxC,kEAAgD;AAChD,uDAAqC;AACrC,2DAAyC;AACzC,4DAA0C;AAG1C,yDAAuC;AAGvC,uDAAqC;AAGrC,iDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambient-org-context.d.ts","sourceRoot":"","sources":["../../src/lib/ambient-org-context.ts"],"names":[],"mappings":"AA0CA,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAOlE;AAGD,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runWithAmbientOrg = runWithAmbientOrg;
|
|
4
|
+
exports.getAmbientOrgId = getAmbientOrgId;
|
|
5
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
6
|
+
const AMBIENT_ORG_STORAGE_KEY = Symbol.for('xema.platform-common.ambient-org-storage');
|
|
7
|
+
function getStorage() {
|
|
8
|
+
const holder = globalThis;
|
|
9
|
+
const existing = holder[AMBIENT_ORG_STORAGE_KEY];
|
|
10
|
+
if (existing !== undefined) {
|
|
11
|
+
return existing;
|
|
12
|
+
}
|
|
13
|
+
const created = new node_async_hooks_1.AsyncLocalStorage();
|
|
14
|
+
holder[AMBIENT_ORG_STORAGE_KEY] = created;
|
|
15
|
+
return created;
|
|
16
|
+
}
|
|
17
|
+
function runWithAmbientOrg(orgId, fn) {
|
|
18
|
+
if (typeof orgId !== 'string' || orgId === '') {
|
|
19
|
+
throw new Error('[ambient-org-context] runWithAmbientOrg requires a non-empty orgId.');
|
|
20
|
+
}
|
|
21
|
+
return getStorage().run(orgId, fn);
|
|
22
|
+
}
|
|
23
|
+
function getAmbientOrgId() {
|
|
24
|
+
return getStorage().getStore();
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ambient-org-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambient-org-context.js","sourceRoot":"","sources":["../../src/lib/ambient-org-context.ts"],"names":[],"mappings":";;AA0CA,8CAOC;AAGD,0CAEC;AAtCD,uDAAqD;AAErD,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CACxC,0CAA0C,CAC3C,CAAC;AAMF,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,UAAyC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,oCAAiB,EAAU,CAAC;IAChD,MAAM,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAOD,SAAgB,iBAAiB,CAAI,KAAa,EAAE,EAAW;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAGD,SAAgB,eAAe;IAC7B,OAAO,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambient-org-context.middleware.d.ts","sourceRoot":"","sources":["../../src/nestjs/ambient-org-context.middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAerD,qBACa,2BAA4B,YAAW,cAAc;IAChE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;CAQxD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AmbientOrgContextMiddleware = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const ambient_org_context_1 = require("../lib/ambient-org-context");
|
|
12
|
+
const request_context_1 = require("../lib/request-context");
|
|
13
|
+
let AmbientOrgContextMiddleware = class AmbientOrgContextMiddleware {
|
|
14
|
+
use(req, _res, next) {
|
|
15
|
+
const orgId = (0, request_context_1.tryGetRequestContext)(req)?.orgId;
|
|
16
|
+
if (orgId === undefined || orgId === '') {
|
|
17
|
+
next();
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
(0, ambient_org_context_1.runWithAmbientOrg)(orgId, next);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.AmbientOrgContextMiddleware = AmbientOrgContextMiddleware;
|
|
24
|
+
exports.AmbientOrgContextMiddleware = AmbientOrgContextMiddleware = __decorate([
|
|
25
|
+
(0, common_1.Injectable)()
|
|
26
|
+
], AmbientOrgContextMiddleware);
|
|
27
|
+
//# sourceMappingURL=ambient-org-context.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambient-org-context.middleware.js","sourceRoot":"","sources":["../../src/nestjs/ambient-org-context.middleware.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAG5C,oEAA+D;AAC/D,4DAA8D;AAavD,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACtC,GAAG,CAAC,GAAW,EAAE,IAAa,EAAE,IAAgB;QAC9C,MAAM,KAAK,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,EAAE,KAAK,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxC,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAA,uCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AATY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;GACA,2BAA2B,CASvC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SubjectKind, TokenClass } from '@xemahq/kernel-contracts/subject';
|
|
2
|
+
import type { RequestContext } from '../../lib/request-context';
|
|
3
|
+
export interface ActorClassification {
|
|
4
|
+
readonly roles: string[];
|
|
5
|
+
readonly actAs: string | undefined;
|
|
6
|
+
readonly subjectKind: SubjectKind;
|
|
7
|
+
readonly tokenClass: TokenClass;
|
|
8
|
+
readonly actorType: RequestContext['actorType'];
|
|
9
|
+
}
|
|
10
|
+
export declare function asNonEmptyString(value: unknown): string | undefined;
|
|
11
|
+
export declare function resolveRolesFromClaims(claims: Record<string, unknown>): string[];
|
|
12
|
+
export declare function resolveActAsFromClaims(claims: Record<string, unknown>): string | undefined;
|
|
13
|
+
export declare function resolveSubjectAndClass(roles: string[], claims: Record<string, unknown>, actAs: string | undefined): {
|
|
14
|
+
kind: SubjectKind;
|
|
15
|
+
tokenClass: TokenClass;
|
|
16
|
+
};
|
|
17
|
+
export declare function actorTypeForSubjectKind(kind: SubjectKind): RequestContext['actorType'];
|
|
18
|
+
export declare function actorTypeFor(subjectKind: SubjectKind, actAs: string | undefined): RequestContext['actorType'];
|
|
19
|
+
export declare function deriveActorClassification(claims: Record<string, unknown>): ActorClassification;
|
|
20
|
+
//# sourceMappingURL=actor-classification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-classification.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/actor-classification.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EACX,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAchE,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAEzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAKhC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;CACjD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAGD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,EAAE,CAYV;AAMD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,GAAG,SAAS,CAMpB;AA8BD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAoB/C;AAUD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,GAChB,cAAc,CAAC,WAAW,CAAC,CAgB7B;AAUD,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,cAAc,CAAC,WAAW,CAAC,CAK7B;AAOD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,mBAAmB,CAerB"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.asNonEmptyString = asNonEmptyString;
|
|
4
|
+
exports.resolveRolesFromClaims = resolveRolesFromClaims;
|
|
5
|
+
exports.resolveActAsFromClaims = resolveActAsFromClaims;
|
|
6
|
+
exports.resolveSubjectAndClass = resolveSubjectAndClass;
|
|
7
|
+
exports.actorTypeForSubjectKind = actorTypeForSubjectKind;
|
|
8
|
+
exports.actorTypeFor = actorTypeFor;
|
|
9
|
+
exports.deriveActorClassification = deriveActorClassification;
|
|
10
|
+
const subject_1 = require("@xemahq/kernel-contracts/subject");
|
|
11
|
+
function asNonEmptyString(value) {
|
|
12
|
+
if (typeof value !== 'string')
|
|
13
|
+
return undefined;
|
|
14
|
+
const trimmed = value.trim();
|
|
15
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
16
|
+
}
|
|
17
|
+
function resolveRolesFromClaims(claims) {
|
|
18
|
+
const realmAccess = claims.realm_access;
|
|
19
|
+
if (realmAccess &&
|
|
20
|
+
typeof realmAccess === 'object' &&
|
|
21
|
+
Array.isArray(realmAccess.roles)) {
|
|
22
|
+
return realmAccess.roles.filter((role) => typeof role === 'string');
|
|
23
|
+
}
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
function resolveActAsFromClaims(claims) {
|
|
27
|
+
const act = claims['act'];
|
|
28
|
+
if (!act || typeof act !== 'object' || Array.isArray(act)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
return asNonEmptyString(act['sub']);
|
|
32
|
+
}
|
|
33
|
+
function subjectKindForTokenClass(tokenClass) {
|
|
34
|
+
switch (tokenClass) {
|
|
35
|
+
case subject_1.TokenClass.ServiceJwt:
|
|
36
|
+
return subject_1.SubjectKind.Service;
|
|
37
|
+
case subject_1.TokenClass.AgentRuntimeToken:
|
|
38
|
+
return subject_1.SubjectKind.Agent;
|
|
39
|
+
case subject_1.TokenClass.WorkflowRuntimeToken:
|
|
40
|
+
return subject_1.SubjectKind.Service;
|
|
41
|
+
case subject_1.TokenClass.ExternalSessionToken:
|
|
42
|
+
return subject_1.SubjectKind.ExternalSubject;
|
|
43
|
+
case subject_1.TokenClass.RunnerAttestationToken:
|
|
44
|
+
return subject_1.SubjectKind.Runner;
|
|
45
|
+
case subject_1.TokenClass.UserJwt:
|
|
46
|
+
return subject_1.SubjectKind.User;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function resolveSubjectAndClass(roles, claims, actAs) {
|
|
50
|
+
const explicit = asNonEmptyString(claims.token_class);
|
|
51
|
+
if (explicit) {
|
|
52
|
+
const matched = Object.values(subject_1.TokenClass).includes(explicit)
|
|
53
|
+
? explicit
|
|
54
|
+
: undefined;
|
|
55
|
+
if (matched) {
|
|
56
|
+
return { kind: subjectKindForTokenClass(matched), tokenClass: matched };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (actAs) {
|
|
60
|
+
return { kind: subject_1.SubjectKind.User, tokenClass: subject_1.TokenClass.UserJwt };
|
|
61
|
+
}
|
|
62
|
+
if (roles.includes('micro-service') || roles.includes('service-account')) {
|
|
63
|
+
return { kind: subject_1.SubjectKind.Service, tokenClass: subject_1.TokenClass.ServiceJwt };
|
|
64
|
+
}
|
|
65
|
+
if (roles.includes('agent')) {
|
|
66
|
+
return { kind: subject_1.SubjectKind.Agent, tokenClass: subject_1.TokenClass.AgentRuntimeToken };
|
|
67
|
+
}
|
|
68
|
+
return { kind: subject_1.SubjectKind.User, tokenClass: subject_1.TokenClass.UserJwt };
|
|
69
|
+
}
|
|
70
|
+
function actorTypeForSubjectKind(kind) {
|
|
71
|
+
switch (kind) {
|
|
72
|
+
case subject_1.SubjectKind.Service:
|
|
73
|
+
case subject_1.SubjectKind.Runner:
|
|
74
|
+
return 'service';
|
|
75
|
+
case subject_1.SubjectKind.Agent:
|
|
76
|
+
return 'agent';
|
|
77
|
+
case subject_1.SubjectKind.User:
|
|
78
|
+
case subject_1.SubjectKind.ExternalSubject:
|
|
79
|
+
case subject_1.SubjectKind.App:
|
|
80
|
+
case subject_1.SubjectKind.AppClient:
|
|
81
|
+
case subject_1.SubjectKind.Group:
|
|
82
|
+
case subject_1.SubjectKind.Role:
|
|
83
|
+
case subject_1.SubjectKind.Anon:
|
|
84
|
+
return 'human';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function actorTypeFor(subjectKind, actAs) {
|
|
88
|
+
if (actAs) {
|
|
89
|
+
return 'human';
|
|
90
|
+
}
|
|
91
|
+
return actorTypeForSubjectKind(subjectKind);
|
|
92
|
+
}
|
|
93
|
+
function deriveActorClassification(claims) {
|
|
94
|
+
const roles = resolveRolesFromClaims(claims);
|
|
95
|
+
const actAs = resolveActAsFromClaims(claims);
|
|
96
|
+
const { kind: subjectKind, tokenClass } = resolveSubjectAndClass(roles, claims, actAs);
|
|
97
|
+
return {
|
|
98
|
+
roles,
|
|
99
|
+
actAs,
|
|
100
|
+
subjectKind,
|
|
101
|
+
tokenClass,
|
|
102
|
+
actorType: actorTypeFor(subjectKind, actAs),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=actor-classification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-classification.js","sourceRoot":"","sources":["../../../src/nestjs/auth/actor-classification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure-auth-middleware.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/configure-auth-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"configure-auth-middleware.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/configure-auth-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA6C3D,MAAM,WAAW,8BAA8B;IAmB7C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAgBzD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3D;AAgCD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,GAAE,8BAAmC,GAC3C,IAAI,CAgBN"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.configureAuthMiddleware = configureAuthMiddleware;
|
|
4
|
+
const ambient_org_context_middleware_1 = require("../ambient-org-context.middleware");
|
|
4
5
|
const request_context_middleware_1 = require("../request-context.middleware");
|
|
5
6
|
const DEFAULT_EXCLUDED_ROUTES = [
|
|
6
7
|
'health',
|
|
@@ -18,12 +19,12 @@ function configureAuthMiddleware(consumer, options = {}) {
|
|
|
18
19
|
...(options.extraExcludes ?? []),
|
|
19
20
|
];
|
|
20
21
|
consumer
|
|
21
|
-
.apply(request_context_middleware_1.RequestContextMiddleware)
|
|
22
|
+
.apply(request_context_middleware_1.RequestContextMiddleware, ambient_org_context_middleware_1.AmbientOrgContextMiddleware)
|
|
22
23
|
.exclude(...excludes)
|
|
23
24
|
.forRoutes('*');
|
|
24
25
|
if (options.additionalControllers && options.additionalControllers.length > 0) {
|
|
25
26
|
consumer
|
|
26
|
-
.apply(request_context_middleware_1.RequestContextMiddleware)
|
|
27
|
+
.apply(request_context_middleware_1.RequestContextMiddleware, ambient_org_context_middleware_1.AmbientOrgContextMiddleware)
|
|
27
28
|
.forRoutes(...options.additionalControllers);
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure-auth-middleware.js","sourceRoot":"","sources":["../../../src/nestjs/auth/configure-auth-middleware.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"configure-auth-middleware.js","sourceRoot":"","sources":["../../../src/nestjs/auth/configure-auth-middleware.ts"],"names":[],"mappings":";;AAkHA,0DAmBC;AAnID,sFAAgF;AAChF,8EAAyE;AAgCzE,MAAM,uBAAuB,GAAG;IAC9B,QAAQ;IACR,cAAc;IACd,UAAU;IACV,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,gBAAgB;CACR,CAAC;AAsEX,SAAgB,uBAAuB,CACrC,QAA4B,EAC5B,UAA0C,EAAE;IAE5C,MAAM,QAAQ,GAA2B;QACvC,GAAG,uBAAuB;QAC1B,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;KACjC,CAAC;IAEF,QAAQ;SACL,KAAK,CAAC,qDAAwB,EAAE,4DAA2B,CAAC;SAC5D,OAAO,CAAC,GAAG,QAAQ,CAAC;SACpB,SAAS,CAAC,GAAG,CAAC,CAAC;IAElB,IAAI,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9E,QAAQ;aACL,KAAK,CAAC,qDAAwB,EAAE,4DAA2B,CAAC;aAC5D,SAAS,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
|
package/dist/nestjs/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export { getCorsConfig } from './cors.config';
|
|
|
3
3
|
export { getEnvOrThrow } from './get-env-or-throw';
|
|
4
4
|
export { ResponseEnvelopeInterceptor } from './response-envelope.interceptor';
|
|
5
5
|
export { RequestContextMiddleware } from './request-context.middleware';
|
|
6
|
+
export { deriveActorClassification, actorTypeForSubjectKind, actorTypeFor, resolveSubjectAndClass, resolveRolesFromClaims, resolveActAsFromClaims, asNonEmptyString, type ActorClassification, } from './auth/actor-classification';
|
|
7
|
+
export { AmbientOrgContextMiddleware } from './ambient-org-context.middleware';
|
|
6
8
|
export { ErrorResponseDto } from './error-response.dto';
|
|
7
9
|
export { ApiStandardOperation, ApiDataResponse, ApiDataArrayResponse, ApiCreatedDataResponse, ApiPaginatedResponse, ApiStandardErrors, } from './swagger.decorators';
|
|
8
10
|
export { enhanceOpenApiDocumentation, type OpenApiEnrichmentOptions, } from './openapi-docs.enricher';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"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"}
|
package/dist/nestjs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.IDEMPOTENCY_SERVICE = exports.IDEMPOTENCY_PRISMA_CLIENT = exports.PrismaIdempotencyService = exports.IDEMPOTENCY_RECORD_PRISMA_MODEL = exports.ApiIntegrationEnvelope = exports.IntegrationEnvelopePipe = exports.IntegrationWebhookEnvelopeDto = exports.REQUIRE_ORG_CLAIM = exports.RequireOrgClaim = exports.resolveOrgClaim = exports.ORG_CLAIM_KEYS = exports.OrgHeaderName = exports.OrgClaimKey = exports.configureAuthMiddleware = exports.PlatformAdminGuard = exports.hasPlatformRole = exports.PlatformRole = exports.orgRoleSatisfies = exports.resolveOrgRoleForOrg = exports.resolveOrgRoles = exports.ORG_ROLES_CLAIM_KEYS = exports.OrgRolesClaimKey = exports.REQUIRE_ORG_ROLE = exports.RequireOrgRole = exports.OrgRoleGuard = exports.REQUIRE_TOKEN_CLASS = exports.RequireTokenClass = exports.TokenClassGuard = exports.ServiceActorGuard = void 0;
|
|
3
|
+
exports.fetchJson = exports.fetchEnvelopeOptional = exports.fetchEnvelope = exports.fetchWithRetry = exports.buildPaginatedResponse = exports.parsePagination = exports.PaginationMeta = exports.PaginationQueryDto = exports.Ctx = exports.requirePipelineRunId = exports.requireProjectId = exports.RAW_RESPONSE_KEY = exports.RawResponse = exports.IS_PUBLIC_KEY = exports.Public = exports.extractRealmFromIssuer = exports.OidcDiscoveryIssuerTenantResolver = exports.KeycloakIssuerTenantResolver = exports.OidcTokenVerifier = exports.IssuerMetadataResolver = exports.JwksVerificationError = exports.JwksVerifier = exports.selectTenantResolver = exports.DEFAULT_IDP_KIND = exports.IdpKind = exports.JwtVerificationGuard = exports.buildKeycloakSwaggerUiOptions = exports.enrichOpenApiWithKeycloakSecurity = exports.getKeycloakSwaggerUrls = exports.enhanceOpenApiDocumentation = exports.ApiStandardErrors = exports.ApiPaginatedResponse = exports.ApiCreatedDataResponse = exports.ApiDataArrayResponse = exports.ApiDataResponse = exports.ApiStandardOperation = exports.ErrorResponseDto = exports.AmbientOrgContextMiddleware = exports.asNonEmptyString = exports.resolveActAsFromClaims = exports.resolveRolesFromClaims = exports.resolveSubjectAndClass = exports.actorTypeFor = exports.actorTypeForSubjectKind = exports.deriveActorClassification = exports.RequestContextMiddleware = exports.ResponseEnvelopeInterceptor = exports.getEnvOrThrow = exports.getCorsConfig = exports.applyStandardBodyParsers = void 0;
|
|
4
|
+
exports.IDEMPOTENCY_SERVICE = exports.IDEMPOTENCY_PRISMA_CLIENT = exports.PrismaIdempotencyService = exports.IDEMPOTENCY_RECORD_PRISMA_MODEL = exports.ApiIntegrationEnvelope = exports.IntegrationEnvelopePipe = exports.IntegrationWebhookEnvelopeDto = exports.REQUIRE_ORG_CLAIM = exports.RequireOrgClaim = exports.resolveOrgClaim = exports.ORG_CLAIM_KEYS = exports.OrgHeaderName = exports.OrgClaimKey = exports.configureAuthMiddleware = exports.PlatformAdminGuard = exports.hasPlatformRole = exports.PlatformRole = exports.orgRoleSatisfies = exports.resolveOrgRoleForOrg = exports.resolveOrgRoles = exports.ORG_ROLES_CLAIM_KEYS = exports.OrgRolesClaimKey = exports.REQUIRE_ORG_ROLE = exports.RequireOrgRole = exports.OrgRoleGuard = exports.REQUIRE_TOKEN_CLASS = exports.RequireTokenClass = exports.TokenClassGuard = exports.ServiceActorGuard = exports.InternalCallerGuard = exports.ServiceTokenGuard = exports.AUTH_MODULE_OPTIONS = exports.AuthModule = exports.GlobalExceptionFilter = exports.RolesGuard = exports.ROLES_KEY = exports.Roles = void 0;
|
|
5
5
|
var body_parsers_1 = require("./body-parsers");
|
|
6
6
|
Object.defineProperty(exports, "applyStandardBodyParsers", { enumerable: true, get: function () { return body_parsers_1.applyStandardBodyParsers; } });
|
|
7
7
|
var cors_config_1 = require("./cors.config");
|
|
@@ -12,6 +12,16 @@ var response_envelope_interceptor_1 = require("./response-envelope.interceptor")
|
|
|
12
12
|
Object.defineProperty(exports, "ResponseEnvelopeInterceptor", { enumerable: true, get: function () { return response_envelope_interceptor_1.ResponseEnvelopeInterceptor; } });
|
|
13
13
|
var request_context_middleware_1 = require("./request-context.middleware");
|
|
14
14
|
Object.defineProperty(exports, "RequestContextMiddleware", { enumerable: true, get: function () { return request_context_middleware_1.RequestContextMiddleware; } });
|
|
15
|
+
var actor_classification_1 = require("./auth/actor-classification");
|
|
16
|
+
Object.defineProperty(exports, "deriveActorClassification", { enumerable: true, get: function () { return actor_classification_1.deriveActorClassification; } });
|
|
17
|
+
Object.defineProperty(exports, "actorTypeForSubjectKind", { enumerable: true, get: function () { return actor_classification_1.actorTypeForSubjectKind; } });
|
|
18
|
+
Object.defineProperty(exports, "actorTypeFor", { enumerable: true, get: function () { return actor_classification_1.actorTypeFor; } });
|
|
19
|
+
Object.defineProperty(exports, "resolveSubjectAndClass", { enumerable: true, get: function () { return actor_classification_1.resolveSubjectAndClass; } });
|
|
20
|
+
Object.defineProperty(exports, "resolveRolesFromClaims", { enumerable: true, get: function () { return actor_classification_1.resolveRolesFromClaims; } });
|
|
21
|
+
Object.defineProperty(exports, "resolveActAsFromClaims", { enumerable: true, get: function () { return actor_classification_1.resolveActAsFromClaims; } });
|
|
22
|
+
Object.defineProperty(exports, "asNonEmptyString", { enumerable: true, get: function () { return actor_classification_1.asNonEmptyString; } });
|
|
23
|
+
var ambient_org_context_middleware_1 = require("./ambient-org-context.middleware");
|
|
24
|
+
Object.defineProperty(exports, "AmbientOrgContextMiddleware", { enumerable: true, get: function () { return ambient_org_context_middleware_1.AmbientOrgContextMiddleware; } });
|
|
15
25
|
var error_response_dto_1 = require("./error-response.dto");
|
|
16
26
|
Object.defineProperty(exports, "ErrorResponseDto", { enumerable: true, get: function () { return error_response_dto_1.ErrorResponseDto; } });
|
|
17
27
|
var swagger_decorators_1 = require("./swagger.decorators");
|
package/dist/nestjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,15 +19,9 @@ export declare class RequestContextMiddleware implements NestMiddleware {
|
|
|
19
19
|
private decodeJwtPayload;
|
|
20
20
|
private assertOrgClaimMatchesHeader;
|
|
21
21
|
private resolveActorId;
|
|
22
|
-
private resolveActAs;
|
|
23
|
-
private resolveRoles;
|
|
24
|
-
private resolveActorType;
|
|
25
|
-
private resolveSubjectAndClass;
|
|
26
|
-
private subjectKindForTokenClass;
|
|
27
22
|
private resolveActorChain;
|
|
28
23
|
private extractProjectIdFromPath;
|
|
29
24
|
private parseApprovalMode;
|
|
30
|
-
private asNonEmptyString;
|
|
31
25
|
private extractRealmFromIssuer;
|
|
32
26
|
}
|
|
33
27
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.middleware.d.ts","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"request-context.middleware.d.ts","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA2BzD,UAAU,wBAAwB;IAChC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,kBAAmB,SAAQ,wBAAwB;IAC3D,CAAC,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC;CACpC;AAED,qBACa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IAEpE,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAsHnE,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,2BAA2B;IAwBnC,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,sBAAsB;CAK/B"}
|
|
@@ -15,6 +15,7 @@ const subject_1 = require("@xemahq/kernel-contracts/subject");
|
|
|
15
15
|
const approval_mode_1 = require("../lib/approval-mode");
|
|
16
16
|
const org_claim_1 = require("./auth/org-claim");
|
|
17
17
|
const org_role_1 = require("./auth/org-role");
|
|
18
|
+
const actor_classification_1 = require("./auth/actor-classification");
|
|
18
19
|
let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContextMiddleware {
|
|
19
20
|
logger = new common_1.Logger(RequestContextMiddleware_1.name);
|
|
20
21
|
use(req, _res, next) {
|
|
@@ -32,10 +33,7 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
|
|
|
32
33
|
const causationId = this.readHeader(req, 'X-Causation-Id') ?? undefined;
|
|
33
34
|
const claims = this.decodeJwtPayload(token);
|
|
34
35
|
const actorId = this.resolveActorId(claims);
|
|
35
|
-
const actAs =
|
|
36
|
-
const roles = this.resolveRoles(claims);
|
|
37
|
-
const actorType = this.resolveActorType(roles, claims, actAs);
|
|
38
|
-
const { kind: subjectKind, tokenClass } = this.resolveSubjectAndClass(roles, claims, actAs);
|
|
36
|
+
const { roles, actAs, subjectKind, tokenClass, actorType } = (0, actor_classification_1.deriveActorClassification)(claims);
|
|
39
37
|
const actorChain = this.resolveActorChain(claims);
|
|
40
38
|
const orgRoles = (0, org_role_1.resolveOrgRoles)(claims);
|
|
41
39
|
if (!orgId && actorType !== 'service') {
|
|
@@ -137,86 +135,17 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
|
|
|
137
135
|
}
|
|
138
136
|
}
|
|
139
137
|
resolveActorId(claims) {
|
|
140
|
-
const actorId =
|
|
138
|
+
const actorId = (0, actor_classification_1.asNonEmptyString)(claims.sub);
|
|
141
139
|
if (!actorId) {
|
|
142
140
|
throw new common_1.BadRequestException('JWT token missing required "sub" claim');
|
|
143
141
|
}
|
|
144
142
|
return actorId;
|
|
145
143
|
}
|
|
146
|
-
resolveActAs(claims) {
|
|
147
|
-
const act = claims['act'];
|
|
148
|
-
if (!act || typeof act !== 'object' || Array.isArray(act)) {
|
|
149
|
-
return undefined;
|
|
150
|
-
}
|
|
151
|
-
return this.asNonEmptyString(act['sub']);
|
|
152
|
-
}
|
|
153
|
-
resolveRoles(claims) {
|
|
154
|
-
const realmAccess = claims.realm_access;
|
|
155
|
-
if (realmAccess &&
|
|
156
|
-
typeof realmAccess === 'object' &&
|
|
157
|
-
Array.isArray(realmAccess.roles)) {
|
|
158
|
-
return realmAccess.roles.filter((role) => typeof role === 'string');
|
|
159
|
-
}
|
|
160
|
-
return [];
|
|
161
|
-
}
|
|
162
|
-
resolveActorType(roles, claims, actAs) {
|
|
163
|
-
const explicitType = this.asNonEmptyString(claims.actor_type);
|
|
164
|
-
if (explicitType && ['human', 'agent', 'service'].includes(explicitType)) {
|
|
165
|
-
return explicitType;
|
|
166
|
-
}
|
|
167
|
-
if (actAs) {
|
|
168
|
-
return 'human';
|
|
169
|
-
}
|
|
170
|
-
if (roles.includes('micro-service') || roles.includes('service-account')) {
|
|
171
|
-
return 'service';
|
|
172
|
-
}
|
|
173
|
-
if (roles.includes('agent')) {
|
|
174
|
-
return 'agent';
|
|
175
|
-
}
|
|
176
|
-
return 'human';
|
|
177
|
-
}
|
|
178
|
-
resolveSubjectAndClass(roles, claims, actAs) {
|
|
179
|
-
const explicit = this.asNonEmptyString(claims.token_class);
|
|
180
|
-
if (explicit) {
|
|
181
|
-
const matched = Object.values(subject_1.TokenClass).includes(explicit)
|
|
182
|
-
? explicit
|
|
183
|
-
: undefined;
|
|
184
|
-
if (matched) {
|
|
185
|
-
return { kind: this.subjectKindForTokenClass(matched), tokenClass: matched };
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (actAs) {
|
|
189
|
-
return { kind: subject_1.SubjectKind.User, tokenClass: subject_1.TokenClass.UserJwt };
|
|
190
|
-
}
|
|
191
|
-
if (roles.includes('micro-service') || roles.includes('service-account')) {
|
|
192
|
-
return { kind: subject_1.SubjectKind.Service, tokenClass: subject_1.TokenClass.ServiceJwt };
|
|
193
|
-
}
|
|
194
|
-
if (roles.includes('agent')) {
|
|
195
|
-
return { kind: subject_1.SubjectKind.Agent, tokenClass: subject_1.TokenClass.AgentRuntimeToken };
|
|
196
|
-
}
|
|
197
|
-
return { kind: subject_1.SubjectKind.User, tokenClass: subject_1.TokenClass.UserJwt };
|
|
198
|
-
}
|
|
199
|
-
subjectKindForTokenClass(tokenClass) {
|
|
200
|
-
switch (tokenClass) {
|
|
201
|
-
case subject_1.TokenClass.ServiceJwt:
|
|
202
|
-
return subject_1.SubjectKind.Service;
|
|
203
|
-
case subject_1.TokenClass.AgentRuntimeToken:
|
|
204
|
-
return subject_1.SubjectKind.Agent;
|
|
205
|
-
case subject_1.TokenClass.WorkflowRuntimeToken:
|
|
206
|
-
return subject_1.SubjectKind.Service;
|
|
207
|
-
case subject_1.TokenClass.ExternalSessionToken:
|
|
208
|
-
return subject_1.SubjectKind.ExternalSubject;
|
|
209
|
-
case subject_1.TokenClass.RunnerAttestationToken:
|
|
210
|
-
return subject_1.SubjectKind.Runner;
|
|
211
|
-
case subject_1.TokenClass.UserJwt:
|
|
212
|
-
return subject_1.SubjectKind.User;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
144
|
resolveActorChain(claims) {
|
|
216
145
|
const chain = [];
|
|
217
146
|
let node = claims['act'];
|
|
218
147
|
while (node && typeof node === 'object' && !Array.isArray(node)) {
|
|
219
|
-
const sub =
|
|
148
|
+
const sub = (0, actor_classification_1.asNonEmptyString)(node['sub']);
|
|
220
149
|
if (!sub)
|
|
221
150
|
break;
|
|
222
151
|
chain.push({ kind: subject_1.SubjectKind.Service, id: sub });
|
|
@@ -237,12 +166,6 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
|
|
|
237
166
|
}
|
|
238
167
|
throw new common_1.BadRequestException(`Invalid X-Approval-Mode-Override value: "${value}". Must be "AUTO" or "HUMAN_REQUIRED"`);
|
|
239
168
|
}
|
|
240
|
-
asNonEmptyString(value) {
|
|
241
|
-
if (typeof value !== 'string')
|
|
242
|
-
return undefined;
|
|
243
|
-
const trimmed = value.trim();
|
|
244
|
-
return trimmed.length > 0 ? trimmed : undefined;
|
|
245
|
-
}
|
|
246
169
|
extractRealmFromIssuer(issuer) {
|
|
247
170
|
if (!issuer || typeof issuer !== 'string')
|
|
248
171
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.middleware.js","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAMwB;AACxB,6CAAyC;AAGzC,4DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"request-context.middleware.js","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/platform-common",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.20",
|
|
4
4
|
"description": "Shared NestJS building blocks for Xema services — auth guards, response redaction, CORS configuration, and crypto helpers.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
|