@rocicorp/zero 0.16.2025022800 → 0.17.2025030300

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 (217) hide show
  1. package/out/{chunk-CC4BCASH.js → chunk-BBNRRMOA.js} +132 -103
  2. package/out/{chunk-CC4BCASH.js.map → chunk-BBNRRMOA.js.map} +2 -2
  3. package/out/react.js +1 -4
  4. package/out/react.js.map +2 -2
  5. package/out/shared/src/set-utils.d.ts +1 -1
  6. package/out/shared/src/set-utils.js +1 -1
  7. package/out/shared/src/types.js +2 -0
  8. package/out/shared/src/types.js.map +1 -0
  9. package/out/solid.js +1 -1
  10. package/out/z2s/src/compiler.d.ts +26 -0
  11. package/out/z2s/src/compiler.d.ts.map +1 -0
  12. package/out/z2s/src/compiler.js +155 -0
  13. package/out/z2s/src/compiler.js.map +1 -0
  14. package/out/z2s/src/sql.d.ts +12 -0
  15. package/out/z2s/src/sql.d.ts.map +1 -0
  16. package/out/z2s/src/sql.js +18 -0
  17. package/out/z2s/src/sql.js.map +1 -0
  18. package/out/zero/src/pg.d.ts +2 -0
  19. package/out/zero/src/pg.d.ts.map +1 -0
  20. package/out/zero/src/pg.js +3 -0
  21. package/out/zero/src/pg.js.map +1 -0
  22. package/out/zero-cache/src/auth/load-permissions.d.ts +2 -2
  23. package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
  24. package/out/zero-cache/src/auth/load-permissions.js +6 -6
  25. package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
  26. package/out/zero-cache/src/auth/write-authorizer.d.ts +1 -1
  27. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  28. package/out/zero-cache/src/auth/write-authorizer.js +4 -2
  29. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  30. package/out/zero-cache/src/config/zero-config.d.ts +25 -9
  31. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  32. package/out/zero-cache/src/config/zero-config.js +49 -20
  33. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  34. package/out/zero-cache/src/db/migration.d.ts +1 -1
  35. package/out/zero-cache/src/db/migration.d.ts.map +1 -1
  36. package/out/zero-cache/src/db/migration.js +16 -5
  37. package/out/zero-cache/src/db/migration.js.map +1 -1
  38. package/out/zero-cache/src/scripts/deploy-permissions.js +35 -19
  39. package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
  40. package/out/zero-cache/src/scripts/permissions.d.ts +17 -0
  41. package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
  42. package/out/zero-cache/src/scripts/permissions.js +3 -1
  43. package/out/zero-cache/src/scripts/permissions.js.map +1 -1
  44. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  45. package/out/zero-cache/src/server/change-streamer.js +5 -3
  46. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  47. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  48. package/out/zero-cache/src/server/main.js +3 -1
  49. package/out/zero-cache/src/server/main.js.map +1 -1
  50. package/out/zero-cache/src/server/multi/config.d.ts +13 -3
  51. package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
  52. package/out/zero-cache/src/server/multi/config.js +1 -1
  53. package/out/zero-cache/src/server/multi/config.js.map +1 -1
  54. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  55. package/out/zero-cache/src/server/syncer.js +5 -3
  56. package/out/zero-cache/src/server/syncer.js.map +1 -1
  57. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +3 -3
  58. package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
  59. package/out/zero-cache/src/services/change-source/custom/change-source.js +21 -19
  60. package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
  61. package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts +1 -1
  62. package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts.map +1 -1
  63. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +3 -3
  64. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  65. package/out/zero-cache/src/services/change-source/pg/change-source.js +29 -29
  66. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  67. package/out/zero-cache/src/services/change-source/pg/decommission.d.ts +4 -0
  68. package/out/zero-cache/src/services/change-source/pg/decommission.d.ts.map +1 -0
  69. package/out/zero-cache/src/services/change-source/pg/decommission.js +21 -0
  70. package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -0
  71. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +2 -2
  72. package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
  73. package/out/zero-cache/src/services/change-source/pg/initial-sync.js +9 -10
  74. package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
  75. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +3 -2
  76. package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
  77. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +39 -18
  78. package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
  79. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +4 -3
  80. package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
  81. package/out/zero-cache/src/services/change-source/pg/schema/init.js +52 -12
  82. package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
  83. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +3 -5
  84. package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
  85. package/out/zero-cache/src/services/change-source/pg/schema/published.js +1 -3
  86. package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
  87. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +10 -14
  88. package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
  89. package/out/zero-cache/src/services/change-source/pg/schema/shard.js +69 -66
  90. package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
  91. package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts +1 -0
  92. package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts.map +1 -1
  93. package/out/zero-cache/src/services/change-source/pg/schema/validation.js +1 -0
  94. package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
  95. package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts +1 -1
  96. package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts.map +1 -1
  97. package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
  98. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +3 -2
  99. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  100. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +11 -11
  101. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  102. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +3 -2
  103. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -1
  104. package/out/zero-cache/src/services/change-streamer/schema/init.js +25 -14
  105. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  106. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +6 -5
  107. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  108. package/out/zero-cache/src/services/change-streamer/schema/tables.js +28 -26
  109. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  110. package/out/zero-cache/src/services/change-streamer/storer.d.ts +4 -2
  111. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  112. package/out/zero-cache/src/services/change-streamer/storer.js +20 -12
  113. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  114. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +3 -2
  115. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  116. package/out/zero-cache/src/services/mutagen/mutagen.js +19 -17
  117. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  118. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +7 -5
  119. package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
  120. package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
  121. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +2 -1
  122. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  123. package/out/zero-cache/src/services/view-syncer/client-handler.js +6 -6
  124. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  125. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +3 -1
  126. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  127. package/out/zero-cache/src/services/view-syncer/cvr-store.js +20 -10
  128. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  129. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +6 -3
  130. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  131. package/out/zero-cache/src/services/view-syncer/cvr.js +106 -62
  132. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  133. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +3 -2
  134. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  135. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +5 -3
  136. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  137. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +3 -2
  138. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
  139. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +5 -3
  140. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
  141. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +3 -5
  142. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  143. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +38 -40
  144. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  145. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +2 -1
  146. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  147. package/out/zero-cache/src/services/view-syncer/schema/init.js +7 -6
  148. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  149. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +26 -18
  150. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
  151. package/out/zero-cache/src/services/view-syncer/schema/types.js +12 -9
  152. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  153. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +5 -3
  154. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  155. package/out/zero-cache/src/services/view-syncer/snapshotter.js +25 -23
  156. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  157. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +10 -1
  158. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  159. package/out/zero-cache/src/services/view-syncer/view-syncer.js +159 -29
  160. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  161. package/out/zero-cache/src/types/shards.d.ts +33 -0
  162. package/out/zero-cache/src/types/shards.d.ts.map +1 -0
  163. package/out/zero-cache/src/types/shards.js +44 -0
  164. package/out/zero-cache/src/types/shards.js.map +1 -0
  165. package/out/zero-client/src/client/custom.d.ts +1 -1
  166. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  167. package/out/zero-client/src/client/zero.d.ts +1 -1
  168. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  169. package/out/zero-client/src/mod.d.ts +1 -0
  170. package/out/zero-client/src/mod.d.ts.map +1 -1
  171. package/out/zero-pg/src/custom.d.ts +42 -0
  172. package/out/zero-pg/src/custom.d.ts.map +1 -0
  173. package/out/zero-pg/src/custom.js +99 -0
  174. package/out/zero-pg/src/custom.js.map +1 -0
  175. package/out/zero-pg/src/db.d.ts +27 -0
  176. package/out/zero-pg/src/db.d.ts.map +1 -0
  177. package/out/zero-pg/src/db.js +2 -0
  178. package/out/zero-pg/src/db.js.map +1 -0
  179. package/out/zero-pg/src/logging.d.ts +3 -0
  180. package/out/zero-pg/src/logging.d.ts.map +1 -0
  181. package/out/zero-pg/src/logging.js +5 -0
  182. package/out/zero-pg/src/logging.js.map +1 -0
  183. package/out/zero-pg/src/mod.d.ts +6 -0
  184. package/out/zero-pg/src/mod.d.ts.map +1 -0
  185. package/out/zero-pg/src/mod.js +2 -0
  186. package/out/zero-pg/src/mod.js.map +1 -0
  187. package/out/zero-pg/src/query.d.ts +22 -0
  188. package/out/zero-pg/src/query.d.ts.map +1 -0
  189. package/out/zero-pg/src/query.js +54 -0
  190. package/out/zero-pg/src/query.js.map +1 -0
  191. package/out/zero-pg/src/web.d.ts +16 -0
  192. package/out/zero-pg/src/web.d.ts.map +1 -0
  193. package/out/zero-pg/src/web.js +115 -0
  194. package/out/zero-pg/src/web.js.map +1 -0
  195. package/out/zero-react/src/use-zero.d.ts +5 -4
  196. package/out/zero-react/src/use-zero.d.ts.map +1 -1
  197. package/out/zero.js +1 -1
  198. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  199. package/out/zql/src/ivm/exists.js +138 -122
  200. package/out/zql/src/ivm/exists.js.map +1 -1
  201. package/out/zql/src/mutate/custom.js +10 -0
  202. package/out/zql/src/mutate/custom.js.map +1 -0
  203. package/out/zql/src/query/query-impl.d.ts +2 -2
  204. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  205. package/out/zql/src/query/query-impl.js +1 -1
  206. package/out/zql/src/query/query-impl.js.map +1 -1
  207. package/out/zql/src/query/query.d.ts +1 -1
  208. package/out/zql/src/query/query.d.ts.map +1 -1
  209. package/out/zql/src/query/static-query.d.ts +1 -1
  210. package/out/zql/src/query/static-query.d.ts.map +1 -1
  211. package/out/zql/src/query/static-query.js +3 -3
  212. package/out/zql/src/query/static-query.js.map +1 -1
  213. package/package.json +5 -1
  214. package/out/zero-cache/src/services/change-source/pg/shard-config.d.ts +0 -19
  215. package/out/zero-cache/src/services/change-source/pg/shard-config.d.ts.map +0 -1
  216. package/out/zero-cache/src/services/change-source/pg/shard-config.js +0 -2
  217. package/out/zero-cache/src/services/change-source/pg/shard-config.js.map +0 -1
