@lenne.tech/nest-server 11.35.0 → 11.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/rules/configurable-features.md +1 -1
- package/FRAMEWORK-API.md +1 -1
- package/dist/core/common/helpers/file.helper.js +3 -2
- package/dist/core/common/helpers/file.helper.js.map +1 -1
- package/dist/core/modules/file/core-file-access-audit.initializer.d.ts +13 -0
- package/dist/core/modules/file/core-file-access-audit.initializer.js +109 -0
- package/dist/core/modules/file/core-file-access-audit.initializer.js.map +1 -0
- package/dist/core/modules/file/file-roles.config.d.ts +21 -0
- package/dist/core/modules/file/file-roles.config.js +51 -2
- package/dist/core/modules/file/file-roles.config.js.map +1 -1
- package/dist/core/modules/file/file-roles.helper.d.ts +2 -2
- package/dist/core/modules/file/file-roles.helper.js +10 -16
- package/dist/core/modules/file/file-roles.helper.js.map +1 -1
- package/dist/core.module.js +3 -1
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/migration-guides/11.34.x-to-11.35.x.md +17 -3
- package/migration-guides/11.35.0-to-11.35.1.md +152 -0
- package/package.json +1 -1
- package/src/core/common/helpers/file.helper.ts +11 -5
- package/src/core/modules/file/README.md +10 -0
- package/src/core/modules/file/core-file-access-audit.initializer.ts +164 -0
- package/src/core/modules/file/file-roles.config.ts +156 -1
- package/src/core/modules/file/file-roles.helper.ts +15 -22
- package/src/core.module.ts +10 -2
- package/src/index.ts +4 -0
|
@@ -272,7 +272,7 @@ This pattern is currently applied to:
|
|
|
272
272
|
| Cookies | `cookies` | Boolean Shorthand (default true) | `true` (enabled), `exposeTokenInBody: false`. When enabled: loads `cookie-parser`, sets CORS `credentials: true`, sets signed httpOnly session cookies. When `exposeTokenInBody: true`: token stays in response body alongside cookies (for hybrid JWT+Cookie auth). JWT via `Authorization: Bearer` always works independently. **BetterAuth cookie name (since v11.27.6):** `createBetterAuthInstance()` pins `advanced.useSecureCookies: false` so BetterAuth's native handlers read the same UNPREFIXED `<cookiePrefix>.session_token` the helper writes (fixes a `401` split-brain on 2FA/passkey/`/token`); the `Secure` attribute is still applied on an `https://` baseURL via `advanced.defaultCookieAttributes`. Opt back into the `__Secure-` prefix with `betterAuth.options.advanced.useSecureCookies: true` only when BetterAuth manages cookies entirely |
|
|
273
273
|
| 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 |
|
|
274
274
|
| 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) |
|
|
275
|
-
| 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. 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`, the
|
|
275
|
+
| 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) |
|
|
276
276
|
| 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` |
|
|
277
277
|
| 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`, `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. `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: …`) |
|
|
278
278
|
| 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 |
|
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 on 2026-08-
|
|
3
|
+
> Auto-generated from source code on 2026-08-18 (v11.35.1)
|
|
4
4
|
> File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
|
|
5
5
|
|
|
6
6
|
## CoreModule.forRoot()
|
|
@@ -5,6 +5,7 @@ exports.multerFileFilter = multerFileFilter;
|
|
|
5
5
|
exports.multerOptionsForImageUpload = multerOptionsForImageUpload;
|
|
6
6
|
exports.multerFileToUpload = multerFileToUpload;
|
|
7
7
|
exports.multerRandomFileName = multerRandomFileName;
|
|
8
|
+
const common_1 = require("@nestjs/common");
|
|
8
9
|
const crypto_1 = require("crypto");
|
|
9
10
|
const multer_1 = require("multer");
|
|
10
11
|
const path_1 = require("path");
|
|
@@ -55,7 +56,7 @@ function multerFileFilter(accept = exports.IMAGE_UPLOAD_ALLOW_LIST, options) {
|
|
|
55
56
|
const extension = (0, path_1.extname)(String(file?.originalname || '')).toLowerCase();
|
|
56
57
|
if (!options?.allowScriptableTypes &&
|
|
57
58
|
(exports.SCRIPTABLE_UPLOAD_MIME_TYPES.includes(mimeType) || exports.SCRIPTABLE_UPLOAD_EXTENSIONS.includes(extension))) {
|
|
58
|
-
return cb(new
|
|
59
|
+
return cb(new common_1.BadRequestException(`File upload rejected: ${mimeType || 'unknown type'} may execute as script`));
|
|
59
60
|
}
|
|
60
61
|
const accepted = accept instanceof RegExp
|
|
61
62
|
? accept.test(mimeType) && accept.test(extension)
|
|
@@ -63,7 +64,7 @@ function multerFileFilter(accept = exports.IMAGE_UPLOAD_ALLOW_LIST, options) {
|
|
|
63
64
|
if (accepted) {
|
|
64
65
|
return cb(null, true);
|
|
65
66
|
}
|
|
66
|
-
cb(new
|
|
67
|
+
cb(new common_1.BadRequestException(`File upload only supports the following filetypes - ${describeAccept(accept)}`));
|
|
67
68
|
};
|
|
68
69
|
}
|
|
69
70
|
function describeAccept(accept) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/file.helper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"file.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/file.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Logger, OnApplicationBootstrap } from '@nestjs/common';
|
|
2
|
+
import { DiscoveryService } from '@nestjs/core';
|
|
3
|
+
import { FileEndpointClassName, ObservedFileHandler } from './file-roles.config';
|
|
4
|
+
export declare class CoreFileAccessAuditInitializer implements OnApplicationBootstrap {
|
|
5
|
+
protected readonly discoveryService?: DiscoveryService;
|
|
6
|
+
protected readonly logger: Logger;
|
|
7
|
+
constructor(discoveryService?: DiscoveryService);
|
|
8
|
+
onApplicationBootstrap(): void;
|
|
9
|
+
protected collectHandlers(): ObservedFileHandler[];
|
|
10
|
+
protected effectiveRoles(fn: unknown, target: Function): string[];
|
|
11
|
+
protected hasPerFileRule(): boolean;
|
|
12
|
+
protected registeredEndpointClasses(): [FileEndpointClassName, Function][];
|
|
13
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var CoreFileAccessAuditInitializer_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.CoreFileAccessAuditInitializer = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const core_1 = require("@nestjs/core");
|
|
19
|
+
const config_service_1 = require("../../common/services/config.service");
|
|
20
|
+
const core_file_controller_1 = require("./core-file.controller");
|
|
21
|
+
const core_file_resolver_1 = require("./core-file.resolver");
|
|
22
|
+
const core_file_service_1 = require("./core-file.service");
|
|
23
|
+
const file_roles_config_1 = require("./file-roles.config");
|
|
24
|
+
let CoreFileAccessAuditInitializer = CoreFileAccessAuditInitializer_1 = class CoreFileAccessAuditInitializer {
|
|
25
|
+
discoveryService;
|
|
26
|
+
logger = new common_1.Logger(CoreFileAccessAuditInitializer_1.name);
|
|
27
|
+
constructor(discoveryService) {
|
|
28
|
+
this.discoveryService = discoveryService;
|
|
29
|
+
}
|
|
30
|
+
onApplicationBootstrap() {
|
|
31
|
+
if (!this.discoveryService) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const handlers = this.collectHandlers();
|
|
35
|
+
if (!handlers.length) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const config = config_service_1.ConfigService.configFastButReadOnly;
|
|
39
|
+
(0, file_roles_config_1.warnOnUndecidedEffectiveFileAccess)({
|
|
40
|
+
fileConfig: config?.file,
|
|
41
|
+
handlers,
|
|
42
|
+
hasPerFileRule: this.hasPerFileRule(),
|
|
43
|
+
multiTenancyEnabled: !!config?.multiTenancy && config.multiTenancy.enabled !== false,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
collectHandlers() {
|
|
47
|
+
const handlers = [];
|
|
48
|
+
for (const [className, target] of this.registeredEndpointClasses()) {
|
|
49
|
+
for (const member of file_roles_config_1.FILE_ROLE_MEMBERS) {
|
|
50
|
+
if (member.className !== className) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const fn = target.prototype?.[member.method];
|
|
54
|
+
if (typeof fn !== 'function') {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
handlers.push({
|
|
58
|
+
key: member.key,
|
|
59
|
+
member: `${target.name}.${member.method}`,
|
|
60
|
+
roles: this.effectiveRoles(fn, target),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return handlers;
|
|
65
|
+
}
|
|
66
|
+
effectiveRoles(fn, target) {
|
|
67
|
+
const handlerRoles = Reflect.getMetadata('roles', fn) ?? [];
|
|
68
|
+
const classRoles = Reflect.getMetadata('roles', target) ?? [];
|
|
69
|
+
return [...handlerRoles, ...classRoles];
|
|
70
|
+
}
|
|
71
|
+
hasPerFileRule() {
|
|
72
|
+
const services = (this.discoveryService?.getProviders() ?? [])
|
|
73
|
+
.map((wrapper) => wrapper.instance)
|
|
74
|
+
.filter((instance) => instance instanceof core_file_service_1.CoreFileService);
|
|
75
|
+
return services.some((service) => service.checkRights !== core_file_service_1.CoreFileService.prototype.checkRights);
|
|
76
|
+
}
|
|
77
|
+
registeredEndpointClasses() {
|
|
78
|
+
const found = new Map();
|
|
79
|
+
const consider = (instance) => {
|
|
80
|
+
if (!instance || typeof instance !== 'object') {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const target = instance.constructor;
|
|
84
|
+
if (typeof target !== 'function' || found.has(target)) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (instance instanceof core_file_controller_1.CoreFileController) {
|
|
88
|
+
found.set(target, 'CoreFileController');
|
|
89
|
+
}
|
|
90
|
+
else if (instance instanceof core_file_resolver_1.CoreFileResolver) {
|
|
91
|
+
found.set(target, 'CoreFileResolver');
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
for (const wrapper of this.discoveryService?.getControllers() ?? []) {
|
|
95
|
+
consider(wrapper.instance);
|
|
96
|
+
}
|
|
97
|
+
for (const wrapper of this.discoveryService?.getProviders() ?? []) {
|
|
98
|
+
consider(wrapper.instance);
|
|
99
|
+
}
|
|
100
|
+
return [...found].map(([target, className]) => [className, target]);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
exports.CoreFileAccessAuditInitializer = CoreFileAccessAuditInitializer;
|
|
104
|
+
exports.CoreFileAccessAuditInitializer = CoreFileAccessAuditInitializer = CoreFileAccessAuditInitializer_1 = __decorate([
|
|
105
|
+
(0, common_1.Injectable)(),
|
|
106
|
+
__param(0, (0, common_1.Optional)()),
|
|
107
|
+
__metadata("design:paramtypes", [core_1.DiscoveryService])
|
|
108
|
+
], CoreFileAccessAuditInitializer);
|
|
109
|
+
//# sourceMappingURL=core-file-access-audit.initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-file-access-audit.initializer.js","sourceRoot":"","sources":["../../../../src/core/modules/file/core-file-access-audit.initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import { IFileConfig, IS3Config } from '../../common/interfaces/server-options.interface';
|
|
2
2
|
export type FileRoleKey = 'deleteRoles' | 'downloadRoles' | 'uploadRoles';
|
|
3
3
|
export declare const FILE_ROLE_DEFAULTS: Record<FileRoleKey, string[]>;
|
|
4
|
+
export declare const FILE_ROLE_MEMBERS: {
|
|
5
|
+
className: FileEndpointClassName;
|
|
6
|
+
key: FileRoleKey;
|
|
7
|
+
method: string;
|
|
8
|
+
}[];
|
|
9
|
+
export type FileEndpointClassName = 'CoreFileController' | 'CoreFileResolver';
|
|
4
10
|
export declare function resolveRoles(key: FileRoleKey, config?: IFileConfig): string[];
|
|
11
|
+
export declare function hasDeclaredFilePolicy(options: {
|
|
12
|
+
fileConfig?: IFileConfig;
|
|
13
|
+
hasPerFileRule: boolean;
|
|
14
|
+
}): boolean;
|
|
5
15
|
export declare function warnOnPresignedDownloadsWithRestrictedRoles(s3Config?: IS3Config, fileConfig?: IFileConfig): string | undefined;
|
|
6
16
|
export declare function warnOnUndecidedFileAccess(options: {
|
|
7
17
|
fileConfig?: IFileConfig;
|
|
8
18
|
hasPerFileRule: boolean;
|
|
9
19
|
multiTenancyEnabled: boolean;
|
|
10
20
|
}): string | undefined;
|
|
21
|
+
export interface ObservedFileHandler {
|
|
22
|
+
key: FileRoleKey;
|
|
23
|
+
member: string;
|
|
24
|
+
roles: string[];
|
|
25
|
+
}
|
|
26
|
+
export declare function warnOnUndecidedEffectiveFileAccess(options: {
|
|
27
|
+
fileConfig?: IFileConfig;
|
|
28
|
+
handlers: ObservedFileHandler[];
|
|
29
|
+
hasPerFileRule: boolean;
|
|
30
|
+
multiTenancyEnabled: boolean;
|
|
31
|
+
}): string | undefined;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FILE_ROLE_DEFAULTS = void 0;
|
|
3
|
+
exports.FILE_ROLE_MEMBERS = exports.FILE_ROLE_DEFAULTS = void 0;
|
|
4
4
|
exports.resolveRoles = resolveRoles;
|
|
5
|
+
exports.hasDeclaredFilePolicy = hasDeclaredFilePolicy;
|
|
5
6
|
exports.warnOnPresignedDownloadsWithRestrictedRoles = warnOnPresignedDownloadsWithRestrictedRoles;
|
|
6
7
|
exports.warnOnUndecidedFileAccess = warnOnUndecidedFileAccess;
|
|
8
|
+
exports.warnOnUndecidedEffectiveFileAccess = warnOnUndecidedEffectiveFileAccess;
|
|
7
9
|
const common_1 = require("@nestjs/common");
|
|
8
10
|
const role_enum_1 = require("../../common/enums/role.enum");
|
|
9
11
|
const logger = new common_1.Logger('CoreFileRoles');
|
|
@@ -12,6 +14,14 @@ exports.FILE_ROLE_DEFAULTS = {
|
|
|
12
14
|
downloadRoles: [role_enum_1.RoleEnum.ADMIN],
|
|
13
15
|
uploadRoles: [role_enum_1.RoleEnum.ADMIN],
|
|
14
16
|
};
|
|
17
|
+
exports.FILE_ROLE_MEMBERS = [
|
|
18
|
+
{ className: 'CoreFileController', key: 'downloadRoles', method: 'getFileById' },
|
|
19
|
+
{ className: 'CoreFileController', key: 'downloadRoles', method: 'getFile' },
|
|
20
|
+
{ className: 'CoreFileResolver', key: 'downloadRoles', method: 'getFileInfo' },
|
|
21
|
+
{ className: 'CoreFileResolver', key: 'uploadRoles', method: 'uploadFile' },
|
|
22
|
+
{ className: 'CoreFileResolver', key: 'uploadRoles', method: 'uploadFiles' },
|
|
23
|
+
{ className: 'CoreFileResolver', key: 'deleteRoles', method: 'deleteFile' },
|
|
24
|
+
];
|
|
15
25
|
function resolveRoles(key, config) {
|
|
16
26
|
const configured = config?.[key];
|
|
17
27
|
if (configured === undefined) {
|
|
@@ -24,6 +34,9 @@ function resolveRoles(key, config) {
|
|
|
24
34
|
}
|
|
25
35
|
return configured;
|
|
26
36
|
}
|
|
37
|
+
function hasDeclaredFilePolicy(options) {
|
|
38
|
+
return options.hasPerFileRule || !!(options.fileConfig?.access && options.fileConfig.access !== 'custom');
|
|
39
|
+
}
|
|
27
40
|
function warnOnPresignedDownloadsWithRestrictedRoles(s3Config, fileConfig) {
|
|
28
41
|
const presigned = s3Config?.presignedDownloads;
|
|
29
42
|
const presignedEnabled = presigned === true || (!!presigned && typeof presigned === 'object' && presigned.enabled !== false);
|
|
@@ -47,7 +60,7 @@ function warnOnPresignedDownloadsWithRestrictedRoles(s3Config, fileConfig) {
|
|
|
47
60
|
}
|
|
48
61
|
function warnOnUndecidedFileAccess(options) {
|
|
49
62
|
const { fileConfig, hasPerFileRule, multiTenancyEnabled } = options;
|
|
50
|
-
if (
|
|
63
|
+
if (hasDeclaredFilePolicy({ fileConfig, hasPerFileRule })) {
|
|
51
64
|
return undefined;
|
|
52
65
|
}
|
|
53
66
|
const widened = [];
|
|
@@ -75,4 +88,40 @@ function warnOnUndecidedFileAccess(options) {
|
|
|
75
88
|
logger.warn(message);
|
|
76
89
|
return message;
|
|
77
90
|
}
|
|
91
|
+
function warnOnUndecidedEffectiveFileAccess(options) {
|
|
92
|
+
const { fileConfig, handlers, hasPerFileRule, multiTenancyEnabled } = options;
|
|
93
|
+
if (hasDeclaredFilePolicy({ fileConfig, hasPerFileRule })) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
const findings = [];
|
|
97
|
+
for (const handler of handlers) {
|
|
98
|
+
const configured = resolveRoles(handler.key, fileConfig);
|
|
99
|
+
const unexplained = handler.roles.filter((role) => role !== role_enum_1.RoleEnum.ADMIN && !configured.includes(role));
|
|
100
|
+
if (unexplained.length) {
|
|
101
|
+
findings.push(`${handler.member} → ${JSON.stringify([...new Set(unexplained)])}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!findings.length) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
const tenantNote = multiTenancyEnabled
|
|
108
|
+
? ' multiTenancy is active, and the leak crosses tenants too: the file stores are reached outside ' +
|
|
109
|
+
'Mongoose, so mongooseTenantPlugin never scopes them and these role names resolve against ' +
|
|
110
|
+
'user.roles — a GLOBAL attribute — never against membership.role.'
|
|
111
|
+
: '';
|
|
112
|
+
const message = `A registered file endpoint is open beyond platform admins through roles declared in your own ` +
|
|
113
|
+
`class, not through configuration (${findings.join(', ')}), and no per-file policy is declared: ` +
|
|
114
|
+
`file.access is unset and CoreFileService.checkRights() is not overridden. Because the member is ` +
|
|
115
|
+
`RE-DECLARED, file.downloadRoles/uploadRoles/deleteRoles do NOT apply to it — decorator metadata ` +
|
|
116
|
+
`lives on the function object, so your override keeps its own @Roles() and the configuration ` +
|
|
117
|
+
`never reaches the route. Every holder of such a role can therefore read, overwrite or delete ` +
|
|
118
|
+
`EVERY file — and file ids are not secret, they are ENUMERABLE (an ObjectId shares a per-process ` +
|
|
119
|
+
`random part and an incrementing counter, so one own upload reveals the neighbourhood), with no ` +
|
|
120
|
+
`rate limit on the file routes.${tenantNote} Either inherit the member instead of re-declaring ` +
|
|
121
|
+
`it, so the knobs apply, or declare the per-file policy with file.access ` +
|
|
122
|
+
`('public' | 'authenticated' | 'owner' | 'tenant') or an overridden checkRights() — see ` +
|
|
123
|
+
`src/core/modules/file/README.md § Access control.`;
|
|
124
|
+
logger.warn(message);
|
|
125
|
+
return message;
|
|
126
|
+
}
|
|
78
127
|
//# sourceMappingURL=file-roles.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-roles.config.js","sourceRoot":"","sources":["../../../../src/core/modules/file/file-roles.config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"file-roles.config.js","sourceRoot":"","sources":["../../../../src/core/modules/file/file-roles.config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IFileConfig } from '../../common/interfaces/server-options.interface';
|
|
2
|
-
export { FILE_ROLE_DEFAULTS, resolveRoles, warnOnPresignedDownloadsWithRestrictedRoles, warnOnUndecidedFileAccess, } from './file-roles.config';
|
|
3
|
-
export type { FileRoleKey } from './file-roles.config';
|
|
2
|
+
export { FILE_ROLE_DEFAULTS, FILE_ROLE_MEMBERS, resolveRoles, warnOnPresignedDownloadsWithRestrictedRoles, warnOnUndecidedEffectiveFileAccess, warnOnUndecidedFileAccess, } from './file-roles.config';
|
|
3
|
+
export type { FileEndpointClassName, FileRoleKey, ObservedFileHandler } from './file-roles.config';
|
|
4
4
|
export declare function applyFileRoles(config?: IFileConfig): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.warnOnUndecidedFileAccess = exports.warnOnPresignedDownloadsWithRestrictedRoles = exports.resolveRoles = exports.FILE_ROLE_DEFAULTS = void 0;
|
|
3
|
+
exports.warnOnUndecidedFileAccess = exports.warnOnUndecidedEffectiveFileAccess = exports.warnOnPresignedDownloadsWithRestrictedRoles = exports.resolveRoles = exports.FILE_ROLE_MEMBERS = exports.FILE_ROLE_DEFAULTS = void 0;
|
|
4
4
|
exports.applyFileRoles = applyFileRoles;
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const core_file_controller_1 = require("./core-file.controller");
|
|
@@ -9,30 +9,24 @@ const file_roles_config_1 = require("./file-roles.config");
|
|
|
9
9
|
const logger = new common_1.Logger('CoreFileRoles');
|
|
10
10
|
var file_roles_config_2 = require("./file-roles.config");
|
|
11
11
|
Object.defineProperty(exports, "FILE_ROLE_DEFAULTS", { enumerable: true, get: function () { return file_roles_config_2.FILE_ROLE_DEFAULTS; } });
|
|
12
|
+
Object.defineProperty(exports, "FILE_ROLE_MEMBERS", { enumerable: true, get: function () { return file_roles_config_2.FILE_ROLE_MEMBERS; } });
|
|
12
13
|
Object.defineProperty(exports, "resolveRoles", { enumerable: true, get: function () { return file_roles_config_2.resolveRoles; } });
|
|
13
14
|
Object.defineProperty(exports, "warnOnPresignedDownloadsWithRestrictedRoles", { enumerable: true, get: function () { return file_roles_config_2.warnOnPresignedDownloadsWithRestrictedRoles; } });
|
|
15
|
+
Object.defineProperty(exports, "warnOnUndecidedEffectiveFileAccess", { enumerable: true, get: function () { return file_roles_config_2.warnOnUndecidedEffectiveFileAccess; } });
|
|
14
16
|
Object.defineProperty(exports, "warnOnUndecidedFileAccess", { enumerable: true, get: function () { return file_roles_config_2.warnOnUndecidedFileAccess; } });
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
owner: () => core_file_controller_1.CoreFileController.prototype.getFileById,
|
|
20
|
-
},
|
|
21
|
-
{ key: 'downloadRoles', member: 'CoreFileController.getFile', owner: () => core_file_controller_1.CoreFileController.prototype.getFile },
|
|
22
|
-
{ key: 'downloadRoles', member: 'CoreFileResolver.getFileInfo', owner: () => core_file_resolver_1.CoreFileResolver.prototype.getFileInfo },
|
|
23
|
-
{ key: 'uploadRoles', member: 'CoreFileResolver.uploadFile', owner: () => core_file_resolver_1.CoreFileResolver.prototype.uploadFile },
|
|
24
|
-
{ key: 'uploadRoles', member: 'CoreFileResolver.uploadFiles', owner: () => core_file_resolver_1.CoreFileResolver.prototype.uploadFiles },
|
|
25
|
-
{ key: 'deleteRoles', member: 'CoreFileResolver.deleteFile', owner: () => core_file_resolver_1.CoreFileResolver.prototype.deleteFile },
|
|
26
|
-
];
|
|
17
|
+
const ENDPOINT_PROTOTYPES = {
|
|
18
|
+
CoreFileController: core_file_controller_1.CoreFileController.prototype,
|
|
19
|
+
CoreFileResolver: core_file_resolver_1.CoreFileResolver.prototype,
|
|
20
|
+
};
|
|
27
21
|
function applyFileRoles(config) {
|
|
28
22
|
const resolved = new Map();
|
|
29
|
-
for (const {
|
|
23
|
+
for (const { className, key, method } of file_roles_config_1.FILE_ROLE_MEMBERS) {
|
|
30
24
|
if (!resolved.has(key)) {
|
|
31
25
|
resolved.set(key, (0, file_roles_config_1.resolveRoles)(key, config));
|
|
32
26
|
}
|
|
33
|
-
const target =
|
|
27
|
+
const target = ENDPOINT_PROTOTYPES[className][method];
|
|
34
28
|
if (typeof target !== 'function') {
|
|
35
|
-
logger.warn(`Cannot apply file.${key}: ${
|
|
29
|
+
logger.warn(`Cannot apply file.${key}: ${className}.${method} is not a function — skipping.`);
|
|
36
30
|
continue;
|
|
37
31
|
}
|
|
38
32
|
Reflect.defineMetadata('roles', resolved.get(key), target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-roles.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/file/file-roles.helper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"file-roles.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/file/file-roles.helper.ts"],"names":[],"mappings":";;;AAyDA,wCAgBC;AAzED,2CAAwC;AAGxC,iEAA4D;AAC5D,6DAAwD;AACxD,2DAA0G;AAE1G,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,eAAe,CAAC,CAAC;AAK3C,yDAO6B;AAN3B,uHAAA,kBAAkB,OAAA;AAClB,sHAAA,iBAAiB,OAAA;AACjB,iHAAA,YAAY,OAAA;AACZ,gJAAA,2CAA2C,OAAA;AAC3C,uIAAA,kCAAkC,OAAA;AAClC,8HAAA,yBAAyB,OAAA;AAW3B,MAAM,mBAAmB,GAA2C;IAClE,kBAAkB,EAAE,yCAAkB,CAAC,SAAS;IAChD,gBAAgB,EAAE,qCAAgB,CAAC,SAAS;CAC7C,CAAC;AAyBF,SAAgB,cAAc,CAAC,MAAoB;IACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAElD,KAAK,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,qCAAiB,EAAE,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAA,gCAAY,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,MAAM,GAAI,mBAAmB,CAAC,SAAS,CAA6B,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,KAAK,SAAS,IAAI,MAAM,gCAAgC,CAAC,CAAC;YAC9F,SAAS;QACX,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
|
package/dist/core.module.js
CHANGED
|
@@ -45,6 +45,7 @@ const core_better_auth_user_mapper_1 = require("./core/modules/better-auth/core-
|
|
|
45
45
|
const core_better_auth_module_1 = require("./core/modules/better-auth/core-better-auth.module");
|
|
46
46
|
const core_better_auth_service_1 = require("./core/modules/better-auth/core-better-auth.service");
|
|
47
47
|
const error_code_module_1 = require("./core/modules/error-code/error-code.module");
|
|
48
|
+
const core_file_access_audit_initializer_1 = require("./core/modules/file/core-file-access-audit.initializer");
|
|
48
49
|
const file_roles_helper_1 = require("./core/modules/file/file-roles.helper");
|
|
49
50
|
const core_health_check_module_1 = require("./core/modules/health-check/core-health-check.module");
|
|
50
51
|
const core_hub_module_1 = require("./core/modules/hub/core-hub.module");
|
|
@@ -148,6 +149,7 @@ let CoreModule = class CoreModule {
|
|
|
148
149
|
useValue: new config_service_1.ConfigService(config),
|
|
149
150
|
},
|
|
150
151
|
core_cron_jobs_initializer_1.CoreCronJobsInitializer,
|
|
152
|
+
core_file_access_audit_initializer_1.CoreFileAccessAuditInitializer,
|
|
151
153
|
core_redis_service_1.CoreRedisService,
|
|
152
154
|
core_s3_service_1.CoreS3Service,
|
|
153
155
|
core_trust_proxy_initializer_1.CoreTrustProxyInitializer,
|
|
@@ -198,7 +200,7 @@ let CoreModule = class CoreModule {
|
|
|
198
200
|
config.mongoose.options.monitorCommands = true;
|
|
199
201
|
}
|
|
200
202
|
}
|
|
201
|
-
const imports = [mongoose_1.MongooseModule.forRoot(config.mongoose.uri, config.mongoose.options)];
|
|
203
|
+
const imports = [core_1.DiscoveryModule, mongoose_1.MongooseModule.forRoot(config.mongoose.uri, config.mongoose.options)];
|
|
202
204
|
if (isGraphQlEnabled && config.graphQl) {
|
|
203
205
|
imports.push(graphql_1.GraphQLModule.forRootAsync(Object.assign({ driver: apollo_1.ApolloDriver }, config.graphQl.driver, config.graphQl.options)));
|
|
204
206
|
}
|
package/dist/core.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -29,9 +29,11 @@ export * from './core/common/helpers/cookies.helper';
|
|
|
29
29
|
export * from './core/common/helpers/graceful-shutdown.helper';
|
|
30
30
|
export * from './core/common/helpers/db.helper';
|
|
31
31
|
export * from './core/common/helpers/decorator.helper';
|
|
32
|
+
export * from './core/common/helpers/execution-context-request.helper';
|
|
32
33
|
export * from './core/common/helpers/file.helper';
|
|
33
34
|
export * from './core/common/helpers/filter.helper';
|
|
34
35
|
export * from './core/common/helpers/graphql.helper';
|
|
36
|
+
export * from './core/common/helpers/graphql-ws-context.helper';
|
|
35
37
|
export * from './core/common/helpers/interceptor.helper';
|
|
36
38
|
export * from './core/common/helpers/gridfs.helper';
|
|
37
39
|
export * from './core/common/helpers/input.helper';
|
|
@@ -87,6 +89,7 @@ export * from './core/common/services/core-cron-jobs.service';
|
|
|
87
89
|
export * from './core/common/services/core-redis.service';
|
|
88
90
|
export * from './core/common/services/core-redis-pubsub';
|
|
89
91
|
export * from './core/common/services/core-s3.service';
|
|
92
|
+
export * from './core/common/services/core-tenant-context.registry';
|
|
90
93
|
export * from './core/common/services/rate-limit-store';
|
|
91
94
|
export * from './core/common/services/crud.service';
|
|
92
95
|
export * from './core/common/services/email.service';
|
|
@@ -141,6 +144,7 @@ export * from './core/modules/auth/tokens.decorator';
|
|
|
141
144
|
export * from './core/modules/ai';
|
|
142
145
|
export * from './core/modules/better-auth';
|
|
143
146
|
export * from './core/modules/error-code';
|
|
147
|
+
export * from './core/modules/file/core-file-access-audit.initializer';
|
|
144
148
|
export * from './core/modules/file/core-file-info.model';
|
|
145
149
|
export * from './core/modules/file/core-file.controller';
|
|
146
150
|
export * from './core/modules/file/core-file.resolver';
|
package/dist/index.js
CHANGED
|
@@ -44,9 +44,11 @@ __exportStar(require("./core/common/helpers/cookies.helper"), exports);
|
|
|
44
44
|
__exportStar(require("./core/common/helpers/graceful-shutdown.helper"), exports);
|
|
45
45
|
__exportStar(require("./core/common/helpers/db.helper"), exports);
|
|
46
46
|
__exportStar(require("./core/common/helpers/decorator.helper"), exports);
|
|
47
|
+
__exportStar(require("./core/common/helpers/execution-context-request.helper"), exports);
|
|
47
48
|
__exportStar(require("./core/common/helpers/file.helper"), exports);
|
|
48
49
|
__exportStar(require("./core/common/helpers/filter.helper"), exports);
|
|
49
50
|
__exportStar(require("./core/common/helpers/graphql.helper"), exports);
|
|
51
|
+
__exportStar(require("./core/common/helpers/graphql-ws-context.helper"), exports);
|
|
50
52
|
__exportStar(require("./core/common/helpers/interceptor.helper"), exports);
|
|
51
53
|
__exportStar(require("./core/common/helpers/gridfs.helper"), exports);
|
|
52
54
|
__exportStar(require("./core/common/helpers/input.helper"), exports);
|
|
@@ -102,6 +104,7 @@ __exportStar(require("./core/common/services/core-cron-jobs.service"), exports);
|
|
|
102
104
|
__exportStar(require("./core/common/services/core-redis.service"), exports);
|
|
103
105
|
__exportStar(require("./core/common/services/core-redis-pubsub"), exports);
|
|
104
106
|
__exportStar(require("./core/common/services/core-s3.service"), exports);
|
|
107
|
+
__exportStar(require("./core/common/services/core-tenant-context.registry"), exports);
|
|
105
108
|
__exportStar(require("./core/common/services/rate-limit-store"), exports);
|
|
106
109
|
__exportStar(require("./core/common/services/crud.service"), exports);
|
|
107
110
|
__exportStar(require("./core/common/services/email.service"), exports);
|
|
@@ -156,6 +159,7 @@ __exportStar(require("./core/modules/auth/tokens.decorator"), exports);
|
|
|
156
159
|
__exportStar(require("./core/modules/ai"), exports);
|
|
157
160
|
__exportStar(require("./core/modules/better-auth"), exports);
|
|
158
161
|
__exportStar(require("./core/modules/error-code"), exports);
|
|
162
|
+
__exportStar(require("./core/modules/file/core-file-access-audit.initializer"), exports);
|
|
159
163
|
__exportStar(require("./core/modules/file/core-file-info.model"), exports);
|
|
160
164
|
__exportStar(require("./core/modules/file/core-file.controller"), exports);
|
|
161
165
|
__exportStar(require("./core/modules/file/core-file.resolver"), exports);
|