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/esm/model.js CHANGED
@@ -9,8 +9,10 @@ import { OGMError, RecordNotFoundError } from './errors';
9
9
  import { Executor } from './execution/executor';
10
10
  import { ResultMapper } from './execution/result-mapper';
11
11
  import { PolicyDeniedError } from './policy/errors';
12
- import { hashCtx } from './policy/resolver';
13
- import { isWriteRestrictive } from './policy/types';
12
+ import { assertNestedCreatesAllowed, assertNestedUpdatesAllowed, evaluateCreatePolicies, evaluateWriteRestrictives, } from './policy/nested-writes';
13
+ import { buildExplainPlan, EXPLAIN_OUTCOMES, EXPLAIN_VISIBLE, interpretExplainRow, resolveExplainLimit, } from './policy/explain';
14
+ import { hashCtx, projectResolution } from './policy/resolver';
15
+ import { NO_ROOT_POLICY } from './policy/types';
14
16
  import { CypherFieldScope } from './utils/cypher-field-projection';
15
17
  import { compileSortClause } from './utils/cypher-sort-projection';
16
18
  import { assertSafeIdentifier, assertSafeLabel, escapeIdentifier, mergeParams, } from './utils/validation';
@@ -68,9 +70,12 @@ export class Model {
68
70
  this.logger.warn('[OGM] per-call unsafe.bypassPolicies on type "%s" op "%s"', this.nodeDef.typeName, op);
69
71
  return null;
70
72
  }
