@carlonicora/nestjs-neo4jsonapi 6.5.2 → 6.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/helpers/define-entity.d.ts.map +1 -1
- package/dist/common/helpers/define-entity.js +18 -1
- package/dist/common/helpers/define-entity.js.map +1 -1
- package/dist/common/interfaces/entity.schema.interface.d.ts +33 -0
- package/dist/common/interfaces/entity.schema.interface.d.ts.map +1 -1
- package/dist/common/registries/entity-tenancy.registry.d.ts +81 -0
- package/dist/common/registries/entity-tenancy.registry.d.ts.map +1 -0
- package/dist/common/registries/entity-tenancy.registry.js +78 -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
|
@@ -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
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract.repository.js","sourceRoot":"","sources":["../../../../src/core/neo4j/abstracts/abstract.repository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abstract.repository.js","sourceRoot":"","sources":["../../../../src/core/neo4j/abstracts/abstract.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,13 @@ export declare const updateRelationshipQuery: (params: {
|
|
|
15
15
|
* Opt-in: only link target nodes that BELONG_TO the company in `$companyId`
|
|
16
16
|
* (set by `Neo4jService.initQuery()`). For writes whose target ids come from
|
|
17
17
|
* request input, so an id of another firm's node never gets an edge. Pair it
|
|
18
|
-
* with `Neo4jService.
|
|
19
|
-
*
|
|
18
|
+
* with `Neo4jService.validateRelatedNodes()` to refuse the request instead of
|
|
19
|
+
* silently skipping the foreign id.
|
|
20
|
+
*
|
|
21
|
+
* The linking runs inside a unit `CALL {}` subquery, so ids filtered out here
|
|
22
|
+
* never reduce the outer row count: clauses appended after this fragment
|
|
23
|
+
* (further relationships, SETs) still run once for `node`, even when every id
|
|
24
|
+
* was filtered out.
|
|
20
25
|
*/
|
|
21
26
|
companyScoped?: boolean;
|
|
22
27
|
}) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.relationship.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/queries/update.relationship.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,GAAI,QAAQ;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;IAC7F,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"update.relationship.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/queries/update.relationship.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,GAAI,QAAQ;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;IAC7F,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,KAAG,MA0FH,CAAC"}
|
|
@@ -44,24 +44,39 @@ const updateRelationshipQuery = (params) => {
|
|
|
44
44
|
.join(", ");
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
const relPattern = `${params.relationshipToNode ? "-" : "<-"}[rel:${params.relationshipName}]${params.relationshipToNode ? "->" : "-"}`;
|
|
48
|
+
const setClause = relationshipProps
|
|
49
|
+
? `SET ${relationshipProps}, rel.updatedAt = datetime()`
|
|
50
|
+
: `SET rel.updatedAt = datetime()`;
|
|
51
|
+
let linkClause = ``;
|
|
52
|
+
if (params.values && params.values.length > 0) {
|
|
53
|
+
linkClause = params.companyScoped
|
|
54
|
+
? `
|
|
55
|
+
WITH ${params.node}
|
|
56
|
+
CALL {
|
|
57
|
+
WITH ${params.node}
|
|
58
|
+
UNWIND $${paramAlias} AS id
|
|
59
|
+
MATCH (new:${params.label} {id: id})
|
|
60
|
+
WHERE EXISTS { (new)-[:BELONGS_TO]->(:Company {id: $companyId}) }
|
|
61
|
+
MERGE (${params.node})${relPattern}(new)
|
|
62
|
+
${setClause}
|
|
63
|
+
}
|
|
64
|
+
`
|
|
65
|
+
: `
|
|
66
|
+
WITH ${params.node}, $${paramAlias} AS ${paramAlias}
|
|
67
|
+
UNWIND ${paramAlias} AS id
|
|
68
|
+
MATCH (new:${params.label} {id: id})
|
|
69
|
+
MERGE (${params.node})${relPattern}(new)
|
|
70
|
+
${setClause}
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
47
73
|
return `
|
|
48
74
|
WITH ${params.node}
|
|
49
|
-
OPTIONAL MATCH (${params.node})${
|
|
75
|
+
OPTIONAL MATCH (${params.node})${relPattern}(existing:${params.label})
|
|
50
76
|
WHERE NOT existing.id IN $${paramAlias}
|
|
51
77
|
DELETE rel
|
|
52
78
|
|
|
53
|
-
${
|
|
54
|
-
? `
|
|
55
|
-
WITH ${params.node}, $${paramAlias} AS ${paramAlias}
|
|
56
|
-
UNWIND ${paramAlias} AS id
|
|
57
|
-
MATCH (new:${params.label} {id: id})${params.companyScoped
|
|
58
|
-
? `
|
|
59
|
-
WHERE EXISTS { (new)-[:BELONGS_TO]->(:Company {id: $companyId}) }`
|
|
60
|
-
: ``}
|
|
61
|
-
MERGE (${params.node})${params.relationshipToNode ? "-" : "<-"}[rel:${params.relationshipName}]${params.relationshipToNode ? "->" : "-"}(new)
|
|
62
|
-
${relationshipProps ? `SET ${relationshipProps}, rel.updatedAt = datetime()` : `SET rel.updatedAt = datetime()`}
|
|
63
|
-
`
|
|
64
|
-
: ``}
|
|
79
|
+
${linkClause}
|
|
65
80
|
`;
|
|
66
81
|
};
|
|
67
82
|
exports.updateRelationshipQuery = updateRelationshipQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.relationship.js","sourceRoot":"","sources":["../../../../src/core/neo4j/queries/update.relationship.ts"],"names":[],"mappings":";;;AAAO,MAAM,uBAAuB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"update.relationship.js","sourceRoot":"","sources":["../../../../src/core/neo4j/queries/update.relationship.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { ConfigService } from "@nestjs/config";
|
|
|
3
3
|
import { Driver } from "neo4j-driver";
|
|
4
4
|
import { ClsService } from "nestjs-cls";
|
|
5
5
|
import { DataModelInterface } from "../../../common/interfaces/datamodel.interface";
|
|
6
|
+
import { RelatedNodeRule } from "../../../common/registries/entity-tenancy.registry";
|
|
6
7
|
import { JsonApiCursorInterface } from "../../jsonapi/interfaces/jsonapi.cursor.interface";
|
|
7
8
|
import { AppLoggingService } from "../../logging/services/logging.service";
|
|
8
9
|
import { EntityFactory } from "../factories/entity.factory";
|
|
@@ -67,6 +68,29 @@ export declare class Neo4jService implements OnModuleInit, OnModuleDestroy {
|
|
|
67
68
|
companyId?: string;
|
|
68
69
|
}[];
|
|
69
70
|
}): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Throws `BadRequestException("One or more related nodes do not exist.")` unless every node
|
|
73
|
+
* exists AND satisfies its company rule for `companyId` (default: the CLS company). A node of
|
|
74
|
+
* another company fails exactly like a missing one, so a caller cannot probe foreign ids.
|
|
75
|
+
*
|
|
76
|
+
* `rule` defaults to the one the target label declares (`relatedNodeRuleForLabel`, filled by
|
|
77
|
+
* `defineEntity`). With no company (system jobs, workers) every rule is existence-only.
|
|
78
|
+
*
|
|
79
|
+
* One read query: nodes are grouped by label + rule, each group is one
|
|
80
|
+
* `UNWIND $ids MATCH ... WHERE <rule> RETURN count(DISTINCT t)` subquery, and the summed count
|
|
81
|
+
* must equal the number of distinct ids.
|
|
82
|
+
*
|
|
83
|
+
* Custom repositories that write client-supplied relationship ids with their own Cypher call
|
|
84
|
+
* this before the write. `AbstractRepository` calls it from create/put/patch/addToRelationship.
|
|
85
|
+
*/
|
|
86
|
+
validateRelatedNodes(params: {
|
|
87
|
+
nodes: {
|
|
88
|
+
id: string;
|
|
89
|
+
label: string;
|
|
90
|
+
rule?: RelatedNodeRule;
|
|
91
|
+
}[];
|
|
92
|
+
companyId?: string | null;
|
|
93
|
+
}): Promise<void>;
|
|
70
94
|
private withRetry;
|
|
71
95
|
private write;
|
|
72
96
|
getActiveConnections(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neo4j.service.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/services/neo4j.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAgB,MAAM,EAAW,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"neo4j.service.d.ts","sourceRoot":"","sources":["../../../../src/core/neo4j/services/neo4j.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,48 @@ const common_1 = require("@nestjs/common");
|
|
|
14
14
|
const config_1 = require("@nestjs/config");
|
|
15
15
|
const neo4j_driver_1 = require("neo4j-driver");
|
|
16
16
|
const nestjs_cls_1 = require("nestjs-cls");
|
|
17
|
+
const entity_tenancy_registry_1 = require("../../../common/registries/entity-tenancy.registry");
|
|
17
18
|
const base_config_1 = require("../../../config/base.config");
|
|
18
19
|
const logging_service_1 = require("../../logging/services/logging.service");
|
|
19
20
|
const entity_factory_1 = require("../factories/entity.factory");
|
|
21
|
+
const CYPHER_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
22
|
+
/** Labels and relationship types are interpolated into Cypher: accept plain identifiers only. */
|
|
23
|
+
const assertCypherIdentifier = (value) => {
|
|
24
|
+
if (!CYPHER_IDENTIFIER.test(value))
|
|
25
|
+
throw new common_1.BadRequestException("Invalid related node label");
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The WHERE predicate a related node bound to `alias` must satisfy for `$companyId`, or "" for
|
|
29
|
+
* existence only. See RelatedNodeRule.
|
|
30
|
+
*/
|
|
31
|
+
const relatedNodePredicate = (alias, rule) => {
|
|
32
|
+
switch (rule.kind) {
|
|
33
|
+
case "exists":
|
|
34
|
+
return "";
|
|
35
|
+
case "self":
|
|
36
|
+
return `${alias}.id = $companyId`;
|
|
37
|
+
case "company": {
|
|
38
|
+
const own = `EXISTS { MATCH (${alias})-[:BELONGS_TO]->(:Company {id: $companyId}) }`;
|
|
39
|
+
if (!rule.allowPlatform)
|
|
40
|
+
return own;
|
|
41
|
+
return `(NOT EXISTS { MATCH (${alias})-[:BELONGS_TO]->(:Company) } OR ${own})`;
|
|
42
|
+
}
|
|
43
|
+
case "via": {
|
|
44
|
+
const { relationship, direction, label } = rule.hop;
|
|
45
|
+
assertCypherIdentifier(relationship);
|
|
46
|
+
assertCypherIdentifier(label);
|
|
47
|
+
const edge = direction === "out" ? `-[:${relationship}]->` : `<-[:${relationship}]-`;
|
|
48
|
+
// A hop that ends at the Company itself is matched by id (a Company has no BELONGS_TO),
|
|
49
|
+
// mirroring AbstractRepository.buildDefaultMatch() for tenancy { via }.
|
|
50
|
+
const own = label === "Company"
|
|
51
|
+
? `EXISTS { MATCH (${alias})${edge}(:Company {id: $companyId}) }`
|
|
52
|
+
: `EXISTS { MATCH (${alias})${edge}(:${label})-[:BELONGS_TO]->(:Company {id: $companyId}) }`;
|
|
53
|
+
if (!rule.allowPlatform)
|
|
54
|
+
return own;
|
|
55
|
+
return `(NOT EXISTS { MATCH (${alias})${edge}(:${label}) } OR ${own})`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
20
59
|
let Neo4jService = class Neo4jService {
|
|
21
60
|
constructor(entityFactory, cls, logger, configService) {
|
|
22
61
|
this.entityFactory = entityFactory;
|
|
@@ -293,6 +332,61 @@ let Neo4jService = class Neo4jService {
|
|
|
293
332
|
throw new common_1.BadRequestException("One or more related nodes do not exist.");
|
|
294
333
|
}
|
|
295
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Throws `BadRequestException("One or more related nodes do not exist.")` unless every node
|
|
337
|
+
* exists AND satisfies its company rule for `companyId` (default: the CLS company). A node of
|
|
338
|
+
* another company fails exactly like a missing one, so a caller cannot probe foreign ids.
|
|
339
|
+
*
|
|
340
|
+
* `rule` defaults to the one the target label declares (`relatedNodeRuleForLabel`, filled by
|
|
341
|
+
* `defineEntity`). With no company (system jobs, workers) every rule is existence-only.
|
|
342
|
+
*
|
|
343
|
+
* One read query: nodes are grouped by label + rule, each group is one
|
|
344
|
+
* `UNWIND $ids MATCH ... WHERE <rule> RETURN count(DISTINCT t)` subquery, and the summed count
|
|
345
|
+
* must equal the number of distinct ids.
|
|
346
|
+
*
|
|
347
|
+
* Custom repositories that write client-supplied relationship ids with their own Cypher call
|
|
348
|
+
* this before the write. `AbstractRepository` calls it from create/put/patch/addToRelationship.
|
|
349
|
+
*/
|
|
350
|
+
async validateRelatedNodes(params) {
|
|
351
|
+
if (params.nodes.length === 0)
|
|
352
|
+
return;
|
|
353
|
+
const companyId = params.companyId !== undefined ? params.companyId : this.cls.has("companyId") ? this.cls.get("companyId") : null;
|
|
354
|
+
const groups = new Map();
|
|
355
|
+
for (const node of params.nodes) {
|
|
356
|
+
const rule = companyId ? (node.rule ?? (0, entity_tenancy_registry_1.relatedNodeRuleForLabel)(node.label)) : { kind: "exists" };
|
|
357
|
+
const key = `${node.label}|${JSON.stringify(rule)}`;
|
|
358
|
+
let group = groups.get(key);
|
|
359
|
+
if (!group) {
|
|
360
|
+
group = { label: node.label, rule, ids: new Set() };
|
|
361
|
+
groups.set(key, group);
|
|
362
|
+
}
|
|
363
|
+
group.ids.add(node.id);
|
|
364
|
+
}
|
|
365
|
+
const queryParams = { companyId: companyId ?? null };
|
|
366
|
+
const subqueries = [];
|
|
367
|
+
const counts = [];
|
|
368
|
+
let expected = 0;
|
|
369
|
+
[...groups.values()].forEach((group, index) => {
|
|
370
|
+
assertCypherIdentifier(group.label);
|
|
371
|
+
const predicate = relatedNodePredicate("t", group.rule);
|
|
372
|
+
queryParams[`ids${index}`] = [...group.ids];
|
|
373
|
+
expected += group.ids.size;
|
|
374
|
+
subqueries.push(`
|
|
375
|
+
CALL {
|
|
376
|
+
UNWIND $ids${index} AS relatedId
|
|
377
|
+
MATCH (t:${group.label} {id: relatedId})
|
|
378
|
+
${predicate ? `WHERE ${predicate}` : ""}
|
|
379
|
+
RETURN count(DISTINCT t) AS found${index}
|
|
380
|
+
}`);
|
|
381
|
+
counts.push(`found${index}`);
|
|
382
|
+
});
|
|
383
|
+
const result = await this.read(`${subqueries.join("\n")}\nRETURN ${counts.join(" + ")} AS found`, queryParams);
|
|
384
|
+
const raw = result?.records?.[0]?.get("found");
|
|
385
|
+
const found = typeof raw === "number" ? raw : (raw?.toNumber?.() ?? 0);
|
|
386
|
+
if (found !== expected) {
|
|
387
|
+
throw new common_1.BadRequestException("One or more related nodes do not exist.");
|
|
388
|
+
}
|
|
389
|
+
}
|
|
296
390
|
async withRetry(operation) {
|
|
297
391
|
let lastError = null;
|
|
298
392
|
for (let attempt = 1; attempt <= this.maxRetries; attempt++) {
|