mindoodb 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/README-server.md +1001 -0
  2. package/README.md +14 -26
  3. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +19 -0
  4. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
  5. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +58 -5
  6. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
  7. package/dist/appendonlystores/network/HttpTransport.d.ts +4 -0
  8. package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
  9. package/dist/appendonlystores/network/HttpTransport.js +43 -0
  10. package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
  11. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +3 -0
  12. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
  13. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +15 -1
  14. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
  15. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +5 -1
  16. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -1
  17. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +59 -3
  18. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -1
  19. package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts +21 -0
  20. package/dist/browser/cache/IndexedDBLocalCacheStore.d.ts.map +1 -0
  21. package/dist/browser/cache/IndexedDBLocalCacheStore.js +106 -0
  22. package/dist/browser/cache/IndexedDBLocalCacheStore.js.map +1 -0
  23. package/dist/browser/index.d.ts +3 -0
  24. package/dist/browser/index.d.ts.map +1 -1
  25. package/dist/browser/index.js +9 -1
  26. package/dist/browser/index.js.map +1 -1
  27. package/dist/core/BaseMindooDB.d.ts +103 -13
  28. package/dist/core/BaseMindooDB.d.ts.map +1 -1
  29. package/dist/core/BaseMindooDB.js +1066 -205
  30. package/dist/core/BaseMindooDB.js.map +1 -1
  31. package/dist/core/BaseMindooTenant.d.ts +30 -1
  32. package/dist/core/BaseMindooTenant.d.ts.map +1 -1
  33. package/dist/core/BaseMindooTenant.js +143 -108
  34. package/dist/core/BaseMindooTenant.js.map +1 -1
  35. package/dist/core/BaseMindooTenantDirectory.d.ts +13 -10
  36. package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
  37. package/dist/core/BaseMindooTenantDirectory.js +134 -27
  38. package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
  39. package/dist/core/BaseMindooTenantFactory.d.ts +5 -1
  40. package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
  41. package/dist/core/BaseMindooTenantFactory.js +46 -69
  42. package/dist/core/BaseMindooTenantFactory.js.map +1 -1
  43. package/dist/core/MindooDBServerAdmin.d.ts +238 -0
  44. package/dist/core/MindooDBServerAdmin.d.ts.map +1 -0
  45. package/dist/core/MindooDBServerAdmin.js +345 -0
  46. package/dist/core/MindooDBServerAdmin.js.map +1 -0
  47. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +3 -1
  48. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
  49. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +22 -0
  50. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
  51. package/dist/core/appendonlystores/MaterializationPlanner.d.ts +49 -0
  52. package/dist/core/appendonlystores/MaterializationPlanner.d.ts.map +1 -0
  53. package/dist/core/appendonlystores/MaterializationPlanner.js +325 -0
  54. package/dist/core/appendonlystores/MaterializationPlanner.js.map +1 -0
  55. package/dist/core/appendonlystores/network/NetworkTransport.d.ts +15 -0
  56. package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
  57. package/dist/core/appendonlystores/network/types.d.ts +2 -0
  58. package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
  59. package/dist/core/appendonlystores/network/types.js.map +1 -1
  60. package/dist/core/appendonlystores/types.d.ts +83 -0
  61. package/dist/core/appendonlystores/types.d.ts.map +1 -1
  62. package/dist/core/cache/CacheManager.d.ts +75 -0
  63. package/dist/core/cache/CacheManager.d.ts.map +1 -0
  64. package/dist/core/cache/CacheManager.js +101 -0
  65. package/dist/core/cache/CacheManager.js.map +1 -0
  66. package/dist/core/cache/EncryptedLocalCacheStore.d.ts +41 -0
  67. package/dist/core/cache/EncryptedLocalCacheStore.d.ts.map +1 -0
  68. package/dist/core/cache/EncryptedLocalCacheStore.js +120 -0
  69. package/dist/core/cache/EncryptedLocalCacheStore.js.map +1 -0
  70. package/dist/core/cache/LocalCacheStore.d.ts +50 -0
  71. package/dist/core/cache/LocalCacheStore.d.ts.map +1 -0
  72. package/dist/core/cache/LocalCacheStore.js +39 -0
  73. package/dist/core/cache/LocalCacheStore.js.map +1 -0
  74. package/dist/core/crypto/privateKeyEncryption.d.ts +5 -0
  75. package/dist/core/crypto/privateKeyEncryption.d.ts.map +1 -0
  76. package/dist/core/crypto/privateKeyEncryption.js +87 -0
  77. package/dist/core/crypto/privateKeyEncryption.js.map +1 -0
  78. package/dist/core/index.d.ts +13 -6
  79. package/dist/core/index.d.ts.map +1 -1
  80. package/dist/core/index.js +13 -1
  81. package/dist/core/index.js.map +1 -1
  82. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +4 -1
  83. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
  84. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +39 -11
  85. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
  86. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +1 -0
  87. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -1
  88. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +3 -0
  89. package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -1
  90. package/dist/core/indexing/virtualviews/VirtualView.d.ts +43 -0
  91. package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
  92. package/dist/core/indexing/virtualviews/VirtualView.js +173 -0
  93. package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
  94. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +7 -0
  95. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
  96. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +28 -0
  97. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
  98. package/dist/core/keys/KeyBag.d.ts +38 -14
  99. package/dist/core/keys/KeyBag.d.ts.map +1 -1
  100. package/dist/core/keys/KeyBag.js +102 -76
  101. package/dist/core/keys/KeyBag.js.map +1 -1
  102. package/dist/core/keys/KeyContext.d.ts +3 -3
  103. package/dist/core/keys/KeyContext.d.ts.map +1 -1
  104. package/dist/core/keys/KeyContext.js +10 -4
  105. package/dist/core/keys/KeyContext.js.map +1 -1
  106. package/dist/core/types.d.ts +305 -21
  107. package/dist/core/types.d.ts.map +1 -1
  108. package/dist/core/types.js +7 -1
  109. package/dist/core/types.js.map +1 -1
  110. package/dist/core/utils/idGeneration.d.ts.map +1 -1
  111. package/dist/core/utils/idGeneration.js +37 -3
  112. package/dist/core/utils/idGeneration.js.map +1 -1
  113. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +4 -1
  114. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
  115. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +24 -0
  116. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
  117. package/dist/node/attachments/writeAttachmentToFile.d.ts +15 -0
  118. package/dist/node/attachments/writeAttachmentToFile.d.ts.map +1 -0
  119. package/dist/node/attachments/writeAttachmentToFile.js +73 -0
  120. package/dist/node/attachments/writeAttachmentToFile.js.map +1 -0
  121. package/dist/node/cache/FileSystemLocalCacheStore.d.ts +17 -0
  122. package/dist/node/cache/FileSystemLocalCacheStore.d.ts.map +1 -0
  123. package/dist/node/cache/FileSystemLocalCacheStore.js +128 -0
  124. package/dist/node/cache/FileSystemLocalCacheStore.js.map +1 -0
  125. package/dist/node/cli/change-identity-password.d.ts +7 -0
  126. package/dist/node/cli/change-identity-password.d.ts.map +1 -0
  127. package/dist/node/cli/change-identity-password.js +67 -0
  128. package/dist/node/cli/change-identity-password.js.map +1 -0
  129. package/dist/node/cli/cli-utils.d.ts +16 -0
  130. package/dist/node/cli/cli-utils.d.ts.map +1 -0
  131. package/dist/node/cli/cli-utils.js +113 -0
  132. package/dist/node/cli/cli-utils.js.map +1 -0
  133. package/dist/node/cli/identity-export-public.d.ts +4 -0
  134. package/dist/node/cli/identity-export-public.d.ts.map +1 -0
  135. package/dist/node/cli/identity-export-public.js +55 -0
  136. package/dist/node/cli/identity-export-public.js.map +1 -0
  137. package/dist/node/cli/identity-info.d.ts +4 -0
  138. package/dist/node/cli/identity-info.d.ts.map +1 -0
  139. package/dist/node/cli/identity-info.js +57 -0
  140. package/dist/node/cli/identity-info.js.map +1 -0
  141. package/dist/node/index.d.ts +1 -0
  142. package/dist/node/index.d.ts.map +1 -1
  143. package/dist/node/index.js +4 -1
  144. package/dist/node/index.js.map +1 -1
  145. package/dist/node/server/CapabilityMatcher.d.ts +45 -0
  146. package/dist/node/server/CapabilityMatcher.d.ts.map +1 -0
  147. package/dist/node/server/CapabilityMatcher.js +117 -0
  148. package/dist/node/server/CapabilityMatcher.js.map +1 -0
  149. package/dist/node/server/MindooDBServer.d.ts +87 -0
  150. package/dist/node/server/MindooDBServer.d.ts.map +1 -0
  151. package/dist/node/server/MindooDBServer.js +1040 -0
  152. package/dist/node/server/MindooDBServer.js.map +1 -0
  153. package/dist/node/server/ServerSync.d.ts +41 -0
  154. package/dist/node/server/ServerSync.d.ts.map +1 -0
  155. package/dist/node/server/ServerSync.js +187 -0
  156. package/dist/node/server/ServerSync.js.map +1 -0
  157. package/dist/node/server/StoreFactory.d.ts +45 -0
  158. package/dist/node/server/StoreFactory.d.ts.map +1 -0
  159. package/dist/node/server/StoreFactory.js +89 -0
  160. package/dist/node/server/StoreFactory.js.map +1 -0
  161. package/dist/node/server/SystemAdminAuth.d.ts +65 -0
  162. package/dist/node/server/SystemAdminAuth.d.ts.map +1 -0
  163. package/dist/node/server/SystemAdminAuth.js +200 -0
  164. package/dist/node/server/SystemAdminAuth.js.map +1 -0
  165. package/dist/node/server/SystemIpAllowlist.d.ts +21 -0
  166. package/dist/node/server/SystemIpAllowlist.d.ts.map +1 -0
  167. package/dist/node/server/SystemIpAllowlist.js +210 -0
  168. package/dist/node/server/SystemIpAllowlist.js.map +1 -0
  169. package/dist/node/server/TenantManager.d.ts +85 -0
  170. package/dist/node/server/TenantManager.d.ts.map +1 -0
  171. package/dist/node/server/TenantManager.js +493 -0
  172. package/dist/node/server/TenantManager.js.map +1 -0
  173. package/dist/node/server/add-to-network.d.ts +20 -0
  174. package/dist/node/server/add-to-network.d.ts.map +1 -0
  175. package/dist/node/server/add-to-network.js +275 -0
  176. package/dist/node/server/add-to-network.js.map +1 -0
  177. package/dist/node/server/config.d.ts +51 -0
  178. package/dist/node/server/config.d.ts.map +1 -0
  179. package/dist/node/server/config.js +218 -0
  180. package/dist/node/server/config.js.map +1 -0
  181. package/dist/node/server/resolveServerPassword.d.ts +7 -0
  182. package/dist/node/server/resolveServerPassword.d.ts.map +1 -0
  183. package/dist/node/server/resolveServerPassword.js +25 -0
  184. package/dist/node/server/resolveServerPassword.js.map +1 -0
  185. package/dist/node/server/server.d.ts +22 -0
  186. package/dist/node/server/server.d.ts.map +1 -0
  187. package/dist/node/server/server.js +225 -0
  188. package/dist/node/server/server.js.map +1 -0
  189. package/dist/node/server/serverinit.d.ts +21 -0
  190. package/dist/node/server/serverinit.d.ts.map +1 -0
  191. package/dist/node/server/serverinit.js +317 -0
  192. package/dist/node/server/serverinit.js.map +1 -0
  193. package/dist/node/server/types.d.ts +162 -0
  194. package/dist/node/server/types.d.ts.map +1 -0
  195. package/dist/node/server/types.js +24 -0
  196. package/dist/node/server/types.js.map +1 -0
  197. package/dist/node/server/validation.d.ts +47 -0
  198. package/dist/node/server/validation.d.ts.map +1 -0
  199. package/dist/node/server/validation.js +114 -0
  200. package/dist/node/server/validation.js.map +1 -0
  201. package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts +48 -0
  202. package/dist/reactnative/cache/MMKVLocalCacheStore.d.ts.map +1 -0
  203. package/dist/reactnative/cache/MMKVLocalCacheStore.js +113 -0
  204. package/dist/reactnative/cache/MMKVLocalCacheStore.js.map +1 -0
  205. package/dist/reactnative/index.d.ts +1 -0
  206. package/dist/reactnative/index.d.ts.map +1 -1
  207. package/dist/reactnative/index.js +4 -1
  208. package/dist/reactnative/index.js.map +1 -1
  209. package/package.json +14 -3
