mindoodb 0.0.71 → 0.0.73
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/core/BaseMindooDB.d.ts +50 -1
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +314 -10
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +16 -0
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +43 -0
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +11 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +44 -18
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
- package/dist/core/appendonlystores/purgeDocumentHistory.d.ts +52 -0
- package/dist/core/appendonlystores/purgeDocumentHistory.d.ts.map +1 -0
- package/dist/core/appendonlystores/purgeDocumentHistory.js +107 -0
- package/dist/core/appendonlystores/purgeDocumentHistory.js.map +1 -0
- package/dist/core/appendonlystores/purgedDocumentGuard.d.ts +33 -0
- package/dist/core/appendonlystores/purgedDocumentGuard.d.ts.map +1 -0
- package/dist/core/appendonlystores/purgedDocumentGuard.js +78 -0
- package/dist/core/appendonlystores/purgedDocumentGuard.js.map +1 -0
- package/dist/core/types.d.ts +63 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +13 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +26 -2
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
- package/dist/node/server/MindooDBServer.d.ts.map +1 -1
- package/dist/node/server/MindooDBServer.js +2 -0
- package/dist/node/server/MindooDBServer.js.map +1 -1
- package/dist/node/server/TenantManager.d.ts +11 -0
- package/dist/node/server/TenantManager.d.ts.map +1 -1
- package/dist/node/server/TenantManager.js +40 -9
- package/dist/node/server/TenantManager.js.map +1 -1
- package/dist/node/server/peer/ClusterManager.d.ts +4 -0
- package/dist/node/server/peer/ClusterManager.d.ts.map +1 -1
- package/dist/node/server/peer/ClusterManager.js +2 -0
- package/dist/node/server/peer/ClusterManager.js.map +1 -1
- package/dist/node/server/peer/PeerReplicator.d.ts +12 -0
- package/dist/node/server/peer/PeerReplicator.d.ts.map +1 -1
- package/dist/node/server/peer/PeerReplicator.js +19 -1
- package/dist/node/server/peer/PeerReplicator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryContentAddressedStore.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/InMemoryContentAddressedStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InMemoryContentAddressedStore.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/InMemoryContentAddressedStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store-level document-history purge (docs/accesscontrol.md §13).
|
|
3
|
+
*
|
|
4
|
+
* A purge physically removes one document's entries from a database's docs
|
|
5
|
+
* store and its attachment chunks from the attachment store. The docs store is
|
|
6
|
+
* simple: a document's entries belong to it alone. Attachment chunks are not:
|
|
7
|
+
*
|
|
8
|
+
* - **Entries.** Duplicating a document inside the same database re-prefixes
|
|
9
|
+
* the copy's chunks, but the copy's *history* keeps pointing at the source's
|
|
10
|
+
* chunk ids (see `copy/attachments.ts`). Purging the source's chunks
|
|
11
|
+
* unconditionally would break attachment time travel on the copy. Those
|
|
12
|
+
* references are visible without decryption: every document entry carries
|
|
13
|
+
* its complete attachment set in the signed cleartext `attachmentRefs`.
|
|
14
|
+
* - **Content.** With deterministic attachment encryption, identical bytes
|
|
15
|
+
* under the same key produce identical ciphertext, so two documents can share
|
|
16
|
+
* one content blob. The stores release a blob only when its last entry goes
|
|
17
|
+
* (reference counting by content hash), which this module relies on.
|
|
18
|
+
*
|
|
19
|
+
* Usable without decryption keys, so both the sync server and clients run the
|
|
20
|
+
* same code.
|
|
21
|
+
*
|
|
22
|
+
* @module
|
|
23
|
+
*/
|
|
24
|
+
import type { ContentAddressedStore } from "./types";
|
|
25
|
+
/** What {@link purgeDocumentHistoryFromStores} removed and kept. */
|
|
26
|
+
export interface DocumentHistoryPurgeOutcome {
|
|
27
|
+
/** Entries removed from the docs store. */
|
|
28
|
+
docEntriesPurged: number;
|
|
29
|
+
/** Attachment chunks of the document removed from the attachment store. */
|
|
30
|
+
attachmentChunksPurged: number;
|
|
31
|
+
/**
|
|
32
|
+
* Attachment chunks of the document that were kept because another
|
|
33
|
+
* document's history still references them.
|
|
34
|
+
*/
|
|
35
|
+
attachmentChunksRetained: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Physically purge one document's history from a database's stores.
|
|
39
|
+
*
|
|
40
|
+
* Removes every docs-store entry of the document and every attachment chunk of
|
|
41
|
+
* it that no other document references. Idempotent: a second call finds
|
|
42
|
+
* nothing (or only the retained chunks) and changes nothing.
|
|
43
|
+
*
|
|
44
|
+
* @param stores The database's docs store and, when it has one, its attachment
|
|
45
|
+
* store.
|
|
46
|
+
* @param docId The document to purge.
|
|
47
|
+
*/
|
|
48
|
+
export declare function purgeDocumentHistoryFromStores(stores: {
|
|
49
|
+
docsStore: ContentAddressedStore;
|
|
50
|
+
attachmentStore?: ContentAddressedStore | null;
|
|
51
|
+
}, docId: string): Promise<DocumentHistoryPurgeOutcome>;
|
|
52
|
+
//# sourceMappingURL=purgeDocumentHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purgeDocumentHistory.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgeDocumentHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGrD,oEAAoE;AACpE,MAAM,WAAW,2BAA2B;IAC1C,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;CAClC;AA6CD;;;;;;;;;;GAUG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE;IACN,SAAS,EAAE,qBAAqB,CAAC;IACjC,eAAe,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAChD,EACD,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,2BAA2B,CAAC,CAqCtC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Store-level document-history purge (docs/accesscontrol.md §13).
|
|
4
|
+
*
|
|
5
|
+
* A purge physically removes one document's entries from a database's docs
|
|
6
|
+
* store and its attachment chunks from the attachment store. The docs store is
|
|
7
|
+
* simple: a document's entries belong to it alone. Attachment chunks are not:
|
|
8
|
+
*
|
|
9
|
+
* - **Entries.** Duplicating a document inside the same database re-prefixes
|
|
10
|
+
* the copy's chunks, but the copy's *history* keeps pointing at the source's
|
|
11
|
+
* chunk ids (see `copy/attachments.ts`). Purging the source's chunks
|
|
12
|
+
* unconditionally would break attachment time travel on the copy. Those
|
|
13
|
+
* references are visible without decryption: every document entry carries
|
|
14
|
+
* its complete attachment set in the signed cleartext `attachmentRefs`.
|
|
15
|
+
* - **Content.** With deterministic attachment encryption, identical bytes
|
|
16
|
+
* under the same key produce identical ciphertext, so two documents can share
|
|
17
|
+
* one content blob. The stores release a blob only when its last entry goes
|
|
18
|
+
* (reference counting by content hash), which this module relies on.
|
|
19
|
+
*
|
|
20
|
+
* Usable without decryption keys, so both the sync server and clients run the
|
|
21
|
+
* same code.
|
|
22
|
+
*
|
|
23
|
+
* @module
|
|
24
|
+
*/
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.purgeDocumentHistoryFromStores = purgeDocumentHistoryFromStores;
|
|
27
|
+
/**
|
|
28
|
+
* Ids of `ownChunks` that another document still references: a chunk chain
|
|
29
|
+
* whose head appears in some other document's `attachmentRefs`, followed back
|
|
30
|
+
* through its dependencies.
|
|
31
|
+
*
|
|
32
|
+
* Chunk chains never cross documents (appends depend on the attachment's own
|
|
33
|
+
* previous chunk and copies re-map the dependencies with the ids), so the walk
|
|
34
|
+
* stays inside `ownChunks`.
|
|
35
|
+
*/
|
|
36
|
+
async function findChunksReferencedElsewhere(docsStore, docId, ownChunks) {
|
|
37
|
+
const ownById = new Map(ownChunks.map((entry) => [entry.id, entry]));
|
|
38
|
+
const pending = [];
|
|
39
|
+
for (const entry of await docsStore.findNewEntries([])) {
|
|
40
|
+
if (entry.docId === docId) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
for (const ref of entry.attachmentRefs ?? []) {
|
|
44
|
+
if (ownById.has(ref.lastChunkId)) {
|
|
45
|
+
pending.push(ref.lastChunkId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const retained = new Set();
|
|
50
|
+
while (pending.length > 0) {
|
|
51
|
+
const id = pending.pop();
|
|
52
|
+
if (retained.has(id)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const chunk = ownById.get(id);
|
|
56
|
+
if (!chunk) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
retained.add(id);
|
|
60
|
+
pending.push(...chunk.dependencyIds);
|
|
61
|
+
}
|
|
62
|
+
return retained;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Physically purge one document's history from a database's stores.
|
|
66
|
+
*
|
|
67
|
+
* Removes every docs-store entry of the document and every attachment chunk of
|
|
68
|
+
* it that no other document references. Idempotent: a second call finds
|
|
69
|
+
* nothing (or only the retained chunks) and changes nothing.
|
|
70
|
+
*
|
|
71
|
+
* @param stores The database's docs store and, when it has one, its attachment
|
|
72
|
+
* store.
|
|
73
|
+
* @param docId The document to purge.
|
|
74
|
+
*/
|
|
75
|
+
async function purgeDocumentHistoryFromStores(stores, docId) {
|
|
76
|
+
const { docsStore, attachmentStore } = stores;
|
|
77
|
+
let attachmentChunksPurged = 0;
|
|
78
|
+
let attachmentChunksRetained = 0;
|
|
79
|
+
if (attachmentStore && attachmentStore !== docsStore) {
|
|
80
|
+
const ownChunks = await attachmentStore.findNewEntriesForDoc([], docId);
|
|
81
|
+
if (ownChunks.length > 0) {
|
|
82
|
+
const retained = await findChunksReferencedElsewhere(docsStore, docId, ownChunks);
|
|
83
|
+
if (retained.size === 0) {
|
|
84
|
+
await attachmentStore.purgeDocHistory(docId);
|
|
85
|
+
attachmentChunksPurged = ownChunks.length;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
if (typeof attachmentStore.deleteEntriesById !== "function") {
|
|
89
|
+
throw new Error(`Cannot purge attachments of ${docId}: ${retained.size} chunk(s) are shared ` +
|
|
90
|
+
`with other documents and the attachment store cannot delete entries by id`);
|
|
91
|
+
}
|
|
92
|
+
attachmentChunksPurged = await attachmentStore.deleteEntriesById(ownChunks.filter((entry) => !retained.has(entry.id)).map((entry) => entry.id));
|
|
93
|
+
attachmentChunksRetained = retained.size;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const docEntries = await docsStore.findNewEntriesForDoc([], docId);
|
|
98
|
+
if (docEntries.length > 0) {
|
|
99
|
+
await docsStore.purgeDocHistory(docId);
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
docEntriesPurged: docEntries.length,
|
|
103
|
+
attachmentChunksPurged,
|
|
104
|
+
attachmentChunksRetained,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=purgeDocumentHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purgeDocumentHistory.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgeDocumentHistory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refuse entries of purged documents at the moment they would be stored.
|
|
3
|
+
*
|
|
4
|
+
* A purge removes a document's history from the replicas that executed it, but
|
|
5
|
+
* every replica that has not (yet) done so still holds the entries and offers
|
|
6
|
+
* them on the next sync. The sync server already rejects such pushes
|
|
7
|
+
* (`ServerNetworkContentAddressedStore`, rejection class `"purged"`); this
|
|
8
|
+
* guard applies the same rule wherever entries are *pulled into* a store:
|
|
9
|
+
* client pulls and server-to-server pull replication.
|
|
10
|
+
*
|
|
11
|
+
* The guard wraps the receiving store and filters `putEntries`. Rejected
|
|
12
|
+
* entries are reported as `"purged"` in a {@link PutEntriesAck}, which the sync
|
|
13
|
+
* loop already understands: the class is not self-resolving, so the scan cursor
|
|
14
|
+
* moves past them and they are never offered again.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
import type { ContentAddressedStore } from "./types";
|
|
19
|
+
import type { Logger } from "../logging";
|
|
20
|
+
/** Supplies the ids of the documents purged from the guarded database. */
|
|
21
|
+
export type PurgedDocumentIdsResolver = () => Promise<ReadonlySet<string>>;
|
|
22
|
+
/**
|
|
23
|
+
* Wrap `store` so `putEntries` refuses entries whose `docId` is purged. Every
|
|
24
|
+
* other member is the original store's, so store identity (sync cursor keys,
|
|
25
|
+
* `getId`, `getCacheIdentity`) is unchanged.
|
|
26
|
+
*
|
|
27
|
+
* The resolver runs lazily, once per wrapper, on the first `putEntries` call:
|
|
28
|
+
* a sync that transfers nothing costs nothing. A failing resolver lets entries
|
|
29
|
+
* through (logged) rather than blocking the sync; the purge reconcile removes
|
|
30
|
+
* whatever slipped in.
|
|
31
|
+
*/
|
|
32
|
+
export declare function guardStoreAgainstPurgedDocuments(store: ContentAddressedStore, resolvePurgedDocIds: PurgedDocumentIdsResolver, logger?: Logger): ContentAddressedStore;
|
|
33
|
+
//# sourceMappingURL=purgedDocumentGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purgedDocumentGuard.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgedDocumentGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAmC,MAAM,SAAS,CAAC;AAGtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,0EAA0E;AAC1E,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3E;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,qBAAqB,EAC5B,mBAAmB,EAAE,yBAAyB,EAC9C,MAAM,CAAC,EAAE,MAAM,GACd,qBAAqB,CAoDvB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Refuse entries of purged documents at the moment they would be stored.
|
|
4
|
+
*
|
|
5
|
+
* A purge removes a document's history from the replicas that executed it, but
|
|
6
|
+
* every replica that has not (yet) done so still holds the entries and offers
|
|
7
|
+
* them on the next sync. The sync server already rejects such pushes
|
|
8
|
+
* (`ServerNetworkContentAddressedStore`, rejection class `"purged"`); this
|
|
9
|
+
* guard applies the same rule wherever entries are *pulled into* a store:
|
|
10
|
+
* client pulls and server-to-server pull replication.
|
|
11
|
+
*
|
|
12
|
+
* The guard wraps the receiving store and filters `putEntries`. Rejected
|
|
13
|
+
* entries are reported as `"purged"` in a {@link PutEntriesAck}, which the sync
|
|
14
|
+
* loop already understands: the class is not self-resolving, so the scan cursor
|
|
15
|
+
* moves past them and they are never offered again.
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.guardStoreAgainstPurgedDocuments = guardStoreAgainstPurgedDocuments;
|
|
21
|
+
const syncStores_1 = require("./syncStores");
|
|
22
|
+
/**
|
|
23
|
+
* Wrap `store` so `putEntries` refuses entries whose `docId` is purged. Every
|
|
24
|
+
* other member is the original store's, so store identity (sync cursor keys,
|
|
25
|
+
* `getId`, `getCacheIdentity`) is unchanged.
|
|
26
|
+
*
|
|
27
|
+
* The resolver runs lazily, once per wrapper, on the first `putEntries` call:
|
|
28
|
+
* a sync that transfers nothing costs nothing. A failing resolver lets entries
|
|
29
|
+
* through (logged) rather than blocking the sync; the purge reconcile removes
|
|
30
|
+
* whatever slipped in.
|
|
31
|
+
*/
|
|
32
|
+
function guardStoreAgainstPurgedDocuments(store, resolvePurgedDocIds, logger) {
|
|
33
|
+
let purgedDocIds = null;
|
|
34
|
+
const loadPurgedDocIds = () => {
|
|
35
|
+
purgedDocIds ?? (purgedDocIds = resolvePurgedDocIds().catch((error) => {
|
|
36
|
+
logger?.warn(`Could not resolve purged documents for ${store.getId()}/${store.getStoreKind()}; not filtering: ${error}`);
|
|
37
|
+
return new Set();
|
|
38
|
+
}));
|
|
39
|
+
return purgedDocIds;
|
|
40
|
+
};
|
|
41
|
+
const putEntries = async (entries) => {
|
|
42
|
+
const purged = await loadPurgedDocIds();
|
|
43
|
+
if (purged.size === 0) {
|
|
44
|
+
return store.putEntries(entries);
|
|
45
|
+
}
|
|
46
|
+
const accepted = [];
|
|
47
|
+
const refused = [];
|
|
48
|
+
for (const entry of entries) {
|
|
49
|
+
if (entry.docId && purged.has(entry.docId)) {
|
|
50
|
+
refused.push({
|
|
51
|
+
id: entry.id,
|
|
52
|
+
reason: `Entry ${entry.id} belongs to a purged document and may not be stored`,
|
|
53
|
+
rejectionClass: "purged",
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
accepted.push(entry);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (refused.length === 0) {
|
|
61
|
+
return store.putEntries(entries);
|
|
62
|
+
}
|
|
63
|
+
logger?.info(`Refused ${refused.length} entr${refused.length === 1 ? "y" : "ies"} of purged documents for ${store.getId()}/${store.getStoreKind()}`);
|
|
64
|
+
const result = accepted.length > 0 ? await store.putEntries(accepted) : undefined;
|
|
65
|
+
const { receipts, batchRejected } = (0, syncStores_1.normalizePutResult)(result);
|
|
66
|
+
return { receipts, rejected: [...batchRejected, ...refused] };
|
|
67
|
+
};
|
|
68
|
+
return new Proxy(store, {
|
|
69
|
+
get(target, property) {
|
|
70
|
+
if (property === "putEntries") {
|
|
71
|
+
return putEntries;
|
|
72
|
+
}
|
|
73
|
+
const value = Reflect.get(target, property, target);
|
|
74
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=purgedDocumentGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purgedDocumentGuard.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/purgedDocumentGuard.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAoBH,4EAwDC;AAzED,6CAAkD;AAOlD;;;;;;;;;GASG;AACH,SAAgB,gCAAgC,CAC9C,KAA4B,EAC5B,mBAA8C,EAC9C,MAAe;IAEf,IAAI,YAAY,GAAwC,IAAI,CAAC;IAC7D,MAAM,gBAAgB,GAAG,GAAiC,EAAE;QAC1D,YAAY,KAAZ,YAAY,GAAK,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,MAAM,EAAE,IAAI,CACV,0CAA0C,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,oBAAoB,KAAK,EAAE,CAC3G,CAAC;YACF,OAAO,IAAI,GAAG,EAAU,CAAC;QAC3B,CAAC,CAAC,EAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EACtB,OAAqB,EACiC,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,MAAM,EAAE,SAAS,KAAK,CAAC,EAAE,qDAAqD;oBAC9E,cAAc,EAAE,QAAQ;iBACzB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,IAAI,CACV,WAAW,OAAO,CAAC,MAAM,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,4BAA4B,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE,CACvI,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAA,+BAAkB,EAAC,MAAM,CAAC,CAAC;QAC/D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAChE,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;QACtB,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { KeyType } from "./keys/KeyContext";
|
|
|
3
3
|
import type { PublicUserId, PrivateUserId } from "./userid";
|
|
4
4
|
import { StoreKind } from "./appendonlystores/types";
|
|
5
5
|
import type { ContentAddressedStore, OpenStoreOptions, RejectedPutEntry } from "./appendonlystores/types";
|
|
6
|
+
import type { DocumentHistoryPurgeOutcome } from "./appendonlystores/purgeDocumentHistory";
|
|
6
7
|
import type { CryptoAdapter } from "./crypto/CryptoAdapter";
|
|
7
8
|
import type { EntryProvenance } from "./crypto/EntrySignature";
|
|
8
9
|
import type { CopyDocumentOptions, CopyDocumentResult, CopyDocumentSelector, CopyDocumentsOptions, CopyDocumentsResult, CopyFeasibility } from "./copy/types";
|
|
@@ -909,6 +910,14 @@ export interface MindooTenant {
|
|
|
909
910
|
* @return The database instance
|
|
910
911
|
*/
|
|
911
912
|
openDB(id: string, options?: OpenDBOptions): Promise<MindooDB>;
|
|
913
|
+
/**
|
|
914
|
+
* Ids of the documents that admin-signed purge requests in the tenant
|
|
915
|
+
* directory removed from database `dbId` (docs/accesscontrol.md §13), as
|
|
916
|
+
* known to the local directory replica. `MindooDB.pullChangesFrom` refuses
|
|
917
|
+
* incoming entries of these documents; listeners that accept pushed entries
|
|
918
|
+
* from peers should do the same. Always empty for the directory itself.
|
|
919
|
+
*/
|
|
920
|
+
getPurgedDocumentIds(dbId: string): Promise<ReadonlySet<string>>;
|
|
912
921
|
/**
|
|
913
922
|
* List the time-travel cutoff dates (epoch milliseconds, ascending) for
|
|
914
923
|
* which persisted cache records exist for the given database — i.e. every
|
|
@@ -3993,6 +4002,22 @@ export interface DocumentConflictBaseValue {
|
|
|
3993
4002
|
/**
|
|
3994
4003
|
* Result of reconstructing one branch-local document state for a selected DAG head.
|
|
3995
4004
|
*/
|
|
4005
|
+
/** What {@link MindooDB.restoreDocumentToEntry} changed. */
|
|
4006
|
+
export interface DocumentRestoreResult {
|
|
4007
|
+
docId: string;
|
|
4008
|
+
/** The DAG entry whose state was restored. */
|
|
4009
|
+
restoredFromEntryId: string;
|
|
4010
|
+
/** True when the document was deleted and had to be undeleted first. */
|
|
4011
|
+
undeleted: boolean;
|
|
4012
|
+
/** Top-level fields set back to their earlier value. */
|
|
4013
|
+
changedFields: string[];
|
|
4014
|
+
/** Top-level fields the earlier state did not have, now removed. */
|
|
4015
|
+
removedFields: string[];
|
|
4016
|
+
/** Attachments put back (missing, or changed since). */
|
|
4017
|
+
restoredAttachmentIds: string[];
|
|
4018
|
+
/** Attachments added after that state, now removed. */
|
|
4019
|
+
removedAttachmentIds: string[];
|
|
4020
|
+
}
|
|
3996
4021
|
export interface DocumentDagBranchMaterializationResult {
|
|
3997
4022
|
docId: string;
|
|
3998
4023
|
headEntryId: string;
|
|
@@ -4190,6 +4215,25 @@ export interface MindooDB {
|
|
|
4190
4215
|
* @return The content-addressed store for attachments
|
|
4191
4216
|
*/
|
|
4192
4217
|
getAttachmentStore(): ContentAddressedStore;
|
|
4218
|
+
/**
|
|
4219
|
+
* Physically and irreversibly remove a document's history from this
|
|
4220
|
+
* database on this device (docs/accesscontrol.md §13): every docs-store
|
|
4221
|
+
* entry, and every attachment chunk no other document still references
|
|
4222
|
+
* (an in-place copy's history can point at the source's chunks; shared
|
|
4223
|
+
* content blobs stay while another entry uses them). Also drops all
|
|
4224
|
+
* derived state: cached documents, summary values, full-text tokens,
|
|
4225
|
+
* open time-travel snapshots and their persisted caches. The index entry
|
|
4226
|
+
* becomes a deleted tombstone so views remove the document.
|
|
4227
|
+
*
|
|
4228
|
+
* This is the local half of an admin-signed purge request; it does not
|
|
4229
|
+
* stop other replicas from sending the entries again (see
|
|
4230
|
+
* {@link MindooTenant.getPurgedDocumentIds}). Not allowed in time-travel
|
|
4231
|
+
* mode.
|
|
4232
|
+
*
|
|
4233
|
+
* @param docId The document to purge
|
|
4234
|
+
* @return Counts of removed and retained entries
|
|
4235
|
+
*/
|
|
4236
|
+
purgeDocumentHistory(docId: string): Promise<DocumentHistoryPurgeOutcome>;
|
|
4193
4237
|
/**
|
|
4194
4238
|
* Entries this device refused to materialize, grouped per document and
|
|
4195
4239
|
* persisted in the metadata checkpoint (docs/accesscontrol.md §10).
|
|
@@ -4365,6 +4409,25 @@ export interface MindooDB {
|
|
|
4365
4409
|
* concurrent branches unless the selected head explicitly depends on them.
|
|
4366
4410
|
*/
|
|
4367
4411
|
materializeDocumentBranchAtEntry(docId: string, headEntryId: string): Promise<DocumentDagBranchMaterializationResult | null>;
|
|
4412
|
+
/**
|
|
4413
|
+
* Restore a document to the state it had at a DAG entry, as
|
|
4414
|
+
* {@link materializeDocumentBranchAtEntry} shows it — for example to undo
|
|
4415
|
+
* vandalism. Nothing is erased: the restore is one new signed change on top
|
|
4416
|
+
* of the current heads (plus an undelete first when the document is
|
|
4417
|
+
* deleted now), so the replaced state stays in the history and the restore
|
|
4418
|
+
* itself can be undone the same way.
|
|
4419
|
+
*
|
|
4420
|
+
* Fields that differ are set to their earlier values, fields the earlier
|
|
4421
|
+
* state lacks are removed, and the attachment set is put back as it was:
|
|
4422
|
+
* attachments added since are removed, and earlier attachment states are
|
|
4423
|
+
* re-pointed at their stored chunks (no re-upload, ids unchanged). Fields
|
|
4424
|
+
* starting with `_` are managed by MindooDB and left alone. The change goes
|
|
4425
|
+
* through the same access checks as {@link changeDoc}.
|
|
4426
|
+
*
|
|
4427
|
+
* @throws when no state exists at that entry, when the document is deleted
|
|
4428
|
+
* in that state, or when an attachment chunk it needs was purged.
|
|
4429
|
+
*/
|
|
4430
|
+
restoreDocumentToEntry(docId: string, entryId: string, options?: ChangeOptions): Promise<DocumentRestoreResult>;
|
|
4368
4431
|
/**
|
|
4369
4432
|
* Reconstruct the branch-local document state for a selected head within a
|
|
4370
4433
|
* time-bounded DAG slice.
|