@lenne.tech/nest-server 11.41.8 → 11.41.9

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.
@@ -329,7 +329,7 @@ This pattern is currently applied to:
329
329
  | CORS | `cors` | Boolean Shorthand | `enabled: true`, `allowAll: false`, `deriveAppUrl: true`. Origins come from `appUrl`/`baseUrl`, resolved by the shared `resolveServerUrls()` helper (`cookies.helper.ts`) that ALL three CORS layers use (GraphQL, REST, BetterAuth `trustedOrigins`) — they can no longer drift. `appUrl` resolution: explicit → derived from a **host-split** localhost `baseUrl` (its `api.` label strips to a sibling host: `https://api.crm.localhost` → `https://crm.localhost`, as served by `lt dev up`; the port is preserved) → localhost default (`http://localhost:3001`, only for `env: local`/`ci`/`e2e` with a **port-split** localhost `baseUrl` — one host, API `:3000`, app `:3001`; `https://api.localhost` strips to the bare `localhost` the API already answers on and is therefore a port split, not a host split) → derived from `baseUrl` by stripping a leading `api.` label (`https://api.example.com` → `https://example.com`). **Security:** the derived origin receives credentialed CORS; set `deriveAppUrl: false` when the apex domain is not trusted, then list the frontend origin via `appUrl`/`allowedOrigins` (a host-split localhost `baseUrl` then falls back to the localhost default). The derivation never yields a bare TLD (`https://api.dev` unchanged) and never emits the opaque `null` origin (non-http(s) `baseUrl` passes through verbatim). `allowAll: true` mirrors the request origin for REST/GraphQL, but BetterAuth's `trustedOrigins` still resolve to `[appUrl]` (+ passkey origins) — an origin check has no "allow everything" mode, so a separately hosted frontend must appear in `appUrl`/`allowedOrigins` (or set `betterAuth.trustedOrigins` explicitly). `enabled: false` disables CORS on all layers including BetterAuth (`trustedOrigins: []`, which still trusts BetterAuth's own `baseURL`). Explicit `betterAuth.trustedOrigins` always takes precedence |
