@zenstackhq/runtime 1.0.0-alpha.98 → 1.0.0-beta.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.
Files changed (40) hide show
  1. package/constants.d.ts +21 -0
  2. package/constants.js +23 -1
  3. package/constants.js.map +1 -1
  4. package/enhancements/index.d.ts +1 -0
  5. package/enhancements/index.js +1 -0
  6. package/enhancements/index.js.map +1 -1
  7. package/enhancements/model-meta.js +2 -2
  8. package/enhancements/model-meta.js.map +1 -1
  9. package/enhancements/nested-write-vistor.d.ts +13 -13
  10. package/enhancements/nested-write-vistor.js +80 -53
  11. package/enhancements/nested-write-vistor.js.map +1 -1
  12. package/enhancements/omit.d.ts +10 -1
  13. package/enhancements/omit.js +4 -3
  14. package/enhancements/omit.js.map +1 -1
  15. package/enhancements/password.d.ts +10 -1
  16. package/enhancements/password.js +3 -2
  17. package/enhancements/password.js.map +1 -1
  18. package/enhancements/policy/handler.d.ts +3 -1
  19. package/enhancements/policy/handler.js +94 -33
  20. package/enhancements/policy/handler.js.map +1 -1
  21. package/enhancements/policy/index.d.ts +18 -1
  22. package/enhancements/policy/index.js +5 -4
  23. package/enhancements/policy/index.js.map +1 -1
  24. package/enhancements/policy/logger.d.ts +9 -1
  25. package/enhancements/policy/logger.js +14 -3
  26. package/enhancements/policy/logger.js.map +1 -1
  27. package/enhancements/policy/policy-utils.d.ts +8 -7
  28. package/enhancements/policy/policy-utils.js +145 -106
  29. package/enhancements/policy/policy-utils.js.map +1 -1
  30. package/enhancements/preset.d.ts +9 -7
  31. package/enhancements/preset.js +3 -6
  32. package/enhancements/preset.js.map +1 -1
  33. package/enhancements/proxy.js +62 -1
  34. package/enhancements/proxy.js.map +1 -1
  35. package/enhancements/utils.d.ts +12 -4
  36. package/enhancements/utils.js +75 -11
  37. package/enhancements/utils.js.map +1 -1
  38. package/package.json +7 -6
  39. package/version.js +1 -0
  40. package/version.js.map +1 -1
@@ -14,27 +14,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.PolicyUtil = void 0;
17
- const runtime_1 = require("@prisma/client/runtime");
18
- const sdk_1 = require("@zenstackhq/sdk");
19
- const change_case_1 = require("change-case");
20
- const cuid_1 = __importDefault(require("cuid"));
17
+ const cuid2_1 = require("@paralleldrive/cuid2");
21
18
  const deepcopy_1 = __importDefault(require("deepcopy"));
19
+ const lower_case_first_1 = require("lower-case-first");
20
+ const pluralize_1 = __importDefault(require("pluralize"));
22
21
  const zod_validation_error_1 = require("zod-validation-error");
22
+ const constants_1 = require("../../constants");
23
23
  const version_1 = require("../../version");
24
24
  const model_meta_1 = require("../model-meta");
25
25
  const nested_write_vistor_1 = require("../nested-write-vistor");
26
26
  const utils_1 = require("../utils");
27
27
  const logger_1 = require("./logger");
28
- const pluralize_1 = __importDefault(require("pluralize"));
29
28
  /**
30
29
  * Access policy enforcement utilities
31
30
  */
