@lenne.tech/nest-server 11.22.1 → 11.23.0
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 -0
- package/CLAUDE.md +58 -0
- package/FRAMEWORK-API.md +6 -2
- package/dist/core/common/decorators/restricted.decorator.js +21 -4
- package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
- package/dist/core/common/interfaces/server-options.interface.d.ts +1 -0
- package/dist/core/common/services/crud.service.d.ts +4 -1
- package/dist/core/common/services/crud.service.js +24 -2
- package/dist/core/common/services/crud.service.js.map +1 -1
- package/dist/core/common/services/module.service.d.ts +3 -2
- package/dist/core/common/services/module.service.js +43 -20
- package/dist/core/common/services/module.service.js.map +1 -1
- package/dist/core/common/services/request-context.service.d.ts +3 -0
- package/dist/core/common/services/request-context.service.js +12 -0
- package/dist/core/common/services/request-context.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/REQUEST-LIFECYCLE.md +25 -2
- package/docs/native-driver-security.md +153 -0
- package/docs/process-performance-optimization.md +493 -0
- package/migration-guides/11.22.x-to-11.23.0.md +235 -0
- package/package.json +16 -16
- package/src/core/common/decorators/restricted.decorator.ts +44 -4
- package/src/core/common/interfaces/server-options.interface.ts +8 -0
- package/src/core/common/services/crud.service.ts +77 -5
- package/src/core/common/services/module.service.ts +96 -35
- package/src/core/common/services/request-context.service.ts +47 -0
|
@@ -214,6 +214,7 @@ This pattern is currently applied to:
|
|
|
214
214
|
| Secret Fields Removal | `security.secretFields` | Array | `['password', 'verificationToken', ...]` |
|
|
215
215
|
| Multi-Tenancy | `multiTenancy` | Presence Implies Enabled | `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: `CoreTenantGuard.invalidateUser(userId)` / `invalidateAll()` |
|
|
216
216
|
| 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) |
|
|
217
|
+
| 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 |
|
|
217
218
|
|
|
218
219
|
## Module Override Pattern (via `ICoreModuleOverrides`)
|
|
219
220
|
|
package/CLAUDE.md
CHANGED
|
@@ -167,8 +167,66 @@ Detailed documentation in `.claude/rules/`:
|
|
|
167
167
|
| `package-management.md` | Fixed package versions only - no `^`, `~`, or ranges |
|
|
168
168
|
| `framework-compatibility.md` | Maintenance obligations for FRAMEWORK-API.md, shipped docs, cross-repo dependencies |
|
|
169
169
|
|
|
170
|
+
## Native MongoDB Driver — Security Rules
|
|
171
|
+
|
|
172
|
+
### model.collection / model.db — BLOCKED
|
|
173
|
+
|
|
174
|
+
Access to `this.mainDbModel.collection` and `this.mainDbModel.db` is blocked via TypeScript type (`SafeModel = Omit<Model, 'collection' | 'db'>`).
|
|
175
|
+
For additionally injected models (`@InjectModel`): **NEVER** use `.collection.*` or `.db.*`.
|
|
176
|
+
All Mongoose plugins (Tenant, Audit, RoleGuard, Password) are bypassed.
|
|
177
|
+
|
|
178
|
+
**Use Mongoose Model methods instead:**
|
|
179
|
+
|
|
180
|
+
| Forbidden | Allowed |
|
|
181
|
+
|-----------|---------|
|
|
182
|
+
| `collection.insertOne(doc)` | `Model.insertMany([doc])` |
|
|
183
|
+
| `collection.bulkWrite(ops)` | `Model.bulkWrite(ops)` |
|
|
184
|
+
| `collection.updateOne(f, u)` | `Model.updateOne(f, u)` |
|
|
185
|
+
| `collection.updateMany(f, u)` | `Model.updateMany(f, u)` |
|
|
186
|
+
| `collection.deleteOne(f)` | `Model.deleteOne(f)` |
|
|
187
|
+
| `collection.deleteMany(f)` | `Model.deleteMany(f)` |
|
|
188
|
+
| `collection.find(f)` | `Model.find(f)` or `Model.find(f).lean()` |
|
|
189
|
+
| `collection.aggregate(p)` | `Model.aggregate(p)` |
|
|
190
|
+
|
|
191
|
+
If native access is unavoidable: use `this.getNativeCollection(reason)` or `this.getNativeConnection(reason)` from CrudService.
|
|
192
|
+
|
|
193
|
+
### connection.db.collection() — Use With Caution
|
|
194
|
+
|
|
195
|
+
Allowed for:
|
|
196
|
+
- Collections without Mongoose schema (OAuth, BetterAuth, MCP)
|
|
197
|
+
- Read-only aggregations/counts on other collections
|
|
198
|
+
- Admin operations (indexes, drops, backups)
|
|
199
|
+
|
|
200
|
+
**NOT allowed for:**
|
|
201
|
+
- Write operations on tenant-scoped collections → use Mongoose Model instead
|
|
202
|
+
- CRUD on collections that have a Mongoose schema → use CrudService instead
|
|
203
|
+
|
|
204
|
+
Details: [`docs/native-driver-security.md`](docs/native-driver-security.md)
|
|
205
|
+
|
|
206
|
+
### CrudService process() Pipeline — Memory Considerations
|
|
207
|
+
|
|
208
|
+
The `process()` pipeline (prepareInput → checkRights → serviceFunc → processFieldSelection → prepareOutput → checkRights) adds memory overhead per call through object cloning, Mongoose hydration, and populate operations. For typical API usage this is negligible, but it can become significant in:
|
|
209
|
+
|
|
210
|
+
- **High-frequency operations** (e.g. monitor checks running every 10-60 seconds)
|
|
211
|
+
- **Service cascades** (Service A → Service B → Service C, each going through process())
|
|
212
|
+
- **Populate chains** (3-5 levels of nested population)
|
|
213
|
+
|
|
214
|
+
**If a project experiences memory issues under high traffic**, check whether `process()` wrapping is the cause. Alternatives that preserve security:
|
|
215
|
+
|
|
216
|
+
| Instead of | Use | Security |
|
|
217
|
+
|-----------|-----|----------|
|
|
218
|
+
| `CrudService.create(input)` | `Model.insertMany([input])` — triggers all Mongoose plugins | Tenant, Audit, RoleGuard, Password all active |
|
|
219
|
+
| `CrudService.update(id, input)` | `Model.findByIdAndUpdate(id, input)` — triggers all Mongoose plugins | Tenant filter, Audit, RoleGuard all active |
|
|
220
|
+
| `CrudService.updateForce(id, input)` | `Model.findByIdAndUpdate(id, { $set: input }).lean()` — for system-internal updates | Plugins active, no process() overhead |
|
|
221
|
+
|
|
222
|
+
**NEVER** bypass Mongoose entirely via `collection.*` — see section above. The CheckSecurityInterceptor acts as a safety net on HTTP responses regardless of how data was written.
|
|
223
|
+
|
|
224
|
+
Details: [`docs/process-performance-optimization.md`](docs/process-performance-optimization.md)
|
|
225
|
+
|
|
170
226
|
## In-Depth Documentation
|
|
171
227
|
|
|
172
228
|
| File | Content |
|
|
173
229
|
|------|---------|
|
|
174
230
|
| [`docs/REQUEST-LIFECYCLE.md`](docs/REQUEST-LIFECYCLE.md) | Complete request lifecycle, security architecture, interceptor chain, decorator reference, CrudService pipeline, Safety Net, diagrams |
|
|
231
|
+
| [`docs/native-driver-security.md`](docs/native-driver-security.md) | Native MongoDB Driver restrictions, secure alternatives, review checklist |
|
|
232
|
+
| [`docs/process-performance-optimization.md`](docs/process-performance-optimization.md) | process() pipeline performance optimizations |
|
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-04-
|
|
3
|
+
> Auto-generated from source code on 2026-04-07 (v11.23.0)
|
|
4
4
|
> File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
|
|
5
5
|
|
|
6
6
|
## CoreModule.forRoot()
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
- `compression?`: `boolean | compression.CompressionOptions` — Whether to use the compression middleware package to enable gzip compression.
|
|
22
22
|
- `cookies?`: `boolean` — Whether to use cookies for authentication handling
|
|
23
23
|
- `cronJobs?`: `Record<string, string | false | 0 | CronJobConfigWithTimeZone<null, null> | C...` — Cron jobs configuration object with the name of the cron job function as key
|
|
24
|
+
- `debugProcessInput?`: `boolean` (default: `false`) — When true, logs a debug message when prepareInput() changes the input type during process().
|
|
24
25
|
- `email?`: `{ defaultSender?: { email?: string; name?: string; }; mailjet?: MailjetOption...` — SMTP and template configuration for sending emails
|
|
25
26
|
- `env?`: `string` — Environment
|
|
26
27
|
- `errorCode?`: `IErrorCode` — Configuration for the error code module
|
|
@@ -183,7 +184,10 @@ Generic: `CrudService<Model, CreateInput, UpdateInput>`
|
|
|
183
184
|
- `async findOne(filter?: FilterArgs | { filterQuery?: QueryFilter<any>; queryOptions?: QueryOptions; }, serviceOptions?: ServiceOptions)`: `Promise<Model>` — Find one item via filter
|
|
184
185
|
- `async findOneForce(filter?: FilterArgs | { filterQuery?: QueryFilter<any>; queryOptions?: QueryOptions; s..., serviceOptions?: ServiceOptions)`: `Promise<Model>` — Find one item via filter without checks or restrictions
|
|
185
186
|
- `async findOneRaw(filter?: FilterArgs | { filterQuery?: QueryFilter<any>; queryOptions?: QueryOptions; s..., serviceOptions?: ServiceOptions)`: `Promise<Model>` — Find one item via filter without checks, restrictions or preparations
|
|
186
|
-
- `getModel()`: `MongooseModel<Document<Types.ObjectId, any, any, Record<string, any>, {}> & M...` — Get service model to process queries directly
|
|
187
|
+
- `getModel()`: `MongooseModel<Document<Types.ObjectId, any, any, Record<string, any>, {}> & M...` — Get service model to process queries directly.
|
|
188
|
+
- `getNativeCollection(reason: string)`: `Collection<Document>` — Get the native MongoDB Collection, bypassing all Mongoose plugins.
|
|
189
|
+
- `getNativeConnection(reason: string)`: `Connection` — Get the Mongoose Connection (which provides access to the native MongoDB Db and MongoClient).
|
|
190
|
+
- `validateNativeAccessReason(reason: string, method: string)`: `void`
|
|
187
191
|
- `async read(input: string | FilterArgs | { filterQuery?: QueryFilter<any>; queryOptions?: QueryO..., serviceOptions?: ServiceOptions)`: `Promise<Model | Model[]>` — CRUD alias for get or find
|
|
188
192
|
- `async readForce(input: string | FilterArgs | { filterQuery?: QueryFilter<any>; queryOptions?: QueryO..., serviceOptions?: ServiceOptions)`: `Promise<Model | Model[]>` — CRUD alias for getForce or findForce
|
|
189
193
|
- `async readRaw(input: string | FilterArgs | { filterQuery?: QueryFilter<any>; queryOptions?: QueryO..., serviceOptions?: ServiceOptions)`: `Promise<Model | Model[]>` — CRUD alias for getRaw or findRaw
|
|
@@ -13,14 +13,31 @@ const Restricted = (...rolesOrMember) => {
|
|
|
13
13
|
return Reflect.metadata(restrictedMetaKey, rolesOrMember);
|
|
14
14
|
};
|
|
15
15
|
exports.Restricted = Restricted;
|
|
16
|
+
const restrictedMetadataCache = new WeakMap();
|
|
16
17
|
const getRestricted = (object, propertyKey) => {
|
|
17
18
|
if (!object) {
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const cacheTarget = typeof object === 'function' ? object : object.constructor;
|
|
22
|
+
if (!cacheTarget) {
|
|
23
|
+
return propertyKey
|
|
24
|
+
? Reflect.getMetadata(restrictedMetaKey, object, propertyKey)
|
|
25
|
+
: Reflect.getMetadata(restrictedMetaKey, object);
|
|
22
26
|
}
|
|
23
|
-
|
|
27
|
+
let classCache = restrictedMetadataCache.get(cacheTarget);
|
|
28
|
+
if (!classCache) {
|
|
29
|
+
classCache = new Map();
|
|
30
|
+
restrictedMetadataCache.set(cacheTarget, classCache);
|
|
31
|
+
}
|
|
32
|
+
const cacheKey = propertyKey || '__class__';
|
|
33
|
+
if (classCache.has(cacheKey)) {
|
|
34
|
+
return classCache.get(cacheKey);
|
|
35
|
+
}
|
|
36
|
+
const metadata = propertyKey
|
|
37
|
+
? Reflect.getMetadata(restrictedMetaKey, object, propertyKey)
|
|
38
|
+
: Reflect.getMetadata(restrictedMetaKey, object);
|
|
39
|
+
classCache.set(cacheKey, metadata);
|
|
40
|
+
return metadata;
|
|
24
41
|
};
|
|
25
42
|
exports.getRestricted = getRestricted;
|
|
26
43
|
const checkRestricted = (data, user, options = {}, processedObjects = []) => {
|
|
@@ -148,7 +165,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = []) => {
|
|
|
148
165
|
continue;
|
|
149
166
|
}
|
|
150
167
|
const restricted = (0, exports.getRestricted)(data, propertyKey) || [];
|
|
151
|
-
const concatenatedRestrictions = config.mergeRoles ? _.uniq(objectRestrictions.concat(restricted)) : restricted;
|
|
168
|
+
const concatenatedRestrictions = config.mergeRoles && objectRestrictions.length ? _.uniq(objectRestrictions.concat(restricted)) : restricted;
|
|
152
169
|
const valid = validateRestricted(concatenatedRestrictions);
|
|
153
170
|
if (valid) {
|
|
154
171
|
config.isCreatorOfParent =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAuD;AACvD,4BAA0B;AAC1B,4BAA6B;AAG7B,kDAA8C;AAC9C,oDAAgE;AAChE,iFAAqE;AAErE,kFAA2E;AAK3E,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AA4BxC,MAAM,UAAU,GAAG,CAAC,GAAG,aAA6B,EAAsC,EAAE;IACjG,OAAO,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;
|
|
1
|
+
{"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -134,6 +134,7 @@ export interface IServerOptions {
|
|
|
134
134
|
compression?: boolean | compression.CompressionOptions;
|
|
135
135
|
cookies?: boolean;
|
|
136
136
|
cronJobs?: Record<string, CronExpression | CronJobConfigWithTimeZone | CronJobConfigWithUtcOffset | Date | Falsy | string>;
|
|
137
|
+
debugProcessInput?: boolean;
|
|
137
138
|
email?: {
|
|
138
139
|
defaultSender?: {
|
|
139
140
|
email?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AggregateOptions, Document, Model as MongooseModel, PipelineStage, Query, QueryFilter, QueryOptions } from 'mongoose';
|
|
1
|
+
import { AggregateOptions, Collection, Connection, Document, Model as MongooseModel, PipelineStage, Query, QueryFilter, QueryOptions } from 'mongoose';
|
|
2
2
|
import { FilterArgs } from '../args/filter.args';
|
|
3
3
|
import { ServiceOptions } from '../interfaces/service-options.interface';
|
|
4
4
|
import { CoreModel } from '../models/core-model.model';
|
|
@@ -90,6 +90,9 @@ export declare abstract class CrudService<Model extends CoreModel = any, CreateI
|
|
|
90
90
|
samples?: number;
|
|
91
91
|
}, serviceOptions?: ServiceOptions): Promise<Model>;
|
|
92
92
|
getModel(): MongooseModel<Document & Model>;
|
|
93
|
+
protected getNativeCollection(reason: string): Collection;
|
|
94
|
+
protected getNativeConnection(reason: string): Connection;
|
|
95
|
+
private validateNativeAccessReason;
|
|
93
96
|
read(id: string, serviceOptions?: ServiceOptions): Promise<Model>;
|
|
94
97
|
read(filter: FilterArgs | {
|
|
95
98
|
filterQuery?: QueryFilter<any>;
|
|
@@ -35,7 +35,11 @@ class CrudService extends module_service_1.ModuleService {
|
|
|
35
35
|
serviceOptions = (0, input_helper_1.prepareServiceOptionsForCreate)(serviceOptions);
|
|
36
36
|
return this.process(async (data) => {
|
|
37
37
|
const currentUserId = serviceOptions?.currentUser?.id;
|
|
38
|
-
return new this.mainDbModel({
|
|
38
|
+
return new this.mainDbModel({
|
|
39
|
+
...data.input,
|
|
40
|
+
createdBy: currentUserId,
|
|
41
|
+
updatedBy: currentUserId,
|
|
42
|
+
}).save();
|
|
39
43
|
}, { input, serviceOptions });
|
|
40
44
|
}
|
|
41
45
|
async createForce(input, serviceOptions = {}) {
|
|
@@ -160,7 +164,7 @@ class CrudService extends module_service_1.ModuleService {
|
|
|
160
164
|
}, { input: filter, outputPath: 'items', serviceOptions });
|
|
161
165
|
}
|
|
162
166
|
async findAndCountForce(filter, serviceOptions = {}) {
|
|
163
|
-
serviceOptions.
|
|
167
|
+
serviceOptions.force = true;
|
|
164
168
|
return this.findAndCount(filter, serviceOptions);
|
|
165
169
|
}
|
|
166
170
|
async findAndCountRaw(filter, serviceOptions = {}) {
|
|
@@ -224,6 +228,24 @@ class CrudService extends module_service_1.ModuleService {
|
|
|
224
228
|
getModel() {
|
|
225
229
|
return this.mainDbModel;
|
|
226
230
|
}
|
|
231
|
+
getNativeCollection(reason) {
|
|
232
|
+
this.validateNativeAccessReason(reason, 'getNativeCollection');
|
|
233
|
+
const modelName = this.mainDbModel?.modelName || 'Unknown';
|
|
234
|
+
common_1.Logger.warn(`[SECURITY] Native collection access: ${reason} (Model: ${modelName})`, this.constructor.name);
|
|
235
|
+
return this.mainDbModel.collection;
|
|
236
|
+
}
|
|
237
|
+
getNativeConnection(reason) {
|
|
238
|
+
this.validateNativeAccessReason(reason, 'getNativeConnection');
|
|
239
|
+
const modelName = this.mainDbModel?.modelName || 'Unknown';
|
|
240
|
+
common_1.Logger.warn(`[SECURITY] Native connection access: ${reason} (Model: ${modelName})`, this.constructor.name);
|
|
241
|
+
return this.mainDbModel.db;
|
|
242
|
+
}
|
|
243
|
+
validateNativeAccessReason(reason, method) {
|
|
244
|
+
const trimmed = reason?.trim();
|
|
245
|
+
if (!trimmed || trimmed.length < 20) {
|
|
246
|
+
throw new Error(`${method} requires a meaningful reason (min 20 chars) — explain why native access is needed`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
227
249
|
async read(input, serviceOptions) {
|
|
228
250
|
if (typeof input === 'string') {
|
|
229
251
|
return this.get(input, serviceOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/crud.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/crud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,11 @@ import { ServiceOptions } from '../interfaces/service-options.interface';
|
|
|
4
4
|
import { CoreModel } from '../models/core-model.model';
|
|
5
5
|
import { FieldSelection } from '../types/field-selection.type';
|
|
6
6
|
import { ConfigService } from './config.service';
|
|
7
|
+
export type SafeModel<T> = Omit<Model<T>, 'collection' | 'db'>;
|
|
7
8
|
export declare abstract class ModuleService<T extends CoreModel = any> {
|
|
8
9
|
protected configService: ConfigService;
|
|
9
10
|
protected mainModelConstructor: new (...args: any[]) => T;
|
|
10
|
-
protected mainDbModel:
|
|
11
|
+
protected mainDbModel: SafeModel<Document & T>;
|
|
11
12
|
protected constructor(options?: {
|
|
12
13
|
configService?: ConfigService;
|
|
13
14
|
mainDbModel?: Model<Document & T>;
|
|
@@ -40,7 +41,7 @@ export declare abstract class ModuleService<T extends CoreModel = any> {
|
|
|
40
41
|
prepareInput(input: Record<string, any>, options?: ServiceOptions): Promise<any>;
|
|
41
42
|
prepareOutput(output: any, options?: ServiceOptions): Promise<any>;
|
|
42
43
|
processFieldSelection(data: any, fieldsSelection: FieldSelection, options?: {
|
|
43
|
-
dbModel?: Model<Document & T>;
|
|
44
|
+
dbModel?: Model<Document & T> | SafeModel<Document & T>;
|
|
44
45
|
ignoreSelections?: boolean;
|
|
45
46
|
model?: new (...args: any[]) => T;
|
|
46
47
|
}): Promise<T | T[]>;
|
|
@@ -42,6 +42,8 @@ class ModuleService {
|
|
|
42
42
|
setCreateOrUpdateUserId: false,
|
|
43
43
|
...options?.serviceOptions,
|
|
44
44
|
};
|
|
45
|
+
const currentDepth = request_context_service_1.RequestContext.getProcessDepth();
|
|
46
|
+
const isNested = currentDepth > 0;
|
|
45
47
|
if (config.raw) {
|
|
46
48
|
config.prepareInput = null;
|
|
47
49
|
config.prepareOutput = null;
|
|
@@ -72,22 +74,37 @@ class ModuleService {
|
|
|
72
74
|
if (!opts.targetModel && config.inputType) {
|
|
73
75
|
opts.targetModel = config.inputType;
|
|
74
76
|
}
|
|
75
|
-
const originalInput = config.input;
|
|
76
|
-
const inputJSON = JSON.stringify(originalInput);
|
|
77
77
|
const preparedInput = await this.prepareInput(config.input, config);
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
if (this.configService?.getFastButReadOnly('debugProcessInput', false)) {
|
|
79
|
+
try {
|
|
80
|
+
const secretFields = this.configService?.getFastButReadOnly('security.secretFields', [
|
|
81
|
+
'password',
|
|
82
|
+
'verificationToken',
|
|
83
|
+
'passwordResetToken',
|
|
84
|
+
'refreshTokens',
|
|
85
|
+
'tempTokens',
|
|
86
|
+
]);
|
|
87
|
+
const redact = (json) => secretFields.reduce((s, field) => s.replace(new RegExp(`"${field}":\\s*"[^"]*"`, 'g'), `"${field}":"[REDACTED]"`), json || '');
|
|
88
|
+
const originalJSON = redact(JSON.stringify(config.input));
|
|
89
|
+
const preparedJSON = redact(JSON.stringify(preparedInput));
|
|
90
|
+
if (originalJSON !== preparedJSON) {
|
|
91
|
+
console.debug('process: prepareInput changed input of type', config.input?.constructor?.name, 'to type', preparedInput?.constructor?.name);
|
|
92
|
+
}
|
|
82
93
|
}
|
|
83
|
-
|
|
94
|
+
catch {
|
|
95
|
+
}
|
|
96
|
+
}
|
|
84
97
|
config.input = preparedInput;
|
|
85
98
|
}
|
|
86
99
|
if (config.dbObject && config.checkRights && this.checkRights) {
|
|
87
100
|
if (typeof config.dbObject === 'string' || config.dbObject instanceof mongoose_1.Types.ObjectId) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
101
|
+
if (this.mainDbModel) {
|
|
102
|
+
const rawDoc = await this.mainDbModel.findById((0, db_helper_1.getStringIds)(config.dbObject)).lean().exec();
|
|
103
|
+
if (rawDoc) {
|
|
104
|
+
config.dbObject = this.mainModelConstructor?.map
|
|
105
|
+
? this.mainModelConstructor.map(rawDoc)
|
|
106
|
+
: rawDoc;
|
|
107
|
+
}
|
|
91
108
|
}
|
|
92
109
|
}
|
|
93
110
|
}
|
|
@@ -107,17 +124,20 @@ class ModuleService {
|
|
|
107
124
|
}
|
|
108
125
|
config.input.updatedBy = config.currentUser.id;
|
|
109
126
|
}
|
|
127
|
+
const executeServiceFunc = () => request_context_service_1.RequestContext.runWithIncrementedProcessDepth(() => serviceFunc(config));
|
|
110
128
|
let result = config.force
|
|
111
|
-
? await request_context_service_1.RequestContext.runWithBypassRoleGuard(
|
|
112
|
-
: await
|
|
129
|
+
? await request_context_service_1.RequestContext.runWithBypassRoleGuard(executeServiceFunc)
|
|
130
|
+
: await executeServiceFunc();
|
|
113
131
|
if (config.processFieldSelection && config.fieldSelection && this.processFieldSelection) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
132
|
+
if (!isNested || config.populate) {
|
|
133
|
+
let temps = result;
|
|
134
|
+
if (!Array.isArray(result)) {
|
|
135
|
+
temps = [result];
|
|
136
|
+
}
|
|
137
|
+
for (const temp of temps) {
|
|
138
|
+
const field = config.outputPath ? _.get(temp, config.outputPath) : temp;
|
|
139
|
+
await this.processFieldSelection(field, config.fieldSelection, config.processFieldSelection);
|
|
140
|
+
}
|
|
121
141
|
}
|
|
122
142
|
}
|
|
123
143
|
if (config.prepareOutput && this.prepareOutput) {
|
|
@@ -125,6 +145,9 @@ class ModuleService {
|
|
|
125
145
|
if (!opts.targetModel && config.outputType) {
|
|
126
146
|
opts.targetModel = config.outputType;
|
|
127
147
|
}
|
|
148
|
+
if (isNested && !config.populate && typeof opts === 'object') {
|
|
149
|
+
opts.targetModel = undefined;
|
|
150
|
+
}
|
|
128
151
|
if (config.outputPath) {
|
|
129
152
|
let temps = result;
|
|
130
153
|
if (!Array.isArray(result)) {
|
|
@@ -138,7 +161,7 @@ class ModuleService {
|
|
|
138
161
|
result = await this.prepareOutput(result, config);
|
|
139
162
|
}
|
|
140
163
|
}
|
|
141
|
-
if (config.checkRights && (await this.checkRights(undefined, config.currentUser, config))) {
|
|
164
|
+
if (!isNested && config.checkRights && (await this.checkRights(undefined, config.currentUser, config))) {
|
|
142
165
|
const opts = {
|
|
143
166
|
dbObject: config.dbObject,
|
|
144
167
|
processType: process_type_enum_1.ProcessType.OUTPUT,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/module.service.ts"],"names":[],"mappings":";;;AAAA,4BAA6B;AAC7B,uCAAkD;AAElD,kEAAyD;AACzD,oDAA+D;AAC/D,0DAAgD;AAChD,8DAAwE;AACxE,iFAAmG;AAKnG,qEAAyD;AACzD,uEAA2D;
|
|
1
|
+
{"version":3,"file":"module.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/module.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export interface IRequestContext {
|
|
|
11
11
|
tenantIds?: string[];
|
|
12
12
|
tenantRole?: string;
|
|
13
13
|
isAdminBypass?: boolean;
|
|
14
|
+
processDepth?: number;
|
|
14
15
|
}
|
|
15
16
|
export declare class RequestContext {
|
|
16
17
|
private static storage;
|
|
@@ -20,6 +21,8 @@ export declare class RequestContext {
|
|
|
20
21
|
static getLanguage(): string | undefined;
|
|
21
22
|
static isBypassRoleGuard(): boolean;
|
|
22
23
|
static runWithBypassRoleGuard<T>(fn: () => T): T;
|
|
24
|
+
static getProcessDepth(): number;
|
|
25
|
+
static runWithIncrementedProcessDepth<T>(fn: () => T): T;
|
|
23
26
|
static getTenantId(): string | undefined;
|
|
24
27
|
static isBypassTenantGuard(): boolean;
|
|
25
28
|
static runWithBypassTenantGuard<T>(fn: () => T): T;
|
|
@@ -30,6 +30,18 @@ class RequestContext {
|
|
|
30
30
|
};
|
|
31
31
|
return this.storage.run(context, fn);
|
|
32
32
|
}
|
|
33
|
+
static getProcessDepth() {
|
|
34
|
+
return this.storage.getStore()?.processDepth || 0;
|
|
35
|
+
}
|
|
36
|
+
static runWithIncrementedProcessDepth(fn) {
|
|
37
|
+
const currentStore = this.storage.getStore();
|
|
38
|
+
const currentDepth = currentStore?.processDepth || 0;
|
|
39
|
+
const context = {
|
|
40
|
+
...currentStore,
|
|
41
|
+
processDepth: currentDepth + 1,
|
|
42
|
+
};
|
|
43
|
+
return this.storage.run(context, fn);
|
|
44
|
+
}
|
|
33
45
|
static getTenantId() {
|
|
34
46
|
return this.storage.getStore()?.tenantId;
|
|
35
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/request-context.service.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;
|
|
1
|
+
{"version":3,"file":"request-context.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/request-context.service.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAmChD,MAAa,cAAc;IACjB,MAAM,CAAC,OAAO,GAAG,IAAI,+BAAiB,EAAmB,CAAC;IAElE,MAAM,CAAC,GAAG,CAAI,OAAwB,EAAE,EAAW;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;IAC3C,CAAC;IAKD,MAAM,CAAC,iBAAiB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,CAAC;IAkBD,MAAM,CAAC,sBAAsB,CAAI,EAAW;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE7C,IAAI,YAAY,EAAE,eAAe,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAoB;YAC/B,GAAG,YAAY;YACf,eAAe,EAAE,IAAI;SACtB,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAMD,MAAM,CAAC,eAAe;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,YAAY,IAAI,CAAC,CAAC;IACpD,CAAC;IAwBD,MAAM,CAAC,8BAA8B,CAAI,EAAW;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,YAAY,EAAE,YAAY,IAAI,CAAC,CAAC;QACrD,MAAM,OAAO,GAAoB;YAC/B,GAAG,YAAY;YACf,YAAY,EAAE,YAAY,GAAG,CAAC;SAC/B,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,mBAAmB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7D,CAAC;IAkBD,MAAM,CAAC,wBAAwB,CAAI,EAAW;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE7C,IAAI,YAAY,EAAE,iBAAiB,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAoB;YAC/B,GAAG,YAAY;YACf,iBAAiB,EAAE,IAAI;SACxB,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;;AAlIH,wCAmIC"}
|