330
330
  | Central Redis | `redis` | Boolean Shorthand + Presence Implies Enabled | `host: 'localhost'`, `port: 6379`, `db: 0`, `keyPrefix: <package.json name, slugified>` (per APPLICATION, not per framework — a constant default silently collides when two apps share one Redis; set it explicitly when sharing IS intended); `url` (takes precedence over host/port/db/credentials), `username`/`password`, `options` (passed to the ioredis constructor). `true` / `{}` enables with defaults; `{ enabled: false }` pre-configures without enabling; **absent = every consumer keeps its process-local fallback** (that fallback is the whole backward-compatibility story of 11.33.0). Requires the OPTIONAL peer `ioredis` — configured-but-missing **fails the boot** with a named error rather than crashing on first use. `keyPrefix` is applied by the framework per key, NOT as ioredis `keyPrefix` (that would collide with BullMQ's own prefix). One `CoreRedisService` serves all features: shared client (`getClient()`), one cached subscriber (`getSubscriber()` — a subscribing client cannot run commands), dedicated connections (`createClient(label)`); all are tracked and quit on shutdown. Switches on automatically: exact cross-replica rate limits via `RedisRateLimitStore` (see the Legacy Auth / BetterAuth / AI rate-limit rows), cron dedup (see Cron Job Deduplication row), `CoreRedisPubSub` as `PUB_SUB` for cluster-wide GraphQL subscriptions (**payloads must be JSON-serializable — `Date`, class instances, `Map`/`Set`, `undefined` do not survive**), tenant-cache invalidation broadcast, Hub collector mirroring, MCP session registry (turns a wrong-replica request from a misleading `404` into a `409` — `/ai/mcp` still REQUIRES sticky sessions, sessions are not portable) |
331
331
  | File Access Roles | `file.downloadRoles`, `file.uploadRoles`, `file.deleteRoles` | Config-Driven Role List | `[RoleEnum.ADMIN]` each. **These are the only breaking change a single-replica project gets in 11.33.0** — six members moved from `@Roles(S_EVERYONE)` to these knobs: `GET /files/id/:id`, `GET /files/:filename` and `getFileInfo` (`downloadRoles`), `uploadFile` / `uploadFiles` (`uploadRoles`), `deleteFile` (`deleteRoles`). Plain role STRINGS, not `RoleEnum` members, so project roles work (`['company-admin', 'editor']`). Applied at boot by `applyFileRoles()` via `Reflect.defineMetadata('roles', …)` on the base-class methods — the same runtime mechanism `CorePermissionsModule` uses, because the value is only known from config. **`[]`, a non-array, or an array holding a non-string is REJECTED with a warning and the default applies** — an all-empty role set reads to the guards as "no roles required" and would OPEN the route, the exact opposite of the intent. **ADMIN is always unioned in**: both `CoreFileController` and `CoreFileResolver` carry a class-level `@Roles(RoleEnum.ADMIN)` and the guards UNION class + handler metadata, so these knobs can grant but never exclude admins. Both classes also carry `@SkipTenantCheck()` — GridFS and the S3 metadata collection are reached outside Mongoose, so `mongooseTenantPlugin` never scopes them and a role name alone cannot express a per-tenant rule; roles resolve against `user.roles`, never `membership.role`. **A subclass that OVERRIDES a member opts out permanently** (decorator metadata lives on the function object, and an override is a different function) — inherit the member instead. **Since 11.35.1 that opt-out is REPORTED**: `CoreFileAccessAuditInitializer` reads the roles off the class the project actually registered at `onApplicationBootstrap` (the earliest point at which the route table exists, which is why it is a provider and not part of `applyFileRoles()`) and warns when a member is open beyond ADMIN for a reason the configuration cannot explain — the case the construction-time warning below is structurally blind to. It only REPORTS: overwriting an override's metadata, the way `TusModule.applyRoles()` does, would silently relax a route a project pinned on purpose. Roles are the coarse filter only; per-file rules belong in `CoreFileService.checkRights()`, which now receives `currentUser` and can read raw metadata via `getRawFileInfo()`. **Since 11.35.0 a reused FILENAME resolves to the most recent file** in all three stores (`uploadDate` desc, `_id` tie-break) and every by-name read path resolves a document and then reads by ID — under GridFS the by-name metadata lookup answered the oldest document while `openDownloadStreamByName()` served the newest, so a per-file rule approved one file and the bytes of another came back. Consequence: `duplicateById()` keeps the source's filename and the copy carries no metadata, so the copy now wins the name and an `ownerId` rule refuses it — give the copy its own metadata or its own name. **Since 11.35.0 `CoreFileService` WARNS at construction** when `multiTenancy` is active AND a knob names a role other than ADMIN AND `checkRights()` is not overridden — the file stores are reached outside Mongoose, so these role names resolve against `user.roles` (global) and every holder reaches every tenant's files; only `checkRights()` can narrow that. Silent on the admin-only default and silent when a per-file rule exists. Implementation: `src/core/modules/file/file-roles.config.ts` (`FILE_ROLE_DEFAULTS`, `FILE_ROLE_MEMBERS`, the three warnings, the shared `hasDeclaredFilePolicy()` silencer) + `file-roles.helper.ts` (`applyFileRoles`) + `core-file-access-audit.initializer.ts` (the registered-class audit) |
332
- | TUS Roles | `tus.roles` | Config-Driven Role List | `[RoleEnum.S_USER]` (was `S_EVERYONE` — breaking). A TUS upload writes into the SAME store the download routes guard, and the termination extension (on by default) can delete from it, so anonymous writes into a store only privileged callers may read is the wrong way round. Applied by `TusModule.applyRoles()` onto the registered controller class **and** onto `handleTus` / `handleTusWithId`. Same rejection rule as the file roles: `[]` / non-array / non-string → warning + `DEFAULT_TUS_CONFIG.roles`. **`OPTIONS` is deliberately exempt**: `handleTusOptions` / `handleTusOptionsWithId` keep their own handler-level `@Roles(RoleEnum.S_EVERYONE)`, because that is the CORS preflight — browsers send it WITHOUT credentials, and it returns server capabilities only. Gating it would make every browser upload fail before the first byte. `CoreTusController` also carries `@SkipTenantCheck()`. A custom controller is covered as long as it INHERITS the handlers; one that re-declares `@All()` / `@Roles()` carries its own metadata and thereby opts out — the documented way to hard-code a policy config must not be able to change. **Set `roles: [RoleEnum.S_EVERYONE]` explicitly if you accept attachments on a public form.** **Since 11.35.0 `tus.roles` is no longer the only gate**: `onUploadCreate` records the authenticated creator under `TUS_OWNER_METADATA_KEY` (`ltOwnerId`, always OVERWRITING any client-supplied value) and `onIncomingRequest` refuses HEAD/PATCH/DELETE naming an upload the caller does not own — with **404**, the file module's refusal policy. Before that, any authenticated caller who learned an upload id could APPEND BYTES to somebody else's upload, which are then migrated into the file store under the victim's filename. The finished file also gains `metadata.ownerId`, without which the documented per-file ownership rule could never authorize a tus-uploaded file (admin-only in practice). An OWNER-LESS upload stays reachable — uploads predating 11.35.0 have none, and neither does a deliberately public form. `readRequestUserId()` / `assertUploadOwnership()` are `protected`. Note that `@tus/server` v2 hands its hooks a WHATWG `ServerRequest`, so a guard's `req.user` is reachable only via `runtime.node.req`. Implementation: `src/core/modules/tus/tus.module.ts`, `src/core/modules/tus/core-tus.service.ts`, `src/core/modules/tus/tus.constants.ts` |
332
+ | TUS Roles | `tus.roles` | Config-Driven Role List | `[RoleEnum.S_USER]` (was `S_EVERYONE` — breaking). A TUS upload writes into the SAME store the download routes guard, and the termination extension (on by default) can delete from it, so anonymous writes into a store only privileged callers may read is the wrong way round. Applied by `TusModule.applyRoles()` onto the registered controller class **and** onto `handleTus` / `handleTusWithId`. Same rejection rule as the file roles: `[]` / non-array / non-string → warning + `DEFAULT_TUS_CONFIG.roles`. **`OPTIONS` is deliberately exempt**: `handleTusOptions` / `handleTusOptionsWithId` keep their own handler-level `@Roles(RoleEnum.S_EVERYONE)`, because that is the CORS preflight — browsers send it WITHOUT credentials, and it returns server capabilities only. Gating it would make every browser upload fail before the first byte. `CoreTusController` also carries `@SkipTenantCheck()`. A custom controller is covered as long as it INHERITS the handlers; one that re-declares `@All()` / `@Roles()` carries its own metadata and thereby opts out — the documented way to hard-code a policy config must not be able to change. **Set `roles: [RoleEnum.S_EVERYONE]` explicitly if you accept attachments on a public form.** **Since 11.35.0 `tus.roles` is no longer the only gate**: `onUploadCreate` records the authenticated creator under `TUS_OWNER_METADATA_KEY` (`ltOwnerId`, always OVERWRITING any client-supplied value) and `onIncomingRequest` refuses HEAD/PATCH/DELETE naming an upload the caller does not own — with **404**, the file module's refusal policy. Before that, any authenticated caller who learned an upload id could APPEND BYTES to somebody else's upload, which are then migrated into the file store under the victim's filename. The finished file also gains `metadata.ownerId`, without which the documented per-file ownership rule could never authorize a tus-uploaded file (admin-only in practice). An OWNER-LESS upload stays reachable — uploads predating 11.35.0 have none, and neither does a deliberately public form. `readRequestUserId()` / `assertUploadOwnership()` are `protected`. **Since 11.41.9 the tenant is recorded too, but ONLY with `multiTenancy` configured** (not `enabled: false`) and a tenant guard registered: `onUploadCreate` validates the tenant header against the caller's active memberships through `core-tenant-context.registry.ts` (the routes carry `@SkipTenantCheck()`, so the guard did not), refuses a non-member with **403**, writes it under `TUS_TENANT_METADATA_KEY` (`ltTenantId`, always overwritten like the owner key) and the finished file gains `metadata.tenantId`. No header → tenant-less, as before; without `multiTenancy` nothing is read or written. A project hooks in through `TusModule.forRoot({ service })` (a `CoreTusService` subclass, constructed by the module as `(connection, options)` — project providers come from `options.moduleRef` at call time) and the `protected onUploadCreate(req, upload)`, the one point where `Upload-Length` is known and nothing is stored yet; an override must return `super.onUploadCreate()`. Note that `@tus/server` v2 hands its hooks a WHATWG `ServerRequest`, so a guard's `req.user` is reachable only via `runtime.node.req`. Implementation: `src/core/modules/tus/tus.module.ts`, `src/core/modules/tus/core-tus.service.ts`, `src/core/modules/tus/tus.constants.ts` |
333
333
  | File Storage | `file.storage` + `file.storageDir` + `s3` | Explicit Enum with DERIVED default | `'filesystem' \| 'gridfs' \| 's3'`. **Unset → derived**, most capable first: `'s3'` when `s3.bucket` is set, else `'gridfs'` when `mongoose.uri` is set, else `'filesystem'`. **Set → enforced**: an unavailable store FAILS THE BOOT (`assertFileStorageAvailable()`), it never falls back — a silent fallback puts files in a store the operator does not believe they are in, unrecoverably. A DERIVED driver is enforced too (`s3.bucket` set but `s3Service` not forwarded to `super()` → boot error). Metadata always lives in MongoDB whichever driver holds the bytes (`fs.files` / `s3-files` / `filesystem-files`) — it has to stay queryable for `findFileInfo()` and `checkRights()`. Reads consult ALL stores so switching drivers is forward-only with no migration; writes go to the active driver only. `'filesystem'` is pod-local: not shared between replicas, lost on restart unless `storageDir` is a mounted volume. `s3`: `bucket` (required — the one thing S3 cannot default, hence the eligibility test), `region: 'us-east-1'`, `forcePathStyle: false`, `autoCreateBucket: false` (off by design: production buckets come from infrastructure code, whose credentials usually cannot CreateBucket), `stagingBucket: bucket`, `presignedDownloads: false` (`true`/`{}` → `expiresInSeconds: 300`), `endpoint` (MinIO/RustFS), `accessKeyId`/`secretAccessKey` (omit → AWS default credential chain), `enabled: false` to pre-configure. Requires the OPTIONAL peer `@aws-sdk/client-s3`, plus `@aws-sdk/s3-request-presigner` for presigned downloads. **Uploads are never buffered on the S3 path** (11.41.7): a known length (`FileUploadSource.size`, TUS, a buffer) goes up as one streamed PutObject up to `CoreS3Service.MAX_SINGLE_PUT_BYTES` (5 GiB — AWS S3 refuses more in one request, `EntityTooLarge`) and as a multipart upload above it, an unknown one — every GraphQL and streamed REST upload — as a multipart upload via the OPTIONAL peer `@aws-sdk/lib-storage`. Missing peer → one boot warning and the old in-memory buffering, NOT a boot failure (multipart optimises a path that works without it). `size` must be the file's EXACT length — never a multipart request's `Content-Length`; anything but a positive integer counts as unknown (`isKnownUploadSize()`), and the recorded length of an unknown-length upload comes from a HEAD of the stored object. `presignedDownloads` makes `GET /files/id/:id` answer `302` to a time-limited S3 URL instead of streaming — the URL is a bearer capability, authorized once at issue time. The resolved driver is logged at boot (`[CoreFileStorage] File storage: …`) |
334
334
  | TUS S3 Staging | `tus.s3Staging` | Explicit Boolean (default ON when S3 configured) | `true` when `s3` is configured, otherwise inert. Stages in-progress uploads in `s3.stagingBucket` via `@tus/s3-store` instead of `tus.uploadDir` on local disk, so resumable uploads survive replica restarts and need no sticky sessions. Set `false` to force local disk. Missing OPTIONAL peer `@tus/s3-store` → warning + fall back to local disk (NOT a boot failure). **Give the staging bucket a lifecycle rule expiring incomplete multipart uploads** — the framework's own expiration cleanup is skipped in S3 mode (S3 is the right place for that policy), so aborted uploads otherwise accumulate parts nothing removes |
335
335
  | Cron Job Deduplication | per job: `distributed` in `CronJobConfig` | Explicit Boolean | **`true` when `redis` is configured, otherwise `false`** — a single-replica project that upgrades must not silently gain a `cron-locks` collection, a lease write per tick, and a new way for a tick to be skipped. A Redis-less multi-replica fleet opts in per job with `distributed: true` (MongoDB lease). Mechanism: BullMQ job scheduler when Redis + the OPTIONAL peer `bullmq` are present AND `cronTime` is a string without `utcOffset`; otherwise local timer + lease (Redis `SET NX`, else a TTL-indexed `cron-locks` document). Tick lease TTL 3600 s. **Leases fail open** — an unreachable lease store runs the tick everywhere rather than stopping all scheduled work fleet-wide. **`runOnInit` (default `true`) deduplicates over a FIXED per-job key with a 300 s TTL**, because replicas do not share a boot instant: replicas booting within 5 min run the startup tick once between them, and a replica restarting inside that window SKIPS its startup tick — set `distributed: false` on jobs whose `runOnInit` work is per-process (warming a process-local cache). No constructor change needed: `CoreModule` fills `core-cron-jobs.registry.ts` via `CoreCronJobsInitializer` and `CoreCronJobs` reads it lazily; explicit `{ connection, redisService }` in `CoreCronJobsOptions` wins. With neither source it warns once and every replica runs every tick |
@@ -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 85 that need no MongoDB
269
+ pnpm run check:mutations -- --no-infra # only the 86 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, and in CI alongside the publish without blocking it. The price of caching is a cache that
286
286
  has to model each spec's full dependency closure correctly, and getting that wrong produces a stale
287
287
  PASS for a test that has since gone vacuous — exactly what the gate is there to prevent. Bad trade
288
- at 132 mutations.
288
+ at 136 mutations.
289
289
 
290
290
  **Decided 2026-10-03 (repo owner): keep the full run.** Measured at 128 mutations, the CI job for
291
291
  11.41.6 took **14 minutes**. The trigger to revisit is that wall time, not the mutation count —
@@ -330,9 +330,9 @@ exactly the environment where the answer matters.
330
330
 
331
331
  ### The cost is vitest's cold start, not the tests
332
332
 
333
- Worth knowing before optimising the wrong thing: the specs behind all 47 e2e mutations add up to
333
+ Worth knowing before optimising the wrong thing: the specs behind all 50 e2e mutations add up to
334
334
  **~40 seconds**. The step takes ~740s. The remaining ~700s is paying vitest's startup — process
335
- spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 132 times.
335
+ spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 136 times.
336
336
  That work is largely single-threaded I/O and barely scales with cores: the full registry measures
337
337
  **744s on a 12-core laptop and 777s on a 4-vCPU CI runner**.
338
338
 
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-10-03 (v11.41.8)
3
+ > Auto-generated from source code as of 2026-10-03 (v11.41.9)
4
4
  > File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
5
5
 
6
6
  ## CoreModule.forRoot()
@@ -1,4 +1,5 @@
1
1
  import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
+ import { ModuleRef } from '@nestjs/core';
2
3
  import { Server, Upload } from '@tus/server';
3
4
  import { Connection } from 'mongoose';
4
5
  import { Readable } from 'stream';
@@ -8,6 +9,7 @@ import { CoreRedisService } from '../../common/services/core-redis.service';
8
9
  import { CoreS3Service } from '../../common/services/core-s3.service';
9
10
  export interface CoreTusServiceOptions {
10
11
  configService?: ConfigService;
12
+ moduleRef?: ModuleRef;
11
13
  redisService?: CoreRedisService;
12
14
  s3Service?: CoreS3Service;
13
15
  }
@@ -45,6 +47,15 @@ export declare class CoreTusService implements OnModuleDestroy, OnModuleInit {
45
47
  protected readRequestUserId(req: any): string | undefined;
46
48
  protected assertUploadOwnership(req: any, uploadId: string): Promise<void>;
47
49
  protected validateFileType(filetype: string | undefined): boolean;
50
+ protected onUploadCreate(req: any, upload: Upload): Promise<{
51
+ metadata: Record<string, null | string>;
52
+ }>;
53
+ protected resolveUploadTenantId(req: any): Promise<string | undefined>;
54
+ protected readRequestUser(req: any): undefined | {
55
+ id: string;
56
+ roles?: string[];
57
+ };
58
+ protected readRequestHeader(req: any, name: string): string | undefined;
48
59
  private createTusServer;
49
60
  private parseMetadata;
50
61
  private ensureUploadDir;
@@ -20,6 +20,7 @@ const path = require("path");
20
20
  const gridfs_helper_1 = require("../../common/helpers/gridfs.helper");
21
21
  const config_service_1 = require("../../common/services/config.service");
22
22
  const core_s3_service_1 = require("../../common/services/core-s3.service");
23
+ const core_tenant_context_registry_1 = require("../../common/services/core-tenant-context.registry");
23
24
  const file_storage_helper_1 = require("../file/file-storage.helper");
24
25
  const filesystem_file_helper_1 = require("../file/filesystem-file.helper");
25
26
  const s3_file_helper_1 = require("../file/s3-file.helper");
@@ -89,6 +90,7 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
89
90
  const fileMetadata = {
90
91
  originalMetadata: metadata,
91
92
  ...(metadata[tus_constants_1.TUS_OWNER_METADATA_KEY] ? { ownerId: metadata[tus_constants_1.TUS_OWNER_METADATA_KEY] } : {}),
93
+ ...(metadata[tus_constants_1.TUS_TENANT_METADATA_KEY] ? { tenantId: metadata[tus_constants_1.TUS_TENANT_METADATA_KEY] } : {}),
92
94
  tusUploadId: upload.id,
93
95
  uploadedAt: new Date(),
94
96
  };
@@ -299,6 +301,57 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
299
301
  }
300
302
  return false;
301
303
  }
