@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.
- package/dist/common/helpers/define-entity.d.ts.map +1 -1
- package/dist/common/helpers/define-entity.js +15 -1
- package/dist/common/helpers/define-entity.js.map +1 -1
- package/dist/common/interfaces/entity.schema.interface.d.ts +26 -0
- package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
- package/dist/common/registries/entity-tenancy.registry.d.ts +76 -0
- package/dist/common/registries/entity-tenancy.registry.d.ts.map +1 -0
- package/dist/common/registries/entity-tenancy.registry.js +66 -0
- package/dist/common/registries/entity-tenancy.registry.js.map +1 -0
- package/dist/common/registries/index.d.ts +1 -0
- package/dist/common/registries/index.d.ts.map +1 -1
- package/dist/common/registries/index.js +1 -0
- package/dist/common/registries/index.js.map +1 -1
- package/dist/core/neo4j/abstracts/abstract.repository.d.ts +34 -0
- package/dist/core/neo4j/abstracts/abstract.repository.d.ts.map +1 -1
- package/dist/core/neo4j/abstracts/abstract.repository.js +72 -48
- package/dist/core/neo4j/abstracts/abstract.repository.js.map +1 -1
- package/dist/core/neo4j/queries/update.relationship.d.ts +7 -2
- package/dist/core/neo4j/queries/update.relationship.d.ts.map +1 -1
- package/dist/core/neo4j/queries/update.relationship.js +28 -13
- package/dist/core/neo4j/queries/update.relationship.js.map +1 -1
- package/dist/core/neo4j/services/neo4j.service.d.ts +24 -0
- package/dist/core/neo4j/services/neo4j.service.d.ts.map +1 -1
- package/dist/core/neo4j/services/neo4j.service.js +94 -0
- package/dist/core/neo4j/services/neo4j.service.js.map +1 -1
- package/dist/foundations/ai-connection/entities/ai-connection.d.ts +1 -0
- package/dist/foundations/ai-connection/entities/ai-connection.d.ts.map +1 -1
- package/dist/foundations/ai-connection/entities/ai-connection.js +3 -0
- package/dist/foundations/ai-connection/entities/ai-connection.js.map +1 -1
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts +1 -0
- package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts.map +1 -1
- package/dist/foundations/ai-connection/services/ai-connection.service.d.ts +1 -0
- package/dist/foundations/ai-connection/services/ai-connection.service.d.ts.map +1 -1
- package/dist/foundations/role/entities/role.d.ts.map +1 -1
- package/dist/foundations/role/entities/role.js +4 -0
- package/dist/foundations/role/entities/role.js.map +1 -1
- 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":"
|
|
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 +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":"AAAA,OAAO,EAAkD,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;
|
|
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
|
-
//
|
|
691
|
-
|
|
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
|
-
//
|
|
819
|
-
|
|
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 =
|
|
940
|
-
|
|
941
|
-
|
|
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})
|
|
1149
|
+
MATCH (related:${rel.model.labelName} {id: item.id})
|
|
1126
1150
|
MERGE (parent)${relPattern}(related)
|
|
1127
1151
|
${setClause}
|
|
1128
1152
|
`;
|