@xemahq/biome-database-nest 7.2.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +57 -0
  2. package/dist/index.d.ts +13 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +43 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/advisory-lock.d.ts +2 -0
  7. package/dist/lib/advisory-lock.d.ts.map +1 -1
  8. package/dist/lib/advisory-lock.js +8 -0
  9. package/dist/lib/advisory-lock.js.map +1 -1
  10. package/dist/lib/biome-migrations.d.ts +2 -0
  11. package/dist/lib/biome-migrations.d.ts.map +1 -1
  12. package/dist/lib/biome-migrations.js +3 -1
  13. package/dist/lib/biome-migrations.js.map +1 -1
  14. package/dist/lib/bootstrap.d.ts +2 -0
  15. package/dist/lib/bootstrap.d.ts.map +1 -1
  16. package/dist/lib/bootstrap.js +4 -3
  17. package/dist/lib/bootstrap.js.map +1 -1
  18. package/dist/lib/ledger-rows.d.ts +1 -0
  19. package/dist/lib/ledger-rows.d.ts.map +1 -1
  20. package/dist/lib/ledger-rows.js +9 -0
  21. package/dist/lib/ledger-rows.js.map +1 -1
  22. package/dist/lib/nest/biome-database.module.d.ts +2 -0
  23. package/dist/lib/nest/biome-database.module.d.ts.map +1 -1
  24. package/dist/lib/nest/biome-database.module.js +5 -0
  25. package/dist/lib/nest/biome-database.module.js.map +1 -1
  26. package/dist/lib/nest/org-erasure.module.d.ts.map +1 -1
  27. package/dist/lib/nest/org-erasure.module.js +4 -6
  28. package/dist/lib/nest/org-erasure.module.js.map +1 -1
  29. package/dist/lib/nest/prisma-service-factory.d.ts.map +1 -1
  30. package/dist/lib/nest/prisma-service-factory.js +23 -13
  31. package/dist/lib/nest/prisma-service-factory.js.map +1 -1
  32. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.d.ts +4 -0
  33. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.d.ts.map +1 -0
  34. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.js +13 -0
  35. package/dist/lib/org-erasure-coverage/assert-org-erasure-armed.js.map +1 -0
  36. package/dist/lib/org-quiesce/org-erasure-isolation-error.d.ts +6 -0
  37. package/dist/lib/org-quiesce/org-erasure-isolation-error.d.ts.map +1 -0
  38. package/dist/lib/org-quiesce/org-erasure-isolation-error.js +16 -0
  39. package/dist/lib/org-quiesce/org-erasure-isolation-error.js.map +1 -0
  40. package/dist/lib/org-quiesce/org-erasure-transaction.d.ts +2 -0
  41. package/dist/lib/org-quiesce/org-erasure-transaction.d.ts.map +1 -0
  42. package/dist/lib/org-quiesce/org-erasure-transaction.js +16 -0
  43. package/dist/lib/org-quiesce/org-erasure-transaction.js.map +1 -0
  44. package/dist/lib/org-quiesce/org-quiesce-marks.d.ts +9 -0
  45. package/dist/lib/org-quiesce/org-quiesce-marks.d.ts.map +1 -0
  46. package/dist/lib/org-quiesce/org-quiesce-marks.js +42 -0
  47. package/dist/lib/org-quiesce/org-quiesce-marks.js.map +1 -0
  48. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.d.ts +4 -0
  49. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.d.ts.map +1 -0
  50. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.js +74 -0
  51. package/dist/lib/org-quiesce/org-quiesce-marks.migrations.js.map +1 -0
  52. package/dist/lib/org-quiesce/org-quiesce-marks.module.d.ts +3 -0
  53. package/dist/lib/org-quiesce/org-quiesce-marks.module.d.ts.map +1 -0
  54. package/dist/lib/org-quiesce/org-quiesce-marks.module.js +21 -0
  55. package/dist/lib/org-quiesce/org-quiesce-marks.module.js.map +1 -0
  56. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.d.ts +13 -0
  57. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.d.ts.map +1 -0
  58. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.js +63 -0
  59. package/dist/lib/org-quiesce/org-quiesce-refusal-mapping.js.map +1 -0
  60. package/dist/lib/org-quiesce/org-quiesce-refusal.d.ts +33 -0
  61. package/dist/lib/org-quiesce/org-quiesce-refusal.d.ts.map +1 -0
  62. package/dist/lib/org-quiesce/org-quiesce-refusal.js +50 -0
  63. package/dist/lib/org-quiesce/org-quiesce-refusal.js.map +1 -0
  64. package/dist/lib/org-quiesce/org-write-fence-apply.d.ts +10 -0
  65. package/dist/lib/org-quiesce/org-write-fence-apply.d.ts.map +1 -0
  66. package/dist/lib/org-quiesce/org-write-fence-apply.js +55 -0
  67. package/dist/lib/org-quiesce/org-write-fence-apply.js.map +1 -0
  68. package/dist/lib/org-quiesce/org-write-fence-coverage.d.ts +18 -0
  69. package/dist/lib/org-quiesce/org-write-fence-coverage.d.ts.map +1 -0
  70. package/dist/lib/org-quiesce/org-write-fence-coverage.js +51 -0
  71. package/dist/lib/org-quiesce/org-write-fence-coverage.js.map +1 -0
  72. package/dist/lib/org-quiesce/org-write-fence-token.sql.d.ts +2 -0
  73. package/dist/lib/org-quiesce/org-write-fence-token.sql.d.ts.map +1 -0
  74. package/dist/lib/org-quiesce/org-write-fence-token.sql.js +80 -0
  75. package/dist/lib/org-quiesce/org-write-fence-token.sql.js.map +1 -0
  76. package/dist/lib/org-quiesce/org-write-fence-triggers.d.ts +48 -0
  77. package/dist/lib/org-quiesce/org-write-fence-triggers.d.ts.map +1 -0
  78. package/dist/lib/org-quiesce/org-write-fence-triggers.js +171 -0
  79. package/dist/lib/org-quiesce/org-write-fence-triggers.js.map +1 -0
  80. package/dist/lib/org-quiesce/org-write-fence.sql.d.ts +2 -0
  81. package/dist/lib/org-quiesce/org-write-fence.sql.d.ts.map +1 -0
  82. package/dist/lib/org-quiesce/org-write-fence.sql.js +132 -0
  83. package/dist/lib/org-quiesce/org-write-fence.sql.js.map +1 -0
  84. package/dist/lib/sdk-owned-migrations.d.ts.map +1 -1
  85. package/dist/lib/sdk-owned-migrations.js +5 -1
  86. package/dist/lib/sdk-owned-migrations.js.map +1 -1
  87. package/dist/lib/service-migration-scan.d.ts +2 -1
  88. package/dist/lib/service-migration-scan.d.ts.map +1 -1
  89. package/dist/lib/service-migration-scan.js +7 -2
  90. package/dist/lib/service-migration-scan.js.map +1 -1
  91. package/dist/lib/session-timezone.d.ts +6 -1
  92. package/dist/lib/session-timezone.d.ts.map +1 -1
  93. package/dist/lib/session-timezone.js +12 -0
  94. package/dist/lib/session-timezone.js.map +1 -1
  95. package/dist/lib/tenant-isolation/authored-resource-org-erasure.d.ts.map +1 -1
  96. package/dist/lib/tenant-isolation/authored-resource-org-erasure.js +22 -19
  97. package/dist/lib/tenant-isolation/authored-resource-org-erasure.js.map +1 -1
  98. package/dist/lib/tenant-isolation/org-erasure.d.ts +1 -0
  99. package/dist/lib/tenant-isolation/org-erasure.d.ts.map +1 -1
  100. package/dist/lib/tenant-isolation/org-erasure.js +9 -7
  101. package/dist/lib/tenant-isolation/org-erasure.js.map +1 -1
  102. package/package.json +12 -11
  103. package/xema-peer-facts.json +7 -7
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ORG_WRITE_FENCE_SQL = void 0;
4
+ exports.ORG_WRITE_FENCE_SQL = `
5
+ CREATE FUNCTION xema_org_quiesce_lock_key(p_org text) RETURNS bigint
6
+ LANGUAGE sql STABLE SET search_path FROM CURRENT AS $fn$
7
+ SELECT hashtext(current_schema() || ':' || 'org-quiesce:' || p_org)::bigint
8
+ $fn$;
9
+
10
+ CREATE FUNCTION xema_org_holds_erasure_lock(p_org text) RETURNS boolean
11
+ LANGUAGE sql VOLATILE SET search_path FROM CURRENT AS $fn$
12
+ SELECT EXISTS (
13
+ SELECT 1
14
+ FROM pg_locks AS l, xema_org_quiesce_lock_key(p_org) AS k(key)
15
+ WHERE l.locktype = 'advisory'
16
+ AND l.database = (SELECT d.oid FROM pg_database AS d WHERE d.datname = current_database())
17
+ AND l.pid = pg_backend_pid()
18
+ AND l.mode = 'ExclusiveLock'
19
+ AND l.granted
20
+ AND l.objsubid = 1
21
+ AND l.classid::bigint = (k.key >> 32) & 4294967295
22
+ AND l.objid::bigint = k.key & 4294967295
23
+ )
24
+ $fn$;
25
+
26
+ CREATE FUNCTION xema_org_is_quiescing(p_org text) RETURNS boolean
27
+ LANGUAGE plpgsql VOLATILE SET search_path FROM CURRENT AS $fn$
28
+ BEGIN
29
+ -- The hot path: one shared advisory lock and one indexed read. The pg_locks
30
+ -- scan (which takes every lock-manager partition lock) runs ONLY for a
31
+ -- marked org, never per ordinary row write.
32
+ PERFORM pg_advisory_xact_lock_shared(xema_org_quiesce_lock_key(p_org));
33
+ IF EXISTS (SELECT 1 FROM "org_quiesce_marks" AS m WHERE m."org_id" = p_org) THEN
34
+ RETURN NOT xema_org_holds_erasure_lock(p_org);
35
+ END IF;
36
+ RETURN false;
37
+ END
38
+ $fn$;
39
+
40
+ CREATE FUNCTION xema_org_write_fence(p_org text) RETURNS void
41
+ LANGUAGE plpgsql VOLATILE SET search_path FROM CURRENT AS $fn$
42
+ BEGIN
43
+ IF xema_org_is_quiescing(p_org) THEN
44
+ RAISE EXCEPTION USING ERRCODE = 'XQ409', MESSAGE = 'ORG_QUIESCING', DETAIL = p_org;
45
+ END IF;
46
+ END
47
+ $fn$;
48
+
49
+ CREATE FUNCTION xema_org_write_fence_org_of_row(p_row jsonb, p_is_new boolean, p_nargs integer, p_a0 text, p_a1 text, p_a2 text, p_a3 text) RETURNS text
50
+ LANGUAGE plpgsql VOLATILE SET search_path FROM CURRENT AS $fn$
51
+ DECLARE
52
+ fk_value text;
53
+ key_type text;
54
+ parent_org text;
55
+ found boolean;
56
+ BEGIN
57
+ IF p_nargs = 1 THEN
58
+ RETURN p_row ->> p_a0;
59
+ END IF;
60
+ IF p_nargs <> 4 THEN
61
+ RAISE EXCEPTION 'xema_org_write_fence_trigger takes (org_column) or (fk_column, parent_table, parent_key, parent_org_column), got % arguments', p_nargs;
62
+ END IF;
63
+ fk_value := p_row ->> p_a0;
64
+ IF fk_value IS NULL THEN
65
+ RETURN NULL;
66
+ END IF;
67
+ -- The parameter is cast to the parent key's own type, never the column to
68
+ -- text, so the lookup uses the key's index (a uuid or int key included).
69
+ SELECT format_type(a.atttypid, a.atttypmod) INTO key_type
70
+ FROM pg_attribute AS a
71
+ WHERE a.attrelid = to_regclass(quote_ident(p_a1)) AND a.attname = p_a2 AND NOT a.attisdropped;
72
+ IF key_type IS NULL THEN
73
+ RAISE EXCEPTION 'xema_org_write_fence_trigger: parent key %.% does not exist', p_a1, p_a2;
74
+ END IF;
75
+ EXECUTE format('SELECT true, %I::text FROM %I WHERE %I = $1::%s', p_a3, p_a1, p_a2, key_type)
76
+ INTO found, parent_org USING fk_value;
77
+ IF found IS NOT TRUE THEN
78
+ -- A row that is written (NEW) must have its parent: without it the org is
79
+ -- unknown, and an unknown org must never pass the fence.
80
+ IF p_is_new THEN
81
+ RAISE EXCEPTION USING ERRCODE = 'XQ404', MESSAGE = 'ORG_FENCE_PARENT_MISSING', DETAIL = fk_value;
82
+ END IF;
83
+ -- A row that is removed or replaced (OLD) with no parent passes: an ON
84
+ -- DELETE CASCADE from the parent runs after the parent row is gone, and
85
+ -- the parent's own delete was already fenced by its own trigger.
86
+ RETURN NULL;
87
+ END IF;
88
+ RETURN parent_org;
89
+ END
90
+ $fn$;
91
+
92
+ CREATE FUNCTION xema_org_write_fence_trigger() RETURNS trigger
93
+ LANGUAGE plpgsql VOLATILE SET search_path FROM CURRENT AS $fn$
94
+ DECLARE
95
+ new_org text;
96
+ old_org text;
97
+ BEGIN
98
+ IF TG_OP IN ('INSERT', 'UPDATE') THEN
99
+ new_org := xema_org_write_fence_org_of_row(to_jsonb(NEW), true, TG_NARGS, TG_ARGV[0], TG_ARGV[1], TG_ARGV[2], TG_ARGV[3]);
100
+ IF new_org IS NOT NULL THEN
101
+ PERFORM xema_org_write_fence(new_org);
102
+ END IF;
103
+ END IF;
104
+ IF TG_OP IN ('UPDATE', 'DELETE') THEN
105
+ old_org := xema_org_write_fence_org_of_row(to_jsonb(OLD), false, TG_NARGS, TG_ARGV[0], TG_ARGV[1], TG_ARGV[2], TG_ARGV[3]);
106
+ IF old_org IS NOT NULL AND old_org IS DISTINCT FROM new_org THEN
107
+ PERFORM xema_org_write_fence(old_org);
108
+ END IF;
109
+ END IF;
110
+ IF TG_OP = 'DELETE' THEN
111
+ RETURN OLD;
112
+ END IF;
113
+ RETURN NEW;
114
+ END
115
+ $fn$;
116
+
117
+ CREATE FUNCTION xema_org_write_fence_truncate() RETURNS trigger
118
+ LANGUAGE plpgsql VOLATILE SET search_path FROM CURRENT AS $fn$
119
+ BEGIN
120
+ RAISE EXCEPTION USING ERRCODE = 'XQ410', MESSAGE = 'ORG_FENCE_TRUNCATE_REFUSED', DETAIL = TG_TABLE_NAME;
121
+ END
122
+ $fn$;
123
+
124
+ CREATE FUNCTION xema_org_quiesce_mark(p_org text) RETURNS void
125
+ LANGUAGE plpgsql VOLATILE SET search_path FROM CURRENT AS $fn$
126
+ BEGIN
127
+ PERFORM pg_advisory_xact_lock(xema_org_quiesce_lock_key(p_org));
128
+ INSERT INTO "org_quiesce_marks" ("org_id") VALUES (p_org) ON CONFLICT ("org_id") DO NOTHING;
129
+ END
130
+ $fn$;
131
+ `;
132
+ //# sourceMappingURL=org-write-fence.sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-write-fence.sql.js","sourceRoot":"","sources":["../../../src/lib/org-quiesce/org-write-fence.sql.ts"],"names":[],"mappings":";;;AAyCa,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HlC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-owned-migrations.d.ts","sourceRoot":"","sources":["../../src/lib/sdk-owned-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAWvB,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAmBnC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,oBAAoB,EAAE,GACpC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQrB;AA+CD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,SAAS,oBAAoB,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAyCf"}
1
+ {"version":3,"file":"sdk-owned-migrations.d.ts","sourceRoot":"","sources":["../../src/lib/sdk-owned-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAC;AAYvB,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAmBnC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,oBAAoB,EAAE,GACpC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQrB;AAiDD,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,SAAS,oBAAoB,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAyCf"}
@@ -5,6 +5,7 @@ exports.applySdkOwnedMigrations = applySdkOwnedMigrations;
5
5
  const ledger_rows_1 = require("./ledger-rows");
6
6
  const operator_migration_1 = require("./operator-migration");
7
7
  const operator_migration_ledger_1 = require("./operator-migration-ledger");
8
+ const org_write_fence_apply_1 = require("./org-quiesce/org-write-fence-apply");
8
9
  const owned_table_shape_1 = require("./owned-table-shape");
9
10
  const sdk_owned_errors_1 = require("./sdk-owned-errors");
10
11
  const sdk_owned_migration_set_1 = require("./sdk-owned-migration-set");
@@ -18,7 +19,10 @@ function sdkOwnedTableOwners(sets) {
18
19
  return new Map(all.flatMap((set) => set.tables.map((table) => [table.name, set.owner])));
19
20
  }
20
21
  async function assertLedgerKnownToImage(database, sets) {
21
- const known = new Set(migrationIdsOf([operator_migration_ledger_1.operatorMigrationLedgerMigrations, ...sets]));
22
+ const known = new Set([
23
+ ...migrationIdsOf([operator_migration_ledger_1.operatorMigrationLedgerMigrations, ...sets]),
24
+ org_write_fence_apply_1.ORG_WRITE_FENCE_DECLARATION_ID,
25
+ ]);
22
26
  const recorded = await database.query(`SELECT migration_id FROM "${operator_migration_ledger_1.OPERATOR_MIGRATION_LEDGER_TABLE}" WHERE phase = $1 ORDER BY migration_id`, [ledger_rows_1.OperatorMigrationPhase.Applied]);
23
27
  const unknown = recorded.rows
24
28
  .map((row) => row.migration_id)
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-owned-migrations.js","sourceRoot":"","sources":["../../src/lib/sdk-owned-migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-owned-migrations.js","sourceRoot":"","sources":["../../src/lib/sdk-owned-migrations.ts"],"names":[],"mappings":";;AAyCA,kDAUC;AAiDD,0DA4CC;AAhJD,+CAMuB;AACvB,6DAA8D;AAC9D,2EAGqC;AACrC,+EAAqF;AACrF,2DAA4D;AAC5D,yDAG4B;AAC5B,uEAImC;AACnC,yEAIoC;AAEpC,SAAS,cAAc,CAAC,IAAqC;IAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/B,IAAA,6CAAmB,EAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAClD,CACF,CAAC;AACJ,CAAC;AAMD,SAAgB,mBAAmB,CACjC,IAAqC;IAErC,MAAM,GAAG,GAAG,CAAC,6DAAiC,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,IAAA,qDAA2B,EAAC,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,GAAG,CACZ,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CACrE,CACF,CAAC;AACJ,CAAC;AAOD,KAAK,UAAU,wBAAwB,CACrC,QAAmC,EACnC,IAAqC;IAErC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;QACpB,GAAG,cAAc,CAAC,CAAC,6DAAiC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE/D,sDAA8B;KAC/B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,CACnC,6BAA6B,2DAA+B,0CAA0C,EACtG,CAAC,oCAAsB,CAAC,OAAO,CAAC,CACjC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI;SAC1B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC;SAC9B,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,wDAAqC,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAuBM,KAAK,UAAU,uBAAuB,CAC3C,QAAmC,EACnC,IAAqC;IAErC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,SAAS,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,IAAA,6CAAmB,EAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,cAAc,GAAG,IAAA,oBAAM,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAE7C,MAAM,OAAO,GACX,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACpB,MAAM,IAAA,2CAAsB,EAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBAC/D,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAS,EAC9B,EAAE,EACF,WAAW,EACX,oCAAsB,CAAC,OAAO,CAC/B,CAAC;gBACF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;wBAChC,MAAM,IAAI,gDAA6B,CAAC,WAAW,CAAC,CAAC;oBACvD,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,OAAO,GAAG,MAAM,IAAA,iDAAsB,EAAC,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACnE,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,IAAA,yBAAW,EACf,EAAE,EACF,WAAW,EACX,oCAAsB,CAAC,OAAO,EAC9B,cAAc,CACf,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC7B,IAAA,mDAAwB,EAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAA,yCAAqB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { SdkOwnedTablePriorCreator } from './sdk-owned-migration-set';
1
2
  export declare function sdkOwnedTableNamedByMigration(sql: string, tables: readonly string[]): string | undefined;
2
- export declare function assertServiceMigrationsLeaveSdkOwnedTablesAlone(workspaceDir: string, ownerOfTable: ReadonlyMap<string, string>): Promise<void>;
3
+ export declare function assertServiceMigrationsLeaveSdkOwnedTablesAlone(workspaceDir: string, ownerOfTable: ReadonlyMap<string, string>, priorCreators: readonly SdkOwnedTablePriorCreator[]): Promise<void>;
3
4
  //# sourceMappingURL=service-migration-scan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-migration-scan.d.ts","sourceRoot":"","sources":["../../src/lib/service-migration-scan.ts"],"names":[],"mappings":"AAgKA,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,MAAM,GAAG,SAAS,CAuBpB;AAOD,wBAAsB,+CAA+C,CACnE,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC,CAgBf"}
1
+ {"version":3,"file":"service-migration-scan.d.ts","sourceRoot":"","sources":["../../src/lib/service-migration-scan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AA4J3E,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,MAAM,GAAG,SAAS,CAuBpB;AAeD,wBAAsB,+CAA+C,CACnE,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,aAAa,EAAE,SAAS,yBAAyB,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
@@ -4,6 +4,7 @@ exports.sdkOwnedTableNamedByMigration = sdkOwnedTableNamedByMigration;
4
4
  exports.assertServiceMigrationsLeaveSdkOwnedTablesAlone = assertServiceMigrationsLeaveSdkOwnedTablesAlone;
5
5
  const promises_1 = require("node:fs/promises");
6
6
  const node_path_1 = require("node:path");
7
+ const ledger_rows_1 = require("./ledger-rows");
7
8
  const migration_history_1 = require("./migration-history");
8
9
  const sdk_owned_errors_1 = require("./sdk-owned-errors");
9
10
  var TokenKind;
@@ -151,11 +152,15 @@ function sdkOwnedTableNamedByMigration(sql, tables) {
151
152
  }
152
153
  return undefined;
153
154
  }
154
- async function assertServiceMigrationsLeaveSdkOwnedTablesAlone(workspaceDir, ownerOfTable) {
155
+ async function assertServiceMigrationsLeaveSdkOwnedTablesAlone(workspaceDir, ownerOfTable, priorCreators) {
155
156
  const tables = [...ownerOfTable.keys()];
156
157
  for (const migration of await (0, migration_history_1.readLocalPrismaMigrationNames)(workspaceDir)) {
157
158
  const sql = await (0, promises_1.readFile)((0, node_path_1.join)(workspaceDir, 'prisma', 'migrations', migration, 'migration.sql'), 'utf8');
158
- const table = sdkOwnedTableNamedByMigration(sql, tables);
159
+ const checksum = (0, ledger_rows_1.sha256)(sql);
160
+ const declared = new Set(priorCreators
161
+ .filter((prior) => prior.serviceMigration === migration && prior.sha256 === checksum)
162
+ .map((prior) => prior.table));
163
+ const table = sdkOwnedTableNamedByMigration(sql, tables.filter((candidate) => !declared.has(candidate)));
159
164
  if (table !== undefined) {
160
165
  throw new sdk_owned_errors_1.ServiceMigrationTouchesSdkOwnedTableError(migration, table, ownerOfTable.get(table) ?? '');
161
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service-migration-scan.js","sourceRoot":"","sources":["../../src/lib/service-migration-scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-migration-scan.js","sourceRoot":"","sources":["../../src/lib/service-migration-scan.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  export declare enum DatabaseSessionPath {
2
2
  AppPool = "app-pool",
3
3
  Bootstrap = "bootstrap",
4
- OperatorMigration = "operator-migration"
4
+ OperatorMigration = "operator-migration",
5
+ ConsumerPool = "consumer-pool"
5
6
  }
6
7
  export declare class DatabaseSessionTimeZoneError extends Error {
7
8
  readonly expected: string;
@@ -34,4 +35,8 @@ export interface ConnectableSessionClient extends PgSessionProbe {
34
35
  end(): Promise<void>;
35
36
  }
36
37
  export declare function connectVerified(client: ConnectableSessionClient, path: DatabaseSessionPath): Promise<void>;
38
+ export interface ClosableSessionPool extends PgSessionProbe {
39
+ end(): Promise<void>;
40
+ }
41
+ export declare function verifyPgPoolSessionUtc<P extends ClosableSessionPool>(pool: P): Promise<P>;
37
42
  //# sourceMappingURL=session-timezone.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-timezone.d.ts","sourceRoot":"","sources":["../../src/lib/session-timezone.ts"],"names":[],"mappings":"AAMA,oBAAY,mBAAmB;IAE7B,OAAO,aAAa;IAEpB,SAAS,cAAc;IAEvB,iBAAiB,uBAAuB;CACzC;AAgBD,qBAAa,4BAA6B,SAAQ,KAAK;IAEnD,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,cAAc,EAAE,mBAAmB;gBAFnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,mBAAmB;CAW/C;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC;CACxE;AAGD,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACzE;AAGD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,kBAAkB,GAClB,yBAAyB,CAAC;AAqC9B,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,oBAAoB,EAC3B,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAUf;AAGD,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAMD,wBAAsB,eAAe,CACnC,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"session-timezone.d.ts","sourceRoot":"","sources":["../../src/lib/session-timezone.ts"],"names":[],"mappings":"AAMA,oBAAY,mBAAmB;IAE7B,OAAO,aAAa;IAEpB,SAAS,cAAc;IAEvB,iBAAiB,uBAAuB;IAKxC,YAAY,kBAAkB;CAC/B;AAgBD,qBAAa,4BAA6B,SAAQ,KAAK;IAEnD,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,cAAc,EAAE,mBAAmB;gBAFnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,mBAAmB;CAW/C;AAGD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC;CACxE;AAGD,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACzE;AAGD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,kBAAkB,GAClB,yBAAyB,CAAC;AAqC9B,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,oBAAoB,EAC3B,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAUf;AAGD,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAMD,wBAAsB,eAAe,CACnC,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAQf;AAGD,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAWD,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,mBAAmB,EACxE,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,CAAC,CAQZ"}
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DatabaseSessionTimeZoneError = exports.DatabaseSessionPath = void 0;
4
4
  exports.assertDatabaseSessionUtc = assertDatabaseSessionUtc;
5
5
  exports.connectVerified = connectVerified;
6
+ exports.verifyPgPoolSessionUtc = verifyPgPoolSessionUtc;
6
7
  const database_url_1 = require("./database-url");
7
8
  var DatabaseSessionPath;
8
9
  (function (DatabaseSessionPath) {
9
10
  DatabaseSessionPath["AppPool"] = "app-pool";
10
11
  DatabaseSessionPath["Bootstrap"] = "bootstrap";
11
12
  DatabaseSessionPath["OperatorMigration"] = "operator-migration";
13
+ DatabaseSessionPath["ConsumerPool"] = "consumer-pool";
12
14
  })(DatabaseSessionPath || (exports.DatabaseSessionPath = DatabaseSessionPath = {}));
13
15
  const SHOW_TIME_ZONE_SQL = 'SHOW TimeZone';
14
16
  const ACCEPTED_ZONES = [
@@ -71,4 +73,14 @@ async function connectVerified(client, path) {
71
73
  throw error;
72
74
  }
73
75
  }
76
+ async function verifyPgPoolSessionUtc(pool) {
77
+ try {
78
+ await assertDatabaseSessionUtc(pool, DatabaseSessionPath.ConsumerPool);
79
+ }
80
+ catch (error) {
81
+ await pool.end();
82
+ throw error;
83
+ }
84
+ return pool;
85
+ }
74
86
  //# sourceMappingURL=session-timezone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-timezone.js","sourceRoot":"","sources":["../../src/lib/session-timezone.ts"],"names":[],"mappings":";;;AAyGA,4DAaC;AAYD,0CAWC;AA7ID,iDAA2D;AAM3D,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAE7B,2CAAoB,CAAA;IAEpB,8CAAuB,CAAA;IAEvB,+DAAwC,CAAA;AAC1C,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B;AAED,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAE3C,MAAM,cAAc,GAAsB;IACxC,wCAAyB,CAAC,WAAW,EAAE;IACvC,SAAS;CACV,CAAC;AASF,MAAa,4BAA6B,SAAQ,KAAK;IAE1C;IACA;IACA;IAHX,YACW,QAAgB,EAChB,QAAgB,EAChB,cAAmC;QAE5C,KAAK,CACH,6BAA6B,cAAc,oBAAoB,QAAQ,IAAI;YACzE,iBAAiB,QAAQ,oCAAoC;YAC7D,kDAAkD;YAClD,0EAA0E;YAC1E,sDAAsD,CACzD,CAAC;QAVO,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,mBAAc,GAAd,cAAc,CAAqB;QAS5C,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAfD,oEAeC;AA0BD,SAAS,aAAa,CACpB,KAA2B;IAE3B,OAAO,iBAAiB,IAAI,KAAK,CAAC;AACpC,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA2B;IAE3B,OAAO,UAAU,IAAI,KAAK,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAA2B;IACrD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC;YAClC,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAQM,KAAK,UAAU,wBAAwB,CAC5C,KAA2B,EAC3B,IAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,4BAA4B,CACpC,wCAAyB,EACzB,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAYM,KAAK,UAAU,eAAe,CACnC,MAAgC,EAChC,IAAyB;IAEzB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"session-timezone.js","sourceRoot":"","sources":["../../src/lib/session-timezone.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"authored-resource-org-erasure.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/authored-resource-org-erasure.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAeD,MAAM,MAAM,kCAAkC,GAAG,MAAM,CAAC;AAYxD,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,kCAAkC,EAC1C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA+BjC"}
1
+ {"version":3,"file":"authored-resource-org-erasure.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/authored-resource-org-erasure.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAeD,MAAM,MAAM,kCAAkC,GAAG,MAAM,CAAC;AAexD,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,kCAAkC,EAC1C,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiCjC"}
@@ -1,27 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.eraseOwnedAuthoredResourceGraph = eraseOwnedAuthoredResourceGraph;
4
+ const org_erasure_transaction_1 = require("../org-quiesce/org-erasure-transaction");
4
5
  async function eraseOwnedAuthoredResourceGraph(client, orgId, names) {
5
- const identity = requireIdentityDelegate(client, names.identityModel);
6
- const revision = requireDeleteManyDelegate(client, names.revisionModel);
7
- const draft = requireDeleteManyDelegate(client, names.draftModel);
8
- const releaseIntent = requireDeleteManyDelegate(client, names.releaseIntentModel);
9
- const identityWhere = { ownerOrgId: orgId };
10
- const childWhere = { identity: { ownerOrgId: orgId } };
11
- await identity.updateMany({
12
- where: identityWhere,
13
- data: { draftId: null },
6
+ return await (0, org_erasure_transaction_1.inOrgErasureTransaction)(client, orgId, async (tx) => {
7
+ const identity = requireIdentityDelegate(tx, names.identityModel);
8
+ const revision = requireDeleteManyDelegate(tx, names.revisionModel);
9
+ const draft = requireDeleteManyDelegate(tx, names.draftModel);
10
+ const releaseIntent = requireDeleteManyDelegate(tx, names.releaseIntentModel);
11
+ const identityWhere = { ownerOrgId: orgId };
12
+ const childWhere = { identity: { ownerOrgId: orgId } };
13
+ await identity.updateMany({
14
+ where: identityWhere,
15
+ data: { draftId: null },
16
+ });
17
+ const intents = await releaseIntent.deleteMany({ where: childWhere });
18
+ const drafts = await draft.deleteMany({ where: childWhere });
19
+ const revisions = await revision.deleteMany({ where: childWhere });
20
+ const identities = await identity.deleteMany({ where: identityWhere });
21
+ return {
22
+ [names.releaseIntentModel]: intents.count,
23
+ [names.draftModel]: drafts.count,
24
+ [names.revisionModel]: revisions.count,
25
+ [names.identityModel]: identities.count,
26
+ };
14
27
  });
15
- const intents = await releaseIntent.deleteMany({ where: childWhere });
16
- const drafts = await draft.deleteMany({ where: childWhere });
17
- const revisions = await revision.deleteMany({ where: childWhere });
18
- const identities = await identity.deleteMany({ where: identityWhere });
19
- return {
20
- [names.releaseIntentModel]: intents.count,
21
- [names.draftModel]: drafts.count,
22
- [names.revisionModel]: revisions.count,
23
- [names.identityModel]: identities.count,
24
- };
25
28
  }
26
29
  function requireDeleteManyDelegate(client, modelName) {
27
30
  const delegate = client[delegateName(modelName)];
@@ -1 +1 @@
1
- {"version":3,"file":"authored-resource-org-erasure.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/authored-resource-org-erasure.ts"],"names":[],"mappings":";;AAgCA,0EAmCC;AAnCM,KAAK,UAAU,+BAA+B,CACnD,MAA0C,EAC1C,KAAa,EACb,KAAiC;IAEjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,yBAAyB,CAC7C,MAAM,EACN,KAAK,CAAC,kBAAkB,CACzB,CAAC;IACF,MAAM,aAAa,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;IAMvD,MAAM,QAAQ,CAAC,UAAU,CAAC;QACxB,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACxB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAEvE,OAAO;QACL,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,KAAK;QACzC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK;QAChC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,KAAK;QACtC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,KAAK;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,MAA0C,EAC1C,SAAiB;IAEjB,MAAM,QAAQ,GAAI,MAAkC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9E,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,OAAQ,QAAwC,CAAC,UAAU,KAAK,UAAU,EAC1E,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,gBAAgB,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,QAA8B,CAAC;AACxC,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAA0C,EAC1C,SAAiB;IAEjB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9D,IACE,OAAQ,QAAsC,CAAC,UAAU,KAAK,UAAU,EACxE,CAAC;QACD,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,gBAAgB,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,QAA4B,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACrC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"authored-resource-org-erasure.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/authored-resource-org-erasure.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,6 @@ export declare class OrgErasureMatchesNothingError extends Error {
15
15
  constructor(orgField: string, knownModels: readonly string[], exemptModels: readonly string[]);
16
16
  }
17
17
  export declare function assertOrgErasureMatchesModels(client: unknown, options?: EraseOrgDataOptions): ReadonlySet<string>;
18
+ export declare function delegateKeyForModel(modelName: string): string;
18
19
  export declare function eraseOrgData(client: unknown, orgId: string, options?: EraseOrgDataOptions): Promise<OrgErasureReport>;
19
20
  //# sourceMappingURL=org-erasure.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"org-erasure.d.ts","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/org-erasure.ts"],"names":[],"mappings":"AAqCA,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;AAOD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7D;AAkBD,wBAAsB,YAAY,CAChC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA2D3B"}
@@ -2,8 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OrgErasureMatchesNothingError = exports.OrgErasureBlockedError = void 0;
4
4
  exports.assertOrgErasureMatchesModels = assertOrgErasureMatchesModels;
5
+ exports.delegateKeyForModel = delegateKeyForModel;
5
6
  exports.eraseOrgData = eraseOrgData;
6
7
  const tenant_isolation_extension_1 = require("./tenant-isolation.extension");
8
+ const org_erasure_transaction_1 = require("../org-quiesce/org-erasure-transaction");
7
9
  const PRISMA_FK_VIOLATION_CODE = 'P2003';
8
10
  class OrgErasureBlockedError extends Error {
9
11
  orgId;
@@ -72,14 +74,14 @@ async function eraseOrgData(client, orgId, options = {}) {
72
74
  const blocked = [];
73
75
  let progressed = false;
74
76
  for (const modelName of remaining) {
75
- const delegate = client[delegateKeyForModel(modelName)];
76
- if (delegate?.deleteMany === undefined) {
77
- throw new Error(`[org-erasure] Prisma client has no deleteMany delegate for model ` +
78
- `"${modelName}" (looked up "${delegateKeyForModel(modelName)}").`);
79
- }
80
77
  try {
81
- const { count } = await delegate.deleteMany({
82
- where: { [orgField]: orgId },
78
+ const { count } = await (0, org_erasure_transaction_1.inOrgErasureTransaction)(client, orgId, async (tx) => {
79
+ const delegate = tx[delegateKeyForModel(modelName)];
80
+ if (delegate?.deleteMany === undefined) {
81
+ throw new Error(`[org-erasure] Prisma client has no deleteMany delegate for model ` +
82
+ `"${modelName}" (looked up "${delegateKeyForModel(modelName)}").`);
83
+ }
84
+ return await delegate.deleteMany({ where: { [orgField]: orgId } });
83
85
  });
84
86
  deletedByModel[modelName] = (deletedByModel[modelName] ?? 0) + count;
85
87
  progressed = true;
@@ -1 +1 @@
1
- {"version":3,"file":"org-erasure.js","sourceRoot":"","sources":["../../../src/lib/tenant-isolation/org-erasure.ts"],"names":[],"mappings":"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"}
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": "7.2.0",
3
+ "version": "8.0.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)",
@@ -35,7 +35,7 @@
35
35
  "@types/jest": "^30.0.0",
36
36
  "@types/node": "25.2.3",
37
37
  "@types/pg": "^8.16.0",
38
- "@xemahq/identity-client": "^0.15.5",
38
+ "@xemahq/identity-client": "^0.36.0",
39
39
  "@xemahq/contracts": "^0.111.0",
40
40
  "@xemahq/pg-test-harness": "^0.8.0",
41
41
  "@xemahq/platform-common": ">=0.83.1",
@@ -45,10 +45,10 @@
45
45
  "prisma": "7.8.0",
46
46
  "ts-jest": "^29.4.9",
47
47
  "typescript": "5.9.3",
48
- "@xemahq/service-registry-nest": "1.2.0",
49
- "@xemahq/peer-analysis": "0.2.0",
50
- "@xemahq/eslint-config": "0.14.1",
51
- "@xemahq/xema-decorators": "2.1.0"
48
+ "@xemahq/eslint-config": "0.14.2",
49
+ "@xemahq/service-registry-nest": "1.3.0",
50
+ "@xemahq/xema-decorators": "2.1.0",
51
+ "@xemahq/peer-analysis": "0.2.1"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "@nestjs/common": "^10 || ^11",
@@ -63,7 +63,7 @@
63
63
  "dependencies": {
64
64
  "@prisma/generator-helper": "7.8.0",
65
65
  "@xemahq/migration-runner-prisma": "^0.3.1",
66
- "@xemahq/org-erasure-nest": "^6.0.0",
66
+ "@xemahq/org-erasure-nest": "^6.0.1",
67
67
  "pg": "^8.16.3"
68
68
  },
69
69
  "exports": {
@@ -88,11 +88,12 @@
88
88
  "clean": "rm -rf dist xema-peer-facts.json",
89
89
  "build": "tsc -p tsconfig.build.json && xema-peer-facts",
90
90
  "format": "prettier --write \"src/**/*.ts\"",
91
- "lint": "eslint .",
92
- "test": "jest --config jest.config.ts && jest --config jest.pg.config.ts",
93
- "typecheck": "tsc -p tsconfig.json --noEmit"
91
+ "generate:fixtures": "prisma generate --config test/fixture-org-write-fence/prisma.config.ts",
92
+ "lint": "pnpm run generate:fixtures && eslint .",
93
+ "test": "pnpm run generate:fixtures && NODE_OPTIONS=--experimental-vm-modules jest --config jest.config.ts && jest --config jest.pg.config.ts",
94
+ "typecheck": "pnpm run generate:fixtures && tsc -p tsconfig.json --noEmit"
94
95
  },
95
96
  "xemaRelease": {
96
- "sourceDigest": "sha256:f9bf785328537df1be4856dd5702a8acc5fe2f37d9caf340114e7c5341451d9d"
97
+ "sourceDigest": "sha256:59a110847590327b80caf480d1de692b71fd0f689994611283df94153ef86583"
97
98
  }
98
99
  }
@@ -2,11 +2,11 @@
2
2
  "factsVersion": 1,
3
3
  "package": {
4
4
  "name": "@xemahq/biome-database-nest",
5
- "version": "7.2.0"
5
+ "version": "8.0.0"
6
6
  },
7
7
  "seamTable": {
8
8
  "version": 3,
9
- "sha256": "130bca5d4f660ea94a1cb03ef5a4c2ab8e1b8058cd357bb217f6f01eed2ecf76"
9
+ "sha256": "88a8fa49f2443deeb259556d44d4c38ed6e4039871fec2920ac3c33e668d3bfc"
10
10
  },
11
11
  "exports": [
12
12
  {
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "evidence": {
48
48
  "path": "src/index.ts",
49
- "line": 304,
49
+ "line": 310,
50
50
  "seam": "package-peer-facts"
51
51
  }
52
52
  }
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "evidence": {
70
70
  "path": "src/index.ts",
71
- "line": 304,
71
+ "line": 310,
72
72
  "seam": "package-peer-facts"
73
73
  }
74
74
  }
@@ -90,7 +90,7 @@
90
90
  },
91
91
  "evidence": {
92
92
  "path": "src/lib/nest/org-erasure.module.ts",
93
- "line": 44,
93
+ "line": 52,
94
94
  "seam": "package-peer-facts"
95
95
  }
96
96
  }
@@ -112,7 +112,7 @@
112
112
  },
113
113
  "evidence": {
114
114
  "path": "src/index.ts",
115
- "line": 304,
115
+ "line": 310,
116
116
  "seam": "package-peer-facts"
117
117
  }
118
118
  }
@@ -244,7 +244,7 @@
244
244
  },
245
245
  "evidence": {
246
246
  "path": "src/lib/nest/org-erasure.module.ts",
247
- "line": 44,
247
+ "line": 52,
248
248
  "seam": "package-peer-facts"
249
249
  }
250
250
  }