mindoodb 0.0.1 → 0.0.2
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/README.md +5 -5
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +9 -2
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +39 -22
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts +8 -2
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +50 -21
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +15 -2
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +52 -27
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/core/BaseMindooDB.d.ts +26 -4
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +632 -253
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +3 -1
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +83 -75
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +3 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +40 -40
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +3 -1
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +18 -12
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +8 -2
- 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/network/AuthenticationService.d.ts +3 -0
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/AuthenticationService.js +21 -17
- package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -1
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +15 -1
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/types.d.ts +14 -1
- package/dist/core/appendonlystores/types.d.ts.map +1 -1
- package/dist/core/crypto/MindooDocSigner.d.ts +3 -1
- package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -1
- package/dist/core/crypto/MindooDocSigner.js +9 -5
- package/dist/core/crypto/MindooDocSigner.js.map +1 -1
- package/dist/core/crypto/RSAEncryption.d.ts +3 -1
- package/dist/core/crypto/RSAEncryption.d.ts.map +1 -1
- package/dist/core/crypto/RSAEncryption.js +13 -9
- package/dist/core/crypto/RSAEncryption.js.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +2 -2
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/index.d.ts +1 -1
- package/dist/core/indexing/virtualviews/index.js +1 -1
- package/dist/core/keys/KeyBag.d.ts +4 -1
- package/dist/core/keys/KeyBag.d.ts.map +1 -1
- package/dist/core/keys/KeyBag.js +10 -5
- package/dist/core/keys/KeyBag.js.map +1 -1
- package/dist/core/logging/LogLevel.d.ts +21 -0
- package/dist/core/logging/LogLevel.d.ts.map +1 -0
- package/dist/core/logging/LogLevel.js +56 -0
- package/dist/core/logging/LogLevel.js.map +1 -0
- package/dist/core/logging/Logger.d.ts +37 -0
- package/dist/core/logging/Logger.d.ts.map +1 -0
- package/dist/core/logging/Logger.js +3 -0
- package/dist/core/logging/Logger.js.map +1 -0
- package/dist/core/logging/MindooLogger.d.ts +28 -0
- package/dist/core/logging/MindooLogger.d.ts.map +1 -0
- package/dist/core/logging/MindooLogger.js +217 -0
- package/dist/core/logging/MindooLogger.js.map +1 -0
- package/dist/core/logging/index.d.ts +4 -0
- package/dist/core/logging/index.d.ts.map +1 -0
- package/dist/core/logging/index.js +10 -0
- package/dist/core/logging/index.js.map +1 -0
- package/dist/core/types.d.ts +96 -28
- package/dist/core/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InMemoryContentAddressedStoreFactory = exports.InMemoryContentAddressedStore = void 0;
|
|
4
|
+
const logging_1 = require("../logging");
|
|
4
5
|
/**
|
|
5
6
|
* A simple in-memory implementation of ContentAddressedStore for testing purposes.
|
|
6
7
|
*
|
|
@@ -12,7 +13,7 @@ exports.InMemoryContentAddressedStoreFactory = exports.InMemoryContentAddressedS
|
|
|
12
13
|
* the same contentHash, enabling storage-level deduplication.
|
|
13
14
|
*/
|
|
14
15
|
class InMemoryContentAddressedStore {
|
|
15
|
-
constructor(dbId) {
|
|
16
|
+
constructor(dbId, logger) {
|
|
16
17
|
/** Metadata indexed by entry id */
|
|
17
18
|
this.entries = new Map();
|
|
18
19
|
/** Encrypted bytes indexed by contentHash (deduplicated) */
|
|
@@ -20,6 +21,9 @@ class InMemoryContentAddressedStore {
|
|
|
20
21
|
/** Index for finding entries by docId (for efficient doc queries) */
|
|
21
22
|
this.docIndex = new Map(); // docId -> Set<entryId>
|
|
22
23
|
this.dbId = dbId;
|
|
24
|
+
this.logger =
|
|
25
|
+
logger ||
|
|
26
|
+
new logging_1.MindooLogger((0, logging_1.getDefaultLogLevel)(), `InMemoryStore:${dbId}`, true);
|
|
23
27
|
}
|
|
24
28
|
getId() {
|
|
25
29
|
return this.dbId;
|
|
@@ -36,7 +40,7 @@ class InMemoryContentAddressedStore {
|
|
|
36
40
|
for (const entry of entries) {
|
|
37
41
|
// Check if we already have this entry by id (no-op if exists)
|
|
38
42
|
if (this.entries.has(entry.id)) {
|
|
39
|
-
|
|
43
|
+
this.logger.debug(`Entry ${entry.id} already exists, skipping`);
|
|
40
44
|
continue;
|
|
41
45
|
}
|
|
42
46
|
// Separate metadata from encrypted data
|
|
@@ -46,17 +50,17 @@ class InMemoryContentAddressedStore {
|
|
|
46
50
|
// Store bytes by contentHash (deduplication happens here)
|
|
47
51
|
if (!this.contentStore.has(entry.contentHash)) {
|
|
48
52
|
this.contentStore.set(entry.contentHash, encryptedData);
|
|
49
|
-
|
|
53
|
+
this.logger.debug(`Stored content for hash ${entry.contentHash.substring(0, 8)}...`);
|
|
50
54
|
}
|
|
51
55
|
else {
|
|
52
|
-
|
|
56
|
+
this.logger.debug(`Content ${entry.contentHash.substring(0, 8)}... already exists (deduplicated)`);
|
|
53
57
|
}
|
|
54
58
|
// Update document index
|
|
55
59
|
if (!this.docIndex.has(entry.docId)) {
|
|
56
60
|
this.docIndex.set(entry.docId, new Set());
|
|
57
61
|
}
|
|
58
62
|
this.docIndex.get(entry.docId).add(entry.id);
|
|
59
|
-
|
|
63
|
+
this.logger.debug(`Stored entry ${entry.id} for doc ${entry.docId}`);
|
|
60
64
|
}
|
|
61
65
|
}
|
|
62
66
|
/**
|
|
@@ -76,14 +80,14 @@ class InMemoryContentAddressedStore {
|
|
|
76
80
|
result.push({ ...metadata, encryptedData });
|
|
77
81
|
}
|
|
78
82
|
else {
|
|
79
|
-
|
|
83
|
+
this.logger.warn(`Content ${metadata.contentHash} not found for entry ${id}`);
|
|
80
84
|
}
|
|
81
85
|
}
|
|
82
86
|
else {
|
|
83
|
-
|
|
87
|
+
this.logger.warn(`Entry ${id} not found`);
|
|
84
88
|
}
|
|
85
89
|
}
|
|
86
|
-
|
|
90
|
+
this.logger.debug(`Retrieved ${result.length} entries out of ${ids.length} requested`);
|
|
87
91
|
return result;
|
|
88
92
|
}
|
|
89
93
|
/**
|
|
@@ -99,7 +103,7 @@ class InMemoryContentAddressedStore {
|
|
|
99
103
|
existing.push(id);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
|
-
|
|
106
|
+
this.logger.debug(`Found ${existing.length} existing entries out of ${ids.length} checked`);
|
|
103
107
|
return existing;
|
|
104
108
|
}
|
|
105
109
|
/**
|
|
@@ -119,7 +123,7 @@ class InMemoryContentAddressedStore {
|
|
|
119
123
|
newEntries.push(metadata);
|
|
120
124
|
}
|
|
121
125
|
}
|
|
122
|
-
|
|
126
|
+
this.logger.debug(`Found ${newEntries.length} new entries out of ${this.entries.size} total`);
|
|
123
127
|
return newEntries;
|
|
124
128
|
}
|
|
125
129
|
/**
|
|
@@ -144,9 +148,31 @@ class InMemoryContentAddressedStore {
|
|
|
144
148
|
}
|
|
145
149
|
}
|
|
146
150
|
}
|
|
147
|
-
|
|
151
|
+
this.logger.debug(`Found ${newEntries.length} new entries for doc ${docId} out of ${docEntryIds.size} total`);
|
|
148
152
|
return newEntries;
|
|
149
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Find entries by type and creation date range.
|
|
156
|
+
*/
|
|
157
|
+
async findEntries(type, creationDateFrom, creationDateUntil) {
|
|
158
|
+
const results = [];
|
|
159
|
+
for (const [id, metadata] of this.entries) {
|
|
160
|
+
// Filter by type
|
|
161
|
+
if (metadata.entryType !== type) {
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
// Filter by creation date range
|
|
165
|
+
if (creationDateFrom !== null && metadata.createdAt < creationDateFrom) {
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (creationDateUntil !== null && metadata.createdAt >= creationDateUntil) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
results.push(metadata);
|
|
172
|
+
}
|
|
173
|
+
this.logger.debug(`Found ${results.length} entries of type ${type} in date range`);
|
|
174
|
+
return results;
|
|
175
|
+
}
|
|
150
176
|
/**
|
|
151
177
|
* Get all entry IDs in the store.
|
|
152
178
|
* Used for synchronization to identify which entries we have.
|
|
@@ -155,7 +181,7 @@ class InMemoryContentAddressedStore {
|
|
|
155
181
|
*/
|
|
156
182
|
async getAllIds() {
|
|
157
183
|
const ids = Array.from(this.entries.keys());
|
|
158
|
-
|
|
184
|
+
this.logger.debug(`Returning ${ids.length} entry IDs`);
|
|
159
185
|
return ids;
|
|
160
186
|
}
|
|
161
187
|
/**
|
|
@@ -190,7 +216,7 @@ class InMemoryContentAddressedStore {
|
|
|
190
216
|
// Get the entry metadata
|
|
191
217
|
const entry = this.entries.get(id);
|
|
192
218
|
if (!entry) {
|
|
193
|
-
|
|
219
|
+
this.logger.warn(`Entry ${id} not found during dependency resolution`);
|
|
194
220
|
continue;
|
|
195
221
|
}
|
|
196
222
|
// Check stop condition
|
|
@@ -212,7 +238,7 @@ class InMemoryContentAddressedStore {
|
|
|
212
238
|
}
|
|
213
239
|
// Reverse to get oldest first (we traversed from newest to oldest)
|
|
214
240
|
result.reverse();
|
|
215
|
-
|
|
241
|
+
this.logger.debug(`Resolved ${result.length} dependencies for ${startId}`);
|
|
216
242
|
return result;
|
|
217
243
|
}
|
|
218
244
|
/**
|
|
@@ -227,11 +253,11 @@ class InMemoryContentAddressedStore {
|
|
|
227
253
|
* @return A promise that resolves when the purge is complete
|
|
228
254
|
*/
|
|
229
255
|
async purgeDocHistory(docId) {
|
|
230
|
-
|
|
256
|
+
this.logger.info(`Purging entry history for document: ${docId}`);
|
|
231
257
|
// Get all entry IDs for this document
|
|
232
258
|
const docEntryIds = this.docIndex.get(docId);
|
|
233
259
|
if (!docEntryIds || docEntryIds.size === 0) {
|
|
234
|
-
|
|
260
|
+
this.logger.debug(`No entries found for document ${docId}, nothing to purge`);
|
|
235
261
|
return;
|
|
236
262
|
}
|
|
237
263
|
// Collect contentHashes that might become orphaned
|
|
@@ -257,10 +283,10 @@ class InMemoryContentAddressedStore {
|
|
|
257
283
|
}
|
|
258
284
|
if (!isReferenced) {
|
|
259
285
|
this.contentStore.delete(contentHash);
|
|
260
|
-
|
|
286
|
+
this.logger.debug(`Cleaned up orphaned content ${contentHash.substring(0, 8)}...`);
|
|
261
287
|
}
|
|
262
288
|
}
|
|
263
|
-
|
|
289
|
+
this.logger.info(`Purged ${docEntryIds.size} entries for document ${docId}`);
|
|
264
290
|
}
|
|
265
291
|
/**
|
|
266
292
|
* Get storage statistics for debugging/monitoring.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryContentAddressedStore.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/InMemoryContentAddressedStore.ts"],"names":[],"mappings":";;;AAWA;;;;;;;;;GASG;AACH,MAAa,6BAA6B;
|
|
1
|
+
{"version":3,"file":"InMemoryContentAddressedStore.js","sourceRoot":"","sources":["../../../src/core/appendonlystores/InMemoryContentAddressedStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { CryptoAdapter } from "../../crypto/CryptoAdapter";
|
|
2
2
|
import type { MindooTenantDirectory } from "../../types";
|
|
3
3
|
import type { AuthResult, NetworkAuthTokenPayload } from "./types";
|
|
4
|
+
import { Logger } from "../../logging";
|
|
4
5
|
/**
|
|
5
6
|
* Authentication service for network sync operations.
|
|
6
7
|
*
|
|
@@ -24,10 +25,12 @@ export declare class AuthenticationService {
|
|
|
24
25
|
private jwtSecret;
|
|
25
26
|
private challengeExpirationMs;
|
|
26
27
|
private tokenExpirationMs;
|
|
28
|
+
private logger;
|
|
27
29
|
constructor(cryptoAdapter: CryptoAdapter, directory: MindooTenantDirectory, tenantId: string, options?: {
|
|
28
30
|
jwtSecret?: Uint8Array;
|
|
29
31
|
challengeExpirationMs?: number;
|
|
30
32
|
tokenExpirationMs?: number;
|
|
33
|
+
logger?: Logger;
|
|
31
34
|
});
|
|
32
35
|
/**
|
|
33
36
|
* Generate a challenge for a user to sign.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticationService.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/AuthenticationService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAEV,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthenticationService.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/AuthenticationService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAEV,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAoC,MAAM,eAAe,CAAC;AAEzE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,UAAU,CAAyC;IAG3D,OAAO,CAAC,SAAS,CAAa;IAG9B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,MAAM,CAAS;gBAGrB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,qBAAqB,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,UAAU,CAAC;QACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAiBH;;;;;;OAMG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoC1D;;;;;;OAMG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAwEjF;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAiC3E;;OAEG;YACW,eAAe;IAwC7B;;;OAGG;YACW,aAAa;IAgC3B;;OAEG;YACW,WAAW;IA6CzB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,kBAAkB;CAQ3B"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AuthenticationService = void 0;
|
|
4
4
|
const uuid_1 = require("uuid");
|
|
5
5
|
const types_1 = require("./types");
|
|
6
|
+
const logging_1 = require("../../logging");
|
|
6
7
|
/**
|
|
7
8
|
* Authentication service for network sync operations.
|
|
8
9
|
*
|
|
@@ -30,6 +31,9 @@ class AuthenticationService {
|
|
|
30
31
|
// Default: 5 minutes for challenge, 1 hour for token
|
|
31
32
|
this.challengeExpirationMs = options?.challengeExpirationMs || 5 * 60 * 1000;
|
|
32
33
|
this.tokenExpirationMs = options?.tokenExpirationMs || 60 * 60 * 1000;
|
|
34
|
+
this.logger =
|
|
35
|
+
options?.logger ||
|
|
36
|
+
new logging_1.MindooLogger((0, logging_1.getDefaultLogLevel)(), `AuthenticationService:${tenantId}`, true);
|
|
33
37
|
}
|
|
34
38
|
/**
|
|
35
39
|
* Generate a challenge for a user to sign.
|
|
@@ -39,7 +43,7 @@ class AuthenticationService {
|
|
|
39
43
|
* @throws NetworkError if user not found or revoked
|
|
40
44
|
*/
|
|
41
45
|
async generateChallenge(username) {
|
|
42
|
-
|
|
46
|
+
this.logger.debug(`Generating challenge for user: ${username}`);
|
|
43
47
|
// Check if user exists and is not revoked
|
|
44
48
|
const userKeys = await this.directory.getUserPublicKeys(username);
|
|
45
49
|
if (!userKeys) {
|
|
@@ -64,7 +68,7 @@ class AuthenticationService {
|
|
|
64
68
|
this.challenges.set(challenge, authChallenge);
|
|
65
69
|
// Clean up expired challenges periodically
|
|
66
70
|
this.cleanupExpiredChallenges();
|
|
67
|
-
|
|
71
|
+
this.logger.debug(`Generated challenge for user ${username}: ${challenge}`);
|
|
68
72
|
return challenge;
|
|
69
73
|
}
|
|
70
74
|
/**
|
|
@@ -75,11 +79,11 @@ class AuthenticationService {
|
|
|
75
79
|
* @returns AuthResult with success status and JWT token
|
|
76
80
|
*/
|
|
77
81
|
async authenticate(challenge, signature) {
|
|
78
|
-
|
|
82
|
+
this.logger.debug(`Authenticating challenge: ${challenge}`);
|
|
79
83
|
// Get and validate challenge
|
|
80
84
|
const authChallenge = this.challenges.get(challenge);
|
|
81
85
|
if (!authChallenge) {
|
|
82
|
-
|
|
86
|
+
this.logger.debug(`Challenge not found: ${challenge}`);
|
|
83
87
|
return {
|
|
84
88
|
success: false,
|
|
85
89
|
error: "Challenge not found or expired",
|
|
@@ -87,7 +91,7 @@ class AuthenticationService {
|
|
|
87
91
|
}
|
|
88
92
|
// Check if challenge is expired
|
|
89
93
|
if (Date.now() > authChallenge.expiresAt) {
|
|
90
|
-
|
|
94
|
+
this.logger.debug(`Challenge expired: ${challenge}`);
|
|
91
95
|
this.challenges.delete(challenge);
|
|
92
96
|
return {
|
|
93
97
|
success: false,
|
|
@@ -96,7 +100,7 @@ class AuthenticationService {
|
|
|
96
100
|
}
|
|
97
101
|
// Check if challenge was already used
|
|
98
102
|
if (authChallenge.used) {
|
|
99
|
-
|
|
103
|
+
this.logger.debug(`Challenge already used: ${challenge}`);
|
|
100
104
|
return {
|
|
101
105
|
success: false,
|
|
102
106
|
error: "Challenge already used",
|
|
@@ -108,7 +112,7 @@ class AuthenticationService {
|
|
|
108
112
|
// Get user's public signing key
|
|
109
113
|
const userKeys = await this.directory.getUserPublicKeys(username);
|
|
110
114
|
if (!userKeys) {
|
|
111
|
-
|
|
115
|
+
this.logger.debug(`User not found or revoked: ${username}`);
|
|
112
116
|
return {
|
|
113
117
|
success: false,
|
|
114
118
|
error: "User not found or revoked",
|
|
@@ -117,7 +121,7 @@ class AuthenticationService {
|
|
|
117
121
|
// Verify signature
|
|
118
122
|
const isValid = await this.verifySignature(challenge, signature, userKeys.signingPublicKey);
|
|
119
123
|
if (!isValid) {
|
|
120
|
-
|
|
124
|
+
this.logger.debug(`Invalid signature for user: ${username}`);
|
|
121
125
|
return {
|
|
122
126
|
success: false,
|
|
123
127
|
error: "Invalid signature",
|
|
@@ -125,7 +129,7 @@ class AuthenticationService {
|
|
|
125
129
|
}
|
|
126
130
|
// Generate JWT token
|
|
127
131
|
const token = await this.generateToken(username);
|
|
128
|
-
|
|
132
|
+
this.logger.info(`Authentication successful for user: ${username}`);
|
|
129
133
|
return {
|
|
130
134
|
success: true,
|
|
131
135
|
token,
|
|
@@ -138,30 +142,30 @@ class AuthenticationService {
|
|
|
138
142
|
* @returns The token payload if valid, null otherwise
|
|
139
143
|
*/
|
|
140
144
|
async validateToken(token) {
|
|
141
|
-
|
|
145
|
+
this.logger.debug(`Validating token`);
|
|
142
146
|
try {
|
|
143
147
|
const payload = await this.verifyToken(token);
|
|
144
148
|
if (!payload) {
|
|
145
|
-
|
|
149
|
+
this.logger.debug(`Invalid token signature`);
|
|
146
150
|
return null;
|
|
147
151
|
}
|
|
148
152
|
// Check expiration
|
|
149
153
|
const now = Math.floor(Date.now() / 1000);
|
|
150
154
|
if (payload.exp < now) {
|
|
151
|
-
|
|
155
|
+
this.logger.debug(`Token expired`);
|
|
152
156
|
return null;
|
|
153
157
|
}
|
|
154
158
|
// Check if user is still valid (not revoked)
|
|
155
159
|
const isRevoked = await this.directory.isUserRevoked(payload.sub);
|
|
156
160
|
if (isRevoked) {
|
|
157
|
-
|
|
161
|
+
this.logger.debug(`User revoked: ${payload.sub}`);
|
|
158
162
|
return null;
|
|
159
163
|
}
|
|
160
|
-
|
|
164
|
+
this.logger.debug(`Token valid for user: ${payload.sub}`);
|
|
161
165
|
return payload;
|
|
162
166
|
}
|
|
163
167
|
catch (error) {
|
|
164
|
-
|
|
168
|
+
this.logger.error(`Token validation error:`, error);
|
|
165
169
|
return null;
|
|
166
170
|
}
|
|
167
171
|
}
|
|
@@ -184,7 +188,7 @@ class AuthenticationService {
|
|
|
184
188
|
return isValid;
|
|
185
189
|
}
|
|
186
190
|
catch (error) {
|
|
187
|
-
|
|
191
|
+
this.logger.error(`Signature verification error:`, error);
|
|
188
192
|
return false;
|
|
189
193
|
}
|
|
190
194
|
}
|
|
@@ -237,7 +241,7 @@ class AuthenticationService {
|
|
|
237
241
|
return payload;
|
|
238
242
|
}
|
|
239
243
|
catch (error) {
|
|
240
|
-
|
|
244
|
+
this.logger.error(`Token verification error:`, error);
|
|
241
245
|
return null;
|
|
242
246
|
}
|
|
243
247
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticationService.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/AuthenticationService.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAQpC,mCAAyD;
|
|
1
|
+
{"version":3,"file":"AuthenticationService.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/AuthenticationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StoreEntry, StoreEntryMetadata } from "../../types";
|
|
1
|
+
import type { StoreEntry, StoreEntryMetadata, StoreEntryType } from "../../types";
|
|
2
2
|
import type { NetworkEncryptedEntry, AuthResult } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Abstract interface for network communication in MindooDB sync.
|
|
@@ -71,6 +71,20 @@ export interface NetworkTransport {
|
|
|
71
71
|
* @throws NetworkError with type USER_REVOKED if user has been revoked since token was issued
|
|
72
72
|
*/
|
|
73
73
|
findNewEntriesForDoc(token: string, haveIds: string[], docId: string): Promise<StoreEntryMetadata[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Find entries by type and creation date range from the remote store.
|
|
76
|
+
*
|
|
77
|
+
* This enables efficient server-side filtering for time-travel queries.
|
|
78
|
+
*
|
|
79
|
+
* @param token JWT access token from authenticate()
|
|
80
|
+
* @param type The entry type to filter by
|
|
81
|
+
* @param creationDateFrom Optional start timestamp (inclusive). If null, no lower bound.
|
|
82
|
+
* @param creationDateUntil Optional end timestamp (exclusive). If null, no upper bound.
|
|
83
|
+
* @returns List of entry metadata matching the criteria
|
|
84
|
+
* @throws NetworkError with type INVALID_TOKEN if token is invalid or expired
|
|
85
|
+
* @throws NetworkError with type USER_REVOKED if user has been revoked since token was issued
|
|
86
|
+
*/
|
|
87
|
+
findEntries(token: string, type: StoreEntryType, creationDateFrom: number | null, creationDateUntil: number | null): Promise<StoreEntryMetadata[]>;
|
|
74
88
|
/**
|
|
75
89
|
* Get entries from the remote store.
|
|
76
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkTransport.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/NetworkTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"NetworkTransport.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/NetworkTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5E;;;;;;;;;;;OAWG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEjC;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,cAAc,EACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,UAAU,CACR,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EAAE,GACZ,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D;;;;;;;;;;OAUG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,CACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StoreEntry, StoreEntryMetadata } from "../types";
|
|
1
|
+
import type { StoreEntry, StoreEntryMetadata, StoreEntryType } from "../types";
|
|
2
2
|
/**
|
|
3
3
|
* Options for opening/creating a database store.
|
|
4
4
|
* Factory implementations can use these to customize store behavior.
|
|
@@ -115,6 +115,19 @@ export interface ContentAddressedStore {
|
|
|
115
115
|
* @return A list of entry metadata for entries we have that aren't in knownIds
|
|
116
116
|
*/
|
|
117
117
|
findNewEntriesForDoc(knownIds: string[], docId: string): Promise<StoreEntryMetadata[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Find entries by type and creation date range.
|
|
120
|
+
*
|
|
121
|
+
* This method allows efficient filtering of entries at the store level,
|
|
122
|
+
* which is especially important for network stores where server-side filtering
|
|
123
|
+
* reduces data transfer.
|
|
124
|
+
*
|
|
125
|
+
* @param type The entry type to filter by (e.g., "doc_create", "doc_delete")
|
|
126
|
+
* @param creationDateFrom Optional start timestamp (inclusive). If null, no lower bound.
|
|
127
|
+
* @param creationDateUntil Optional end timestamp (exclusive). If null, no upper bound.
|
|
128
|
+
* @return A list of entry metadata matching the criteria
|
|
129
|
+
*/
|
|
130
|
+
findEntries(type: StoreEntryType, creationDateFrom: number | null, creationDateUntil: number | null): Promise<StoreEntryMetadata[]>;
|
|
118
131
|
/**
|
|
119
132
|
* Get all entry IDs in the store.
|
|
120
133
|
* Used for synchronization to identify which entries we have.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE/
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/E;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,EAAE,qBAAqB,CAAC;IAEhC;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;CAC1E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,KAAK,IAAI,MAAM,CAAC;IAEhB;;;;;;;OAOG;IACH,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7C;;;;;;OAMG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAElE;;;;;;OAMG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEvF;;;;;;;;;;;OAWG;IACH,WAAW,CACT,IAAI,EAAE,cAAc,EACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MindooDoc, SigningKeyPair } from "../types";
|
|
2
2
|
import { BaseMindooTenant } from "../BaseMindooTenant";
|
|
3
|
+
import { Logger } from "../logging";
|
|
3
4
|
/**
|
|
4
5
|
* MindooDocSigner provides functionality to create and verify combined signatures
|
|
5
6
|
* for multiple document items in a MindooDoc.
|
|
@@ -65,7 +66,8 @@ import { BaseMindooTenant } from "../BaseMindooTenant";
|
|
|
65
66
|
export declare class MindooDocSigner {
|
|
66
67
|
private tenant;
|
|
67
68
|
private signKey;
|
|
68
|
-
|
|
69
|
+
private logger;
|
|
70
|
+
constructor(tenant: BaseMindooTenant, signKey: SigningKeyPair, logger?: Logger);
|
|
69
71
|
/**
|
|
70
72
|
* Creates a canonical JSON representation of the selected document items.
|
|
71
73
|
* This ensures deterministic serialization regardless of object key order.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MindooDocSigner.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/MindooDocSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAoB,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"MindooDocSigner.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/MindooDocSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAoB,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAoC,MAAM,YAAY,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM;IAQ9E;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,mBAAmB;IA6C3B;;;;;;;;OAQG;IACG,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA4C3F;;;;;;;;OAQG;IACG,WAAW,CACf,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC;CAyCpB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MindooDocSigner = void 0;
|
|
4
|
+
const logging_1 = require("../logging");
|
|
4
5
|
/**
|
|
5
6
|
* MindooDocSigner provides functionality to create and verify combined signatures
|
|
6
7
|
* for multiple document items in a MindooDoc.
|
|
@@ -64,9 +65,12 @@ exports.MindooDocSigner = void 0;
|
|
|
64
65
|
* @see BaseMindooTenant For the tenant infrastructure used for key management
|
|
65
66
|
*/
|
|
66
67
|
class MindooDocSigner {
|
|
67
|
-
constructor(tenant, signKey) {
|
|
68
|
+
constructor(tenant, signKey, logger) {
|
|
68
69
|
this.tenant = tenant;
|
|
69
70
|
this.signKey = signKey;
|
|
71
|
+
this.logger =
|
|
72
|
+
logger ||
|
|
73
|
+
new logging_1.MindooLogger((0, logging_1.getDefaultLogLevel)(), "MindooDocSigner", true);
|
|
70
74
|
}
|
|
71
75
|
/**
|
|
72
76
|
* Creates a canonical JSON representation of the selected document items.
|
|
@@ -136,7 +140,7 @@ class MindooDocSigner {
|
|
|
136
140
|
const docPayload = doc.getData();
|
|
137
141
|
// Create canonical JSON representation
|
|
138
142
|
const canonicalJSON = this.createCanonicalJSON(docPayload, items);
|
|
139
|
-
|
|
143
|
+
this.logger.debug(`Canonical JSON for signing: ${canonicalJSON}`);
|
|
140
144
|
// Convert to bytes (UTF-8 encoding)
|
|
141
145
|
const encoder = new TextEncoder();
|
|
142
146
|
const payloadBytes = encoder.encode(canonicalJSON);
|
|
@@ -152,7 +156,7 @@ class MindooDocSigner {
|
|
|
152
156
|
const signature = await subtle.sign({
|
|
153
157
|
name: "Ed25519",
|
|
154
158
|
}, signingKey, payloadBytes.buffer);
|
|
155
|
-
|
|
159
|
+
this.logger.debug(`Signed ${items.length} items (signature: ${signature.byteLength} bytes)`);
|
|
156
160
|
return new Uint8Array(signature);
|
|
157
161
|
}
|
|
158
162
|
/**
|
|
@@ -168,7 +172,7 @@ class MindooDocSigner {
|
|
|
168
172
|
const docPayload = doc.getData();
|
|
169
173
|
// Create the same canonical JSON representation
|
|
170
174
|
const canonicalJSON = this.createCanonicalJSON(docPayload, items);
|
|
171
|
-
|
|
175
|
+
this.logger.debug(`Canonical JSON for verification: ${canonicalJSON}`);
|
|
172
176
|
// Convert to bytes (UTF-8 encoding)
|
|
173
177
|
const encoder = new TextEncoder();
|
|
174
178
|
const payloadBytes = encoder.encode(canonicalJSON);
|
|
@@ -184,7 +188,7 @@ class MindooDocSigner {
|
|
|
184
188
|
const isValid = await subtle.verify({
|
|
185
189
|
name: "Ed25519",
|
|
186
190
|
}, cryptoKey, signature.buffer, payloadBytes.buffer);
|
|
187
|
-
|
|
191
|
+
this.logger.debug(`Signature verification: ${isValid ? "valid" : "invalid"}`);
|
|
188
192
|
return isValid;
|
|
189
193
|
}
|
|
190
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MindooDocSigner.js","sourceRoot":"","sources":["../../../src/core/crypto/MindooDocSigner.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MindooDocSigner.js","sourceRoot":"","sources":["../../../src/core/crypto/MindooDocSigner.ts"],"names":[],"mappings":"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"}
|