@lenne.tech/nest-server 11.41.2 → 11.41.4

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 (103) hide show
  1. package/.claude/rules/architecture.md +1 -0
  2. package/.claude/rules/configurable-features.md +1 -0
  3. package/.claude/rules/role-system.md +15 -1
  4. package/.claude/rules/testing.md +16 -4
  5. package/CLAUDE.md +2 -1
  6. package/FRAMEWORK-API.md +4 -1
  7. package/dist/core/common/helpers/graceful-shutdown.helper.js.map +1 -1
  8. package/dist/core/common/helpers/logging.helper.js +2 -0
  9. package/dist/core/common/helpers/logging.helper.js.map +1 -1
  10. package/dist/core/common/helpers/process-diagnostics.helper.js.map +1 -1
  11. package/dist/core/common/interfaces/server-options.interface.d.ts +20 -0
  12. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.d.ts +2 -2
  13. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js +46 -6
  14. package/dist/core/modules/ai/helpers/ai-mcp-oauth.helper.js.map +1 -1
  15. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js +7 -1
  16. package/dist/core/modules/ai/services/core-ai-mcp-oauth.service.js.map +1 -1
  17. package/dist/core/modules/api-token/core-api-token.constants.d.ts +6 -0
  18. package/dist/core/modules/api-token/core-api-token.constants.js +11 -0
  19. package/dist/core/modules/api-token/core-api-token.constants.js.map +1 -0
  20. package/dist/core/modules/api-token/core-api-token.decorators.d.ts +1 -0
  21. package/dist/core/modules/api-token/core-api-token.decorators.js +8 -0
  22. package/dist/core/modules/api-token/core-api-token.decorators.js.map +1 -0
  23. package/dist/core/modules/api-token/core-api-token.helpers.d.ts +127 -0
  24. package/dist/core/modules/api-token/core-api-token.helpers.js +398 -0
  25. package/dist/core/modules/api-token/core-api-token.helpers.js.map +1 -0
  26. package/dist/core/modules/api-token/core-api-token.middleware.d.ts +10 -0
  27. package/dist/core/modules/api-token/core-api-token.middleware.js +58 -0
  28. package/dist/core/modules/api-token/core-api-token.middleware.js.map +1 -0
  29. package/dist/core/modules/api-token/core-api-token.model.d.ts +20 -0
  30. package/dist/core/modules/api-token/core-api-token.model.js +199 -0
  31. package/dist/core/modules/api-token/core-api-token.model.js.map +1 -0
  32. package/dist/core/modules/api-token/core-api-token.module.d.ts +11 -0
  33. package/dist/core/modules/api-token/core-api-token.module.js +39 -0
  34. package/dist/core/modules/api-token/core-api-token.module.js.map +1 -0
  35. package/dist/core/modules/api-token/core-api-token.registry.d.ts +9 -0
  36. package/dist/core/modules/api-token/core-api-token.registry.js +17 -0
  37. package/dist/core/modules/api-token/core-api-token.registry.js.map +1 -0
  38. package/dist/core/modules/api-token/core-api-token.service.d.ts +104 -0
  39. package/dist/core/modules/api-token/core-api-token.service.js +550 -0
  40. package/dist/core/modules/api-token/core-api-token.service.js.map +1 -0
  41. package/dist/core/modules/auth/guards/roles.guard.js +17 -1
  42. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  43. package/dist/core/modules/better-auth/better-auth-roles.guard.js +12 -2
  44. package/dist/core/modules/better-auth/better-auth-roles.guard.js.map +1 -1
  45. package/dist/core/modules/better-auth/core-better-auth.middleware.js +4 -0
  46. package/dist/core/modules/better-auth/core-better-auth.middleware.js.map +1 -1
  47. package/dist/core/modules/better-auth/core-better-auth.module.d.ts +4 -0
  48. package/dist/core/modules/better-auth/core-better-auth.module.js +18 -0
  49. package/dist/core/modules/better-auth/core-better-auth.module.js.map +1 -1
  50. package/dist/core/modules/tenant/core-tenant-guard.registry.d.ts +2 -0
  51. package/dist/core/modules/tenant/core-tenant-guard.registry.js +19 -0
  52. package/dist/core/modules/tenant/core-tenant-guard.registry.js.map +1 -0
  53. package/dist/core/modules/tenant/core-tenant.guard.d.ts +1 -0
  54. package/dist/core/modules/tenant/core-tenant.guard.js +28 -12
  55. package/dist/core/modules/tenant/core-tenant.guard.js.map +1 -1
  56. package/dist/core/modules/tenant/core-tenant.helpers.d.ts +1 -0
  57. package/dist/core/modules/tenant/core-tenant.helpers.js +19 -0
  58. package/dist/core/modules/tenant/core-tenant.helpers.js.map +1 -1
  59. package/dist/core/modules/tenant/core-tenant.module.d.ts +5 -2
  60. package/dist/core/modules/tenant/core-tenant.module.js +8 -0
  61. package/dist/core/modules/tenant/core-tenant.module.js.map +1 -1
  62. package/dist/core/modules/user/core-user.service.js +7 -0
  63. package/dist/core/modules/user/core-user.service.js.map +1 -1
  64. package/dist/core.module.js +6 -0
  65. package/dist/core.module.js.map +1 -1
  66. package/dist/index.d.ts +7 -0
  67. package/dist/index.js +7 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/tsconfig.build.tsbuildinfo +1 -1
  70. package/docs/REQUEST-LIFECYCLE.md +49 -1
  71. package/docs/security-overrides.md +16 -10
  72. package/migration-guides/11.41.3-to-11.41.4.md +172 -0
  73. package/package.json +38 -37
  74. package/src/core/common/helpers/graceful-shutdown.helper.ts +9 -0
  75. package/src/core/common/helpers/logging.helper.ts +7 -0
  76. package/src/core/common/helpers/process-diagnostics.helper.ts +4 -0
  77. package/src/core/common/interfaces/server-options.interface.ts +110 -0
  78. package/src/core/modules/ai/INTEGRATION-CHECKLIST.md +17 -10
  79. package/src/core/modules/ai/README.md +9 -1
  80. package/src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts +74 -7
  81. package/src/core/modules/ai/services/core-ai-mcp-oauth.service.ts +13 -1
  82. package/src/core/modules/api-token/INTEGRATION-CHECKLIST.md +121 -0
  83. package/src/core/modules/api-token/README.md +212 -0
  84. package/src/core/modules/api-token/core-api-token.constants.ts +27 -0
  85. package/src/core/modules/api-token/core-api-token.decorators.ts +29 -0
  86. package/src/core/modules/api-token/core-api-token.helpers.ts +711 -0
  87. package/src/core/modules/api-token/core-api-token.middleware.ts +57 -0
  88. package/src/core/modules/api-token/core-api-token.model.ts +193 -0
  89. package/src/core/modules/api-token/core-api-token.module.ts +48 -0
  90. package/src/core/modules/api-token/core-api-token.registry.ts +53 -0
  91. package/src/core/modules/api-token/core-api-token.service.ts +822 -0
  92. package/src/core/modules/auth/guards/roles.guard.ts +23 -2
  93. package/src/core/modules/better-auth/better-auth-roles.guard.ts +18 -4
  94. package/src/core/modules/better-auth/core-better-auth.middleware.ts +8 -0
  95. package/src/core/modules/better-auth/core-better-auth.module.ts +33 -0
  96. package/src/core/modules/tenant/README.md +17 -0
  97. package/src/core/modules/tenant/core-tenant-guard.registry.ts +36 -0
  98. package/src/core/modules/tenant/core-tenant.guard.ts +52 -12
  99. package/src/core/modules/tenant/core-tenant.helpers.ts +30 -0
  100. package/src/core/modules/tenant/core-tenant.module.ts +19 -2
  101. package/src/core/modules/user/core-user.service.ts +14 -0
  102. package/src/core.module.ts +12 -0
  103. package/src/index.ts +12 -0
