@carlonicora/nestjs-neo4jsonapi 6.5.2 → 6.6.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 (37) hide show
  1. package/dist/common/helpers/define-entity.d.ts.map +1 -1
  2. package/dist/common/helpers/define-entity.js +15 -1
  3. package/dist/common/helpers/define-entity.js.map +1 -1
  4. package/dist/common/interfaces/entity.schema.interface.d.ts +26 -0
  5. package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
  6. package/dist/common/registries/entity-tenancy.registry.d.ts +76 -0
  7. package/dist/common/registries/entity-tenancy.registry.d.ts.map +1 -0
  8. package/dist/common/registries/entity-tenancy.registry.js +66 -0
  9. package/dist/common/registries/entity-tenancy.registry.js.map +1 -0
  10. package/dist/common/registries/index.d.ts +1 -0
  11. package/dist/common/registries/index.d.ts.map +1 -1
  12. package/dist/common/registries/index.js +1 -0
  13. package/dist/common/registries/index.js.map +1 -1
  14. package/dist/core/neo4j/abstracts/abstract.repository.d.ts +34 -0
  15. package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
  16. package/dist/core/neo4j/abstracts/abstract.repository.js +72 -48
  17. package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
  18. package/dist/core/neo4j/queries/update.relationship.d.ts +7 -2
  19. package/dist/core/neo4j/queries/update.relationship.d.ts.map +1 -1
  20. package/dist/core/neo4j/queries/update.relationship.js +28 -13
  21. package/dist/core/neo4j/queries/update.relationship.js.map +1 -1
  22. package/dist/core/neo4j/services/neo4j.service.d.ts +24 -0
  23. package/dist/core/neo4j/services/neo4j.service.d.ts.map +1 -1
  24. package/dist/core/neo4j/services/neo4j.service.js +94 -0
  25. package/dist/core/neo4j/services/neo4j.service.js.map +1 -1
  26. package/dist/foundations/ai-connection/entities/ai-connection.d.ts +1 -0
  27. package/dist/foundations/ai-connection/entities/ai-connection.d.ts.map +1 -1
  28. package/dist/foundations/ai-connection/entities/ai-connection.js +3 -0
  29. package/dist/foundations/ai-connection/entities/ai-connection.js.map +1 -1
  30. package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts +1 -0
  31. package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts.map +1 -1
  32. package/dist/foundations/ai-connection/services/ai-connection.service.d.ts +1 -0
  33. package/dist/foundations/ai-connection/services/ai-connection.service.d.ts.map +1 -1
  34. package/dist/foundations/role/entities/role.d.ts.map +1 -1
  35. package/dist/foundations/role/entities/role.js +4 -0
  36. package/dist/foundations/role/entities/role.js.map +1 -1
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"define-entity.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EAEjB,eAAe,EAEhB,MAAM,uCAAuC,CAAC;AAE/C,2IAA2I;AAC3I,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAqEnC;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,GAAG,GAAG,CAoBnE;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,YAAY,CAAC,CAAC,MACX,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CA+QrH;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC5E,cAAc,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjF,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAYxB"}
1
+ {"version":3,"file":"define-entity.d.ts","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EAEjB,eAAe,EAEhB,MAAM,uCAAuC,CAAC;AAE/C,2IAA2I;AAC3I,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAqEnC;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,GAAG,GAAG,CAoBnE;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,YAAY,CAAC,CAAC,MACX,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAgSrH;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC5E,cAAc,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjF,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAYxB"}
@@ -19,6 +19,7 @@ const core_1 = require("@nestjs/core");
19
19
  const jsonapi_serialiser_factory_1 = require("../../core/jsonapi/factories/jsonapi.serialiser.factory");
20
20
  const descriptor_based_serialiser_1 = require("../../core/jsonapi/serialisers/descriptor.based.serialiser");
21
21
  const entity_1 = require("../abstracts/entity");
22
+ const entity_tenancy_registry_1 = require("../registries/entity-tenancy.registry");
22
23
  /** Maximum number of dot-path segments allowed in a single `include` entry (each segment = one relationship hop from the include root). */
