@rocicorp/zero 0.16.2025022601 → 0.17.2025022800
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/{chunk-7E4L5D3N.js → chunk-5BT5TJFM.js} +517 -3962
- package/out/chunk-5BT5TJFM.js.map +7 -0
- package/out/chunk-P3NUVEQJ.js +3578 -0
- package/out/chunk-P3NUVEQJ.js.map +7 -0
- package/out/pg.js +593 -0
- package/out/pg.js.map +7 -0
- package/out/react.js +1 -4
- package/out/react.js.map +2 -2
- package/out/shared/src/types.js +2 -0
- package/out/shared/src/types.js.map +1 -0
- package/out/solid.js +3 -2
- package/out/solid.js.map +1 -1
- package/out/z2s/src/compiler.d.ts +26 -0
- package/out/z2s/src/compiler.d.ts.map +1 -0
- package/out/z2s/src/compiler.js +155 -0
- package/out/z2s/src/compiler.js.map +1 -0
- package/out/z2s/src/sql.d.ts +12 -0
- package/out/z2s/src/sql.d.ts.map +1 -0
- package/out/z2s/src/sql.js +18 -0
- package/out/z2s/src/sql.js.map +1 -0
- package/out/zero/src/pg.d.ts +2 -0
- package/out/zero/src/pg.d.ts.map +1 -0
- package/out/zero/src/pg.js +3 -0
- package/out/zero/src/pg.js.map +1 -0
- package/out/zero-cache/src/auth/load-permissions.d.ts +2 -2
- package/out/zero-cache/src/auth/load-permissions.d.ts.map +1 -1
- package/out/zero-cache/src/auth/load-permissions.js +6 -7
- package/out/zero-cache/src/auth/load-permissions.js.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +4 -2
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +1 -1
- package/out/zero-cache/src/config/zero-config.js +4 -4
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/scripts/deploy-permissions.js +5 -4
- package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +3 -2
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +2 -1
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/multi/config.d.ts +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +4 -3
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js +10 -10
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/sync-schema.js +2 -2
- package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +14 -12
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +13 -9
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +11 -9
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +10 -10
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +1 -3
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.js +1 -3
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +10 -12
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +55 -51
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/validation.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js +1 -0
- package/out/zero-cache/src/services/change-source/pg/schema/validation.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js +2 -2
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +1 -3
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +2 -2
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +18 -14
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +5 -6
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +3 -3
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +4 -3
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +3 -3
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +12 -4
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js +2 -2
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +3 -3
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +39 -39
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.js +5 -5
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +4 -3
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +25 -23
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +12 -8
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +1 -1
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +1 -0
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/custom.d.ts +42 -0
- package/out/zero-pg/src/custom.d.ts.map +1 -0
- package/out/zero-pg/src/custom.js +99 -0
- package/out/zero-pg/src/custom.js.map +1 -0
- package/out/zero-pg/src/db.d.ts +27 -0
- package/out/zero-pg/src/db.d.ts.map +1 -0
- package/out/zero-pg/src/db.js +2 -0
- package/out/zero-pg/src/db.js.map +1 -0
- package/out/zero-pg/src/logging.d.ts +3 -0
- package/out/zero-pg/src/logging.d.ts.map +1 -0
- package/out/zero-pg/src/logging.js +5 -0
- package/out/zero-pg/src/logging.js.map +1 -0
- package/out/zero-pg/src/mod.d.ts +5 -0
- package/out/zero-pg/src/mod.d.ts.map +1 -0
- package/out/zero-pg/src/mod.js +2 -0
- package/out/zero-pg/src/mod.js.map +1 -0
- package/out/zero-pg/src/query.d.ts +22 -0
- package/out/zero-pg/src/query.d.ts.map +1 -0
- package/out/zero-pg/src/query.js +54 -0
- package/out/zero-pg/src/query.js.map +1 -0
- package/out/zero-pg/src/web.d.ts +16 -0
- package/out/zero-pg/src/web.d.ts.map +1 -0
- package/out/zero-pg/src/web.js +115 -0
- package/out/zero-pg/src/web.js.map +1 -0
- package/out/zero-react/src/use-zero.d.ts +5 -4
- package/out/zero-react/src/use-zero.d.ts.map +1 -1
- package/out/zero.js +2 -1
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js +43 -23
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/mutate/custom.js +10 -0
- package/out/zql/src/mutate/custom.js.map +1 -0
- package/out/zql/src/query/query-impl.d.ts +2 -2
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +1 -1
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +1 -1
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.d.ts +1 -1
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.js +3 -3
- package/out/zql/src/query/static-query.js.map +1 -1
- package/package.json +5 -1
- package/out/chunk-7E4L5D3N.js.map +0 -7
|
@@ -2,7 +2,7 @@ import type { LogContext } from '@rocicorp/logger';
|
|
|
2
2
|
import type postgres from 'postgres';
|
|
3
3
|
import { type JSONObject, type JSONValue } from '../../../types/bigint-json.ts';
|
|
4
4
|
import { type RowID, type RowRecord } from './types.ts';
|
|
5
|
-
export declare function cvrSchema(shardID: string): string;
|
|
5
|
+
export declare function cvrSchema(appID: string, shardID: string): string;
|
|
6
6
|
export type InstancesRow = {
|
|
7
7
|
clientGroupID: string;
|
|
8
8
|
version: string;
|
|
@@ -74,10 +74,10 @@ export declare function compareRowsRows(a: RowsRow, b: RowsRow): number;
|
|
|
74
74
|
* `cvr.rows` TABLE needs to be updated without affecting the
|
|
75
75
|
* `SELECT ... FOR UPDATE` lock when `cvr.instances` is updated.
|
|
76
76
|
*/
|
|
77
|
-
export declare function createRowsVersionTable(shardID: string): string;
|
|
77
|
+
export declare function createRowsVersionTable(appID: string, shardID: string): string;
|
|
78
78
|
export type RowsVersionRow = {
|
|
79
79
|
clientGroupID: string;
|
|
80
80
|
version: string;
|
|
81
81
|
};
|
|
82
|
-
export declare function setupCVRTables(lc: LogContext, db: postgres.TransactionSql, shardID: string): Promise<void>;
|
|
82
|
+
export declare function setupCVRTables(lc: LogContext, db: postgres.TransactionSql, appID: string, shardID: string): Promise<void>;
|
|
83
83
|
//# sourceMappingURL=cvr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EAEf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,KAAK,EACV,KAAK,SAAS,EAGf,MAAM,YAAY,CAAC;AAEpB,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,19 +3,19 @@ import { stringCompare } from "../../../../../shared/src/string-compare.js";
|
|
|
3
3
|
import { stringify, } from "../../../types/bigint-json.js";
|
|
4
4
|
import { normalizedKeyOrder } from "../../../types/row-key.js";
|
|
5
5
|
import { versionFromString, versionString, } from "./types.js";
|
|
6
|
-
export function cvrSchema(shardID) {
|
|
7
|
-
return
|
|
6
|
+
export function cvrSchema(appID, shardID) {
|
|
7
|
+
return `${appID}_${shardID}/cvr`;
|
|
8
8
|
}
|
|
9
9
|
// For readability in the sql statements.
|
|
10
|
-
function schema(shardID) {
|
|
11
|
-
return ident(cvrSchema(shardID));
|
|
10
|
+
function schema(appID, shardID) {
|
|
11
|
+
return ident(cvrSchema(appID, shardID));
|
|
12
12
|
}
|
|
13
|
-
function createSchema(shardID) {
|
|
14
|
-
return `CREATE SCHEMA IF NOT EXISTS ${schema(shardID)};`;
|
|
13
|
+
function createSchema(appID, shardID) {
|
|
14
|
+
return `CREATE SCHEMA IF NOT EXISTS ${schema(appID, shardID)};`;
|
|
15
15
|
}
|
|
16
|
-
function createInstancesTable(shardID) {
|
|
16
|
+
function createInstancesTable(appID, shardID) {
|
|
17
17
|
return `
|
|
18
|
-
CREATE TABLE ${schema(shardID)}.instances (
|
|
18
|
+
CREATE TABLE ${schema(appID, shardID)}.instances (
|
|
19
19
|
"clientGroupID" TEXT PRIMARY KEY,
|
|
20
20
|
"version" TEXT NOT NULL, -- Sortable representation of CVRVersion, e.g. "5nbqa2w:09"
|
|
21
21
|
"lastActive" TIMESTAMPTZ NOT NULL, -- For garbage collection
|
|
@@ -28,10 +28,10 @@ CREATE TABLE ${schema(shardID)}.instances (
|
|
|
28
28
|
export function compareInstancesRows(a, b) {
|
|
29
29
|
return stringCompare(a.clientGroupID, b.clientGroupID);
|
|
30
30
|
}
|
|
31
|
-
function createClientsTable(shardID) {
|
|
31
|
+
function createClientsTable(appID, shardID) {
|
|
32
32
|
// patchVersion and deleted are not used. Remove after all readers are migrated.
|
|
33
33
|
return `
|
|
34
|
-
CREATE TABLE ${schema(shardID)}.clients (
|
|
34
|
+
CREATE TABLE ${schema(appID, shardID)}.clients (
|
|
35
35
|
"clientGroupID" TEXT,
|
|
36
36
|
"clientID" TEXT,
|
|
37
37
|
"patchVersion" TEXT NOT NULL, -- Deprecated
|
|
@@ -41,12 +41,12 @@ CREATE TABLE ${schema(shardID)}.clients (
|
|
|
41
41
|
|
|
42
42
|
CONSTRAINT fk_clients_client_group
|
|
43
43
|
FOREIGN KEY("clientGroupID")
|
|
44
|
-
REFERENCES ${schema(shardID)}.instances("clientGroupID")
|
|
44
|
+
REFERENCES ${schema(appID, shardID)}.instances("clientGroupID")
|
|
45
45
|
);
|
|
46
46
|
|
|
47
47
|
-- For catchup patches.
|
|
48
48
|
CREATE INDEX client_patch_version
|
|
49
|
-
ON ${schema(shardID)}.clients ("patchVersion");
|
|
49
|
+
ON ${schema(appID, shardID)}.clients ("patchVersion");
|
|
50
50
|
`;
|
|
51
51
|
}
|
|
52
52
|
export function compareClientsRows(a, b) {
|
|
@@ -56,9 +56,9 @@ export function compareClientsRows(a, b) {
|
|
|
56
56
|
}
|
|
57
57
|
return stringCompare(a.clientID, b.clientID);
|
|
58
58
|
}
|
|
59
|
-
function createQueriesTable(shardID) {
|
|
59
|
+
function createQueriesTable(appID, shardID) {
|
|
60
60
|
return `
|
|
61
|
-
CREATE TABLE ${schema(shardID)}.queries (
|
|
61
|
+
CREATE TABLE ${schema(appID, shardID)}.queries (
|
|
62
62
|
"clientGroupID" TEXT,
|
|
63
63
|
"queryHash" TEXT,
|
|
64
64
|
"clientAST" JSONB NOT NULL,
|
|
@@ -72,12 +72,12 @@ CREATE TABLE ${schema(shardID)}.queries (
|
|
|
72
72
|
|
|
73
73
|
CONSTRAINT fk_queries_client_group
|
|
74
74
|
FOREIGN KEY("clientGroupID")
|
|
75
|
-
REFERENCES ${schema(shardID)}.instances("clientGroupID")
|
|
75
|
+
REFERENCES ${schema(appID, shardID)}.instances("clientGroupID")
|
|
76
76
|
);
|
|
77
77
|
|
|
78
78
|
-- For catchup patches.
|
|
79
79
|
CREATE INDEX queries_patch_version
|
|
80
|
-
ON ${schema(shardID)}.queries ("patchVersion" NULLS FIRST);
|
|
80
|
+
ON ${schema(appID, shardID)}.queries ("patchVersion" NULLS FIRST);
|
|
81
81
|
`;
|
|
82
82
|
}
|
|
83
83
|
export function compareQueriesRows(a, b) {
|
|
@@ -87,9 +87,9 @@ export function compareQueriesRows(a, b) {
|
|
|
87
87
|
}
|
|
88
88
|
return stringCompare(a.queryHash, b.queryHash);
|
|
89
89
|
}
|
|
90
|
-
function createDesiresTable(shardID) {
|
|
90
|
+
function createDesiresTable(appID, shardID) {
|
|
91
91
|
return `
|
|
92
|
-
CREATE TABLE ${schema(shardID)}.desires (
|
|
92
|
+
CREATE TABLE ${schema(appID, shardID)}.desires (
|
|
93
93
|
"clientGroupID" TEXT,
|
|
94
94
|
"clientID" TEXT,
|
|
95
95
|
"queryHash" TEXT,
|
|
@@ -103,23 +103,23 @@ CREATE TABLE ${schema(shardID)}.desires (
|
|
|
103
103
|
|
|
104
104
|
CONSTRAINT fk_desires_client
|
|
105
105
|
FOREIGN KEY("clientGroupID", "clientID")
|
|
106
|
-
REFERENCES ${ident(cvrSchema(shardID))}.clients("clientGroupID", "clientID"),
|
|
106
|
+
REFERENCES ${ident(cvrSchema(appID, shardID))}.clients("clientGroupID", "clientID"),
|
|
107
107
|
|
|
108
108
|
CONSTRAINT fk_desires_query
|
|
109
109
|
FOREIGN KEY("clientGroupID", "queryHash")
|
|
110
|
-
REFERENCES ${ident(cvrSchema(shardID))}.queries("clientGroupID", "queryHash")
|
|
110
|
+
REFERENCES ${ident(cvrSchema(appID, shardID))}.queries("clientGroupID", "queryHash")
|
|
111
111
|
ON DELETE CASCADE
|
|
112
112
|
);
|
|
113
113
|
|
|
114
114
|
-- For catchup patches.
|
|
115
115
|
CREATE INDEX desires_patch_version
|
|
116
|
-
ON ${schema(shardID)}.desires ("patchVersion");
|
|
116
|
+
ON ${schema(appID, shardID)}.desires ("patchVersion");
|
|
117
117
|
|
|
118
118
|
CREATE INDEX desires_expires_at
|
|
119
|
-
ON ${schema(shardID)}.desires ("expiresAt");
|
|
119
|
+
ON ${schema(appID, shardID)}.desires ("expiresAt");
|
|
120
120
|
|
|
121
121
|
CREATE INDEX desires_inactivated_at
|
|
122
|
-
ON ${schema(shardID)}.desires ("inactivatedAt");
|
|
122
|
+
ON ${schema(appID, shardID)}.desires ("inactivatedAt");
|
|
123
123
|
`;
|
|
124
124
|
}
|
|
125
125
|
export function compareDesiresRows(a, b) {
|
|
@@ -180,9 +180,9 @@ export function compareRowsRows(a, b) {
|
|
|
180
180
|
* `cvr.rows` TABLE needs to be updated without affecting the
|
|
181
181
|
* `SELECT ... FOR UPDATE` lock when `cvr.instances` is updated.
|
|
182
182
|
*/
|
|
183
|
-
function createRowsTable(shardID) {
|
|
183
|
+
function createRowsTable(appID, shardID) {
|
|
184
184
|
return `
|
|
185
|
-
CREATE TABLE ${schema(shardID)}.rows (
|
|
185
|
+
CREATE TABLE ${schema(appID, shardID)}.rows (
|
|
186
186
|
"clientGroupID" TEXT,
|
|
187
187
|
"schema" TEXT,
|
|
188
188
|
"table" TEXT,
|
|
@@ -196,11 +196,11 @@ CREATE TABLE ${schema(shardID)}.rows (
|
|
|
196
196
|
|
|
197
197
|
-- For catchup patches.
|
|
198
198
|
CREATE INDEX row_patch_version
|
|
199
|
-
ON ${schema(shardID)}.rows ("patchVersion");
|
|
199
|
+
ON ${schema(appID, shardID)}.rows ("patchVersion");
|
|
200
200
|
|
|
201
201
|
-- For listing rows returned by one or more query hashes. e.g.
|
|
202
202
|
-- SELECT * FROM cvr_shard.rows WHERE "refCounts" ?| array[...queryHashes...];
|
|
203
|
-
CREATE INDEX row_ref_counts ON ${schema(shardID)}.rows
|
|
203
|
+
CREATE INDEX row_ref_counts ON ${schema(appID, shardID)}.rows
|
|
204
204
|
USING GIN ("refCounts");
|
|
205
205
|
`;
|
|
206
206
|
}
|
|
@@ -219,26 +219,26 @@ CREATE INDEX row_ref_counts ON ${schema(shardID)}.rows
|
|
|
219
219
|
* `cvr.rows` TABLE needs to be updated without affecting the
|
|
220
220
|
* `SELECT ... FOR UPDATE` lock when `cvr.instances` is updated.
|
|
221
221
|
*/
|
|
222
|
-
export function createRowsVersionTable(shardID) {
|
|
222
|
+
export function createRowsVersionTable(appID, shardID) {
|
|
223
223
|
return `
|
|
224
|
-
CREATE TABLE ${schema(shardID)}."rowsVersion" (
|
|
224
|
+
CREATE TABLE ${schema(appID, shardID)}."rowsVersion" (
|
|
225
225
|
"clientGroupID" TEXT PRIMARY KEY,
|
|
226
226
|
"version" TEXT NOT NULL
|
|
227
227
|
);
|
|
228
228
|
`;
|
|
229
229
|
}
|
|
230
|
-
function createTables(shardID) {
|
|
231
|
-
return (createSchema(shardID) +
|
|
232
|
-
createInstancesTable(shardID) +
|
|
233
|
-
createClientsTable(shardID) +
|
|
234
|
-
createQueriesTable(shardID) +
|
|
235
|
-
createDesiresTable(shardID) +
|
|
236
|
-
createRowsTable(shardID) +
|
|
237
|
-
createRowsVersionTable(shardID));
|
|
230
|
+
function createTables(appID, shardID) {
|
|
231
|
+
return (createSchema(appID, shardID) +
|
|
232
|
+
createInstancesTable(appID, shardID) +
|
|
233
|
+
createClientsTable(appID, shardID) +
|
|
234
|
+
createQueriesTable(appID, shardID) +
|
|
235
|
+
createDesiresTable(appID, shardID) +
|
|
236
|
+
createRowsTable(appID, shardID) +
|
|
237
|
+
createRowsVersionTable(appID, shardID));
|
|
238
238
|
}
|
|
239
|
-
export async function setupCVRTables(lc, db, shardID) {
|
|
239
|
+
export async function setupCVRTables(lc, db, appID, shardID) {
|
|
240
240
|
lc.info?.(`Setting up CVR tables`);
|
|
241
|
-
await db.unsafe(createTables(shardID));
|
|
241
|
+
await db.unsafe(createTables(appID, shardID));
|
|
242
242
|
}
|
|
243
243
|
function stringifySorted(r) {
|
|
244
244
|
return stringify(normalizedKeyOrder(r));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAGL,SAAS,GACV,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,kBAAkB,EAAc,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAGL,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,SAAS,CAAC,OAAe;
|
|
1
|
+
{"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import type { PostgresDB } from '../../../types/pg.ts';
|
|
3
|
-
export declare function initViewSyncerSchema(log: LogContext, db: PostgresDB, shardID: string): Promise<void>;
|
|
3
|
+
export declare function initViewSyncerSchema(log: LogContext, db: PostgresDB, appID: string, shardID: string): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAGrD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA+Ff"}
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAGrD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA+Ff"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { runSchemaMigrations, } from "../../../db/migration.js";
|
|
2
2
|
import { createRowsVersionTable, cvrSchema, setupCVRTables } from "./cvr.js";
|
|
3
|
-
export async function initViewSyncerSchema(log, db, shardID) {
|
|
4
|
-
const schema = cvrSchema(shardID);
|
|
3
|
+
export async function initViewSyncerSchema(log, db, appID, shardID) {
|
|
4
|
+
const schema = cvrSchema(appID, shardID);
|
|
5
5
|
const setupMigration = {
|
|
6
|
-
migrateSchema: (lc, tx) => setupCVRTables(lc, tx, shardID),
|
|
6
|
+
migrateSchema: (lc, tx) => setupCVRTables(lc, tx, appID, shardID),
|
|
7
7
|
minSafeVersion: 1,
|
|
8
8
|
};
|
|
9
9
|
const migrateV1toV2 = {
|
|
@@ -13,7 +13,7 @@ export async function initViewSyncerSchema(log, db, shardID) {
|
|
|
13
13
|
};
|
|
14
14
|
const migrateV2ToV3 = {
|
|
15
15
|
migrateSchema: async (_, tx) => {
|
|
16
|
-
await tx.unsafe(createRowsVersionTable(shardID));
|
|
16
|
+
await tx.unsafe(createRowsVersionTable(appID, shardID));
|
|
17
17
|
},
|
|
18
18
|
/** Populates the cvr.rowsVersion table with versions from cvr.instances. */
|
|
19
19
|
migrateData: async (lc, tx) => {
|
|
@@ -65,6 +65,6 @@ export async function initViewSyncerSchema(log, db, shardID) {
|
|
|
65
65
|
6: migrateV5ToV6,
|
|
66
66
|
7: migrateV6ToV7,
|
|
67
67
|
};
|
|
68
|
-
await runSchemaMigrations(log, 'view-syncer', cvrSchema(shardID), db, setupMigration, schemaVersionMigrationMap);
|
|
68
|
+
await runSchemaMigrations(log, 'view-syncer', cvrSchema(appID, shardID), db, setupMigration, schemaVersionMigrationMap);
|
|
69
69
|
}
|
|
70
70
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/init.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,GAGpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAC,sBAAsB,EAAE,SAAS,EAAE,cAAc,EAAC,MAAM,UAAU,CAAC;AAE3E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAe,EACf,EAAc,EACd,OAAe;IAEf,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,7 @@ import { type SchemaVersions } from '../../types/schema-versions.ts';
|
|
|
65
65
|
*/
|
|
66
66
|
export declare class Snapshotter {
|
|
67
67
|
#private;
|
|
68
|
-
constructor(lc: LogContext, dbFile: string);
|
|
68
|
+
constructor(lc: LogContext, dbFile: string, appID: string);
|
|
69
69
|
/**
|
|
70
70
|
* Initializes the snapshot to the current head of the database. This must be
|
|
71
71
|
* only be called once. The state of whether a Snapshotter has been initialized
|
|
@@ -167,11 +167,12 @@ export declare class ResetPipelinesSignal extends Error {
|
|
|
167
167
|
constructor(msg: string);
|
|
168
168
|
}
|
|
169
169
|
declare class Snapshot {
|
|
170
|
-
|
|
170
|
+
#private;
|
|
171
|
+
static create(lc: LogContext, dbFile: string, appID: string): Snapshot;
|
|
171
172
|
readonly db: StatementRunner;
|
|
172
173
|
readonly version: string;
|
|
173
174
|
readonly schemaVersions: SchemaVersions;
|
|
174
|
-
constructor(db: StatementRunner,
|
|
175
|
+
constructor(db: StatementRunner, appID: string);
|
|
175
176
|
numChangesSince(prevVersion: string): any;
|
|
176
177
|
changesSince(prevVersion: string): {
|
|
177
178
|
changes: IterableIterator<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAM5C,OAAO,KAAK,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAanE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,WAAW;;
|
|
1
|
+
{"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAM5C,OAAO,KAAK,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAanE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,WAAW;;gBAOV,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAMzD;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAOZ,WAAW,IAAI,OAAO;IAItB,+EAA+E;IAC/E,OAAO,IAAI,QAAQ;IAKnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,YAAY;IAK1D,kBAAkB;;;;IAUlB;;;OAGG;IACH,OAAO;CAKR;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;CAC/C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,MAAM,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,0BAA0B;gBAE3B,GAAG,EAAE,MAAM;CAGxB;AAQD,cAAM,QAAQ;;IACZ,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAmB3D,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAE7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;gBAE5B,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM;IAa9C,eAAe,CAAC,WAAW,EAAE,MAAM;IAQnC,YAAY,CAAC,WAAW,EAAE,MAAM;;;;IAUhC,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS;IAkBtD,OAAO,CAAC,KAAK,EAAE,qBAAqB;;;;IAYpC,WAAW,IAAI,QAAQ;CAIxB;AAuID,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,GAAG,EAAE,MAAM;CAGxB"}
|
|
@@ -73,11 +73,13 @@ import { getReplicationState, ZERO_VERSION_COLUMN_NAME as ROW_VERSION, } from ".
|
|
|
73
73
|
export class Snapshotter {
|
|
74
74
|
#lc;
|
|
75
75
|
#dbFile;
|
|
76
|
+
#appID;
|
|
76
77
|
#curr;
|
|
77
78
|
#prev;
|
|
78
|
-
constructor(lc, dbFile) {
|
|
79
|
+
constructor(lc, dbFile, appID) {
|
|
79
80
|
this.#lc = lc;
|
|
80
81
|
this.#dbFile = dbFile;
|
|
82
|
+
this.#appID = appID;
|
|
81
83
|
}
|
|
82
84
|
/**
|
|
83
85
|
* Initializes the snapshot to the current head of the database. This must be
|
|
@@ -86,7 +88,7 @@ export class Snapshotter {
|
|
|
86
88
|
*/
|
|
87
89
|
init() {
|
|
88
90
|
assert(this.#curr === undefined, 'Already initialized');
|
|
89
|
-
this.#curr = Snapshot.create(this.#lc, this.#dbFile);
|
|
91
|
+
this.#curr = Snapshot.create(this.#lc, this.#dbFile, this.#appID);
|
|
90
92
|
this.#lc.debug?.(`Initial snapshot at version ${this.#curr.version}`);
|
|
91
93
|
return this;
|
|
92
94
|
}
|
|
@@ -137,13 +139,13 @@ export class Snapshotter {
|
|
|
137
139
|
*/
|
|
138
140
|
advance(tables) {
|
|
139
141
|
const { prev, curr } = this.advanceWithoutDiff();
|
|
140
|
-
return new Diff(tables, prev, curr);
|
|
142
|
+
return new Diff(this.#appID, tables, prev, curr);
|
|
141
143
|
}
|
|
142
144
|
advanceWithoutDiff() {
|
|
143
145
|
assert(this.#curr !== undefined, 'Snapshotter has not been initialized');
|
|
144
146
|
const next = this.#prev
|
|
145
147
|
? this.#prev.resetToHead()
|
|
146
|
-
: Snapshot.create(this.#lc, this.#curr.db.db.name);
|
|
148
|
+
: Snapshot.create(this.#lc, this.#curr.db.db.name, this.#appID);
|
|
147
149
|
this.#prev = this.#curr;
|
|
148
150
|
this.#curr = next;
|
|
149
151
|
return { prev: this.#prev, curr: this.#curr };
|
|
@@ -169,11 +171,11 @@ export class ResetPipelinesSignal extends Error {
|
|
|
169
171
|
super(msg);
|
|
170
172
|
}
|
|
171
173
|
}
|
|
172
|
-
function getSchemaVersions(db) {
|
|
173
|
-
return db.get(
|
|
174
|
+
function getSchemaVersions(db, appID) {
|
|
175
|
+
return db.get(`SELECT minSupportedVersion, maxSupportedVersion FROM "${appID}.schemaVersions"`);
|
|
174
176
|
}
|
|
175
177
|
class Snapshot {
|
|
176
|
-
static create(lc, dbFile) {
|
|
178
|
+
static create(lc, dbFile, appID) {
|
|
177
179
|
const conn = new Database(lc, dbFile);
|
|
178
180
|
conn.pragma('synchronous = OFF'); // Applied changes are ephemeral; COMMIT is never called.
|
|
179
181
|
const [{ journal_mode: mode }] = conn.pragma('journal_mode');
|
|
@@ -182,21 +184,22 @@ class Snapshot {
|
|
|
182
184
|
// on a db in the wal2 journal_mode.
|
|
183
185
|
assert(mode === 'wal2', `replica db must be in wal2 mode (current: ${mode})`);
|
|
184
186
|
const db = new StatementRunner(conn);
|
|
187
|
+
return new Snapshot(db, appID);
|
|
188
|
+
}
|
|
189
|
+
db;
|
|
190
|
+
#appID;
|
|
191
|
+
version;
|
|
192
|
+
schemaVersions;
|
|
193
|
+
constructor(db, appID) {
|
|
185
194
|
db.beginConcurrent();
|
|
186
195
|
// Note: The subsequent read is necessary to acquire the read lock
|
|
187
196
|
// (which results in the logical creation of the snapshot). Calling
|
|
188
197
|
// `BEGIN CONCURRENT` alone does not result in acquiring the read lock.
|
|
189
198
|
const { stateVersion } = getReplicationState(db);
|
|
190
|
-
const schemaVersions = getSchemaVersions(db);
|
|
191
|
-
return new Snapshot(db, stateVersion, schemaVersions);
|
|
192
|
-
}
|
|
193
|
-
db;
|
|
194
|
-
version;
|
|
195
|
-
schemaVersions;
|
|
196
|
-
constructor(db, version, schemaVersions) {
|
|
197
199
|
this.db = db;
|
|
198
|
-
this
|
|
199
|
-
this.
|
|
200
|
+
this.#appID = appID;
|
|
201
|
+
this.version = stateVersion;
|
|
202
|
+
this.schemaVersions = getSchemaVersions(db, appID);
|
|
200
203
|
}
|
|
201
204
|
numChangesSince(prevVersion) {
|
|
202
205
|
const { count } = this.db.get('SELECT COUNT(*) AS count FROM "_zero.changeLog" WHERE stateVersion > ?', prevVersion);
|
|
@@ -234,18 +237,17 @@ class Snapshot {
|
|
|
234
237
|
}
|
|
235
238
|
resetToHead() {
|
|
236
239
|
this.db.rollback();
|
|
237
|
-
this.db
|
|
238
|
-
const { stateVersion } = getReplicationState(this.db);
|
|
239
|
-
const schemaVersions = getSchemaVersions(this.db);
|
|
240
|
-
return new Snapshot(this.db, stateVersion, schemaVersions);
|
|
240
|
+
return new Snapshot(this.db, this.#appID);
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
243
|
class Diff {
|
|
244
|
+
#permissionsTable;
|
|
244
245
|
tables;
|
|
245
246
|
prev;
|
|
246
247
|
curr;
|
|
247
248
|
changes;
|
|
248
|
-
constructor(tables, prev, curr) {
|
|
249
|
+
constructor(appID, tables, prev, curr) {
|
|
250
|
+
this.#permissionsTable = `${appID}.permissions`;
|
|
249
251
|
this.tables = tables;
|
|
250
252
|
this.prev = prev;
|
|
251
253
|
this.curr = curr;
|
|
@@ -291,9 +293,9 @@ class Diff {
|
|
|
291
293
|
// TODO: Consider doing this for deep-equal values.
|
|
292
294
|
continue;
|
|
293
295
|
}
|
|
294
|
-
if (table ===
|
|
296
|
+
if (table === this.#permissionsTable &&
|
|
295
297
|
prevValue.permissions !== nextValue.permissions) {
|
|
296
|
-
throw new ResetPipelinesSignal(`
|
|
298
|
+
throw new ResetPipelinesSignal(`Permissions have changed ${prevValue.hash} => ${nextValue.hash}`);
|
|
297
299
|
}
|
|
298
300
|
// Modify the values in place when converting to ZQL rows
|
|
299
301
|
// This is safe since we're the first node in the iterator chain.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAgB,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,kBAAkB,GAGnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAqB,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EACL,QAAQ,EACR,oBAAoB,IAAI,MAAM,EAC9B,MAAM,EACN,WAAW,GACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,wBAAwB,IAAI,WAAW,GACxC,MAAM,2CAA2C,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,OAAO,WAAW;IACb,GAAG,CAAa;IAChB,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export interface ViewSyncer {
|
|
|
31
31
|
export declare class ViewSyncerService implements ViewSyncer, ActivityBasedService {
|
|
32
32
|
#private;
|
|
33
33
|
readonly id: string;
|
|
34
|
-
constructor(lc: LogContext, taskID: string, clientGroupID: string, shardID: string, db: PostgresDB, pipelineDriver: PipelineDriver, versionChanges: Subscription<ReplicaState>, drainCoordinator: DrainCoordinator, keepaliveMs?: number);
|
|
34
|
+
constructor(lc: LogContext, appID: string, taskID: string, clientGroupID: string, shardID: string, db: PostgresDB, pipelineDriver: PipelineDriver, versionChanges: Subscription<ReplicaState>, drainCoordinator: DrainCoordinator, keepaliveMs?: number);
|
|
35
35
|
run(): Promise<void>;
|
|
36
36
|
/**
|
|
37
37
|
* Guarantees that the ViewSyncer will remain running for at least
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAarC,OAAO,KAAK,EAEV,2BAA2B,EAC5B,MAAM,yDAAyD,CAAC;AACjE,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ function randomID() {
|
|
|
27
27
|
}
|
|
28
28
|
export class ViewSyncerService {
|
|
29
29
|
id;
|
|
30
|
+
#appID;
|
|
30
31
|
#shardID;
|
|
31
32
|
#lc;
|
|
32
33
|
#pipelines;
|
|
@@ -46,16 +47,16 @@ export class ViewSyncerService {
|
|
|
46
47
|
#cvr;
|
|
47
48
|
#pipelinesSynced = false;
|
|
48
49
|
#authData;
|
|
49
|
-
|
|
50
|
-
constructor(lc, taskID, clientGroupID, shardID, db, pipelineDriver, versionChanges, drainCoordinator, keepaliveMs = DEFAULT_KEEPALIVE_MS) {
|
|
50
|
+
constructor(lc, appID, taskID, clientGroupID, shardID, db, pipelineDriver, versionChanges, drainCoordinator, keepaliveMs = DEFAULT_KEEPALIVE_MS) {
|
|
51
51
|
this.id = clientGroupID;
|
|
52
|
+
this.#appID = appID;
|
|
52
53
|
this.#shardID = shardID;
|
|
53
54
|
this.#lc = lc;
|
|
54
55
|
this.#pipelines = pipelineDriver;
|
|
55
56
|
this.#stateChanges = versionChanges;
|
|
56
57
|
this.#drainCoordinator = drainCoordinator;
|
|
57
58
|
this.#keepaliveMs = keepaliveMs;
|
|
58
|
-
this.#cvrStore = new CVRStore(lc, db, shardID, taskID, clientGroupID,
|
|
59
|
+
this.#cvrStore = new CVRStore(lc, db, appID, shardID, taskID, clientGroupID,
|
|
59
60
|
// On failure, cancel the #stateChanges subscription. The run()
|
|
60
61
|
// loop will then await #cvrStore.flushed() which rejects if necessary.
|
|
61
62
|
() => this.#stateChanges.cancel());
|
|
@@ -124,7 +125,6 @@ export class ViewSyncerService {
|
|
|
124
125
|
}
|
|
125
126
|
// stateVersion is at or beyond CVR version for the first time.
|
|
126
127
|
lc.info?.(`init pipelines@${version} (cvr@${cvrVer})`);
|
|
127
|
-
this.#permissions = this.#pipelines.currentPermissions();
|
|
128
128
|
this.#hydrateUnchangedQueries(lc, cvr);
|
|
129
129
|
await this.#syncQueryPipelineSet(lc, cvr);
|
|
130
130
|
this.#pipelinesSynced = true;
|
|
@@ -229,7 +229,7 @@ export class ViewSyncerService {
|
|
|
229
229
|
this.#deleteClient(clientID, newClient);
|
|
230
230
|
},
|
|
231
231
|
});
|
|
232
|
-
const newClient = new ClientHandler(lc, this.id, clientID, wsID, this.#shardID, baseCookie, protocolVersion, schemaVersion, downstream);
|
|
232
|
+
const newClient = new ClientHandler(lc, this.id, clientID, wsID, this.#appID, this.#shardID, baseCookie, protocolVersion, schemaVersion, downstream);
|
|
233
233
|
this.#clients.get(clientID)?.close(`replaced by wsID: ${wsID}`);
|
|
234
234
|
this.#clients.set(clientID, newClient);
|
|
235
235
|
// Note: initConnection() must be synchronous so that `downstream` is
|
|
@@ -260,7 +260,7 @@ export class ViewSyncerService {
|
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
262
|
async #updatePatchesForDesiredQueries(lc, cvr, fn) {
|
|
263
|
-
const updater = new CVRConfigDrivenUpdater(this.#cvrStore, cvr, this.#shardID);
|
|
263
|
+
const updater = new CVRConfigDrivenUpdater(this.#cvrStore, cvr, this.#appID, this.#shardID);
|
|
264
264
|
const patches = fn(updater);
|
|
265
265
|
this.#cvr = (await updater.flush(lc, true, this.#lastConnectTime)).cvr;
|
|
266
266
|
if (cmpVersions(cvr.version, this.#cvr.version) < 0) {
|
|
@@ -420,7 +420,9 @@ export class ViewSyncerService {
|
|
|
420
420
|
if (!query.internal && Object.keys(query.desiredBy).length === 0) {
|
|
421
421
|
continue; // No longer desired.
|
|
422
422
|
}
|
|
423
|
-
const { query: transformedAst, hash: newTransformationHash } = transformAndHashQuery(lc, ast, must(this.#
|
|
423
|
+
const { query: transformedAst, hash: newTransformationHash } = transformAndHashQuery(lc, ast, must(this.#pipelines.currentPermissions()).permissions ?? {
|
|
424
|
+
tables: {},
|
|
425
|
+
}, this.#authData, query.internal);
|
|
424
426
|
if (newTransformationHash !== transformationHash) {
|
|
425
427
|
continue; // Query results may have changed.
|
|
426
428
|
}
|
|
@@ -453,7 +455,9 @@ export class ViewSyncerService {
|
|
|
453
455
|
// Convert queries to their transformed ast's and hashes
|
|
454
456
|
const hashToIDs = new Map();
|
|
455
457
|
const serverQueries = Object.entries(cvr.queries).map(([id, q]) => {
|
|
456
|
-
const { query, hash: transformationHash } = transformAndHashQuery(lc, q.ast, must(this.#
|
|
458
|
+
const { query, hash: transformationHash } = transformAndHashQuery(lc, q.ast, must(this.#pipelines.currentPermissions()).permissions ?? {
|
|
459
|
+
tables: {},
|
|
460
|
+
}, this.#authData, q.internal);
|
|
457
461
|
if (hashToIDs.has(transformationHash)) {
|
|
458
462
|
must(hashToIDs.get(transformationHash)).push(id);
|
|
459
463
|
}
|