@@ -56,6 +56,7 @@ consumer follows. See `.claude/rules/configurable-features.md` for the full opti
56
56
 
57
57
  | Module | Purpose |
58
58
  |--------|---------|
59
+ | **ApiToken** | Opt-in bearer tokens: USER tokens (act as their user, no global roles) and TENANT tokens (lowest tenant role, own tenant only); deny by default via `@ApiTokenScopes()`; signed short-lived assertions |
59
60
  | **Auth** | JWT authentication, refresh tokens, role-based access |
60
61
  | **BetterAuth** | Modern auth integration (2FA, Passkey, Social) |
61
62
  | **ErrorCode** | Centralized error codes with unique identifiers |
@@ -321,6 +321,7 @@ This pattern is currently applied to:
321
321
  | Translate Response Interceptor | `security.translateResponseInterceptor` | Boolean Shorthand | `true` (enabled) |
322
322
  | Secret Fields Removal | `security.secretFields` | Array | `['password', 'verificationToken', ...]` |
323
323
  | Multi-Tenancy | `multiTenancy` | Presence Implies Enabled | **`excludeSchemas` is an OFF SWITCH for isolation, per model** — a listed schema gets no tenant filter at all; since 11.35.0 the plugin WARNS once per model when the excluded schema declares `tenantId` (i.e. was built for isolation). The framework's own docs recommended `['User', 'Session']` until then; that is withdrawn — it is only right for the global-user model. Since 11.35.0 GraphQL operations over the WEBSOCKET also run inside a `RequestContext` (`CoreModule` installs a context-aware `execute`/`subscribe` pair inside `subscriptions`, where `ApolloDriver` forwards it): the tenant comes from the handshake header validated against an active membership, else from the subscriber's memberships, and an unresolvable tenant leaves the safety net to refuse the read rather than returning everything. `headerName: 'x-tenant-id'`, `membershipModel: 'TenantMember'`, `adminBypass: true`, `excludeSchemas: []`, `roleHierarchy: { member: 1, manager: 2, owner: 3 }`, `cacheTtlMs: 30000` (0 disables, process-local). System roles (`S_EVERYONE`, `S_USER`, `S_VERIFIED`) are checked as OR alternatives before real roles; method-level system roles take precedence; membership validated for context when system role grants access + header present. Hierarchy roles use level comparison, normal roles use exact match. Use `DefaultHR` or `createHierarchyRoles()` for type-safe role constants. Bypass: `RequestContext.runWithBypassTenantGuard()`. Cache invalidation: `invalidateUser(userId)` / `invalidateAll()` are **instance** methods on the singleton `CoreTenantGuard` — inject it and call `this.tenantGuard?.invalidateUser(userId)`, never `CoreTenantGuard.invalidateUser(...)` (there is no static). With `redis` configured, both additionally BROADCAST the invalidation to every replica (`<keyPrefix>:tenant-cache:invalidate` pub/sub); without Redis they clear the local process only, so other replicas stay stale until `cacheTtlMs`. A received broadcast clears locally without re-publishing |
324
+ | API Tokens | `apiTokens` | Boolean Shorthand + Presence Implies Enabled — absent = off | `prefix: 'ltt'`, `scopes: []` (vocabulary; empty = no token creatable, boot warning), `manageRole`: highest hierarchy role, `maxAssertionLifetimeSeconds: 900` (invalid → default, never unbounded — Family C), `rateLimit: { max: 600, windowSeconds: 60 }` per token (**on by default**, `false` disables; Redis-shared when configured), `userTokens: true`, `tenantTokens: true` (effective only with `multiTenancy`), `encryptionKey` → `SECRETS_ENCRYPTION_KEY` → dev default (boot FAILS in production/staging). Top-level, NOT under `multiTenancy`: user tokens must work without it. **Deny by default**: every guard refuses a token on a route without `@ApiTokenScopes()`, public routes included, via ONE shared function (`enforceApiTokenRoute`) called BEFORE each guard's public-route shortcut. USER tokens act as their user with global roles REMOVED (no admin bypass); TENANT tokens act with the lowest hierarchy role in their own tenant, and a route guarded ONLY by `S_SELF` / `S_CREATOR` refuses them (a tenant token is nobody's self — skipping those roles would grant for any target). A tenant token depends on no member, so it outlives an off-boarded or deleted tenant until the project calls `deleteAllForTenant()`. The boot refuses a hierarchy in which that lowest role reaches `manageRole`. A prefixed credential that fails answers 401 on every route (not anonymous); `CoreBetterAuthMiddleware` skips prefixed credentials entirely, cookie fallback included. A password reset that ends the user's sessions ends their USER tokens too (legacy reset always; IAM reset while `betterAuth.emailAndPassword.revokeSessionsOnPasswordReset` is on), wired through `core-api-token.registry.ts` so neither reset path imports the optional module. Implementation: `src/core/modules/api-token/` |
324
325
  | BetterAuth Tenant Skip | `betterAuth.skipTenantCheck` | Explicit Boolean | `true` (default). When `true` and no `X-Tenant-Id` header is sent, IAM endpoints (controller + resolver) skip `CoreTenantGuard` tenant validation. When header IS present, normal membership validation runs regardless. Set `false` for tenant-aware auth scenarios (subdomain-based, invite links, SSO per tenant) |
325
326
  | Debug Process Input | `debugProcessInput` | Explicit Boolean | `false` (default). When `true`, logs a debug message when `prepareInput()` changes the input type during `process()`. Has performance cost due to `JSON.stringify` on every `process()` call — enable only for debugging |
326
327
  | JSONTransport Production Guard | `email.smtp` with `jsonTransport` | Runtime Guard | Throws `Error` when `email.smtp` has a truthy `jsonTransport` property in `production` or `staging` environments (read from config `env` field). JSONTransport silently discards all outgoing mail — the guard prevents accidental misconfiguration that causes password-reset, 2FA, and verification emails to vanish. Use `{ jsonTransport: true }` only in CI/e2e/local environments |
