@bluealba/pae-core 5.6.0 → 5.7.0-develop-462

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 (32) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/authorization/authorization.service.d.ts +1 -1
  3. package/dist/src/authorization/isAuthorized/get-route-operations.d.ts +12 -0
  4. package/dist/src/authorization/isAuthorized/get-route-operations.d.ts.map +1 -1
  5. package/dist/src/authorization/isAuthorized/get-route-operations.js +18 -1
  6. package/dist/src/authorization/isAuthorized/get-route-operations.js.map +1 -1
  7. package/dist/src/catalog/api/map-module-to-dto.d.ts +2 -2
  8. package/dist/src/catalog/entities/module-metadata/authorization.interface.d.ts +7 -1
  9. package/dist/src/catalog/entities/module-metadata/authorization.interface.d.ts.map +1 -1
  10. package/dist/src/catalog/entities/module-metadata/mcp-config.interface.d.ts +49 -0
  11. package/dist/src/catalog/entities/module-metadata/mcp-config.interface.d.ts.map +1 -0
  12. package/dist/src/catalog/entities/module-metadata/mcp-config.interface.js +19 -0
  13. package/dist/src/catalog/entities/module-metadata/mcp-config.interface.js.map +1 -0
  14. package/dist/src/catalog/entities/module-metadata/module-metadata.entity.d.ts +13 -0
  15. package/dist/src/catalog/entities/module-metadata/module-metadata.entity.d.ts.map +1 -1
  16. package/dist/src/catalog/entities/module-metadata/module-metadata.entity.js +7 -0
  17. package/dist/src/catalog/entities/module-metadata/module-metadata.entity.js.map +1 -1
  18. package/dist/src/catalog/entities/module-metadata/module-types.constants.d.ts +1 -1
  19. package/dist/src/catalog/entities/module-metadata/module-types.constants.d.ts.map +1 -1
  20. package/dist/src/catalog/entities/module-metadata/module-types.constants.js +1 -1
  21. package/dist/src/catalog/entities/module-metadata/module-types.constants.js.map +1 -1
  22. package/dist/src/catalog/pae-modules.constants.d.ts +1 -0
  23. package/dist/src/catalog/pae-modules.constants.d.ts.map +1 -1
  24. package/dist/src/catalog/pae-modules.constants.js +1 -0
  25. package/dist/src/catalog/pae-modules.constants.js.map +1 -1
  26. package/dist/src/core/create-pae-service-from-catalog.d.ts +1 -1
  27. package/dist/src/core/create-pae-service.d.ts +2 -2
  28. package/dist/src/index.d.ts +4 -0
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +6 -1
  31. package/dist/src/index.js.map +1 -1
  32. package/package.json +1 -1
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bluealba/pae-core",
3
3
  "description": "Core package for the PAE project",
4
- "version": "5.6.0",
4
+ "version": "5.7.0-develop-462",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "files": [
@@ -55,7 +55,7 @@ export declare const createPAEAuthorizationService: (config: PAEAuthorizationSer
55
55
  getAllowedApplications(username: string): Promise<Application[]>;
56
56
  getAllowedOperationsForApplication(data: GetAllowedOperationsForAppDTO): Promise<Operation[]>;
57
57
  getAllowedResources(username: string, tenantId?: number): Promise<AllowedResources>;
58
- isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: AllowedResources, requestPath?: string, requestMethod?: import("./isAuthorized/http-method").HttpMethod) => boolean;
58
+ isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: AllowedResources, requestPath?: string, requestMethod?: import("..").HttpMethod) => boolean;
59
59
  getAdminUIData(tenantId?: number): Promise<AdminUIData[]>;
60
60
  syncAssignments(dto: SyncAssignmentsDTO): Promise<void>;
61
61
  };
@@ -2,9 +2,21 @@ import { HttpMethod } from './http-method';
2
2
  import { ModuleMetadata } from '../../catalog/entities/module-metadata/module-metadata.entity';
3
3
  export declare const ROUTE_PATTERN_WILD_CARD = "(.*)";
4
4
  export declare const ROUTE_PATTERN_PARAMETER = ":";
5
+ type RouteAuthorization = NonNullable<NonNullable<ModuleMetadata['authorization']>['routes']>[0];
5
6
  /**
6
7
  * Given a request to a module it returns the required operations for that route.
7
8
  * This computes any routes authorization matching.
8
9
  */
9
10
  export declare const getRoutesOperations: (module: ModuleMetadata, requestMethod: HttpMethod, requestURL: string) => string[];
11
+ /**
12
+ * Given a request to a module it returns the most specific RouteAuthorization
13
+ * matching the request (by pattern and method), or null if none matches.
14
+ */
15
+ export declare const getMatchingRoute: (module: ModuleMetadata, requestMethod: HttpMethod, requestURL: string) => RouteAuthorization | null;
16
+ /**
17
+ * Returns true when the route matching the request is explicitly marked as public
18
+ * (does not require authentication).
19
+ */
20
+ export declare const isRoutePublic: (module: ModuleMetadata, requestMethod: HttpMethod, requestURL: string) => boolean;
21
+ export {};
10
22
  //# sourceMappingURL=get-route-operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-route-operations.d.ts","sourceRoot":"","sources":["../../../../src/authorization/isAuthorized/get-route-operations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAE/F,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAM3C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,EAAE,eAAe,UAAU,EAAE,YAAY,MAAM,aAGjG,CAAC"}