71
- const resolved = binding.resolve(this.nodeDef.typeName, op, binding.ctx);
72
- if (!resolved)
73
- return null;
73
+ // v2.3.0 — a root with no policy for `op` still gets a bundle
74
+ // (`NO_ROOT_POLICY`: no root clause) so target-type policies stay
75
+ // enforced on everything reached through relationships. Pre-2.3.0 this
76
+ // returned `null`, turning policy-free types into gateways around
77
+ // their neighbours' policies.
78
+ const resolved = binding.resolve(this.nodeDef.typeName, op, binding.ctx) ?? NO_ROOT_POLICY;
74
79
  return {
75
80
  ctx: binding.ctx,
76
81
  operation: op,
@@ -102,11 +107,17 @@ export class Model {
102
107
  * Build `ExecutionContext` with audit metadata when policies are
103
108
  * configured. Preserves the user's transaction/session selection.
104
109
  */
105
- withAuditMetadata(context, bundle, operation, bypassed) {
110
+ withAuditMetadata(context, bundle, operation, bypassed,
111
+ /**
112
+ * `explainPolicies` call — tags `explain: true` and, like a global
113
+ * bypass, is ALWAYS recorded even with `auditMetadata: false`.
114
+ */
115
+ explain = false) {
106
116
  if (!this.policyBinding)
107
117
  return context;
108
118
  if (this.policyBinding.defaults.auditMetadata === false &&
109
- !this.policyBinding.globalBypass)
119
+ !this.policyBinding.globalBypass &&
120
+ !explain)
110
121
  return context;
111
122
  const evaluated = bundle?.resolved.evaluated ?? [];
112
123
  const metadata = {
@@ -117,6 +128,8 @@ export class Model {
117
128
  policiesEvaluated: [...evaluated],
118
129
  bypassed,
119
130
  };
131
+ if (explain)
132
+ metadata.explain = true;
120
133
  if (context?.metadata)
121
134
  return { ...context, metadata: { ...context.metadata, ...metadata } };
122
135
  if (context)
@@ -224,16 +237,115 @@ export class Model {
224
237
  const result = await this.executor.execute(cypher, allParams, this.withAuditMetadata(params?.context, policyContext, 'read', Boolean(params?.unsafe?.bypassPolicies)));
225
238
  return ResultMapper.mapRecords(result.records, 'n');
226
239
  }
240
+ // --- explainPolicies ------------------------------------------------------
241
+ /**
242
+ * Explain, per candidate node, the outcome of every `read` policy that
243
+ * `find` would enforce for this model's bound context (GitHub issue #6).
244
+ *
245
+ * **This is a deliberate policy bypass.** Candidates are selected by
246
+ * `where` / `labels` exactly as `find` selects them, but the root policy
247
+ * predicate is REPORTED instead of applied — nodes the bound context
248
+ * cannot see ARE returned, with `visible: false`. Use it only on
249
+ * admin-only diagnostic paths. Every call logs a `warn` and is tagged
250
+ * `explain: true` in transaction metadata, even with
251
+ * `auditMetadata: false`.
252
+ *
253
+ * - `visible` is the exact enforcement verdict: the query projects the
254
+ * same composed predicate `find` puts in its WHERE, and the verdict
255
+ * recomputed from the per-policy outcomes must agree with it or the
256
+ * call throws — it never returns a possibly-wrong explanation.
257
+ * - Relationships in the selection are still filtered by their own
258
+ * target-type policies, exactly as in `find`; only the root type's
259
+ * policies are explained.
260
+ * - When the executor opens its own session it is READ-mode, so the
261
+ * server rejects any write. A caller-supplied `transaction` /
262
+ * `session` is used as-is — the caller owns its access mode.
263
+ * - `options.limit` defaults to 100 and may not exceed 1,000.
264
+ */
265
+ async explainPolicies(params) {
266
+ if (params?.select && params?.selectionSet)
267
+ throw new OGMError('Cannot provide both "select" and "selectionSet". They are mutually exclusive.');
268
+ const binding = this.policyBinding;
269
+ if (binding?.globalBypass)
270
+ throw new OGMError('explainPolicies cannot run on a policy-bypassed OGM (ogm.unsafe.bypassPolicies()): there are no enforced policies to explain.');
271
+ const resolveDetailed = binding?.resolveDetailed;
272
+ if (!binding || !resolveDetailed)
273
+ throw new OGMError(`explainPolicies requires a policy-bound model. Obtain it via ogm.withContext(ctx).model('${this.nodeDef.typeName}').`);
274
+ const limit = resolveExplainLimit(params?.options?.limit);
275
+ if (this.logger?.warn)
276
+ this.logger.warn('[OGM] explainPolicies on type "%s" returns rows regardless of policy outcome (diagnostic policy bypass)', this.nodeDef.typeName);
277
+ // Resolve ONCE and derive the compile input from the same object the
278
+ // report is built from — keeps fragments aligned with entries.
279
+ const ctx = binding.ctx;
280
+ const detailed = resolveDetailed(this.nodeDef.typeName, 'read', ctx);
281
+ // Always bound (v2.3.0): a root without policies still enforces the
282
+ // policies of the types its selection / traversals reach, like `find`.
283
+ const policyContext = {
284
+ ctx,
285
+ operation: 'read',
286
+ resolved: detailed ? projectResolution(detailed) : NO_ROOT_POLICY,
287
+ defaults: binding.defaults,
288
+ resolveForType: (typeName, targetOp) => binding.resolve(typeName, targetOp, ctx),
289
+ };
290
+ const cypherParts = [];
291
+ const allParams = {};
292
+ const paramCounter = { count: 0 };
293
+ const selection = this.resolveSelection(params ?? {});
294
+ const validatedLabels = (params?.labels ?? []).map((l) => assertSafeLabel(l));
295
+ const labels = [escapeIdentifier(this.nodeDef.label), ...validatedLabels];
296
+ cypherParts.push(`MATCH (n:${labels.join(':')})`);
297
+ // Candidate WHERE — compiled exactly as `find` compiles it (same
298
+ // order, counter, prelude scope, policy-aware traversal), with the
299
+ // root policy clause returned separately instead of AND-stitched.
300
+ const where = this.whereCompiler.compileForExplain(params?.where, 'n', this.nodeDef, paramCounter, policyContext);
301
+ if (where.preludes.length > 0)
302
+ cypherParts.push(...where.preludes);
303
+ mergeParams(allParams, where.params);
304
+ const policyClause = where.policy?.clause ?? null;
305
+ const fragments = where.policy?.fragments ?? null;
306
+ if (where.userCypher)
307
+ cypherParts.push(`WHERE ${where.userCypher}`);
308
+ // Project the outcomes right after the candidate WHERE: the `@cypher`
309
+ // `__where_*` aliases the fragments reference are only in scope here
310
+ // (selection / sort preludes carry just their own preserveVars).
311
+ const plan = buildExplainPlan(detailed, fragments);
312
+ const visibleExpr = policyClause === null ? 'true' : `coalesce((${policyClause}), false)`;
313
+ cypherParts.push(`WITH n, [${plan.outcomeExpressions.join(', ')}] AS ${EXPLAIN_OUTCOMES}, ${visibleExpr} AS ${EXPLAIN_VISIBLE}`);
314
+ const explainVars = [EXPLAIN_OUTCOMES, EXPLAIN_VISIBLE];
315
+ const selectScope = new CypherFieldScope('n', explainVars, '__sel');
316
+ const returnClause = this.selectionCompiler.compile(selection, 'n', this.nodeDef, this._maxDepth, 0, allParams, paramCounter, selectScope, policyContext);
317
+ const opts = this.compileOptions({ ...params?.options, limit }, allParams, [
318
+ ...explainVars,
319
+ ...selectScope.carried(),
320
+ ]);
321
+ if (selectScope.hasAny())
322
+ cypherParts.push(...selectScope.emit());
323
+ if (opts.pre)
324
+ cypherParts.push(opts.pre);
325
+ cypherParts.push(`RETURN ${returnClause}, ${EXPLAIN_OUTCOMES}, ${EXPLAIN_VISIBLE}`);
326
+ if (opts.post)
327
+ cypherParts.push(opts.post);
328
+ const result = await this.executor.execute(cypherParts.join('\n'), allParams, this.withAuditMetadata(params?.context, policyContext, 'read', false, true), { accessMode: 'READ' });
329
+ return result.records.map((record, row) => ({
330
+ node: ResultMapper.mapRecord(record, 'n'),
331
+ ...interpretExplainRow(plan, record.get(EXPLAIN_OUTCOMES), record.get(EXPLAIN_VISIBLE), this.nodeDef.typeName, row),
332
+ }));
333
+ }
227
334
  // --- create ---------------------------------------------------------------
228
335
  async create(params) {
229
336
  if (params.select && params.selectionSet)
230
337
  throw new OGMError('Cannot provide both "select" and "selectionSet". They are mutually exclusive.');
231
338
  const policyContext = this.resolvePolicyContext('create', params.unsafe);
232
339
  this.evaluateCreatePolicies(policyContext, params.input);
233
- const { cypher, params: mutParams } = this.mutationCompiler.compileCreate(params.input, this.nodeDef, params.labels);
234
- // Shared counter so the selection's connection-where params don't collide
235
- // with anything the mutation compiler already emitted into mutParams.
340
+ assertNestedCreatesAllowed(this.schema, this.nodeDef, params.input, policyContext);
341
+ // ONE counter for the whole statement: nested connect filters and their
342
+ // target-policy predicates (mutation compiler), then the selection's
343
+ // connection-where params, all draw from it — no `param<N>` collisions.
236
344
  const paramCounter = { count: 0 };
345
+ const { cypher, params: mutParams } = this.mutationCompiler.compileCreate(params.input, this.nodeDef, params.labels,
346
+ // v2.3.0 — connect targets inside the create input are gated by the
347
+ // TARGET type's read policy (pre-2.3.0 the create path threaded none).
348
+ policyContext ?? undefined, paramCounter);
237
349
  const readPolicyContext = this.resolvePolicyContext('read', params.unsafe);
238
350
  let finalCypher;
239
351
  if (params.select)
@@ -263,6 +375,7 @@ export class Model {
263
375
  const policyContext = this.resolvePolicyContext('update', params.unsafe);
264
376
  this.assertNotDeniedAtCompile(policyContext, 'update');
265
377
  this.evaluateWriteRestrictives(policyContext, 'update', params.update);
378
+ assertNestedUpdatesAllowed(this.schema, this.nodeDef, params.update, policyContext);
266
379
  const paramCounter = { count: 0 };
267
380
  const whereResult = this.whereCompiler.compile(params.where, 'n', this.nodeDef, paramCounter, policyContext ? { policyContext } : undefined);
268
381
  const { cypher, params: mutParams } = this.mutationCompiler.compileUpdate(params.where ?? {}, params.update, params.connect, params.disconnect, this.nodeDef, whereResult, params.labels, 'node',
@@ -301,7 +414,9 @@ export class Model {
301
414
  // ReadRestrictives in the WHERE clause below.
302
415
  const paramCounter = { count: 0 };
303
416
  const whereResult = this.whereCompiler.compile(params.where, 'n', this.nodeDef, paramCounter, policyContext ? { policyContext } : undefined);
304
- const { cypher, params: mutParams } = this.mutationCompiler.compileDelete(this.nodeDef, whereResult, params.delete);
417
+ const { cypher, params: mutParams } = this.mutationCompiler.compileDelete(this.nodeDef, whereResult, params.delete,
418
+ // v2.3.0 — each cascade target is gated by its own `delete` policy.
419
+ policyContext ?? undefined, paramCounter);
305
420
  const result = await this.executor.execute(cypher, mutParams, this.withAuditMetadata(params.context, policyContext, 'delete', Boolean(params.unsafe?.bypassPolicies)));
306
421
  const counters = result.summary.counters.updates();
307
422
  return {
@@ -314,8 +429,10 @@ export class Model {
314
429
  // aggregate prefers 'aggregate' policies but falls back to 'read'
315
430
  // per design decision #7. The fallback only applies when no
316
431
  // 'aggregate'-specific policy is registered for this type.
432
+ // "No aggregate policy registered" is `NO_ROOT_POLICY` (identity), not
433
+ // a null bundle — a bound model always carries one since v2.3.0.
317
434
  let policyContext = this.resolvePolicyContext('aggregate', params.unsafe);
318
- if (!policyContext)
435
+ if (!policyContext || policyContext.resolved === NO_ROOT_POLICY)
319
436
  policyContext = this.resolvePolicyContext('read', params.unsafe);
320
437
  this.assertNotDeniedAtCompile(policyContext, 'aggregate');
321
438
  const cypherParts = [];
@@ -500,6 +617,7 @@ export class Model {
500
617
  const policyContext = this.resolvePolicyContext('update', params.unsafe);
501
618
  this.assertNotDeniedAtCompile(policyContext, 'update');
502
619
  this.evaluateWriteRestrictives(policyContext, 'update', params.data);
620
+ assertNestedUpdatesAllowed(this.schema, this.nodeDef, params.data, policyContext);
503
621
  const paramCounter = { count: 0 };
504
622
  const whereResult = this.whereCompiler.compile(params.where, 'n', this.nodeDef, paramCounter, policyContext ? { policyContext } : undefined);
505
623
  const { cypher, params: mutParams } = this.mutationCompiler.compileUpdate(params.where ?? {}, params.data, undefined, // no connect
@@ -686,101 +804,18 @@ export class Model {
686
804
  }
687
805
  // --- Private helpers ------------------------------------------------------
688
806
  /**
689
- * Evaluate `'create'` policies in JS BEFORE the mutation runs.
690
- *
691
- * - Override → all input is allowed.
692
- * - Permissive → at least one (whose `appliesWhen` matches) must
693
- * accept each input via `when(ctx)` returning a non-empty partial.
694
- * - Restrictive → must hold for every input. Restrictives whose
695
- * `when(ctx, input)` returns false trigger `PolicyDeniedError`.
696
- *
697
- * Note: the where-predicate from a permissive `when(ctx)` is treated
698
- * as a SHAPE check — it only documents which fields the user is
699
- * allowed to set; we do NOT compile-and-run the partial against the
700
- * input. (Validating shape against a where-partial is out of scope
701
- * for v1.7.0.) Restrictive `when(ctx, input)` is the canonical
702
- * "WITH CHECK" hook.
807
+ * Root `'create'` checks (default-deny + WITH CHECK) — shared with every
808
+ * nested create via `src/policy/nested-writes.ts`.
703
809
  */
704
810
  evaluateCreatePolicies(bundle, inputs) {
705
- if (!bundle || bundle.resolved.overridden)
706
- return;
707
- if (bundle.resolved.permissives.length === 0 &&
708
- bundle.defaults.onDeny === 'throw')
709
- throw new PolicyDeniedError({
710
- typeName: this.nodeDef.typeName,
711
- operation: 'create',
712
- reason: 'no-permissive-matched',
713
- });
714
- if (bundle.resolved.permissives.length === 0 &&
715
- bundle.defaults.onDeny !== 'throw')
716
- throw new PolicyDeniedError({
717
- typeName: this.nodeDef.typeName,
718
- operation: 'create',
719
- reason: 'no-permissive-matched',
720
- detail: 'create operations cannot rely on default-deny silent-empty; at least one permissive must apply.',
721
- });
722
- for (const input of inputs)
723
- for (const r of bundle.resolved.restrictives) {
724
- // Only WriteRestrictives participate at the application layer.
725
- // ReadRestrictives bound to 'create' are nonsensical (no row to
726
- // filter) and the constructor would have flagged a mixed
727
- // operations array; this guard is defense in depth.
728
- if (!isWriteRestrictive(r))
729
- continue;
730
- if (r.appliesWhen && !r.appliesWhen(bundle.ctx))
731
- continue;
732
- const verdict = r.when(bundle.ctx, input);
733
- // v1.8.7 — require explicit positive consent. Pre-1.8.7 only
734
- // `=== false` rejected, so a `when` returning undefined/null
735
- // (e.g. `ctx.canWrite && input.tenantId === ctx.tenantId` with
736
- // an anonymous ctx) silently ALLOWED the write.
737
- if (verdict !== true)
738
- throw new PolicyDeniedError({
739
- typeName: this.nodeDef.typeName,
740
- operation: 'create',
741
- reason: 'restrictive-rejected-input',
742
- policyName: r.name,
743
- });
744
- }
811
+ evaluateCreatePolicies(bundle, this.nodeDef.typeName, inputs);
745
812
  }
746
813
  /**
747
- * Evaluate WRITE-side restrictive policies (create/update) at the
748
- * application layer. Each `WriteRestrictive` is invoked exactly once
749
- * with `(ctx, input)`; anything other than an explicit `true` return
750
- * rejects the operation with `PolicyDeniedError` (v1.8.7 — previously
751
- * only `false` rejected, so nullish returns silently allowed).
752
- *
753
- * ReadRestrictives are NOT consumed here — they enforce row-filter
754
- * semantics via the compiled WHERE clause (see `WhereCompiler`). Only
755
- * write-side restrictives have "WITH CHECK" semantics that need
756
- * application-layer evaluation.
757
- *
758
- * For `delete`, there is no input to validate; deletes are filtered
759
- * solely via ReadRestrictives on the WHERE clause. Calling this with
760
- * `operation: 'delete'` is a no-op (no WriteRestrictives target
761
- * delete).
814
+ * Root WITH CHECK for create/update input — shared with every nested
815
+ * write via `src/policy/nested-writes.ts`.
762
816
  */
763
817
  evaluateWriteRestrictives(bundle, operation, input) {
764
- if (!bundle || bundle.resolved.overridden)
765
- return;
766
- for (const r of bundle.resolved.restrictives) {
767
- if (!isWriteRestrictive(r))
768
- continue;
769
- // Compile-time gate: appliesWhen returning false drops the
770
- // policy entirely for this operation.
771
- if (r.appliesWhen && !r.appliesWhen(bundle.ctx))
772
- continue;
773
- const verdict = r.when(bundle.ctx, input ?? {});
774
- // v1.8.7 — require explicit positive consent (see
775
- // evaluateCreatePolicies for the rationale).
776
- if (verdict !== true)
777
- throw new PolicyDeniedError({
778
- typeName: this.nodeDef.typeName,
779
- operation,
780
- reason: 'restrictive-rejected-input',
781
- policyName: r.name,
782
- });
783
- }
818
+ evaluateWriteRestrictives(bundle, this.nodeDef.typeName, operation, input);
784
819
  }
785
820
  defaultSelection() {
786
821
  if (this._defaultSelection)