@xemahq/biome-database-nest 0.23.0 → 0.25.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 +4 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/adapter.d.ts +1 -0
- package/dist/lib/adapter.d.ts.map +1 -1
- package/dist/lib/adapter.js +12 -0
- package/dist/lib/adapter.js.map +1 -1
- package/dist/lib/bootstrap.d.ts +1 -1
- package/dist/lib/bootstrap.d.ts.map +1 -1
- package/dist/lib/bootstrap.js +10 -12
- package/dist/lib/bootstrap.js.map +1 -1
- package/dist/lib/control-plane-discovery.d.ts +1 -1
- package/dist/lib/control-plane-discovery.d.ts.map +1 -1
- package/dist/lib/expiring-lease.d.ts +30 -0
- package/dist/lib/expiring-lease.d.ts.map +1 -0
- package/dist/lib/expiring-lease.js +89 -0
- package/dist/lib/expiring-lease.js.map +1 -0
- package/dist/lib/nest/org-erasure.module.d.ts +1 -12
- package/dist/lib/nest/org-erasure.module.d.ts.map +1 -1
- package/dist/lib/nest/org-erasure.module.js +15 -68
- package/dist/lib/nest/org-erasure.module.js.map +1 -1
- package/dist/lib/nest/prisma-service-factory.d.ts +1 -0
- package/dist/lib/nest/prisma-service-factory.d.ts.map +1 -1
- package/dist/lib/nest/prisma-service-factory.js +1 -1
- package/dist/lib/nest/prisma-service-factory.js.map +1 -1
- package/dist/lib/resolved-connection.d.ts +9 -0
- package/dist/lib/resolved-connection.d.ts.map +1 -0
- package/dist/lib/resolved-connection.js +31 -0
- package/dist/lib/resolved-connection.js.map +1 -0
- package/dist/lib/role-names.d.ts +4 -2
- package/dist/lib/role-names.d.ts.map +1 -1
- package/dist/lib/role-names.js +4 -1
- package/dist/lib/role-names.js.map +1 -1
- package/dist/lib/tenant-isolation/org-erasure.d.ts +1 -6
- package/dist/lib/tenant-isolation/org-erasure.d.ts.map +1 -1
- package/dist/lib/tenant-isolation/org-erasure.js.map +1 -1
- package/package.json +12 -11
- package/dist/lib/nest/org-protection.d.ts +0 -33
- package/dist/lib/nest/org-protection.d.ts.map +0 -1
- package/dist/lib/nest/org-protection.js +0 -189
- package/dist/lib/nest/org-protection.js.map +0 -1
package/README.md
CHANGED
|
@@ -40,6 +40,10 @@ cutovers that require an operator between expansion and contraction.
|
|
|
40
40
|
verified backfill instead of running automatically at application startup.
|
|
41
41
|
- Wrap the complete operator command with `withOperatorMigrationLock` so apply,
|
|
42
42
|
verification, and contraction cannot overlap across replicas.
|
|
43
|
+
- Use `ExpiringLeaseStore` to elect one replica for a recurring sweep whose work
|
|
44
|
+
makes network calls. It coordinates through a lease row with an expiry rather
|
|
45
|
+
than a session advisory lock, so nothing depends on which pooled connection
|
|
46
|
+
served a call and no transaction is held open across the work.
|
|
43
47
|
|
|
44
48
|
## Installation
|
|
45
49
|
|
package/dist/index.d.ts
CHANGED
|
@@ -2,13 +2,15 @@ export { DEFAULT_BIOME_DB_KEY, deriveBiomeSchemaName } from './lib/schema-name';
|
|
|
2
2
|
export { composeIdentifier, fitIdentifier, IDENTIFIER_HASH_LENGTH, POSTGRES_MAX_IDENTIFIER_LENGTH, sanitizeIdentifierChars, sanitizeIdentifierSegment, type ComposeIdentifierInput, type FitIdentifierInput, } from './lib/identifier';
|
|
3
3
|
export { rolesForSchema, schemaRoleBase, schemaRoleName, SchemaRoleKind, SCHEMA_ROLE_BASE_MAX_LENGTH, SCHEMA_ROLE_SUFFIX_LENGTH, type SchemaRoleNames, } from './lib/role-names';
|
|
4
4
|
export { resolveBiomeDatabaseConfigFromEnv, type BiomeDatabaseConfig, } from './lib/config';
|
|
5
|
-
export { createBiomePrismaAdapter, createBiomePrismaAdapterFromEnv, } from './lib/adapter';
|
|
5
|
+
export { createBiomePrismaAdapter, createBiomePrismaAdapterFromEnv, resolveBiomePrismaAdapter, } from './lib/adapter';
|
|
6
|
+
export { clearResolvedBiomeConnections, publishResolvedBiomeConnection, readResolvedBiomeConnection, type ResolvedBiomeConnection, } from './lib/resolved-connection';
|
|
6
7
|
export { fetchSystemDatabaseConfig, type SystemDatabaseConfigRequest, } from './lib/control-plane-client';
|
|
7
8
|
export { resolveControlPlaneBaseUrl, ORG_DATABASE_POOL_SERVICE_NAME, type ControlPlaneDiscoveryOptions, } from './lib/control-plane-discovery';
|
|
8
9
|
export { bootstrapBiomeDatabases, type BiomeDatabaseDeclaration, type BiomeDatabasePreMigrationCheck, type BiomeDatabasePreMigrationContext, type BootstrapBiomeDatabasesOptions, } from './lib/bootstrap';
|
|
9
10
|
export type { PrismaMigrationHistoryPolicy } from './lib/migration-history';
|
|
10
11
|
export { BiomeDatabaseMigrationMode } from './lib/migration-mode';
|
|
11
12
|
export { contractOperatorMigration, openOperatorMigrationClient, OperatorMigrationMode, OperatorMigrationPhase, parseOperatorMigrationMode, runOperatorMigration, verifyOperatorMigration, withOperatorMigrationLock, type ContractOperatorMigrationOptions, type OpenOperatorMigrationClientOptions, type OperatorMigrationDatabase, type RunOperatorMigrationOptions, type VerifyOperatorMigrationOptions, type WithOperatorMigrationLockOptions, } from './lib/operator-migration';
|
|
13
|
+
export { defaultLeaseHolderId, ExpiringLeaseStore, type ExpiringLeaseClient, type ExpiringLeaseLogger, type ExpiringLeaseOutcome, type ExpiringLeaseStoreOptions, } from './lib/expiring-lease';
|
|
12
14
|
export { BiomeDatabaseModule, BIOME_DATABASE_READY, type ApplicationManagedBiomeDatabaseModuleOptions, type BiomeDatabaseModuleOptions, } from './lib/nest/biome-database.module';
|
|
13
15
|
export { runBiomeDatabasePreflight, type RunBiomeDatabasePreflightOptions, } from './lib/nest/database-preflight';
|
|
14
16
|
export { createBiomePrismaService, type BiomePrismaClient, type BiomePrismaClientCtor, type BiomePrismaServiceInstance, type CreateBiomePrismaServiceOptions, type TenantIsolationServiceOptions, type TenantScopedApi, } from './lib/nest/prisma-service-factory';
|
|
@@ -17,8 +19,8 @@ export { TenantIsolationError, TenantIsolationViolationKind, formatTenantIsolati
|
|
|
17
19
|
export { PrismaModelOperation, scopeArgsToOrg, type OrgScopeOutcome, type OrgScopeRequest, } from './lib/tenant-isolation/org-scope';
|
|
18
20
|
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';
|
|
19
21
|
export { assertUnscopedModelsDeclared, collectUnscopableModels, formatUnscopedModelReport, normalizeUnscopedModelDeclarations, UndeclaredUnscopedModelsError, type AssertUnscopedModelsOptions, type NormalizedUnscopedModelDeclaration, type UnscopedModelDeclaration, type UnscopedModelDeclarations, } from './lib/tenant-isolation/unscoped-models';
|
|
20
|
-
export { assertOrgErasureMatchesModels, eraseOrgData, OrgErasureBlockedError, OrgErasureMatchesNothingError, type EraseOrgDataOptions,
|
|
22
|
+
export { assertOrgErasureMatchesModels, eraseOrgData, OrgErasureBlockedError, OrgErasureMatchesNothingError, type EraseOrgDataOptions, } from './lib/tenant-isolation/org-erasure';
|
|
21
23
|
export { eraseOwnedAuthoredResourceGraph, type AuthoredResourceGraphErasureClient, type AuthoredResourceGraphNames, } from './lib/tenant-isolation/authored-resource-org-erasure';
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
+
export { OrgErasureModule, type OrgErasureModuleOptions, } from './lib/nest/org-erasure.module';
|
|
25
|
+
export { assertOrgNotProtected, IdentityOrgProtectionProbe, IDENTITY_SERVICE_NAME, ORG_DATA_ERASURE_CAPABILITY, ORG_ERASURE_ROUTE_PATH, ORG_ERASURE_RUNNER, ORGANIZATION_PROTECTED_ERROR_CODE, OrgErasureController, OrgProtectionGuard, OrgProtectionUnavailableError, ProtectedOrgErasureRefusedError, type OrgErasureReport, type OrgErasureRunner, type OrgProtectionProbe, } from '@xemahq/org-erasure-nest';
|
|
24
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iCAAiC,EACjC,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,wBAAwB,EACxB,+BAA+B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
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 = exports.BIOME_DATABASE_READY = exports.BiomeDatabaseModule = exports.ExpiringLeaseStore = exports.defaultLeaseHolderId = 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.fetchSystemDatabaseConfig = exports.readResolvedBiomeConnection = exports.publishResolvedBiomeConnection = exports.clearResolvedBiomeConnections = exports.resolveBiomePrismaAdapter = exports.createBiomePrismaAdapterFromEnv = exports.createBiomePrismaAdapter = 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.deriveBiomeSchemaName = exports.DEFAULT_BIOME_DB_KEY = void 0;
|
|
4
|
+
exports.ProtectedOrgErasureRefusedError = exports.OrgProtectionUnavailableError = exports.OrgProtectionGuard = exports.OrgErasureController = exports.ORGANIZATION_PROTECTED_ERROR_CODE = exports.ORG_ERASURE_RUNNER = exports.ORG_ERASURE_ROUTE_PATH = exports.ORG_DATA_ERASURE_CAPABILITY = exports.IDENTITY_SERVICE_NAME = exports.IdentityOrgProtectionProbe = exports.assertOrgNotProtected = exports.OrgErasureModule = exports.eraseOwnedAuthoredResourceGraph = exports.OrgErasureMatchesNothingError = exports.OrgErasureBlockedError = exports.eraseOrgData = exports.assertOrgErasureMatchesModels = exports.UndeclaredUnscopedModelsError = exports.normalizeUnscopedModelDeclarations = exports.formatUnscopedModelReport = exports.collectUnscopableModels = exports.assertUnscopedModelsDeclared = exports.readRuntimeModels = exports.createTenantIsolationExtension = void 0;
|
|
5
5
|
var schema_name_1 = require("./lib/schema-name");
|
|
6
6
|
Object.defineProperty(exports, "DEFAULT_BIOME_DB_KEY", { enumerable: true, get: function () { return schema_name_1.DEFAULT_BIOME_DB_KEY; } });
|
|
7
7
|
Object.defineProperty(exports, "deriveBiomeSchemaName", { enumerable: true, get: function () { return schema_name_1.deriveBiomeSchemaName; } });
|
|
@@ -24,6 +24,11 @@ Object.defineProperty(exports, "resolveBiomeDatabaseConfigFromEnv", { enumerable
|
|
|
24
24
|
var adapter_1 = require("./lib/adapter");
|
|
25
25
|
Object.defineProperty(exports, "createBiomePrismaAdapter", { enumerable: true, get: function () { return adapter_1.createBiomePrismaAdapter; } });
|
|
26
26
|
Object.defineProperty(exports, "createBiomePrismaAdapterFromEnv", { enumerable: true, get: function () { return adapter_1.createBiomePrismaAdapterFromEnv; } });
|
|
27
|
+
Object.defineProperty(exports, "resolveBiomePrismaAdapter", { enumerable: true, get: function () { return adapter_1.resolveBiomePrismaAdapter; } });
|
|
28
|
+
var resolved_connection_1 = require("./lib/resolved-connection");
|
|
29
|
+
Object.defineProperty(exports, "clearResolvedBiomeConnections", { enumerable: true, get: function () { return resolved_connection_1.clearResolvedBiomeConnections; } });
|
|
30
|
+
Object.defineProperty(exports, "publishResolvedBiomeConnection", { enumerable: true, get: function () { return resolved_connection_1.publishResolvedBiomeConnection; } });
|
|
31
|
+
Object.defineProperty(exports, "readResolvedBiomeConnection", { enumerable: true, get: function () { return resolved_connection_1.readResolvedBiomeConnection; } });
|
|
27
32
|
var control_plane_client_1 = require("./lib/control-plane-client");
|
|
28
33
|
Object.defineProperty(exports, "fetchSystemDatabaseConfig", { enumerable: true, get: function () { return control_plane_client_1.fetchSystemDatabaseConfig; } });
|
|
29
34
|
var control_plane_discovery_1 = require("./lib/control-plane-discovery");
|
|
@@ -42,6 +47,9 @@ Object.defineProperty(exports, "parseOperatorMigrationMode", { enumerable: true,
|
|
|
42
47
|
Object.defineProperty(exports, "runOperatorMigration", { enumerable: true, get: function () { return operator_migration_1.runOperatorMigration; } });
|
|
43
48
|
Object.defineProperty(exports, "verifyOperatorMigration", { enumerable: true, get: function () { return operator_migration_1.verifyOperatorMigration; } });
|
|
44
49
|
Object.defineProperty(exports, "withOperatorMigrationLock", { enumerable: true, get: function () { return operator_migration_1.withOperatorMigrationLock; } });
|
|
50
|
+
var expiring_lease_1 = require("./lib/expiring-lease");
|
|
51
|
+
Object.defineProperty(exports, "defaultLeaseHolderId", { enumerable: true, get: function () { return expiring_lease_1.defaultLeaseHolderId; } });
|
|
52
|
+
Object.defineProperty(exports, "ExpiringLeaseStore", { enumerable: true, get: function () { return expiring_lease_1.ExpiringLeaseStore; } });
|
|
45
53
|
var biome_database_module_1 = require("./lib/nest/biome-database.module");
|
|
46
54
|
Object.defineProperty(exports, "BiomeDatabaseModule", { enumerable: true, get: function () { return biome_database_module_1.BiomeDatabaseModule; } });
|
|
47
55
|
Object.defineProperty(exports, "BIOME_DATABASE_READY", { enumerable: true, get: function () { return biome_database_module_1.BIOME_DATABASE_READY; } });
|
|
@@ -78,18 +86,18 @@ Object.defineProperty(exports, "OrgErasureBlockedError", { enumerable: true, get
|
|
|
78
86
|
Object.defineProperty(exports, "OrgErasureMatchesNothingError", { enumerable: true, get: function () { return org_erasure_1.OrgErasureMatchesNothingError; } });
|
|
79
87
|
var authored_resource_org_erasure_1 = require("./lib/tenant-isolation/authored-resource-org-erasure");
|
|
80
88
|
Object.defineProperty(exports, "eraseOwnedAuthoredResourceGraph", { enumerable: true, get: function () { return authored_resource_org_erasure_1.eraseOwnedAuthoredResourceGraph; } });
|
|
81
|
-
var org_protection_1 = require("./lib/nest/org-protection");
|
|
82
|
-
Object.defineProperty(exports, "assertOrgNotProtected", { enumerable: true, get: function () { return org_protection_1.assertOrgNotProtected; } });
|
|
83
|
-
Object.defineProperty(exports, "IdentityOrgProtectionProbe", { enumerable: true, get: function () { return org_protection_1.IdentityOrgProtectionProbe; } });
|
|
84
|
-
Object.defineProperty(exports, "OrgProtectionGuard", { enumerable: true, get: function () { return org_protection_1.OrgProtectionGuard; } });
|
|
85
|
-
Object.defineProperty(exports, "OrgProtectionUnavailableError", { enumerable: true, get: function () { return org_protection_1.OrgProtectionUnavailableError; } });
|
|
86
|
-
Object.defineProperty(exports, "ProtectedOrgErasureRefusedError", { enumerable: true, get: function () { return org_protection_1.ProtectedOrgErasureRefusedError; } });
|
|
87
|
-
Object.defineProperty(exports, "IDENTITY_SERVICE_NAME", { enumerable: true, get: function () { return org_protection_1.IDENTITY_SERVICE_NAME; } });
|
|
88
|
-
Object.defineProperty(exports, "ORGANIZATION_PROTECTED_ERROR_CODE", { enumerable: true, get: function () { return org_protection_1.ORGANIZATION_PROTECTED_ERROR_CODE; } });
|
|
89
89
|
var org_erasure_module_1 = require("./lib/nest/org-erasure.module");
|
|
90
90
|
Object.defineProperty(exports, "OrgErasureModule", { enumerable: true, get: function () { return org_erasure_module_1.OrgErasureModule; } });
|
|
91
|
-
|
|
92
|
-
Object.defineProperty(exports, "
|
|
93
|
-
Object.defineProperty(exports, "
|
|
94
|
-
Object.defineProperty(exports, "
|
|
91
|
+
var org_erasure_nest_1 = require("@xemahq/org-erasure-nest");
|
|
92
|
+
Object.defineProperty(exports, "assertOrgNotProtected", { enumerable: true, get: function () { return org_erasure_nest_1.assertOrgNotProtected; } });
|
|
93
|
+
Object.defineProperty(exports, "IdentityOrgProtectionProbe", { enumerable: true, get: function () { return org_erasure_nest_1.IdentityOrgProtectionProbe; } });
|
|
94
|
+
Object.defineProperty(exports, "IDENTITY_SERVICE_NAME", { enumerable: true, get: function () { return org_erasure_nest_1.IDENTITY_SERVICE_NAME; } });
|
|
95
|
+
Object.defineProperty(exports, "ORG_DATA_ERASURE_CAPABILITY", { enumerable: true, get: function () { return org_erasure_nest_1.ORG_DATA_ERASURE_CAPABILITY; } });
|
|
96
|
+
Object.defineProperty(exports, "ORG_ERASURE_ROUTE_PATH", { enumerable: true, get: function () { return org_erasure_nest_1.ORG_ERASURE_ROUTE_PATH; } });
|
|
97
|
+
Object.defineProperty(exports, "ORG_ERASURE_RUNNER", { enumerable: true, get: function () { return org_erasure_nest_1.ORG_ERASURE_RUNNER; } });
|
|
98
|
+
Object.defineProperty(exports, "ORGANIZATION_PROTECTED_ERROR_CODE", { enumerable: true, get: function () { return org_erasure_nest_1.ORGANIZATION_PROTECTED_ERROR_CODE; } });
|
|
99
|
+
Object.defineProperty(exports, "OrgErasureController", { enumerable: true, get: function () { return org_erasure_nest_1.OrgErasureController; } });
|
|
100
|
+
Object.defineProperty(exports, "OrgProtectionGuard", { enumerable: true, get: function () { return org_erasure_nest_1.OrgProtectionGuard; } });
|
|
101
|
+
Object.defineProperty(exports, "OrgProtectionUnavailableError", { enumerable: true, get: function () { return org_erasure_nest_1.OrgProtectionUnavailableError; } });
|
|
102
|
+
Object.defineProperty(exports, "ProtectedOrgErasureRefusedError", { enumerable: true, get: function () { return org_erasure_nest_1.ProtectedOrgErasureRefusedError; } });
|
|
95
103
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAgF;AAAvE,mHAAA,oBAAoB,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AACpD,+CAS0B;AARxB,+GAAA,iBAAiB,OAAA;AACjB,2GAAA,aAAa,OAAA;AACb,oHAAA,sBAAsB,OAAA;AACtB,4HAAA,8BAA8B,OAAA;AAC9B,qHAAA,uBAAuB,OAAA;AACvB,uHAAA,yBAAyB,OAAA;AAI3B,+CAQ0B;AAPxB,4GAAA,cAAc,OAAA;AACd,4GAAA,cAAc,OAAA;AACd,4GAAA,cAAc,OAAA;AACd,4GAAA,cAAc,OAAA;AACd,yHAAA,2BAA2B,OAAA;AAC3B,uHAAA,yBAAyB,OAAA;AAG3B,uCAGsB;AAFpB,2HAAA,iCAAiC,OAAA;AAGnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/adapter.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PrismaPg } from '@prisma/adapter-pg';
|
|
2
2
|
import type { BiomeDatabaseConfig } from './config';
|
|
3
3
|
export declare function createBiomePrismaAdapter(config: BiomeDatabaseConfig): PrismaPg;
|
|
4
|
+
export declare function resolveBiomePrismaAdapter(dbKey?: string, env?: NodeJS.ProcessEnv): PrismaPg;
|
|
4
5
|
export declare function createBiomePrismaAdapterFromEnv(env?: NodeJS.ProcessEnv, dbKey?: string): PrismaPg;
|
|
5
6
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAS9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AA+EpD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,GAC1B,QAAQ,CAMV;AAsBD,wBAAgB,yBAAyB,CACvC,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,QAAQ,CAYV;AAmBD,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,KAAK,CAAC,EAAE,MAAM,GACb,QAAQ,CA8BV"}
|
package/dist/lib/adapter.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createBiomePrismaAdapter = createBiomePrismaAdapter;
|
|
4
|
+
exports.resolveBiomePrismaAdapter = resolveBiomePrismaAdapter;
|
|
4
5
|
exports.createBiomePrismaAdapterFromEnv = createBiomePrismaAdapterFromEnv;
|
|
5
6
|
const adapter_pg_1 = require("@prisma/adapter-pg");
|
|
6
7
|
const platform_common_1 = require("@xemahq/platform-common");
|
|
7
8
|
const config_1 = require("./config");
|
|
9
|
+
const resolved_connection_1 = require("./resolved-connection");
|
|
8
10
|
const DEFAULT_POOL_MAX = 3;
|
|
9
11
|
const POOL_MIN = 0;
|
|
10
12
|
const POOL_IDLE_TIMEOUT_MS = 30_000;
|
|
@@ -36,6 +38,16 @@ function createBiomePrismaAdapter(config) {
|
|
|
36
38
|
const connectionString = buildBiomeConnectionString(config);
|
|
37
39
|
return new adapter_pg_1.PrismaPg(poolOptions(connectionString, config.poolMax ?? DEFAULT_POOL_MAX), config.schema !== undefined ? { schema: config.schema } : undefined);
|
|
38
40
|
}
|
|
41
|
+
function resolveBiomePrismaAdapter(dbKey, env = process.env) {
|
|
42
|
+
const resolved = (0, resolved_connection_1.readResolvedBiomeConnection)(dbKey);
|
|
43
|
+
if (resolved === undefined) {
|
|
44
|
+
return createBiomePrismaAdapterFromEnv(env, dbKey);
|
|
45
|
+
}
|
|
46
|
+
const connectionString = (0, platform_common_1.ensureBiomeDbSearchPath)(resolved.url);
|
|
47
|
+
return new adapter_pg_1.PrismaPg(poolOptions(connectionString, resolved.poolMax ?? DEFAULT_POOL_MAX), resolved.schema !== undefined && resolved.schema !== ''
|
|
48
|
+
? { schema: resolved.schema }
|
|
49
|
+
: undefined);
|
|
50
|
+
}
|
|
39
51
|
function createBiomePrismaAdapterFromEnv(env = process.env, dbKey) {
|
|
40
52
|
const isDefault = dbKey === undefined || dbKey === '' || dbKey === 'primary';
|
|
41
53
|
const upperSuffix = isDefault
|
package/dist/lib/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bootstrap.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type QueryResultRow } from 'pg';
|
|
|
2
2
|
import { type ControlPlaneDiscoveryOptions } from './control-plane-discovery';
|
|
3
3
|
import { type PrismaMigrationHistoryPolicy } from './migration-history';
|
|
4
4
|
import type { BiomeDatabaseMigrationMode } from './migration-mode';
|
|
5
|
-
import type { KernelState } from '@xemahq/
|
|
5
|
+
import type { KernelState } from '@xemahq/contracts/kernel-state';
|
|
6
6
|
export interface BiomeDatabasePreMigrationContext {
|
|
7
7
|
readonly biomeId: string;
|
|
8
8
|
readonly key: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":"AAYA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,IAAI,CAAC;AAIjD,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":"AAYA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,IAAI,CAAC;AAIjD,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AASlE,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,IAAI,SAAS,cAAc,GAAG,cAAc,EAChD,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;CAC7B;AAED,MAAM,MAAM,8BAA8B,GAAG,CAC3C,OAAO,EAAE,gCAAgC,KACtC,OAAO,CAAC,IAAI,CAAC,CAAC;AAGnB,MAAM,WAAW,wBAAwB;IAEvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAO9B,QAAQ,CAAC,aAAa,CAAC,EAAE,4BAA4B,CAAC;IAWtD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC;CAC7D;AAGD,UAAU,oCAAoC;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAMzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAOzD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,4BAA4B,CAAC;CAC/D;AAED,MAAM,WAAW,kCACf,SAAQ,oCAAoC;IAC5C,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC,kBAAkB,CAAC;IACtE,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAWxD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAGD,MAAM,MAAM,8BAA8B,GACxC,kCAAkC,CAAC;AAoarC,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,8BAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
|
package/dist/lib/bootstrap.js
CHANGED
|
@@ -14,14 +14,10 @@ const config_1 = require("./config");
|
|
|
14
14
|
const control_plane_client_1 = require("./control-plane-client");
|
|
15
15
|
const control_plane_discovery_1 = require("./control-plane-discovery");
|
|
16
16
|
const migration_history_1 = require("./migration-history");
|
|
17
|
+
const resolved_connection_1 = require("./resolved-connection");
|
|
17
18
|
const schema_name_1 = require("./schema-name");
|
|
18
19
|
const LOG_PREFIX = '[biome-database]';
|
|
19
20
|
const bootstrapLogger = new common_1.Logger('BiomeDatabaseBootstrap');
|
|
20
|
-
function upperKeySuffix(key) {
|
|
21
|
-
return key === schema_name_1.DEFAULT_BIOME_DB_KEY
|
|
22
|
-
? ''
|
|
23
|
-
: `_${key.toUpperCase().replace(/[^A-Z0-9]/g, '_')}`;
|
|
24
|
-
}
|
|
25
21
|
async function resolveServiceToken(serviceToken) {
|
|
26
22
|
if (serviceToken === undefined) {
|
|
27
23
|
throw new Error(`${LOG_PREFIX} no local DB_* override and no serviceToken supplied — ` +
|
|
@@ -231,12 +227,14 @@ function buildRuntimeUrl(biomeId, key, config, directUrl) {
|
|
|
231
227
|
bootstrapLogger.log(`${LOG_PREFIX} biome=${biomeId} key=${key}: runtime routed through pooler ${config.poolerHost}:${config.poolerPort ?? config.port}`);
|
|
232
228
|
return (0, platform_common_1.ensureBiomeDbSearchPath)(pooledUrl);
|
|
233
229
|
}
|
|
234
|
-
function
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
230
|
+
function publishResolvedConnection(key, config, runtimeUrl) {
|
|
231
|
+
(0, resolved_connection_1.publishResolvedBiomeConnection)(key, {
|
|
232
|
+
url: runtimeUrl,
|
|
233
|
+
...(config.schema !== undefined && config.schema !== ''
|
|
234
|
+
? { schema: config.schema }
|
|
235
|
+
: {}),
|
|
236
|
+
...(config.poolMax !== undefined ? { poolMax: config.poolMax } : {}),
|
|
237
|
+
});
|
|
240
238
|
}
|
|
241
239
|
async function bootstrapBiomeDatabases(opts) {
|
|
242
240
|
let cachedBaseUrl;
|
|
@@ -257,7 +255,7 @@ async function bootstrapBiomeDatabases(opts) {
|
|
|
257
255
|
await runMigrations(opts.biomeId, key, decl.workspaceDir, directUrl);
|
|
258
256
|
await assertDatabaseMatchesImage(opts.biomeId, key, decl, config);
|
|
259
257
|
const runtimeUrl = buildRuntimeUrl(opts.biomeId, key, config, directUrl);
|
|
260
|
-
|
|
258
|
+
publishResolvedConnection(key, config, runtimeUrl);
|
|
261
259
|
bootstrapLogger.log(`${LOG_PREFIX} biome=${opts.biomeId} key=${key}: bootstrap complete`);
|
|
262
260
|
}
|
|
263
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":";;AAwhBA,0DA+CC;AAvkBD,6CAAyC;AACzC,qCAAuC;AACvC,+CAA6C;AAC7C,qCAAiC;AACjC,yCAAiC;AAEjC,2CAAwC;AACxC,6EAAwE;AACxE,6DAGiC;AACjC,2BAAiD;AAEjD,qCAA6D;AAC7D,iEAAmE;AACnE,uEAGmC;AACnC,2DAI6B;AAC7B,+CAAqD;AA8FrD,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAStC,MAAM,eAAe,GAAG,IAAI,eAAM,CAAC,wBAAwB,CAAC,CAAC;AAE7D,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,GAAG,KAAK,kCAAoB;QACjC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,YAA0D;IAE1D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,yDAAyD;YACpE,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;AAC5E,CAAC;AASD,KAAK,UAAU,qBAAqB,CAClC,IAA0C,EAC1C,GAAW,EACX,sBAA6C;IAE7C,MAAM,KAAK,GAAG,IAAA,0CAAiC,EAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,OAAO,IAAA,gDAAyB,EAAC,OAAO,EAAE,KAAK,EAAE;QAC/C,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,GAAG,KAAK,kCAAoB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AASD,KAAK,UAAU,uBAAuB,CACpC,OAAe,EACf,GAAW,EACX,MAA2B;IAE3B,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;SAC3B,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,oBAAoB,IAAI,MAAM,CAAC,CAAC;IAChE,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC;IACD,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,6BAA6B,QAAQ,EAAE,CACjF,CAAC;IACF,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACrD,CAAC;AAiBD,SAAS,UAAU,CACjB,MAA2B;IAE3B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,aAAa,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,EAAE,GACN,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO;QACL,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,kBAAkB,EAAE,MAAM;KAC3B,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA2B;IACvD,OAAO,IAAI,WAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC;KACxB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,GAAW,EACX,MAA2B,EAC3B,kBAAqC;IAErC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC;IACxD,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC;QAKH,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,UAAU,OAAO,6BAA6B,GAAG,IAAI,CACnE,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAChB,mCAAmC,GAAG,iBAAiB,CACxD,CAAC;YACF,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,wBAAwB,GAAG,aAAa,CAClF,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE;gBAC/D,MAAM;aACP,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,GAAG,CAAC,CAAC;YAC9D,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,qBAAqB,MAAM,UAAU,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAGD,SAAS,wBAAwB,CAC/B,OAAe,EACf,GAAW,EACX,MAA2B;IAE3B,MAAM,SAAS,GAAG,IAAA,yCAAuB,EAAC;QACxC,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC,CAAC;IACH,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,mDAAmD,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,IAAA,yCAAuB,EAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,OAAe,EACf,GAAW,EACX,YAAoB,EACpB,UAAkB;IAElB,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,wCAAwC,YAAY,GAAG,CACjG,CAAC;IAUF,MAAM,MAAM,GAAG,MAAM,IAAI,+CAAqB,EAAE,CAAC,GAAG,CAAC;QACnD,YAAY;QACZ,aAAa,EAAE,UAAU;QACzB,GAAG,EAAE,EAAE;KACR,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,6BAA6B,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,CAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IACjD,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAe,EACf,GAAW,EACX,WAAqC,EACrC,MAA2B;IAE3B,IAAI,WAAW,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IACzC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,CAChB,6CAA6C,EAC7C,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAC/C,CAAC;QACF,MAAM,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC7D,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,6CAA6C,CACvF,CAAC;QACF,MAAM,WAAW,CAAC,iBAAiB,CAAC;YAClC,OAAO;YACP,GAAG;YACH,MAAM;YACN,KAAK,EAAE,KAAK,EACV,IAAY,EACZ,SAA6B,EAAE,EACL,EAAE;gBAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAO,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAC3D,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,4CAA4C,CACtF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAQD,KAAK,UAAU,yBAAyB,CACtC,OAAe,EACf,GAAW,EACX,MAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IACzC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;gBACU,uBAAuB,CAAC,MAAM,CAAC;;;oCAGX,CAC/B,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,yBAAyB;YAChE,gCAAgC,MAAM,MACpC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,EACJ,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,OAAe,EACf,GAAW,EACX,WAAqC,EACrC,MAA2B;IAE3B,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrE,IAAA,iDAA6B,EAAC,WAAW,CAAC,YAAY,CAAC;QACvD,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC;KAChD,CAAC,CAAC;IACH,IAAA,oDAAgC,EAAC;QAC/B,OAAO;QACP,GAAG;QACH,mBAAmB;QACnB,qBAAqB;QACrB,GAAG,CAAC,WAAW,CAAC,aAAa,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,sBAAsB;QAC7D,eAAe,qBAAqB,CAAC,MAAM,WAAW,CACzD,CAAC;AACJ,CAAC;AAiBD,SAAS,eAAe,CACtB,OAAe,EACf,GAAW,EACX,MAA2B,EAC3B,SAAiB;IAEjB,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;QAChE,OAAO,IAAA,yCAAuB,EAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,SAAS,GAAG,IAAA,yCAAuB,EAAC;QACxC,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC;QAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,SAAS,EAAE,MAAM,CAAC,eAAe,IAAI,iBAAiB;KACvD,CAAC,CAAC;IACH,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,yDAAyD,CACnG,CAAC;IACJ,CAAC;IACD,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,OAAO,QAAQ,GAAG,mCAAmC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,EAAE,CACpI,CAAC;IACF,OAAO,IAAA,yCAAuB,EAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAUD,SAAS,iBAAiB,CACxB,GAAW,EACX,MAA2B,EAC3B,UAAkB;IAElB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,EAAE,CAAC,GAAG,UAAU,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,CAAC;AACH,CAAC;AAYM,KAAK,UAAU,uBAAuB,CAC3C,IAAoC;IAIpC,IAAI,aAAiC,CAAC;IACtC,MAAM,sBAAsB,GAAG,KAAK,IAAqB,EAAE;QACzD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,aAAa,GAAG,MAAM,IAAA,oDAA0B,EAC9C,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,qBAAqB,CAC3B,CAAC;QACJ,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,kCAAoB,CAAC;QAC7C,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,IAAI,CAAC,OAAO,QAAQ,GAAG,+BAA+B,IAAI,CAAC,aAAa,EAAE,CAClG,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAC3C,IAAI,EACJ,GAAG,EACH,sBAAsB,CACvB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAC1C,IAAI,CAAC,OAAO,EACZ,GAAG,EACH,SAAS,CACV,CAAC;QACF,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,kBAAkB,CACtB,IAAI,CAAC,OAAO,EACZ,GAAG,EACH,MAAM,EACN,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAC9B,CAAC;QACF,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,0BAA0B,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACzE,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3C,eAAe,CAAC,GAAG,CACjB,GAAG,UAAU,UAAU,IAAI,CAAC,OAAO,QAAQ,GAAG,sBAAsB,CACrE,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/lib/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type EagerResolveOptions } from '@xemahq/service-registry-nest';
|
|
2
|
-
import type { KernelState } from '@xemahq/
|
|
2
|
+
import type { KernelState } from '@xemahq/contracts/kernel-state';
|
|
3
3
|
export declare const ORG_DATABASE_POOL_SERVICE_NAME = "org-database-pool-api";
|
|
4
4
|
export type ControlPlaneDiscoveryOptions = EagerResolveOptions;
|
|
5
5
|
export declare function resolveControlPlaneBaseUrl(kernelState: KernelState, options?: ControlPlaneDiscoveryOptions): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane-discovery.d.ts","sourceRoot":"","sources":["../../src/lib/control-plane-discovery.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"control-plane-discovery.d.ts","sourceRoot":"","sources":["../../src/lib/control-plane-discovery.ts"],"names":[],"mappings":"AAaA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGlE,eAAO,MAAM,8BAA8B,0BAA0B,CAAC;AAGtE,MAAM,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAQ/D,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,MAAM,CAAC,CAMjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface ExpiringLeaseClient {
|
|
2
|
+
$queryRawUnsafe<T = unknown>(query: string, ...values: unknown[]): Promise<T>;
|
|
3
|
+
$executeRawUnsafe(query: string, ...values: unknown[]): Promise<number>;
|
|
4
|
+
}
|
|
5
|
+
export type ExpiringLeaseOutcome<T> = {
|
|
6
|
+
readonly ran: false;
|
|
7
|
+
} | {
|
|
8
|
+
readonly ran: true;
|
|
9
|
+
readonly value: T;
|
|
10
|
+
};
|
|
11
|
+
export interface ExpiringLeaseLogger {
|
|
12
|
+
warn(message: string): void;
|
|
13
|
+
}
|
|
14
|
+
export interface ExpiringLeaseStoreOptions {
|
|
15
|
+
readonly table: string;
|
|
16
|
+
readonly holderId: string;
|
|
17
|
+
readonly logger?: ExpiringLeaseLogger;
|
|
18
|
+
}
|
|
19
|
+
export declare function defaultLeaseHolderId(): string;
|
|
20
|
+
export declare class ExpiringLeaseStore {
|
|
21
|
+
private readonly client;
|
|
22
|
+
private readonly table;
|
|
23
|
+
private readonly holderId;
|
|
24
|
+
private readonly logger;
|
|
25
|
+
constructor(client: () => ExpiringLeaseClient, options: ExpiringLeaseStoreOptions);
|
|
26
|
+
acquireOrRenew(name: string, ttlMs: number): Promise<boolean>;
|
|
27
|
+
release(name: string): Promise<boolean>;
|
|
28
|
+
withLease<T>(name: string, ttlMs: number, fn: () => Promise<T>): Promise<ExpiringLeaseOutcome<T>>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=expiring-lease.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expiring-lease.d.ts","sourceRoot":"","sources":["../../src/lib/expiring-lease.ts"],"names":[],"mappings":"AAqFA,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzE;AAGD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAC9B;IAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAA;CAAE,GACvB;IAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAG9C,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAwBD,MAAM,WAAW,yBAAyB;IAOxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAMvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CACvC;AASD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,qBAAa,kBAAkB;IAc3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAWtC,MAAM,EAAE,MAAM,mBAAmB,EAClD,OAAO,EAAE,yBAAyB;IAgC9B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2D7D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBvC,SAAS,CAAC,CAAC,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;CAepC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpiringLeaseStore = void 0;
|
|
4
|
+
exports.defaultLeaseHolderId = defaultLeaseHolderId;
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const LEASE_TABLE_PATTERN = /^[a-z_][a-z0-9_]*$/;
|
|
8
|
+
const POSTGRES_MAX_IDENTIFIER_LENGTH = 63;
|
|
9
|
+
function defaultLeaseHolderId() {
|
|
10
|
+
return `${(0, node_os_1.hostname)()}#${process.pid}#${(0, node_crypto_1.randomUUID)()}`;
|
|
11
|
+
}
|
|
12
|
+
class ExpiringLeaseStore {
|
|
13
|
+
client;
|
|
14
|
+
table;
|
|
15
|
+
holderId;
|
|
16
|
+
logger;
|
|
17
|
+
constructor(client, options) {
|
|
18
|
+
this.client = client;
|
|
19
|
+
if (!LEASE_TABLE_PATTERN.test(options.table) ||
|
|
20
|
+
options.table.length > POSTGRES_MAX_IDENTIFIER_LENGTH) {
|
|
21
|
+
throw new Error(`Lease table "${options.table}" is not a bare lowercase Postgres identifier of at ` +
|
|
22
|
+
`most ${POSTGRES_MAX_IDENTIFIER_LENGTH} characters (${String(LEASE_TABLE_PATTERN)}). ` +
|
|
23
|
+
`The table name is interpolated into the statement because Postgres cannot bind an ` +
|
|
24
|
+
`identifier as a parameter, so it is refused here rather than quoted and hoped for.`);
|
|
25
|
+
}
|
|
26
|
+
if (options.holderId.length === 0) {
|
|
27
|
+
throw new Error('Lease holder id must be non-empty: it is the predicate on every write and on the ' +
|
|
28
|
+
'release, so an empty one would let any process release any other process’s lease.');
|
|
29
|
+
}
|
|
30
|
+
this.table = options.table;
|
|
31
|
+
this.holderId = options.holderId;
|
|
32
|
+
this.logger = options.logger;
|
|
33
|
+
}
|
|
34
|
+
async acquireOrRenew(name, ttlMs) {
|
|
35
|
+
if (name.length === 0) {
|
|
36
|
+
throw new Error('A lease name must be non-empty: the name IS the coordination key, so an empty one ' +
|
|
37
|
+
'silently shares a single key with every other caller that passes an empty name.');
|
|
38
|
+
}
|
|
39
|
+
if (!Number.isInteger(ttlMs) || ttlMs <= 0) {
|
|
40
|
+
throw new Error(`Lease TTL must be a positive integer number of milliseconds, got ${ttlMs}. A ` +
|
|
41
|
+
`non-positive TTL mints a lease that is already expired, which elects every ` +
|
|
42
|
+
`contender at once while reading as a working election.`);
|
|
43
|
+
}
|
|
44
|
+
const t = this.table;
|
|
45
|
+
const rows = await this.client().$queryRawUnsafe(`
|
|
46
|
+
INSERT INTO "${t}" ("name", "holder_id", "acquired_at", "renewed_at", "expires_at")
|
|
47
|
+
VALUES (
|
|
48
|
+
$1,
|
|
49
|
+
$2,
|
|
50
|
+
now(),
|
|
51
|
+
now(),
|
|
52
|
+
now() + make_interval(secs => $3::double precision)
|
|
53
|
+
)
|
|
54
|
+
ON CONFLICT ("name") DO UPDATE
|
|
55
|
+
SET "holder_id" = EXCLUDED."holder_id",
|
|
56
|
+
"acquired_at" = CASE
|
|
57
|
+
WHEN "${t}"."holder_id" = EXCLUDED."holder_id"
|
|
58
|
+
THEN "${t}"."acquired_at"
|
|
59
|
+
ELSE EXCLUDED."acquired_at"
|
|
60
|
+
END,
|
|
61
|
+
"renewed_at" = EXCLUDED."renewed_at",
|
|
62
|
+
"expires_at" = EXCLUDED."expires_at"
|
|
63
|
+
WHERE "${t}"."holder_id" = EXCLUDED."holder_id"
|
|
64
|
+
OR "${t}"."expires_at" <= now()
|
|
65
|
+
RETURNING "holder_id"
|
|
66
|
+
`, name, this.holderId, ttlMs / 1000);
|
|
67
|
+
return rows.length > 0;
|
|
68
|
+
}
|
|
69
|
+
async release(name) {
|
|
70
|
+
const deleted = await this.client().$executeRawUnsafe(`DELETE FROM "${this.table}" WHERE "name" = $1 AND "holder_id" = $2`, name, this.holderId);
|
|
71
|
+
return deleted > 0;
|
|
72
|
+
}
|
|
73
|
+
async withLease(name, ttlMs, fn) {
|
|
74
|
+
if (!(await this.acquireOrRenew(name, ttlMs))) {
|
|
75
|
+
return { ran: false };
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
return { ran: true, value: await fn() };
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
if (!(await this.release(name)) && this.logger !== undefined) {
|
|
82
|
+
this.logger.warn(`${name}: lease was no longer held at release time — the work outran its ` +
|
|
83
|
+
`${ttlMs}ms lease and another process may have started it.`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.ExpiringLeaseStore = ExpiringLeaseStore;
|
|
89
|
+
//# sourceMappingURL=expiring-lease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expiring-lease.js","sourceRoot":"","sources":["../../src/lib/expiring-lease.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
import { type DynamicModule, type Type } from '@nestjs/common';
|
|
2
|
-
import { type EraseOrgDataOptions
|
|
3
|
-
export declare const ORG_ERASURE_RUNNER: unique symbol;
|
|
4
|
-
export declare const ORG_DATA_ERASURE_CAPABILITY = "xema.org-data-erasure";
|
|
5
|
-
export declare const ORG_ERASURE_ROUTE_PATH = "internal/org-erasure";
|
|
6
|
-
export interface OrgErasureRunner {
|
|
7
|
-
erase(orgId: string): Promise<OrgErasureReport>;
|
|
8
|
-
}
|
|
9
|
-
export declare class OrgErasureController {
|
|
10
|
-
private readonly runner;
|
|
11
|
-
constructor(runner: OrgErasureRunner);
|
|
12
|
-
erase(orgId: string): Promise<OrgErasureReport>;
|
|
13
|
-
}
|
|
2
|
+
import { type EraseOrgDataOptions } from '../tenant-isolation/org-erasure';
|
|
14
3
|
export interface OrgErasureModuleOptions extends EraseOrgDataOptions {
|
|
15
4
|
readonly prismaServiceToken: Type<unknown> | string | symbol;
|
|
16
5
|
}
|
|
@@ -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":"AAiCA,OAAO,EAAU,KAAK,aAAa,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAOvE,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAMlE,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;CAC9D;AAQD,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;CAiChE"}
|
|
@@ -1,79 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.OrgErasureModule =
|
|
3
|
+
exports.OrgErasureModule = void 0;
|
|
16
4
|
const common_1 = require("@nestjs/common");
|
|
17
|
-
const
|
|
18
|
-
const platform_common_1 = require("@xemahq/platform-common");
|
|
19
|
-
const xema_decorators_1 = require("@xemahq/xema-decorators");
|
|
20
|
-
const org_protection_1 = require("./org-protection");
|
|
5
|
+
const org_erasure_nest_1 = require("@xemahq/org-erasure-nest");
|
|
21
6
|
const org_erasure_1 = require("../tenant-isolation/org-erasure");
|
|
22
7
|
const tenant_isolation_extension_1 = require("../tenant-isolation/tenant-isolation.extension");
|
|
23
|
-
exports.ORG_ERASURE_RUNNER = Symbol.for('@xemahq/biome-database-nest/org-erasure-runner');
|
|
24
|
-
exports.ORG_DATA_ERASURE_CAPABILITY = 'xema.org-data-erasure';
|
|
25
|
-
exports.ORG_ERASURE_ROUTE_PATH = 'internal/org-erasure';
|
|
26
|
-
let OrgErasureController = class OrgErasureController {
|
|
27
|
-
runner;
|
|
28
|
-
constructor(runner) {
|
|
29
|
-
this.runner = runner;
|
|
30
|
-
}
|
|
31
|
-
erase(orgId) {
|
|
32
|
-
return this.runner.erase(orgId);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
exports.OrgErasureController = OrgErasureController;
|
|
36
|
-
__decorate([
|
|
37
|
-
(0, xema_decorators_1.XemaInternalRoute)({ audience: xema_decorators_1.InternalRouteAudience.Service }),
|
|
38
|
-
(0, common_1.Post)(':orgId'),
|
|
39
|
-
(0, swagger_1.ApiOperation)({
|
|
40
|
-
summary: "Erase every row belonging to an org across this service's org-scoped models",
|
|
41
|
-
}),
|
|
42
|
-
__param(0, (0, common_1.Param)('orgId')),
|
|
43
|
-
__metadata("design:type", Function),
|
|
44
|
-
__metadata("design:paramtypes", [String]),
|
|
45
|
-
__metadata("design:returntype", Promise)
|
|
46
|
-
], OrgErasureController.prototype, "erase", null);
|
|
47
|
-
exports.OrgErasureController = OrgErasureController = __decorate([
|
|
48
|
-
(0, swagger_1.ApiTags)('org-erasure'),
|
|
49
|
-
(0, common_1.UseGuards)(platform_common_1.ServiceActorGuard, org_protection_1.OrgProtectionGuard),
|
|
50
|
-
(0, common_1.Controller)('internal/org-erasure'),
|
|
51
|
-
__param(0, (0, common_1.Inject)(exports.ORG_ERASURE_RUNNER)),
|
|
52
|
-
__metadata("design:paramtypes", [Object])
|
|
53
|
-
], OrgErasureController);
|
|
54
8
|
class OrgErasureModule {
|
|
55
9
|
static forRoot(options) {
|
|
56
10
|
const { prismaServiceToken, ...eraseOptions } = options;
|
|
57
|
-
return {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
erase: (orgId) => (0, org_erasure_1.eraseOrgData)(prisma.asSystem(), orgId, eraseOptions),
|
|
71
|
-
};
|
|
72
|
-
},
|
|
73
|
-
inject: [prismaServiceToken],
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
|
-
};
|
|
11
|
+
return org_erasure_nest_1.OrgErasureEndpointModule.forRunner({
|
|
12
|
+
useFactory: (prisma) => {
|
|
13
|
+
const client = prisma.asSystem();
|
|
14
|
+
const models = [
|
|
15
|
+
...(0, org_erasure_1.assertOrgErasureMatchesModels)(client, eraseOptions),
|
|
16
|
+
].sort();
|
|
17
|
+
new common_1.Logger(OrgErasureModule.name).log(`org-erasure participant armed on "${eraseOptions.orgField ?? tenant_isolation_extension_1.DEFAULT_ORG_FIELD}" over ${models.length} model(s): ${models.join(', ')}`);
|
|
18
|
+
return {
|
|
19
|
+
erase: (orgId) => (0, org_erasure_1.eraseOrgData)(prisma.asSystem(), orgId, eraseOptions),
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
inject: [prismaServiceToken],
|
|
23
|
+
});
|
|
77
24
|
}
|
|
78
25
|
}
|
|
79
26
|
exports.OrgErasureModule = OrgErasureModule;
|
|
@@ -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":";;;AAiCA,2CAAuE;AACvE,+DAIkC;AAElC,iEAIyC;AACzC,+FAAmF;AAmBnF,MAAa,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,MAAM,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;QACxD,OAAO,2CAAwB,CAAC,SAAS,CAAC;YACxC,UAAU,EAAE,CAAC,MAAwB,EAAoB,EAAE;gBACzD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAajC,MAAM,MAAM,GAAG;oBACb,GAAG,IAAA,2CAA6B,EAAC,MAAM,EAAE,YAAY,CAAC;iBACvD,CAAC,IAAI,EAAE,CAAC;gBACT,IAAI,eAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CACnC,qCACE,YAAY,CAAC,QAAQ,IAAI,8CAC3B,UAAU,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,CAAC,KAAa,EAA6B,EAAE,CAClD,IAAA,0BAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC;iBACvD,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,CAAC,kBAAkB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;CACF;AAlCD,4CAkCC"}
|
|
@@ -15,6 +15,7 @@ export interface TenantIsolationServiceOptions {
|
|
|
15
15
|
export interface CreateBiomePrismaServiceOptions {
|
|
16
16
|
readonly loggerContext?: string;
|
|
17
17
|
readonly tenantIsolation?: TenantIsolationServiceOptions;
|
|
18
|
+
readonly dbKey?: string;
|
|
18
19
|
}
|
|
19
20
|
export interface TenantScopedApi<TClient> {
|
|
20
21
|
forOrg(orgId: string): TClient;
|
|
@@ -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;IAE9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,6BAA6B,CAAC;
|
|
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;IAE9C,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,YAAY,GACZ,eAAe,CAAC;AA2ElB,wBAAgB,wBAAwB,CACtC,WAAW,SAAS,qBAAqB,EAEzC,gBAAgB,EAAE,WAAW,EAC7B,sBAAsB,CAAC,EAAE,MAAM,GAAG,+BAA+B,GAChE,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAqL7D"}
|
|
@@ -40,7 +40,7 @@ function createBiomePrismaService(PrismaClientCtor, optionsOrLoggerContext) {
|
|
|
40
40
|
let BiomePrismaService = class BiomePrismaService extends PrismaClientCtor {
|
|
41
41
|
biomePrismaLogger = new common_1.Logger(loggerContext);
|
|
42
42
|
constructor() {
|
|
43
|
-
super({ adapter: (0, adapter_1.
|
|
43
|
+
super({ adapter: (0, adapter_1.resolveBiomePrismaAdapter)(options.dbKey) });
|
|
44
44
|
const mode = (0, tenant_isolation_mode_1.resolveTenantIsolationMode)(tenantOptions.mode);
|
|
45
45
|
const raw = this;
|
|
46
46
|
const tenantLogger = new common_1.Logger(`${loggerContext}:tenant-isolation`);
|
|
@@ -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,9 @@
|
|
|
1
|
+
export interface ResolvedBiomeConnection {
|
|
2
|
+
readonly url: string;
|
|
3
|
+
readonly schema?: string;
|
|
4
|
+
readonly poolMax?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function publishResolvedBiomeConnection(dbKey: string | undefined, connection: ResolvedBiomeConnection): void;
|
|
7
|
+
export declare function readResolvedBiomeConnection(dbKey?: string): ResolvedBiomeConnection | undefined;
|
|
8
|
+
export declare function clearResolvedBiomeConnections(): void;
|
|
9
|
+
//# sourceMappingURL=resolved-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-connection.d.ts","sourceRoot":"","sources":["../../src/lib/resolved-connection.ts"],"names":[],"mappings":"AA6CA,MAAM,WAAW,uBAAuB;IAMtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAqBD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,UAAU,EAAE,uBAAuB,GAClC,IAAI,CAiBN;AAWD,wBAAgB,2BAA2B,CACzC,KAAK,CAAC,EAAE,MAAM,GACb,uBAAuB,GAAG,SAAS,CAErC;AAUD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.publishResolvedBiomeConnection = publishResolvedBiomeConnection;
|
|
4
|
+
exports.readResolvedBiomeConnection = readResolvedBiomeConnection;
|
|
5
|
+
exports.clearResolvedBiomeConnections = clearResolvedBiomeConnections;
|
|
6
|
+
const schema_name_1 = require("./schema-name");
|
|
7
|
+
const resolvedConnections = new Map();
|
|
8
|
+
function normalizeKey(dbKey) {
|
|
9
|
+
return dbKey === undefined || dbKey === '' ? schema_name_1.DEFAULT_BIOME_DB_KEY : dbKey;
|
|
10
|
+
}
|
|
11
|
+
function publishResolvedBiomeConnection(dbKey, connection) {
|
|
12
|
+
const key = normalizeKey(dbKey);
|
|
13
|
+
const existing = resolvedConnections.get(key);
|
|
14
|
+
if (existing !== undefined &&
|
|
15
|
+
(existing.url !== connection.url || existing.schema !== connection.schema)) {
|
|
16
|
+
throw new Error(`[biome-database] a different connection is already resolved for dbKey ` +
|
|
17
|
+
`"${key}" (schema "${existing.schema ?? '<none>'}" vs ` +
|
|
18
|
+
`"${connection.schema ?? '<none>'}"). Two biome databases cannot share ` +
|
|
19
|
+
`one dbKey in one process: whichever published second would silently ` +
|
|
20
|
+
`become the connection BOTH of them use. Give each database its own ` +
|
|
21
|
+
`key, or run them in separate processes.`);
|
|
22
|
+
}
|
|
23
|
+
resolvedConnections.set(key, connection);
|
|
24
|
+
}
|
|
25
|
+
function readResolvedBiomeConnection(dbKey) {
|
|
26
|
+
return resolvedConnections.get(normalizeKey(dbKey));
|
|
27
|
+
}
|
|
28
|
+
function clearResolvedBiomeConnections() {
|
|
29
|
+
resolvedConnections.clear();
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=resolved-connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-connection.js","sourceRoot":"","sources":["../../src/lib/resolved-connection.ts"],"names":[],"mappings":";;AA6EA,wEAoBC;AAWD,kEAIC;AAUD,sEAEC;AAlFD,+CAAqD;AAgBrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmC,CAAC;AAGvE,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,kCAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5E,CAAC;AAcD,SAAgB,8BAA8B,CAC5C,KAAyB,EACzB,UAAmC;IAEnC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,IACE,QAAQ,KAAK,SAAS;QACtB,CAAC,QAAQ,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC,EAC1E,CAAC;QACD,MAAM,IAAI,KAAK,CACb,wEAAwE;YACtE,IAAI,GAAG,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,OAAO;YACvD,IAAI,UAAU,CAAC,MAAM,IAAI,QAAQ,uCAAuC;YACxE,sEAAsE;YACtE,qEAAqE;YACrE,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IACD,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAWD,SAAgB,2BAA2B,CACzC,KAAc;IAEd,OAAO,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAUD,SAAgB,6BAA6B;IAC3C,mBAAmB,CAAC,KAAK,EAAE,CAAC;AAC9B,CAAC"}
|
package/dist/lib/role-names.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
export declare enum SchemaRoleKind {
|
|
2
2
|
ReadWrite = "rw",
|
|
3
|
-
ReadOnly = "ro"
|
|
3
|
+
ReadOnly = "ro",
|
|
4
|
+
Owner = "ow"
|
|
4
5
|
}
|
|
5
|
-
export declare const SCHEMA_ROLE_SUFFIX_LENGTH
|
|
6
|
+
export declare const SCHEMA_ROLE_SUFFIX_LENGTH: number;
|
|
6
7
|
export declare const SCHEMA_ROLE_BASE_MAX_LENGTH: number;
|
|
7
8
|
export interface SchemaRoleNames {
|
|
8
9
|
readonly rwRoleName: string;
|
|
9
10
|
readonly roRoleName: string;
|
|
11
|
+
readonly ownerRoleName: string;
|
|
10
12
|
}
|
|
11
13
|
export declare function schemaRoleBase(schemaName: string): string;
|
|
12
14
|
export declare function schemaRoleName(schemaName: string, kind: SchemaRoleKind): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-names.d.ts","sourceRoot":"","sources":["../../src/lib/role-names.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"role-names.d.ts","sourceRoot":"","sources":["../../src/lib/role-names.ts"],"names":[],"mappings":"AAuCA,oBAAY,cAAc;IACxB,SAAS,OAAO;IAChB,QAAQ,OAAO;IACf,KAAK,OAAO;CACb;AAgBD,eAAO,MAAM,yBAAyB,QAEiC,CAAC;AAUxE,eAAO,MAAM,2BAA2B,QACoB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAQ5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAaD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMzD;AAGD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,cAAc,GACnB,MAAM,CAER;AAOD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAOlE"}
|
package/dist/lib/role-names.js
CHANGED
|
@@ -9,8 +9,10 @@ var SchemaRoleKind;
|
|
|
9
9
|
(function (SchemaRoleKind) {
|
|
10
10
|
SchemaRoleKind["ReadWrite"] = "rw";
|
|
11
11
|
SchemaRoleKind["ReadOnly"] = "ro";
|
|
12
|
+
SchemaRoleKind["Owner"] = "ow";
|
|
12
13
|
})(SchemaRoleKind || (exports.SchemaRoleKind = SchemaRoleKind = {}));
|
|
13
|
-
exports.SCHEMA_ROLE_SUFFIX_LENGTH =
|
|
14
|
+
exports.SCHEMA_ROLE_SUFFIX_LENGTH = 1 +
|
|
15
|
+
Math.max(...Object.values(SchemaRoleKind).map((kind) => kind.length));
|
|
14
16
|
exports.SCHEMA_ROLE_BASE_MAX_LENGTH = identifier_1.POSTGRES_MAX_IDENTIFIER_LENGTH - exports.SCHEMA_ROLE_SUFFIX_LENGTH;
|
|
15
17
|
function schemaRoleBase(schemaName) {
|
|
16
18
|
return (0, identifier_1.fitIdentifier)({
|
|
@@ -27,6 +29,7 @@ function rolesForSchema(schemaName) {
|
|
|
27
29
|
return {
|
|
28
30
|
rwRoleName: `${base}_${SchemaRoleKind.ReadWrite}`,
|
|
29
31
|
roRoleName: `${base}_${SchemaRoleKind.ReadOnly}`,
|
|
32
|
+
ownerRoleName: `${base}_${SchemaRoleKind.Owner}`,
|
|
30
33
|
};
|
|
31
34
|
}
|
|
32
35
|
//# sourceMappingURL=role-names.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-names.js","sourceRoot":"","sources":["../../src/lib/role-names.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"role-names.js","sourceRoot":"","sources":["../../src/lib/role-names.ts"],"names":[],"mappings":";;;AAkGA,wCAMC;AAGD,wCAKC;AAOD,wCAOC;AA9HD,6CAIsB;AAmCtB,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,kCAAgB,CAAA;IAChB,iCAAe,CAAA;IACf,8BAAY,CAAA;AACd,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAgBY,QAAA,yBAAyB,GACpC,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAU3D,QAAA,2BAA2B,GACtC,2CAA8B,GAAG,iCAAyB,CAAC;AA0B7D,SAAgB,cAAc,CAAC,UAAkB;IAC/C,OAAO,IAAA,0BAAa,EAAC;QACnB,SAAS,EAAE,IAAA,oCAAuB,EAAC,UAAU,CAAC;QAC9C,SAAS,EAAE,mCAA2B;QACtC,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;AACL,CAAC;AAGD,SAAgB,cAAc,CAC5B,UAAkB,EAClB,IAAoB;IAEpB,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;AACjD,CAAC;AAOD,SAAgB,cAAc,CAAC,UAAkB;IAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO;QACL,UAAU,EAAE,GAAG,IAAI,IAAI,cAAc,CAAC,SAAS,EAAE;QACjD,UAAU,EAAE,GAAG,IAAI,IAAI,cAAc,CAAC,QAAQ,EAAE;QAChD,aAAa,EAAE,GAAG,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE;KACjD,CAAC;AACJ,CAAC"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
+
import type { OrgErasureReport } from '@xemahq/org-erasure-nest';
|
|
1
2
|
export interface EraseOrgDataOptions {
|
|
2
3
|
readonly orgField?: string;
|
|
3
4
|
readonly exemptModels?: readonly string[];
|
|
4
5
|
}
|
|
5
|
-
export interface OrgErasureReport {
|
|
6
|
-
readonly orgId: string;
|
|
7
|
-
readonly deletedByModel: Readonly<Record<string, number>>;
|
|
8
|
-
readonly totalDeleted: number;
|
|
9
|
-
readonly passes: number;
|
|
10
|
-
}
|
|
11
6
|
export declare class OrgErasureBlockedError extends Error {
|
|
12
7
|
readonly orgId: string;
|
|
13
8
|
readonly blockedModels: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-erasure.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/org-erasure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"org-erasure.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/org-erasure.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAKjE,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAQ3B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAGD,qBAAa,sBAAuB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE;gBADhC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,SAAS,MAAM,EAAE;CAY5C;AAiBD,qBAAa,6BAA8B,SAAQ,KAAK;IAEpD,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE;gBAF/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,YAAY,EAAE,SAAS,MAAM,EAAE;CAkB3C;AAoBD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,mBAAwB,GAChC,WAAW,CAAC,MAAM,CAAC,CAYrB;AA2BD,wBAAsB,YAAY,CAChC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAwD3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-erasure.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/org-erasure.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"org-erasure.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/org-erasure.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/biome-database-nest",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "Explicit database migration ownership, least-privilege runtime verification, and schema-qualified Prisma wiring for Xema biome services.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
|
|
@@ -30,32 +30,33 @@
|
|
|
30
30
|
"@types/node": "25.2.3",
|
|
31
31
|
"@types/pg": "^8.16.0",
|
|
32
32
|
"@xemahq/identity-client": "^0.9.1",
|
|
33
|
-
"@xemahq/
|
|
34
|
-
"@xemahq/
|
|
33
|
+
"@xemahq/contracts": "^0.1.0",
|
|
34
|
+
"@xemahq/pg-test-harness": "^0.3.0",
|
|
35
|
+
"@xemahq/platform-common": "^0.31.0",
|
|
35
36
|
"eslint": "^9.39.4",
|
|
36
37
|
"jest": "^30.3.0",
|
|
37
38
|
"prettier": "3.6.2",
|
|
39
|
+
"prisma": "7.8.0",
|
|
38
40
|
"ts-jest": "^29.4.9",
|
|
39
41
|
"typescript": "5.9.3",
|
|
40
|
-
"@xemahq/eslint-config": "0.
|
|
41
|
-
"@xemahq/
|
|
42
|
-
"@xemahq/
|
|
42
|
+
"@xemahq/eslint-config": "0.6.0",
|
|
43
|
+
"@xemahq/service-registry-nest": "0.9.0",
|
|
44
|
+
"@xemahq/xema-decorators": "0.16.0"
|
|
43
45
|
},
|
|
44
46
|
"peerDependencies": {
|
|
45
47
|
"@nestjs/common": "^10 || ^11",
|
|
46
48
|
"@nestjs/core": "^10 || ^11",
|
|
47
|
-
"@nestjs/swagger": "^10 || ^11",
|
|
48
49
|
"@prisma/adapter-pg": "^7",
|
|
49
50
|
"@prisma/client": "^7",
|
|
50
51
|
"@xemahq/identity-client": "^0.9.0",
|
|
51
|
-
"@xemahq/
|
|
52
|
-
"@xemahq/service-registry-nest": "
|
|
53
|
-
"@xemahq/xema-decorators": ">=0.7.0",
|
|
52
|
+
"@xemahq/contracts": "^0.1.0",
|
|
53
|
+
"@xemahq/service-registry-nest": ">=0.8.0",
|
|
54
54
|
"@xemahq/platform-common": ">=0.18.0"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@xemahq/migration-runner-prisma": "^0.1.12",
|
|
58
|
-
"
|
|
58
|
+
"@xemahq/org-erasure-nest": "^0.1.0",
|
|
59
|
+
"pg": "^8.16.3"
|
|
59
60
|
},
|
|
60
61
|
"exports": {
|
|
61
62
|
".": {
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { ForbiddenException, ServiceUnavailableException, type CanActivate, type ExecutionContext } from '@nestjs/common';
|
|
2
|
-
import { IdentityBootstrapService } from '@xemahq/identity-client';
|
|
3
|
-
import type { ServiceRegistry } from '@xemahq/kernel-contracts/service-registry';
|
|
4
|
-
export declare const IDENTITY_SERVICE_NAME = "identity-api";
|
|
5
|
-
export declare const ORGANIZATION_PROTECTED_ERROR_CODE = "ORGANIZATION_PROTECTED";
|
|
6
|
-
export interface OrgProtectionProbe {
|
|
7
|
-
isOrgProtected(orgId: string): Promise<boolean>;
|
|
8
|
-
}
|
|
9
|
-
export declare class ProtectedOrgErasureRefusedError extends ForbiddenException {
|
|
10
|
-
readonly orgId: string;
|
|
11
|
-
constructor(orgId: string);
|
|
12
|
-
}
|
|
13
|
-
export declare class OrgProtectionUnavailableError extends ServiceUnavailableException {
|
|
14
|
-
readonly orgId: string;
|
|
15
|
-
readonly reason: string;
|
|
16
|
-
constructor(orgId: string, reason: string);
|
|
17
|
-
}
|
|
18
|
-
export declare function assertOrgNotProtected(probe: OrgProtectionProbe, orgId: string): Promise<void>;
|
|
19
|
-
export declare class IdentityOrgProtectionProbe implements OrgProtectionProbe {
|
|
20
|
-
private readonly registry;
|
|
21
|
-
private readonly identity;
|
|
22
|
-
private readonly logger;
|
|
23
|
-
constructor(registry: ServiceRegistry, identity: IdentityBootstrapService);
|
|
24
|
-
isOrgProtected(orgId: string): Promise<boolean>;
|
|
25
|
-
private fetchOrganization;
|
|
26
|
-
}
|
|
27
|
-
export declare function assertOrgProtectionArmable(registry: ServiceRegistry | null | undefined, identity: IdentityBootstrapService | null | undefined): asserts registry is ServiceRegistry;
|
|
28
|
-
export declare class OrgProtectionGuard implements CanActivate {
|
|
29
|
-
private readonly probe;
|
|
30
|
-
constructor(registry: ServiceRegistry | null, identity: IdentityBootstrapService | null);
|
|
31
|
-
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=org-protection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"org-protection.d.ts","sourceRoot":"","sources":["../../../src/lib/nest/org-protection.ts"],"names":[],"mappings":"AA8CA,OAAO,EACL,kBAAkB,EAKlB,2BAA2B,EAC3B,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAOnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAGjF,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AAGpD,eAAO,MAAM,iCAAiC,2BAA2B,CAAC;AAO1E,MAAM,WAAW,kBAAkB;IAMjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD;AAGD,qBAAa,+BAAgC,SAAQ,kBAAkB;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CASnC;AAMD,qBAAa,6BAA8B,SAAQ,2BAA2B;IAE1E,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;CAW1B;AAQD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAsBf;AAWD,qBACa,0BAA2B,YAAW,kBAAkB;IAIjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAGnB,QAAQ,EAAE,eAAe,EACzD,QAAQ,EAAE,wBAAwB;IAG/C,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YA4CvC,iBAAiB;CAyChC;AAqBD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC5C,QAAQ,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS,GACpD,OAAO,CAAC,QAAQ,IAAI,eAAe,CAqBrC;AA+BD,qBACa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAKzC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAShC,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAarC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAiB/D"}
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
var IdentityOrgProtectionProbe_1;
|
|
15
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.OrgProtectionGuard = exports.IdentityOrgProtectionProbe = exports.OrgProtectionUnavailableError = exports.ProtectedOrgErasureRefusedError = exports.ORGANIZATION_PROTECTED_ERROR_CODE = exports.IDENTITY_SERVICE_NAME = void 0;
|
|
17
|
-
exports.assertOrgNotProtected = assertOrgNotProtected;
|
|
18
|
-
exports.assertOrgProtectionArmable = assertOrgProtectionArmable;
|
|
19
|
-
const common_1 = require("@nestjs/common");
|
|
20
|
-
const identity_client_1 = require("@xemahq/identity-client");
|
|
21
|
-
const platform_common_1 = require("@xemahq/platform-common");
|
|
22
|
-
const service_registry_nest_1 = require("@xemahq/service-registry-nest");
|
|
23
|
-
exports.IDENTITY_SERVICE_NAME = 'identity-api';
|
|
24
|
-
exports.ORGANIZATION_PROTECTED_ERROR_CODE = 'ORGANIZATION_PROTECTED';
|
|
25
|
-
class ProtectedOrgErasureRefusedError extends common_1.ForbiddenException {
|
|
26
|
-
orgId;
|
|
27
|
-
constructor(orgId) {
|
|
28
|
-
super({
|
|
29
|
-
error: exports.ORGANIZATION_PROTECTED_ERROR_CODE,
|
|
30
|
-
message: `Refusing to erase organization "${orgId}": it is marked protected in ` +
|
|
31
|
-
`identity-api. Protection is a property of the organization, not of ` +
|
|
32
|
-
`the caller — clear it there first if the protection no longer applies.`,
|
|
33
|
-
});
|
|
34
|
-
this.orgId = orgId;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.ProtectedOrgErasureRefusedError = ProtectedOrgErasureRefusedError;
|
|
38
|
-
class OrgProtectionUnavailableError extends common_1.ServiceUnavailableException {
|
|
39
|
-
orgId;
|
|
40
|
-
reason;
|
|
41
|
-
constructor(orgId, reason) {
|
|
42
|
-
super({
|
|
43
|
-
error: 'ORG_PROTECTION_UNDETERMINED',
|
|
44
|
-
message: `Refusing to erase organization "${orgId}": could not establish ` +
|
|
45
|
-
`whether it is protected (${reason}). Erasure is irreversible, so an ` +
|
|
46
|
-
`undetermined protection status fails CLOSED. Retry once the ` +
|
|
47
|
-
`protection lookup succeeds.`,
|
|
48
|
-
});
|
|
49
|
-
this.orgId = orgId;
|
|
50
|
-
this.reason = reason;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.OrgProtectionUnavailableError = OrgProtectionUnavailableError;
|
|
54
|
-
async function assertOrgNotProtected(probe, orgId) {
|
|
55
|
-
const trimmed = orgId.trim();
|
|
56
|
-
if (trimmed === '') {
|
|
57
|
-
throw new OrgProtectionUnavailableError(orgId, 'orgId is empty');
|
|
58
|
-
}
|
|
59
|
-
let isProtected;
|
|
60
|
-
try {
|
|
61
|
-
isProtected = await probe.isOrgProtected(trimmed);
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
throw new OrgProtectionUnavailableError(trimmed, error instanceof Error ? error.message : String(error));
|
|
65
|
-
}
|
|
66
|
-
if (isProtected) {
|
|
67
|
-
throw new ProtectedOrgErasureRefusedError(trimmed);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
let IdentityOrgProtectionProbe = IdentityOrgProtectionProbe_1 = class IdentityOrgProtectionProbe {
|
|
71
|
-
registry;
|
|
72
|
-
identity;
|
|
73
|
-
logger = new common_1.Logger(IdentityOrgProtectionProbe_1.name);
|
|
74
|
-
constructor(registry, identity) {
|
|
75
|
-
this.registry = registry;
|
|
76
|
-
this.identity = identity;
|
|
77
|
-
}
|
|
78
|
-
async isOrgProtected(orgId) {
|
|
79
|
-
const realms = this.identity.getAllowedRealms();
|
|
80
|
-
if (realms.length === 0) {
|
|
81
|
-
throw new Error('this service has no allowed realms — identity registration has not ' +
|
|
82
|
-
'completed, so no organization can be resolved');
|
|
83
|
-
}
|
|
84
|
-
const baseUrl = (await (0, service_registry_nest_1.resolveHttpUrl)(this.registry, exports.IDENTITY_SERVICE_NAME))
|
|
85
|
-
.replace(/\/$/, '');
|
|
86
|
-
const token = await this.identity.getAccessToken();
|
|
87
|
-
for (const realm of realms) {
|
|
88
|
-
const record = await this.fetchOrganization(baseUrl, token, orgId, realm);
|
|
89
|
-
if (record === null) {
|
|
90
|
-
continue;
|
|
91
|
-
}
|
|
92
|
-
const isProtected = record['isProtected'];
|
|
93
|
-
if (typeof isProtected !== 'boolean') {
|
|
94
|
-
throw new Error(`identity-api returned organization "${orgId}" (realm "${realm}") ` +
|
|
95
|
-
`without a boolean "isProtected" field (present keys: ` +
|
|
96
|
-
`[${Object.keys(record).join(', ')}]). An identity-api that cannot ` +
|
|
97
|
-
`report protection cannot be read as reporting "unprotected".`);
|
|
98
|
-
}
|
|
99
|
-
if (isProtected) {
|
|
100
|
-
this.logger.warn(`organization "${orgId}" is protected in realm "${realm}" — erasure refused`);
|
|
101
|
-
}
|
|
102
|
-
return isProtected;
|
|
103
|
-
}
|
|
104
|
-
throw new Error(`identity-api has no organization "${orgId}" in any realm this service ` +
|
|
105
|
-
`is registered for [${realms.join(', ')}]. "Not found" is not "not ` +
|
|
106
|
-
`protected": either the organization id is wrong, or it lives in a ` +
|
|
107
|
-
`realm this service cannot see.`);
|
|
108
|
-
}
|
|
109
|
-
async fetchOrganization(baseUrl, token, orgId, realm) {
|
|
110
|
-
const url = `${baseUrl}/internal/organizations/${encodeURIComponent(orgId)}` +
|
|
111
|
-
`?realm=${encodeURIComponent(realm)}`;
|
|
112
|
-
const response = await fetch(url, {
|
|
113
|
-
method: 'GET',
|
|
114
|
-
headers: {
|
|
115
|
-
authorization: `Bearer ${token}`,
|
|
116
|
-
accept: 'application/json',
|
|
117
|
-
},
|
|
118
|
-
});
|
|
119
|
-
if (response.status === 404) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
if (!response.ok) {
|
|
123
|
-
const body = await response.text().catch(() => '<unreadable body>');
|
|
124
|
-
throw new Error(`GET ${url} responded ${response.status} ${response.statusText}: ${body}`);
|
|
125
|
-
}
|
|
126
|
-
const payload = await response.json();
|
|
127
|
-
const record = (0, platform_common_1.unwrapPlatformResponseEnvelope)(payload, `orgProtectionProbe: ${url}`);
|
|
128
|
-
if (record === null || typeof record !== 'object') {
|
|
129
|
-
throw new Error(`GET ${url} returned a non-object organization record ` +
|
|
130
|
-
`(${JSON.stringify(record)}).`);
|
|
131
|
-
}
|
|
132
|
-
return record;
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
exports.IdentityOrgProtectionProbe = IdentityOrgProtectionProbe;
|
|
136
|
-
exports.IdentityOrgProtectionProbe = IdentityOrgProtectionProbe = IdentityOrgProtectionProbe_1 = __decorate([
|
|
137
|
-
(0, common_1.Injectable)(),
|
|
138
|
-
__param(0, (0, common_1.Inject)(service_registry_nest_1.SERVICE_REGISTRY_TOKEN)),
|
|
139
|
-
__metadata("design:paramtypes", [Object, identity_client_1.IdentityBootstrapService])
|
|
140
|
-
], IdentityOrgProtectionProbe);
|
|
141
|
-
function assertOrgProtectionArmable(registry, identity) {
|
|
142
|
-
const missing = [];
|
|
143
|
-
if (registry === null || registry === undefined) {
|
|
144
|
-
missing.push('SERVICE_REGISTRY_TOKEN (@xemahq/service-registry-nest)');
|
|
145
|
-
}
|
|
146
|
-
if (identity === null || identity === undefined) {
|
|
147
|
-
missing.push('IdentityBootstrapService (@xemahq/identity-client)');
|
|
148
|
-
}
|
|
149
|
-
if (missing.length > 0) {
|
|
150
|
-
throw new Error(`[org-erasure] this service mounts the org-erasure route but cannot ` +
|
|
151
|
-
`construct its protected-organization fence: ${missing.join(' and ')} ` +
|
|
152
|
-
`${missing.length > 1 ? 'are' : 'is'} not resolvable. Both are ` +
|
|
153
|
-
`exported GLOBALLY by \`XemaServiceModule.forBiome\` (which composes ` +
|
|
154
|
-
`ServiceRegistryModule + IdentityBootstrapModule, each \`global: ` +
|
|
155
|
-
`true\`), so a service reaching this error has not wired the platform ` +
|
|
156
|
-
`bootstrap. Refusing to start: an org-erasure route served without the ` +
|
|
157
|
-
`fence lets any service token in the fleet irreversibly erase a ` +
|
|
158
|
-
`PROTECTED organization.`);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
let OrgProtectionGuard = class OrgProtectionGuard {
|
|
162
|
-
probe;
|
|
163
|
-
constructor(registry, identity) {
|
|
164
|
-
assertOrgProtectionArmable(registry, identity);
|
|
165
|
-
this.probe = new IdentityOrgProtectionProbe(registry, identity);
|
|
166
|
-
}
|
|
167
|
-
async canActivate(context) {
|
|
168
|
-
const request = context
|
|
169
|
-
.switchToHttp()
|
|
170
|
-
.getRequest();
|
|
171
|
-
const orgId = request.params?.['orgId'];
|
|
172
|
-
if (typeof orgId !== 'string' || orgId.trim() === '') {
|
|
173
|
-
throw new OrgProtectionUnavailableError(String(orgId), 'the route declares no ":orgId" parameter — OrgProtectionGuard is ' +
|
|
174
|
-
'mounted on a route it cannot fence');
|
|
175
|
-
}
|
|
176
|
-
await assertOrgNotProtected(this.probe, orgId);
|
|
177
|
-
return true;
|
|
178
|
-
}
|
|
179
|
-
};
|
|
180
|
-
exports.OrgProtectionGuard = OrgProtectionGuard;
|
|
181
|
-
exports.OrgProtectionGuard = OrgProtectionGuard = __decorate([
|
|
182
|
-
(0, common_1.Injectable)(),
|
|
183
|
-
__param(0, (0, common_1.Optional)()),
|
|
184
|
-
__param(0, (0, common_1.Inject)(service_registry_nest_1.SERVICE_REGISTRY_TOKEN)),
|
|
185
|
-
__param(1, (0, common_1.Optional)()),
|
|
186
|
-
__param(1, (0, common_1.Inject)(identity_client_1.IdentityBootstrapService)),
|
|
187
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
188
|
-
], OrgProtectionGuard);
|
|
189
|
-
//# sourceMappingURL=org-protection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"org-protection.js","sourceRoot":"","sources":["../../../src/lib/nest/org-protection.ts"],"names":[],"mappings":"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"}
|