23
24
  exports.MAX_INCLUDE_DEPTH = 6;
24
25
  /**
@@ -190,18 +191,27 @@ function createSerialiserForDescriptor(descriptor, labelName) {
190
191
  */
191
192
  function defineEntity() {
192
193
  return function (schema) {
193
- const { type, endpoint, nodeName, labelName, fields, relationships, computed = {}, virtualFields = {}, serialiser: customSerialiser, injectServices = [], isCompanyScoped = true, description, chat, bridge, tenancy, } = schema;
194
+ const { type, endpoint, nodeName, labelName, fields, relationships, computed = {}, virtualFields = {}, serialiser: customSerialiser, injectServices = [], isCompanyScoped = true, description, chat, bridge, tenancy, linkScope, } = schema;
194
195
  if (isCompanyScoped && tenancy) {
195
196
  throw new Error(`defineEntity(${type}): "tenancy" is only valid with isCompanyScoped: false.`);
196
197
  }
197
198
  if (!isCompanyScoped && description && !tenancy) {
198
199
  throw new Error(`defineEntity(${type}): an unscoped described entity must declare "tenancy" ("global" | "self" | "internal" | { via: "<relationship key>" }).`);
199
200
  }
201
+ let viaHop;
200
202
  if (tenancy && typeof tenancy === "object") {
201
203
  const via = tenancy.via;
202
204
  if (!Object.prototype.hasOwnProperty.call(relationships ?? {}, via)) {
203
205
  throw new Error(`defineEntity(${type}): tenancy.via "${via}" is not a relationship on this descriptor.`);
204
206
  }
207
+ const viaRel = relationships[via];
208
+ viaHop = { relationship: viaRel.relationship, direction: viaRel.direction, label: viaRel.model.labelName };
209
+ }
210
+ if (linkScope !== undefined && linkScope !== "own-or-platform") {
211
+ throw new Error(`defineEntity(${type}): linkScope must be "own-or-platform".`);
212
+ }
213
+ if (linkScope && !isCompanyScoped && !viaHop) {
214
+ throw new Error(`defineEntity(${type}): linkScope "own-or-platform" needs a company-scoped entity or tenancy { via }; any other target is already existence-only.`);
205
215
  }
206
216
  if (bridge) {
207
217
  if (!Array.isArray(bridge.materialiseTo) || bridge.materialiseTo.length === 0) {
@@ -353,6 +363,7 @@ function defineEntity() {
353
363
  model: undefined, // Will be set below
354
364
  isCompanyScoped,
355
365
  tenancy,
366
+ linkScope,
356
367
  relationships,
357
368
  relationshipKeys,
358
369
  // Computed from fields
@@ -399,6 +410,9 @@ function defineEntity() {
399
410
  };
400
411
  // Assign model to descriptor
401
412
  descriptor.model = model;
413
+ // Label → tenancy, read by the generic relationship writers to decide what a
414
+ // client-supplied target id of this label must satisfy (see entity-tenancy.registry.ts).
415
+ entity_tenancy_registry_1.entityTenancyRegistry.register({ labelName, isCompanyScoped, tenancy, linkScope, via: viaHop });
402
416
  return descriptor;
403
417
  };
404
418
  }
@@ -1 +1 @@
1
- {"version":3,"file":"define-entity.js","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-entity.js","sourceRoot":"","sources":["../../../src/common/helpers/define-entity.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,18 @@ export type CypherType = CypherBaseType | CypherArrayType;
20
20
  export type EntityTenancy = "global" | "self" | "internal" | {
21
21
  via: string;
22
22
  };
23
+ /**
24
+ * Which rows of an entity a client-supplied relationship id may point at, when the entity is the
25
+ * TARGET of a generic relationship write (create / put / patch / addToRelationship).
26
+ *
27
+ * - omitted (default): the target must belong to the caller's company — through its `BELONGS_TO`
28
+ * edge (company-scoped), `id = $companyId` (tenancy "self"), or its `tenancy.via` parent.
29
+ * tenancy "global" / "internal" targets are checked for existence only.
30
+ * - `"own-or-platform"`: the entity mixes platform rows (no company edge at all) with
31
+ * company-owned rows. A platform row or one of the caller's own rows may be linked, never
32
+ * another company's. Valid on company-scoped and on `tenancy: { via }` entities.
33
+ */
34
+ export type EntityLinkScope = "own-or-platform";
23
35
  /**
24
36
  * Transformer function for field serialisation
25
37
  * Receives the entity data and any injected services
@@ -207,6 +219,13 @@ export interface RelationshipDef {
207
219
  immutable?: boolean;
208
220
  /** If true, the relationship is never written by generic descriptor-driven paths (create/put/patch skip it; relationship handlers reject it). Serialisation-only. */
209
221
  readOnly?: boolean;
222
+ /**
223
+ * If true, the generic writers (create / put / patch / addToRelationship) check only that each
224
+ * target of THIS relationship exists, instead of requiring it to belong to the caller's company.
225
+ * For edges that legitimately cross tenants (e.g. a player's character, in the player's
226
+ * company, joining a campaign owned by the GM's company). Default: false.
227
+ */
228
+ crossCompany?: true;
210
229
  /**
211
230
  * If true, the related records live outside this database (e.g. an external
212
231
  * corpus): the local node is only a link target. Generic reads
@@ -293,6 +312,11 @@ export interface EntitySchemaInput<T, R extends Record<string, RelationshipDef>
293
312
  * through it to the caller's company.
294
313
  */
295
314
  tenancy?: EntityTenancy;
315
+ /**
316
+ * Which rows of this entity a relationship write from ANOTHER entity may link to. See
317
+ * EntityLinkScope. Allowed on company-scoped and unscoped entities.
318
+ */
319
+ linkScope?: EntityLinkScope;
296
320
  /** Field definitions - keys must be valid entity properties */
297
321
  fields: {
298
322
  [K in keyof Partial<T>]?: FieldDef;
@@ -392,6 +416,8 @@ export interface EntityDescriptor<T, R extends Record<string, RelationshipDef> =
392
416
  isCompanyScoped: boolean;
393
417
  /** Tenant rule for an unscoped entity. See EntitySchemaInput.tenancy. */
394
418
  tenancy?: EntityTenancy;
419
+ /** Which rows a relationship write may link to. See EntitySchemaInput.linkScope. */
420
+ linkScope?: EntityLinkScope;
395
421
  /** Named relationships with autocomplete support (e.g., descriptor.relationships.author) */
396
422
  relationships: R;
397
423
  /** Relationship keys for autocomplete (e.g., descriptor.relationshipKeys.author returns "author") */
@@ -1 +1 @@
1
- {"version":3,"file":"entity.schema.interface.d.ts","sourceRoot":"","sources":["../../../src/common/interfaces/entity.schema.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.schema.interface.d.ts","sourceRoot":"","sources":["../../../src/common/interfaces/entity.schema.interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { EntityLinkScope, EntityTenancy, RelationshipDef } from "../interfaces/entity.schema.interface";
2
+ /** The one hop from a `tenancy: { via }` entity to the parent that carries its company. */
3
+ export type RelatedNodeHop = {
4
+ /** Neo4j relationship type of the hop (e.g. "BELONGS_TO"). */
5
+ relationship: string;
6
+ /** "out" = (target)-[:REL]->(parent), "in" = (target)<-[:REL]-(parent). */
7
+ direction: "in" | "out";
8
+ /** Label of the parent. `Company` means the parent IS the company (matched by id). */
9
+ label: string;
10
+ };
11
+ /**
12
+ * What a related node of a relationship write must satisfy, beyond existing.
13
+ *
14
+ * - `exists`: existence only (global / internal / undescribed targets, `crossCompany`
15
+ * relationships, the caller's own user id, server-filled `contextKey` values).
16
+ * - `company`: `(t)-[:BELONGS_TO]->(:Company {id: $companyId})`. A node with several
17
+ * BELONGS_TO edges (a User member of several companies) passes when ANY edge points at it.
18
+ * - `self`: the target is the company itself (`t.id = $companyId`).
19
+ * - `via`: the target's parent through `hop` belongs to the company (one hop).
20
+ * - `allowPlatform` (company / via): a target with no company edge (no parent through the hop)
21
+ * is also accepted — the entity's `linkScope: "own-or-platform"`.
22
+ */
23
+ export type RelatedNodeRule = {
24
+ kind: "exists";
25
+ } | {
26
+ kind: "self";
27
+ } | {
28
+ kind: "company";
29
+ allowPlatform?: boolean;
30
+ } | {
31
+ kind: "via";
32
+ hop: RelatedNodeHop;
33
+ allowPlatform?: boolean;
34
+ };
35
+ /** What the registry knows about the label of an entity defined with `defineEntity`. */
36
+ export type EntityTenancyEntry = {
37
+ labelName: string;
38
+ isCompanyScoped: boolean;
39
+ tenancy?: EntityTenancy;
40
+ linkScope?: EntityLinkScope;
41
+ /** Resolved `tenancy.via` hop (only for `tenancy: { via }`). */
42
+ via?: RelatedNodeHop;
43
+ };
44
+ /**
45
+ * Label → tenancy registry, filled by `defineEntity()` at import time.
46
+ *
47
+ * The generic relationship writers read it to decide what a client-supplied target id must
48
+ * satisfy (see `relatedNodeRule`). A label never passed to `defineEntity` (plain-model
49
+ * entities such as StripePrice, OAuthClient, Module) is unknown and checked for existence only.
50
+ * When two descriptors declare the same label, the one defined last wins (an app's extended
51
+ * descriptor is imported after the library's).
52
+ *
53
+ * NOT @Injectable: populated before NestJS bootstraps, like `modelRegistry`.
54
+ */
55
+ export declare class EntityTenancyRegistry {
56
+ private readonly entries;
57
+ register(entry: EntityTenancyEntry): void;
58
+ get(labelName: string): EntityTenancyEntry | undefined;
59
+ /** Test helper: removes one label (or every label) from the registry. */
60
+ unregister(labelName?: string): void;
61
+ }
62
+ export declare const entityTenancyRegistry: EntityTenancyRegistry;
63
+ /**
64
+ * The rule a target of `label` must satisfy for the caller's company, from the registry:
65
+ * company-scoped → `company`; tenancy "self" → `self`; tenancy { via } → `via`; anything else
66
+ * (global, internal, unscoped without tenancy, unknown label) → `exists`. `linkScope:
67
+ * "own-or-platform"` adds `allowPlatform` to `company` / `via`.
68
+ */
69
+ export declare const relatedNodeRuleForLabel: (label: string) => RelatedNodeRule;
70
+ /**
71
+ * The rule for the targets of one relationship of a descriptor: `crossCompany: true` and
72
+ * server-filled `contextKey` relationships are existence-only, everything else follows the
73
+ * target label (`relatedNodeRuleForLabel`).
74
+ */
75
+ export declare const relatedNodeRule: (rel: RelationshipDef) => RelatedNodeRule;
76
+ //# sourceMappingURL=entity-tenancy.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-tenancy.registry.d.ts","sourceRoot":"","sources":["../../../src/common/registries/entity-tenancy.registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExG,2FAA2F;AAC3F,MAAM,MAAM,cAAc,GAAG;IAC3B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,SAAS,EAAE,IAAI,GAAG,KAAK,CAAC;IACxB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,cAAc,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE,wFAAwF;AACxF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,gEAAgE;IAChE,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IAEjE,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAIzC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAItD,yEAAyE;IACzE,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;CAIrC;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,MAAM,KAAG,eAUvD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,eAAe,KAAG,eAGtD,CAAC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.relatedNodeRule = exports.relatedNodeRuleForLabel = exports.entityTenancyRegistry = exports.EntityTenancyRegistry = void 0;
4
+ /**
5
+ * Label → tenancy registry, filled by `defineEntity()` at import time.
6
+ *
7
+ * The generic relationship writers read it to decide what a client-supplied target id must
8
+ * satisfy (see `relatedNodeRule`). A label never passed to `defineEntity` (plain-model
9
+ * entities such as StripePrice, OAuthClient, Module) is unknown and checked for existence only.
10
+ * When two descriptors declare the same label, the one defined last wins (an app's extended
11
+ * descriptor is imported after the library's).
12
+ *
13
+ * NOT @Injectable: populated before NestJS bootstraps, like `modelRegistry`.
14
+ */
15
+ class EntityTenancyRegistry {
16
+ constructor() {
17
+ this.entries = new Map();
18
+ }
19
+ register(entry) {
20
+ this.entries.set(entry.labelName, entry);
21
+ }
22
+ get(labelName) {
23
+ return this.entries.get(labelName);
24
+ }
25
+ /** Test helper: removes one label (or every label) from the registry. */
26
+ unregister(labelName) {
27
+ if (labelName === undefined)
28
+ this.entries.clear();
29
+ else
30
+ this.entries.delete(labelName);
31
+ }
32
+ }
33
+ exports.EntityTenancyRegistry = EntityTenancyRegistry;
34
+ exports.entityTenancyRegistry = new EntityTenancyRegistry();
35
+ /**
36
+ * The rule a target of `label` must satisfy for the caller's company, from the registry:
37
+ * company-scoped → `company`; tenancy "self" → `self`; tenancy { via } → `via`; anything else
38
+ * (global, internal, unscoped without tenancy, unknown label) → `exists`. `linkScope:
39
+ * "own-or-platform"` adds `allowPlatform` to `company` / `via`.
40
+ */
41
+ const relatedNodeRuleForLabel = (label) => {
42
+ const entry = exports.entityTenancyRegistry.get(label);
43
+ if (!entry)
44
+ return { kind: "exists" };
45
+ const allowPlatform = entry.linkScope === "own-or-platform";
46
+ if (entry.isCompanyScoped)
47
+ return allowPlatform ? { kind: "company", allowPlatform } : { kind: "company" };
48
+ if (entry.tenancy === "self")
49
+ return { kind: "self" };
50
+ if (entry.via)
51
+ return allowPlatform ? { kind: "via", hop: entry.via, allowPlatform } : { kind: "via", hop: entry.via };
52
+ return { kind: "exists" };
53
+ };
54
+ exports.relatedNodeRuleForLabel = relatedNodeRuleForLabel;
55
+ /**
56
+ * The rule for the targets of one relationship of a descriptor: `crossCompany: true` and
57
+ * server-filled `contextKey` relationships are existence-only, everything else follows the
58
+ * target label (`relatedNodeRuleForLabel`).
59
+ */
60
+ const relatedNodeRule = (rel) => {
61
+ if (rel.crossCompany || rel.contextKey)
62
+ return { kind: "exists" };
63
+ return (0, exports.relatedNodeRuleForLabel)(rel.model.labelName);
64
+ };
65
+ exports.relatedNodeRule = relatedNodeRule;
66
+ //# sourceMappingURL=entity-tenancy.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-tenancy.registry.js","sourceRoot":"","sources":["../../../src/common/registries/entity-tenancy.registry.ts"],"names":[],"mappings":";;;AAwCA;;;;;;;;;;GAUG;AACH,MAAa,qBAAqB;IAAlC;QACmB,YAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IAenE,CAAC;IAbC,QAAQ,CAAC,KAAyB;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,yEAAyE;IACzE,UAAU,CAAC,SAAkB;QAC3B,IAAI,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;;YAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF;AAhBD,sDAgBC;AAEY,QAAA,qBAAqB,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAEjE;;;;;GAKG;AACI,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAmB,EAAE;IACxE,MAAM,KAAK,GAAG,6BAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,KAAK,iBAAiB,CAAC;IAE5D,IAAI,KAAK,CAAC,eAAe;QAAE,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC3G,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,GAAG;QACX,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1G,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC;AAEF;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,GAAoB,EAAmB,EAAE;IACvE,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClE,OAAO,IAAA,+BAAuB,EAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B"}
@@ -1,3 +1,4 @@
1
1
  export * from "./registry";
2
2
  export * from "./entity.service.registry";
3
+ export * from "./entity-tenancy.registry";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/registries/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/registries/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./registry"), exports);
18
18
  __exportStar(require("./entity.service.registry"), exports);
19
+ __exportStar(require("./entity-tenancy.registry"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/registries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/registries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4DAA0C;AAC1C,4DAA0C"}
@@ -195,6 +195,40 @@ export declare abstract class AbstractRepository<T, R extends Record<string, Rel
195
195
  orderByFields?: SortCriterion[];
196
196
  fetchAll?: boolean;
197
197
  }): Promise<T[]>;
198
+ /**
199
+ * True for the company BELONGS_TO edge of a company-scoped entity, which the framework writes
200
+ * itself and the generic writers never take from params.
201
+ */
202
+ private isManagedCompanyRelationship;
203
+ /**
204
+ * The relationships the generic writer for `mode` writes from params: never readOnly, never
205
+ * the managed company edge, and on PUT never immutable. assertRelatedInCompany() checks
206
+ * exactly this set.
207
+ */
208
+ private writtenRelationships;
209
+ /**
210
+ * Refuses (400 "One or more related nodes do not exist.") a write whose related ids do not
211
+ * exist or point outside the caller's CLS company. Called by create / put / patch /
212
+ * addToRelationship BEFORE the write; a foreign id looks exactly like a missing one.
213
+ *
214
+ * Per target (see `relatedNodeRule` / `Neo4jService.validateRelatedNodes`):
215
+ * - company-scoped label: BELONGS_TO the CLS company (any edge, for multi-company users);
216
+ * - tenancy "self": the CLS company itself; tenancy { via }: its parent belongs to it;
217
+ * - linkScope "own-or-platform": also a platform row (no company edge);
218
+ * - tenancy "global" / "internal", unknown labels, `crossCompany` relationships and
219
+ * server-filled `contextKey` values: existence only;
220
+ * - the CLS user's own id: existence only (owner / created-by = me, also for a platform
221
+ * administrator working inside a customer company).
222
+ * With no CLS company (system jobs, workers) every target is existence-only.
223
+ *
224
+ * Override to tighten or relax the check for one repository.
225
+ */
226
+ protected assertRelatedInCompany(input: {
227
+ params: Record<string, any>;
228
+ mode: "create" | "put" | "patch" | "add";
229
+ /** mode "add": the single relationship being added to. */
230
+ relationship?: string;
231
+ }): Promise<void>;
198
232
  /**
199
233
  * Create a new entity with relationships
200
234
  * Uses descriptor.fieldNames and descriptor.fieldDefaults for properties
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.repository.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/abstracts/abstract.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract.repository.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/abstracts/abstract.repository.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AbstractRepository = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
+ const entity_tenancy_registry_1 = require("../../../common/registries/entity-tenancy.registry");
5
6
  const registry_1 = require("../../../common/registries/registry");
6
7
  const build_filter_clauses_1 = require("../helpers/build-filter-clauses");
7
8
  const build_fulltext_term_1 = require("../helpers/build-fulltext-term");
@@ -677,6 +678,61 @@ class AbstractRepository {
677
678
  `;
678
679
  return this.neo4j.readMany(query);
679
680
  }
681
+ /**
682
+ * True for the company BELONGS_TO edge of a company-scoped entity, which the framework writes
683
+ * itself and the generic writers never take from params.
684
+ */
685
+ isManagedCompanyRelationship(rel) {
686
+ return this.descriptor.isCompanyScoped && rel.relationship === "BELONGS_TO" && rel.model.labelName === "Company";
687
+ }
688
+ /**
689
+ * The relationships the generic writer for `mode` writes from params: never readOnly, never
690
+ * the managed company edge, and on PUT never immutable. assertRelatedInCompany() checks
691
+ * exactly this set.
692
+ */
693
+ writtenRelationships(mode) {
694
+ return Object.entries(this.descriptor.relationships).filter(([, rel]) => !rel.readOnly && !this.isManagedCompanyRelationship(rel) && !(mode === "put" && rel.immutable));
695
+ }
696
+ /**
697
+ * Refuses (400 "One or more related nodes do not exist.") a write whose related ids do not
698
+ * exist or point outside the caller's CLS company. Called by create / put / patch /
699
+ * addToRelationship BEFORE the write; a foreign id looks exactly like a missing one.
700
+ *
701
+ * Per target (see `relatedNodeRule` / `Neo4jService.validateRelatedNodes`):
702
+ * - company-scoped label: BELONGS_TO the CLS company (any edge, for multi-company users);
703
+ * - tenancy "self": the CLS company itself; tenancy { via }: its parent belongs to it;
704
+ * - linkScope "own-or-platform": also a platform row (no company edge);
705
+ * - tenancy "global" / "internal", unknown labels, `crossCompany` relationships and
706
+ * server-filled `contextKey` values: existence only;
707
+ * - the CLS user's own id: existence only (owner / created-by = me, also for a platform
708
+ * administrator working inside a customer company).
709
+ * With no CLS company (system jobs, workers) every target is existence-only.
710
+ *
711
+ * Override to tighten or relax the check for one repository.
712
+ */
713
+ async assertRelatedInCompany(input) {
714
+ const callerId = this.clsService.get("userId") ?? undefined;
715
+ const relationships = input.mode === "add"
716
+ ? [[input.relationship, this.descriptor.relationships[input.relationship]]]
717
+ : this.writtenRelationships(input.mode);
718
+ const nodes = [];
719
+ for (const [name, rel] of relationships) {
720
+ const value = input.params[name];
721
+ if (!value)
722
+ continue;
723
+ const rule = (0, entity_tenancy_registry_1.relatedNodeRule)(rel);
724
+ for (const id of Array.isArray(value) ? value : [value]) {
725
+ nodes.push({
726
+ id,
727
+ label: rel.model.labelName,
728
+ rule: callerId && id === callerId ? { kind: "exists" } : rule,
729
+ });
730
+ }
731
+ }
732
+ if (nodes.length === 0)
733
+ return;
734
+ await this.neo4j.validateRelatedNodes({ nodes, companyId: this.clsService.get("companyId") ?? null });
735
+ }
680
736
  /**
681
737
  * Create a new entity with relationships
682
738
  * Uses descriptor.fieldNames and descriptor.fieldDefaults for properties
@@ -687,21 +743,8 @@ class AbstractRepository {
687
743
  const { fieldNames, fieldDefaults, fields, relationships } = this.descriptor;
688
744
  this.assertCompanyBindable();
689
745
  const query = this.neo4j.initQuery();
690
- // Validate related nodes exist
691
- const nodesToValidate = [];
692
- for (const [name, rel] of Object.entries(relationships)) {
693
- // Read-only relationships are serialisation-only and never written on create
694
- if (rel.readOnly)
695
- continue;
696
- const paramValue = params[name];
697
- if (paramValue) {
698
- const ids = Array.isArray(paramValue) ? paramValue : [paramValue];
699
- nodesToValidate.push(...ids.map((id) => ({ id, label: rel.model.labelName })));
700
- }
701
- }
702
- if (nodesToValidate.length > 0) {
703
- await this.neo4j.validateExistingNodes({ nodes: nodesToValidate.filter(Boolean) });
704
- }
746
+ // Every related id must exist and belong to the caller's company (see assertRelatedInCompany)
747
+ await this.assertRelatedInCompany({ params, mode: "create" });
705
748
  // Apply defaults for fields not provided in params
706
749
  const mergedParams = { ...fieldDefaults, ...params };
707
750
  // Only include fields that have actual values (not undefined)
@@ -815,23 +858,8 @@ class AbstractRepository {
815
858
  const { fieldNames, fields, relationships } = this.descriptor;
816
859
  this.assertCompanyBindable();
817
860
  const query = this.neo4j.initQuery();
818
- // Validate related nodes exist
819
- const nodesToValidate = [];
820
- for (const [name, rel] of Object.entries(relationships)) {
821
- if (rel.immutable)
822
- continue;
823
- // Read-only relationships are serialisation-only and never written on PUT
824
- if (rel.readOnly)
825
- continue;
826
- const paramValue = params[name];
827
- if (paramValue) {
828
- const ids = Array.isArray(paramValue) ? paramValue : [paramValue];
829
- nodesToValidate.push(...ids.map((id) => ({ id, label: rel.model.labelName })));
830
- }
831
- }
832
- if (nodesToValidate.length > 0) {
833
- await this.neo4j.validateExistingNodes({ nodes: nodesToValidate.filter(Boolean) });
834
- }
861
+ // Every related id must exist and belong to the caller's company (see assertRelatedInCompany)
862
+ await this.assertRelatedInCompany({ params, mode: "put" });
835
863
  // Build query parameters
836
864
  query.queryParams = {
837
865
  ...query.queryParams,
@@ -936,21 +964,9 @@ class AbstractRepository {
936
964
  // Read-only relationships are serialisation-only and never written by PATCH.
937
965
  // The company BELONGS_TO edge of a company-scoped entity is managed by the
938
966
  // framework and never rewritten (same rule as create/put).
939
- const relationshipsToUpdate = Object.entries(relationships).filter(([name, rel]) => params[name] !== undefined &&
940
- !rel.readOnly &&
941
- !(this.descriptor.isCompanyScoped && rel.relationship === "BELONGS_TO" && rel.model.labelName === "Company"));
942
- // Validate related nodes exist
943
- const nodesToValidate = [];
944
- for (const [name, rel] of relationshipsToUpdate) {
945
- const paramValue = params[name];
946
- if (paramValue) {
947
- const ids = Array.isArray(paramValue) ? paramValue : [paramValue];
948
- nodesToValidate.push(...ids.map((id) => ({ id, label: rel.model.labelName })));
949
- }
950
- }
951
- if (nodesToValidate.length > 0) {
952
- await this.neo4j.validateExistingNodes({ nodes: nodesToValidate.filter(Boolean) });
953
- }
967
+ const relationshipsToUpdate = this.writtenRelationships("patch").filter(([name]) => params[name] !== undefined);
968
+ // Every related id must exist and belong to the caller's company (see assertRelatedInCompany)
969
+ await this.assertRelatedInCompany({ params, mode: "patch" });
954
970
  // Build query parameters (only include fields that are being updated)
955
971
  query.queryParams = {
956
972
  ...query.queryParams,
@@ -1093,6 +1109,14 @@ class AbstractRepository {
1093
1109
  throw new common_1.BadRequestException(`Relationship '${params.relationship}' is read-only`);
1094
1110
  }
1095
1111
  this.assertCompanyBindable();
1112
+ // Every item must exist and belong to the caller's company (see assertRelatedInCompany).
1113
+ // Runs before the write, so the MATCH below needs no company filter on the target -
1114
+ // which also lets a global / platform target be linked.
1115
+ await this.assertRelatedInCompany({
1116
+ mode: "add",
1117
+ relationship: params.relationship,
1118
+ params: { [params.relationship]: params.items.map((item) => item.id) },
1119
+ });
1096
1120
  const query = this.neo4j.initQuery();
1097
1121
  // Build items array with edge properties
1098
1122
  const itemsWithProps = params.items.map((item) => ({
@@ -1122,7 +1146,7 @@ class AbstractRepository {
1122
1146
  query.query += `
1123
1147
  ${matchClause}
1124
1148
  UNWIND $items AS item
1125
- MATCH (related:${rel.model.labelName} {id: item.id})${this.descriptor.isCompanyScoped ? "-[:BELONGS_TO]->(company)" : ""}
1149
+ MATCH (related:${rel.model.labelName} {id: item.id})
1126
1150
  MERGE (parent)${relPattern}(related)
1127
1151
  ${setClause}
1128
1152
  `;