@xemahq/biome-database-nest 6.0.1 → 7.1.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 +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/biome-migrations.d.ts.map +1 -1
- package/dist/lib/biome-migrations.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/sdk-owned-errors.d.ts.map +1 -1
- package/dist/lib/sdk-owned-errors.js +3 -1
- package/dist/lib/sdk-owned-errors.js.map +1 -1
- package/dist/lib/sdk-owned-migration-set.d.ts +8 -0
- package/dist/lib/sdk-owned-migration-set.d.ts.map +1 -1
- package/dist/lib/sdk-owned-migration-set.js +27 -0
- package/dist/lib/sdk-owned-migration-set.js.map +1 -1
- package/dist/lib/sdk-owned-migrations.d.ts.map +1 -1
- package/dist/lib/sdk-owned-migrations.js +8 -5
- package/dist/lib/sdk-owned-migrations.js.map +1 -1
- package/dist/lib/sdk-owned-prior-creators.d.ts +5 -0
- package/dist/lib/sdk-owned-prior-creators.d.ts.map +1 -0
- package/dist/lib/sdk-owned-prior-creators.js +71 -0
- package/dist/lib/sdk-owned-prior-creators.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 +9 -5
- package/xema-peer-facts.json +6 -6
package/README.md
CHANGED
|
@@ -55,6 +55,42 @@ Mount it beside `XemaServiceModule.forBiome(...)`, which publishes the connectio
|
|
|
55
55
|
|
|
56
56
|
Every Postgres session must run in UTC. The package verifies this and refuses to start otherwise; it never sets the zone.
|
|
57
57
|
|
|
58
|
+
## Org-data erasure coverage
|
|
59
|
+
|
|
60
|
+
`createBiomePrismaService` refuses to start unless every Prisma model is accounted for: swept by the org-data erasure, deleted through a required `ON DELETE CASCADE` path from a swept model, or declared with a reason. One error names every unaccounted model. This holds in every tenant-isolation mode.
|
|
61
|
+
|
|
62
|
+
Add the generator to `schema.prisma`:
|
|
63
|
+
|
|
64
|
+
```prisma
|
|
65
|
+
generator orgErasureGraph {
|
|
66
|
+
provider = "xema-org-erasure-graph"
|
|
67
|
+
output = "../node_modules/.prisma/<service>-org-erasure-graph"
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Then pass its output:
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
import { orgErasureGraph } from '.prisma/<service>-org-erasure-graph';
|
|
75
|
+
|
|
76
|
+
createBiomePrismaService(PrismaClient, {
|
|
77
|
+
orgErasure: {
|
|
78
|
+
graph: orgErasureGraph,
|
|
79
|
+
sweep: {}, // only for org-erasure participants; optional `orgField`, `exemptModels`
|
|
80
|
+
declarations: {
|
|
81
|
+
MigrationBookkeeping: {
|
|
82
|
+
disposition: OrgErasureDisposition.NotPersonalData,
|
|
83
|
+
reason: 'Internal bookkeeping; rows describe no person or organisation.',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
`OrgErasureDisposition` is `NotPersonalData`, `Retained` (kept on purpose; the reason states the basis) or `ErasedByServiceEraser` (the reason names the eraser). The service exposes `eraseOrg(orgId)`, which runs the declared sweep, and `OrgErasureModule.forRoot({ prismaServiceToken })` mounts the endpoint over it. Re-run `prisma generate` after every schema change; a stale graph refuses to start.
|
|
91
|
+
|
|
92
|
+
The org-erasure graph generator and the `prisma generate` client generator must always run together: a client-only regenerate after an `onDelete` change leaves a stale graph that the graph-to-client check cannot detect.
|
|
93
|
+
|
|
58
94
|
## Testing
|
|
59
95
|
|
|
60
96
|
Test helpers (the biome migrator for `@xemahq/pg-test-harness` and the prefix-migration fixture) live in the separate `@xemahq/biome-database-nest-testing` package, so this runtime package never references the test harness. Install that package as a `devDependency`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../src/bin/xema-org-erasure-graph.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const generator_helper_1 = require("@prisma/generator-helper");
|
|
5
|
+
const generate_org_erasure_graph_1 = require("../lib/org-erasure-coverage/generate-org-erasure-graph");
|
|
6
|
+
(0, generator_helper_1.generatorHandler)({
|
|
7
|
+
onManifest: () => ({ prettyName: 'Xema org-erasure graph' }),
|
|
8
|
+
onGenerate: generate_org_erasure_graph_1.generateOrgErasureGraph,
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=xema-org-erasure-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-org-erasure-graph.js","sourceRoot":"","sources":["../../src/bin/xema-org-erasure-graph.ts"],"names":[],"mappings":";;;AAKA,+DAA4D;AAE5D,uGAAiG;AAEjG,IAAA,mCAAgB,EAAC;IACf,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,wBAAwB,EAAE,CAAC;IAC5D,UAAU,EAAE,oDAAuB;CACpC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,20 +22,29 @@ export { contractOperatorMigration, openOperatorMigrationClient, OperatorMigrati
|
|
|
22
22
|
export { ensureOperatorMigrationLedger, OPERATOR_MIGRATION_LEDGER_TABLE, operatorMigrationLedgerMigrations, } from './lib/operator-migration-ledger';
|
|
23
23
|
export { assertOwnedTableShape, SdkOwnedTableShapeError, type OwnedCheckShape, type OwnedColumnShape, type OwnedIndexShape, type OwnedTableShape, } from './lib/owned-table-shape';
|
|
24
24
|
export { SdkOwnedMigrationChangedError, SdkOwnedMigrationsUnknownToImageError, SdkOwnedTableNotCreatedByOwnerError, ServiceMigrationTouchesSdkOwnedTableError, } from './lib/sdk-owned-errors';
|
|
25
|
-
export { sdkOwnedMigrationDigests, sdkOwnedMigrationId, SdkOwnedMigrationSetInvalidError, type SdkOwnedMigration, type SdkOwnedMigrationSet, } from './lib/sdk-owned-migration-set';
|
|
25
|
+
export { sdkOwnedMigrationDigests, sdkOwnedMigrationId, SdkOwnedMigrationSetInvalidError, type SdkOwnedMigration, type SdkOwnedMigrationSet, type SdkOwnedTablePriorCreator, } from './lib/sdk-owned-migration-set';
|
|
26
26
|
export { applySdkOwnedMigrations } from './lib/sdk-owned-migrations';
|
|
27
27
|
export { APPLIED_SDK_OWNED_MIGRATIONS, contributeSdkOwnedMigrations, mergeSdkOwnedMigrations, SdkOwnedMigrationsConflictError, SdkOwnedMigrationsNotAppliedError, type AppliedSdkOwnedMigrations, } from './lib/nest/sdk-owned-contribution';
|
|
28
28
|
export { runBiomeMigrations, type RunBiomeMigrationsOptions, } from './lib/biome-migrations';
|
|
29
29
|
export { defaultLeaseHolderId, ExpiringLeaseStore, type ExpiringLeaseClient, type ExpiringLeaseLogger, type ExpiringLeaseOutcome, type ExpiringLeaseStoreOptions, } from './lib/expiring-lease';
|
|
30
30
|
export { BiomeDatabaseModule, BIOME_DATABASE_READY, type ApplicationManagedBiomeDatabaseModuleOptions, type BiomeDatabaseModuleOptions, } from './lib/nest/biome-database.module';
|
|
31
31
|
export { runBiomeDatabasePreflight, type RunBiomeDatabasePreflightOptions, } from './lib/nest/database-preflight';
|
|
32
|
-
export { createBiomePrismaService, type BiomePrismaClient, type BiomePrismaClientCtor, type BiomePrismaServiceInstance, type CreateBiomePrismaServiceOptions, type TenantIsolationServiceOptions, type TenantScopedApi, } from './lib/nest/prisma-service-factory';
|
|
32
|
+
export { createBiomePrismaService, type BiomePrismaClient, type BiomePrismaClientCtor, type BiomePrismaServiceClass, type BiomePrismaServiceInstance, type CreateBiomePrismaServiceOptions, type TenantIsolationServiceOptions, type TenantScopedApi, } from './lib/nest/prisma-service-factory';
|
|
33
33
|
export { TenantIsolationMode, TENANT_ISOLATION_MODE_ENV_VAR, resolveTenantIsolationMode, } from './lib/tenant-isolation/tenant-isolation-mode';
|
|
34
34
|
export { TenantIsolationError, TenantIsolationViolationKind, formatTenantIsolationViolation, type TenantIsolationViolation, } from './lib/tenant-isolation/tenant-isolation-error';
|
|
35
35
|
export { PrismaModelOperation, scopeArgsToOrg, type OrgScopeOutcome, type OrgScopeRequest, } from './lib/tenant-isolation/org-scope';
|
|
36
36
|
export { DEFAULT_ORG_FIELD, collectOrgScopedModels, createTenantIsolationExtension, readRuntimeModels, type CreateTenantIsolationExtensionOptions, type RuntimeDataModelField, type RuntimeDataModelModel, type TenantIsolationExtensionDefinition, type TenantIsolationLogger, type TenantIsolationQueryContext, } from './lib/tenant-isolation/tenant-isolation.extension';
|
|
37
37
|
export { assertUnscopedModelsDeclared, collectUnscopableModels, formatUnscopedModelReport, normalizeUnscopedModelDeclarations, UndeclaredUnscopedModelsError, type AssertUnscopedModelsOptions, type NormalizedUnscopedModelDeclaration, type UnscopedModelDeclaration, type UnscopedModelDeclarations, } from './lib/tenant-isolation/unscoped-models';
|
|
38
|
-
export {
|
|
38
|
+
export { OrgErasureBlockedError, OrgErasureMatchesNothingError, } from './lib/tenant-isolation/org-erasure';
|
|
39
|
+
export { buildOrgErasureGraph } from './lib/org-erasure-coverage/build-org-erasure-graph';
|
|
40
|
+
export { classifyOrgErasureCoverage } from './lib/org-erasure-coverage/classify-org-erasure-coverage';
|
|
41
|
+
export { type OrgErasureCoverage } from './lib/org-erasure-coverage/org-erasure-coverage';
|
|
42
|
+
export { type OrgErasureCoverageOptions, type OrgErasureSweep, } from './lib/org-erasure-coverage/org-erasure-coverage-options';
|
|
43
|
+
export { OrgErasureCoverageError, OrgErasureGraphMismatchError, type OrgErasureCoverageProblems, } from './lib/org-erasure-coverage/org-erasure-coverage-errors';
|
|
44
|
+
export { OrgErasureDisposition, type OrgErasureDeclaration, type OrgErasureDeclarations, } from './lib/org-erasure-coverage/org-erasure-disposition';
|
|
45
|
+
export { type OrgErasureDmmfField, type OrgErasureDmmfModel, } from './lib/org-erasure-coverage/org-erasure-dmmf';
|
|
46
|
+
export { type OrgErasureCascadeEdge, type OrgErasureGraph, type OrgErasureGraphModel, } from './lib/org-erasure-coverage/org-erasure-graph';
|
|
47
|
+
export { type OrgErasureApi } from './lib/org-erasure-coverage/resolve-org-erasure-api';
|
|
39
48
|
export { eraseOwnedAuthoredResourceGraph, type AuthoredResourceGraphErasureClient, type AuthoredResourceGraphNames, } from './lib/tenant-isolation/authored-resource-org-erasure';
|
|
40
49
|
export { OrgErasureModule, type OrgErasureModuleOptions, } from './lib/nest/org-erasure.module';
|
|
41
50
|
export { assertOrgNotProtected, IdentityOrgProtectionProbe, ORG_DATA_ERASURE_CAPABILITY, ORG_ERASURE_ROUTE_PATH, ORG_ERASURE_RUNNER, ORG_PROTECTION_GRANT, ORGANIZATION_PROTECTED_ERROR_CODE, OrgErasureController, OrgProtectionGuard, OrgProtectionUnavailableError, ProtectedOrgErasureRefusedError, type OrgErasureReport, type OrgErasureRunner, type OrgProtectionGrant, type OrgProtectionProbe, } from '@xemahq/org-erasure-nest';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveBiomeDatabasePoolOptions = exports.resolveBiomeDatabasePoolMax = exports.readDeclaredBiomeDatabasePool = exports.publishDeclaredBiomeDatabasePool = exports.PLATFORM_CONNECTION_HEADROOM = exports.clearDeclaredBiomeDatabasePools = exports.BiomeDatabasePoolOptionsError = exports.biomeDatabasePoolCeilingFromEnv = exports.BIOME_PROCESS_CONCURRENCY = exports.resolveBiomePrismaAdapter = exports.createBiomePrismaAdapterFromEnv = exports.createBiomePrismaAdapter = exports.DatabaseSessionTimeZoneError = exports.DatabaseSessionPath = exports.assertDatabaseSessionUtc = exports.resolveBiomeDatabaseConfigFromEnv = exports.SCHEMA_ROLE_SUFFIX_LENGTH = exports.SCHEMA_ROLE_BASE_MAX_LENGTH = exports.SchemaRoleKind = exports.schemaRoleName = exports.schemaRoleBase = exports.rolesForSchema = exports.sanitizeIdentifierSegment = exports.sanitizeIdentifierChars = exports.POSTGRES_MAX_IDENTIFIER_LENGTH = exports.IDENTIFIER_HASH_LENGTH = exports.fitIdentifier = exports.composeIdentifier = exports.IDEMPOTENCY_DATA_STORE_CLIENT = exports.DataStoreIdempotencyService = exports.stripPrismaComments = exports.extractModelBlock = exports.ReleaseIntentConventionError = exports.assertReleaseIntentPrismaModel = exports.idempotencyRecordPrismaModel = exports.IdempotencyRecordConventionError = exports.IDEMPOTENCY_RECORD_CREATE_SQL = exports.IDEMPOTENCY_CLAIMS_MIGRATION_SQL = exports.IDEMPOTENCY_CLAIMS_MIGRATION_NAME = exports.assertIdempotencyRecordPrismaModel = exports.ensureBiomeDbSearchPath = exports.composeBiomeDatabaseUrlFromEnv = exports.composeBiomeDatabaseUrl = exports.BIOME_DB_SESSION_TIMEZONE = exports.tryAcquireXactAdvisoryLock = exports.tryAcquireAdvisoryLock = exports.releaseAdvisoryLock = exports.acquireXactAdvisoryLock = exports.deriveBiomeSchemaName = exports.DEFAULT_BIOME_DB_KEY = void 0;
|
|
4
4
|
exports.BIOME_DATABASE_READY = exports.BiomeDatabaseModule = exports.ExpiringLeaseStore = exports.defaultLeaseHolderId = exports.runBiomeMigrations = exports.SdkOwnedMigrationsNotAppliedError = exports.SdkOwnedMigrationsConflictError = exports.mergeSdkOwnedMigrations = exports.contributeSdkOwnedMigrations = exports.APPLIED_SDK_OWNED_MIGRATIONS = exports.applySdkOwnedMigrations = exports.SdkOwnedMigrationSetInvalidError = exports.sdkOwnedMigrationId = exports.sdkOwnedMigrationDigests = exports.ServiceMigrationTouchesSdkOwnedTableError = exports.SdkOwnedTableNotCreatedByOwnerError = exports.SdkOwnedMigrationsUnknownToImageError = exports.SdkOwnedMigrationChangedError = exports.SdkOwnedTableShapeError = exports.assertOwnedTableShape = exports.operatorMigrationLedgerMigrations = exports.OPERATOR_MIGRATION_LEDGER_TABLE = exports.ensureOperatorMigrationLedger = exports.withOperatorMigrationLock = exports.verifyOperatorMigration = exports.runOperatorMigration = exports.parseOperatorMigrationMode = exports.OperatorMigrationPhase = exports.OperatorMigrationMode = exports.openOperatorMigrationClient = exports.contractOperatorMigration = exports.BiomeDatabaseMigrationMode = exports.bootstrapBiomeDatabases = exports.ORG_DATABASE_POOL_SERVICE_NAME = exports.resolveControlPlaneBaseUrl = exports.stopBiomeDatabaseLeases = exports.leasedClientClass = exports.expiredBiomeDatabaseLeases = exports.DatabaseCredentialLease = exports.DatabaseCredentialExpiredError = exports.assertBiomeDatabaseLeasesLive = exports.SERVICE_BINDING_SCOPE = exports.logicalNameForDatabase = exports.fetchDatabaseCredential = exports.DatabaseCredentialPurpose = exports.DatabaseCredentialMode = exports.readResolvedBiomeConnection = exports.publishResolvedBiomeConnection = exports.clearResolvedBiomeConnections = exports.validateBiomeDatabasePoolOptions = void 0;
|
|
5
|
-
exports.biomeDatabaseBootModeFromEnv = exports.BiomeDatabaseBootMode = exports.ProtectedOrgErasureRefusedError = exports.OrgProtectionUnavailableError = exports.OrgProtectionGuard = exports.OrgErasureController = exports.ORGANIZATION_PROTECTED_ERROR_CODE = exports.ORG_PROTECTION_GRANT = exports.ORG_ERASURE_RUNNER = exports.ORG_ERASURE_ROUTE_PATH = exports.ORG_DATA_ERASURE_CAPABILITY = exports.IdentityOrgProtectionProbe = exports.assertOrgNotProtected = exports.OrgErasureModule = exports.eraseOwnedAuthoredResourceGraph = exports.
|
|
5
|
+
exports.biomeDatabaseBootModeFromEnv = exports.BiomeDatabaseBootMode = exports.ProtectedOrgErasureRefusedError = exports.OrgProtectionUnavailableError = exports.OrgProtectionGuard = exports.OrgErasureController = exports.ORGANIZATION_PROTECTED_ERROR_CODE = exports.ORG_PROTECTION_GRANT = exports.ORG_ERASURE_RUNNER = exports.ORG_ERASURE_ROUTE_PATH = exports.ORG_DATA_ERASURE_CAPABILITY = exports.IdentityOrgProtectionProbe = exports.assertOrgNotProtected = exports.OrgErasureModule = exports.eraseOwnedAuthoredResourceGraph = exports.OrgErasureDisposition = exports.OrgErasureGraphMismatchError = exports.OrgErasureCoverageError = exports.classifyOrgErasureCoverage = exports.buildOrgErasureGraph = exports.OrgErasureMatchesNothingError = exports.OrgErasureBlockedError = exports.UndeclaredUnscopedModelsError = exports.normalizeUnscopedModelDeclarations = exports.formatUnscopedModelReport = exports.collectUnscopableModels = exports.assertUnscopedModelsDeclared = exports.readRuntimeModels = exports.createTenantIsolationExtension = exports.collectOrgScopedModels = exports.DEFAULT_ORG_FIELD = exports.scopeArgsToOrg = exports.PrismaModelOperation = exports.formatTenantIsolationViolation = exports.TenantIsolationViolationKind = exports.TenantIsolationError = exports.resolveTenantIsolationMode = exports.TENANT_ISOLATION_MODE_ENV_VAR = exports.TenantIsolationMode = exports.createBiomePrismaService = exports.runBiomeDatabasePreflight = void 0;
|
|
6
6
|
var schema_name_1 = require("./lib/schema-name");
|
|
7
7
|
Object.defineProperty(exports, "DEFAULT_BIOME_DB_KEY", { enumerable: true, get: function () { return schema_name_1.DEFAULT_BIOME_DB_KEY; } });
|
|
8
8
|
Object.defineProperty(exports, "deriveBiomeSchemaName", { enumerable: true, get: function () { return schema_name_1.deriveBiomeSchemaName; } });
|
|
@@ -159,10 +159,17 @@ Object.defineProperty(exports, "formatUnscopedModelReport", { enumerable: true,
|
|
|
159
159
|
Object.defineProperty(exports, "normalizeUnscopedModelDeclarations", { enumerable: true, get: function () { return unscoped_models_1.normalizeUnscopedModelDeclarations; } });
|
|
160
160
|
Object.defineProperty(exports, "UndeclaredUnscopedModelsError", { enumerable: true, get: function () { return unscoped_models_1.UndeclaredUnscopedModelsError; } });
|
|
161
161
|
var org_erasure_1 = require("./lib/tenant-isolation/org-erasure");
|
|
162
|
-
Object.defineProperty(exports, "assertOrgErasureMatchesModels", { enumerable: true, get: function () { return org_erasure_1.assertOrgErasureMatchesModels; } });
|
|
163
|
-
Object.defineProperty(exports, "eraseOrgData", { enumerable: true, get: function () { return org_erasure_1.eraseOrgData; } });
|
|
164
162
|
Object.defineProperty(exports, "OrgErasureBlockedError", { enumerable: true, get: function () { return org_erasure_1.OrgErasureBlockedError; } });
|
|
165
163
|
Object.defineProperty(exports, "OrgErasureMatchesNothingError", { enumerable: true, get: function () { return org_erasure_1.OrgErasureMatchesNothingError; } });
|
|
164
|
+
var build_org_erasure_graph_1 = require("./lib/org-erasure-coverage/build-org-erasure-graph");
|
|
165
|
+
Object.defineProperty(exports, "buildOrgErasureGraph", { enumerable: true, get: function () { return build_org_erasure_graph_1.buildOrgErasureGraph; } });
|
|
166
|
+
var classify_org_erasure_coverage_1 = require("./lib/org-erasure-coverage/classify-org-erasure-coverage");
|
|
167
|
+
Object.defineProperty(exports, "classifyOrgErasureCoverage", { enumerable: true, get: function () { return classify_org_erasure_coverage_1.classifyOrgErasureCoverage; } });
|
|
168
|
+
var org_erasure_coverage_errors_1 = require("./lib/org-erasure-coverage/org-erasure-coverage-errors");
|
|
169
|
+
Object.defineProperty(exports, "OrgErasureCoverageError", { enumerable: true, get: function () { return org_erasure_coverage_errors_1.OrgErasureCoverageError; } });
|
|
170
|
+
Object.defineProperty(exports, "OrgErasureGraphMismatchError", { enumerable: true, get: function () { return org_erasure_coverage_errors_1.OrgErasureGraphMismatchError; } });
|
|
171
|
+
var org_erasure_disposition_1 = require("./lib/org-erasure-coverage/org-erasure-disposition");
|
|
172
|
+
Object.defineProperty(exports, "OrgErasureDisposition", { enumerable: true, get: function () { return org_erasure_disposition_1.OrgErasureDisposition; } });
|
|
166
173
|
var authored_resource_org_erasure_1 = require("./lib/tenant-isolation/authored-resource-org-erasure");
|
|
167
174
|
Object.defineProperty(exports, "eraseOwnedAuthoredResourceGraph", { enumerable: true, get: function () { return authored_resource_org_erasure_1.eraseOwnedAuthoredResourceGraph; } });
|
|
168
175
|
var org_erasure_module_1 = require("./lib/nest/org-erasure.module");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biome-migrations.d.ts","sourceRoot":"","sources":["../../src/lib/biome-migrations.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAE7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC/D;
|
|
1
|
+
{"version":3,"file":"biome-migrations.d.ts","sourceRoot":"","sources":["../../src/lib/biome-migrations.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,WAAW,yBAAyB;IAExC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAE7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC/D;AAyBD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biome-migrations.js","sourceRoot":"","sources":["../../src/lib/biome-migrations.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"biome-migrations.js","sourceRoot":"","sources":["../../src/lib/biome-migrations.ts"],"names":[],"mappings":";;AAgDA,gDA+BC;AA/ED,6EAAwE;AAExE,2EAA4E;AAC5E,iEAGgC;AAChC,qEAA2F;AAkB3F,MAAM,kBAAkB,GAAG,4FAA4F,CAAC;AACxH,MAAM,oBAAoB,GAAG,0GAA0G,CAAC;AAsBjI,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAA,0CAAmB,EAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzC,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,IAAA,wEAA+C,EACnD,OAAO,CAAC,YAAY,EACpB,YAAY,CACb,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,+CAAqB,EAAE,CAAC,GAAG,CAAC;YACnD,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,GAAG,EAAE,EAAE;SACR,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,KAAK,6BAA6B,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,CACnF,CAAC;QACJ,CAAC;QACD,MAAM,IAAA,yDAA6B,EAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAA,8CAAuB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,CAAC;QAChB,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,QAAmC,EACnC,SAAkB;IAElB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,CACnC,oBAAoB,CACrB,CAAC;QACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACrB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,cAAc,CACtB,CAAC,SAAS,EAAE,WAAW,CAAC,EACxB,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { type DynamicModule, type Type } from '@nestjs/common';
|
|
2
|
-
|
|
3
|
-
export interface OrgErasureModuleOptions extends EraseOrgDataOptions {
|
|
2
|
+
export interface OrgErasureModuleOptions {
|
|
4
3
|
readonly prismaServiceToken: Type<unknown> | string | symbol;
|
|
5
4
|
}
|
|
6
5
|
export declare class OrgErasureModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-erasure.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"org-erasure.module.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AASvE,MAAM,WAAW,uBAAuB;IAKtC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;CAC9D;AAED,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;CAwBhE"}
|
|
@@ -3,23 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OrgErasureModule = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const org_erasure_nest_1 = require("@xemahq/org-erasure-nest");
|
|
6
|
-
const org_erasure_1 = require("../tenant-isolation/org-erasure");
|
|
7
|
-
const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
|
|
8
6
|
class OrgErasureModule {
|
|
9
7
|
static forRoot(options) {
|
|
10
|
-
const { prismaServiceToken, ...eraseOptions } = options;
|
|
11
8
|
return org_erasure_nest_1.OrgErasureEndpointModule.forRunner({
|
|
12
9
|
useFactory: (prisma) => {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
const { sweep, swept } = prisma.orgErasureCoverage;
|
|
11
|
+
if (sweep === undefined) {
|
|
12
|
+
throw new Error('[org-erasure] OrgErasureModule is mounted as an org-erasure ' +
|
|
13
|
+
'participant but the Prisma service declares no orgErasure.sweep.');
|
|
14
|
+
}
|
|
15
|
+
new common_1.Logger(OrgErasureModule.name).log(`org-erasure participant armed on "${sweep.orgField}" over ${swept.length} model(s): ${swept.join(', ')}`);
|
|
18
16
|
return {
|
|
19
|
-
erase: (orgId) =>
|
|
17
|
+
erase: (orgId) => prisma.eraseOrg(orgId),
|
|
20
18
|
};
|
|
21
19
|
},
|
|
22
|
-
inject: [prismaServiceToken],
|
|
20
|
+
inject: [options.prismaServiceToken],
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-erasure.module.js","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"org-erasure.module.js","sourceRoot":"","sources":["../../../src/lib/nest/org-erasure.module.ts"],"names":[],"mappings":";;;AAwBA,2CAAuE;AACvE,+DAIkC;AAYlC,MAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,OAAO,2CAAwB,CAAC,SAAS,CAAC;YACxC,UAAU,EAAE,CAAC,MAAqB,EAAoB,EAAE;gBACtD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC;gBAInD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CACb,8DAA8D;wBAC5D,kEAAkE,CACrE,CAAC;gBACJ,CAAC;gBACD,IAAI,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CACnC,qCAAqC,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1G,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,CAAC,KAAa,EAA6B,EAAE,CAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACzB,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;CACF;AAzBD,4CAyBC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { type OrgErasureApi } from '../org-erasure-coverage/resolve-org-erasure-api';
|
|
1
2
|
import { TenantIsolationMode } from '../tenant-isolation/tenant-isolation-mode';
|
|
2
3
|
import { type UnscopedModelDeclarations } from '../tenant-isolation/unscoped-models';
|
|
4
|
+
import type { OrgErasureCoverageOptions } from '../org-erasure-coverage/org-erasure-coverage-options';
|
|
3
5
|
import type { OnModuleDestroy, OnModuleInit, Type } from '@nestjs/common';
|
|
4
6
|
export type BiomePrismaClientCtor = new (...args: any[]) => BiomePrismaClient;
|
|
5
7
|
export interface BiomePrismaClient {
|
|
@@ -13,6 +15,7 @@ export interface TenantIsolationServiceOptions {
|
|
|
13
15
|
readonly unscopedModels?: UnscopedModelDeclarations;
|
|
14
16
|
}
|
|
15
17
|
export interface CreateBiomePrismaServiceOptions {
|
|
18
|
+
readonly orgErasure: OrgErasureCoverageOptions;
|
|
16
19
|
readonly loggerContext?: string;
|
|
17
20
|
readonly tenantIsolation?: TenantIsolationServiceOptions;
|
|
18
21
|
readonly dbKey?: string;
|
|
@@ -21,6 +24,9 @@ export interface TenantScopedApi<TClient> {
|
|
|
21
24
|
forOrg(orgId: string): TClient;
|
|
22
25
|
asSystem(): TClient;
|
|
23
26
|
}
|
|
24
|
-
export type BiomePrismaServiceInstance<TClient> = TClient & TenantScopedApi<TClient> & OnModuleInit & OnModuleDestroy;
|
|
25
|
-
export
|
|
27
|
+
export type BiomePrismaServiceInstance<TClient> = TClient & TenantScopedApi<TClient> & OrgErasureApi & OnModuleInit & OnModuleDestroy;
|
|
28
|
+
export type BiomePrismaServiceClass<TClient> = Type<BiomePrismaServiceInstance<TClient>> & {
|
|
29
|
+
readonly declaresOrgErasureSweep: boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare function createBiomePrismaService<TClientCtor extends BiomePrismaClientCtor>(PrismaClientCtor: TClientCtor, options: CreateBiomePrismaServiceOptions): BiomePrismaServiceClass<InstanceType<TClientCtor>>;
|
|
26
32
|
//# sourceMappingURL=prisma-service-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-service-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EAEpB,MAAM,2CAA2C,CAAC;AAQnD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAY1E,MAAM,MAAM,qBAAqB,GAAG,KAIlC,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,iBAAiB,CAAC;AAGvB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,6BAA6B;IAK5C,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAEpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IA0B1C,QAAQ,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;CACrD;AAGD,MAAM,WAAW,+BAA+B;
|
|
1
|
+
{"version":3,"file":"prisma-service-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EAEpB,MAAM,2CAA2C,CAAC;AAQnD,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACtG,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAY1E,MAAM,MAAM,qBAAqB,GAAG,KAIlC,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,iBAAiB,CAAC;AAGvB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,6BAA6B;IAK5C,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAEpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IA0B1C,QAAQ,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;CACrD;AAGD,MAAM,WAAW,+BAA+B;IAM9C,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAE/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAYzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,eAAe,CAAC,OAAO;IAOtC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAM/B,QAAQ,IAAI,OAAO,CAAC;CACrB;AAGD,MAAM,MAAM,0BAA0B,CAAC,OAAO,IAAI,OAAO,GACvD,eAAe,CAAC,OAAO,CAAC,GACxB,aAAa,GACb,YAAY,GACZ,eAAe,CAAC;AAGlB,MAAM,MAAM,uBAAuB,CAAC,OAAO,IAAI,IAAI,CACjD,0BAA0B,CAAC,OAAO,CAAC,CACpC,GAAG;IAEF,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C,CAAC;AAqEF,wBAAgB,wBAAwB,CACtC,WAAW,SAAS,qBAAqB,EAEzC,gBAAgB,EAAE,WAAW,EAC7B,OAAO,EAAE,+BAA+B,GACvC,uBAAuB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAwMpD"}
|
|
@@ -13,6 +13,7 @@ exports.createBiomePrismaService = createBiomePrismaService;
|
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const platform_common_1 = require("@xemahq/platform-common");
|
|
15
15
|
const adapter_1 = require("../adapter");
|
|
16
|
+
const resolve_org_erasure_api_1 = require("../org-erasure-coverage/resolve-org-erasure-api");
|
|
16
17
|
const tenant_isolation_mode_1 = require("../tenant-isolation/tenant-isolation-mode");
|
|
17
18
|
const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
|
|
18
19
|
const unscoped_models_1 = require("../tenant-isolation/unscoped-models");
|
|
@@ -21,26 +22,23 @@ function lowerFirst(name) {
|
|
|
21
22
|
? name
|
|
22
23
|
: name.charAt(0).toLowerCase() + name.slice(1);
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
-
if (
|
|
26
|
-
|
|
25
|
+
function createBiomePrismaService(PrismaClientCtor, options) {
|
|
26
|
+
if (options.orgErasure ===
|
|
27
|
+
undefined) {
|
|
28
|
+
throw new Error('[org-erasure] createBiomePrismaService requires an `orgErasure` option ' +
|
|
29
|
+
'(the generated graph, the optional sweep and the declarations).');
|
|
27
30
|
}
|
|
28
|
-
if (typeof optionsOrLoggerContext === 'string') {
|
|
29
|
-
return { loggerContext: optionsOrLoggerContext };
|
|
30
|
-
}
|
|
31
|
-
return optionsOrLoggerContext;
|
|
32
|
-
}
|
|
33
|
-
function createBiomePrismaService(PrismaClientCtor, optionsOrLoggerContext) {
|
|
34
|
-
const options = normalizeOptions(optionsOrLoggerContext);
|
|
35
31
|
const loggerContext = options.loggerContext ?? 'PrismaService';
|
|
36
32
|
const tenantOptions = options.tenantIsolation ?? {};
|
|
37
33
|
const orgField = tenantOptions.orgField ?? tenant_isolation_extension_1.DEFAULT_ORG_FIELD;
|
|
38
34
|
const exemptModels = tenantOptions.exemptModels ?? [];
|
|
39
35
|
const unscopedModels = tenantOptions.unscopedModels ?? {};
|
|
40
36
|
let BiomePrismaService = class BiomePrismaService extends PrismaClientCtor {
|
|
37
|
+
static declaresOrgErasureSweep = options.orgErasure.sweep !== undefined;
|
|
41
38
|
biomePrismaLogger = new common_1.Logger(loggerContext);
|
|
42
39
|
constructor() {
|
|
43
40
|
super({ adapter: (0, adapter_1.resolveBiomePrismaAdapter)(options.dbKey) });
|
|
41
|
+
const orgErasureApi = (0, resolve_org_erasure_api_1.resolveOrgErasureApi)(this, options.orgErasure, new common_1.Logger(`${loggerContext}:org-erasure`));
|
|
44
42
|
const mode = (0, tenant_isolation_mode_1.resolveTenantIsolationMode)(tenantOptions.mode);
|
|
45
43
|
const raw = this;
|
|
46
44
|
const tenantLogger = new common_1.Logger(`${loggerContext}:tenant-isolation`);
|
|
@@ -90,14 +88,17 @@ function createBiomePrismaService(PrismaClientCtor, optionsOrLoggerContext) {
|
|
|
90
88
|
}
|
|
91
89
|
return raw;
|
|
92
90
|
};
|
|
91
|
+
const explicitApi = new Map([
|
|
92
|
+
['forOrg', forOrg],
|
|
93
|
+
['asSystem', asSystem],
|
|
94
|
+
['orgErasureCoverage', orgErasureApi.orgErasureCoverage],
|
|
95
|
+
['eraseOrg', orgErasureApi.eraseOrg],
|
|
96
|
+
]);
|
|
93
97
|
if (mode === tenant_isolation_mode_1.TenantIsolationMode.Off) {
|
|
94
98
|
return new Proxy(raw, {
|
|
95
99
|
get(target, prop, _receiver) {
|
|
96
|
-
if (prop
|
|
97
|
-
return
|
|
98
|
-
}
|
|
99
|
-
if (prop === 'asSystem') {
|
|
100
|
-
return asSystem;
|
|
100
|
+
if (explicitApi.has(prop)) {
|
|
101
|
+
return explicitApi.get(prop);
|
|
101
102
|
}
|
|
102
103
|
const value = Reflect.get(target, prop, target);
|
|
103
104
|
return typeof value === 'function' ? value.bind(target) : value;
|
|
@@ -117,11 +118,8 @@ function createBiomePrismaService(PrismaClientCtor, optionsOrLoggerContext) {
|
|
|
117
118
|
}
|
|
118
119
|
return new Proxy(raw, {
|
|
119
120
|
get(target, prop, _receiver) {
|
|
120
|
-
if (prop
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
if (prop === 'asSystem') {
|
|
124
|
-
return asSystem;
|
|
121
|
+
if (explicitApi.has(prop)) {
|
|
122
|
+
return explicitApi.get(prop);
|
|
125
123
|
}
|
|
126
124
|
if (typeof prop === 'string' && routedProps.has(prop)) {
|
|
127
125
|
const value = ambientClient[prop];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-service-factory.js","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"prisma-service-factory.js","sourceRoot":"","sources":["../../../src/lib/nest/prisma-service-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OrgErasureDmmfModel } from './org-erasure-dmmf';
|
|
2
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
3
|
+
export declare function buildOrgErasureGraph(models: readonly OrgErasureDmmfModel[]): OrgErasureGraph;
|
|
4
|
+
//# sourceMappingURL=build-org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/build-org-erasure-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,qBAAqB,CAAC;AA6C7B,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GACrC,eAAe,CAKjB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildOrgErasureGraph = buildOrgErasureGraph;
|
|
4
|
+
const OBJECT_FIELD_KIND = 'object';
|
|
5
|
+
const CASCADE_ON_DELETE = 'Cascade';
|
|
6
|
+
function compareStrings(a, b) {
|
|
7
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
8
|
+
}
|
|
9
|
+
function isProvenCascade(field, scalarsByName) {
|
|
10
|
+
if (field.kind !== OBJECT_FIELD_KIND || field.isList) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const fkNames = field.relationFromFields ?? [];
|
|
14
|
+
if (fkNames.length === 0 || field.relationOnDelete !== CASCADE_ON_DELETE) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return fkNames.every((name) => scalarsByName.get(name)?.isRequired === true);
|
|
18
|
+
}
|
|
19
|
+
function buildModel(model) {
|
|
20
|
+
const byName = new Map(model.fields.map((f) => [f.name, f]));
|
|
21
|
+
const cascadeParents = model.fields
|
|
22
|
+
.filter((field) => isProvenCascade(field, byName))
|
|
23
|
+
.map((field) => ({ relationField: field.name, parentModel: field.type }))
|
|
24
|
+
.sort((a, b) => compareStrings(a.relationField, b.relationField) ||
|
|
25
|
+
compareStrings(a.parentModel, b.parentModel));
|
|
26
|
+
return {
|
|
27
|
+
fields: model.fields.map((f) => f.name).sort(compareStrings),
|
|
28
|
+
cascadeParents,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function buildOrgErasureGraph(models) {
|
|
32
|
+
const sorted = [...models].sort((a, b) => compareStrings(a.name, b.name));
|
|
33
|
+
return {
|
|
34
|
+
models: Object.fromEntries(sorted.map((m) => [m.name, buildModel(m)])),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=build-org-erasure-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/build-org-erasure-graph.ts"],"names":[],"mappings":";;AAqDA,oDAOC;AAlDD,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACnC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAOD,SAAS,eAAe,CACtB,KAA0B,EAC1B,aAAuD;IAEvD,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,KAAK,iBAAiB,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,UAAU,CAAC,KAA0B;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,cAAc,GAA4B,KAAK,CAAC,MAAM;SACzD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SACxE,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC;QAChD,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAC/C,CAAC;IACJ,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC5D,cAAc;KACf,CAAC;AACJ,CAAC;AAGD,SAAgB,oBAAoB,CAClC,MAAsC;IAEtC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OrgErasureGraph } from './org-erasure-graph';
|
|
2
|
+
import type { RuntimeDataModelModel } from '../tenant-isolation/tenant-isolation.extension';
|
|
3
|
+
export declare function assertOrgErasureGraphMatchesRuntime(graph: OrgErasureGraph, runtime: Readonly<Record<string, RuntimeDataModelModel>>): void;
|
|
4
|
+
//# sourceMappingURL=check-org-erasure-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-org-erasure-graph.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/check-org-erasure-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAW5F,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GACvD,IAAI,CA2CN"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertOrgErasureGraphMatchesRuntime = assertOrgErasureGraphMatchesRuntime;
|
|
4
|
+
const org_erasure_coverage_errors_1 = require("./org-erasure-coverage-errors");
|
|
5
|
+
function sameSet(a, b) {
|
|
6
|
+
return a.length === b.length && a.every((name) => b.includes(name));
|
|
7
|
+
}
|
|
8
|
+
function assertOrgErasureGraphMatchesRuntime(graph, runtime) {
|
|
9
|
+
const problems = [];
|
|
10
|
+
const graphNames = Object.keys(graph.models);
|
|
11
|
+
const runtimeNames = Object.keys(runtime);
|
|
12
|
+
const missing = runtimeNames.filter((n) => !(n in graph.models)).sort();
|
|
13
|
+
const extra = graphNames.filter((n) => !(n in runtime)).sort();
|
|
14
|
+
if (missing.length > 0) {
|
|
15
|
+
problems.push(`models missing from the graph: ${missing.join(', ')}`);
|
|
16
|
+
}
|
|
17
|
+
if (extra.length > 0) {
|
|
18
|
+
problems.push(`graph models absent from the client: ${extra.join(', ')}`);
|
|
19
|
+
}
|
|
20
|
+
for (const name of graphNames.filter((n) => n in runtime).sort()) {
|
|
21
|
+
const graphModel = graph.models[name];
|
|
22
|
+
const runtimeFields = runtime[name].fields;
|
|
23
|
+
if (!sameSet(graphModel.fields, runtimeFields.map((f) => f.name))) {
|
|
24
|
+
problems.push(`model ${name}: field names differ from the client`);
|
|
25
|
+
}
|
|
26
|
+
for (const edge of graphModel.cascadeParents) {
|
|
27
|
+
const field = runtimeFields.find((f) => f.name === edge.relationField);
|
|
28
|
+
if (field?.kind !== 'object' || field.type !== edge.parentModel) {
|
|
29
|
+
problems.push(`model ${name}: edge ${edge.relationField} -> ${edge.parentModel} is not a relation to that model in the client`);
|
|
30
|
+
}
|
|
31
|
+
if (!(edge.parentModel in graph.models)) {
|
|
32
|
+
problems.push(`model ${name}: edge ${edge.relationField} names unknown parent ${edge.parentModel}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (problems.length > 0) {
|
|
37
|
+
throw new org_erasure_coverage_errors_1.OrgErasureGraphMismatchError(problems);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=check-org-erasure-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-org-erasure-graph.js","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/check-org-erasure-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type RuntimeDataModelModel } from '../tenant-isolation/tenant-isolation.extension';
|
|
2
|
+
import type { OrgErasureCoverage } from './org-erasure-coverage';
|
|
3
|
+
import type { OrgErasureCoverageOptions } from './org-erasure-coverage-options';
|
|
4
|
+
export declare function classifyOrgErasureCoverage(runtime: Readonly<Record<string, RuntimeDataModelModel>>, options: OrgErasureCoverageOptions): OrgErasureCoverage;
|
|
5
|
+
//# sourceMappingURL=classify-org-erasure-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-org-erasure-coverage.d.ts","sourceRoot":"","sources":["../../../src/lib/org-erasure-coverage/classify-org-erasure-coverage.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAwChF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EACxD,OAAO,EAAE,yBAAyB,GACjC,kBAAkB,CAmFpB"}
|