@@ -403,10 +403,24 @@ Hierarchy roles use **level comparison** (higher includes lower). Normal roles u
403
403
 
404
404
  Both work in `@Roles()` (method-level) and `@Restricted()` (field-level) via unified `checkRoleAccess()`.
405
405
 
406
+ ## Delegation needs a REGISTERED tenant guard (11.41.4)
407
+
408
+ The role guards hand non-system roles to `CoreTenantGuard` because that guard resolves them against
409
+ the membership. They used to decide from configuration alone (`isMultiTenancyActive()`), so with
410
+ `multiTenancy` configured but no tenant guard registered, `@Roles(RoleEnum.ADMIN)` admitted every
411
+ authenticated caller: the role went to a guard that never ran. They now ask
412
+ `delegatesRolesToTenantGuard()`, which also requires `hasActiveTenantGuard()`
413
+ (`core-tenant-guard.registry.ts`, filled by `CoreTenantModule` and by `CoreTenantGuard` itself) and
414
+ otherwise lets the role guard check `user.roles` — fail-closed, warned once. Pinned by
415
+ `tests/unit/tenant-guard-delegation.spec.ts` (mutation `role-guards-delegate-without-tenant-guard`).
416
+
417
+ **Configured is not registered.** When you add a guard that delegates to another one, ask whether
418
+ the other one RUNS, not whether it is configured.
419
+
406
420
  ## Role Check Implementation
407
421
 
408
422
  The role system is evaluated in:
409
- - `RolesGuard` / `BetterAuthRolesGuard` - Checks method-level `@Roles()` decorators (passes through non-system roles to `CoreTenantGuard` when multiTenancy active)
423
+ - `RolesGuard` / `BetterAuthRolesGuard` - Checks method-level `@Roles()` decorators (passes through non-system roles to `CoreTenantGuard` when multiTenancy is active AND a tenant guard is registered — see below)
410
424
  - `CoreTenantGuard` - Validates tenant membership and checks hierarchy/normal roles
411
425
  - `CheckResponseInterceptor` - Filters fields based on `@Restricted()` decorators
412
426
  - `CheckSecurityInterceptor` - Processes `securityCheck()` methods
@@ -266,7 +266,7 @@ pnpm run check:mutations -- --id=<id> # one mutation
266
266
  pnpm run check:mutations -- --list # the registry, without running anything
267
267
  pnpm run check:mutations -- --allow-dirty # when the fix and its evidence share a working tree
268
268
  pnpm run check:mutations -- --jobs=4 # N mutations at a time (default: 2, or 4 on >=12 cores)
269
- pnpm run check:mutations -- --no-infra # only the 66 that need no MongoDB
269
+ pnpm run check:mutations -- --no-infra # only the 73 that need no MongoDB
270
270
  pnpm run check:mutations -- --since=<ref> # only mutations touching files changed since <ref>