32
31
  class PolicyUtil {
33
- constructor(db, modelMeta, policy, user) {
32
+ constructor(db, modelMeta, policy, user, logPrismaQuery) {
34
33
  this.db = db;
35
34
  this.modelMeta = modelMeta;
36
35
  this.policy = policy;
37
36
  this.user = user;
37
+ this.logPrismaQuery = logPrismaQuery;
38
38
  this.logger = new logger_1.Logger(db);
39
39
  }
40
40
  /**
@@ -43,7 +43,7 @@ class PolicyUtil {
43
43
  and(...conditions) {
44
44
  if (conditions.includes(false)) {
45
45
  // always false
46
- return { [sdk_1.GUARD_FIELD_NAME]: false };
46
+ return { [constants_1.GUARD_FIELD_NAME]: false };
47
47
  }
48
48
  const filtered = conditions.filter((c) => typeof c === 'object' && !!c && Object.keys(c).length > 0);
49
49
  if (filtered.length === 0) {
@@ -62,7 +62,7 @@ class PolicyUtil {
62
62
  or(...conditions) {
63
63
  if (conditions.includes(true)) {
64
64
  // always true
65
- return { [sdk_1.GUARD_FIELD_NAME]: true };
65
+ return { [constants_1.GUARD_FIELD_NAME]: true };
66
66
  }
67
67
  const filtered = conditions.filter((c) => typeof c === 'object' && !!c);
68
68
  if (filtered.length === 0) {
@@ -94,7 +94,7 @@ class PolicyUtil {
94
94
  */
95
95
  getAuthGuard(model, operation, preValue) {
96
96
  return __awaiter(this, void 0, void 0, function* () {
97
- const guard = this.policy.guard[(0, change_case_1.camelCase)(model)];
97
+ const guard = this.policy.guard[(0, lower_case_first_1.lowerCaseFirst)(model)];
98
98
  if (!guard) {
99
99
  throw this.unknownError(`unable to load policy guard for ${model}`);
100
100
  }
@@ -110,7 +110,7 @@ class PolicyUtil {
110
110
  }
111
111
  getPreValueSelect(model) {
112
112
  return __awaiter(this, void 0, void 0, function* () {
113
- const guard = this.policy.guard[(0, change_case_1.camelCase)(model)];
113
+ const guard = this.policy.guard[(0, lower_case_first_1.lowerCaseFirst)(model)];
114
114
  if (!guard) {
115
115
  throw this.unknownError(`unable to load policy guard for ${model}`);
116
116
  }
@@ -119,7 +119,7 @@ class PolicyUtil {
119
119
  }
120
120
  getModelSchema(model) {
121
121
  return __awaiter(this, void 0, void 0, function* () {
122
- return this.policy.schema[(0, change_case_1.camelCase)(model)];
122
+ return this.policy.schema[(0, lower_case_first_1.lowerCaseFirst)(model)];
123
123
  });
124
124
  }
125
125
  /**
@@ -228,9 +228,11 @@ class PolicyUtil {
228
228
  yield this.injectAuthGuard(args, model, 'read');
229
229
  // recursively inject read guard conditions into the query args
230
230
  yield this.injectNestedReadConditions(model, args);
231
- this.logger.info(`Reading with validation for ${model}: ${(0, utils_1.formatObject)(args)}`);
231
+ if (this.shouldLogQuery) {
232
+ this.logger.info(`[withPolicy] \`findMany\`:\n${(0, utils_1.formatObject)(args)}`);
233
+ }
232
234
  const result = yield this.db[model].findMany(args);
233
- yield Promise.all(result.map((item) => this.postProcessForRead(item, model, args, 'read')));
235
+ yield this.postProcessForRead(result, model, args, 'read');
234
236
  return result;
235
237
  });
236
238
  }
@@ -239,9 +241,9 @@ class PolicyUtil {
239
241
  var _a;
240
242
  return __awaiter(this, void 0, void 0, function* () {
241
243
  // e.g.: { a_b: { a: '1', b: '1' } } => { a: '1', b: '1' }
242
- const uniqueConstraints = (_a = this.modelMeta.uniqueConstraints) === null || _a === void 0 ? void 0 : _a[(0, change_case_1.camelCase)(model)];
244
+ const uniqueConstraints = (_a = this.modelMeta.uniqueConstraints) === null || _a === void 0 ? void 0 : _a[(0, lower_case_first_1.lowerCaseFirst)(model)];
243
245
  let flattened = false;
244
- if (uniqueConstraints) {
246
+ if (uniqueConstraints && Object.keys(uniqueConstraints).length > 0) {
245
247
  for (const [field, value] of Object.entries(args)) {
246
248
  if (uniqueConstraints[field] && typeof value === 'object') {
247
249
  for (const [f, v] of Object.entries(value)) {
@@ -253,7 +255,8 @@ class PolicyUtil {
253
255
  }
254
256
  }
255
257
  if (flattened) {
256
- this.logger.info(`Filter flattened: ${JSON.stringify(args)}`);
258
+ // DEBUG
259
+ // this.logger.info(`Filter flattened: ${JSON.stringify(args)}`);
257
260
  }
258
261
  });
259
262
  }
@@ -301,41 +304,48 @@ class PolicyUtil {
301
304
  * (which can't be trimmed at query time) and removes fields that should be
302
305
  * omitted.
303
306
  */
304
- postProcessForRead(entityData, model, args, operation) {
307
+ postProcessForRead(data, model, args, operation) {
305
308
  var _a;
306
309
  return __awaiter(this, void 0, void 0, function* () {
307
- const ids = this.getEntityIds(model, entityData);
308
- if (Object.keys(ids).length === 0) {
309
- return;
310
- }
311
- // strip auxiliary fields
312
- for (const auxField of sdk_1.AUXILIARY_FIELDS) {
313
- if (auxField in entityData) {
314
- delete entityData[auxField];
315
- }
316
- }
317
- const injectTarget = (_a = args.select) !== null && _a !== void 0 ? _a : args.include;
318
- if (!injectTarget) {
319
- return;
320
- }
321
- // to-one relation data cannot be trimmed by injected guards, we have to
322
- // post-check them
323
- for (const field of (0, utils_1.getModelFields)(injectTarget)) {
324
- if (!(entityData === null || entityData === void 0 ? void 0 : entityData[field])) {
310
+ for (const entityData of (0, utils_1.enumerate)(data)) {
311
+ if (typeof entityData !== 'object' || !entityData) {
325
312
  continue;
326
313
  }
327
- const fieldInfo = (0, model_meta_1.resolveField)(this.modelMeta, model, field);
328
- if (!fieldInfo || !fieldInfo.isDataModel || fieldInfo.isArray) {
329
- continue;
314
+ // strip auxiliary fields
315
+ for (const auxField of constants_1.AUXILIARY_FIELDS) {
316
+ if (auxField in entityData) {
317
+ delete entityData[auxField];
318
+ }
330
319
  }
331
- const ids = this.getEntityIds(fieldInfo.type, entityData[field]);
332
- if (Object.keys(ids).length === 0) {
320
+ const injectTarget = (_a = args.select) !== null && _a !== void 0 ? _a : args.include;
321
+ if (!injectTarget) {
333
322
  continue;
334
323
  }
335
- this.logger.info(`Validating read of to-one relation: ${fieldInfo.type}#${(0, utils_1.formatObject)(ids)}`);
336
- yield this.checkPolicyForFilter(fieldInfo.type, ids, operation, this.db);
337
- // recurse
338
- yield this.postProcessForRead(entityData[field], fieldInfo.type, injectTarget[field], operation);
324
+ // recurse into nested entities
325
+ for (const field of Object.keys(injectTarget)) {
326
+ const fieldData = entityData[field];
327
+ if (typeof fieldData !== 'object' || !fieldData) {
328
+ continue;
329
+ }
330
+ const fieldInfo = (0, model_meta_1.resolveField)(this.modelMeta, model, field);
331
+ if (fieldInfo) {
332
+ if (fieldInfo.isDataModel && !fieldInfo.isArray) {
333
+ // to-one relation data cannot be trimmed by injected guards, we have to
334
+ // post-check them
335
+ const ids = this.getEntityIds(fieldInfo.type, fieldData);
336
+ if (Object.keys(ids).length !== 0) {
337
+ // if (this.logger.enabled('info')) {
338
+ // this.logger.info(
339
+ // `Validating read of to-one relation: ${fieldInfo.type}#${formatObject(ids)}`
340
+ // );
341
+ // }
342
+ yield this.checkPolicyForFilter(fieldInfo.type, ids, operation, this.db);
343
+ }
344
+ }
345
+ // recurse
346
+ yield this.postProcessForRead(fieldData, fieldInfo.type, injectTarget[field], operation);
347
+ }
348
+ }
339
349
  }
340
350
  });
341
351
  }
@@ -371,7 +381,7 @@ class PolicyUtil {
371
381
  }
372
382
  // use a transaction to conduct write, so in case any create or nested create
373
383
  // fails access policies, we can roll back the entire operation
374
- const transactionId = (0, cuid_1.default)();
384
+ const transactionId = (0, cuid2_1.createId)();
375
385
  // args processor for create
376
386
  const processCreate = (model, args) => __awaiter(this, void 0, void 0, function* () {
377
387
  const guard = yield this.getAuthGuard(model, 'create');
@@ -381,7 +391,7 @@ class PolicyUtil {
381
391
  }
382
392
  else if (guard !== true || schema) {
383
393
  // mark the create with a transaction tag so we can check them later
384
- args[sdk_1.TRANSACTION_FIELD_NAME] = `${transactionId}:create`;
394
+ args[constants_1.TRANSACTION_FIELD_NAME] = `${transactionId}:create`;
385
395
  createdModels.add(model);
386
396
  }
387
397
  });
@@ -498,7 +508,9 @@ class PolicyUtil {
498
508
  select[idField.name] = true;
499
509
  }
500
510
  const query = { where: filter, select };
501
- this.logger.info(`fetching pre-update entities for ${model}: ${(0, utils_1.formatObject)(query)})}`);
511
+ if (this.shouldLogQuery) {
512
+ this.logger.info(`[withPolicy] \`findMany\` for fetching pre-update entities:\n${(0, utils_1.formatObject)(args)}`);
513
+ }
502
514
  const entities = yield this.db[model].findMany(query);
503
515
  entities.forEach((entity) => {
504
516
  addUpdatedEntity(model, this.getEntityIds(model, entity), entity);
@@ -538,66 +550,56 @@ class PolicyUtil {
538
550
  // use a visitor to process args before conducting the write action
539
551
  const visitor = new nested_write_vistor_1.NestedWriteVisitor(this.modelMeta, {
540
552
  create: (model, args) => __awaiter(this, void 0, void 0, function* () {
541
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
542
- yield processCreate(model, oneArgs);
543
- }
553
+ yield processCreate(model, args);
544
554
  }),
545
555
  connectOrCreate: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
546
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
547
- if (oneArgs.create) {
548
- yield processCreate(model, oneArgs.create);
549
- }
550
- if (oneArgs.where) {
551
- yield processRelationUpdate(model, oneArgs.where, context);
552
- }
556
+ if (args.create) {
557
+ yield processCreate(model, args.create);
558
+ }
559
+ if (args.where) {
560
+ yield processRelationUpdate(model, args.where, context);
553
561
  }
554
562
  }),
555
563
  connect: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
556
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
557
- yield processRelationUpdate(model, oneArgs, context);
558
- }
564
+ yield processRelationUpdate(model, args, context);
559
565
  }),
560
566
  disconnect: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
561
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
562
- yield processRelationUpdate(model, oneArgs, context);
563
- }
567
+ yield processRelationUpdate(model, args, context);
564
568
  }),
565
569
  update: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
566
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
567
- yield processUpdate(model, oneArgs.where, context);
568
- }
570
+ yield processUpdate(model, args.where, context);
569
571
  }),
570
572
  updateMany: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
571
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
572
- yield processUpdateMany(model, oneArgs, context);
573
- }
573
+ yield processUpdateMany(model, args, context);
574
574
  }),
575
575
  upsert: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
576
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
577
- if (oneArgs.create) {
578
- yield processCreate(model, oneArgs.create);
579
- }
580
- if (oneArgs.update) {
581
- yield processUpdate(model, oneArgs.where, context);
582
- }
576
+ if (args.create) {
577
+ yield processCreate(model, args.create);
578
+ }
579
+ if (args.update) {
580
+ yield processUpdate(model, args.where, context);
583
581
  }
584
582
  }),
585
583
  delete: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
586
- for (const oneArgs of (0, utils_1.enumerate)(args)) {
587
- yield processDelete(model, oneArgs, context);
588
- }
584
+ yield processDelete(model, args, context);
589
585
  }),
