@xemahq/biome-database-nest 6.0.1 → 7.0.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/README.md +36 -0
- package/dist/bin/xema-org-erasure-graph.d.ts +3 -0
- package/dist/bin/xema-org-erasure-graph.d.ts.map +1 -0
- package/dist/bin/xema-org-erasure-graph.js +10 -0
- package/dist/bin/xema-org-erasure-graph.js.map +1 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/nest/org-erasure.module.d.ts +1 -2
- package/dist/lib/nest/org-erasure.module.d.ts.map +1 -1
- package/dist/lib/nest/org-erasure.module.js +8 -10
- package/dist/lib/nest/org-erasure.module.js.map +1 -1
- package/dist/lib/nest/prisma-service-factory.d.ts +8 -2
- package/dist/lib/nest/prisma-service-factory.d.ts.map +1 -1
- package/dist/lib/nest/prisma-service-factory.js +18 -20
- package/dist/lib/nest/prisma-service-factory.js.map +1 -1
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.d.ts +4 -0
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.js +37 -0
- package/dist/lib/org-erasure-coverage/build-org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.d.ts +4 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.js +40 -0
- package/dist/lib/org-erasure-coverage/check-org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.d.ts +5 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.js +94 -0
- package/dist/lib/org-erasure-coverage/classify-org-erasure-coverage.js.map +1 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.d.ts +15 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.js +19 -0
- package/dist/lib/org-erasure-coverage/generate-org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.d.ts +22 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.js +53 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-errors.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.d.ts +12 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage-options.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.d.ts +11 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-coverage.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.d.ts +11 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.js +10 -0
- package/dist/lib/org-erasure-coverage/org-erasure-disposition.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.d.ts +14 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-dmmf.js.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.d.ts +12 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.js +3 -0
- package/dist/lib/org-erasure-coverage/org-erasure-graph.js.map +1 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.d.ts +7 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.js +13 -0
- package/dist/lib/org-erasure-coverage/render-org-erasure-graph-module.js.map +1 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.d.ts +12 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.d.ts.map +1 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.js +33 -0
- package/dist/lib/org-erasure-coverage/resolve-org-erasure-api.js.map +1 -0
- package/dist/lib/tenant-isolation/tenant-isolation.extension.d.ts +4 -0
- package/dist/lib/tenant-isolation/tenant-isolation.extension.d.ts.map +1 -1
- package/dist/lib/tenant-isolation/tenant-isolation.extension.js +12 -5
- package/dist/lib/tenant-isolation/tenant-isolation.extension.js.map +1 -1
- package/dist/lib/tenant-isolation/unscoped-models.d.ts +0 -2
- package/dist/lib/tenant-isolation/unscoped-models.d.ts.map +1 -1
- package/dist/lib/tenant-isolation/unscoped-models.js +0 -3
- package/dist/lib/tenant-isolation/unscoped-models.js.map +1 -1
- package/package.json +8 -4
- package/xema-peer-facts.json +6 -6
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.classifyOrgErasureCoverage = classifyOrgErasureCoverage;
|
|
4
|
+
const check_org_erasure_graph_1 = require("./check-org-erasure-graph");
|
|
5
|
+
const org_erasure_coverage_errors_1 = require("./org-erasure-coverage-errors");
|
|
6
|
+
const org_erasure_disposition_1 = require("./org-erasure-disposition");
|
|
7
|
+
const org_erasure_1 = require("../tenant-isolation/org-erasure");
|
|
8
|
+
const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
|
|
9
|
+
const DISPOSITIONS = Object.values(org_erasure_disposition_1.OrgErasureDisposition);
|
|
10
|
+
function findReachable(graph, swept) {
|
|
11
|
+
const reachable = {};
|
|
12
|
+
const names = Object.keys(graph.models).sort();
|
|
13
|
+
let changed = true;
|
|
14
|
+
while (changed) {
|
|
15
|
+
changed = false;
|
|
16
|
+
for (const name of names) {
|
|
17
|
+
if (swept.has(name) || name in reachable) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const edge = graph.models[name].cascadeParents.find((e) => swept.has(e.parentModel) || e.parentModel in reachable);
|
|
21
|
+
if (edge !== undefined) {
|
|
22
|
+
reachable[name] = edge.parentModel;
|
|
23
|
+
changed = true;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return reachable;
|
|
28
|
+
}
|
|
29
|
+
function classifyOrgErasureCoverage(runtime, options) {
|
|
30
|
+
(0, check_org_erasure_graph_1.assertOrgErasureGraphMatchesRuntime)(options.graph, runtime);
|
|
31
|
+
const modelNames = Object.keys(runtime).sort();
|
|
32
|
+
const sweep = options.sweep === undefined
|
|
33
|
+
? undefined
|
|
34
|
+
: {
|
|
35
|
+
orgField: options.sweep.orgField ?? tenant_isolation_extension_1.DEFAULT_ORG_FIELD,
|
|
36
|
+
exemptModels: options.sweep.exemptModels ?? [],
|
|
37
|
+
};
|
|
38
|
+
const unknownExemptModels = sweep === undefined
|
|
39
|
+
? []
|
|
40
|
+
: [...(0, tenant_isolation_extension_1.findUnknownModels)(runtime, sweep.exemptModels)].sort();
|
|
41
|
+
const swept = sweep === undefined
|
|
42
|
+
? new Set()
|
|
43
|
+
: (0, tenant_isolation_extension_1.selectOrgScopedModels)(runtime, sweep.orgField, sweep.exemptModels);
|
|
44
|
+
if (sweep !== undefined && swept.size === 0) {
|
|
45
|
+
throw new org_erasure_1.OrgErasureMatchesNothingError(sweep.orgField, modelNames, sweep.exemptModels);
|
|
46
|
+
}
|
|
47
|
+
const reachable = findReachable(options.graph, swept);
|
|
48
|
+
const declarations = options.declarations ?? {};
|
|
49
|
+
const unknownDeclarations = [];
|
|
50
|
+
const blankReasons = [];
|
|
51
|
+
const invalidDispositions = [];
|
|
52
|
+
const declaredButErased = [];
|
|
53
|
+
const declared = {};
|
|
54
|
+
for (const [name, declaration] of Object.entries(declarations).sort(([a], [b]) => (a < b ? -1 : 1))) {
|
|
55
|
+
if (!(name in runtime)) {
|
|
56
|
+
unknownDeclarations.push(name);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (declaration.reason.trim().length === 0) {
|
|
60
|
+
blankReasons.push(name);
|
|
61
|
+
}
|
|
62
|
+
if (!DISPOSITIONS.includes(declaration.disposition)) {
|
|
63
|
+
invalidDispositions.push(name);
|
|
64
|
+
}
|
|
65
|
+
if (swept.has(name) || name in reachable) {
|
|
66
|
+
declaredButErased.push(name);
|
|
67
|
+
}
|
|
68
|
+
declared[name] = declaration;
|
|
69
|
+
}
|
|
70
|
+
const unaccounted = modelNames.filter((name) => !swept.has(name) && !(name in reachable) && !(name in declared));
|
|
71
|
+
if (unaccounted.length +
|
|
72
|
+
unknownDeclarations.length +
|
|
73
|
+
blankReasons.length +
|
|
74
|
+
invalidDispositions.length +
|
|
75
|
+
declaredButErased.length +
|
|
76
|
+
unknownExemptModels.length >
|
|
77
|
+
0) {
|
|
78
|
+
throw new org_erasure_coverage_errors_1.OrgErasureCoverageError({
|
|
79
|
+
unaccounted,
|
|
80
|
+
unknownDeclarations,
|
|
81
|
+
blankReasons,
|
|
82
|
+
invalidDispositions,
|
|
83
|
+
declaredButErased,
|
|
84
|
+
unknownExemptModels,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
sweep,
|
|
89
|
+
swept: [...swept].sort(),
|
|
90
|
+
reachable,
|
|
91
|
+
declared,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=classify-org-erasure-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-org-erasure-coverage.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/classify-org-erasure-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { OrgErasureDmmfModel } from './org-erasure-dmmf';
|
|
2
|
+
export interface OrgErasureGraphGeneratorOptions {
|
|
3
|
+
readonly generator: {
|
|
4
|
+
readonly output: {
|
|
5
|
+
readonly value: string | null;
|
|
6
|
+
} | null;
|
|
7
|
+
};
|
|
8
|
+
readonly dmmf: {
|
|
9
|
+
readonly datamodel: {
|
|
10
|
+
readonly models: readonly OrgErasureDmmfModel[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function generateOrgErasureGraph(options: OrgErasureGraphGeneratorOptions): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=generate-org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/generate-org-erasure-graph.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAiB9D,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;KAC3D,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,SAAS,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAA;SAAE,CAAC;KACzE,CAAC;CACH;AAGD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateOrgErasureGraph = generateOrgErasureGraph;
|
|
4
|
+
const promises_1 = require("node:fs/promises");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const build_org_erasure_graph_1 = require("./build-org-erasure-graph");
|
|
7
|
+
const render_org_erasure_graph_module_1 = require("./render-org-erasure-graph-module");
|
|
8
|
+
async function generateOrgErasureGraph(options) {
|
|
9
|
+
const output = options.generator.output?.value;
|
|
10
|
+
if (output === null || output === undefined || output === '') {
|
|
11
|
+
throw new Error('[xema-org-erasure-graph] the generator block must set `output`, e.g. ' +
|
|
12
|
+
'output = "../node_modules/.prisma/<service>-org-erasure-graph".');
|
|
13
|
+
}
|
|
14
|
+
const { js, dts } = (0, render_org_erasure_graph_module_1.renderOrgErasureGraphModule)((0, build_org_erasure_graph_1.buildOrgErasureGraph)(options.dmmf.datamodel.models));
|
|
15
|
+
await (0, promises_1.mkdir)(output, { recursive: true });
|
|
16
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(output, 'index.js'), js);
|
|
17
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(output, 'index.d.ts'), dts);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=generate-org-erasure-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/generate-org-erasure-graph.ts"],"names":[],"mappings":";;AAiCA,0DAgBC;AAjDD,+CAAoD;AACpD,yCAAiC;AAEjC,uEAAiE;AACjE,uFAAgF;AA6BzE,KAAK,UAAU,uBAAuB,CAC3C,OAAwC;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;IAC/C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,iEAAiE,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAA,6DAA2B,EAC7C,IAAA,8CAAoB,EAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACpD,CAAC;IACF,MAAM,IAAA,gBAAK,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class OrgErasureGraphMismatchError extends Error {
|
|
2
|
+
readonly problems: readonly string[];
|
|
3
|
+
constructor(problems: readonly string[]);
|
|
4
|
+
}
|
|
5
|
+
export interface OrgErasureCoverageProblems {
|
|
6
|
+
readonly unaccounted: readonly string[];
|
|
7
|
+
readonly unknownDeclarations: readonly string[];
|
|
8
|
+
readonly blankReasons: readonly string[];
|
|
9
|
+
readonly invalidDispositions: readonly string[];
|
|
10
|
+
readonly declaredButErased: readonly string[];
|
|
11
|
+
readonly unknownExemptModels: readonly string[];
|
|
12
|
+
}
|
|
13
|
+
export declare class OrgErasureCoverageError extends Error implements OrgErasureCoverageProblems {
|
|
14
|
+
readonly unaccounted: readonly string[];
|
|
15
|
+
readonly unknownDeclarations: readonly string[];
|
|
16
|
+
readonly blankReasons: readonly string[];
|
|
17
|
+
readonly invalidDispositions: readonly string[];
|
|
18
|
+
readonly declaredButErased: readonly string[];
|
|
19
|
+
readonly unknownExemptModels: readonly string[];
|
|
20
|
+
constructor(problems: OrgErasureCoverageProblems);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=org-erasure-coverage-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-errors.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-errors.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA6B,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE;gBAA3B,QAAQ,EAAE,SAAS,MAAM,EAAE;CAUjD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAYD,qBAAa,uBACX,SAAQ,KACR,YAAW,0BAA0B;IAErC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;gBAEpC,QAAQ,EAAE,0BAA0B;CAuCjD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrgErasureCoverageError = exports.OrgErasureGraphMismatchError = void 0;
|
|
4
|
+
class OrgErasureGraphMismatchError extends Error {
|
|
5
|
+
problems;
|
|
6
|
+
constructor(problems) {
|
|
7
|
+
super('[org-erasure] REFUSING TO START - the org-erasure graph does not match ' +
|
|
8
|
+
'the Prisma client. Run `prisma generate` with the ' +
|
|
9
|
+
'`xema-org-erasure-graph` generator so the graph is rebuilt from the ' +
|
|
10
|
+
'current schema:\n' +
|
|
11
|
+
problems.map((p) => ` - ${p}`).join('\n'));
|
|
12
|
+
this.problems = problems;
|
|
13
|
+
this.name = 'OrgErasureGraphMismatchError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.OrgErasureGraphMismatchError = OrgErasureGraphMismatchError;
|
|
17
|
+
function section(title, names) {
|
|
18
|
+
return names.length === 0
|
|
19
|
+
? []
|
|
20
|
+
: [` ${title} (${names.length}):`, ` ${names.join(', ')}`];
|
|
21
|
+
}
|
|
22
|
+
class OrgErasureCoverageError extends Error {
|
|
23
|
+
unaccounted;
|
|
24
|
+
unknownDeclarations;
|
|
25
|
+
blankReasons;
|
|
26
|
+
invalidDispositions;
|
|
27
|
+
declaredButErased;
|
|
28
|
+
unknownExemptModels;
|
|
29
|
+
constructor(problems) {
|
|
30
|
+
super([
|
|
31
|
+
'[org-erasure] REFUSING TO START - personal data could be silently ' +
|
|
32
|
+
'left unerased.',
|
|
33
|
+
...section('models neither swept by the org-data erasure, cascade-deleted from a swept model, nor declared', problems.unaccounted),
|
|
34
|
+
...section('orgErasure.declarations name models that do not exist', problems.unknownDeclarations),
|
|
35
|
+
...section('declarations with a blank reason', problems.blankReasons),
|
|
36
|
+
...section('declarations with a disposition outside OrgErasureDisposition', problems.invalidDispositions),
|
|
37
|
+
...section('declared models that ARE erased (swept or cascade-deleted); remove the declaration', problems.declaredButErased),
|
|
38
|
+
...section('orgErasure.sweep.exemptModels name models that do not exist', problems.unknownExemptModels),
|
|
39
|
+
' Fix: declare each unaccounted model in orgErasure.declarations:',
|
|
40
|
+
" { Foo: { disposition: OrgErasureDisposition.NotPersonalData, reason: '...' } }",
|
|
41
|
+
' (NotPersonalData | Retained | ErasedByServiceEraser), or give it the org column / a required ON DELETE CASCADE relation to a swept model.',
|
|
42
|
+
].join('\n'));
|
|
43
|
+
this.name = 'OrgErasureCoverageError';
|
|
44
|
+
this.unaccounted = problems.unaccounted;
|
|
45
|
+
this.unknownDeclarations = problems.unknownDeclarations;
|
|
46
|
+
this.blankReasons = problems.blankReasons;
|
|
47
|
+
this.invalidDispositions = problems.invalidDispositions;
|
|
48
|
+
this.declaredButErased = problems.declaredButErased;
|
|
49
|
+
this.unknownExemptModels = problems.unknownExemptModels;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OrgErasureCoverageError = OrgErasureCoverageError;
|
|
53
|
+
//# sourceMappingURL=org-erasure-coverage-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-errors.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,4BAA6B,SAAQ,KAAK;IAChC;IAArB,YAAqB,QAA2B;QAC9C,KAAK,CACH,yEAAyE;YACvE,oDAAoD;YACpD,sEAAsE;YACtE,mBAAmB;YACnB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7C,CAAC;QAPiB,aAAQ,GAAR,QAAQ,CAAmB;QAQ9C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAXD,oEAWC;AAWD,SAAS,OAAO,CAAC,KAAa,EAAE,KAAwB;IACtD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAMD,MAAa,uBACX,SAAQ,KAAK;IAGJ,WAAW,CAAoB;IAC/B,mBAAmB,CAAoB;IACvC,YAAY,CAAoB;IAChC,mBAAmB,CAAoB;IACvC,iBAAiB,CAAoB;IACrC,mBAAmB,CAAoB;IAEhD,YAAY,QAAoC;QAC9C,KAAK,CACH;YACE,oEAAoE;gBAClE,gBAAgB;YAClB,GAAG,OAAO,CACR,gGAAgG,EAChG,QAAQ,CAAC,WAAW,CACrB;YACD,GAAG,OAAO,CACR,uDAAuD,EACvD,QAAQ,CAAC,mBAAmB,CAC7B;YACD,GAAG,OAAO,CAAC,kCAAkC,EAAE,QAAQ,CAAC,YAAY,CAAC;YACrE,GAAG,OAAO,CACR,+DAA+D,EAC/D,QAAQ,CAAC,mBAAmB,CAC7B;YACD,GAAG,OAAO,CACR,oFAAoF,EACpF,QAAQ,CAAC,iBAAiB,CAC3B;YACD,GAAG,OAAO,CACR,6DAA6D,EAC7D,QAAQ,CAAC,mBAAmB,CAC7B;YACD,mEAAmE;YACnE,oFAAoF;YACpF,6IAA6I;SAC9I,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QACpD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,CAAC;CACF;AAlDD,0DAkDC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OrgErasureDeclarations } from './org-erasure-disposition';
|
|
2
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
3
|
+
export interface OrgErasureSweep {
|
|
4
|
+
readonly orgField?: string;
|
|
5
|
+
readonly exemptModels?: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
export interface OrgErasureCoverageOptions {
|
|
8
|
+
readonly graph: OrgErasureGraph;
|
|
9
|
+
readonly sweep?: OrgErasureSweep;
|
|
10
|
+
readonly declarations?: OrgErasureDeclarations;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=org-erasure-coverage-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-options.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAOD,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage-options.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OrgErasureDeclaration } from './org-erasure-disposition';
|
|
2
|
+
export interface OrgErasureCoverage {
|
|
3
|
+
readonly sweep: {
|
|
4
|
+
readonly orgField: string;
|
|
5
|
+
readonly exemptModels: readonly string[];
|
|
6
|
+
} | undefined;
|
|
7
|
+
readonly swept: readonly string[];
|
|
8
|
+
readonly reachable: Readonly<Record<string, string>>;
|
|
9
|
+
readonly declared: Readonly<Record<string, OrgErasureDeclaration>>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=org-erasure-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EACV;QACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;KAC1C,GACD,SAAS,CAAC;IAEd,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;CACpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-coverage.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-coverage.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum OrgErasureDisposition {
|
|
2
|
+
NotPersonalData = "not-personal-data",
|
|
3
|
+
Retained = "retained",
|
|
4
|
+
ErasedByServiceEraser = "erased-by-service-eraser"
|
|
5
|
+
}
|
|
6
|
+
export interface OrgErasureDeclaration {
|
|
7
|
+
readonly disposition: OrgErasureDisposition;
|
|
8
|
+
readonly reason: string;
|
|
9
|
+
}
|
|
10
|
+
export type OrgErasureDeclarations = Readonly<Record<string, OrgErasureDeclaration>>;
|
|
11
|
+
//# sourceMappingURL=org-erasure-disposition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-disposition.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-disposition.ts"],"names":[],"mappings":"AAKA,oBAAY,qBAAqB;IAE/B,eAAe,sBAAsB;IAErC,QAAQ,aAAa;IAErB,qBAAqB,6BAA6B;CACnD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAE5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACtC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrgErasureDisposition = void 0;
|
|
4
|
+
var OrgErasureDisposition;
|
|
5
|
+
(function (OrgErasureDisposition) {
|
|
6
|
+
OrgErasureDisposition["NotPersonalData"] = "not-personal-data";
|
|
7
|
+
OrgErasureDisposition["Retained"] = "retained";
|
|
8
|
+
OrgErasureDisposition["ErasedByServiceEraser"] = "erased-by-service-eraser";
|
|
9
|
+
})(OrgErasureDisposition || (exports.OrgErasureDisposition = OrgErasureDisposition = {}));
|
|
10
|
+
//# sourceMappingURL=org-erasure-disposition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-disposition.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-disposition.ts"],"names":[],"mappings":";;;AAKA,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAE/B,8DAAqC,CAAA;IAErC,8CAAqB,CAAA;IAErB,2EAAkD,CAAA;AACpD,CAAC,EAPW,qBAAqB,qCAArB,qBAAqB,QAOhC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface OrgErasureDmmfField {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly kind: string;
|
|
4
|
+
readonly isList: boolean;
|
|
5
|
+
readonly isRequired: boolean;
|
|
6
|
+
readonly type: string;
|
|
7
|
+
readonly relationFromFields?: readonly string[];
|
|
8
|
+
readonly relationOnDelete?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface OrgErasureDmmfModel {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly fields: readonly OrgErasureDmmfField[];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=org-erasure-dmmf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-dmmf.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-dmmf.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-dmmf.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-dmmf.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface OrgErasureCascadeEdge {
|
|
2
|
+
readonly relationField: string;
|
|
3
|
+
readonly parentModel: string;
|
|
4
|
+
}
|
|
5
|
+
export interface OrgErasureGraphModel {
|
|
6
|
+
readonly fields: readonly string[];
|
|
7
|
+
readonly cascadeParents: readonly OrgErasureCascadeEdge[];
|
|
8
|
+
}
|
|
9
|
+
export interface OrgErasureGraph {
|
|
10
|
+
readonly models: Readonly<Record<string, OrgErasureGraphModel>>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-graph.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,QAAQ,CAAC,cAAc,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;CACjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/org-erasure-graph.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
2
|
+
export interface RenderedOrgErasureGraphModule {
|
|
3
|
+
readonly js: string;
|
|
4
|
+
readonly dts: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function renderOrgErasureGraphModule(graph: OrgErasureGraph): RenderedOrgErasureGraphModule;
|
|
7
|
+
//# sourceMappingURL=render-org-erasure-graph-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-org-erasure-graph-module.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/render-org-erasure-graph-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,6BAA6B;IAE5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAGD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,GACrB,6BAA6B,CAU/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderOrgErasureGraphModule = renderOrgErasureGraphModule;
|
|
4
|
+
function renderOrgErasureGraphModule(graph) {
|
|
5
|
+
return {
|
|
6
|
+
js: '"use strict";\n' +
|
|
7
|
+
'Object.defineProperty(exports, "__esModule", { value: true });\n' +
|
|
8
|
+
`exports.orgErasureGraph = ${JSON.stringify(graph, null, 2)};\n`,
|
|
9
|
+
dts: "import type { OrgErasureGraph } from '@xemahq/biome-database-nest';\n" +
|
|
10
|
+
'export declare const orgErasureGraph: OrgErasureGraph;\n',
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=render-org-erasure-graph-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-org-erasure-graph-module.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/render-org-erasure-graph-module.ts"],"names":[],"mappings":";;AAUA,kEAYC;AAZD,SAAgB,2BAA2B,CACzC,KAAsB;IAEtB,OAAO;QACL,EAAE,EACA,iBAAiB;YACjB,kEAAkE;YAClE,6BAA6B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK;QAClE,GAAG,EACD,uEAAuE;YACvE,0DAA0D;KAC7D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OrgErasureCoverage } from './org-erasure-coverage';
|
|
2
|
+
import type { OrgErasureCoverageOptions } from './org-erasure-coverage-options';
|
|
3
|
+
import type { OrgErasureReport } from '@xemahq/org-erasure-nest';
|
|
4
|
+
export interface OrgErasureApi {
|
|
5
|
+
readonly orgErasureCoverage: OrgErasureCoverage;
|
|
6
|
+
eraseOrg(orgId: string): Promise<OrgErasureReport>;
|
|
7
|
+
}
|
|
8
|
+
export interface OrgErasureCoverageLogger {
|
|
9
|
+
log(message: string): void;
|
|
10
|
+
}
|
|
11
|
+
export declare function resolveOrgErasureApi(raw: unknown, options: OrgErasureCoverageOptions, logger: OrgErasureCoverageLogger): OrgErasureApi;
|
|
12
|
+
//# sourceMappingURL=resolve-org-erasure-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-org-erasure-api.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/resolve-org-erasure-api.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAEhD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAMD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,yBAAyB,EAClC,MAAM,EAAE,wBAAwB,GAC/B,aAAa,CA+Bf"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveOrgErasureApi = resolveOrgErasureApi;
|
|
4
|
+
const classify_org_erasure_coverage_1 = require("./classify-org-erasure-coverage");
|
|
5
|
+
const org_erasure_1 = require("../tenant-isolation/org-erasure");
|
|
6
|
+
const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
|
|
7
|
+
function resolveOrgErasureApi(raw, options, logger) {
|
|
8
|
+
const coverage = (0, classify_org_erasure_coverage_1.classifyOrgErasureCoverage)((0, tenant_isolation_extension_1.readRuntimeModels)(raw), options);
|
|
9
|
+
const byDisposition = {};
|
|
10
|
+
for (const { disposition } of Object.values(coverage.declared)) {
|
|
11
|
+
byDisposition[disposition] = (byDisposition[disposition] ?? 0) + 1;
|
|
12
|
+
}
|
|
13
|
+
logger.log(`[org-erasure] coverage proven: ${coverage.swept.length} swept, ` +
|
|
14
|
+
`${Object.keys(coverage.reachable).length} cascade-reachable, ` +
|
|
15
|
+
`${Object.keys(coverage.declared).length} declared` +
|
|
16
|
+
(Object.keys(byDisposition).length > 0
|
|
17
|
+
? ` (${Object.entries(byDisposition)
|
|
18
|
+
.sort(([a], [b]) => (a < b ? -1 : 1))
|
|
19
|
+
.map(([d, n]) => `${d}: ${n}`)
|
|
20
|
+
.join(', ')})`
|
|
21
|
+
: ''));
|
|
22
|
+
return {
|
|
23
|
+
orgErasureCoverage: coverage,
|
|
24
|
+
eraseOrg: async (orgId) => {
|
|
25
|
+
if (coverage.sweep === undefined) {
|
|
26
|
+
throw new Error('[org-erasure] this Prisma service declares no orgErasure.sweep, so it ' +
|
|
27
|
+
'is not an org-erasure participant and cannot erase an org.');
|
|
28
|
+
}
|
|
29
|
+
return await (0, org_erasure_1.eraseOrgData)(raw, orgId, coverage.sweep);
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=resolve-org-erasure-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-org-erasure-api.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/resolve-org-erasure-api.ts"],"names":[],"mappings":";;AAuBA,oDAmCC;AA1DD,mFAA6E;AAC7E,iEAA+D;AAC/D,+FAAmF;AAqBnF,SAAgB,oBAAoB,CAClC,GAAY,EACZ,OAAkC,EAClC,MAAgC;IAEhC,MAAM,QAAQ,GAAG,IAAA,0DAA0B,EAAC,IAAA,8CAAiB,EAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAE7E,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,KAAK,MAAM,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,GAAG,CACR,kCAAkC,QAAQ,CAAC,KAAK,CAAC,MAAM,UAAU;QAC/D,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,sBAAsB;QAC/D,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,WAAW;QACnD,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;iBAC/B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG;YAClB,CAAC,CAAC,EAAE,CAAC,CACV,CAAC;IAEF,OAAO;QACL,kBAAkB,EAAE,QAAQ;QAC5B,QAAQ,EAAE,KAAK,EAAE,KAAa,EAA6B,EAAE;YAC3D,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,wEAAwE;oBACtE,4DAA4D,CAC/D,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,IAAA,0BAAY,EAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -6,12 +6,16 @@ export interface TenantIsolationLogger {
|
|
|
6
6
|
}
|
|
7
7
|
export interface RuntimeDataModelField {
|
|
8
8
|
readonly name: string;
|
|
9
|
+
readonly kind?: string;
|
|
10
|
+
readonly type?: string;
|
|
9
11
|
}
|
|
10
12
|
export interface RuntimeDataModelModel {
|
|
11
13
|
readonly fields: readonly RuntimeDataModelField[];
|
|
12
14
|
}
|
|
13
15
|
export declare function readRuntimeModels(client: unknown): Readonly<Record<string, RuntimeDataModelModel>>;
|
|
14
16
|
export declare function collectOrgScopedModels(client: unknown, orgField: string, exemptModels: readonly string[]): ReadonlySet<string>;
|
|
17
|
+
export declare function findUnknownModels(models: Readonly<Record<string, RuntimeDataModelModel>>, names: readonly string[]): readonly string[];
|
|
18
|
+
export declare function selectOrgScopedModels(models: Readonly<Record<string, RuntimeDataModelModel>>, orgField: string, exemptModels: readonly string[]): ReadonlySet<string>;
|
|
15
19
|
export interface TenantIsolationQueryContext {
|
|
16
20
|
readonly model?: string;
|
|
17
21
|
readonly operation: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-isolation.extension.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/tenant-isolation.extension.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAGzC,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant-isolation.extension.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/tenant-isolation.extension.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAGzC,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD;AAaD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,GACd,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAUjD;AAUD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,WAAW,CAAC,MAAM,CAAC,CAUrB;AAGD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EACvD,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CAEnB;AAOD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EACvD,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,WAAW,CAAC,MAAM,CAAC,CAWrB;AAGD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,qCAAqC;IAEpD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAMnC,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAGD,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,UAAU,EAAE;YACnB,cAAc,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;SACpE,CAAC;KACH,CAAC;CACH;AAYD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,qCAAqC,GAC7C,kCAAkC,CAkEpC"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DEFAULT_ORG_FIELD = void 0;
|
|
4
4
|
exports.readRuntimeModels = readRuntimeModels;
|
|
5
5
|
exports.collectOrgScopedModels = collectOrgScopedModels;
|
|
6
|
+
exports.findUnknownModels = findUnknownModels;
|
|
7
|
+
exports.selectOrgScopedModels = selectOrgScopedModels;
|
|
6
8
|
exports.createTenantIsolationExtension = createTenantIsolationExtension;
|
|
7
9
|
const org_scope_1 = require("./org-scope");
|
|
8
10
|
const tenant_isolation_error_1 = require("./tenant-isolation-error");
|
|
@@ -19,12 +21,17 @@ function readRuntimeModels(client) {
|
|
|
19
21
|
}
|
|
20
22
|
function collectOrgScopedModels(client, orgField, exemptModels) {
|
|
21
23
|
const models = readRuntimeModels(client);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
24
|
+
const unknown = findUnknownModels(models, exemptModels);
|
|
25
|
+
if (unknown.length > 0) {
|
|
26
|
+
throw new Error(`[tenant-isolation] exemptModels names unknown model "${unknown[0]}" — ` +
|
|
27
|
+
`known models: ${Object.keys(models).join(', ')}.`);
|
|
27
28
|
}
|
|
29
|
+
return selectOrgScopedModels(models, orgField, exemptModels);
|
|
30
|
+
}
|
|
31
|
+
function findUnknownModels(models, names) {
|
|
32
|
+
return names.filter((name) => !(name in models));
|
|
33
|
+
}
|
|
34
|
+
function selectOrgScopedModels(models, orgField, exemptModels) {
|
|
28
35
|
const scoped = new Set();
|
|
29
36
|
for (const [name, model] of Object.entries(models)) {
|
|
30
37
|
if (exemptModels.includes(name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-isolation.extension.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/tenant-isolation.extension.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tenant-isolation.extension.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/tenant-isolation.extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,12 @@ import type { TenantIsolationLogger } from './tenant-isolation.extension';
|
|
|
3
3
|
export interface UnscopedModelDeclaration {
|
|
4
4
|
readonly reason: string;
|
|
5
5
|
readonly fencedBy?: string;
|
|
6
|
-
readonly retainedAfterOrgErasure?: true;
|
|
7
6
|
}
|
|
8
7
|
export type UnscopedModelDeclarations = Readonly<Record<string, string | UnscopedModelDeclaration>>;
|
|
9
8
|
export interface NormalizedUnscopedModelDeclaration {
|
|
10
9
|
readonly model: string;
|
|
11
10
|
readonly reason: string;
|
|
12
11
|
readonly fencedBy?: string;
|
|
13
|
-
readonly retainedAfterOrgErasure?: true;
|
|
14
12
|
}
|
|
15
13
|
export declare class UndeclaredUnscopedModelsError extends Error {
|
|
16
14
|
readonly undeclared: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unscoped-models.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/unscoped-models.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQ1E,MAAM,WAAW,wBAAwB;IAMvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAOxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"unscoped-models.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/unscoped-models.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQ1E,MAAM,WAAW,wBAAwB;IAMvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAOxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,CAAC,CAClD,CAAC;AAGF,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD,qBAAa,6BAA8B,SAAQ,KAAK;IAEtD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;gBAG5C,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,QAAQ,EAAE,MAAM;CASnB;AAMD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,QAAQ,CACd,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,CAC1E,EACD,QAAQ,EAAE,MAAM,GACf,SAAS,MAAM,EAAE,CAKnB;AAQD,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,yBAAyB,GACtC,SAAS,kCAAkC,EAAE,CA6B/C;AAGD,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,MAAM,CAgCR;AAED,MAAM,WAAW,2BAA2B;IAE1C,QAAQ,CAAC,MAAM,EAAE,QAAQ,CACvB,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC,CAC1E,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAEnC,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC;IAEnD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;CACxC;AAiBD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,2BAA2B,GACnC,IAAI,CAgDN"}
|
|
@@ -43,9 +43,6 @@ function normalizeUnscopedModelDeclarations(declarations) {
|
|
|
43
43
|
...(declaration.fencedBy !== undefined
|
|
44
44
|
? { fencedBy: declaration.fencedBy }
|
|
45
45
|
: {}),
|
|
46
|
-
...(declaration.retainedAfterOrgErasure === true
|
|
47
|
-
? { retainedAfterOrgErasure: true }
|
|
48
|
-
: {}),
|
|
49
46
|
};
|
|
50
47
|
});
|
|
51
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unscoped-models.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/unscoped-models.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"unscoped-models.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/unscoped-models.ts"],"names":[],"mappings":"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"}
|