grafeo-ogm 2.1.1 → 2.3.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.
Files changed (95) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +98 -1
  3. package/dist/cjs/compilers/mutation.compiler.d.ts +94 -31
  4. package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
  5. package/dist/cjs/compilers/mutation.compiler.js +381 -343
  6. package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
  7. package/dist/cjs/compilers/selection.compiler.d.ts +1 -1
  8. package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -1
  9. package/dist/cjs/compilers/selection.compiler.js +33 -39
  10. package/dist/cjs/compilers/selection.compiler.js.map +1 -1
  11. package/dist/cjs/compilers/where.compiler.d.ts +206 -6
  12. package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
  13. package/dist/cjs/compilers/where.compiler.js +525 -176
  14. package/dist/cjs/compilers/where.compiler.js.map +1 -1
  15. package/dist/cjs/execution/executor.d.ts +11 -1
  16. package/dist/cjs/execution/executor.d.ts.map +1 -1
  17. package/dist/cjs/execution/executor.js +6 -3
  18. package/dist/cjs/execution/executor.js.map +1 -1
  19. package/dist/cjs/index.d.ts +2 -2
  20. package/dist/cjs/index.d.ts.map +1 -1
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/interface-model.d.ts +20 -10
  23. package/dist/cjs/interface-model.d.ts.map +1 -1
  24. package/dist/cjs/interface-model.js +47 -104
  25. package/dist/cjs/interface-model.js.map +1 -1
  26. package/dist/cjs/model.d.ts +42 -30
  27. package/dist/cjs/model.d.ts.map +1 -1
  28. package/dist/cjs/model.js +134 -99
  29. package/dist/cjs/model.js.map +1 -1
  30. package/dist/cjs/ogm.d.ts.map +1 -1
  31. package/dist/cjs/ogm.js +1 -0
  32. package/dist/cjs/ogm.js.map +1 -1
  33. package/dist/cjs/policy/explain.d.ts +59 -0
  34. package/dist/cjs/policy/explain.d.ts.map +1 -0
  35. package/dist/cjs/policy/explain.js +175 -0
  36. package/dist/cjs/policy/explain.js.map +1 -0
  37. package/dist/cjs/policy/nested-writes.d.ts +35 -0
  38. package/dist/cjs/policy/nested-writes.d.ts.map +1 -0
  39. package/dist/cjs/policy/nested-writes.js +199 -0
  40. package/dist/cjs/policy/nested-writes.js.map +1 -0
  41. package/dist/cjs/policy/resolver.d.ts +26 -2
  42. package/dist/cjs/policy/resolver.d.ts.map +1 -1
  43. package/dist/cjs/policy/resolver.js +103 -33
  44. package/dist/cjs/policy/resolver.js.map +1 -1
  45. package/dist/cjs/policy/types.d.ts +105 -0
  46. package/dist/cjs/policy/types.d.ts.map +1 -1
  47. package/dist/cjs/policy/types.js +24 -0
  48. package/dist/cjs/policy/types.js.map +1 -1
  49. package/dist/esm/compilers/mutation.compiler.d.ts +94 -31
  50. package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
  51. package/dist/esm/compilers/mutation.compiler.js +381 -344
  52. package/dist/esm/compilers/mutation.compiler.js.map +1 -1
  53. package/dist/esm/compilers/selection.compiler.d.ts +1 -1
  54. package/dist/esm/compilers/selection.compiler.d.ts.map +1 -1
  55. package/dist/esm/compilers/selection.compiler.js +33 -39
  56. package/dist/esm/compilers/selection.compiler.js.map +1 -1
  57. package/dist/esm/compilers/where.compiler.d.ts +206 -6
  58. package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
  59. package/dist/esm/compilers/where.compiler.js +524 -178
  60. package/dist/esm/compilers/where.compiler.js.map +1 -1
  61. package/dist/esm/execution/executor.d.ts +11 -1
  62. package/dist/esm/execution/executor.d.ts.map +1 -1
  63. package/dist/esm/execution/executor.js +6 -3
  64. package/dist/esm/execution/executor.js.map +1 -1
  65. package/dist/esm/index.d.ts +2 -2
  66. package/dist/esm/index.d.ts.map +1 -1
  67. package/dist/esm/index.js.map +1 -1
  68. package/dist/esm/interface-model.d.ts +20 -10
  69. package/dist/esm/interface-model.d.ts.map +1 -1
  70. package/dist/esm/interface-model.js +47 -104
  71. package/dist/esm/interface-model.js.map +1 -1
  72. package/dist/esm/model.d.ts +42 -30
  73. package/dist/esm/model.d.ts.map +1 -1
  74. package/dist/esm/model.js +136 -101
  75. package/dist/esm/model.js.map +1 -1
  76. package/dist/esm/ogm.d.ts.map +1 -1
  77. package/dist/esm/ogm.js +1 -0
  78. package/dist/esm/ogm.js.map +1 -1
  79. package/dist/esm/policy/explain.d.ts +59 -0
  80. package/dist/esm/policy/explain.d.ts.map +1 -0
  81. package/dist/esm/policy/explain.js +169 -0
  82. package/dist/esm/policy/explain.js.map +1 -0
  83. package/dist/esm/policy/nested-writes.d.ts +35 -0
  84. package/dist/esm/policy/nested-writes.d.ts.map +1 -0
  85. package/dist/esm/policy/nested-writes.js +193 -0
  86. package/dist/esm/policy/nested-writes.js.map +1 -0
  87. package/dist/esm/policy/resolver.d.ts +26 -2
  88. package/dist/esm/policy/resolver.d.ts.map +1 -1
  89. package/dist/esm/policy/resolver.js +102 -33
  90. package/dist/esm/policy/resolver.js.map +1 -1
  91. package/dist/esm/policy/types.d.ts +105 -0
  92. package/dist/esm/policy/types.d.ts.map +1 -1
  93. package/dist/esm/policy/types.js +23 -0
  94. package/dist/esm/policy/types.js.map +1 -1
  95. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"interface-model.js","sourceRoot":"","sources":["../../src/interface-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface-model.js","sourceRoot":"","sources":["../../src/interface-model.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { SelectionCompiler } from './compilers/selection.compiler';
7
7
  import { VectorCompiler } from './compilers/vector.compiler';
8
8
  import { WhereCompiler } from './compilers/where.compiler';
9
9
  import { ExecutionContext, OGMLogger } from './execution/executor';
10
- import type { Operation, PolicyContext, PolicyDefaults, ResolvedPolicies } from './policy/types';
10
+ import type { DetailedResolution, Operation, PolicyContext, PolicyDefaults, PolicyExplanation, ResolvedPolicies } from './policy/types';
11
11
  import { NodeDefinition, SchemaMetadata } from './schema/types';
12
12
  /**
13
13
  * Internal binding handed to `Model` by `OGM.withContext(ctx)`. Carries
@@ -19,6 +19,11 @@ import { NodeDefinition, SchemaMetadata } from './schema/types';
19
19
  export interface ModelPolicyBinding {
20
20
  ctx: PolicyContext;
21
21
  resolve: (typeName: string, op: Operation, ctx: PolicyContext) => ResolvedPolicies | null;
22
+ /**
23
+ * Full resolution (nothing dropped) for `explainPolicies`. Optional so
24
+ * hand-built bindings stay valid; `OGMWithContext` always supplies it.
25
+ */
26
+ resolveDetailed?: (typeName: string, op: Operation, ctx: PolicyContext) => DetailedResolution | null;
22
27
  defaults: PolicyDefaults;
23
28
  logger?: OGMLogger;
24
29
  /** Set when this binding belongs to a `unsafe.bypassPolicies()` OGM. */
@@ -322,6 +327,38 @@ export declare class Model<T = any, TSelect extends Record<string, unknown> = an
322
327
  context?: ExecutionContext;
323
328
  unsafe?: UnsafeOptions;
324
329
  }): Promise<T[]>;