@@ -1,17 +1,28 @@
1
1
  import { runSchemaMigrations, } from "../../../db/migration.js";
2
- import { cdcSchema, createReplicationStateTable, setupCDCTables, } from "./tables.js";
3
- async function migrateFromLegacySchema(lc, db, newSchema) {
4
- const result = await db `SELECT * FROM pg_namespace WHERE nspname = 'cdc'`;
5
- if (result.length > 0) {
6
- lc.info?.(`Migrating cdc to ${newSchema}`);
7
- await db `ALTER SCHEMA cdc RENAME TO ${db(newSchema)}`;
2
+ import { cdcSchema } from "../../../types/shards.js";
3
+ import { createReplicationStateTable, setupCDCTables, } from "./tables.js";
4
+ async function migrateFromLegacySchemas(lc, db, newSchema, ...legacy) {
5
+ const rows = await db `
6
+ SELECT nspname FROM pg_namespace
7
+ WHERE nspname IN ${db([newSchema, ...legacy])}`.values();
8
+ const names = rows.flat();
9
+ if (names.includes(newSchema)) {
10
+ return; // already migrated
11
+ }
12
+ for (const schema of legacy) {
13
+ if (names.includes(schema)) {
14
+ lc.info?.(`Migrating ${schema} to ${newSchema}`);
15
+ await db `ALTER SCHEMA ${db(schema)} RENAME TO ${db(newSchema)}`;
16
+ break;
17
+ }
8
18
  }
9
19
  }
10
- export async function initChangeStreamerSchema(log, db, shardID) {
11
- const schema = cdcSchema(shardID);
12
- await migrateFromLegacySchema(log, db, schema);
20
+ export async function initChangeStreamerSchema(log, db, shard) {
21
+ const schema = cdcSchema(shard);
22
+ const { appID } = shard;
23
+ await migrateFromLegacySchemas(log, db, schema, appID === 'zero' ? `cdc_0` : `cdc_${appID}`, 'cdc');
13
24
  const setupMigration = {
14
- migrateSchema: (lc, tx) => setupCDCTables(lc, tx, shardID),
25
+ migrateSchema: (lc, tx) => setupCDCTables(lc, tx, shard),
15
26
  minSafeVersion: 1,
16
27
  };
17
28
  async function migrateV1toV2(_, db) {
@@ -20,10 +31,10 @@ export async function initChangeStreamerSchema(log, db, shardID) {
20
31
  }
21
32
  const migrateV2ToV3 = {
22
33
  migrateSchema: async (_, db) => {
23
- await db.unsafe(createReplicationStateTable(shardID));
34
+ await db.unsafe(createReplicationStateTable(shard));
24
35
  },
25
36
  migrateData: async (_, db) => {
26
- const lastWatermark = await getLastWatermarkV2(db, shardID);
37
+ const lastWatermark = await getLastWatermarkV2(db, shard);
27
38
  const replicationState = { lastWatermark };
28
39
  await db `
29
40
  TRUNCATE TABLE ${db(schema)}."replicationState"`;
@@ -45,8 +56,8 @@ export async function initChangeStreamerSchema(log, db, shardID) {
45
56
  };
46
57
  await runSchemaMigrations(log, 'change-streamer', schema, db, setupMigration, schemaVersionMigrationMap);
47
58
  }
48
- export async function getLastWatermarkV2(db, shardID) {
49
- const schema = cdcSchema(shardID);
59
+ export async function getLastWatermarkV2(db, shard) {
60
+ const schema = cdcSchema(shard);
50
61
  const [{ max }] = await db `
51
62
  SELECT MAX(watermark) as max FROM ${db(schema)}."changeLog"`;
52
63
  if (max !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/init.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import { LogContext } from '@rocicorp/logger';
2
2
  import postgres from 'postgres';
3
3
  import { AbortError } from '../../../../../shared/src/abort-error.ts';
4
4
  import type { PostgresDB } from '../../../types/pg.ts';
5
+ import { type ShardID } from '../../../types/shards.ts';
5
6
  import type { Change } from '../../change-source/protocol/current/data.ts';
6
- export declare function cdcSchema(shardID: string): string;
7
+ import type { SubscriptionState } from '../../replicator/schema/replication-state.ts';
7
8
  export declare const PG_SCHEMA = "cdc";
8
9
  export type ChangeLogEntry = {
9
10
  watermark: string;
@@ -17,7 +18,7 @@ export type ReplicationState = {
17
18
  lastWatermark: string;
18
19
  owner: string | null;
19
20
  };
20
- export declare function createReplicationStateTable(shardID: string): string;
21
+ export declare function createReplicationStateTable(shard: ShardID): string;
21
22
  /**
22
23
  * This mirrors the analogously named table in the SQLite replica
23
24
  * (`services/replicator/schema/replication-state.ts`), and is used
@@ -28,9 +29,9 @@ export type ReplicationConfig = {
28
29
  replicaVersion: string;
29
30
  publications: readonly string[];
30
31
  };
31
- export declare function setupCDCTables(lc: LogContext, db: postgres.TransactionSql, shardID: string): Promise<void>;
32
- export declare function markResetRequired(db: PostgresDB, shardID: string): Promise<void>;
33
- export declare function ensureReplicationConfig(lc: LogContext, db: PostgresDB, config: ReplicationConfig, shardID: string, autoReset: boolean): Promise<void>;
32
+ export declare function setupCDCTables(lc: LogContext, db: postgres.TransactionSql, shard: ShardID): Promise<void>;
33
+ export declare function markResetRequired(db: PostgresDB, shard: ShardID): Promise<void>;
34
+ export declare function ensureReplicationConfig(lc: LogContext, db: PostgresDB, subscriptionState: SubscriptionState, shard: ShardID, autoReset: boolean): Promise<void>;
34
35
  export declare class AutoResetSignal extends AbortError {
35
36
  readonly name = "AutoResetSignal";
36
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,QAAuC,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,8CAA8C,CAAC;AAEzE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,UAExC;AAOD,eAAO,MAAM,SAAS,QAAQ,CAAC;AAM/B,MAAM,MAAM,cAAc,GAAG;IAG3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAiBF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,UAQ1D;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAsBF,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,OAAO,EAAE,MAAM,iBAIhB;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAKtE;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,iBAiEnB;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,IAAI,qBAAqB;CACnC"}
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,QAAuC,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,8CAA8C,CAAC;AACzE,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,8CAA8C,CAAC;AAOpF,eAAO,MAAM,SAAS,QAAQ,CAAC;AAM/B,MAAM,MAAM,cAAc,GAAG;IAG3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAiBF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,UAQzD;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAsBF,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,KAAK,EAAE,OAAO,iBAIf;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,iBAKrE;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,OAAO,iBAuEnB;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,IAAI,qBAAqB;CACnC"}
@@ -3,23 +3,21 @@ import { ident } from 'pg-format';
3
3
  import postgres, {} from 'postgres';
4
4
  import { AbortError } from "../../../../../shared/src/abort-error.js";
5
5
  import { equals } from "../../../../../shared/src/set-utils.js";
6
- export function cdcSchema(shardID) {
7
- return `cdc_${shardID}`;
8
- }
6
+ import { cdcSchema } from "../../../types/shards.js";
9
7
  // For readability in the sql statements.
10
- function schema(shardID) {
11
- return ident(cdcSchema(shardID));
8
+ function schema(shard) {
9
+ return ident(cdcSchema(shard));
12
10
  }
13
11
  export const PG_SCHEMA = 'cdc';
14
- function createSchema(shardID) {
15
- return `CREATE SCHEMA IF NOT EXISTS ${schema(shardID)};`;
12
+ function createSchema(shard) {
13
+ return `CREATE SCHEMA IF NOT EXISTS ${schema(shard)};`;
16
14
  }
17
- function createChangeLogTable(shardID) {
15
+ function createChangeLogTable(shard) {
18
16
  // Note: The "change" column used to be JSONB, but that was problematic in that
19
17
  // it does not handle the NULL unicode character.
20
18
  // https://vladimir.varank.in/notes/2021/01/you-dont-insert-unicode-null-character-as-postgres-jsonb/
21
19
  return `
22
- CREATE TABLE ${schema(shardID)}."changeLog" (
20
+ CREATE TABLE ${schema(shard)}."changeLog" (
23
21
  watermark TEXT,
24
22
  pos INT8,
25
23
  change JSON NOT NULL,
@@ -28,18 +26,18 @@ function createChangeLogTable(shardID) {
28
26
  );
29
27
  `;
30
28
  }
31
- export function createReplicationStateTable(shardID) {
29
+ export function createReplicationStateTable(shard) {
32
30
  return `
33
- CREATE TABLE ${schema(shardID)}."replicationState" (
31
+ CREATE TABLE ${schema(shard)}."replicationState" (
34
32
  "lastWatermark" TEXT NOT NULL,
35
33
  "owner" TEXT,
36
34
  "lock" INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
37
35
  );
38
36
  `;
39
37
  }
40
- function createReplicationConfigTable(shardID) {
38
+ function createReplicationConfigTable(shard) {
41
39
  return `
42
- CREATE TABLE ${schema(shardID)}."replicationConfig" (
40
+ CREATE TABLE ${schema(shard)}."replicationConfig" (
43
41
  "replicaVersion" TEXT NOT NULL,
44
42
  "publications" TEXT[] NOT NULL,
45
43
  "resetRequired" BOOL,
@@ -47,30 +45,29 @@ function createReplicationConfigTable(shardID) {
47
45
  );
48
46
  `;
49
47
  }
50
- function createTables(shardID) {
51
- return (createSchema(shardID) +
52
- createChangeLogTable(shardID) +
53
- createReplicationStateTable(shardID) +
54
- createReplicationConfigTable(shardID));
48
+ function createTables(shard) {
49
+ return (createSchema(shard) +
50
+ createChangeLogTable(shard) +
51
+ createReplicationStateTable(shard) +
52
+ createReplicationConfigTable(shard));
55
53
  }
56
- export async function setupCDCTables(lc, db, shardID) {
54
+ export async function setupCDCTables(lc, db, shard) {
57
55
  lc.info?.(`Setting up CDC tables`);
58
- await db.unsafe(createTables(shardID));
56
+ await db.unsafe(createTables(shard));
59
57
  }
60
- export async function markResetRequired(db, shardID) {
61
- const schema = cdcSchema(shardID);
58
+ export async function markResetRequired(db, shard) {
59
+ const schema = cdcSchema(shard);
62
60
  await db `
63
61
  UPDATE ${db(schema)}."replicationConfig"
64
62
  SET "resetRequired" = true`;
65
63
  }
66
- export async function ensureReplicationConfig(lc, db, config, shardID, autoReset) {
67
- // Restrict the fields of the supplied `config`.
68
- const { publications, replicaVersion } = config;
64
+ export async function ensureReplicationConfig(lc, db, subscriptionState, shard, autoReset) {
65
+ const { publications, replicaVersion, watermark } = subscriptionState;
69
66
  const replicaConfig = { publications, replicaVersion };
70
67
  const replicationState = {
71
68
  lastWatermark: replicaVersion,
72
69
  };
73
- const schema = cdcSchema(shardID);
70
+ const schema = cdcSchema(shard);
74
71
  await db.begin(async (tx) => {
75
72
  const stmts = [];
76
73
  const results = await tx `
@@ -80,6 +77,11 @@ export async function ensureReplicationConfig(lc, db, config, shardID, autoReset
80
77
  const { replicaVersion, publications } = results[0];
81
78
  if (replicaVersion !== replicaConfig.replicaVersion ||
82
79
  !equals(new Set(publications), new Set(replicaConfig.publications))) {
80
+ if (replicaConfig.replicaVersion !== watermark) {
81
+ throw new AutoResetSignal(`Cannot reset change db@${replicaVersion} to ` +
82
+ `service replica@${replicaConfig.replicaVersion} ` +
83
+ `from watermark ${watermark}`);
84
+ }
83
85
  lc.info?.(`Data in cdc tables @${replicaVersion} is incompatible ` +
84
86
  `with replica @${replicaConfig.replicaVersion}. Clearing tables.`);
85
87
  stmts.push(tx `TRUNCATE TABLE ${tx(schema)}."changeLog"`, tx `TRUNCATE TABLE ${tx(schema)}."replicationConfig"`, tx `TRUNCATE TABLE ${tx(schema)}."replicationState"`);
@@ -1 +1 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { LogContext } from '@rocicorp/logger';
2
2
  import type { PostgresDB } from '../../types/pg.ts';
3
+ import { type ShardID } from '../../types/shards.ts';
3
4
  import { type Commit } from '../change-source/protocol/current/downstream.ts';
4
5
  import type { StatusMessage } from '../change-source/protocol/current/status.ts';
6
+ import type { ReplicatorMode } from '../replicator/replicator.ts';
5
7
  import type { Service } from '../service.ts';
6
8
  import type { WatermarkedChange } from './change-streamer-service.ts';
7
9
  import { Subscriber } from './subscriber.ts';
@@ -38,13 +40,13 @@ import { Subscriber } from './subscriber.ts';
38
40
  export declare class Storer implements Service {
39
41
  #private;
40
42
  readonly id = "storer";
41
- constructor(lc: LogContext, shardID: string, taskID: string, db: PostgresDB, replicaVersion: string, onConsumed: (c: Commit | StatusMessage) => void);
43
+ constructor(lc: LogContext, shard: ShardID, taskID: string, db: PostgresDB, replicaVersion: string, onConsumed: (c: Commit | StatusMessage) => void, onFatal: (err: Error) => void);
42
44
  assumeOwnership(): Promise<void>;
43
45
  getLastWatermark(): Promise<string>;
44
46
  purgeRecordsBefore(watermark: string): Promise<number>;
45
47
  store(entry: WatermarkedChange): void;
46
48
  status(s: StatusMessage): void;
47
- catchup(sub: Subscriber): void;
49
+ catchup(subscriber: Subscriber, mode: ReplicatorMode): void;
48
50
  run(): Promise<void>;
49
51
  stop(): Promise<void>;
50
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAU5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,iDAAiD,CAAC;AAC5E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC/E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAIpE,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAe3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,MAAO,YAAW,OAAO;;IACpC,QAAQ,CAAC,EAAE,YAAY;gBAUrB,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,UAAU,EACd,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,KAAK,IAAI;IAe3C,eAAe;IAMf,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMnC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5D,KAAK,CAAC,KAAK,EAAE,iBAAiB;IAI9B,MAAM,CAAC,CAAC,EAAE,aAAa;IAIvB,OAAO,CAAC,GAAG,EAAE,UAAU;IAIjB,GAAG;IAmMT,IAAI;CAIL"}
1
+ {"version":3,"file":"storer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAU5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,iDAAiD,CAAC;AAC5E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC/E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAQpE,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAoB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,MAAO,YAAW,OAAO;;IACpC,QAAQ,CAAC,EAAE,YAAY;gBAWrB,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,UAAU,EACd,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,KAAK,IAAI,EAC/C,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;IAgBzB,eAAe;IAMf,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMnC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5D,KAAK,CAAC,KAAK,EAAE,iBAAiB;IAI9B,MAAM,CAAC,CAAC,EAAE,aAAa;IAIvB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc;IAI9C,GAAG;IA4MT,IAAI;CAIL"}
@@ -8,10 +8,11 @@ import { Queue } from "../../../../shared/src/queue.js";
8
8
  import { promiseVoid } from "../../../../shared/src/resolved-promises.js";
9
9
  import * as Mode from "../../db/mode-enum.js";
10
10
  import { TransactionPool } from "../../db/transaction-pool.js";
11
+ import { cdcSchema } from "../../types/shards.js";
11
12
  import {} from "../change-source/protocol/current/downstream.js";
12
13
  import {} from "./change-streamer.js";
13
14
  import * as ErrorType from "./error-type-enum.js";
14
- import { cdcSchema } from "./schema/tables.js";
15
+ import { AutoResetSignal, markResetRequired, } from "./schema/tables.js";
15
16
  import { Subscriber } from "./subscriber.js";
16
17
  /**
17
18
  * Handles the storage of changes and the catchup of subscribers
@@ -46,23 +47,25 @@ import { Subscriber } from "./subscriber.js";
46
47
  export class Storer {
47
48
  id = 'storer';
48
49
  #lc;
49
- #shardID;
50
+ #shard;
50
51
  #taskID;
51
52
  #db;
52
53
  #replicaVersion;
53
54
  #onConsumed;
55
+ #onFatal;
54
56
  #queue = new Queue();
55
- constructor(lc, shardID, taskID, db, replicaVersion, onConsumed) {
57
+ constructor(lc, shard, taskID, db, replicaVersion, onConsumed, onFatal) {
56
58
  this.#lc = lc;
57
- this.#shardID = shardID;
59
+ this.#shard = shard;
58
60
  this.#taskID = taskID;
59
61
  this.#db = db;
60
62
  this.#replicaVersion = replicaVersion;
61
63
  this.#onConsumed = onConsumed;
64
+ this.#onFatal = onFatal;
62
65
  }
63
66
  // For readability in SQL statements.
64
67
  #cdc(table) {
65
- return this.#db(`${cdcSchema(this.#shardID)}.${table}`);
68
+ return this.#db(`${cdcSchema(this.#shard)}.${table}`);
66
69
  }
67
70
  async assumeOwnership() {
68
71
  const db = this.#db;
@@ -88,8 +91,8 @@ export class Storer {
88
91
  status(s) {
89
92
  this.#queue.enqueue(s);
90
93
  }
91
- catchup(sub) {
92
- this.#queue.enqueue(['subscriber', sub]);
94
+ catchup(subscriber, mode) {
95
+ this.#queue.enqueue(['subscriber', { subscriber, mode }]);
93
96
  }
94
97
  async run() {
95
98
  let tx = null;
@@ -205,7 +208,7 @@ export class Storer {
205
208
  // #catchup() by disconnecting the associated subscriber.
206
209
  void Promise.all(subs.map(sub => this.#catchup(sub, reader))).finally(() => reader.setDone());
207
210
  }
208
- async #catchup(sub, reader) {
211
+ async #catchup({ subscriber: sub, mode }, reader) {
209
212
  try {
210
213
  await reader.processReadTask(async (tx) => {
211
214
  const start = Date.now();
@@ -227,6 +230,9 @@ export class Storer {
227
230
  sub.catchup(toDownstream(entry));
228
231
  count++;
229
232
  }
233
+ else if (mode === 'backup') {
234
+ throw new AutoResetSignal(`backup replica at watermark ${sub.watermark} is behind change db: ${entry.watermark})`);
235
+ }
230
236
  else {
231
237
  this.#lc.warn?.(`rejecting subscriber at watermark ${sub.watermark} (earliest watermark: ${entry.watermark})`);
232
238
  sub.close(ErrorType.WatermarkTooOld, `earliest supported watermark is ${entry.watermark} (requested ${sub.watermark})`);
@@ -238,9 +244,7 @@ export class Storer {
238
244
  this.#lc.info?.(`caught up ${sub.id} with ${count} changes (${Date.now() - start} ms)`);
239
245
  }
240
246
  else {
241
- const [{ lastWatermark }] = await this.#db `
242
- SELECT "lastWatermark" FROM ${this.#cdc('replicationState')}`;
243
- this.#lc.warn?.(`subscriber at watermark ${sub.watermark} is ahead of latest watermark: ${lastWatermark}`);
247
+ this.#lc.warn?.(`subscriber at watermark ${sub.watermark} is ahead of latest watermark`);
244
248
  }
245
249
  // Flushes the backlog of messages buffered during catchup and
246
250
  // allows the subscription to forward subsequent messages immediately.
@@ -248,8 +252,12 @@ export class Storer {
248
252
  });
249
253
  }
250
254
  catch (err) {
251
- sub.fail(err);
252
255
  this.#lc.error?.(`error while catching up subscriber ${sub.id}`, err);
256
+ if (err instanceof AutoResetSignal) {
257
+ await markResetRequired(this.#db, this.#shard);
258
+ this.#onFatal(err);
259
+ }
260
+ sub.fail(err);
253
261
  }
254
262
  }
255
263
  stop() {
@@ -1 +1 @@
1
- {"version":3,"file":"storer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { type InsertOp, type Mutation, type UpsertOp } from '../../../../zero-pr
6
6
  import { type WriteAuthorizer } from '../../auth/write-authorizer.ts';
7
7
  import { type ZeroConfig } from '../../config/zero-config.ts';
8
8
  import type { PostgresDB } from '../../types/pg.ts';
9
+ import { type ShardID } from '../../types/shards.ts';
9
10
  import type { Service } from '../service.ts';
10
11
  export type MutationError = [
11
12
  kind: ErrorKind.MutationFailed | ErrorKind.MutationRateLimited,
@@ -17,12 +18,12 @@ export interface Mutagen {
17
18
  export declare class MutagenService implements Mutagen, Service {
18
19
  #private;
19
20
  readonly id: string;
20
- constructor(lc: LogContext, shardID: string, clientGroupID: string, upstream: PostgresDB, config: ZeroConfig);
21
+ constructor(lc: LogContext, shard: ShardID, clientGroupID: string, upstream: PostgresDB, config: ZeroConfig);
21
22
  processMutation(mutation: Mutation, authData: JWTPayload | undefined, schemaVersion: number): Promise<MutationError | undefined>;
22
23
  run(): Promise<void>;
23
24
  stop(): Promise<void>;
24
25
  }
25
- export declare function processMutation(lc: LogContext, authData: JWTPayload | undefined, db: PostgresDB, shardID: string, clientGroupID: string, mutation: Mutation, writeAuthorizer: WriteAuthorizer, schemaVersion: number, onTxStart?: () => void | Promise<void>): Promise<MutationError | undefined>;
26
+ export declare function processMutation(lc: LogContext, authData: JWTPayload | undefined, db: PostgresDB, shard: ShardID, clientGroupID: string, mutation: Mutation, writeAuthorizer: WriteAuthorizer, schemaVersion: number, onTxStart?: () => void | Promise<void>): Promise<MutationError | undefined>;
26
27
  export declare function getInsertSQL(tx: postgres.TransactionSql, create: InsertOp): postgres.PendingQuery<postgres.Row[]>;
27
28
  export declare function getUpsertSQL(tx: postgres.TransactionSql, set: UpsertOp): postgres.PendingQuery<postgres.Row[]>;
28
29
  //# sourceMappingURL=mutagen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutagen.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,KAAK,SAAS,MAAM,kDAAkD,CAAC;AAM9E,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAG5D,OAAO,KAAK,EAAC,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AAIvE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAI3C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,mBAAmB;IAC9D,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACvC;AAED,qBAAa,cAAe,YAAW,OAAO,EAAE,OAAO;;IACrD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAUlB,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,UAAU;IAwBpB,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmBrC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAItB;AAID,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA2GpC;AAuED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,MAAM,EAAE,QAAQ,GACf,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAEvC;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,GAAG,EAAE,QAAQ,GACZ,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAOvC"}
1
+ {"version":3,"file":"mutagen.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,KAAK,SAAS,MAAM,kDAAkD,CAAC;AAM9E,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAG5D,OAAO,KAAK,EAAC,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAA4B,KAAK,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAI3C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,mBAAmB;IAC9D,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACvC;AAED,qBAAa,cAAe,YAAW,OAAO,EAAE,OAAO;;IACrD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAUlB,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,UAAU;IAyBpB,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmBrC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAItB;AAID,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA2GpC;AAuED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,MAAM,EAAE,QAAQ,GACf,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAEvC;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,GAAG,EAAE,QAAQ,GACZ,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAOvC"}
@@ -13,26 +13,26 @@ import {} from "../../config/zero-config.js";
13
13
  import * as Mode from "../../db/mode-enum.js";
14
14
  import { ErrorForClient } from "../../types/error-for-client.js";
15
15
  import { throwErrorForClientIfSchemaVersionNotSupported } from "../../types/schema-versions.js";
16
- import { unescapedSchema as schema } from "../change-source/pg/schema/shard.js";
16
+ import { appSchema, upstreamSchema } from "../../types/shards.js";
17
17
  import { SlidingWindowLimiter } from "../limiter/sliding-window-limiter.js";
18
18
  export class MutagenService {
19
19
  id;
20
20
  #lc;
21
21
  #upstream;
22
- #shardID;
22
+ #shard;
23
23
  #stopped = resolver();
24
24
  #replica;
25
25
  #writeAuthorizer;
26
26
  #limiter;
27
- constructor(lc, shardID, clientGroupID, upstream, config) {
27
+ constructor(lc, shard, clientGroupID, upstream, config) {
28
28
  this.id = clientGroupID;
29
29
  this.#lc = lc;
30
30
  this.#upstream = upstream;
31
- this.#shardID = shardID;
31
+ this.#shard = shard;
32
32
  this.#replica = new Database(this.#lc, config.replicaFile, {
33
33
  fileMustExist: true,
34
34
  });
35
- this.#writeAuthorizer = new WriteAuthorizerImpl(this.#lc, config, this.#replica, clientGroupID);
35
+ this.#writeAuthorizer = new WriteAuthorizerImpl(this.#lc, config, this.#replica, shard.appID, clientGroupID);
36
36
  if (config.perUserMutationLimit.max !== undefined) {
37
37
  this.#limiter = new SlidingWindowLimiter(config.perUserMutationLimit.windowMs, config.perUserMutationLimit.max);
38
38
  }
@@ -44,7 +44,7 @@ export class MutagenService {
44
44
  'Rate limit exceeded',
45
45
  ]);
46
46
  }
47
- return processMutation(this.#lc, authData, this.#upstream, this.#shardID, this.id, mutation, this.#writeAuthorizer, schemaVersion);
47
+ return processMutation(this.#lc, authData, this.#upstream, this.#shard, this.id, mutation, this.#writeAuthorizer, schemaVersion);
48
48
  }
49
49
  run() {
50
50
  return this.#stopped.promise;
@@ -55,7 +55,7 @@ export class MutagenService {
55
55
  }
56
56
  }
57
57
  const MAX_SERIALIZATION_ATTEMPTS = 10;
58
- export async function processMutation(lc, authData, db, shardID, clientGroupID, mutation, writeAuthorizer, schemaVersion, onTxStart) {
58
+ export async function processMutation(lc, authData, db, shard, clientGroupID, mutation, writeAuthorizer, schemaVersion, onTxStart) {
59
59
  assert(mutation.type === MutationType.CRUD, 'Only CRUD mutations are supported');
60
60
  lc = lc.withContext('mutationID', mutation.id);
61
61
  lc = lc.withContext('processMutation');
@@ -108,7 +108,7 @@ export async function processMutation(lc, authData, db, shardID, clientGroupID,
108
108
  // Simulates a concurrent request for testing. In production this is a noop.
109
109
  const done = onTxStart?.();
110
110
  try {
111
- return await processMutationWithTx(lc, tx, authData, shardID, clientGroupID, schemaVersion, mutation, errorMode, writeAuthorizer);
111
+ return await processMutationWithTx(lc, tx, authData, shard, clientGroupID, schemaVersion, mutation, errorMode, writeAuthorizer);
112
112
  }
113
113
  finally {
114
114
  await done;
@@ -149,7 +149,7 @@ export async function processMutation(lc, authData, db, shardID, clientGroupID,
149
149
  }
150
150
  return result;
151
151
  }
152
- async function processMutationWithTx(lc, tx, authData, shardID, clientGroupID, schemaVersion, mutation, errorMode, authorizer) {
152
+ async function processMutationWithTx(lc, tx, authData, shard, clientGroupID, schemaVersion, mutation, errorMode, authorizer) {
153
153
  const tasks = [];
154
154
  async function execute(stmt) {
155
155
  try {
@@ -188,7 +188,7 @@ async function processMutationWithTx(lc, tx, authData, shardID, clientGroupID, s
188
188
  }
189
189
  // Confirm the mutation even though it may have been blocked by the authorizer.
190
190
  // Authorizer blocking a mutation is not an error but the correct result of the mutation.
191
- tasks.unshift(() => checkSchemaVersionAndIncrementLastMutationID(tx, shardID, clientGroupID, schemaVersion, mutation.clientID, mutation.id));
191
+ tasks.unshift(() => checkSchemaVersionAndIncrementLastMutationID(tx, shard, clientGroupID, schemaVersion, mutation.clientID, mutation.id));
192
192
  // Note: An error thrown from any Promise aborts the entire transaction.
193
193
  await Promise.all(tasks.map(task => task()));
194
194
  }
@@ -223,16 +223,18 @@ function getDeleteSQL(tx, deleteOp) {
223
223
  }
224
224
  return tx `DELETE FROM ${tx(tableName)} WHERE ${conditions}`;
225
225
  }
226
- async function checkSchemaVersionAndIncrementLastMutationID(tx, shardID, clientGroupID, schemaVersion, clientID, receivedMutationID) {
226
+ async function checkSchemaVersionAndIncrementLastMutationID(tx, shard, clientGroupID, schemaVersion, clientID, receivedMutationID) {
227
227
  const [[{ lastMutationID }], supportedVersionRange] = await Promise.all([
228
228
  tx `
229
- INSERT INTO ${tx(schema(shardID))}.clients as current ("clientGroupID", "clientID", "lastMutationID")
230
- VALUES (${clientGroupID}, ${clientID}, ${1})
231
- ON CONFLICT ("clientGroupID", "clientID")
232
- DO UPDATE SET "lastMutationID" = current."lastMutationID" + 1
233
- RETURNING "lastMutationID"
229
+ INSERT INTO ${tx(upstreamSchema(shard))}.clients
230
+ as current ("clientGroupID", "clientID", "lastMutationID")
231
+ VALUES (${clientGroupID}, ${clientID}, ${1})
232
+ ON CONFLICT ("clientGroupID", "clientID")
233
+ DO UPDATE SET "lastMutationID" = current."lastMutationID" + 1
234
+ RETURNING "lastMutationID"
234
235
  `,
235
- tx `SELECT "minSupportedVersion", "maxSupportedVersion" FROM zero."schemaVersions"`,
236
+ tx `SELECT "minSupportedVersion", "maxSupportedVersion"
237
+ FROM ${tx(appSchema(shard))}."schemaVersions"`,
236
238
  ]);
237
239
  // ABORT if the resulting lastMutationID is not equal to the receivedMutationID.
238
240
  if (receivedMutationID < lastMutationID) {
@@ -1 +1 @@
1
- {"version":3,"file":"mutagen.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutagen.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"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"}