590
- deleteMany: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
586
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
587
+ deleteMany: (model, args, _context) => __awaiter(this, void 0, void 0, function* () {
591
588
  const guard = yield this.getAuthGuard(model, 'delete');
592
589
  if (guard === false) {
593
590
  throw this.deniedByPolicy(model, 'delete');
594
591
  }
595
592
  else if (guard !== true) {
596
- if (Array.isArray(args)) {
597
- context.parent.deleteMany = args.map((oneArgs) => this.and(oneArgs, guard));
593
+ if (args.where) {
594
+ args.where = this.and(args.where, guard);
598
595
  }
599
596
  else {
600
- context.parent.deleteMany = this.and(args, guard);
597
+ const copy = (0, deepcopy_1.default)(args);
598
+ for (const key of Object.keys(args)) {
599
+ delete args[key];
600
+ }
601
+ const combined = this.and(copy, guard);
602
+ Object.assign(args, combined);
601
603
  }
602
604
  }
603
605
  }),
@@ -613,7 +615,7 @@ class PolicyUtil {
613
615
  const result = yield writeAction(tx[model], args);
614
616
  if (createdModels.size > 0) {
615
617
  // do post-check on created entities
616
- yield Promise.all([...createdModels].map((model) => this.checkPolicyForFilter(model, { [sdk_1.TRANSACTION_FIELD_NAME]: `${transactionId}:create` }, 'create', tx)));
618
+ yield Promise.all([...createdModels].map((model) => this.checkPolicyForFilter(model, { [constants_1.TRANSACTION_FIELD_NAME]: `${transactionId}:create` }, 'create', tx)));
617
619
  }
618
620
  if (updatedModels.size > 0) {
619
621
  // do post-check on updated entities
@@ -636,16 +638,16 @@ class PolicyUtil {
636
638
  }
637
639
  }
638
640
  deniedByPolicy(model, operation, extra, reason) {
639
- return new runtime_1.PrismaClientKnownRequestError(`denied by policy: ${model} entities failed '${operation}' check${extra ? ', ' + extra : ''}`, { clientVersion: (0, version_1.getVersion)(), code: 'P2004', meta: { reason } });
641
+ return (0, utils_1.prismaClientKnownRequestError)(this.db, `denied by policy: ${model} entities failed '${operation}' check${extra ? ', ' + extra : ''}`, { clientVersion: (0, version_1.getVersion)(), code: 'P2004', meta: { reason } });
640
642
  }
641
643
  notFound(model) {
642
- return new runtime_1.PrismaClientKnownRequestError(`entity not found for model ${model}`, {
644
+ return (0, utils_1.prismaClientKnownRequestError)(this.db, `entity not found for model ${model}`, {
643
645
  clientVersion: (0, version_1.getVersion)(),
644
646
  code: 'P2025',
645
647
  });
646
648
  }
647
649
  unknownError(message) {
648
- return new runtime_1.PrismaClientUnknownRequestError(message, {
650
+ return (0, utils_1.prismaClientUnknownRequestError)(this.db, message, {
649
651
  clientVersion: (0, version_1.getVersion)(),
650
652
  });
651
653
  }
@@ -655,37 +657,73 @@ class PolicyUtil {
655
657
  */
656
658
  checkPolicyForFilter(model, filter, operation, db) {
657
659
  return __awaiter(this, void 0, void 0, function* () {
658
- this.logger.info(`Checking policy for ${model}#${JSON.stringify(filter)} for ${operation}`);
660
+ const guard = yield this.getAuthGuard(model, operation);
661
+ const schema = (operation === 'create' || operation === 'update') && (yield this.getModelSchema(model));
662
+ if (guard === true && !schema) {
663
+ // unconditionally allowed
664
+ return;
665
+ }
666
+ // if (this.logger.enabled('info')) {
667
+ // this.logger.info(`Checking policy for ${model}#${JSON.stringify(filter)} for ${operation}`);
668
+ // }
659
669
  const queryFilter = (0, deepcopy_1.default)(filter);
660
670
  // query args will be used with findMany, so we need to
661
671
  // translate unique constraint filters into a flat filter
662
672
  // e.g.: { a_b: { a: '1', b: '1' } } => { a: '1', b: '1' }
663
673
  yield this.flattenGeneratedUniqueField(model, queryFilter);
664
- const count = (yield db[model].count({ where: queryFilter }));
665
- const guard = yield this.getAuthGuard(model, operation);
674
+ const countArgs = { where: queryFilter };
675
+ // if (this.shouldLogQuery) {
676
+ // this.logger.info(
677
+ // `[withPolicy] \`count\` for policy check without guard:\n${formatObject(countArgs)}`
678
+ // );
679
+ // }
680
+ const count = (yield db[model].count(countArgs));
681
+ if (count === 0) {
682
+ // there's nothing to filter out
683
+ return;
684
+ }
685
+ if (guard === false) {
686
+ // unconditionally denied
687
+ throw this.deniedByPolicy(model, operation, `${count} ${(0, pluralize_1.default)('entity', count)} failed policy check`);
688
+ }
666
689
  // build a query condition with policy injected
667
690
  const guardedQuery = { where: this.and(queryFilter, guard) };
668
- const schema = (operation === 'create' || operation === 'update') && (yield this.getModelSchema(model));
669
691
  if (schema) {
670
692
  // we've got schemas, so have to fetch entities and validate them
693
+ // if (this.shouldLogQuery) {
694
+ // this.logger.info(
695
+ // `[withPolicy] \`findMany\` for policy check with guard:\n${formatObject(countArgs)}`
696
+ // );
697
+ // }
671
698
  const entities = yield db[model].findMany(guardedQuery);
672
699
  if (entities.length < count) {
673
- this.logger.info(`entity ${model} failed policy check for operation ${operation}`);
700
+ if (this.logger.enabled('info')) {
701
+ this.logger.info(`entity ${model} failed policy check for operation ${operation}`);
702
+ }
674
703
  throw this.deniedByPolicy(model, operation, `${count - entities.length} ${(0, pluralize_1.default)('entity', count - entities.length)} failed policy check`);
675
704
  }
676
705
  // TODO: push down schema check to the database
677
706
  const schemaCheckErrors = entities.map((entity) => schema.safeParse(entity)).filter((r) => !r.success);
678
707
  if (schemaCheckErrors.length > 0) {
679
708
  const error = schemaCheckErrors.map((r) => !r.success && (0, zod_validation_error_1.fromZodError)(r.error).message).join(', ');
680
- this.logger.info(`entity ${model} failed schema check for operation ${operation}: ${error}`);
709
+ if (this.logger.enabled('info')) {
710
+ this.logger.info(`entity ${model} failed schema check for operation ${operation}: ${error}`);
711
+ }
681
712
  throw this.deniedByPolicy(model, operation, `entities failed schema check: [${error}]`);
682
713
  }
683
714
  }
684
715
  else {
685
716
  // count entities with policy injected and see if any of them are filtered out
717
+ // if (this.shouldLogQuery) {
718
+ // this.logger.info(
719
+ // `[withPolicy] \`count\` for policy check with guard:\n${formatObject(guardedQuery)}`
720
+ // );
721
+ // }
686
722
  const guardedCount = (yield db[model].count(guardedQuery));
687
723
  if (guardedCount < count) {
688
- this.logger.info(`entity ${model} failed policy check for operation ${operation}`);
724
+ if (this.logger.enabled('info')) {
725
+ this.logger.info(`entity ${model} failed policy check for operation ${operation}`);
726
+ }
689
727
  throw this.deniedByPolicy(model, operation, `${count - guardedCount} ${(0, pluralize_1.default)('entity', count - guardedCount)} failed policy check`);
690
728
  }
691
729
  }
@@ -693,7 +731,9 @@ class PolicyUtil {
693
731
  }
694
732
  checkPostUpdate(model, ids, db, preValue) {
695
733
  return __awaiter(this, void 0, void 0, function* () {
696
- this.logger.info(`Checking post-update policy for ${model}#${ids}, preValue: ${(0, utils_1.formatObject)(preValue)}`);
734
+ // if (this.logger.enabled('info')) {
735
+ // this.logger.info(`Checking post-update policy for ${model}#${ids}, preValue: ${formatObject(preValue)}`);
736
+ // }
697
737
  const guard = yield this.getAuthGuard(model, 'postUpdate', preValue);
698
738
  // build a query condition with policy injected
699
739
  const guardedQuery = { where: this.and(ids, guard) };
@@ -701,7 +741,9 @@ class PolicyUtil {
701
741
  const entity = yield db[model].findFirst(guardedQuery);
702
742
  // see if we get fewer items with policy, if so, reject with an throw
703
743
  if (!entity) {
704
- this.logger.info(`entity ${model} failed policy check for operation postUpdate`);
744
+ if (this.logger.enabled('info')) {
745
+ this.logger.info(`entity ${model} failed policy check for operation postUpdate`);
746
+ }
705
747
  throw this.deniedByPolicy(model, 'postUpdate');
706
748
  }
707
749
  // TODO: push down schema check to the database
@@ -710,7 +752,9 @@ class PolicyUtil {
710
752
  const schemaCheckResult = schema.safeParse(entity);
711
753
  if (!schemaCheckResult.success) {
712
754
  const error = (0, zod_validation_error_1.fromZodError)(schemaCheckResult.error).message;
713
- this.logger.info(`entity ${model} failed schema check for operation postUpdate: ${error}`);
755
+ if (this.logger.enabled('info')) {
756
+ this.logger.info(`entity ${model} failed schema check for operation postUpdate: ${error}`);
757
+ }
714
758
  throw this.deniedByPolicy(model, 'postUpdate', `entity failed schema check: ${error}`);
715
759
  }
716
760
  }
@@ -729,15 +773,7 @@ class PolicyUtil {
729
773
  * Gets "id" field for a given model.
730
774
  */
731
775
  getIdFields(model) {
732
- const fields = this.modelMeta.fields[(0, change_case_1.camelCase)(model)];
733
- if (!fields) {
734
- throw this.unknownError(`Unable to load fields for ${model}`);
735
- }
736
- const result = Object.values(fields).filter((f) => f.isId);
737
- if (result.length === 0) {
738
- throw this.unknownError(`model ${model} does not have an id field`);
739
- }
740
- return result;
776
+ return (0, utils_1.getIdFields)(this.modelMeta, model, true);
741
777
  }
742
778
  /**
743
779
  * Gets id field value from an entity.
@@ -750,6 +786,9 @@ class PolicyUtil {
750
786
  }
751
787
  return result;
752
788
  }
789
+ get shouldLogQuery() {
790
+ return this.logPrismaQuery && this.logger.enabled('info');
791
+ }
753
792
  }
754
793
  exports.PolicyUtil = PolicyUtil;
755
794
  //# sourceMappingURL=policy-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy-utils.js","sourceRoot":"","sources":["../../../src/enhancements/policy/policy-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-utils.js","sourceRoot":"","sources":["../../../src/enhancements/policy/policy-utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
- import { WithPolicyContext } from './policy';
2
- import { ModelMeta, PolicyDef } from './types';
1
+ import { WithOmitOptions } from './omit';
2
+ import { WithPasswordOptions } from './password';
3
+ import { WithPolicyContext, WithPolicyOptions } from './policy';
4
+ /**
5
+ * Options @see withPresets
6
+ */
7
+ export type WithPresetsOptions = WithPolicyOptions & WithPasswordOptions & WithOmitOptions;
3
8
  /**
4
9
  * Gets a Prisma client enhanced with all essential behaviors, including access
5
10
  * policy, field validation, field omission and password hashing.
@@ -8,9 +13,6 @@ import { ModelMeta, PolicyDef } from './types';
8
13
  *
9
14
  * @param prisma The Prisma client to enhance.
10
15
  * @param context The context to for evaluating access policies.
11
- * @param policy The access policy data, generated by @core/access-policy plugin.
12
- * You only need to pass it if you configured the plugin to generate into custom location.
13
- * @param modelMeta The model metadata, generated by @core/model-meta plugin.
14
- * You only need to pass it if you configured the plugin to generate into custom location.
16
+ * @param options Options.
15
17
  */
16
- export declare function withPresets<DbClient extends object>(prisma: DbClient, context?: WithPolicyContext, policy?: PolicyDef, modelMeta?: ModelMeta): DbClient;
18
+ export declare function withPresets<DbClient extends object>(prisma: DbClient, context?: WithPolicyContext, options?: WithPresetsOptions): DbClient;
@@ -12,13 +12,10 @@ const policy_1 = require("./policy");
12
12
  *
13
13
  * @param prisma The Prisma client to enhance.
14
14
  * @param context The context to for evaluating access policies.
15
- * @param policy The access policy data, generated by @core/access-policy plugin.
16
- * You only need to pass it if you configured the plugin to generate into custom location.
17
- * @param modelMeta The model metadata, generated by @core/model-meta plugin.
18
- * You only need to pass it if you configured the plugin to generate into custom location.
15
+ * @param options Options.
19
16
  */
20
- function withPresets(prisma, context, policy, modelMeta) {
21
- return (0, policy_1.withPolicy)((0, omit_1.withOmit)((0, password_1.withPassword)(prisma, modelMeta), modelMeta), context, policy, modelMeta);
17
+ function withPresets(prisma, context, options) {
18
+ return (0, policy_1.withPolicy)((0, omit_1.withOmit)((0, password_1.withPassword)(prisma, options), options), context, options);
22
19
  }
23
20
  exports.withPresets = withPresets;
24
21
  //# sourceMappingURL=preset.js.map