330
+ /**
331
+ * Explain, per candidate node, the outcome of every `read` policy that
332
+ * `find` would enforce for this model's bound context (GitHub issue #6).
333
+ *
334
+ * **This is a deliberate policy bypass.** Candidates are selected by
335
+ * `where` / `labels` exactly as `find` selects them, but the root policy
336
+ * predicate is REPORTED instead of applied — nodes the bound context
337
+ * cannot see ARE returned, with `visible: false`. Use it only on
338
+ * admin-only diagnostic paths. Every call logs a `warn` and is tagged
339
+ * `explain: true` in transaction metadata, even with
340
+ * `auditMetadata: false`.
341
+ *
342
+ * - `visible` is the exact enforcement verdict: the query projects the
343
+ * same composed predicate `find` puts in its WHERE, and the verdict
344
+ * recomputed from the per-policy outcomes must agree with it or the
345
+ * call throws — it never returns a possibly-wrong explanation.
346
+ * - Relationships in the selection are still filtered by their own
347
+ * target-type policies, exactly as in `find`; only the root type's
348
+ * policies are explained.
349
+ * - When the executor opens its own session it is READ-mode, so the
350
+ * server rejects any write. A caller-supplied `transaction` /
351
+ * `session` is used as-is — the caller owns its access mode.
352
+ * - `options.limit` defaults to 100 and may not exceed 1,000.
353
+ */
354
+ explainPolicies(params?: {
355
+ where?: TWhere;
356
+ selectionSet?: string | DocumentNode;
357
+ select?: TSelect;
358
+ labels?: string[];
359
+ options?: FindOptions<TSort>;
360
+ context?: ExecutionContext;
361
+ }): Promise<PolicyExplanation<T>[]>;
325
362
  create(params: {
326
363
  input: TCreateInput[];
327
364
  labels?: string[];
@@ -539,38 +576,13 @@ export declare class Model<T = any, TSelect extends Record<string, unknown> = an
539
576
  */
540
577
  private resolveSelection;
541
578
  /**
542
- * Evaluate `'create'` policies in JS BEFORE the mutation runs.
543
- *
544
- * - Override → all input is allowed.
545
- * - Permissive → at least one (whose `appliesWhen` matches) must
546
- * accept each input via `when(ctx)` returning a non-empty partial.
547
- * - Restrictive → must hold for every input. Restrictives whose
548
- * `when(ctx, input)` returns false trigger `PolicyDeniedError`.
549
- *
550
- * Note: the where-predicate from a permissive `when(ctx)` is treated
551
- * as a SHAPE check — it only documents which fields the user is
552
- * allowed to set; we do NOT compile-and-run the partial against the
553
- * input. (Validating shape against a where-partial is out of scope
554
- * for v1.7.0.) Restrictive `when(ctx, input)` is the canonical
555
- * "WITH CHECK" hook.
579
+ * Root `'create'` checks (default-deny + WITH CHECK) — shared with every
580
+ * nested create via `src/policy/nested-writes.ts`.
556
581
  */
557
582
  private evaluateCreatePolicies;
558
583
  /**
559
- * Evaluate WRITE-side restrictive policies (create/update) at the
560
- * application layer. Each `WriteRestrictive` is invoked exactly once
561
- * with `(ctx, input)`; anything other than an explicit `true` return
562
- * rejects the operation with `PolicyDeniedError` (v1.8.7 — previously
563
- * only `false` rejected, so nullish returns silently allowed).
564
- *
565
- * ReadRestrictives are NOT consumed here — they enforce row-filter
566
- * semantics via the compiled WHERE clause (see `WhereCompiler`). Only
567
- * write-side restrictives have "WITH CHECK" semantics that need
568
- * application-layer evaluation.
569
- *
570
- * For `delete`, there is no input to validate; deletes are filtered
571
- * solely via ReadRestrictives on the WHERE clause. Calling this with
572
- * `operation: 'delete'` is a no-op (no WriteRestrictives target
573
- * delete).
584
+ * Root WITH CHECK for create/update input — shared with every nested
585
+ * write via `src/policy/nested-writes.ts`.
574
586
  */
575
587
  private evaluateWriteRestrictives;
576
588
  private defaultSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
package/dist/cjs/model.js CHANGED
@@ -14,6 +14,8 @@ const errors_1 = require("./errors");
14
14
  const executor_1 = require("./execution/executor");
15
15
  const result_mapper_1 = require("./execution/result-mapper");
16
16
  const errors_2 = require("./policy/errors");
17
+ const nested_writes_1 = require("./policy/nested-writes");
18
+ const explain_1 = require("./policy/explain");
17
19
  const resolver_1 = require("./policy/resolver");
18
20
  const types_1 = require("./policy/types");
19
21
  const cypher_field_projection_1 = require("./utils/cypher-field-projection");
@@ -73,9 +75,12 @@ class Model {
73
75
  this.logger.warn('[OGM] per-call unsafe.bypassPolicies on type "%s" op "%s"', this.nodeDef.typeName, op);
74
76
  return null;
75
77
  }
76
- const resolved = binding.resolve(this.nodeDef.typeName, op, binding.ctx);
77
- if (!resolved)
78
- return null;
78
+ // v2.3.0 — a root with no policy for `op` still gets a bundle
79
+ // (`NO_ROOT_POLICY`: no root clause) so target-type policies stay
80
+ // enforced on everything reached through relationships. Pre-2.3.0 this
81
+ // returned `null`, turning policy-free types into gateways around
82
+ // their neighbours' policies.
83
+ const resolved = binding.resolve(this.nodeDef.typeName, op, binding.ctx) ?? types_1.NO_ROOT_POLICY;
79
84
  return {
80
85
  ctx: binding.ctx,
81
86
  operation: op,
@@ -107,11 +112,17 @@ class Model {
107
112
  * Build `ExecutionContext` with audit metadata when policies are
108
113
  * configured. Preserves the user's transaction/session selection.
109
114
  */
110
- withAuditMetadata(context, bundle, operation, bypassed) {
115
+ withAuditMetadata(context, bundle, operation, bypassed,
116
+ /**
117
+ * `explainPolicies` call — tags `explain: true` and, like a global
118
+ * bypass, is ALWAYS recorded even with `auditMetadata: false`.
119
+ */
120
+ explain = false) {
111
121
  if (!this.policyBinding)
112
122
  return context;
113
123
  if (this.policyBinding.defaults.auditMetadata === false &&
114
- !this.policyBinding.globalBypass)
124
+ !this.policyBinding.globalBypass &&
125
+ !explain)
115
126
  return context;
116
127
  const evaluated = bundle?.resolved.evaluated ?? [];
117
128
  const metadata = {
@@ -122,6 +133,8 @@ class Model {
122
133
  policiesEvaluated: [...evaluated],
123
134
  bypassed,
124
135
  };
136
+ if (explain)
137
+ metadata.explain = true;
125
138
  if (context?.metadata)
126
139
  return { ...context, metadata: { ...context.metadata, ...metadata } };
127
140
  if (context)
@@ -229,16 +242,115 @@ class Model {
229
242
  const result = await this.executor.execute(cypher, allParams, this.withAuditMetadata(params?.context, policyContext, 'read', Boolean(params?.unsafe?.bypassPolicies)));
230
243
  return result_mapper_1.ResultMapper.mapRecords(result.records, 'n');
231
244
  }
245
+ // --- explainPolicies ------------------------------------------------------
246
+ /**
247
+ * Explain, per candidate node, the outcome of every `read` policy that
248
+ * `find` would enforce for this model's bound context (GitHub issue #6).
249
+ *
250
+ * **This is a deliberate policy bypass.** Candidates are selected by
251
+ * `where` / `labels` exactly as `find` selects them, but the root policy
252
+ * predicate is REPORTED instead of applied — nodes the bound context
253
+ * cannot see ARE returned, with `visible: false`. Use it only on
254
+ * admin-only diagnostic paths. Every call logs a `warn` and is tagged
255
+ * `explain: true` in transaction metadata, even with
256
+ * `auditMetadata: false`.
257
+ *
258
+ * - `visible` is the exact enforcement verdict: the query projects the
259
+ * same composed predicate `find` puts in its WHERE, and the verdict
260
+ * recomputed from the per-policy outcomes must agree with it or the
261
+ * call throws — it never returns a possibly-wrong explanation.
262
+ * - Relationships in the selection are still filtered by their own
263
+ * target-type policies, exactly as in `find`; only the root type's
264
+ * policies are explained.
265
+ * - When the executor opens its own session it is READ-mode, so the
266
+ * server rejects any write. A caller-supplied `transaction` /
267
+ * `session` is used as-is — the caller owns its access mode.
268
+ * - `options.limit` defaults to 100 and may not exceed 1,000.
269
+ */
270
+ async explainPolicies(params) {
271
+ if (params?.select && params?.selectionSet)
272
+ throw new errors_1.OGMError('Cannot provide both "select" and "selectionSet". They are mutually exclusive.');
273
+ const binding = this.policyBinding;
274
+ if (binding?.globalBypass)
275
+ throw new errors_1.OGMError('explainPolicies cannot run on a policy-bypassed OGM (ogm.unsafe.bypassPolicies()): there are no enforced policies to explain.');
276
+ const resolveDetailed = binding?.resolveDetailed;
277
+ if (!binding || !resolveDetailed)
278
+ throw new errors_1.OGMError(`explainPolicies requires a policy-bound model. Obtain it via ogm.withContext(ctx).model('${this.nodeDef.typeName}').`);
279
+ const limit = (0, explain_1.resolveExplainLimit)(params?.options?.limit);
280
+ if (this.logger?.warn)
281
+ this.logger.warn('[OGM] explainPolicies on type "%s" returns rows regardless of policy outcome (diagnostic policy bypass)', this.nodeDef.typeName);
282
+ // Resolve ONCE and derive the compile input from the same object the
283
+ // report is built from — keeps fragments aligned with entries.
284
+ const ctx = binding.ctx;
285
+ const detailed = resolveDetailed(this.nodeDef.typeName, 'read', ctx);
286
+ // Always bound (v2.3.0): a root without policies still enforces the
287
+ // policies of the types its selection / traversals reach, like `find`.
288
+ const policyContext = {
289
+ ctx,
290
+ operation: 'read',
291
+ resolved: detailed ? (0, resolver_1.projectResolution)(detailed) : types_1.NO_ROOT_POLICY,
292
+ defaults: binding.defaults,
293
+ resolveForType: (typeName, targetOp) => binding.resolve(typeName, targetOp, ctx),
294
+ };
295
+ const cypherParts = [];
296
+ const allParams = {};
297
+ const paramCounter = { count: 0 };
298
+ const selection = this.resolveSelection(params ?? {});
299
+ const validatedLabels = (params?.labels ?? []).map((l) => (0, validation_1.assertSafeLabel)(l));
300
+ const labels = [(0, validation_1.escapeIdentifier)(this.nodeDef.label), ...validatedLabels];
301
+ cypherParts.push(`MATCH (n:${labels.join(':')})`);
302
+ // Candidate WHERE — compiled exactly as `find` compiles it (same
303
+ // order, counter, prelude scope, policy-aware traversal), with the
304
+ // root policy clause returned separately instead of AND-stitched.
305
+ const where = this.whereCompiler.compileForExplain(params?.where, 'n', this.nodeDef, paramCounter, policyContext);
306
+ if (where.preludes.length > 0)
307
+ cypherParts.push(...where.preludes);
308
+ (0, validation_1.mergeParams)(allParams, where.params);
309
+ const policyClause = where.policy?.clause ?? null;
310
+ const fragments = where.policy?.fragments ?? null;
311
+ if (where.userCypher)
312
+ cypherParts.push(`WHERE ${where.userCypher}`);
313
+ // Project the outcomes right after the candidate WHERE: the `@cypher`
314
+ // `__where_*` aliases the fragments reference are only in scope here
315
+ // (selection / sort preludes carry just their own preserveVars).
316
+ const plan = (0, explain_1.buildExplainPlan)(detailed, fragments);
317
+ const visibleExpr = policyClause === null ? 'true' : `coalesce((${policyClause}), false)`;
318
+ cypherParts.push(`WITH n, [${plan.outcomeExpressions.join(', ')}] AS ${explain_1.EXPLAIN_OUTCOMES}, ${visibleExpr} AS ${explain_1.EXPLAIN_VISIBLE}`);
319
+ const explainVars = [explain_1.EXPLAIN_OUTCOMES, explain_1.EXPLAIN_VISIBLE];
320
+ const selectScope = new cypher_field_projection_1.CypherFieldScope('n', explainVars, '__sel');
321
+ const returnClause = this.selectionCompiler.compile(selection, 'n', this.nodeDef, this._maxDepth, 0, allParams, paramCounter, selectScope, policyContext);
322
+ const opts = this.compileOptions({ ...params?.options, limit }, allParams, [
323
+ ...explainVars,
324
+ ...selectScope.carried(),
325
+ ]);
326
+ if (selectScope.hasAny())
327
+ cypherParts.push(...selectScope.emit());
328
+ if (opts.pre)
329
+ cypherParts.push(opts.pre);
330
+ cypherParts.push(`RETURN ${returnClause}, ${explain_1.EXPLAIN_OUTCOMES}, ${explain_1.EXPLAIN_VISIBLE}`);
331
+ if (opts.post)
332
+ cypherParts.push(opts.post);
333
+ const result = await this.executor.execute(cypherParts.join('\n'), allParams, this.withAuditMetadata(params?.context, policyContext, 'read', false, true), { accessMode: 'READ' });
334
+ return result.records.map((record, row) => ({
335
+ node: result_mapper_1.ResultMapper.mapRecord(record, 'n'),
336
+ ...(0, explain_1.interpretExplainRow)(plan, record.get(explain_1.EXPLAIN_OUTCOMES), record.get(explain_1.EXPLAIN_VISIBLE), this.nodeDef.typeName, row),
337
+ }));
338
+ }
232
339
  // --- create ---------------------------------------------------------------
233
340
  async create(params) {
234
341
  if (params.select && params.selectionSet)
235
342
  throw new errors_1.OGMError('Cannot provide both "select" and "selectionSet". They are mutually exclusive.');
236
343
  const policyContext = this.resolvePolicyContext('create', params.unsafe);
237
344
  this.evaluateCreatePolicies(policyContext, params.input);
238
- const { cypher, params: mutParams } = this.mutationCompiler.compileCreate(params.input, this.nodeDef, params.labels);
239
- // Shared counter so the selection's connection-where params don't collide
240
- // with anything the mutation compiler already emitted into mutParams.
345
+ (0, nested_writes_1.assertNestedCreatesAllowed)(this.schema, this.nodeDef, params.input, policyContext);
346
+ // ONE counter for the whole statement: nested connect filters and their
347
+ // target-policy predicates (mutation compiler), then the selection's
348
+ // connection-where params, all draw from it — no `param<N>` collisions.
241
349
  const paramCounter = { count: 0 };
350
+ const { cypher, params: mutParams } = this.mutationCompiler.compileCreate(params.input, this.nodeDef, params.labels,
351
+ // v2.3.0 — connect targets inside the create input are gated by the
352
+ // TARGET type's read policy (pre-2.3.0 the create path threaded none).
353
+ policyContext ?? undefined, paramCounter);
242
354
  const readPolicyContext = this.resolvePolicyContext('read', params.unsafe);
243
355
  let finalCypher;
244
356
  if (params.select)
@@ -268,6 +380,7 @@ class Model {
268
380
  const policyContext = this.resolvePolicyContext('update', params.unsafe);
269
381
  this.assertNotDeniedAtCompile(policyContext, 'update');
270
382
  this.evaluateWriteRestrictives(policyContext, 'update', params.update);
383
+ (0, nested_writes_1.assertNestedUpdatesAllowed)(this.schema, this.nodeDef, params.update, policyContext);
271
384
  const paramCounter = { count: 0 };
272
385
  const whereResult = this.whereCompiler.compile(params.where, 'n', this.nodeDef, paramCounter, policyContext ? { policyContext } : undefined);
273
386
  const { cypher, params: mutParams } = this.mutationCompiler.compileUpdate(params.where ?? {}, params.update, params.connect, params.disconnect, this.nodeDef, whereResult, params.labels, 'node',
@@ -306,7 +419,9 @@ class Model {
306
419
  // ReadRestrictives in the WHERE clause below.
307
420
  const paramCounter = { count: 0 };
308
421
  const whereResult = this.whereCompiler.compile(params.where, 'n', this.nodeDef, paramCounter, policyContext ? { policyContext } : undefined);
309
- const { cypher, params: mutParams } = this.mutationCompiler.compileDelete(this.nodeDef, whereResult, params.delete);
422
+ const { cypher, params: mutParams } = this.mutationCompiler.compileDelete(this.nodeDef, whereResult, params.delete,
423
+ // v2.3.0 — each cascade target is gated by its own `delete` policy.
424
+ policyContext ?? undefined, paramCounter);
310
425
  const result = await this.executor.execute(cypher, mutParams, this.withAuditMetadata(params.context, policyContext, 'delete', Boolean(params.unsafe?.bypassPolicies)));
311
426
  const counters = result.summary.counters.updates();
312
427
  return {
@@ -319,8 +434,10 @@ class Model {
319
434
  // aggregate prefers 'aggregate' policies but falls back to 'read'
320
435
  // per design decision #7. The fallback only applies when no
321
436
  // 'aggregate'-specific policy is registered for this type.
437
+ // "No aggregate policy registered" is `NO_ROOT_POLICY` (identity), not
438
+ // a null bundle — a bound model always carries one since v2.3.0.
322
439
  let policyContext = this.resolvePolicyContext('aggregate', params.unsafe);
323
- if (!policyContext)
440
+ if (!policyContext || policyContext.resolved === types_1.NO_ROOT_POLICY)
324
441
  policyContext = this.resolvePolicyContext('read', params.unsafe);
325
442
  this.assertNotDeniedAtCompile(policyContext, 'aggregate');
326
443
  const cypherParts = [];
@@ -505,6 +622,7 @@ class Model {
505
622
  const policyContext = this.resolvePolicyContext('update', params.unsafe);
506
623
  this.assertNotDeniedAtCompile(policyContext, 'update');
507
624
  this.evaluateWriteRestrictives(policyContext, 'update', params.data);
625
+ (0, nested_writes_1.assertNestedUpdatesAllowed)(this.schema, this.nodeDef, params.data, policyContext);
508
626
  const paramCounter = { count: 0 };
509
627
  const whereResult = this.whereCompiler.compile(params.where, 'n', this.nodeDef, paramCounter, policyContext ? { policyContext } : undefined);
510
628
  const { cypher, params: mutParams } = this.mutationCompiler.compileUpdate(params.where ?? {}, params.data, undefined, // no connect
@@ -691,101 +809,18 @@ class Model {
691
809
  }
692
810
  // --- Private helpers ------------------------------------------------------
693
811
  /**
694
- * Evaluate `'create'` policies in JS BEFORE the mutation runs.
695
- *
696
- * - Override → all input is allowed.
697
- * - Permissive → at least one (whose `appliesWhen` matches) must
698
- * accept each input via `when(ctx)` returning a non-empty partial.
699
- * - Restrictive → must hold for every input. Restrictives whose
700
- * `when(ctx, input)` returns false trigger `PolicyDeniedError`.
701
- *
702
- * Note: the where-predicate from a permissive `when(ctx)` is treated
703
- * as a SHAPE check — it only documents which fields the user is
704
- * allowed to set; we do NOT compile-and-run the partial against the
705
- * input. (Validating shape against a where-partial is out of scope
706
- * for v1.7.0.) Restrictive `when(ctx, input)` is the canonical
707
- * "WITH CHECK" hook.
812
+ * Root `'create'` checks (default-deny + WITH CHECK) — shared with every
813
+ * nested create via `src/policy/nested-writes.ts`.
708
814
  */
709
815
  evaluateCreatePolicies(bundle, inputs) {
710
- if (!bundle || bundle.resolved.overridden)
711
- return;
712
- if (bundle.resolved.permissives.length === 0 &&
713
- bundle.defaults.onDeny === 'throw')
714
- throw new errors_2.PolicyDeniedError({
715
- typeName: this.nodeDef.typeName,
716
- operation: 'create',
717
- reason: 'no-permissive-matched',
718
- });
719
- if (bundle.resolved.permissives.length === 0 &&
720
- bundle.defaults.onDeny !== 'throw')
721
- throw new errors_2.PolicyDeniedError({
722
- typeName: this.nodeDef.typeName,
723
- operation: 'create',
724
- reason: 'no-permissive-matched',
725
- detail: 'create operations cannot rely on default-deny silent-empty; at least one permissive must apply.',
726
- });
727
- for (const input of inputs)
728
- for (const r of bundle.resolved.restrictives) {
729
- // Only WriteRestrictives participate at the application layer.
730
- // ReadRestrictives bound to 'create' are nonsensical (no row to
731
- // filter) and the constructor would have flagged a mixed
732
- // operations array; this guard is defense in depth.
733
- if (!(0, types_1.isWriteRestrictive)(r))
734
- continue;
735
- if (r.appliesWhen && !r.appliesWhen(bundle.ctx))
736
- continue;
737
- const verdict = r.when(bundle.ctx, input);
738
- // v1.8.7 — require explicit positive consent. Pre-1.8.7 only
739
- // `=== false` rejected, so a `when` returning undefined/null
740
- // (e.g. `ctx.canWrite && input.tenantId === ctx.tenantId` with
741
- // an anonymous ctx) silently ALLOWED the write.
742
- if (verdict !== true)
743
- throw new errors_2.PolicyDeniedError({
744
- typeName: this.nodeDef.typeName,
745
- operation: 'create',
746
- reason: 'restrictive-rejected-input',
747
- policyName: r.name,
748
- });
749
- }
816
+ (0, nested_writes_1.evaluateCreatePolicies)(bundle, this.nodeDef.typeName, inputs);
750
817
  }
751
818
  /**
752
- * Evaluate WRITE-side restrictive policies (create/update) at the
753
- * application layer. Each `WriteRestrictive` is invoked exactly once
754
- * with `(ctx, input)`; anything other than an explicit `true` return
755
- * rejects the operation with `PolicyDeniedError` (v1.8.7 — previously
756
- * only `false` rejected, so nullish returns silently allowed).
757
- *
758
- * ReadRestrictives are NOT consumed here — they enforce row-filter
759
- * semantics via the compiled WHERE clause (see `WhereCompiler`). Only
760
- * write-side restrictives have "WITH CHECK" semantics that need
761
- * application-layer evaluation.
762
- *
763
- * For `delete`, there is no input to validate; deletes are filtered
764
- * solely via ReadRestrictives on the WHERE clause. Calling this with
765
- * `operation: 'delete'` is a no-op (no WriteRestrictives target
766
- * delete).
819
+ * Root WITH CHECK for create/update input — shared with every nested
820
+ * write via `src/policy/nested-writes.ts`.
767
821
  */
768
822
  evaluateWriteRestrictives(bundle, operation, input) {
769
- if (!bundle || bundle.resolved.overridden)
770
- return;
771
- for (const r of bundle.resolved.restrictives) {
772
- if (!(0, types_1.isWriteRestrictive)(r))
773
- continue;
774
- // Compile-time gate: appliesWhen returning false drops the
775
- // policy entirely for this operation.
776
- if (r.appliesWhen && !r.appliesWhen(bundle.ctx))
777
- continue;
778
- const verdict = r.when(bundle.ctx, input ?? {});
779
- // v1.8.7 — require explicit positive consent (see
780
- // evaluateCreatePolicies for the rationale).
781
- if (verdict !== true)
782
- throw new errors_2.PolicyDeniedError({
783
- typeName: this.nodeDef.typeName,
784
- operation,
785
- reason: 'restrictive-rejected-input',
786
- policyName: r.name,
787
- });
788
- }
823
+ (0, nested_writes_1.evaluateWriteRestrictives)(bundle, this.nodeDef.typeName, operation, input);
789
824
  }
790
825
  defaultSelection() {
791
826
  if (this._defaultSelection)