271
271
  ```
272
272
 
@@ -285,7 +285,7 @@ when the registry, a vitest config or a setup file changed, since those can move
285
285
  commit, so selective re-running would save ~10 minutes a release. The price is a cache that has to
286
286
  model each spec's full dependency closure correctly, and getting that wrong produces a stale PASS
287
287
  for a test that has since gone vacuous — exactly what the gate is there to prevent. Bad trade
288
- at 112 mutations — past the threshold this paragraph has carried since the gate was written,
288
+ at 122 mutations — past the threshold this paragraph has carried since the gate was written,
289
289
  now reached exactly. The full run is approaching half an hour. **The re-evaluation is due now**: the
290
290
  next person to add a mutation should decide whether selective re-running has become worth its
291
291
  failure mode (a stale PASS for a test that has since gone vacuous), not bump this number again.
@@ -327,9 +327,9 @@ exactly the environment where the answer matters.
327
327
 
328
328
  ### The cost is vitest's cold start, not the tests
329
329
 
330
- Worth knowing before optimising the wrong thing: the specs behind all 46 e2e mutations add up to
330
+ Worth knowing before optimising the wrong thing: the specs behind all 49 e2e mutations add up to
331
331
  **~40 seconds**. The step takes ~740s. The remaining ~700s is paying vitest's startup — process
332
- spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 112 times.
332
+ spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 122 times.
333
333
  That work is largely single-threaded I/O and barely scales with cores: the full registry measures
334
334
  **744s on a 12-core laptop and 777s on a 4-vCPU CI runner**.
335
335
 
@@ -645,6 +645,18 @@ relative path. The starter does neither: it subclasses the shipped `Core*` class
645
645
  **subclass** notices, a `devDependency` used at runtime by framework code, and behaviour that
646
646
  differs under the starter's configuration.
647
647
 
648
+ **The copy is updated the way a consumer updates, not merely re-pointed (11.41.4).** Before the
649
+ checks, `alignConsumerPins()` applies the starter's own `pnpm run update` rule
650
+ (`extras/sync-packages.mjs`) to the tarball's manifest: a pin the starter already declares in the
651
+ SAME section is raised to the framework's version when that is newer — never lowered, added or moved
652
+ across sections. Without it the gate tested a state no documented path produces, and refused 11.41.4
653
+ although the tarball was sound: the starter still pinned `@nestjs/common` 11.2.1 against the
654
+ tarball's 11.2.6, `@nestjs/schedule` was installed twice and `CronJobs extends CoreCronJobs` stopped
655
+ type-checking. Every release that raises a shared exact pin would hit the same wall, because the
656
+ starter is bumped only AFTER the npm publish. The gate prints each raised pin — those are the pins
657
+ every consumer has to raise too, so the migration guide must list them. Pinned by
658
+ `tests/unit/check-consumer-align.spec.ts` (mutation `consumer-gate-skips-pin-alignment`).
659
+
648
660
  Wired into `.github/workflows/publish.yml` before the publish step, with `--fast`. Deliberately not
649
661
  on every push (~5 minutes), and deliberately not the starter's full `check` in CI: that also runs
650
662
  the starter's own `pnpm audit` / `format:check` / `lint`, none of which say anything about our
package/CLAUDE.md CHANGED
@@ -163,7 +163,8 @@ pnpm run reinit # Clean reinstall + tests + build
163
163
  **Key Components:**
164
164
  - `CoreModule` - Dynamic module with GraphQL (optional, disable via `graphQl: false`), MongoDB, security
165
165
  - `src/core/common/` - Decorators, helpers, interceptors, services
166
- - `src/core/modules/` - Auth, BetterAuth, ErrorCode, File, HealthCheck, Hub, Migrate, Permissions, SystemSetup, Tus, User
166
+ - `src/core/modules/` - ApiToken, Auth, BetterAuth, ErrorCode, File, HealthCheck, Hub, Migrate, Permissions, SystemSetup, Tus, User
167
+ - **ApiToken** - Opt-in (`apiTokens`) USER and TENANT tokens + signed assertions. Denied on every route without `@ApiTokenScopes()`; all three guards share `enforceApiTokenRoute()`. See `src/core/modules/api-token/README.md`.
167
168
  - **Hub** - Build-free ADMIN-gated operator cockpit at `/hub` (config-gated per environment; 16 panels, runtime collectors, mailbox, admin actions). See `src/core/modules/hub/README.md`.
168
169
  - **Permissions** - ADMIN-gated security-map report (routes + roles + `@Restricted` fields); also surfaced in the Hub's "Routes / Permissions" panel.
169
170
  - **Optional central infrastructure** (11.33.0+) - `CoreRedisService` (`redis` config) and `CoreS3Service` (`s3` config) turn process-local state into shared state for multi-replica deployments: rate-limit counters, cron deduplication, GraphQL subscriptions, tenant-cache invalidation, Hub collectors, file storage (`file.storage: 's3'`; the driver is otherwise derived — S3 → GridFS → filesystem — and an unavailable one fails the boot rather than falling back) and TUS staging. Both are inert without their config, and their client libraries are **optional peer dependencies** (`ioredis`, `bullmq`, `@aws-sdk/client-s3`, `@aws-sdk/s3-request-presigner`, `@tus/s3-store`) — a project that uses neither installs nothing extra. When adding a distributed feature, always keep the non-configured fallback path.
package/FRAMEWORK-API.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @lenne.tech/nest-server — Framework API Reference
2
2
 
3
- > Auto-generated from source code as of 2026-09-15 (v11.41.2)
3
+ > Auto-generated from source code as of 2026-09-26 (v11.41.4)
4
4
  > File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
5
5
 
6
6
  ## CoreModule.forRoot()
@@ -14,6 +14,7 @@
14
14
 
15
15
  - `ai?`: `boolean | IAi | undefined` — Configuration for the AI assistant module.
16
16
  - `appUrl?`: `string | undefined` — Base URL of the frontend/app application.
17
+ - `apiTokens?`: `boolean | IApiTokens | undefined` (default: `undefined (disabled)`) — API tokens: bearer credentials for machine clients and embedded pages that cannot carry a session
17
18
  - `auth?`: `IAuth | undefined` — Authentication system configuration
18
19
  - `automaticObjectIdFiltering?`: `boolean | undefined` — Automatically detect ObjectIds in string values in FilterQueries
19
20
  - `baseUrl?`: `string | undefined` — Base URL of the API server.
@@ -208,6 +209,7 @@ When `passkey` is enabled, `trustedOrigins` is required (compile-time enforcemen
208
209
 
209
210
  ### ICoreModuleOverrides
210
211
 
212
+ - `apiToken?`: `{ model?: Type<any>; service?: Type<any>; } | undefined` — Override API token collaborators with project-specific subclasses (`apiTokens` config).
211
213
  - `ai?`: `{ budgetService?: Type<any>; connectionResolver?: Type<any>; connectionServic...` — Override AI module collaborators with project-specific subclasses.
212
214
  - `betterAuth?`: `{ controller?: Type<any>; resolver?: Type<any>; } | undefined` — Override BetterAuth controller and/or resolver.
213
215
  - `errorCode?`: `{ controller?: Type<any>; service?: Type<any>; } | undefined` — Override ErrorCode controller and/or service.
@@ -347,6 +349,7 @@ Generic: `CrudService<Model, CreateInput, UpdateInput>`
347
349
  | Module | Docs | Path |
348
350
  |--------|------|------|
349
351
  | `ai` | README, CHECKLIST | `src/core/modules/ai/` |
352
+ | `api-token` | README, CHECKLIST | `src/core/modules/api-token/` |
350
353
  | `auth` | README | `src/core/modules/auth/` |
351
354
  | `better-auth` | README, CHECKLIST | `src/core/modules/better-auth/` |
352
355
  | `error-code` | CHECKLIST | `src/core/modules/error-code/` |
@@ -1 +1 @@
1
- {"version":3,"file":"graceful-shutdown.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/graceful-shutdown.helper.ts"],"names":[],"mappings":";;AAoDA,0DA+DC;AAnHD,2CAA0D;AAE1D,+DAA2D;AAG3D,MAAM,gBAAgB,GAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAOjE,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAerC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAyB1C,SAAgB,uBAAuB,CAA6B,GAAM;IACxE,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,8BAAa,CAAC,kBAAkB,CAAqB,iBAAiB,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,IAAI,CAAC,OAAO,EAAE,CAAC;QAEb,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,sBAAsB,OAAO,yBAAyB,qBAAqB,sCAAsC;YAC/G,mFAAmF,CACtF,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,GAAG,0BAA0B,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CACT,sBAAsB,OAAO,iFAAiF;YAC5G,uFAAuF;YACvF,6GAA6G;YAC7G,gFAAgF,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAIlE,IAAI,YAAY,GAAG,KAAK,CAAC;IAIzB,IAAI,KAAiC,CAAC;IAEtC,MAAM,MAAM,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAC9C,IAAI,YAAY,EAAE,CAAC;YAEjB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,uCAAuC,CAAC,CAAC;YAC9D,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,mCAAmC,gBAAgB,wCAAwC,CAAC,CAAC;QAEjH,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,GAAG;iBACA,KAAK,EAAE;iBACP,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;iBAC3C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACpH,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAErB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"graceful-shutdown.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/graceful-shutdown.helper.ts"],"names":[],"mappings":";;AA6DA,0DA+DC;AA5HD,2CAA0D;AAE1D,+DAA2D;AAG3D,MAAM,gBAAgB,GAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAOjE,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAerC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAkC1C,SAAgB,uBAAuB,CAA6B,GAAM;IACxE,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,8BAAa,CAAC,kBAAkB,CAAqB,iBAAiB,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,IAAI,CAAC,OAAO,EAAE,CAAC;QAEb,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,sBAAsB,OAAO,yBAAyB,qBAAqB,sCAAsC;YAC/G,mFAAmF,CACtF,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,GAAG,0BAA0B,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CACT,sBAAsB,OAAO,iFAAiF;YAC5G,uFAAuF;YACvF,6GAA6G;YAC7G,gFAAgF,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAIlE,IAAI,YAAY,GAAG,KAAK,CAAC;IAIzB,IAAI,KAAiC,CAAC;IAEtC,MAAM,MAAM,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAC9C,IAAI,YAAY,EAAE,CAAC;YAEjB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,uCAAuC,CAAC,CAAC;YAC9D,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;YACD,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,mCAAmC,gBAAgB,wCAAwC,CAAC,CAAC;QAEjH,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,GAAG;iBACA,KAAK,EAAE;iBACP,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;iBAC3C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACpH,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAErB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -60,6 +60,8 @@ function redactSensitiveText(text) {
60
60
  return (text
61
61
  .replace(/eyJ[\w-]{6,}\.[\w-]{6,}\.[\w-]{4,}/g, (match) => maskToken(match))
62
62
  .replace(/(\/(?:request-password-reset|reset-password|forget-password|forgot-password|set-password|change-email|magic-?link|verify|reset|confirm|activate|invite)\/)([A-Za-z0-9._~-]{16,})/gi, (_m, prefix, token) => `${prefix}${maskToken(token)}`)
63
+ .replace(/\b[a-z][a-z0-9]{1,15}_[0-9a-f]{24}_[0-9a-f]{64}\b/g, (match) => maskToken(match))
64
+ .replace(/\b[a-z][a-z0-9]{1,15}s_[A-Za-z0-9_-]{16,}\.[A-Za-z0-9_-]{43}(?![A-Za-z0-9_-])/g, (match) => maskToken(match))
63
65
  .replace(/(authorization["']?\s*[:=]\s*["']?)(?:Bearer\s+)?([^\s"',;]+)/gi, (_m, prefix, value) => `${prefix}${maskToken(value)}`)
64
66
  .replace(/((?:^|[\s,;])cookie["']?\s*[:=]\s*)([^\n]+)/gi, (_m, prefix, value) => `${prefix}${maskCookieHeader(value)}`)
65
67
  .replace(/((?:password|passwd|pwd|token|secret|api[-_]?key|client[-_]?secret|refresh[-_]?token|access[-_]?token|private[-_]?key)["']?\s*[:=]\s*["']?)([^\s"',;&}]+)/gi, (_m, prefix, value) => `${prefix}${maskSensitive(value)}`));
@@ -1 +1 @@
1
- {"version":3,"file":"logging.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/logging.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/logging.helper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"process-diagnostics.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/process-diagnostics.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-diagnostics.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/process-diagnostics.helper.ts"],"names":[],"mappings":";;AA4NA,8DAyEC;AA0BD,8DAKC;AAtQD,qCAAoC;AAEpC,qDAAuD;AASvD,MAAM,oBAAoB,GAAG,MAAM,CAAC;AA6BpC,SAAS,gBAAgB,CAAC,OAAe;IAGvC,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7G,OAAO,IAAA,oCAAmB,EAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAoBD,MAAM,wBAAwB,GAAsB;IAClD,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,IAAA,mBAAS,EAAC,CAAC,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;QAMT,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACF,CAAC;AAwCF,MAAM,mBAAmB,GAA8B,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAGlG,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAU,CAAC;AAQ/C,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAG3B,OAAO,KAAK,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAmBD,SAAgB,yBAAyB,CAAC,UAAqC,EAAE;IAC/E,MAAM,MAAM,GAAwB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;IAC9D,MAAM,MAAM,GAAsB,OAAO,CAAC,MAAM,IAAI,wBAAwB,CAAC;IAC7E,MAAM,IAAI,GAA2B,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,MAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACrF,MAAM,oBAAoB,GAAmB,OAAO,CAAC,oBAAoB,IAAI,KAAK,CAAC;IACnF,MAAM,iBAAiB,GAAW,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC;IAKtE,MAAM,WAAW,GAAG,CAAC,OAAe,EAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,CAAC,OAAe,EAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3G,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE7B,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,EAAE;QAClD,IAAI,oBAAoB,KAAK,MAAM,EAAE,CAAC;YACpC,WAAW,CAAC,wBAAwB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,OAAO;QACT,CAAC;QACD,cAAc,CAAC,wBAAwB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAc,EAAE,EAAE;QAChD,WAAW,CAAC,uBAAuB,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAa,EAAE,EAAE;QAGlC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,WAAW,CAAC,oCAAoC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,CAAC,QAAwB,EAAQ,EAAE;YAIjD,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,WAAW,CACT,qBAAqB,QAAQ,oDAC3B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sCACf,EAAE,CACH,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAG1B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC/B,WAAW,CAAC,4CAA4C,iBAAiB,mBAAmB,CAAC,CAAC;oBAC9F,IAAI,CAAC,CAAC,CAAC,CAAC;gBACV,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBAEtB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AA0BD,SAAgB,yBAAyB,CAAC,KAAc,EAAE,UAAsC,EAAE;IAChG,MAAM,MAAM,GAAsB,OAAO,CAAC,MAAM,IAAI,wBAAwB,CAAC;IAC7E,MAAM,IAAI,GAA2B,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,8CAA8C,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACrG,IAAI,CAAC,CAAC,CAAC,CAAC;AACV,CAAC"}
@@ -157,6 +157,21 @@ export interface IMultiTenancy {
157
157
  additionalMembershipRoles?: string[];
158
158
  cacheTtlMs?: number;
159
159
  }
160
+ export interface IApiTokens {
161
+ enabled?: boolean;
162
+ encryptionKey?: string;
163
+ manageRole?: string;
164
+ maxAssertionLifetimeSeconds?: number;
165
+ prefix?: string;
166
+ rateLimit?: boolean | {
167
+ enabled?: boolean;
168
+ max?: number;
169
+ windowSeconds?: number;
170
+ };
171
+ scopes?: string[];
172
+ tenantTokens?: boolean;
173
+ userTokens?: boolean;
174
+ }
160
175
  export interface ICookiesConfig {
161
176
  enabled?: boolean;
162
177
  exposeTokenInBody?: boolean;
@@ -242,6 +257,7 @@ export interface IAi {
242
257
  export interface IServerOptions {
243
258
  ai?: boolean | IAi;
244
259
  appUrl?: string;
260
+ apiTokens?: boolean | IApiTokens;
245
261
  auth?: IAuth;
246
262
  automaticObjectIdFiltering?: boolean;
247
263
  baseUrl?: string;
@@ -487,6 +503,10 @@ interface IBetterAuthWithPasskey extends IBetterAuthBase {
487
503
  trustedOrigins: string[];
488
504
  }
489
505
  export interface ICoreModuleOverrides {
506
+ apiToken?: {
507
+ model?: Type<any>;
508
+ service?: Type<any>;
509
+ };
490
510
  ai?: {
491
511
  budgetService?: Type<any>;
492
512
  connectionResolver?: Type<any>;
@@ -1,7 +1,7 @@
1
1
  export declare function mountAiMcpOAuth(app: {
2
2
  get: (token: any) => any;
3
3
  use: (...args: any[]) => any;
4
- }, options: {
5
- baseUrl: string;
4
+ }, options?: {
5
+ baseUrl?: string;
6
6
  mcpPath?: string;
7
7
  }): Promise<void>;
@@ -1,16 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mountAiMcpOAuth = mountAiMcpOAuth;
4
+ const common_1 = require("@nestjs/common");
5
+ const cookies_helper_1 = require("../../../common/helpers/cookies.helper");
6
+ const config_service_1 = require("../../../common/services/config.service");
4
7
  const core_ai_mcp_oauth_service_1 = require("../services/core-ai-mcp-oauth.service");
5
- async function mountAiMcpOAuth(app, options) {
8
+ async function mountAiMcpOAuth(app, options = {}) {
9
+ const { baseUrl, source } = resolveMcpOAuthBaseUrl(options.baseUrl);
10
+ const issuerUrl = parseAbsoluteUrl(baseUrl, source);
6
11
  const { mcpAuthRouter } = await Promise.resolve().then(() => require('@modelcontextprotocol/sdk/server/auth/router.js'));
7
12
  const oauthService = app.get(core_ai_mcp_oauth_service_1.CoreAiMcpOAuthService);
8
13
  const mcpPath = options.mcpPath ?? '/ai/mcp';
9
- const router = mcpAuthRouter({
10
- issuerUrl: new URL(options.baseUrl),
11
- provider: oauthService.buildOAuthProvider(),
12
- resourceServerUrl: new URL(`${options.baseUrl.replace(/\/$/, '')}${mcpPath}`),
13
- });
14
+ let router;
15
+ try {
16
+ router = mcpAuthRouter({
17
+ issuerUrl,
18
+ provider: oauthService.buildOAuthProvider(),
19
+ resourceServerUrl: new URL(`${baseUrl.replace(/\/$/, '')}${mcpPath}`),
20
+ });
21
+ }
22
+ catch (error) {
23
+ const reason = error.message;
24
+ throw new Error(`mountAiMcpOAuth: OAuth issuer "${baseUrl}" (from ${source}) rejected: ${reason}`, {
25
+ cause: error,
26
+ });
27
+ }
14
28
  app.use(router);
29
+ new common_1.Logger('mountAiMcpOAuth').log(`MCP OAuth issuer: ${issuerUrl.href} (from ${source})`);
30
+ }
31
+ function resolveMcpOAuthBaseUrl(explicit) {
32
+ const given = explicit?.trim();
33
+ if (given) {
34
+ return { baseUrl: given, source: 'options.baseUrl' };
35
+ }
36
+ const config = config_service_1.ConfigService.configFastButReadOnly;
37
+ const resolved = (0, cookies_helper_1.resolveServerUrls)({ baseUrl: config?.baseUrl, env: config?.env });
38
+ if (resolved.baseUrl) {
39
+ return {
40
+ baseUrl: resolved.baseUrl,
41
+ source: resolved.baseUrlSource === 'localhost-default' ? `localhost default (env: ${config?.env})` : 'config.baseUrl',
42
+ };
43
+ }
44
+ throw new Error(`mountAiMcpOAuth: no public server URL for the OAuth issuer (env: ${config?.env ?? 'unset'}). ` +
45
+ 'Set `baseUrl` in the server config (NSC__BASE_URL) or pass `options.baseUrl`. ' +
46
+ 'A guessed localhost URL would send MCP clients to their own machine.');
47
+ }
48
+ function parseAbsoluteUrl(value, source) {
49
+ try {
50
+ return new URL(value);
51
+ }
52
+ catch {
53
+ throw new Error(`mountAiMcpOAuth: "${value}" (from ${source}) is not an absolute URL`);
54
+ }
15
55
  }
16
56
  //# sourceMappingURL=ai-mcp-oauth.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-mcp-oauth.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts"],"names":[],"mappings":";;AAmBA,0CAeC;AAlCD,qFAA8E;AAmBvE,KAAK,UAAU,eAAe,CACnC,GAA+D,EAC/D,OAA8C;IAE9C,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,iDAAiD,EAAC,CAAC;IAC1F,MAAM,YAAY,GAA0B,GAAG,CAAC,GAAG,CAAC,iDAAqB,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC;IAE7C,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,SAAS,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QACnC,QAAQ,EAAE,YAAY,CAAC,kBAAkB,EAAS;QAClD,iBAAiB,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;KAC9E,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"ai-mcp-oauth.helper.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/helpers/ai-mcp-oauth.helper.ts"],"names":[],"mappings":";;AAqCA,0CA6BC;AAlED,2CAAwC;AAExC,2EAA2E;AAC3E,4EAAwE;AACxE,qFAA8E;AAiCvE,KAAK,UAAU,eAAe,CACnC,GAA+D,EAC/D,UAAkD,EAAE;IAEpD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,iDAAiD,EAAC,CAAC;IAC1F,MAAM,YAAY,GAA0B,GAAG,CAAC,GAAG,CAAC,iDAAqB,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC;IAE7C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,CAAC;YACrB,SAAS;YACT,QAAQ,EAAE,YAAY,CAAC,kBAAkB,EAAS;YAClD,iBAAiB,EAAE,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAIf,MAAM,MAAM,GAAI,KAAe,CAAC,OAAO,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,WAAW,MAAM,eAAe,MAAM,EAAE,EAAE;YACjG,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChB,IAAI,eAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,IAAI,UAAU,MAAM,GAAG,CAAC,CAAC;AAC5F,CAAC;AAMD,SAAS,sBAAsB,CAAC,QAA4B;IAC1D,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,8BAAa,CAAC,qBAAqB,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,kCAAiB,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EACJ,QAAQ,CAAC,aAAa,KAAK,mBAAmB,CAAC,CAAC,CAAC,2BAA2B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB;SAChH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,oEAAoE,MAAM,EAAE,GAAG,IAAI,OAAO,KAAK;QAC7F,gFAAgF;QAChF,sEAAsE,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,MAAc;IACrD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,WAAW,MAAM,0BAA0B,CAAC,CAAC;IACzF,CAAC;AACH,CAAC"}
@@ -20,6 +20,7 @@ const node_crypto_1 = require("node:crypto");
20
20
  const mongoose_2 = require("mongoose");
21
21
  const cookies_helper_1 = require("../../../common/helpers/cookies.helper");
22
22
  const config_service_1 = require("../../../common/services/config.service");
23
+ const core_api_token_helpers_1 = require("../../api-token/core-api-token.helpers");
23
24
  let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthService {
24
25
  connection;
25
26
  logger = new common_1.Logger(CoreAiMcpOAuthService_1.name);
@@ -176,7 +177,12 @@ let CoreAiMcpOAuthService = CoreAiMcpOAuthService_1 = class CoreAiMcpOAuthServic
176
177
  }
177
178
  buildOAuthProvider(accessTtlSeconds = 3600) {
178
179
  return {
179
- authorize: (client, params, res) => this.authorizeConsent(client, params, res),
180
+ authorize: async (client, params, res) => {
181
+ if ((0, core_api_token_helpers_1.getApiTokenContext)(res?.req?.user)) {
182
+ throw new Error('access_denied: an API token cannot authorize an OAuth client');
183
+ }
184
+ return this.authorizeConsent(client, params, res);
185
+ },
180
186
  challengeForAuthorizationCode: async (_client, authorizationCode) => {
181
187
  const stored = await this.getAuthorizationCode(authorizationCode);
182
188
  return stored?.codeChallenge ?? '';
@@ -1 +1 @@
1
- {"version":3,"file":"core-ai-mcp-oauth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/services/core-ai-mcp-oauth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-ai-mcp-oauth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/ai/services/core-ai-mcp-oauth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAkE;AAClE,+CAAoD;AACpD,6CAAmF;AACnF,uCAAsC;AAEtC,2EAA6E;AAC7E,4EAAwE;AACxE,mFAA4E;AA6CrE,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAWmB;IAVhC,MAAM,GAAG,IAAI,eAAM,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IAGhD,iBAAiB,GAAG,mBAAmB,CAAC;IACxC,eAAe,GAAG,iBAAiB,CAAC;IACpC,iBAAiB,GAAG,yBAAyB,CAAC;IAEzD,cAAc,GAAG,KAAK,CAAC;IACvB,YAAY,GAAG,KAAK,CAAC;IAE7B,YAAmD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAO7E,YAAY;QACV,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAGD,oBAAoB;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAA,oCAAmB,EAAC,8BAAa,CAAC,GAAG,CAAS,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1G,MAAM,IAAI,KAAK,CACb,8FAA8F;gBAC5F,2FAA2F;gBAC3F,uDAAuD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAGS,YAAY;QACpB,MAAM,GAAG,GAAG,8BAAa,CAAC,GAAG,CAAsB,QAAQ,CAAC,CAAC;QAC7D,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACxD,CAAC;IAGS,aAAa;QACrB,OAAO,CACL,8BAAa,CAAC,GAAG,CAAS,oBAAoB,CAAC;YAC/C,8BAAa,CAAC,GAAG,CAAS,qBAAqB,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B;YACtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CACnC,CAAC;IACJ,CAAC;IASD,eAAe,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAU,GAAG,IAAI;QACjE,MAAM,OAAO,GAA4B;YACvC,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,YAAY;SACnB,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC9E,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAClD,CAAC;IAKD,iBAAiB,CAAC,KAAa;QAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;YAC7G,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBAClF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAKD,UAAU,CAAC,QAAgB,EAAE,SAAiB,EAAE,MAAM,GAAG,MAAM;QAC7D,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAEtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;IAKD,UAAU,CAAC,KAAK,GAAG,EAAE;QACnB,OAAO,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IASD,KAAK,CAAC,cAAc,CAAC,MAAwB;QAC3C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,EAAE,EAAE;aACZ,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;aAClC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAWD,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,wBAAwB,EAAE,GAAG,CAAC,wBAAwB;YACtD,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,0BAA0B,EAAE,GAAG,CAAC,0BAA0B;SAC3D,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,qBAAqB,CACzB,IAAY,EACZ,IAAiE;QAEjE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;YACzD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI;YACJ,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,oBAAoB,CACxB,IAAY;QAEZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvG,CAAC;IAKD,KAAK,CAAC,wBAAwB,CAC5B,IAAY;QAEZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,MAAM,KAAK,GAAI,GAAW,EAAE,KAAK,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IAChG,CAAC;IAKD,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACtD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjH,OAAO,KAAK,CAAC;IACf,CAAC;IAWD,KAAK,CAAC,kBAAkB,CACtB,KAAa,EACb,QAAgB;QAEhB,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrG,MAAM,KAAK,GAAI,GAAW,EAAE,KAAK,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5E,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACtE,CAAC;IAMD,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,2CAAa,SAAS,EAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAa,EAAE,CAAC;YAChG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE;iBACxB,UAAU,CAAC,OAAO,CAAC;iBACnB,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAUD,kBAAkB,CAAC,gBAAgB,GAAG,IAAI;QACxC,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAW,EAAE,MAAW,EAAE,GAAQ,EAAE,EAAE;gBAOtD,IAAI,IAAA,2CAAkB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;gBAClF,CAAC;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,6BAA6B,EAAE,KAAK,EAAE,OAAY,EAAE,iBAAyB,EAAE,EAAE;gBAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;gBAClE,OAAO,MAAM,EAAE,aAAa,IAAI,EAAE,CAAC;YACrC,CAAC;YACD,YAAY,EAAE;gBACZ,SAAS,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACzD,cAAc,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;aAC1E;YACD,yBAAyB,EAAE,KAAK,EAAE,MAAW,EAAE,iBAAyB,EAAE,EAAE;gBAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;gBACtE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnC,CAAC;gBACD,OAAO;oBACL,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;oBACpF,UAAU,EAAE,gBAAgB;oBAC5B,aAAa,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;oBAC3E,UAAU,EAAE,QAAQ;iBACrB,CAAC;YACJ,CAAC;YACD,oBAAoB,EAAE,KAAK,EAAE,MAAW,EAAE,YAAoB,EAAE,EAAE;gBAMhE,MAAM,cAAc,GAAG,MAAM,EAAE,SAAS,CAAC;gBACzC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;gBAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnC,CAAC;gBACD,OAAO;oBACL,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC;oBACtF,UAAU,EAAE,gBAAgB;oBAC5B,aAAa,EAAE,OAAO,CAAC,QAAQ;oBAC/B,UAAU,EAAE,QAAQ;iBACrB,CAAC;YACJ,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnC,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YACtF,CAAC;SACF,CAAC;IACJ,CAAC;IAOS,KAAK,CAAC,gBAAgB,CAAC,OAAY,EAAE,OAAY,EAAE,IAAS;QACpE,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;IACJ,CAAC;IASS,IAAI,CAAC,UAAkB;QAC/B,OAAO,IAAA,wBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACvF,CAAC;IAKS,SAAS,CAAC,CAAS,EAAE,CAAS;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAA,6BAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAMS,SAAS;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,6FAA6F;oBAC3F,iGAAiG,CACpG,CAAC;gBACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,OAAO,uDAAuD,CAAC;QACjE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAKS,EAAE;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;IAKS,KAAK,CAAC,aAAa;QAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5G,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5F,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAwC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;CACF,CAAA;AApZY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAYE,WAAA,IAAA,2BAAgB,GAAE,CAAA;qCAAgC,qBAAU;GAX9D,qBAAqB,CAoZjC"}
@@ -0,0 +1,6 @@
1
+ export declare const API_TOKEN_MODEL_TOKEN = "ApiToken";
2
+ export declare const API_TOKEN_SCOPES_KEY = "apiTokenScopes";
3
+ export declare enum ApiTokenKind {
4
+ TENANT = "tenant",
5
+ USER = "user"
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiTokenKind = exports.API_TOKEN_SCOPES_KEY = exports.API_TOKEN_MODEL_TOKEN = void 0;
4
+ exports.API_TOKEN_MODEL_TOKEN = 'ApiToken';
5
+ exports.API_TOKEN_SCOPES_KEY = 'apiTokenScopes';
6
+ var ApiTokenKind;
7
+ (function (ApiTokenKind) {
8
+ ApiTokenKind["TENANT"] = "tenant";
9
+ ApiTokenKind["USER"] = "user";
10
+ })(ApiTokenKind || (exports.ApiTokenKind = ApiTokenKind = {}));
11
+ //# sourceMappingURL=core-api-token.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-api-token.constants.js","sourceRoot":"","sources":["../../../../src/core/modules/api-token/core-api-token.constants.ts"],"names":[],"mappings":";;;AAOa,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAKnC,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AAWrD,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;AACf,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
@@ -0,0 +1 @@
1
+ export declare const ApiTokenScopes: (scope: string, ...moreScopes: string[]) => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiTokenScopes = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const core_api_token_constants_1 = require("./core-api-token.constants");
6
+ const ApiTokenScopes = (scope, ...moreScopes) => (0, common_1.SetMetadata)(core_api_token_constants_1.API_TOKEN_SCOPES_KEY, [scope, ...moreScopes]);
7
+ exports.ApiTokenScopes = ApiTokenScopes;
8
+ //# sourceMappingURL=core-api-token.decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-api-token.decorators.js","sourceRoot":"","sources":["../../../../src/core/modules/api-token/core-api-token.decorators.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAE7C,yEAAkE;AAyB3D,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,GAAG,UAAoB,EAAE,EAAE,CACvE,IAAA,oBAAW,EAAC,+CAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;AAD/C,QAAA,cAAc,kBACiC"}
@@ -0,0 +1,127 @@
1
+ import type { IApiTokens, IMultiTenancy } from '../../common/interfaces/server-options.interface';
2
+ import { ApiTokenKind } from './core-api-token.constants';
3
+ export declare const API_TOKEN_DEFAULTS: {
4
+ readonly maxAssertionLifetimeSeconds: 900;
5
+ readonly prefix: "ltt";
6
+ readonly rateLimit: {
7
+ readonly max: 600;
8
+ readonly windowSeconds: 60;
9
+ };
10
+ };
11
+ export declare const API_TOKEN_CLOCK_TOLERANCE_SECONDS = 30;
12
+ export declare const API_TOKEN_MAX_ASSERTION_LENGTH = 8192;
13
+ export declare const API_TOKEN_HEADER = "x-api-key";
14
+ export interface IResolvedApiTokenConfig {
15
+ enabled: boolean;
16
+ encryptionKey?: string;
17
+ manageRole?: string;
18
+ maxAssertionLifetimeSeconds: number;
19
+ multiTenancy: boolean;
20
+ prefix: string;
21
+ rateLimit: false | {
22
+ max: number;
23
+ windowSeconds: number;
24
+ };
25
+ scopes: string[];
26
+ tenantTokens: boolean;
27
+ userTokens: boolean;
28
+ }
29
+ export declare function resolveApiTokenConfig(config: null | undefined | {
30
+ apiTokens?: boolean | IApiTokens;
31
+ multiTenancy?: IMultiTenancy;
32
+ }): IResolvedApiTokenConfig;
33
+ export declare function getApiTokenConfig(): IResolvedApiTokenConfig;
34
+ export declare function getApiTokenTenantMemberRole(): string;
35
+ export declare function getApiTokenManageRole(config?: IResolvedApiTokenConfig): string;
36
+ export declare function resolveApiTokenEncryptionKey(config?: IResolvedApiTokenConfig): string | undefined;
37
+ export declare function assertApiTokenConfigIsUsable(): void;
38
+ export interface IApiTokenCredential {
39
+ kind: 'assertion' | 'token';
40
+ value: string;
41
+ }
42
+ export declare function readApiTokenCredential(authorization: string | string[] | undefined, prefix: string): IApiTokenCredential | undefined;
43
+ export declare function readApiTokenCredentialFromHeaders(headers: Record<string, any> | undefined, prefix: string): 'conflict' | IApiTokenCredential | undefined;
44
+ export declare function hasApiTokenCredential(request: {
45
+ headers?: Record<string, any>;
46
+ } | undefined): boolean;
47
+ export declare function generateApiToken(prefix: string): {
48
+ publicId: string;
49
+ secret: string;
50
+ token: string;
51
+ };
52
+ export declare function parseApiToken(value: string, prefix: string): undefined | {
53
+ publicId: string;
54
+ secret: string;
55
+ };
56
+ export declare function hashApiTokenSecret(secret: string): string;
57
+ export declare function safeEqualHex(a: string, b: string): boolean;
58
+ export declare function generateApiTokenSigningKey(): string;
59
+ export interface IApiTokenAssertionPayload {
60
+ claims?: Record<string, unknown>;
61
+ exp: number;
62
+ nonce?: string;
63
+ sub?: string;
64
+ tid: string;
65
+ }
66
+ export interface ISignApiTokenAssertionOptions {
67
+ claims?: Record<string, unknown>;
68
+ expiresAt?: Date | number;
69
+ expiresInSeconds?: number;
70
+ nonce?: string;
71
+ prefix?: string;
72
+ publicId: string;
73
+ signingKey: string;
74
+ subject?: string;
75
+ }
76
+ export declare function signApiTokenAssertion(options: ISignApiTokenAssertionOptions): string;
77
+ export declare function decodeApiTokenAssertion(value: string, prefix: string): undefined | {
78
+ payload: IApiTokenAssertionPayload;
79
+ payloadSegment: string;
80
+ signature: string;
81
+ };
82
+ export declare function verifyApiTokenAssertionSignature(payloadSegment: string, signature: string, signingKey: string): boolean;
83
+ export declare function checkApiTokenAssertionTiming(payload: Pick<IApiTokenAssertionPayload, 'exp'> & Partial<IApiTokenAssertionPayload>, maxLifetimeSeconds: number, now?: number): 'expired' | 'ok' | 'too-long';
84
+ export interface IApiTokenContext {
85
+ assertion?: {
86
+ claims?: Record<string, unknown>;
87
+ expiresAt: Date;
88
+ nonce?: string;
89
+ subject?: string;
90
+ };
91
+ kind: ApiTokenKind;
92
+ maxTenantRole?: string;
93
+ name: string;
94
+ publicId: string;
95
+ scopes: string[];
96
+ tenantId?: string;
97
+ tokenId: string;
98
+ userId?: string;
99
+ }
100
+ export interface ITenantApiTokenPrincipal {
101
+ hasRole: (roles?: string | string[]) => boolean;
102
+ id: string;
103
+ name: string;
104
+ roles: string[];
105
+ scopes: string[];
106
+ tenantId: string;
107
+ }
108
+ export declare function getApiTokenContext(user: unknown): IApiTokenContext | undefined;
109
+ export declare function attachApiTokenContext<T extends object>(user: T, context: IApiTokenContext): T;
110
+ export declare function createTenantApiTokenPrincipal(context: Omit<IApiTokenContext, 'kind' | 'maxTenantRole' | 'userId'> & {
111
+ tenantId: string;
112
+ }): ITenantApiTokenPrincipal;
113
+ export declare function isTenantApiTokenPrincipal(user: unknown): user is ITenantApiTokenPrincipal;
114
+ export declare function assertApiTokenScopes(context: IApiTokenContext, handler: any, controllerClass: any): void;
115
+ export declare function assertTenantApiTokenRouteAccess(options: {
116
+ context: IApiTokenContext;
117
+ controllerClass: any;
118
+ handler: any;
119
+ request: any;
120
+ }): void;
121
+ export declare function enforceApiTokenRoute(options: {
122
+ controllerClass: any;
123
+ handler: any;
124
+ request: any;
125
+ }): ApiTokenKind | undefined;
126
+ export declare function getApiTokenTenantRestriction(user: unknown): string | undefined;
127
+ export declare function capApiTokenTenantRole(user: unknown, membershipRole: string): null | string;