@@ -5,9 +5,12 @@ const types_1 = require("./types");
5
5
  const BaseMindooDB_1 = require("./BaseMindooDB");
6
6
  const BaseMindooTenantDirectory_1 = require("./BaseMindooTenantDirectory");
7
7
  const MindooDocSigner_1 = require("./crypto/MindooDocSigner");
8
+ const privateKeyEncryption_1 = require("./crypto/privateKeyEncryption");
8
9
  const errors_1 = require("./errors");
9
10
  const logging_1 = require("./logging");
10
11
  const MindooURI_1 = require("./uri/MindooURI");
12
+ const EncryptedLocalCacheStore_1 = require("./cache/EncryptedLocalCacheStore");
13
+ const CacheManager_1 = require("./cache/CacheManager");
11
14
  /**
12
15
  * BaseMindooTenant is a platform-agnostic implementation of MindooTenant
13
16
  * that works in both browser and server environments.
@@ -23,9 +26,11 @@ const MindooURI_1 = require("./uri/MindooURI");
23
26
  * - PBKDF2 key derivation (for password-based key derivation)
24
27
  */
25
28
  class BaseMindooTenant {
26
- constructor(factory, tenantId, administrationPublicKey, administrationEncryptionPublicKey, currentUser, currentUserPassword, keyBag, storeFactory, cryptoAdapter, logger, additionalTrustedKeys) {
29
+ constructor(factory, tenantId, administrationPublicKey, administrationEncryptionPublicKey, currentUser, currentUserPassword, keyBag, storeFactory, cryptoAdapter, logger, additionalTrustedKeys, localCacheStore) {
27
30
  this.databaseCache = new Map();
28
31
  this.directoryCache = null;
32
+ // Local cache support
33
+ this.cacheManager = null;
29
34
  this.factory = factory;
30
35
  this.tenantId = tenantId;
31
36
  this.administrationPublicKey = administrationPublicKey;
@@ -47,6 +52,11 @@ class BaseMindooTenant {
47
52
  this.logger =
48
53
  logger ||
49
54
  new logging_1.MindooLogger((0, logging_1.getDefaultLogLevel)(), `Tenant:${tenantId}`, true);
55
+ // Set up cache if a local cache store is provided
56
+ if (localCacheStore) {
57
+ const encryptedStore = new EncryptedLocalCacheStore_1.EncryptedLocalCacheStore(localCacheStore, currentUserPassword, this.cryptoAdapter, this.logger.createChild("EncryptedCache"));
58
+ this.cacheManager = new CacheManager_1.CacheManager(encryptedStore, undefined, this.logger.createChild("CacheManager"));
59
+ }
50
60
  }
51
61
  /**
52
62
  * Initialize the tenant.
@@ -57,6 +67,22 @@ class BaseMindooTenant {
57
67
  const keyCount = (await this.keyBag.listKeys()).length;
58
68
  this.logger.info(`Tenant initialized with ${keyCount} keys in KeyBag`);
59
69
  }
70
+ /**
71
+ * Get the CacheManager for this tenant (null if caching is disabled).
72
+ */
73
+ getCacheManager() {
74
+ return this.cacheManager;
75
+ }
76
+ /**
77
+ * Flush and dispose the cache manager.
78
+ * Should be called when the tenant is being closed.
79
+ */
80
+ async disposeCacheManager() {
81
+ if (this.cacheManager) {
82
+ await this.cacheManager.dispose();
83
+ this.cacheManager = null;
84
+ }
85
+ }
60
86
  getCryptoAdapter() {
61
87
  return this.cryptoAdapter;
62
88
  }
@@ -100,9 +126,9 @@ class BaseMindooTenant {
100
126
  }
101
127
  else {
102
128
  this.logger.debug(`Resolving tenant encryption key from KeyBag`);
103
- const tenantKey = await this.keyBag.get("tenant", this.tenantId);
129
+ const tenantKey = await this.keyBag.get("doc", this.tenantId, types_1.DEFAULT_TENANT_KEY_ID);
104
130
  if (!tenantKey) {
105
- throw new errors_1.SymmetricKeyNotFoundError(`tenant:${this.tenantId}`);
131
+ throw new errors_1.SymmetricKeyNotFoundError(`doc:${this.tenantId}:${types_1.DEFAULT_TENANT_KEY_ID}`);
106
132
  }
107
133
  symmetricKey = tenantKey;
108
134
  this.decryptedTenantKeyCache = symmetricKey;
@@ -112,7 +138,7 @@ class BaseMindooTenant {
112
138
  else {
113
139
  this.logger.debug(`Getting named key from KeyBag: ${decryptionKeyId}`);
114
140
  // Get the decrypted key from KeyBag
115
- const decryptedKey = await this.keyBag.get("doc", decryptionKeyId);
141
+ const decryptedKey = await this.keyBag.get("doc", this.tenantId, decryptionKeyId);
116
142
  if (!decryptedKey) {
117
143
  throw new errors_1.SymmetricKeyNotFoundError(decryptionKeyId);
118
144
  }
@@ -210,9 +236,9 @@ class BaseMindooTenant {
210
236
  symmetricKey = this.decryptedTenantKeyCache;
211
237
  }
212
238
  else {
213
- const tenantKey = await this.keyBag.get("tenant", this.tenantId);
239
+ const tenantKey = await this.keyBag.get("doc", this.tenantId, types_1.DEFAULT_TENANT_KEY_ID);
214
240
  if (!tenantKey) {
215
- throw new errors_1.SymmetricKeyNotFoundError(`tenant:${this.tenantId}`);
241
+ throw new errors_1.SymmetricKeyNotFoundError(`doc:${this.tenantId}:${types_1.DEFAULT_TENANT_KEY_ID}`);
216
242
  }
217
243
  symmetricKey = tenantKey;
218
244
  this.decryptedTenantKeyCache = symmetricKey;
@@ -220,7 +246,7 @@ class BaseMindooTenant {
220
246
  }
221
247
  else {
222
248
  // Get the decrypted key from KeyBag
223
- const decryptedKey = await this.keyBag.get("doc", decryptionKeyId);
249
+ const decryptedKey = await this.keyBag.get("doc", this.tenantId, decryptionKeyId);
224
250
  if (!decryptedKey) {
225
251
  throw new errors_1.SymmetricKeyNotFoundError(decryptionKeyId);
226
252
  }
@@ -326,12 +352,31 @@ class BaseMindooTenant {
326
352
  }
327
353
  return this.directoryCache;
328
354
  }
355
+ async assertCurrentUserCanOpenDB(id) {
356
+ if (id === "directory") {
357
+ return;
358
+ }
359
+ const currentUser = await this.getCurrentUserId();
360
+ if (currentUser.userSigningPublicKey === this.getAdministrationPublicKey()) {
361
+ return;
362
+ }
363
+ const directory = await this.openDirectory();
364
+ const registeredUser = await directory.getUserPublicKeys(currentUser.username);
365
+ const hasMatchingGrant = registeredUser?.signingPublicKey === currentUser.userSigningPublicKey &&
366
+ registeredUser?.encryptionPublicKey === currentUser.userEncryptionPublicKey;
367
+ if (hasMatchingGrant) {
368
+ return;
369
+ }
370
+ this.logger.warn(`Denied database open for ungranted user ${currentUser.username} on database ${id}`);
371
+ throw new Error(`User "${currentUser.username}" does not have tenant access yet; the tenant admin must grant access first.`);
372
+ }
329
373
  async openDB(id, options) {
330
374
  // Enforce admin-only mode for directory database - this is a security invariant
331
375
  // The directory database must only accept entries signed by the admin key
332
376
  const effectiveOptions = id === "directory"
333
377
  ? { ...options, adminOnlyDb: true }
334
378
  : options ?? {};
379
+ await this.assertCurrentUserCanOpenDB(id);
335
380
  // Return cached database if it exists
336
381
  const cached = this.databaseCache.get(id);
337
382
  if (cached) {
@@ -342,11 +387,14 @@ class BaseMindooTenant {
342
387
  return cached;
343
388
  }
344
389
  // Extract store options and DB-specific options
345
- const { adminOnlyDb, attachmentConfig, ...storeOptions } = effectiveOptions;
390
+ const { adminOnlyDb, attachmentConfig, documentCacheConfig, snapshotConfig, performanceCallback, ...storeOptions } = effectiveOptions;
346
391
  // Create the database stores using the factory
347
392
  const { docStore, attachmentStore } = this.storeFactory.createStore(id, storeOptions);
348
393
  const dbLogger = this.logger.createChild("BaseMindooDB");
349
- const db = new BaseMindooDB_1.BaseMindooDB(this, docStore, attachmentStore, attachmentConfig, adminOnlyDb ?? false, dbLogger);
394
+ const db = new BaseMindooDB_1.BaseMindooDB(this, docStore, attachmentStore, attachmentConfig, documentCacheConfig, snapshotConfig, adminOnlyDb ?? false, dbLogger, performanceCallback);
395
+ if (this.cacheManager) {
396
+ db.setCacheManager(this.cacheManager);
397
+ }
350
398
  await db.initialize();
351
399
  // Cache the database for future use
352
400
  this.databaseCache.set(id, db);
@@ -384,12 +432,12 @@ class BaseMindooTenant {
384
432
  };
385
433
  await directory.registerUser(publicUserId, options.adminSigningKey, options.adminPassword);
386
434
  // 2. Export the tenant key encrypted with the share password
387
- const encryptedTenantKey = await this.keyBag.encryptAndExportKey("tenant", this.tenantId, options.sharePassword);
435
+ const encryptedTenantKey = await this.keyBag.encryptAndExportKey("doc", this.tenantId, types_1.DEFAULT_TENANT_KEY_ID, options.sharePassword);
388
436
  if (!encryptedTenantKey) {
389
437
  throw new Error(`Failed to export tenant key for tenant "${this.tenantId}"`);
390
438
  }
391
439
  // 3. Export the $publicinfos key encrypted with the share password
392
- const encryptedPublicInfosKey = await this.keyBag.encryptAndExportKey("doc", types_1.PUBLIC_INFOS_KEY_ID, options.sharePassword);
440
+ const encryptedPublicInfosKey = await this.keyBag.encryptAndExportKey("doc", this.tenantId, types_1.PUBLIC_INFOS_KEY_ID, options.sharePassword);
393
441
  if (!encryptedPublicInfosKey) {
394
442
  throw new Error(`Failed to export $publicinfos key`);
395
443
  }
@@ -415,23 +463,30 @@ class BaseMindooTenant {
415
463
  }
416
464
  /**
417
465
  * Publish (register) this tenant on a MindooDB server.
466
+ *
467
+ * When `systemAdminUser` + `systemAdminPassword` are provided the method
468
+ * performs a challenge/response handshake against `/system/auth/*` to
469
+ * obtain a JWT, then calls `POST /system/tenants/:tenantId`.
418
470
  */
419
471
  async publishToServer(serverUrl, options) {
420
472
  console.log(`[publishToServer] Publishing tenant "${this.tenantId}" to server: ${serverUrl}`);
421
473
  this.logger.info(`Publishing tenant "${this.tenantId}" to server: ${serverUrl}`);
474
+ const baseUrl = serverUrl.replace(/\/$/, "");
422
475
  // Export the $publicinfos key so the server can read the directory DB
423
- const publicInfosKeyBytes = await this.keyBag.get("doc", types_1.PUBLIC_INFOS_KEY_ID);
476
+ const publicInfosKeyBytes = await this.keyBag.get("doc", this.tenantId, types_1.PUBLIC_INFOS_KEY_ID);
424
477
  if (!publicInfosKeyBytes) {
425
478
  throw new Error(`Cannot publish to server: $publicinfos key not found in KeyBag`);
426
479
  }
427
480
  const publicInfosKeyBase64 = this.uint8ArrayToBase64(publicInfosKeyBytes);
428
- // Build the registration request
481
+ // Build the registration request body
429
482
  const requestBody = {
430
- tenantId: this.tenantId,
431
483
  adminSigningPublicKey: this.administrationPublicKey,
432
484
  adminEncryptionPublicKey: this.administrationEncryptionPublicKey,
433
485
  publicInfosKey: publicInfosKeyBase64,
434
486
  };
487
+ if (options?.adminUsername) {
488
+ requestBody.adminUsername = options.adminUsername;
489
+ }
435
490
  // Add users if provided
436
491
  if (options?.registerUsers && options.registerUsers.length > 0) {
437
492
  requestBody.users = options.registerUsers.map((u) => ({
@@ -440,15 +495,16 @@ class BaseMindooTenant {
440
495
  encryptionPublicKey: u.userEncryptionPublicKey,
441
496
  }));
442
497
  }
443
- // Build headers
498
+ // Authenticate as system admin via challenge/response
444
499
  const headers = {
445
500
  "Content-Type": "application/json",
446
501
  };
447
- if (options?.adminApiKey) {
448
- headers["x-api-key"] = options.adminApiKey;
502
+ if (options?.systemAdminUser && options?.systemAdminPassword) {
503
+ const token = await this.authenticateAsSystemAdmin(baseUrl, options.systemAdminUser, options.systemAdminPassword);
504
+ headers["Authorization"] = `Bearer ${token}`;
449
505
  }
450
- // POST to the server's admin register-tenant endpoint
451
- const url = `${serverUrl.replace(/\/$/, "")}/admin/register-tenant`;
506
+ // POST to /system/tenants/:tenantId
507
+ const url = `${baseUrl}/system/tenants/${encodeURIComponent(this.tenantId)}`;
452
508
  const response = await fetch(url, {
453
509
  method: "POST",
454
510
  headers,
@@ -461,6 +517,48 @@ class BaseMindooTenant {
461
517
  console.log(`[publishToServer] ✓ Tenant "${this.tenantId}" published to server successfully`);
462
518
  this.logger.info(`Tenant "${this.tenantId}" published to server successfully`);
463
519
  }
520
+ /**
521
+ * Perform system admin challenge/response auth and return a JWT token.
522
+ */
523
+ async authenticateAsSystemAdmin(baseUrl, adminUser, adminPassword) {
524
+ const subtle = this.cryptoAdapter.getSubtle();
525
+ // Decrypt the admin's signing private key
526
+ const signingKeyBuffer = await this.decryptPrivateKey(adminUser.userSigningKeyPair.privateKey, adminPassword, "signing");
527
+ const signingKey = await subtle.importKey("pkcs8", signingKeyBuffer, { name: "Ed25519" }, false, ["sign"]);
528
+ // Step 1: Request challenge from server
529
+ const challengeRes = await fetch(`${baseUrl}/system/auth/challenge`, {
530
+ method: "POST",
531
+ headers: { "Content-Type": "application/json" },
532
+ body: JSON.stringify({
533
+ username: adminUser.username,
534
+ publicsignkey: adminUser.userSigningKeyPair.publicKey,
535
+ }),
536
+ });
537
+ if (!challengeRes.ok) {
538
+ const errorBody = await challengeRes.text();
539
+ throw new Error(`System admin challenge failed (HTTP ${challengeRes.status}): ${errorBody}`);
540
+ }
541
+ const { challenge } = (await challengeRes.json());
542
+ // Step 2: Sign the challenge
543
+ const messageBytes = new TextEncoder().encode(challenge);
544
+ const signatureBuffer = await subtle.sign({ name: "Ed25519" }, signingKey, messageBytes);
545
+ const signatureBase64 = this.uint8ArrayToBase64(new Uint8Array(signatureBuffer));
546
+ // Step 3: Authenticate
547
+ const authRes = await fetch(`${baseUrl}/system/auth/authenticate`, {
548
+ method: "POST",
549
+ headers: { "Content-Type": "application/json" },
550
+ body: JSON.stringify({ challenge, signature: signatureBase64 }),
551
+ });
552
+ if (!authRes.ok) {
553
+ const errorBody = await authRes.text();
554
+ throw new Error(`System admin authentication failed (HTTP ${authRes.status}): ${errorBody}`);
555
+ }
556
+ const result = (await authRes.json());
557
+ if (!result.success || !result.token) {
558
+ throw new Error(`System admin authentication failed: ${result.error || "unknown error"}`);
559
+ }
560
+ return result.token;
561
+ }
464
562
  /**
465
563
  * Create a remote store connected to a MindooDB server, ready for sync.
466
564
  */
@@ -538,104 +636,22 @@ class BaseMindooTenant {
538
636
  this.logger.debug(`decryptPrivateKey: Starting decryption with saltString: ${saltString}`);
539
637
  this.logger.debug(`decryptPrivateKey: Password length: ${password.length}`);
540
638
  this.logger.debug(`decryptPrivateKey: EncryptedKey iterations: ${encryptedKey.iterations}`);
541
- const subtle = this.cryptoAdapter.getSubtle();
542
- // Decode base64 strings
543
- this.logger.debug(`decryptPrivateKey: Decoding base64 strings`);
544
- let ciphertext;
545
- let iv;
546
- let tag;
547
- let saltBytes;
548
- try {
549
- ciphertext = this.base64ToUint8Array(encryptedKey.ciphertext);
550
- iv = this.base64ToUint8Array(encryptedKey.iv);
551
- tag = this.base64ToUint8Array(encryptedKey.tag);
552
- saltBytes = this.base64ToUint8Array(encryptedKey.salt);
553
- this.logger.debug(`decryptPrivateKey: Decoded - ciphertext: ${ciphertext.length} bytes, iv: ${iv.length} bytes, tag: ${tag.length} bytes, salt: ${saltBytes.length} bytes`);
554
- }
555
- catch (error) {
556
- this.logger.error(`decryptPrivateKey: Error decoding base64:`, error);
557
- throw error;
558
- }
559
- // Derive key from password using PBKDF2
560
- // Combine the stored salt bytes with the salt string for additional security
561
- // This ensures different key types (signing, encryption, etc.) use different derived keys
562
- // even if they share the same password
563
- this.logger.debug(`decryptPrivateKey: Combining salt with saltString`);
564
- const saltStringBytes = new TextEncoder().encode(saltString);
565
- const combinedSalt = new Uint8Array(saltBytes.length + saltStringBytes.length);
566
- combinedSalt.set(saltBytes);
567
- combinedSalt.set(saltStringBytes, saltBytes.length);
568
- this.logger.debug(`decryptPrivateKey: Combined salt length: ${combinedSalt.length} bytes`);
569
- this.logger.debug(`decryptPrivateKey: Importing password key for PBKDF2`);
570
- let passwordKey;
639
+ this.logger.debug(`decryptPrivateKey: Delegating PBKDF2 + AES-GCM work to shared helper`);
571
640
  try {
572
- passwordKey = await subtle.importKey("raw", new TextEncoder().encode(password), "PBKDF2", false, ["deriveBits", "deriveKey"]);
573
- this.logger.debug(`decryptPrivateKey: Successfully imported password key`);
574
- }
575
- catch (error) {
576
- this.logger.error(`decryptPrivateKey: Error importing password key:`, error);
577
- throw error;
578
- }
579
- this.logger.debug(`decryptPrivateKey: Deriving key with PBKDF2 (iterations: ${encryptedKey.iterations})`);
580
- let derivedKey;
581
- try {
582
- derivedKey = await subtle.deriveKey({
583
- name: "PBKDF2",
584
- salt: combinedSalt,
585
- iterations: encryptedKey.iterations,
586
- hash: "SHA-256",
587
- }, passwordKey, {
588
- name: "AES-GCM",
589
- length: 256,
590
- }, false, ["decrypt"]);
591
- this.logger.debug(`decryptPrivateKey: Successfully derived key`);
592
- }
593
- catch (error) {
594
- this.logger.error(`decryptPrivateKey: Error deriving key:`, error);
595
- throw error;
596
- }
597
- // Combine ciphertext and tag (GCM authentication tag is separate)
598
- // AES-GCM expects the tag to be appended to the ciphertext
599
- this.logger.debug(`decryptPrivateKey: Combining ciphertext and tag`);
600
- const encryptedData = new Uint8Array(ciphertext.length + tag.length);
601
- encryptedData.set(ciphertext);
602
- encryptedData.set(tag, ciphertext.length);
603
- this.logger.debug(`decryptPrivateKey: Combined encrypted data length: ${encryptedData.length} bytes`);
604
- // Decrypt the private key
605
- this.logger.debug(`decryptPrivateKey: Decrypting with AES-GCM`);
606
- this.logger.debug(`decryptPrivateKey: IV length: ${iv.length} bytes (expected: 12 for AES-GCM)`);
607
- this.logger.debug(`decryptPrivateKey: Tag length: ${tag.length} bytes (expected: 16 for 128-bit tag)`);
608
- this.logger.debug(`decryptPrivateKey: Ciphertext length: ${ciphertext.length} bytes`);
609
- let decrypted;
610
- try {
611
- // Create a new ArrayBuffer to ensure we have the correct buffer without any offset issues
612
- const encryptedBuffer = new Uint8Array(encryptedData).buffer;
613
- this.logger.debug(`decryptPrivateKey: Encrypted buffer size: ${encryptedBuffer.byteLength} bytes`);
614
- decrypted = await subtle.decrypt({
615
- name: "AES-GCM",
616
- iv: new Uint8Array(iv), // Create a new Uint8Array to ensure proper buffer
617
- tagLength: 128,
618
- }, derivedKey, encryptedBuffer);
641
+ const decrypted = await (0, privateKeyEncryption_1.decryptPrivateKey)(this.cryptoAdapter, encryptedKey, password, saltString);
619
642
  this.logger.debug(`decryptPrivateKey: Successfully decrypted, result length: ${decrypted.byteLength} bytes`);
643
+ return decrypted;
620
644
  }
621
645
  catch (error) {
622
646
  this.logger.error(`decryptPrivateKey: Error during decryption:`, error);
623
647
  this.logger.error(`decryptPrivateKey: Error details:`, {
624
648
  errorName: error instanceof Error ? error.name : typeof error,
625
649
  errorMessage: error instanceof Error ? error.message : String(error),
626
- ivLength: iv.length,
627
- tagLength: tag.length,
628
- ciphertextLength: ciphertext.length,
629
- encryptedDataLength: encryptedData.length,
630
650
  iterations: encryptedKey.iterations,
631
- saltString: saltString,
632
- encryptedDataByteOffset: encryptedData.byteOffset,
633
- encryptedDataByteLength: encryptedData.byteLength,
634
- encryptedDataBufferLength: encryptedData.buffer.byteLength,
651
+ saltString,
635
652
  });
636
653
  throw error;
637
654
  }
638
- return decrypted;
639
655
  }
640
656
  /**
641
657
  * Helper method to convert base64 string to Uint8Array
@@ -682,6 +698,25 @@ class BaseMindooTenant {
682
698
  }
683
699
  return bytes.buffer;
684
700
  }
701
+ /**
702
+ * Check whether the symmetric key for the given key ID is available in the KeyBag.
703
+ * This is a lightweight probe that does not perform any crypto operations.
704
+ *
705
+ * @param decryptionKeyId The key ID ("default" or a named key ID)
706
+ * @returns true if the key can be resolved, false otherwise
707
+ */
708
+ async hasDecryptionKey(decryptionKeyId) {
709
+ try {
710
+ await this.getSymmetricKey(decryptionKeyId);
711
+ return true;
712
+ }
713
+ catch (error) {
714
+ if (error instanceof errors_1.SymmetricKeyNotFoundError) {
715
+ return false;
716
+ }
717
+ throw error;
718
+ }
719
+ }
685
720
  /**
686
721
  * Get the symmetric key for a given key ID.
687
722
  * This is a protected helper method that can be used by subclasses.
@@ -695,9 +730,9 @@ class BaseMindooTenant {
695
730
  if (this.decryptedTenantKeyCache) {
696
731
  return this.decryptedTenantKeyCache;
697
732
  }
698
- const tenantKey = await this.keyBag.get("tenant", this.tenantId);
733
+ const tenantKey = await this.keyBag.get("doc", this.tenantId, types_1.DEFAULT_TENANT_KEY_ID);
699
734
  if (!tenantKey) {
700
- throw new errors_1.SymmetricKeyNotFoundError(`tenant:${this.tenantId}`);
735
+ throw new errors_1.SymmetricKeyNotFoundError(`doc:${this.tenantId}:${types_1.DEFAULT_TENANT_KEY_ID}`);
701
736
  }
702
737
  const symmetricKey = tenantKey;
703
738
  this.decryptedTenantKeyCache = symmetricKey;
@@ -705,7 +740,7 @@ class BaseMindooTenant {
705
740
  }
706
741
  else {
707
742
  // Get the decrypted key from KeyBag
708
- const decryptedKey = await this.keyBag.get("doc", decryptionKeyId);
743
+ const decryptedKey = await this.keyBag.get("doc", this.tenantId, decryptionKeyId);
709
744
  if (!decryptedKey) {
710
745
  throw new errors_1.SymmetricKeyNotFoundError(decryptionKeyId);
711
746
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMindooTenant.js","sourceRoot":"","sources":["../../src/core/BaseMindooTenant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseMindooTenant.js","sourceRoot":"","sources":["../../src/core/BaseMindooTenant.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EncryptedPrivateKey, MindooDB, MindooDoc, MindooTenantDirectory, PublicUserId } from "./types";
1
+ import { type DirectoryUserDetails, type DirectoryUserLookup, EncryptedPrivateKey, MindooDB, MindooDoc, MindooTenantDirectory, PublicUserId } from "./types";
2
2
  import { BaseMindooTenant } from "./BaseMindooTenant";
3
3
  import { Logger } from "./logging";
4
4
  export declare class BaseMindooTenantDirectory implements MindooTenantDirectory {
@@ -6,6 +6,7 @@ export declare class BaseMindooTenantDirectory implements MindooTenantDirectory
6
6
  private directoryDB;
7
7
  private trustedKeysCache;
8
8
  private grantDocIdToPublicKey;
9
+ private userLookupCache;
9
10
  private tenantSettingsCache;
10
11
  private dbSettingsCache;
11
12
  private groupsCache;
@@ -13,7 +14,7 @@ export declare class BaseMindooTenantDirectory implements MindooTenantDirectory
13
14
  private logger;
14
15
  constructor(tenant: BaseMindooTenant, logger?: Logger);
15
16
  getDirectoryDB(): Promise<MindooDB>;
16
- registerUser(userId: PublicUserId, administrationPrivateKey: EncryptedPrivateKey, administrationPrivateKeyPassword: string): Promise<void>;
17
+ registerUser(userId: PublicUserId, administrationPrivateKey: EncryptedPrivateKey, administrationPrivateKeyPassword: string, userDetails?: DirectoryUserDetails): Promise<void>;
17
18
  findGrantAccessDocuments(username: string): Promise<MindooDoc[]>;
18
19
  revokeUser(username: string, requestDataWipe: boolean, administrationPrivateKey: EncryptedPrivateKey, administrationPrivateKeyPassword: string): Promise<void>;
19
20
  validatePublicSigningKey(publicKey: string): Promise<boolean>;
@@ -50,7 +51,9 @@ export declare class BaseMindooTenantDirectory implements MindooTenantDirectory
50
51
  getUserPublicKeys(username: string): Promise<{
51
52
  signingPublicKey: string;
52
53
  encryptionPublicKey: string;
54
+ details?: DirectoryUserDetails | null;
53
55
  } | null>;
56
+ getUserBySigningPublicKey(publicKey: string): Promise<DirectoryUserLookup | null>;
54
57
  /**
55
58
  * Check if a user has been revoked.
56
59
  * A user is considered revoked if they have no active (non-revoked) grant access documents.
@@ -69,6 +72,7 @@ export declare class BaseMindooTenantDirectory implements MindooTenantDirectory
69
72
  }>>;
70
73
  getTenantSettings(): Promise<MindooDoc | null>;
71
74
  getDBSettings(dbId: string): Promise<MindooDoc | null>;
75
+ listKnownDBIds(): Promise<string[]>;
72
76
  changeTenantSettings(changeFunc: (doc: MindooDoc) => void | Promise<void>, administrationPrivateKey: EncryptedPrivateKey, administrationPrivateKeyPassword: string): Promise<void>;
73
77
  changeDBSettings(dbId: string, changeFunc: (doc: MindooDoc) => void | Promise<void>, administrationPrivateKey: EncryptedPrivateKey, administrationPrivateKeyPassword: string): Promise<void>;
74
78
  getGroups(): Promise<string[]>;
@@ -85,17 +89,16 @@ export declare class BaseMindooTenantDirectory implements MindooTenantDirectory
85
89
  * @return The hex-encoded SHA-256 hash of the lowercase username
86
90
  */
87
91
  private hashUsername;
88
- /**
89
- * Encrypt plaintext with admin's RSA public encryption key.
90
- * Only the admin with the corresponding private key can decrypt.
91
- *
92
- * @param plaintext The text to encrypt
93
- * @return The base64-encoded encrypted data
94
- */
95
- private encryptForAdmin;
92
+ private buildUserDetailsPayload;
93
+ private encryptUserDetailsForTenant;
94
+ private decryptUserDetailsForTenant;
95
+ private buildUserLookup;
96
+ private encryptGroupMemberForTenant;
97
+ private decryptGroupMemberForTenant;
96
98
  /**
97
99
  * Convert a Uint8Array to a base64 string.
98
100
  */
99
101
  private uint8ArrayToBase64;
102
+ private base64ToUint8Array;
100
103
  }
101
104
  //# sourceMappingURL=BaseMindooTenantDirectory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMindooTenantDirectory.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooTenantDirectory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseMindooTenantDirectory.d.ts","sourceRoot":"","sources":["../../src/core/BaseMindooTenantDirectory.ts"],"names":[],"mappings":"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"}