@rapidrest/service-core 1.0.0-rc.21 → 1.0.0-rc.22

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.
@@ -65,6 +65,34 @@ export class ModelUtils {
65
65
  ModelUtils.idPropertyCache.set(modelClass, results);
66
66
  return results;
67
67
  }
68
+ /**
69
+ * Retrieves a list of all of the specified class's properties that have the @ReadOnly decorator applied.
70
+ *
71
+ * @param modelClass The class definition to search for read-only properties from.
72
+ * @returns The list of all property names that have the @ReadOnly decorator applied.
73
+ */
74
+ static getReadOnlyPropertyNames(modelClass) {
75
+ const results = [];
76
+ if (ModelUtils.readOnlyPropertyCache.has(modelClass)) {
77
+ return ModelUtils.readOnlyPropertyCache.get(modelClass);
78
+ }
79
+ // The props don't show up correctly on the class def. So instantiate a dummy object that we can read the props
80
+ // from and look for read-only fields.
81
+ let proto = Object.getPrototypeOf(new modelClass());
82
+ while (proto) {
83
+ const props = Object.getOwnPropertyNames(proto);
84
+ for (const prop of props) {
85
+ const isReadOnly = Reflect.getMetadata("rrst:readOnly", proto, prop);
86
+ if (isReadOnly) {
87
+ results.push(prop);
88
+ }
89
+ }
90
+ proto = Object.getPrototypeOf(proto);
91
+ }
92
+ // Cache the results so we're not always having to walk the class structure
93
+ ModelUtils.readOnlyPropertyCache.set(modelClass, results);
94
+ return results;
95
+ }
68
96
  /**
69
97
  * Builds a query object for use with `find` functions of the given repository for retrieving objects matching the
70
98
  * specified unique identifier.
@@ -228,6 +256,45 @@ export class ModelUtils {
228
256
  return param;
229
257
  }
230
258
  }
259
+ /**
260
+ * Recursively verifies that no key in the given value (at any depth, including keys of objects nested inside
261
+ * arrays) is a MongoDB operator (starts with `$`) or uses dot-notation field addressing (contains `.`). Client
262
+ * input is only ever meant to supply plain field values/comparison operands — never raw Mongo query operators —
263
+ * so any such key indicates an attempt to inject arbitrary query behavior (e.g. `$where`, `$expr`, or reaching
264
+ * into a field the API doesn't expose via dot-notation).
265
+ *
266
+ * @param value The value to check, typically a parsed query parameter.
267
+ * @throws {ApiError} If an operator-like or dotted key is found anywhere in `value`.
268
+ */
269
+ static assertNoOperatorInjection(value) {
270
+ if (Array.isArray(value)) {
271
+ for (const item of value) {
272
+ ModelUtils.assertNoOperatorInjection(item);
273
+ }
274
+ }
275
+ else if (value && typeof value === "object") {
276
+ for (const key of Object.keys(value)) {
277
+ if (key.startsWith("$") || key.includes(".")) {
278
+ throw new ApiError(ApiErrors.INVALID_REQUEST, 400, ApiErrorMessages.INVALID_REQUEST);
279
+ }
280
+ ModelUtils.assertNoOperatorInjection(value[key]);
281
+ }
282
+ }
283
+ }
284
+ /**
285
+ * Best-effort check for regex patterns vulnerable to catastrophic backtracking (ReDoS). Rejects patterns that
286
+ * are unreasonably long, or that contain a quantified group whose contents are themselves quantified (e.g.
287
+ * `(a+)+`, `(a*)*`) — the classic shape that causes exponential backtracking in JS's regex engine. This is not
288
+ * an exhaustive defense; it catches the common cases a client would realistically send.
289
+ *
290
+ * @param pattern The user-supplied `like()` pattern.
291
+ */
292
+ static isUnsafeRegexPattern(pattern) {
293
+ if (pattern.length > ModelUtils.MAX_LIKE_PATTERN_LENGTH) {
294
+ return true;
295
+ }
296
+ return /\([^()]*[+*]\)[+*{]/.test(pattern);
297
+ }
231
298
  /**
232
299
  * Given a string containing a parameter value and/or a comparison operation return a MongoDB compatible find value.
233
300
  * e.g.
@@ -256,6 +323,11 @@ export class ModelUtils {
256
323
  value = matches[2];
257
324
  }
258
325
  }
326
+ // `value` is the client-supplied comparison operand — reject any Mongo operator/dotted key hidden
327
+ // inside it, regardless of which (trusted, framework-constructed) operator wrapper it ends up
328
+ // under below. Must run *after* the parse fallback above, not inside its try/catch, so a
329
+ // rejection here isn't silently swallowed as a "not valid JSON" case.
330
+ ModelUtils.assertNoOperatorInjection(value);
259
331
  switch (opName) {
260
332
  case "eq":
261
333
  return value;
@@ -271,8 +343,13 @@ export class ModelUtils {
271
343
  const args = value.split(",");
272
344
  return { $nin: args };
273
345
  }
274
- case "like":
275
- return { $regex: value, $options: "i" };
346
+ case "like": {
347
+ const pattern = String(value);
348
+ if (ModelUtils.isUnsafeRegexPattern(pattern)) {
349
+ throw new ApiError(ApiErrors.INVALID_REQUEST, 400, ApiErrorMessages.INVALID_REQUEST);
350
+ }
351
+ return { $regex: pattern, $options: "i" };
352
+ }
276
353
  case "lt":
277
354
  return { $lt: value };
278
355
  case "lte":
@@ -290,28 +367,36 @@ export class ModelUtils {
290
367
  });
291
368
  throw new ApiError(ApiErrors.SEARCH_INVALID_RANGE, 400, msg);
292
369
  }
370
+ // Attempt to parse the range values to native types, falling back to the raw strings
371
+ let gte = args[0];
372
+ let lte = args[1];
293
373
  try {
294
- // Attempt to parse the range values to native types
295
- return { $gte: JSON.parse(args[0]), $lte: JSON.parse(args[1]) };
374
+ gte = JSON.parse(args[0]);
375
+ lte = JSON.parse(args[1]);
296
376
  }
297
377
  catch (err) {
298
- return { $gte: args[0], $lte: args[1] };
378
+ // Not valid JSON — fall back to the raw strings assigned above.
299
379
  }
380
+ ModelUtils.assertNoOperatorInjection(gte);
381
+ ModelUtils.assertNoOperatorInjection(lte);
382
+ return { $gte: gte, $lte: lte };
300
383
  }
301
384
  default:
302
385
  return value;
303
386
  }
304
387
  }
305
388
  else {
389
+ // Attempt to parse the value to a native type, falling back to a date/string if it's not valid JSON
390
+ let parsed;
306
391
  try {
307
- // Attempt to parse the value to a native type
308
- return JSON.parse(param);
392
+ parsed = JSON.parse(param);
309
393
  }
310
394
  catch (err) {
311
- // If an error occurred it's because the value is a string or date, not another type.
312
395
  const date = new Date(param);
313
396
  return !isNaN(date.valueOf()) ? date : param;
314
397
  }
398
+ ModelUtils.assertNoOperatorInjection(parsed);
399
+ return parsed;
315
400
  }
316
401
  }
317
402
  else {
@@ -564,6 +649,12 @@ export class ModelUtils {
564
649
  }
565
650
  continue;
566
651
  }
652
+ // Reject any other Mongo operator key or dot-notation field path outright — client input may only
653
+ // supply plain field names, never raw query operators (`$or` is the one deliberate exception, handled
654
+ // just below; its sub-queries are validated recursively when they're built).
655
+ if (key !== "$or" && (key.startsWith("$") || key.includes("."))) {
656
+ throw new ApiError(ApiErrors.INVALID_REQUEST, 400, ApiErrorMessages.INVALID_REQUEST);
657
+ }
567
658
  if (key === "$or") {
568
659
  // Array of OR queries
569
660
  let orResults = [];
@@ -578,7 +669,8 @@ export class ModelUtils {
578
669
  continue;
579
670
  }
580
671
  if (Array.isArray(queryParams[key])) {
581
- // Add each value in the array to each corresponding query
672
+ // Add each value in the array to each corresponding query. Injection safety is already enforced
673
+ // inside getQueryParamValueMongo() itself, at the point the client-supplied value is parsed.
582
674
  const conditions = [];
583
675
  for (let i = 0; i < queryParams[key].length; i++) {
584
676
  const value = ModelUtils.getQueryParamValueMongo(queryParams[key][i]);
@@ -649,4 +741,7 @@ export class ModelUtils {
649
741
  }
650
742
  }
651
743
  ModelUtils.idPropertyCache = new Map();
744
+ ModelUtils.readOnlyPropertyCache = new Map();
745
+ /** Maximum accepted length of a client-supplied `like()` search pattern. */
746
+ ModelUtils.MAX_LIKE_PATTERN_LENGTH = 100;
652
747
  //# sourceMappingURL=ModelUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelUtils.js","sourceRoot":"","sources":["../../../src/models/ModelUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelUtils.js","sourceRoot":"","sources":["../../../src/models/ModelUtils.ts"],"names":[],"mappings":"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"}
@@ -104,12 +104,36 @@ export class RepoUtils {
104
104
  throw new ApiError(ApiErrors.INTERNAL_ERROR, 500, ApiErrorMessages.INTERNAL_ERROR);
105
105
  }
106
106
  let count = 0;
107
- // Check user permissions
107
+ // Check user permissions against the class-level ACL. This is a fast-fail gate for users with no
108
+ // legitimate access to the resource type at all; per-record narrowing (below) is an additional layer
109
+ // on top of this, not a replacement for it.
108
110
  if (this.aclUtils?.enabled && !options?.ignoreACL) {
109
111
  if (!(await this.aclUtils.hasPermission(options?.user, this.defaultACLUid, ACLAction.READ))) {
110
112
  throw new ApiError(ApiErrors.AUTH_PERMISSION_FAILURE, 403, ApiErrorMessages.AUTH_PERMISSION_FAILURE);
111
113
  }
112
114
  }
115
+ // Record-level ACLs aren't reflected in the query itself, so the matched uids must be checked
116
+ // individually and counted rather than delegating the count to the database.
117
+ if (this.aclUtils?.enabled && !options?.ignoreACL && this.modelClass.recordACL) {
118
+ let uids = [];
119
+ if (this.repo instanceof MongoRepository) {
120
+ if (Array.isArray(query)) {
121
+ uids = await this.repo.distinct("uid", query[0].$match);
122
+ }
123
+ else {
124
+ uids = await this.repo.distinct("uid", query["$match"] ? query["$match"] : query);
125
+ }
126
+ }
127
+ else {
128
+ (await this.repo.find(query)).forEach((obj) => uids.push(obj.uid));
129
+ }
130
+ for (const uid of uids) {
131
+ if (await this.aclUtils.hasPermission(options?.user, uid, ACLAction.READ)) {
132
+ count++;
133
+ }
134
+ }
135
+ return count;
136
+ }
113
137
  if (this.repo instanceof MongoRepository) {
114
138
  if (Array.isArray(query)) {
115
139
  query.push({ $count: "count" });
@@ -144,6 +168,19 @@ export class RepoUtils {
144
168
  }
145
169
  // Instantiate the object if not already done
146
170
  const clazz = this.getClassType(obj);
171
+ // Reset any @ReadOnly property back to the class's own declared default, discarding whatever the client
172
+ // supplied. `obj` may already be a fully-constructed instance by this point (callers such as
173
+ // ModelRoute.doCreateObject() instantiate before calling create()), so simply deleting the incoming key
174
+ // wouldn't be enough — the constructor that would normally re-apply the default never runs again in
175
+ // that case. Setting the value directly works regardless of whether `obj` is a plain object or already
176
+ // an instance.
177
+ const readOnlyProps = ModelUtils.getReadOnlyPropertyNames(clazz);
178
+ if (readOnlyProps.length > 0) {
179
+ const defaults = new clazz();
180
+ for (const prop of readOnlyProps) {
181
+ obj[prop] = defaults[prop];
182
+ }
183
+ }
147
184
  const newObj = obj instanceof clazz ? obj : this.instantiateObject(obj, clazz);
148
185
  // Make sure an existing object doesn't already exist with the same identifiers
149
186
  const ids = [];
@@ -159,6 +196,20 @@ export class RepoUtils {
159
196
  if (!this.modelClass.trackChanges && count > 0) {
160
197
  throw new ApiError(ApiErrors.IDENTIFIER_EXISTS, 400, ApiErrorMessages.IDENTIFIER_EXISTS);
161
198
  }
199
+ else if (this.modelClass.trackChanges &&
200
+ count > 0 &&
201
+ this.modelClass.recordACL &&
202
+ this.aclUtils?.enabled &&
203
+ !(await this.aclUtils.hasPermission(options?.user, newObj.uid, ACLAction.UPDATE))) {
204
+ // A trackChanges + recordACL model is being "re-created" under an existing uid (i.e. a new version).
205
+ // That's only legitimate for someone who already has update rights on the existing record — generic
206
+ // class-level CREATE permission isn't enough, otherwise any creator could inject a new "latest
207
+ // version" of another user's record. Deliberately NOT gated on `options.ignoreACL`: that flag exists
208
+ // so ModelRoute.doCreate() can skip re-doing the class-level CREATE check it already performed
209
+ // upstream — it says nothing about this distinct, additional per-record check, which has no
210
+ // upstream equivalent and must always run.
211
+ throw new ApiError(ApiErrors.AUTH_PERMISSION_FAILURE, 403, ApiErrorMessages.AUTH_PERMISSION_FAILURE);
212
+ }
162
213
  // Override the date and version fields with their defaults
163
214
  if (newObj instanceof BaseEntity) {
164
215
  newObj.dateCreated = new Date();
@@ -179,8 +230,12 @@ export class RepoUtils {
179
230
  void this.cacheClient.setex(cacheKey, this.modelClass.cacheTTL, JSON.stringify(result));
180
231
  }
181
232
  if (this.aclUtils?.enabled && this.modelClass.recordACL) {
182
- // If ACLs are enabled but no ACL was given create one
183
- const acl = {
233
+ // Reuse an existing ACL (and its real version/records) if one already exists for this uid — e.g.
234
+ // when creating a new version of a trackChanges record — rather than building a fresh, version-less
235
+ // object from scratch. Building fresh here would let saveACL()'s optimistic-lock version check pass
236
+ // by coincidence (a never-updated ACL is also version 0), silently discarding the real records.
237
+ const existingAcl = await this.aclUtils.findACL(result.uid);
238
+ const acl = existingAcl || {
184
239
  uid: result.uid,
185
240
  parentUid: options?.acl?.parentUid || this.defaultACLUid,
186
241
  records: options?.acl?.records || [],
@@ -271,7 +326,9 @@ export class RepoUtils {
271
326
  if (!this.repo) {
272
327
  throw new ApiError(ApiErrors.INTERNAL_ERROR, 500, ApiErrorMessages.INTERNAL_ERROR);
273
328
  }
274
- // Check user permissions
329
+ // Check user permissions against the class-level ACL. This is a fast-fail gate for users with no
330
+ // legitimate access to the resource type at all; per-record narrowing (below, right before the
331
+ // results are returned) is an additional layer on top of this, not a replacement for it.
275
332
  if (this.aclUtils?.enabled && !options?.ignoreACL) {
276
333
  if (!(await this.aclUtils.hasPermission(options?.user, this.defaultACLUid, ACLAction.READ))) {
277
334
  throw new ApiError(ApiErrors.AUTH_PERMISSION_FAILURE, 403, ApiErrorMessages.AUTH_PERMISSION_FAILURE);
@@ -380,6 +437,17 @@ export class RepoUtils {
380
437
  void this.cacheClient.multi(cmds).exec();
381
438
  }
382
439
  }
440
+ // Record-level ACLs aren't reflected in the query itself (nor in cached results, which are shared across
441
+ // users), so each matched record must be checked individually before it's returned to the caller.
442
+ if (this.aclUtils?.enabled && !options?.ignoreACL && this.modelClass.recordACL) {
443
+ const filtered = [];
444
+ for (const obj of results) {
445
+ if (await this.aclUtils.hasPermission(options?.user, obj.uid, ACLAction.READ)) {
446
+ filtered.push(obj);
447
+ }
448
+ }
449
+ results = filtered;
450
+ }
383
451
  return results;
384
452
  }
385
453
  /**
@@ -482,7 +550,14 @@ export class RepoUtils {
482
550
  if (this.objectFactory) {
483
551
  if (className && typeof className === "string") {
484
552
  const clazz = this.objectFactory.classes.get(className) || this.objectFactory.classes.get(`models.${className}`);
485
- return clazz;
553
+ // Only accept the resolved class if it's actually this route's model or a subtype of it (e.g. a
554
+ // @ChildEntity()). `objectFactory.classes` contains every registered model in the app, so without
555
+ // this check a client could point `_type`/`_fqn` at an unrelated model to have its payload
556
+ // instantiated/validated against that other model's (possibly much looser) rules while still
557
+ // being persisted through this route's own datastore/collection.
558
+ if (clazz && (clazz === this.modelClass || clazz.prototype instanceof this.modelClass)) {
559
+ return clazz;
560
+ }
486
561
  }
487
562
  }
488
563
  return this.modelClass;
@@ -589,6 +664,15 @@ export class RepoUtils {
589
664
  if (existing.uid !== obj.uid) {
590
665
  throw new ApiError(ApiErrors.OBJECT_ID_MISMATCH, 400, ApiErrorMessages.OBJECT_ID_MISMATCH);
591
666
  }
667
+ // Force system-managed fields back to their persisted value, discarding whatever the client sent (or
668
+ // didn't send) for them. `dateCreated` is always protected; `@ReadOnly`-decorated properties are an
669
+ // app-level opt-in for anything else (roles, ownership fields, etc.) that must never be client-settable.
670
+ if (existing instanceof BaseEntity) {
671
+ obj.dateCreated = existing.dateCreated;
672
+ }
673
+ for (const prop of ModelUtils.getReadOnlyPropertyNames(this.modelClass)) {
674
+ obj[prop] = existing[prop];
675
+ }
592
676
  // When using MongoDB we need to copy the _id property in order to prevent duplicate entries
593
677
  if (existing instanceof BaseMongoEntity) {
594
678
  obj._id = existing._id;
@@ -1 +1 @@
1
- {"version":3,"file":"RepoUtils.js","sourceRoot":"","sources":["../../../src/models/RepoUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RepoUtils.js","sourceRoot":"","sources":["../../../src/models/RepoUtils.ts"],"names":[],"mappings":"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"}
@@ -169,10 +169,12 @@ let BaseAdminRoute = class BaseAdminRoute {
169
169
  socks.splice(socks.indexOf(socket), 1);
170
170
  this.activeSockets.set(user.uid, socks);
171
171
  });
172
- // Add the socket to our tracked list
173
- const socks = this.activeSockets.get(user.uid) || [];
174
- socks.push(socket);
175
- this.activeSockets.set(user.uid, socks);
172
+ // Add the socket to our tracked list. Uses an atomic get-or-create so two concurrent connections
173
+ // for a brand-new uid can't clobber each other's tracked array.
174
+ if (!this.activeSockets.has(user.uid)) {
175
+ this.activeSockets.set(user.uid, []);
176
+ }
177
+ this.activeSockets.get(user.uid).push(socket);
176
178
  }
177
179
  catch (err) {
178
180
  this.logger.error(`User ${user.uid} failed to subscribe to logging channel.`);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAdminRoute.js","sourceRoot":"","sources":["../../../src/routes/BaseAdminRoute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseAdminRoute.js","sourceRoot":"","sources":["../../../src/routes/BaseAdminRoute.ts"],"names":[],"mappings":"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"}