304
+ async onUploadCreate(req, upload) {
305
+ const metadata = {
306
+ ...upload.metadata,
307
+ [tus_constants_1.TUS_OWNER_METADATA_KEY]: this.readRequestUserId(req) ?? null,
308
+ [tus_constants_1.TUS_TENANT_METADATA_KEY]: (await this.resolveUploadTenantId(req)) ?? null,
309
+ };
310
+ if (this.config.allowedTypes && this.config.allowedTypes.length > 0) {
311
+ const filetype = this.parseMetadata(upload.metadata).filetype;
312
+ if (!this.validateFileType(filetype)) {
313
+ const allowedList = this.config.allowedTypes.join(', ');
314
+ this.logger.warn(`Upload rejected: file type '${filetype || 'unknown'}' not allowed. Allowed types: ${allowedList}`);
315
+ const error = new Error(`File type '${filetype || 'unknown'}' is not allowed. Allowed types: ${allowedList}`);
316
+ error.status_code = 415;
317
+ throw error;
318
+ }
319
+ }
320
+ return { metadata };
321
+ }
322
+ async resolveUploadTenantId(req) {
323
+ const multiTenancy = config_service_1.ConfigService.configFastButReadOnly?.multiTenancy;
324
+ const resolver = (0, core_tenant_context_registry_1.getTenantContextResolver)();
325
+ if (!multiTenancy || multiTenancy.enabled === false || !resolver) {
326
+ return undefined;
327
+ }
328
+ const headerName = (multiTenancy.headerName ?? 'x-tenant-id').toLowerCase();
329
+ const header = this.readRequestHeader(req, headerName)?.trim();
330
+ if (!header) {
331
+ return undefined;
332
+ }
333
+ const resolved = await resolver.resolve(this.readRequestUser(req), header);
334
+ if (!resolved?.tenantId) {
335
+ const error = new Error('Not a member of the requested tenant');
336
+ error.status_code = 403;
337
+ throw error;
338
+ }
339
+ return resolved.tenantId;
340
+ }
341
+ readRequestUser(req) {
342
+ const id = this.readRequestUserId(req);
343
+ if (!id) {
344
+ return undefined;
345
+ }
346
+ const user = req?.user ?? req?.runtime?.node?.req?.user ?? req?.context?.user;
347
+ return { id, roles: Array.isArray(user?.roles) ? user.roles : undefined };
348
+ }
349
+ readRequestHeader(req, name) {
350
+ const fromHeaders = typeof req?.headers?.get === 'function' ? req.headers.get(name) : req?.headers?.[name];
351
+ const value = fromHeaders ?? req?.runtime?.node?.req?.headers?.[name];
352
+ const single = Array.isArray(value) ? value[0] : value;
353
+ return typeof single === 'string' && single.length > 0 ? single : undefined;
354
+ }
302
355
  async createTusServer(uploadDir) {
303
356
  const datastore = (await this.createS3Store()) || new file_store_1.FileStore({ directory: uploadDir });
304
357
  const locker = this.createLocker();
@@ -308,20 +361,7 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
308
361
  ...(locker ? { locker } : {}),
309
362
  maxSize: this.config.maxSize,
310
363
  onIncomingRequest: async (req, uploadId) => this.assertUploadOwnership(req, uploadId),
311
- onUploadCreate: async (req, upload) => {
312
- const metadata = { ...upload.metadata, [tus_constants_1.TUS_OWNER_METADATA_KEY]: this.readRequestUserId(req) ?? null };
313
- if (this.config.allowedTypes && this.config.allowedTypes.length > 0) {
314
- const filetype = this.parseMetadata(upload.metadata).filetype;
315
- if (!this.validateFileType(filetype)) {
316
- const allowedList = this.config.allowedTypes.join(', ');
317
- this.logger.warn(`Upload rejected: file type '${filetype || 'unknown'}' not allowed. Allowed types: ${allowedList}`);
318
- const error = new Error(`File type '${filetype || 'unknown'}' is not allowed. Allowed types: ${allowedList}`);
319
- error.status_code = 415;
320
- throw error;
321
- }
322
- }
323
- return { metadata };
324
- },
364
+ onUploadCreate: async (req, upload) => this.onUploadCreate(req, upload),
325
365
  onUploadFinish: async (_req, upload) => {
326
366
  try {
327
367
  await this.onUploadComplete(upload);
@@ -1 +1 @@
1
- {"version":3,"file":"core-tus.service.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/core-tus.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-tus.service.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/core-tus.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare const TUS_CONFIG = "TUS_CONFIG";
2
2
  export declare const TUS_OWNER_METADATA_KEY = "ltOwnerId";
3
+ export declare const TUS_TENANT_METADATA_KEY = "ltTenantId";
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TUS_OWNER_METADATA_KEY = exports.TUS_CONFIG = void 0;
3
+ exports.TUS_TENANT_METADATA_KEY = exports.TUS_OWNER_METADATA_KEY = exports.TUS_CONFIG = void 0;
4
4
  exports.TUS_CONFIG = 'TUS_CONFIG';
5
5
  exports.TUS_OWNER_METADATA_KEY = 'ltOwnerId';
6
+ exports.TUS_TENANT_METADATA_KEY = 'ltTenantId';
6
7
  //# sourceMappingURL=tus.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tus.constants.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/tus.constants.ts"],"names":[],"mappings":";;;AAwBa,QAAA,UAAU,GAAG,YAAY,CAAC;AAgB1B,QAAA,sBAAsB,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"tus.constants.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/tus.constants.ts"],"names":[],"mappings":";;;AAwBa,QAAA,UAAU,GAAG,YAAY,CAAC;AAgB1B,QAAA,sBAAsB,GAAG,WAAW,CAAC;AAYrC,QAAA,uBAAuB,GAAG,YAAY,CAAC"}
@@ -6,6 +6,7 @@ export { TUS_CONFIG } from './tus.constants';
6
6
  export interface TusModuleOptions {
7
7
  config?: boolean | ITusConfig;
8
8
  controller?: Type<CoreTusController>;
9
+ service?: Type<CoreTusService>;
9
10
  }
10
11
  export declare class TusModule implements OnModuleInit {
11
12
  private readonly tusService?;
@@ -13,6 +14,7 @@ export declare class TusModule implements OnModuleInit {
13
14
  private static tusEnabled;
14
15
  private static currentConfig;
15
16
  private static customController;
17
+ private static customService;
16
18
  constructor(tusService?: CoreTusService);
17
19
  onModuleInit(): Promise<void>;
18
20
  private static getControllerClass;
@@ -12,6 +12,7 @@ var TusModule_1;
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.TusModule = exports.TUS_CONFIG = void 0;
14
14
  const common_1 = require("@nestjs/common");
15
+ const core_1 = require("@nestjs/core");
15
16
  const mongoose_1 = require("@nestjs/mongoose");
16
17
  const config_service_1 = require("../../common/services/config.service");
17
18
  const core_redis_service_1 = require("../../common/services/core-redis.service");
@@ -29,6 +30,7 @@ let TusModule = class TusModule {
29
30
  static tusEnabled = false;
30
31
  static currentConfig = null;
31
32
  static customController = null;
33
+ static customService = null;
32
34
  constructor(tusService) {
33
35
  this.tusService = tusService;
34
36
  }
@@ -58,10 +60,12 @@ let TusModule = class TusModule {
58
60
  }
59
61
  }
60
62
  static forRoot(options = {}) {
61
- const { config: rawConfig, controller } = options;
63
+ const { config: rawConfig, controller, service } = options;
62
64
  const config = (0, tus_config_interface_1.normalizeTusConfig)(rawConfig);
63
65
  this.currentConfig = config;
64
66
  this.customController = controller || null;
67
+ this.customService = service || null;
68
+ const ServiceClass = this.customService || core_tus_service_1.CoreTusService;
65
69
  if (config === null) {
66
70
  this.logger.debug('TUS uploads disabled');
67
71
  this.tusEnabled = false;
@@ -77,9 +81,9 @@ let TusModule = class TusModule {
77
81
  inject: [(0, mongoose_1.getConnectionToken)()],
78
82
  provide: core_tus_service_1.CoreTusService,
79
83
  useFactory: (connection) => {
80
- const service = new core_tus_service_1.CoreTusService(connection);
81
- service.configure(false);
82
- return service;
84
+ const tusService = new ServiceClass(connection);
85
+ tusService.configure(false);
86
+ return tusService;
83
87
  },
84
88
  },
85
89
  ],
@@ -103,12 +107,13 @@ let TusModule = class TusModule {
103
107
  config_service_1.ConfigService,
104
108
  { optional: true, token: core_s3_service_1.CoreS3Service },
105
109
  { optional: true, token: core_redis_service_1.CoreRedisService },
110
+ core_1.ModuleRef,
106
111
  ],
107
112
  provide: core_tus_service_1.CoreTusService,
108
- useFactory: async (connection, tusConfig, configService, s3Service, redisService) => {
109
- const service = new core_tus_service_1.CoreTusService(connection, { configService, redisService, s3Service });
110
- service.configure(tusConfig);
111
- return service;
113
+ useFactory: async (connection, tusConfig, configService, s3Service, redisService, moduleRef) => {
114
+ const tusService = new ServiceClass(connection, { configService, moduleRef, redisService, s3Service });
115
+ tusService.configure(tusConfig);
116
+ return tusService;
112
117
  },
113
118
  },
114
119
  ],
@@ -118,6 +123,7 @@ let TusModule = class TusModule {
118
123
  this.tusEnabled = false;
119
124
  this.currentConfig = null;
120
125
  this.customController = null;
126
+ this.customService = null;
121
127
  }
122
128
  };
123
129
  exports.TusModule = TusModule;
@@ -1 +1 @@
1
- {"version":3,"file":"tus.module.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/tus.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tus.module.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/tus.module.ts"],"names":[],"mappings":"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"}