@opendatalabs/personal-server-ts-server 1.33.8 → 1.34.1
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/dist/__fixtures__/bound-record-store.d.ts +19 -0
- package/dist/__fixtures__/bound-record-store.d.ts.map +1 -0
- package/dist/__fixtures__/bound-record-store.js +60 -0
- package/dist/__fixtures__/bound-record-store.js.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.d.ts +41 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.d.ts.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.js +34 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-authorization-strategy.js.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.d.ts +112 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.d.ts.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.js +226 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-context-client.js.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.d.ts +135 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.d.ts.map +1 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.js +21 -0
- package/dist/__fixtures__/cg-pdpp-client/pdpp-types.js.map +1 -0
- package/dist/api-auth.d.ts +18 -2
- package/dist/api-auth.d.ts.map +1 -1
- package/dist/api-auth.js +114 -22
- package/dist/api-auth.js.map +1 -1
- package/dist/app.d.ts +60 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +139 -1
- package/dist/app.js.map +1 -1
- package/dist/bootstrap.d.ts +10 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +359 -8
- package/dist/bootstrap.js.map +1 -1
- package/dist/enclave-main.d.ts +4 -0
- package/dist/enclave-main.d.ts.map +1 -1
- package/dist/enclave-main.js +152 -1
- package/dist/enclave-main.js.map +1 -1
- package/dist/middleware/body-limit.d.ts +1 -1
- package/dist/middleware/body-limit.d.ts.map +1 -1
- package/dist/middleware/body-limit.js +8 -3
- package/dist/middleware/body-limit.js.map +1 -1
- package/dist/middleware/cors.d.ts.map +1 -1
- package/dist/middleware/cors.js +1 -0
- package/dist/middleware/cors.js.map +1 -1
- package/dist/package.json +9 -1
- package/dist/pdpp/bootstrap.d.ts +72 -0
- package/dist/pdpp/bootstrap.d.ts.map +1 -0
- package/dist/pdpp/bootstrap.js +270 -0
- package/dist/pdpp/bootstrap.js.map +1 -0
- package/dist/pdpp/chain-enforcement.d.ts +95 -0
- package/dist/pdpp/chain-enforcement.d.ts.map +1 -0
- package/dist/pdpp/chain-enforcement.js +145 -0
- package/dist/pdpp/chain-enforcement.js.map +1 -0
- package/dist/pdpp/client-document-fetch.d.ts +63 -0
- package/dist/pdpp/client-document-fetch.d.ts.map +1 -0
- package/dist/pdpp/client-document-fetch.js +254 -0
- package/dist/pdpp/client-document-fetch.js.map +1 -0
- package/dist/pdpp/declaration-registry.d.ts +83 -0
- package/dist/pdpp/declaration-registry.d.ts.map +1 -0
- package/dist/pdpp/declaration-registry.js +251 -0
- package/dist/pdpp/declaration-registry.js.map +1 -0
- package/dist/pdpp/deployment.d.ts +70 -0
- package/dist/pdpp/deployment.d.ts.map +1 -0
- package/dist/pdpp/deployment.js +104 -0
- package/dist/pdpp/deployment.js.map +1 -0
- package/dist/pdpp/record-schema.d.ts +2 -0
- package/dist/pdpp/record-schema.d.ts.map +1 -0
- package/dist/pdpp/record-schema.js +2 -0
- package/dist/pdpp/record-schema.js.map +1 -0
- package/dist/pdpp/records-bootstrap.d.ts +111 -0
- package/dist/pdpp/records-bootstrap.d.ts.map +1 -0
- package/dist/pdpp/records-bootstrap.js +353 -0
- package/dist/pdpp/records-bootstrap.js.map +1 -0
- package/dist/pdpp/source-id-compat.d.ts +5 -0
- package/dist/pdpp/source-id-compat.d.ts.map +1 -0
- package/dist/pdpp/source-id-compat.js +16 -0
- package/dist/pdpp/source-id-compat.js.map +1 -0
- package/dist/pdpp/test-connections.d.ts +6 -0
- package/dist/pdpp/test-connections.d.ts.map +1 -0
- package/dist/pdpp/test-connections.js +37 -0
- package/dist/pdpp/test-connections.js.map +1 -0
- package/dist/routes/auth-device.d.ts.map +1 -1
- package/dist/routes/auth-device.js +3 -0
- package/dist/routes/auth-device.js.map +1 -1
- package/dist/routes/chunked-scope-import.d.ts +41 -0
- package/dist/routes/chunked-scope-import.d.ts.map +1 -0
- package/dist/routes/chunked-scope-import.js +901 -0
- package/dist/routes/chunked-scope-import.js.map +1 -0
- package/dist/routes/data.d.ts +23 -1
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +112 -1
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/grants.d.ts.map +1 -1
- package/dist/routes/grants.js +2 -0
- package/dist/routes/grants.js.map +1 -1
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +3 -0
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/pdpp-auth.d.ts +157 -0
- package/dist/routes/pdpp-auth.d.ts.map +1 -0
- package/dist/routes/pdpp-auth.js +953 -0
- package/dist/routes/pdpp-auth.js.map +1 -0
- package/dist/routes/pdpp-blobs.d.ts +26 -0
- package/dist/routes/pdpp-blobs.d.ts.map +1 -0
- package/dist/routes/pdpp-blobs.js +179 -0
- package/dist/routes/pdpp-blobs.js.map +1 -0
- package/dist/routes/pdpp-connections.d.ts +28 -0
- package/dist/routes/pdpp-connections.d.ts.map +1 -0
- package/dist/routes/pdpp-connections.js +144 -0
- package/dist/routes/pdpp-connections.js.map +1 -0
- package/dist/routes/pdpp-declarations.d.ts +58 -0
- package/dist/routes/pdpp-declarations.d.ts.map +1 -0
- package/dist/routes/pdpp-declarations.js +94 -0
- package/dist/routes/pdpp-declarations.js.map +1 -0
- package/dist/routes/pdpp-instance-bindings.d.ts +26 -0
- package/dist/routes/pdpp-instance-bindings.d.ts.map +1 -0
- package/dist/routes/pdpp-instance-bindings.js +124 -0
- package/dist/routes/pdpp-instance-bindings.js.map +1 -0
- package/dist/routes/pdpp-records.d.ts +158 -0
- package/dist/routes/pdpp-records.d.ts.map +1 -0
- package/dist/routes/pdpp-records.js +1537 -0
- package/dist/routes/pdpp-records.js.map +1 -0
- package/dist/routes/pdpp-well-known.d.ts +13 -0
- package/dist/routes/pdpp-well-known.d.ts.map +1 -0
- package/dist/routes/pdpp-well-known.js +20 -0
- package/dist/routes/pdpp-well-known.js.map +1 -0
- package/dist/storage/declaration-witness.d.ts +56 -0
- package/dist/storage/declaration-witness.d.ts.map +1 -0
- package/dist/storage/declaration-witness.js +273 -0
- package/dist/storage/declaration-witness.js.map +1 -0
- package/dist/storage/hierarchy.d.ts +25 -1
- package/dist/storage/hierarchy.d.ts.map +1 -1
- package/dist/storage/hierarchy.js +210 -16
- package/dist/storage/hierarchy.js.map +1 -1
- package/dist/storage/import-operations.d.ts +11 -0
- package/dist/storage/import-operations.d.ts.map +1 -0
- package/dist/storage/import-operations.js +261 -0
- package/dist/storage/import-operations.js.map +1 -0
- package/dist/storage/index-manager.d.ts +24 -2
- package/dist/storage/index-manager.d.ts.map +1 -1
- package/dist/storage/index-manager.js +279 -30
- package/dist/storage/index-manager.js.map +1 -1
- package/dist/storage/index-schema.d.ts +1 -1
- package/dist/storage/index-schema.d.ts.map +1 -1
- package/dist/storage/index-schema.js +189 -8
- package/dist/storage/index-schema.js.map +1 -1
- package/dist/storage/legacy-scope-authority.d.ts +14 -0
- package/dist/storage/legacy-scope-authority.d.ts.map +1 -0
- package/dist/storage/legacy-scope-authority.js +298 -0
- package/dist/storage/legacy-scope-authority.js.map +1 -0
- package/dist/storage/node-data-storage.d.ts +6 -0
- package/dist/storage/node-data-storage.d.ts.map +1 -1
- package/dist/storage/node-data-storage.js +161 -2
- package/dist/storage/node-data-storage.js.map +1 -1
- package/dist/storage/pdpp-grant-binding-sqlite-store.d.ts +17 -0
- package/dist/storage/pdpp-grant-binding-sqlite-store.d.ts.map +1 -0
- package/dist/storage/pdpp-grant-binding-sqlite-store.js +159 -0
- package/dist/storage/pdpp-grant-binding-sqlite-store.js.map +1 -0
- package/dist/storage/pdpp-records-sqlite-store.d.ts +112 -0
- package/dist/storage/pdpp-records-sqlite-store.d.ts.map +1 -0
- package/dist/storage/pdpp-records-sqlite-store.js +1440 -0
- package/dist/storage/pdpp-records-sqlite-store.js.map +1 -0
- package/dist/storage/pdpp-stream-completion.d.ts +5 -0
- package/dist/storage/pdpp-stream-completion.d.ts.map +1 -0
- package/dist/storage/pdpp-stream-completion.js +10 -0
- package/dist/storage/pdpp-stream-completion.js.map +1 -0
- package/dist/storage/scope-deletion-history.d.ts +8 -0
- package/dist/storage/scope-deletion-history.d.ts.map +1 -0
- package/dist/storage/scope-deletion-history.js +40 -0
- package/dist/storage/scope-deletion-history.js.map +1 -0
- package/dist/ui/ps-lite-debug.js +3981 -1109
- package/package.json +12 -4
|
@@ -2,6 +2,22 @@ import type Database from "better-sqlite3";
|
|
|
2
2
|
import type { IndexEntry, IndexListOptions, NewIndexEntry, ScopeSummary } from "@opendatalabs/personal-server-ts-core/storage/index";
|
|
3
3
|
export interface IndexManager {
|
|
4
4
|
insert(entry: NewIndexEntry): IndexEntry;
|
|
5
|
+
insertIfCurrent(entry: NewIndexEntry, precondition?: {
|
|
6
|
+
kind: "none";
|
|
7
|
+
} | {
|
|
8
|
+
kind: "match";
|
|
9
|
+
version: number;
|
|
10
|
+
}): {
|
|
11
|
+
ok: true;
|
|
12
|
+
entry: IndexEntry;
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
currentVersion: number | null;
|
|
16
|
+
currentProducer: string | null;
|
|
17
|
+
};
|
|
18
|
+
closeScopeForWrites(scope: string): void;
|
|
19
|
+
hasTrustedRevisionJournal(scope: string): boolean;
|
|
20
|
+
insertRecovered(entry: NewIndexEntry): IndexEntry;
|
|
5
21
|
findByPath(path: string): IndexEntry | undefined;
|
|
6
22
|
findByScope(options: IndexListOptions): IndexEntry[];
|
|
7
23
|
findLatestByScope(scope: string): IndexEntry | undefined;
|
|
@@ -22,6 +38,7 @@ export interface IndexManager {
|
|
|
22
38
|
scopes: ScopeSummary[];
|
|
23
39
|
total: number;
|
|
24
40
|
};
|
|
41
|
+
listIndexedScopes(): string[];
|
|
25
42
|
findClosestByScope(scope: string, at: string): IndexEntry | undefined;
|
|
26
43
|
findByFileId(fileId: string): IndexEntry | undefined;
|
|
27
44
|
/** Find an index entry by its DPv2 data-point id (download dedup). */
|
|
@@ -39,7 +56,7 @@ export interface IndexManager {
|
|
|
39
56
|
* @returns true if row was updated, false if path not found
|
|
40
57
|
*/
|
|
41
58
|
updateFileId(path: string, fileId: string): boolean;
|
|
42
|
-
/** Highest
|
|
59
|
+
/** Highest DPv2 sync version for a scope; 0 if none. */
|
|
43
60
|
findLatestVersionByScope(scope: string): number;
|
|
44
61
|
/**
|
|
45
62
|
* Update the dataPointId for an index entry (after DPv2 registerDataPoint).
|
|
@@ -56,5 +73,10 @@ export interface IndexManager {
|
|
|
56
73
|
deleteByScope(scope: string): number;
|
|
57
74
|
close(): void;
|
|
58
75
|
}
|
|
59
|
-
export declare function
|
|
76
|
+
export declare function indexDatabase(index: IndexManager): Database.Database | undefined;
|
|
77
|
+
export declare function createIndexManager(db: Database.Database, options?: {
|
|
78
|
+
revisionJournalDir?: string;
|
|
79
|
+
historyUnknownPath?: string;
|
|
80
|
+
allowOpenMarkerMigration?: boolean;
|
|
81
|
+
}): IndexManager;
|
|
60
82
|
//# sourceMappingURL=index-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
2
|
+
import { closeSync, fsyncSync, mkdirSync, openSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
const databases = new WeakMap();
|
|
5
|
+
export function indexDatabase(index) {
|
|
6
|
+
return databases.get(index);
|
|
7
|
+
}
|
|
1
8
|
function rowToEntry(row) {
|
|
2
9
|
return {
|
|
3
10
|
id: row.id,
|
|
@@ -9,20 +16,172 @@ function rowToEntry(row) {
|
|
|
9
16
|
createdAt: row.created_at,
|
|
10
17
|
sizeBytes: row.size_bytes,
|
|
11
18
|
version: row.version,
|
|
19
|
+
casRevision: row.cas_revision,
|
|
12
20
|
dataPointId: row.data_point_id,
|
|
13
21
|
afterTombstoneVersion: row.after_tombstone_version ?? null,
|
|
22
|
+
producer: row.producer,
|
|
23
|
+
producerProvenance: row.producer_provenance,
|
|
14
24
|
};
|
|
15
25
|
}
|
|
16
|
-
export function createIndexManager(db) {
|
|
17
|
-
const
|
|
18
|
-
|
|
26
|
+
export function createIndexManager(db, options) {
|
|
27
|
+
const revisionJournalDir = options?.revisionJournalDir;
|
|
28
|
+
const historyUnknownPath = options?.historyUnknownPath;
|
|
29
|
+
if (revisionJournalDir) {
|
|
30
|
+
mkdirSync(revisionJournalDir, { recursive: true });
|
|
31
|
+
const parent = openSync(dirname(revisionJournalDir), "r");
|
|
32
|
+
try {
|
|
33
|
+
fsyncSync(parent);
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
closeSync(parent);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const journalPath = (scope) => join(revisionJournalDir, `${createHash("sha256").update(scope).digest("hex")}.revision`);
|
|
40
|
+
const closedMarkerPath = (scope) => `${journalPath(scope)}.closed`;
|
|
41
|
+
const openMarkerPath = (scope) => `${journalPath(scope)}.open`;
|
|
42
|
+
const markerExists = (path) => {
|
|
43
|
+
try {
|
|
44
|
+
readFileSync(path);
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
if (error.code === "ENOENT")
|
|
49
|
+
return false;
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const historyUnknown = historyUnknownPath !== undefined && markerExists(historyUnknownPath);
|
|
54
|
+
const readJournal = (scope) => {
|
|
55
|
+
if (!revisionJournalDir)
|
|
56
|
+
return 0;
|
|
57
|
+
let value;
|
|
58
|
+
try {
|
|
59
|
+
value = readFileSync(journalPath(scope), "utf8");
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
if (error.code === "ENOENT")
|
|
63
|
+
return 0;
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
const revision = Number(value);
|
|
67
|
+
if (!/^(0|[1-9]\d*)$/.test(value) || !Number.isSafeInteger(revision)) {
|
|
68
|
+
throw new Error(`Invalid CAS revision journal for ${scope}`);
|
|
69
|
+
}
|
|
70
|
+
return revision;
|
|
71
|
+
};
|
|
72
|
+
const reserveJournal = (scope, revision) => {
|
|
73
|
+
if (!revisionJournalDir || revision <= readJournal(scope))
|
|
74
|
+
return;
|
|
75
|
+
const path = journalPath(scope);
|
|
76
|
+
const staged = `${path}.pending.${randomUUID()}`;
|
|
77
|
+
const file = openSync(staged, "wx");
|
|
78
|
+
try {
|
|
79
|
+
writeFileSync(file, String(revision));
|
|
80
|
+
fsyncSync(file);
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
closeSync(file);
|
|
84
|
+
}
|
|
85
|
+
renameSync(staged, path);
|
|
86
|
+
const dir = openSync(revisionJournalDir, "r");
|
|
87
|
+
try {
|
|
88
|
+
fsyncSync(dir);
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
closeSync(dir);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const reserveMarker = (path, content) => {
|
|
95
|
+
if (!revisionJournalDir)
|
|
96
|
+
return;
|
|
97
|
+
if (markerExists(path))
|
|
98
|
+
return;
|
|
99
|
+
const staged = `${path}.pending.${randomUUID()}`;
|
|
100
|
+
const file = openSync(staged, "wx");
|
|
101
|
+
try {
|
|
102
|
+
writeFileSync(file, content);
|
|
103
|
+
fsyncSync(file);
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
closeSync(file);
|
|
107
|
+
}
|
|
108
|
+
renameSync(staged, path);
|
|
109
|
+
const dir = openSync(revisionJournalDir, "r");
|
|
110
|
+
try {
|
|
111
|
+
fsyncSync(dir);
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
closeSync(dir);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
const reserveClosedMarker = (scope) => {
|
|
118
|
+
if (revisionJournalDir)
|
|
119
|
+
reserveMarker(closedMarkerPath(scope), "closed\n");
|
|
120
|
+
};
|
|
121
|
+
const reserveOpenMarker = (scope) => {
|
|
122
|
+
if (revisionJournalDir)
|
|
123
|
+
reserveMarker(openMarkerPath(scope), "open\n");
|
|
124
|
+
};
|
|
125
|
+
const removeOpenMarker = (scope) => {
|
|
126
|
+
if (!revisionJournalDir || !markerExists(openMarkerPath(scope)))
|
|
127
|
+
return;
|
|
128
|
+
unlinkSync(openMarkerPath(scope));
|
|
129
|
+
const dir = openSync(revisionJournalDir, "r");
|
|
130
|
+
try {
|
|
131
|
+
fsyncSync(dir);
|
|
132
|
+
}
|
|
133
|
+
finally {
|
|
134
|
+
closeSync(dir);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const hasTrustedRevisionJournal = (scope) => !!revisionJournalDir &&
|
|
138
|
+
readJournal(scope) > 0 &&
|
|
139
|
+
markerExists(openMarkerPath(scope)) &&
|
|
140
|
+
!markerExists(closedMarkerPath(scope));
|
|
141
|
+
// The index can be reconstructed from envelopes. Keep a separate durable
|
|
142
|
+
// high-water mark so reconstruction cannot reuse a deleted CAS version.
|
|
143
|
+
if (revisionJournalDir) {
|
|
144
|
+
const existing = db
|
|
145
|
+
.prepare("SELECT scope, cas_revision, closed_for_writes FROM scope_revisions")
|
|
146
|
+
.all();
|
|
147
|
+
for (const row of existing) {
|
|
148
|
+
reserveJournal(row.scope, row.cas_revision);
|
|
149
|
+
if (row.closed_for_writes === 1 ||
|
|
150
|
+
markerExists(closedMarkerPath(row.scope)) ||
|
|
151
|
+
(!markerExists(openMarkerPath(row.scope)) &&
|
|
152
|
+
!options?.allowOpenMarkerMigration)) {
|
|
153
|
+
removeOpenMarker(row.scope);
|
|
154
|
+
reserveClosedMarker(row.scope);
|
|
155
|
+
db.prepare("UPDATE scope_revisions SET closed_for_writes = 1 WHERE scope = ?").run(row.scope);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
reserveOpenMarker(row.scope);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const insertStmt = db.prepare(`INSERT INTO data_files (file_id, schema_id, path, scope, collected_at, size_bytes, version, cas_revision, data_point_id, after_tombstone_version, producer, producer_provenance)
|
|
163
|
+
VALUES (@file_id, @schema_id, @path, @scope, @collected_at, @size_bytes, @version, @cas_revision, @data_point_id, @after_tombstone_version, @producer, @producer_provenance)`);
|
|
19
164
|
const maxVersionByScopeStmt = db.prepare("SELECT COALESCE(MAX(version), 0) AS max_version FROM data_files WHERE scope = @scope");
|
|
20
165
|
const findByPathStmt = db.prepare("SELECT * FROM data_files WHERE path = @path");
|
|
21
|
-
const findLatestByScopeStmt = db.prepare("SELECT * FROM data_files WHERE scope = @scope ORDER BY collected_at DESC LIMIT 1");
|
|
166
|
+
const findLatestByScopeStmt = db.prepare("SELECT * FROM data_files WHERE scope = @scope ORDER BY julianday(collected_at) DESC, id DESC LIMIT 1");
|
|
167
|
+
const currentForWriteStmt = db.prepare(`SELECT
|
|
168
|
+
latest.cas_revision,
|
|
169
|
+
latest.producer,
|
|
170
|
+
revisions.closed_for_writes
|
|
171
|
+
FROM scope_revisions revisions
|
|
172
|
+
LEFT JOIN (
|
|
173
|
+
SELECT cas_revision, producer
|
|
174
|
+
FROM data_files
|
|
175
|
+
WHERE scope = @scope
|
|
176
|
+
ORDER BY julianday(collected_at) DESC, id DESC
|
|
177
|
+
LIMIT 1
|
|
178
|
+
) latest ON 1 = 1
|
|
179
|
+
WHERE revisions.scope = @scope`);
|
|
22
180
|
const countByScopeStmt = db.prepare("SELECT COUNT(*) AS cnt FROM data_files WHERE scope = @scope");
|
|
23
181
|
const deleteByPathStmt = db.prepare("DELETE FROM data_files WHERE path = @path");
|
|
24
182
|
const deleteUnsyncedByPathStmt = db.prepare("DELETE FROM data_files WHERE path = @path AND data_point_id IS NULL");
|
|
25
|
-
const findClosestByScopeStmt = db.prepare("SELECT * FROM data_files WHERE scope = @scope AND collected_at <= @at ORDER BY collected_at DESC LIMIT 1");
|
|
183
|
+
const findClosestByScopeStmt = db.prepare("SELECT * FROM data_files WHERE scope = @scope AND julianday(collected_at) <= julianday(@at) ORDER BY julianday(collected_at) DESC, id DESC LIMIT 1");
|
|
184
|
+
const listIndexedScopesStmt = db.prepare("SELECT DISTINCT scope FROM data_files ORDER BY scope ASC");
|
|
26
185
|
const findByFileIdStmt = db.prepare("SELECT * FROM data_files WHERE file_id = @file_id");
|
|
27
186
|
const findByDataPointIdStmt = db.prepare("SELECT * FROM data_files WHERE data_point_id = @data_point_id ORDER BY version DESC, id DESC LIMIT 1");
|
|
28
187
|
const findUnsyncedStmt = db.prepare("SELECT * FROM data_files WHERE data_point_id IS NULL ORDER BY created_at ASC");
|
|
@@ -30,28 +189,101 @@ export function createIndexManager(db) {
|
|
|
30
189
|
const updateFileIdStmt = db.prepare("UPDATE data_files SET file_id = @file_id WHERE path = @path");
|
|
31
190
|
const updateDataPointIdStmt = db.prepare("UPDATE data_files SET data_point_id = @data_point_id WHERE path = @path");
|
|
32
191
|
const updateVersionStmt = db.prepare("UPDATE data_files SET version = @version WHERE path = @path");
|
|
192
|
+
const ensureScopeRevisionStmt = db.prepare("INSERT OR IGNORE INTO scope_revisions (scope, cas_revision, closed_for_writes) VALUES (@scope, 0, 0)");
|
|
193
|
+
const readScopeRevisionStmt = db.prepare("SELECT cas_revision FROM scope_revisions WHERE scope = @scope");
|
|
194
|
+
const updateScopeRevisionStmt = db.prepare("UPDATE scope_revisions SET cas_revision = @cas_revision WHERE scope = @scope AND cas_revision < @cas_revision");
|
|
195
|
+
const closeScopeForWritesStmt = db.prepare("UPDATE scope_revisions SET closed_for_writes = 1 WHERE scope = @scope");
|
|
33
196
|
const deleteByScopeStmt = db.prepare("DELETE FROM data_files WHERE scope = @scope");
|
|
34
|
-
|
|
197
|
+
const insertRow = (entry) => {
|
|
198
|
+
ensureScopeRevisionStmt.run({ scope: entry.scope });
|
|
199
|
+
const current = readScopeRevisionStmt.get({ scope: entry.scope });
|
|
200
|
+
const casRevision = entry.casRevision ??
|
|
201
|
+
Math.max(current.cas_revision, readJournal(entry.scope)) + 1;
|
|
202
|
+
if (!Number.isSafeInteger(casRevision)) {
|
|
203
|
+
throw new Error("CAS revision exhausted");
|
|
204
|
+
}
|
|
205
|
+
// Sync history counts retained versions; CAS revisions never rewind.
|
|
206
|
+
const version = entry.version ??
|
|
207
|
+
maxVersionByScopeStmt.get({ scope: entry.scope }).max_version + 1;
|
|
208
|
+
// Reserve before the SQLite commit. A crash may leave a gap, but never
|
|
209
|
+
// lets an old If-Match value name a different row after index recovery.
|
|
210
|
+
reserveJournal(entry.scope, casRevision);
|
|
211
|
+
updateScopeRevisionStmt.run({
|
|
212
|
+
scope: entry.scope,
|
|
213
|
+
cas_revision: casRevision,
|
|
214
|
+
});
|
|
215
|
+
const result = insertStmt.run({
|
|
216
|
+
file_id: entry.fileId,
|
|
217
|
+
schema_id: entry.schemaId ?? null,
|
|
218
|
+
path: entry.path,
|
|
219
|
+
scope: entry.scope,
|
|
220
|
+
collected_at: entry.collectedAt,
|
|
221
|
+
size_bytes: entry.sizeBytes,
|
|
222
|
+
version,
|
|
223
|
+
cas_revision: casRevision,
|
|
224
|
+
data_point_id: entry.dataPointId ?? null,
|
|
225
|
+
after_tombstone_version: entry.afterTombstoneVersion ?? null,
|
|
226
|
+
producer: entry.producer ?? null,
|
|
227
|
+
producer_provenance: entry.producerProvenance ?? null,
|
|
228
|
+
});
|
|
229
|
+
const row = db
|
|
230
|
+
.prepare("SELECT * FROM data_files WHERE id = ?")
|
|
231
|
+
.get(result.lastInsertRowid);
|
|
232
|
+
return rowToEntry(row);
|
|
233
|
+
};
|
|
234
|
+
const insertIfCurrent = db.transaction((entry, precondition) => {
|
|
235
|
+
const current = currentForWriteStmt.get({ scope: entry.scope });
|
|
236
|
+
const currentVersion = current === undefined ? null : (current.cas_revision ?? null);
|
|
237
|
+
const scopeClosedForWrites = ((historyUnknown ||
|
|
238
|
+
(historyUnknownPath !== undefined &&
|
|
239
|
+
markerExists(historyUnknownPath))) &&
|
|
240
|
+
!hasTrustedRevisionJournal(entry.scope)) ||
|
|
241
|
+
current?.closed_for_writes === 1 ||
|
|
242
|
+
(revisionJournalDir !== undefined &&
|
|
243
|
+
(markerExists(closedMarkerPath(entry.scope)) ||
|
|
244
|
+
((current !== undefined || readJournal(entry.scope) > 0) &&
|
|
245
|
+
!hasTrustedRevisionJournal(entry.scope))));
|
|
246
|
+
if (scopeClosedForWrites ||
|
|
247
|
+
(precondition?.kind === "none" &&
|
|
248
|
+
(current?.cas_revision ?? null) !== null) ||
|
|
249
|
+
(precondition?.kind === "match" &&
|
|
250
|
+
currentVersion !== precondition.version)) {
|
|
251
|
+
if (scopeClosedForWrites) {
|
|
252
|
+
ensureScopeRevisionStmt.run({ scope: entry.scope });
|
|
253
|
+
removeOpenMarker(entry.scope);
|
|
254
|
+
reserveClosedMarker(entry.scope);
|
|
255
|
+
closeScopeForWritesStmt.run({ scope: entry.scope });
|
|
256
|
+
}
|
|
257
|
+
return {
|
|
258
|
+
ok: false,
|
|
259
|
+
currentVersion,
|
|
260
|
+
currentProducer: current?.producer ?? null,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
reserveOpenMarker(entry.scope);
|
|
264
|
+
return { ok: true, entry: insertRow(entry) };
|
|
265
|
+
});
|
|
266
|
+
const manager = {
|
|
35
267
|
insert(entry) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return
|
|
268
|
+
const result = insertIfCurrent(entry);
|
|
269
|
+
if (!result.ok)
|
|
270
|
+
throw new Error("Unconditional insert was rejected");
|
|
271
|
+
return result.entry;
|
|
272
|
+
},
|
|
273
|
+
insertIfCurrent,
|
|
274
|
+
closeScopeForWrites(scope) {
|
|
275
|
+
ensureScopeRevisionStmt.run({ scope });
|
|
276
|
+
// Durable fail-closed marker. There is no HTTP reset path; clearing this
|
|
277
|
+
// requires an explicit owner-confirmed offline repair/rebuild.
|
|
278
|
+
// Remove open proof first. A crash before the closed marker is written
|
|
279
|
+
// leaves an ambiguous scope, which startup closes from the database row.
|
|
280
|
+
removeOpenMarker(scope);
|
|
281
|
+
reserveClosedMarker(scope);
|
|
282
|
+
closeScopeForWritesStmt.run({ scope });
|
|
283
|
+
},
|
|
284
|
+
hasTrustedRevisionJournal,
|
|
285
|
+
insertRecovered(entry) {
|
|
286
|
+
return insertRow(entry);
|
|
55
287
|
},
|
|
56
288
|
findByPath(path) {
|
|
57
289
|
const row = findByPathStmt.get({ path });
|
|
@@ -64,9 +296,10 @@ export function createIndexManager(db) {
|
|
|
64
296
|
sql += " WHERE scope = @scope";
|
|
65
297
|
params.scope = options.scope;
|
|
66
298
|
}
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
|
|
299
|
+
// Preserve the legacy chronological head when sync backfills history.
|
|
300
|
+
// julianday handles both older second-precision and newer millisecond
|
|
301
|
+
// timestamps; id breaks exact ties.
|
|
302
|
+
sql += " ORDER BY julianday(collected_at) DESC, id DESC";
|
|
70
303
|
if (options.limit !== undefined) {
|
|
71
304
|
sql += " LIMIT @limit";
|
|
72
305
|
params.limit = options.limit;
|
|
@@ -101,7 +334,17 @@ export function createIndexManager(db) {
|
|
|
101
334
|
.prepare("SELECT COUNT(DISTINCT scope) AS cnt FROM data_files WHERE scope LIKE @prefix")
|
|
102
335
|
.get({ prefix });
|
|
103
336
|
const total = countRow.cnt;
|
|
104
|
-
let sql =
|
|
337
|
+
let sql = `SELECT latest.scope, latest.collected_at AS latest_collected_at,
|
|
338
|
+
(SELECT COUNT(*) FROM data_files counted WHERE counted.scope = latest.scope) AS version_count
|
|
339
|
+
FROM data_files latest
|
|
340
|
+
WHERE latest.scope LIKE @prefix
|
|
341
|
+
AND latest.id = (
|
|
342
|
+
SELECT id FROM data_files candidate
|
|
343
|
+
WHERE candidate.scope = latest.scope
|
|
344
|
+
ORDER BY julianday(candidate.collected_at) DESC, candidate.id DESC
|
|
345
|
+
LIMIT 1
|
|
346
|
+
)
|
|
347
|
+
ORDER BY latest.scope ASC`;
|
|
105
348
|
const params = { prefix };
|
|
106
349
|
if (options?.limit !== undefined) {
|
|
107
350
|
sql += " LIMIT @limit";
|
|
@@ -121,6 +364,10 @@ export function createIndexManager(db) {
|
|
|
121
364
|
total,
|
|
122
365
|
};
|
|
123
366
|
},
|
|
367
|
+
listIndexedScopes() {
|
|
368
|
+
const rows = listIndexedScopesStmt.all();
|
|
369
|
+
return rows.map((row) => row.scope);
|
|
370
|
+
},
|
|
124
371
|
findClosestByScope(scope, at) {
|
|
125
372
|
const row = findClosestByScopeStmt.get({ scope, at });
|
|
126
373
|
return row ? rowToEntry(row) : undefined;
|
|
@@ -149,7 +396,7 @@ export function createIndexManager(db) {
|
|
|
149
396
|
},
|
|
150
397
|
findLatestVersionByScope(scope) {
|
|
151
398
|
const row = maxVersionByScopeStmt.get({ scope });
|
|
152
|
-
return row
|
|
399
|
+
return row?.max_version ?? 0;
|
|
153
400
|
},
|
|
154
401
|
updateDataPointId(path, dataPointId) {
|
|
155
402
|
const result = updateDataPointIdStmt.run({
|
|
@@ -170,5 +417,7 @@ export function createIndexManager(db) {
|
|
|
170
417
|
db.close();
|
|
171
418
|
},
|
|
172
419
|
};
|
|
420
|
+
databases.set(manager, db);
|
|
421
|
+
return manager;
|
|
173
422
|
}
|
|
174
423
|
//# sourceMappingURL=index-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Database from "better-sqlite3";
|
|
2
|
-
export declare const INDEX_SCHEMA_VERSION =
|
|
2
|
+
export declare const INDEX_SCHEMA_VERSION = 14;
|
|
3
3
|
/** Open/create SQLite database, run CREATE TABLE IF NOT EXISTS, set WAL mode */
|
|
4
4
|
export declare function initializeDatabase(dbPath: string): Database.Database;
|
|
5
5
|
//# sourceMappingURL=index-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-schema.d.ts","sourceRoot":"","sources":["../../src/storage/index-schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index-schema.d.ts","sourceRoot":"","sources":["../../src/storage/index-schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAoCtC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAuNvC,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CA0DpE"}
|