1
+ {"version":3,"file":"get-route-operations.d.ts","sourceRoot":"","sources":["../../../../src/authorization/isAuthorized/get-route-operations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAE/F,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,KAAK,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAIjG;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,EAAE,eAAe,UAAU,EAAE,YAAY,MAAM,aAGjG,CAAC;AAET;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,cAAc,EAAE,eAAe,UAAU,EAAE,YAAY,MAAM,KAAG,kBAAkB,GAAG,IAGpH,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,cAAc,EAAE,eAAe,UAAU,EAAE,YAAY,MAAM,KAAG,OAC9B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRoutesOperations = exports.ROUTE_PATTERN_PARAMETER = exports.ROUTE_PATTERN_WILD_CARD = void 0;
3
+ exports.isRoutePublic = exports.getMatchingRoute = exports.getRoutesOperations = exports.ROUTE_PATTERN_PARAMETER = exports.ROUTE_PATTERN_WILD_CARD = void 0;
4
4
  const path_to_regexp_1 = require("path-to-regexp");
5
5
  exports.ROUTE_PATTERN_WILD_CARD = '(.*)';
6
6
  exports.ROUTE_PATTERN_PARAMETER = ':';
@@ -15,6 +15,23 @@ const getRoutesOperations = (module, requestMethod, requestURL) => {
15
15
  : [];
16
16
  };
17
17
  exports.getRoutesOperations = getRoutesOperations;
18
+ /**
19
+ * Given a request to a module it returns the most specific RouteAuthorization
20
+ * matching the request (by pattern and method), or null if none matches.
21
+ */
22
+ const getMatchingRoute = (module, requestMethod, requestURL) => {
23
+ var _a;
24
+ return ((module === null || module === void 0 ? void 0 : module.authorization) && ((_a = module === null || module === void 0 ? void 0 : module.authorization) === null || _a === void 0 ? void 0 : _a.routes))
25
+ ? resolveRouteSpecificity(module.authorization.routes, removeQueryString(requestURL), requestMethod)
26
+ : null;
27
+ };
28
+ exports.getMatchingRoute = getMatchingRoute;
29
+ /**
30
+ * Returns true when the route matching the request is explicitly marked as public
31
+ * (does not require authentication).
32
+ */
33
+ const isRoutePublic = (module, requestMethod, requestURL) => { var _a; return ((_a = (0, exports.getMatchingRoute)(module, requestMethod, requestURL)) === null || _a === void 0 ? void 0 : _a.isPublic) === true; };
34
+ exports.isRoutePublic = isRoutePublic;
18
35
  const removeQueryString = (requestURL) => requestURL.indexOf('?') > 0
19
36
  ? requestURL.slice(0, requestURL.indexOf('?'))
20
37
  : requestURL;
@@ -1 +1 @@
1
- {"version":3,"file":"get-route-operations.js","sourceRoot":"","sources":["../../../../src/authorization/isAuthorized/get-route-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-route-operations.js","sourceRoot":"","sources":["../../../../src/authorization/isAuthorized/get-route-operations.ts"],"names":[],"mappings":";;;AAAA,mDAAoD;AAIvC,QAAA,uBAAuB,GAAG,MAAM,CAAC;AAEjC,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAM3C;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAAC,MAAsB,EAAE,aAAyB,EAAE,UAAkB,EAAE,EAAE;;IAC3G,OAAA,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,MAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,0CAAE,MAAM,CAAA,CAAC;QACtD,CAAC,CAAC,+BAA+B,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,0CAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC9G,CAAC,CAAC,EAAE,CAAA;CAAA,CAAC;AAHI,QAAA,mBAAmB,uBAGvB;AAET;;;GAGG;AACI,MAAM,gBAAgB,GAAG,CAAC,MAAsB,EAAE,aAAyB,EAAE,UAAkB,EAA6B,EAAE;;IACnI,OAAA,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,MAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,0CAAE,MAAM,CAAA,CAAC;QACtD,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;QACpG,CAAC,CAAC,IAAI,CAAA;CAAA,CAAC;AAHE,QAAA,gBAAgB,oBAGlB;AAEX;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,MAAsB,EAAE,aAAyB,EAAE,UAAkB,EAAW,EAAE,WAC9G,OAAA,CAAA,MAAA,IAAA,wBAAgB,EAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,0CAAE,QAAQ,MAAK,IAAI,CAAA,EAAA,CAAC;AAD5D,QAAA,aAAa,iBAC+C;AAEzE,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC,CAAC,UAAU,CAAC;AAEf,MAAM,+BAA+B,GAAG,CAAC,MAA4B,EAAE,aAAyB,EAAE,UAAkB,EAAE,EAAE,WACtH,OAAA,CAAA,MAAA,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,0CAAE,UAAU,KAAI,EAAE,CAAA,EAAA,CAAC;AAE/E,MAAM,uBAAuB,GAAG,CAAC,MAA4B,EAAE,MAAc,EAAE,SAAqB,EAAE,EAAE;IACtG,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,SAAqB,EAAE,EAAE,CAAC,CAAC,KAAyB,EAAE,EAAE,CACnG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAE5F,MAAM,yBAAyB,GAAG,CAAC,KAAyB,EAAE,SAAqB,EAAE,EAAE,CACrF,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAE3E,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAE,GAAW,EAAE,EAAE,CAAC,IAAA,sBAAS,EAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAEvF,MAAM,4BAA4B,GAAG,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE,CACpF,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAEhF,MAAM,0BAA0B,GAAG,CAAC,OAAgB,EAAE,EAAE,CACtD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KACf,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IACpB,IAAI,IAAI,KAAK,+BAAuB,EAAE,CAAC;QACrC,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,+BAAuB,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,GAAG,CAAC,CAAC;AACjB,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -6,7 +6,7 @@ import { CreateOrUpdateModule } from "../dto";
6
6
  */
7
7
  declare const mapModuleToDTO: (module: CreateOrUpdateModule) => {
8
8
  isPublic?: boolean | undefined;
9
- authorization?: import("../entities/module-metadata/authorization.interface").AuthorizationMetadata | undefined;
9
+ authorization?: import("../..").AuthorizationMetadata | undefined;
10
10
  activationRoute?: string | undefined;
11
11
  customProps?: import("../..").ModuleProps | undefined;
12
12
  shell?: boolean | undefined;
@@ -16,7 +16,7 @@ declare const mapModuleToDTO: (module: CreateOrUpdateModule) => {
16
16
  applicationName: string | undefined;
17
17
  name: string;
18
18
  displayName: string;
19
- type: "app" | "tool" | "utility" | "service" | "cloud-function" | "documentation" | "fragment";
19
+ type: "app" | "tool" | "utility" | "service" | "cloud-function" | "documentation" | "fragment" | "mcp";
20
20
  baseUrl: string;
21
21
  commonPaths: import("../entities/module-metadata/common-paths.interface").CommonPathsMetadata | undefined;
22
22
  dependsOn: string[];
@@ -2,7 +2,13 @@ export type HttpMethod = 'GET' | 'HEAD' | 'OPTIONS' | 'PUT' | 'POST' | 'DELETE'
2
2
  export interface RouteAuthorization {
3
3
  methods?: HttpMethod[];
4
4
  pattern: string;
5
- operations: string[];
5
+ operations?: string[];
6
+ /**
7
+ * When true, the route does not require authentication (public route).
8
+ * A public route must not declare operations: authentication is skipped,
9
+ * so authorization is never evaluated for it.
10
+ */
11
+ isPublic?: boolean;
6
12
  }
7
13
  export interface AuthorizationMetadata {
8
14
  operations?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.interface.d.ts","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/authorization.interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC/B"}
1
+ {"version":3,"file":"authorization.interface.d.ts","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/authorization.interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC/B"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Module type literal for MCP (Model Context Protocol) servers hosted behind
3
+ * the gateway. Branches the OAuth 2.1 Resource Server behaviour.
4
+ */
5
+ export declare const MCP_MODULE_TYPE: "mcp";
6
+ /**
7
+ * Configuration for a module of type `'mcp'` (Model Context Protocol server)
8
+ * hosted behind the gateway. Drives the OAuth 2.1 Resource Server behaviour:
9
+ * Protected Resource Metadata (RFC 9728) and audience binding (RFC 8707).
10
+ */
11
+ export interface McpResourceConfig {
12
+ /**
13
+ * Expected `aud` of incoming access tokens (RFC 8707). Optional: when omitted,
14
+ * the gateway derives it from the request as the canonical resource URI
15
+ * (`<protocol>://<host><baseUrl>`) — the same value advertised in the PRM and
16
+ * bound by the AS-facade. Set it only to pin a fixed/override audience.
17
+ * Validating `aud` is the central Resource Server control (anti token-passthrough).
18
+ */
19
+ audience?: string | string[];
20
+ /** Scopes advertised in the Protected Resource Metadata document. */
21
+ scopesSupported?: string[];
22
+ /** Human-readable resource name advertised in the PRM. */
23
+ resourceName?: string;
24
+ /**
25
+ * Name of the `McpAuthServerProvider` to use for this resource. When omitted,
26
+ * the gateway's configured default provider is used.
27
+ */
28
+ authServerProvider?: string;
29
+ /**
30
+ * Origin of the MCP server. v1 only supports in-house servers; `'third-party'`
31
+ * (bearer forwarding) is a planned follow-up.
32
+ */
33
+ origin: 'in-house';
34
+ /**
35
+ * Future: maps MCP scopes to existing RBAC operations so MCP access can be
36
+ * translated into `x-forwarded-user-operations` for downstream services.
37
+ */
38
+ scopeOperationMap?: Record<string, string[]>;
39
+ }
40
+ /**
41
+ * Type guard: returns whether the given module is an MCP module.
42
+ *
43
+ * Accepts any object exposing a `type` field (e.g. `ModuleMetadata`), so it can
44
+ * be reused by the gateway guards without coupling to the full entity shape.
45
+ */
46
+ export declare function isMcpModule(module: {
47
+ type?: string;
48
+ } | null | undefined): boolean;
49
+ //# sourceMappingURL=mcp-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.interface.d.ts","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/mcp-config.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAG,KAAc,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,MAAM,EAAE,UAAU,CAAC;IAEnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEjF"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCP_MODULE_TYPE = void 0;
4
+ exports.isMcpModule = isMcpModule;
5
+ /**
6
+ * Module type literal for MCP (Model Context Protocol) servers hosted behind
7
+ * the gateway. Branches the OAuth 2.1 Resource Server behaviour.
8
+ */
9
+ exports.MCP_MODULE_TYPE = 'mcp';
10
+ /**
11
+ * Type guard: returns whether the given module is an MCP module.
12
+ *
13
+ * Accepts any object exposing a `type` field (e.g. `ModuleMetadata`), so it can
14
+ * be reused by the gateway guards without coupling to the full entity shape.
15
+ */
16
+ function isMcpModule(module) {
17
+ return (module === null || module === void 0 ? void 0 : module.type) === exports.MCP_MODULE_TYPE;
18
+ }
19
+ //# sourceMappingURL=mcp-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.interface.js","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/mcp-config.interface.ts"],"names":[],"mappings":";;;AAoDA,kCAEC;AAtDD;;;GAGG;AACU,QAAA,eAAe,GAAG,KAAc,CAAC;AA0C9C;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAA4C;IACtE,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,MAAK,uBAAe,CAAC;AAC1C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AuthorizationMetadata } from "./authorization.interface";
2
2
  import { MODULE_TYPES } from "./module-types.constants";
3
3
  import { CloudFunctionConfig } from "./cloud-function.interface";
4
+ import { McpResourceConfig } from "./mcp-config.interface";
4
5
  import { ServiceConfig } from "./service-config.interface";
5
6
  import { UIConfig } from "./ui-config.interface";
6
7
  import { CommonPathsMetadata } from "./common-paths.interface";
@@ -28,6 +29,8 @@ export declare class ModuleMetadata {
28
29
  * - `utility`: Shared JS bundle loaded before other modules.
29
30
  * - `cloud-function`: Serverless function.
30
31
  * - `documentation`: Module that contributes documentation pages.
32
+ * - `mcp`: Model Context Protocol server hosted behind the gateway, protected
33
+ * with the MCP OAuth 2.1 authorization model. Requires `mcp` (`McpResourceConfig`).
31
34
  */
32
35
  type: typeof MODULE_TYPES[number];
33
36
  /**
@@ -63,6 +66,10 @@ export declare class ModuleMetadata {
63
66
  * The authorization configuration
64
67
  */
65
68
  authorization?: AuthorizationMetadata | undefined;
69
+ /**
70
+ * MCP resource configuration. Present only for modules of type `'mcp'`.
71
+ */
72
+ mcp?: McpResourceConfig | undefined;
66
73
  /**
67
74
  * The application that this module belongs to
68
75
  */
@@ -102,6 +109,8 @@ export declare class ModuleMetadata {
102
109
  * - `utility`: Shared JS bundle loaded before other modules.
103
110
  * - `cloud-function`: Serverless function.
104
111
  * - `documentation`: Module that contributes documentation pages.
112
+ * - `mcp`: Model Context Protocol server hosted behind the gateway, protected
113
+ * with the MCP OAuth 2.1 authorization model. Requires `mcp` (`McpResourceConfig`).
105
114
  */
106
115
  type: typeof MODULE_TYPES[number],
107
116
  /**
@@ -133,6 +142,10 @@ export declare class ModuleMetadata {
133
142
  * The authorization configuration
134
143
  */
135
144
  authorization?: AuthorizationMetadata | undefined,
145
+ /**
146
+ * MCP resource configuration. Present only for modules of type `'mcp'`.
147
+ */
148
+ mcp?: McpResourceConfig | undefined,
136
149
  /**
137
150
  * The application that this module belongs to
138
151
  */
@@ -1 +1 @@
1
- {"version":3,"file":"module-metadata.entity.d.ts","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,qBAAqB,kBAAkB,CAAA;AAUpD,qBAAa,cAAc;IAOvB;;OAEG;IACI,IAAI,EAAE,MAAM;IAEnB;;OAEG;IACI,WAAW,EAAE,MAAM;IAE1B;;;;;;;;;;;;;;OAcG;IACI,IAAI,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC;IAExC;;OAEG;IACI,OAAO,EAAE,MAAM;IAEtB;;OAEG;IACI,OAAO,EAAE,aAAa;IAG7B;;;OAGG;IACI,SAAS,EAAE,MAAM,EAAE;IAEnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,IAAI;IAEtB;;OAEG;IACI,WAAW,CAAC,EAAE,mBAAmB;IAExC;;OAEG;IACI,EAAE,CAAC,EAAE,QAAQ;IAEpB;;OAEG;IACI,aAAa,CAAC,EAAE,mBAAmB;IAE1C;;OAEG;IACI,aAAa,CAAC,EAAE,qBAAqB;IAE5C;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM;IAE3B;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM;IAEvB;;OAEG;IACI,QAAQ,CAAC,EAAE,OAAO;IAxF3B;;SAEK;IACE,EAAE,CAAC,EAAE,MAAM,CAAC;;IAGjB;;OAEG;IACI,IAAI,EAAE,MAAM;IAEnB;;OAEG;IACI,WAAW,EAAE,MAAM;IAE1B;;;;;;;;;;;;;;OAcG;IACI,IAAI,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC;IAExC;;OAEG;IACI,OAAO,EAAE,MAAM;IAEtB;;OAEG;IACI,OAAO,EAAE,aAAa;IAG7B;;;OAGG;IACI,SAAS,EAAE,MAAM,EAAE,EAEnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,IAAI;IAEtB;;OAEG;IACI,WAAW,CAAC,EAAE,mBAAmB,YAAA;IAExC;;OAEG;IACI,EAAE,CAAC,EAAE,QAAQ,YAAA;IAEpB;;OAEG;IACI,aAAa,CAAC,EAAE,mBAAmB,YAAA;IAE1C;;OAEG;IACI,aAAa,CAAC,EAAE,qBAAqB,YAAA;IAE5C;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM,YAAA;IAE3B;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,YAAA;IAEvB;;OAEG;IACI,QAAQ,CAAC,EAAE,OAAO,YAAA;CAI5B"}
1
+ {"version":3,"file":"module-metadata.entity.d.ts","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,qBAAqB,kBAAkB,CAAA;AAUpD,qBAAa,cAAc;IAOvB;;OAEG;IACI,IAAI,EAAE,MAAM;IAEnB;;OAEG;IACI,WAAW,EAAE,MAAM;IAE1B;;;;;;;;;;;;;;;;OAgBG;IACI,IAAI,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC;IAExC;;OAEG;IACI,OAAO,EAAE,MAAM;IAEtB;;OAEG;IACI,OAAO,EAAE,aAAa;IAG7B;;;OAGG;IACI,SAAS,EAAE,MAAM,EAAE;IAEnB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,IAAI;IAEtB;;OAEG;IACI,WAAW,CAAC,EAAE,mBAAmB;IAExC;;OAEG;IACI,EAAE,CAAC,EAAE,QAAQ;IAEpB;;OAEG;IACI,aAAa,CAAC,EAAE,mBAAmB;IAE1C;;OAEG;IACI,aAAa,CAAC,EAAE,qBAAqB;IAE5C;;OAEG;IACI,GAAG,CAAC,EAAE,iBAAiB;IAE9B;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM;IAE3B;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM;IAEvB;;OAEG;IACI,QAAQ,CAAC,EAAE,OAAO;IA/F3B;;SAEK;IACE,EAAE,CAAC,EAAE,MAAM,CAAC;;IAGjB;;OAEG;IACI,IAAI,EAAE,MAAM;IAEnB;;OAEG;IACI,WAAW,EAAE,MAAM;IAE1B;;;;;;;;;;;;;;;;OAgBG;IACI,IAAI,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC;IAExC;;OAEG;IACI,OAAO,EAAE,MAAM;IAEtB;;OAEG;IACI,OAAO,EAAE,aAAa;IAG7B;;;OAGG;IACI,SAAS,EAAE,MAAM,EAAE,EAEnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,IAAI;IAEtB;;OAEG;IACI,WAAW,CAAC,EAAE,mBAAmB,YAAA;IAExC;;OAEG;IACI,EAAE,CAAC,EAAE,QAAQ,YAAA;IAEpB;;OAEG;IACI,aAAa,CAAC,EAAE,mBAAmB,YAAA;IAE1C;;OAEG;IACI,aAAa,CAAC,EAAE,qBAAqB,YAAA;IAE5C;;OAEG;IACI,GAAG,CAAC,EAAE,iBAAiB,YAAA;IAE9B;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM,YAAA;IAE3B;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,YAAA;IAEvB;;OAEG;IACI,QAAQ,CAAC,EAAE,OAAO,YAAA;CAI5B"}
@@ -33,6 +33,8 @@ class ModuleMetadata {
33
33
  * - `utility`: Shared JS bundle loaded before other modules.
34
34
  * - `cloud-function`: Serverless function.
35
35
  * - `documentation`: Module that contributes documentation pages.
36
+ * - `mcp`: Model Context Protocol server hosted behind the gateway, protected
37
+ * with the MCP OAuth 2.1 authorization model. Requires `mcp` (`McpResourceConfig`).
36
38
  */
37
39
  type,
38
40
  /**
@@ -64,6 +66,10 @@ class ModuleMetadata {
64
66
  * The authorization configuration
65
67
  */
66
68
  authorization,
69
+ /**
70
+ * MCP resource configuration. Present only for modules of type `'mcp'`.
71
+ */
72
+ mcp,
67
73
  /**
68
74
  * The application that this module belongs to
69
75
  */
@@ -90,6 +96,7 @@ class ModuleMetadata {
90
96
  this.ui = ui;
91
97
  this.cloudFunction = cloudFunction;
92
98
  this.authorization = authorization;
99
+ this.mcp = mcp;
93
100
  this.application = application;
94
101
  this.version = version;
95
102
  this.isPublic = isPublic;
@@ -1 +1 @@
1
- {"version":3,"file":"module-metadata.entity.js","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-metadata.entity.ts"],"names":[],"mappings":";;;AAOa,QAAA,qBAAqB,GAAG,eAAe,CAAA;AAEpD,6FAA6F;AAC7F,gDAAgD;AAChD,uHAAuH;AACvH,sDAAsD;AACtD,sGAAsG;AACtG,0CAA0C;AAC1C,4GAA4G;AAE5G,MAAa,cAAc;IAMzB;IACE;;OAEG;IACI,IAAY;IAEnB;;OAEG;IACI,WAAmB;IAE1B;;;;;;;;;;;;;;OAcG;IACI,IAAiC;IAExC;;OAEG;IACI,OAAe;IAEtB;;OAEG;IACI,OAAsB;IAG7B;;;OAGG;IACI,SAAmB,EAEnB,SAAiB,EACjB,SAAe,EACf,SAAiB,EACjB,SAAe;IAEtB;;OAEG;IACI,WAAiC;IAExC;;OAEG;IACI,EAAa;IAEpB;;OAEG;IACI,aAAmC;IAE1C;;OAEG;IACI,aAAqC;IAE5C;;OAEG;IACI,WAAoB;IAE3B;;OAEG;IACI,OAAgB;IAEvB;;OAEG;IACI,QAAkB;QA/ElB,SAAI,GAAJ,IAAI,CAAQ;QAKZ,gBAAW,GAAX,WAAW,CAAQ;QAiBnB,SAAI,GAAJ,IAAI,CAA6B;QAKjC,YAAO,GAAP,OAAO,CAAQ;QAKf,YAAO,GAAP,OAAO,CAAe;QAOtB,cAAS,GAAT,SAAS,CAAU;QAEnB,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAM;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAM;QAKf,gBAAW,GAAX,WAAW,CAAsB;QAKjC,OAAE,GAAF,EAAE,CAAW;QAKb,kBAAa,GAAb,aAAa,CAAsB;QAKnC,kBAAa,GAAb,aAAa,CAAwB;QAKrC,gBAAW,GAAX,WAAW,CAAS;QAKpB,YAAO,GAAP,OAAO,CAAS;QAKhB,aAAQ,GAAR,QAAQ,CAAU;IAEvB,CAAC;CAEN;AA7FD,wCA6FC"}
1
+ {"version":3,"file":"module-metadata.entity.js","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-metadata.entity.ts"],"names":[],"mappings":";;;AAQa,QAAA,qBAAqB,GAAG,eAAe,CAAA;AAEpD,6FAA6F;AAC7F,gDAAgD;AAChD,uHAAuH;AACvH,sDAAsD;AACtD,sGAAsG;AACtG,0CAA0C;AAC1C,4GAA4G;AAE5G,MAAa,cAAc;IAMzB;IACE;;OAEG;IACI,IAAY;IAEnB;;OAEG;IACI,WAAmB;IAE1B;;;;;;;;;;;;;;;;OAgBG;IACI,IAAiC;IAExC;;OAEG;IACI,OAAe;IAEtB;;OAEG;IACI,OAAsB;IAG7B;;;OAGG;IACI,SAAmB,EAEnB,SAAiB,EACjB,SAAe,EACf,SAAiB,EACjB,SAAe;IAEtB;;OAEG;IACI,WAAiC;IAExC;;OAEG;IACI,EAAa;IAEpB;;OAEG;IACI,aAAmC;IAE1C;;OAEG;IACI,aAAqC;IAE5C;;OAEG;IACI,GAAuB;IAE9B;;OAEG;IACI,WAAoB;IAE3B;;OAEG;IACI,OAAgB;IAEvB;;OAEG;IACI,QAAkB;QAtFlB,SAAI,GAAJ,IAAI,CAAQ;QAKZ,gBAAW,GAAX,WAAW,CAAQ;QAmBnB,SAAI,GAAJ,IAAI,CAA6B;QAKjC,YAAO,GAAP,OAAO,CAAQ;QAKf,YAAO,GAAP,OAAO,CAAe;QAOtB,cAAS,GAAT,SAAS,CAAU;QAEnB,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAM;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAM;QAKf,gBAAW,GAAX,WAAW,CAAsB;QAKjC,OAAE,GAAF,EAAE,CAAW;QAKb,kBAAa,GAAb,aAAa,CAAsB;QAKnC,kBAAa,GAAb,aAAa,CAAwB;QAKrC,QAAG,GAAH,GAAG,CAAoB;QAKvB,gBAAW,GAAX,WAAW,CAAS;QAKpB,YAAO,GAAP,OAAO,CAAS;QAKhB,aAAQ,GAAR,QAAQ,CAAU;IAEvB,CAAC;CAEN;AApGD,wCAoGC"}
@@ -1,2 +1,2 @@
1
- export declare const MODULE_TYPES: readonly ["app", "tool", "utility", "service", "cloud-function", "documentation", "fragment"];
1
+ export declare const MODULE_TYPES: readonly ["app", "tool", "utility", "service", "cloud-function", "documentation", "fragment", "mcp"];
2
2
  //# sourceMappingURL=module-types.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-types.constants.d.ts","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-types.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,+FAAgG,CAAC"}
1
+ {"version":3,"file":"module-types.constants.d.ts","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-types.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,sGAAuG,CAAC"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MODULE_TYPES = void 0;
4
- exports.MODULE_TYPES = ['app', 'tool', 'utility', 'service', 'cloud-function', 'documentation', 'fragment'];
4
+ exports.MODULE_TYPES = ['app', 'tool', 'utility', 'service', 'cloud-function', 'documentation', 'fragment', 'mcp'];
5
5
  //# sourceMappingURL=module-types.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-types.constants.js","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-types.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,CAAU,CAAC"}
1
+ {"version":3,"file":"module-types.constants.js","sourceRoot":"","sources":["../../../../../src/catalog/entities/module-metadata/module-types.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,CAAU,CAAC"}
@@ -5,5 +5,6 @@ export declare const PAE_MODULES_NAMES: {
5
5
  ROOMS_SERVICE: string;
6
6
  GATEWAY_SERVICE: string;
7
7
  DOCUMENTATION: string;
8
+ PLATFORM_MCP_SERVICE: string;
8
9
  };
9
10
  //# sourceMappingURL=pae-modules.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pae-modules.constants.d.ts","sourceRoot":"","sources":["../../../src/catalog/pae-modules.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;CAO7B,CAAA"}
1
+ {"version":3,"file":"pae-modules.constants.d.ts","sourceRoot":"","sources":["../../../src/catalog/pae-modules.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;;;;;;CAQ7B,CAAA"}
@@ -8,5 +8,6 @@ exports.PAE_MODULES_NAMES = {
8
8
  ROOMS_SERVICE: '@bluealba/pae-rooms-service',
9
9
  GATEWAY_SERVICE: '@bluealba/pae-nestjs-gateway-service',
10
10
  DOCUMENTATION: '@bluealba/pae-documentation',
11
+ PLATFORM_MCP_SERVICE: '@bluealba/pae-platform-mcp-service',
11
12
  };
12
13
  //# sourceMappingURL=pae-modules.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pae-modules.constants.js","sourceRoot":"","sources":["../../../src/catalog/pae-modules.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,wBAAwB;IAClC,gBAAgB,EAAE,gCAAgC;IAClD,QAAQ,EAAE,wBAAwB;IAClC,aAAa,EAAE,6BAA6B;IAC5C,eAAe,EAAE,sCAAsC;IACvD,aAAa,EAAE,6BAA6B;CAC7C,CAAA"}
1
+ {"version":3,"file":"pae-modules.constants.js","sourceRoot":"","sources":["../../../src/catalog/pae-modules.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,wBAAwB;IAClC,gBAAgB,EAAE,gCAAgC;IAClD,QAAQ,EAAE,wBAAwB;IAClC,aAAa,EAAE,6BAA6B;IAC5C,eAAe,EAAE,sCAAsC;IACvD,aAAa,EAAE,6BAA6B;IAC5C,oBAAoB,EAAE,oCAAoC;CAC3D,CAAA"}
@@ -55,7 +55,7 @@ export declare const createPAEServiceFromCatalog: (catalog: ModuleMetadata[], op
55
55
  getAllowedApplications(username: string): Promise<import("..").Application[]>;
56
56
  getAllowedOperationsForApplication(data: import("..").GetAllowedOperationsForAppDTO): Promise<import("..").Operation[]>;
57
57
  getAllowedResources(username: string, tenantId?: number): Promise<import("..").AllowedResources>;
58
- isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: import("..").AllowedResources, requestPath?: string, requestMethod?: import("../authorization/isAuthorized/http-method").HttpMethod) => boolean;
58
+ isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: import("..").AllowedResources, requestPath?: string, requestMethod?: import("..").HttpMethod) => boolean;
59
59
  getAdminUIData(tenantId?: number): Promise<import("../authorization/entities/admin-ui-data.entity").AdminUIData[]>;
60
60
  syncAssignments(dto: import("..").SyncAssignmentsDTO): Promise<void>;
61
61
  getAllModules: () => Promise<ModuleMetadata[]>;
@@ -56,7 +56,7 @@ export declare const createPAEService: (config: PAEServiceConfig, opts?: Service
56
56
  getAllowedApplications(username: string): Promise<import("../authorization").Application[]>;
57
57
  getAllowedOperationsForApplication(data: import("../authorization").GetAllowedOperationsForAppDTO): Promise<import("../authorization").Operation[]>;
58
58
  getAllowedResources(username: string, tenantId?: number): Promise<import("..").AllowedResources>;
59
- isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: import("..").AllowedResources, requestPath?: string, requestMethod?: import("../authorization/isAuthorized/http-method").HttpMethod) => boolean;
59
+ isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: import("..").AllowedResources, requestPath?: string, requestMethod?: import("..").HttpMethod) => boolean;
60
60
  getAdminUIData(tenantId?: number): Promise<import("../authorization/entities/admin-ui-data.entity").AdminUIData[]>;
61
61
  syncAssignments(dto: import("../authorization").SyncAssignmentsDTO): Promise<void>;
62
62
  getAllModules: () => Promise<ModuleMetadata[]>;
@@ -133,7 +133,7 @@ export declare const createPAE: (catalogURL: string, accessToken: string, opts?:
133
133
  getAllowedApplications(username: string): Promise<import("../authorization").Application[]>;
134
134
  getAllowedOperationsForApplication(data: import("../authorization").GetAllowedOperationsForAppDTO): Promise<import("../authorization").Operation[]>;
135
135
  getAllowedResources(username: string, tenantId?: number): Promise<import("..").AllowedResources>;
136
- isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: import("..").AllowedResources, requestPath?: string, requestMethod?: import("../authorization/isAuthorized/http-method").HttpMethod) => boolean;
136
+ isAuthorized: (module: ModuleMetadata, catalog: ModuleMetadata[], allowedResources: import("..").AllowedResources, requestPath?: string, requestMethod?: import("..").HttpMethod) => boolean;
137
137
  getAdminUIData(tenantId?: number): Promise<import("../authorization/entities/admin-ui-data.entity").AdminUIData[]>;
138
138
  syncAssignments(dto: import("../authorization").SyncAssignmentsDTO): Promise<void>;
139
139
  getAllModules: () => Promise<ModuleMetadata[]>;
@@ -7,9 +7,13 @@ export * from './authentication';
7
7
  export * from './catalog';
8
8
  export { SharedLibrary } from './orchestrator/entities/SharedLibrary.entity';
9
9
  export { ApplicationWithOperations } from './authorization/isAuthorized/application-with-operations';
10
+ export { getMatchingRoute, isRoutePublic, getRoutesOperations } from './authorization/isAuthorized/get-route-operations';
11
+ export type { HttpMethod } from './authorization/isAuthorized/http-method';
12
+ export type { RouteAuthorization, AuthorizationMetadata } from './catalog/entities/module-metadata/authorization.interface';
10
13
  export { AllowedResources } from './authorization/entities/allowed-resources.entity';
11
14
  export * from './authorization/entities/admin-ui/admin-ui';
12
15
  export * from './catalog/entities/module-metadata/module-metadata.entity';
16
+ export * from './catalog/entities/module-metadata/mcp-config.interface';
13
17
  export * from './catalog/entities/module-metadata/ui-config.interface';
14
18
  export * from './catalog/entities/module-metadata/service-config.interface';
15
19
  export * from './catalog/entities/module-metadata/compute-is-public';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AAIvD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,cAAc,4CAA4C,CAAC;AAG3D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wDAAwD,CAAC;AACvE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,sDAAsD,CAAC;AAErE,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,cAAc,0BAA0B,CAAC;AAIzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AAIvD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AACzH,YAAY,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAC;AAC5H,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,cAAc,4CAA4C,CAAC;AAG3D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,yDAAyD,CAAC;AACxE,cAAc,wDAAwD,CAAC;AACvE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,sDAAsD,CAAC;AAErE,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,cAAc,0BAA0B,CAAC;AAIzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,WAAW,CAAC"}
package/dist/src/index.js CHANGED
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.PAE_MODULES_NAMES = exports.PLATFORM_APPLICATION_NAME = exports.isAuthenticatedUser = exports.isAnonymousUser = exports.AllowedResources = exports.SharedLibrary = void 0;
18
+ exports.PAE_MODULES_NAMES = exports.PLATFORM_APPLICATION_NAME = exports.isAuthenticatedUser = exports.isAnonymousUser = exports.AllowedResources = exports.getRoutesOperations = exports.isRoutePublic = exports.getMatchingRoute = exports.SharedLibrary = void 0;
19
19
  __exportStar(require("./core/create-pae-service"), exports);
20
20
  __exportStar(require("./core/create-pae-service-from-catalog"), exports);
21
21
  // Exporting entities and other types
@@ -26,11 +26,16 @@ __exportStar(require("./authentication"), exports);
26
26
  __exportStar(require("./catalog"), exports);
27
27
  var SharedLibrary_entity_1 = require("./orchestrator/entities/SharedLibrary.entity");
28
28
  Object.defineProperty(exports, "SharedLibrary", { enumerable: true, get: function () { return SharedLibrary_entity_1.SharedLibrary; } });
29
+ var get_route_operations_1 = require("./authorization/isAuthorized/get-route-operations");
30
+ Object.defineProperty(exports, "getMatchingRoute", { enumerable: true, get: function () { return get_route_operations_1.getMatchingRoute; } });
31
+ Object.defineProperty(exports, "isRoutePublic", { enumerable: true, get: function () { return get_route_operations_1.isRoutePublic; } });
32
+ Object.defineProperty(exports, "getRoutesOperations", { enumerable: true, get: function () { return get_route_operations_1.getRoutesOperations; } });
29
33
  var allowed_resources_entity_1 = require("./authorization/entities/allowed-resources.entity");
30
34
  Object.defineProperty(exports, "AllowedResources", { enumerable: true, get: function () { return allowed_resources_entity_1.AllowedResources; } });
31
35
  __exportStar(require("./authorization/entities/admin-ui/admin-ui"), exports);
32
36
  // catalog
33
37
  __exportStar(require("./catalog/entities/module-metadata/module-metadata.entity"), exports);
38
+ __exportStar(require("./catalog/entities/module-metadata/mcp-config.interface"), exports);
34
39
  __exportStar(require("./catalog/entities/module-metadata/ui-config.interface"), exports);
35
40
  __exportStar(require("./catalog/entities/module-metadata/service-config.interface"), exports);
36
41
  __exportStar(require("./catalog/entities/module-metadata/compute-is-public"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,aAAa;;;;;;;;;;;;;;;;;AAEb,4DAA0C;AAC1C,yEAAuD;AAEvD,qCAAqC;AAErC,kDAA+B;AAC/B,iDAA8B;AAC9B,2CAAwB;AACxB,mDAAgC;AAChC,4CAAyB;AAEzB,qFAA6E;AAApE,qHAAA,aAAa,OAAA;AAEtB,8FAAqF;AAA5E,4HAAA,gBAAgB,OAAA;AACzB,6EAA2D;AAE3D,UAAU;AACV,4FAA0E;AAC1E,yFAAuE;AACvE,8FAA4E;AAC5E,uFAAqE;AAErE,2DAAyC;AACzC,+DAA6C;AAC7C,yCAAuB;AACvB,mDAA+F;AAA/D,iHAAA,eAAe,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAEpE,sBAAsB;AAEtB,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAClC,yEAAoE;AAA3D,0HAAA,iBAAiB,OAAA;AAC1B,2DAAyC;AAEzC,yBAAyB;AAEzB,0DAAwC;AACxC,yDAAuC;AACvC,+DAA6C;AAC7C,8DAA4C;AAE5C,UAAU;AACV,4CAA0B;AAM1B,4FAA4F;AAC5F,kEAAkE;AAClE,qDAAqD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,aAAa;;;;;;;;;;;;;;;;;AAEb,4DAA0C;AAC1C,yEAAuD;AAEvD,qCAAqC;AAErC,kDAA+B;AAC/B,iDAA8B;AAC9B,2CAAwB;AACxB,mDAAgC;AAChC,4CAAyB;AAEzB,qFAA6E;AAApE,qHAAA,aAAa,OAAA;AAEtB,0FAAyH;AAAhH,wHAAA,gBAAgB,OAAA;AAAE,qHAAA,aAAa,OAAA;AAAE,2HAAA,mBAAmB,OAAA;AAG7D,8FAAqF;AAA5E,4HAAA,gBAAgB,OAAA;AACzB,6EAA2D;AAE3D,UAAU;AACV,4FAA0E;AAC1E,0FAAwE;AACxE,yFAAuE;AACvE,8FAA4E;AAC5E,uFAAqE;AAErE,2DAAyC;AACzC,+DAA6C;AAC7C,yCAAuB;AACvB,mDAA+F;AAA/D,iHAAA,eAAe,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAEpE,sBAAsB;AAEtB,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAClC,yEAAoE;AAA3D,0HAAA,iBAAiB,OAAA;AAC1B,2DAAyC;AAEzC,yBAAyB;AAEzB,0DAAwC;AACxC,yDAAuC;AACvC,+DAA6C;AAC7C,8DAA4C;AAE5C,UAAU;AACV,4CAA0B;AAM1B,4FAA4F;AAC5F,kEAAkE;AAClE,qDAAqD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bluealba/pae-core",
3
3
  "description": "Core package for the PAE project",
4
- "version": "5.6.0",
4
+ "version": "5.7.0-develop-462",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "files": [