mindoodb 0.0.24 → 0.0.32
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-server.md +9 -1
- package/README.md +5 -3
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +24 -5
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts +14 -2
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +124 -27
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +159 -4
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +334 -25
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +9 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -1
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +77 -5
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -1
- package/dist/browser/index.mjs +103 -0
- package/dist/core/BaseMindooDB.d.ts +662 -4
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +2769 -144
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +192 -1
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +633 -88
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +770 -10
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +2715 -292
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +2 -0
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +20 -0
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- package/dist/core/accesscontrol/AccessDeniedError.d.ts +22 -0
- package/dist/core/accesscontrol/AccessDeniedError.d.ts.map +1 -0
- package/dist/core/accesscontrol/AccessDeniedError.js +28 -0
- package/dist/core/accesscontrol/AccessDeniedError.js.map +1 -0
- package/dist/core/accesscontrol/DirectoryStateNode.d.ts +220 -0
- package/dist/core/accesscontrol/DirectoryStateNode.d.ts.map +1 -0
- package/dist/core/accesscontrol/DirectoryStateNode.js +297 -0
- package/dist/core/accesscontrol/DirectoryStateNode.js.map +1 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.d.ts +118 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.d.ts.map +1 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.js +173 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.js.map +1 -0
- package/dist/core/accesscontrol/directoryProjection.d.ts +26 -0
- package/dist/core/accesscontrol/directoryProjection.d.ts.map +1 -0
- package/dist/core/accesscontrol/directoryProjection.js +174 -0
- package/dist/core/accesscontrol/directoryProjection.js.map +1 -0
- package/dist/core/accesscontrol/evaluate.d.ts +77 -0
- package/dist/core/accesscontrol/evaluate.d.ts.map +1 -0
- package/dist/core/accesscontrol/evaluate.js +206 -0
- package/dist/core/accesscontrol/evaluate.js.map +1 -0
- package/dist/core/accesscontrol/grantKeys.d.ts +113 -0
- package/dist/core/accesscontrol/grantKeys.d.ts.map +1 -0
- package/dist/core/accesscontrol/grantKeys.js +302 -0
- package/dist/core/accesscontrol/grantKeys.js.map +1 -0
- package/dist/core/accesscontrol/keyBagReconciler.d.ts +22 -0
- package/dist/core/accesscontrol/keyBagReconciler.d.ts.map +1 -0
- package/dist/core/accesscontrol/keyBagReconciler.js +3 -0
- package/dist/core/accesscontrol/keyBagReconciler.js.map +1 -0
- package/dist/core/accesscontrol/materializationGuard.d.ts +89 -0
- package/dist/core/accesscontrol/materializationGuard.d.ts.map +1 -0
- package/dist/core/accesscontrol/materializationGuard.js +69 -0
- package/dist/core/accesscontrol/materializationGuard.js.map +1 -0
- package/dist/core/accesscontrol/quarantine.d.ts +65 -0
- package/dist/core/accesscontrol/quarantine.d.ts.map +1 -0
- package/dist/core/accesscontrol/quarantine.js +79 -0
- package/dist/core/accesscontrol/quarantine.js.map +1 -0
- package/dist/core/accesscontrol/receiptValidation.d.ts +113 -0
- package/dist/core/accesscontrol/receiptValidation.d.ts.map +1 -0
- package/dist/core/accesscontrol/receiptValidation.js +142 -0
- package/dist/core/accesscontrol/receiptValidation.js.map +1 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.d.ts +31 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.d.ts.map +1 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.js +66 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.js.map +1 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.d.ts +79 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.d.ts.map +1 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.js +22 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.js.map +1 -0
- package/dist/core/accesscontrol/types.d.ts +825 -0
- package/dist/core/accesscontrol/types.d.ts.map +1 -0
- package/dist/core/accesscontrol/types.js +534 -0
- package/dist/core/accesscontrol/types.js.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +9 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +54 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts +38 -2
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/AuthenticationService.js +199 -26
- package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -1
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +17 -3
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.d.ts +58 -4
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.js +4 -0
- package/dist/core/appendonlystores/network/types.js.map +1 -1
- package/dist/core/appendonlystores/scanUtils.d.ts +27 -0
- package/dist/core/appendonlystores/scanUtils.d.ts.map +1 -0
- package/dist/core/appendonlystores/scanUtils.js +87 -0
- package/dist/core/appendonlystores/scanUtils.js.map +1 -0
- package/dist/core/appendonlystores/types.d.ts +23 -2
- package/dist/core/appendonlystores/types.d.ts.map +1 -1
- package/dist/core/cache/CacheManager.d.ts +13 -3
- package/dist/core/cache/CacheManager.d.ts.map +1 -1
- package/dist/core/cache/CacheManager.js +7 -4
- package/dist/core/cache/CacheManager.js.map +1 -1
- package/dist/core/crypto/EntrySignature.d.ts +137 -0
- package/dist/core/crypto/EntrySignature.d.ts.map +1 -0
- package/dist/core/crypto/EntrySignature.js +210 -0
- package/dist/core/crypto/EntrySignature.js.map +1 -0
- package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -1
- package/dist/core/crypto/MindooDocSigner.js +6 -2
- package/dist/core/crypto/MindooDocSigner.js.map +1 -1
- package/dist/core/crypto/WitnessReceipt.d.ts +137 -0
- package/dist/core/crypto/WitnessReceipt.d.ts.map +1 -0
- package/dist/core/crypto/WitnessReceipt.js +182 -0
- package/dist/core/crypto/WitnessReceipt.js.map +1 -0
- package/dist/core/crypto/encryptedFields.d.ts +27 -0
- package/dist/core/crypto/encryptedFields.d.ts.map +1 -0
- package/dist/core/crypto/encryptedFields.js +58 -0
- package/dist/core/crypto/encryptedFields.js.map +1 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts +12 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts.map +1 -1
- package/dist/core/crypto/pbkdf2Iterations.js +23 -0
- package/dist/core/crypto/pbkdf2Iterations.js.map +1 -1
- package/dist/core/crypto/privateKeyEncryption.d.ts.map +1 -1
- package/dist/core/crypto/privateKeyEncryption.js +3 -1
- package/dist/core/crypto/privateKeyEncryption.js.map +1 -1
- package/dist/core/databaseIdValidation.d.ts +1 -1
- package/dist/core/databaseIdValidation.d.ts.map +1 -1
- package/dist/core/databaseIdValidation.js +4 -4
- package/dist/core/databaseIdValidation.js.map +1 -1
- package/dist/core/errors.d.ts +26 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +42 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/expressions/builder.d.ts +102 -0
- package/dist/core/expressions/builder.d.ts.map +1 -0
- package/dist/core/expressions/builder.js +249 -0
- package/dist/core/expressions/builder.js.map +1 -0
- package/dist/core/expressions/evaluateExpression.d.ts +78 -0
- package/dist/core/expressions/evaluateExpression.d.ts.map +1 -0
- package/dist/core/expressions/evaluateExpression.js +386 -0
- package/dist/core/expressions/evaluateExpression.js.map +1 -0
- package/dist/core/expressions/formulaSource.d.ts +24 -0
- package/dist/core/expressions/formulaSource.d.ts.map +1 -0
- package/dist/core/expressions/formulaSource.js +765 -0
- package/dist/core/expressions/formulaSource.js.map +1 -0
- package/dist/core/expressions/index.d.ts +8 -0
- package/dist/core/expressions/index.d.ts.map +1 -0
- package/dist/core/expressions/index.js +46 -0
- package/dist/core/expressions/index.js.map +1 -0
- package/dist/core/expressions/metadata.d.ts +23 -0
- package/dist/core/expressions/metadata.d.ts.map +1 -0
- package/dist/core/expressions/metadata.js +191 -0
- package/dist/core/expressions/metadata.js.map +1 -0
- package/dist/core/expressions/types.d.ts +164 -0
- package/dist/core/expressions/types.d.ts.map +1 -0
- package/dist/core/expressions/types.js +3 -0
- package/dist/core/expressions/types.js.map +1 -0
- package/dist/core/extraction/types.d.ts +47 -0
- package/dist/core/extraction/types.d.ts.map +1 -0
- package/dist/core/extraction/types.js +42 -0
- package/dist/core/extraction/types.js.map +1 -0
- package/dist/core/index.d.ts +13 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +113 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/createViewDataProvider.d.ts +84 -0
- package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/createViewDataProvider.js +139 -0
- package/dist/core/indexing/createViewDataProvider.js.map +1 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.d.ts +180 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.js +548 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.js.map +1 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.d.ts +69 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.js +183 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.js.map +1 -0
- package/dist/core/indexing/fulltext/extractFulltextText.d.ts +34 -0
- package/dist/core/indexing/fulltext/extractFulltextText.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/extractFulltextText.js +129 -0
- package/dist/core/indexing/fulltext/extractFulltextText.js.map +1 -0
- package/dist/core/indexing/fulltext/index.d.ts +5 -0
- package/dist/core/indexing/fulltext/index.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/index.js +20 -0
- package/dist/core/indexing/fulltext/index.js.map +1 -0
- package/dist/core/indexing/fulltext/types.d.ts +168 -0
- package/dist/core/indexing/fulltext/types.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/types.js +89 -0
- package/dist/core/indexing/fulltext/types.js.map +1 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts +137 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts.map +1 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.js +438 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.js.map +1 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts +72 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +221 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -0
- package/dist/core/indexing/summary/extractSummaryFields.d.ts +75 -0
- package/dist/core/indexing/summary/extractSummaryFields.d.ts.map +1 -0
- package/dist/core/indexing/summary/extractSummaryFields.js +266 -0
- package/dist/core/indexing/summary/extractSummaryFields.js.map +1 -0
- package/dist/core/indexing/summary/index.d.ts +5 -0
- package/dist/core/indexing/summary/index.d.ts.map +1 -0
- package/dist/core/indexing/summary/index.js +23 -0
- package/dist/core/indexing/summary/index.js.map +1 -0
- package/dist/core/indexing/summary/types.d.ts +119 -0
- package/dist/core/indexing/summary/types.d.ts.map +1 -0
- package/dist/core/indexing/summary/types.js +81 -0
- package/dist/core/indexing/summary/types.js.map +1 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts +47 -1
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +24 -8
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +96 -41
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts +2 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js +8 -3
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +111 -5
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.js +266 -75
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts +12 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +12 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +66 -5
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +50 -6
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js +54 -12
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -1
- package/dist/core/indexing/virtualviews/index.d.ts +3 -3
- package/dist/core/indexing/virtualviews/index.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/index.js.map +1 -1
- package/dist/core/indexing/virtualviews/types.d.ts +6 -0
- package/dist/core/indexing/virtualviews/types.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/types.js +11 -3
- package/dist/core/indexing/virtualviews/types.js.map +1 -1
- package/dist/core/keys/KeyBag.d.ts +25 -0
- package/dist/core/keys/KeyBag.d.ts.map +1 -1
- package/dist/core/keys/KeyBag.js +37 -1
- package/dist/core/keys/KeyBag.js.map +1 -1
- package/dist/core/query/executeQuery.d.ts +18 -0
- package/dist/core/query/executeQuery.d.ts.map +1 -0
- package/dist/core/query/executeQuery.js +313 -0
- package/dist/core/query/executeQuery.js.map +1 -0
- package/dist/core/query/index.d.ts +5 -0
- package/dist/core/query/index.d.ts.map +1 -0
- package/dist/core/query/index.js +14 -0
- package/dist/core/query/index.js.map +1 -0
- package/dist/core/query/queryLive.d.ts +27 -0
- package/dist/core/query/queryLive.d.ts.map +1 -0
- package/dist/core/query/queryLive.js +104 -0
- package/dist/core/query/queryLive.js.map +1 -0
- package/dist/core/query/queryView.d.ts +156 -0
- package/dist/core/query/queryView.d.ts.map +1 -0
- package/dist/core/query/queryView.js +266 -0
- package/dist/core/query/queryView.js.map +1 -0
- package/dist/core/query/types.d.ts +121 -0
- package/dist/core/query/types.d.ts.map +1 -0
- package/dist/core/query/types.js +18 -0
- package/dist/core/query/types.js.map +1 -0
- package/dist/core/storeEntryTime.d.ts +57 -0
- package/dist/core/storeEntryTime.d.ts.map +1 -0
- package/dist/core/storeEntryTime.js +72 -0
- package/dist/core/storeEntryTime.js.map +1 -0
- package/dist/core/types.d.ts +1371 -34
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +13 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/uri/MindooURI.d.ts +53 -1
- package/dist/core/uri/MindooURI.d.ts.map +1 -1
- package/dist/core/uri/MindooURI.js +135 -0
- package/dist/core/uri/MindooURI.js.map +1 -1
- package/dist/core/utils/urlSafety.d.ts +46 -0
- package/dist/core/utils/urlSafety.d.ts.map +1 -0
- package/dist/core/utils/urlSafety.js +144 -0
- package/dist/core/utils/urlSafety.js.map +1 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +14 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +95 -4
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
- package/dist/node/server/CapabilityMatcher.d.ts +10 -0
- package/dist/node/server/CapabilityMatcher.d.ts.map +1 -1
- package/dist/node/server/CapabilityMatcher.js +14 -2
- package/dist/node/server/CapabilityMatcher.js.map +1 -1
- package/dist/node/server/MindooDBServer.d.ts.map +1 -1
- package/dist/node/server/MindooDBServer.js +117 -8
- package/dist/node/server/MindooDBServer.js.map +1 -1
- package/dist/node/server/PurgedDocRegistry.d.ts +32 -0
- package/dist/node/server/PurgedDocRegistry.d.ts.map +1 -0
- package/dist/node/server/PurgedDocRegistry.js +94 -0
- package/dist/node/server/PurgedDocRegistry.js.map +1 -0
- package/dist/node/server/ServerSync.d.ts.map +1 -1
- package/dist/node/server/ServerSync.js +5 -2
- package/dist/node/server/ServerSync.js.map +1 -1
- package/dist/node/server/SystemAdminAuth.d.ts +10 -0
- package/dist/node/server/SystemAdminAuth.d.ts.map +1 -1
- package/dist/node/server/SystemAdminAuth.js +25 -0
- package/dist/node/server/SystemAdminAuth.js.map +1 -1
- package/dist/node/server/TenantManager.d.ts +95 -1
- package/dist/node/server/TenantManager.d.ts.map +1 -1
- package/dist/node/server/TenantManager.js +382 -15
- package/dist/node/server/TenantManager.js.map +1 -1
- package/dist/node/server/config.d.ts.map +1 -1
- package/dist/node/server/config.js +5 -1
- package/dist/node/server/config.js.map +1 -1
- package/dist/node/server/types.d.ts +29 -3
- package/dist/node/server/types.d.ts.map +1 -1
- package/dist/node/server/types.js +12 -0
- package/dist/node/server/types.js.map +1 -1
- package/dist/node/server/validation.d.ts +6 -0
- package/dist/node/server/validation.d.ts.map +1 -1
- package/dist/node/server/validation.js +7 -1
- package/dist/node/server/validation.js.map +1 -1
- package/package.json +4 -3
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts +0 -8
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts.map +0 -1
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js +0 -16
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js.map +0 -1
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +0 -68
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +0 -1
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js +0 -659
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js.map +0 -1
- package/dist/node/attachments/writeAttachmentToFile.d.ts +0 -15
- package/dist/node/attachments/writeAttachmentToFile.d.ts.map +0 -1
- package/dist/node/attachments/writeAttachmentToFile.js +0 -73
- package/dist/node/attachments/writeAttachmentToFile.js.map +0 -1
|
@@ -18,18 +18,22 @@
|
|
|
18
18
|
* auth without servers being in each tenant's user directory.
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.TenantManager = void 0;
|
|
21
|
+
exports.TenantManager = exports.SimpleMindooDirectory = void 0;
|
|
22
22
|
const fs_1 = require("fs");
|
|
23
23
|
const path_1 = require("path");
|
|
24
24
|
const NodeCryptoAdapter_1 = require("../crypto/NodeCryptoAdapter");
|
|
25
25
|
const AuthenticationService_1 = require("../../core/appendonlystores/network/AuthenticationService");
|
|
26
26
|
const ServerNetworkContentAddressedStore_1 = require("../../appendonlystores/network/ServerNetworkContentAddressedStore");
|
|
27
|
+
const PurgedDocRegistry_1 = require("./PurgedDocRegistry");
|
|
28
|
+
const Ed25519WitnessProvider_1 = require("../../core/accesscontrol/timestamp/Ed25519WitnessProvider");
|
|
27
29
|
const BaseMindooTenantFactory_1 = require("../../core/BaseMindooTenantFactory");
|
|
28
30
|
const RSAEncryption_1 = require("../../core/crypto/RSAEncryption");
|
|
29
31
|
const privateKeyEncryption_1 = require("../../core/crypto/privateKeyEncryption");
|
|
30
32
|
const KeyBag_1 = require("../../core/keys/KeyBag");
|
|
31
33
|
const types_1 = require("../../core/types");
|
|
32
34
|
const StoreFactory_1 = require("./StoreFactory");
|
|
35
|
+
const types_2 = require("./types");
|
|
36
|
+
const urlSafety_1 = require("../../core/utils/urlSafety");
|
|
33
37
|
// ---------------------------------------------------------------------------
|
|
34
38
|
// StoreFactoryAdapter
|
|
35
39
|
// ---------------------------------------------------------------------------
|
|
@@ -49,12 +53,24 @@ class StoreFactoryAdapter {
|
|
|
49
53
|
// ---------------------------------------------------------------------------
|
|
50
54
|
class SimpleMindooDirectory {
|
|
51
55
|
constructor(config) {
|
|
52
|
-
|
|
56
|
+
/** Canonical index: entries are identified by their signing public key. */
|
|
57
|
+
this.usersByKey = new Map();
|
|
58
|
+
/**
|
|
59
|
+
* Backward-compat index by documentation-only username, populated only for
|
|
60
|
+
* config entries that carry a `username`. Lets legacy username-based
|
|
61
|
+
* challenges keep resolving; `username` is never required.
|
|
62
|
+
*/
|
|
63
|
+
this.usersByUsername = new Map();
|
|
53
64
|
this.revokedUsers = new Set();
|
|
54
65
|
this.adminSigningPublicKey = config.adminSigningPublicKey;
|
|
55
66
|
if (config.users) {
|
|
56
67
|
for (const user of config.users) {
|
|
57
|
-
|
|
68
|
+
// Identity is the signing key. `username` is documentation-only and
|
|
69
|
+
// ignored for matching; index it only as a legacy convenience.
|
|
70
|
+
this.usersByKey.set(user.signingPublicKey, user);
|
|
71
|
+
if (typeof user.username === "string" && user.username.trim()) {
|
|
72
|
+
this.usersByUsername.set(user.username.toLowerCase(), user);
|
|
73
|
+
}
|
|
58
74
|
}
|
|
59
75
|
}
|
|
60
76
|
}
|
|
@@ -63,7 +79,7 @@ class SimpleMindooDirectory {
|
|
|
63
79
|
if (this.revokedUsers.has(normalizedUsername)) {
|
|
64
80
|
return null;
|
|
65
81
|
}
|
|
66
|
-
const user = this.
|
|
82
|
+
const user = this.usersByUsername.get(normalizedUsername);
|
|
67
83
|
if (!user) {
|
|
68
84
|
return null;
|
|
69
85
|
}
|
|
@@ -72,23 +88,41 @@ class SimpleMindooDirectory {
|
|
|
72
88
|
encryptionPublicKey: user.encryptionPublicKey,
|
|
73
89
|
};
|
|
74
90
|
}
|
|
91
|
+
async getUserBySigningPublicKey(publicKey) {
|
|
92
|
+
const user = this.usersByKey.get(publicKey);
|
|
93
|
+
if (!user) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
if (typeof user.username === "string" &&
|
|
97
|
+
this.revokedUsers.has(user.username.toLowerCase())) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
username: typeof user.username === "string" ? user.username : "",
|
|
102
|
+
signingPublicKey: user.signingPublicKey,
|
|
103
|
+
encryptionPublicKey: user.encryptionPublicKey,
|
|
104
|
+
details: null,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
75
107
|
async isUserRevoked(username) {
|
|
76
108
|
return this.revokedUsers.has(username.toLowerCase());
|
|
77
109
|
}
|
|
78
|
-
async validatePublicSigningKey(publicKey) {
|
|
110
|
+
async validatePublicSigningKey(publicKey, _opts) {
|
|
79
111
|
if (publicKey === this.adminSigningPublicKey) {
|
|
80
112
|
return true;
|
|
81
113
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
114
|
+
const user = this.usersByKey.get(publicKey);
|
|
115
|
+
if (!user) {
|
|
116
|
+
return false;
|
|
88
117
|
}
|
|
89
|
-
|
|
118
|
+
if (typeof user.username === "string" &&
|
|
119
|
+
this.revokedUsers.has(user.username.toLowerCase())) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
return true;
|
|
90
123
|
}
|
|
91
124
|
}
|
|
125
|
+
exports.SimpleMindooDirectory = SimpleMindooDirectory;
|
|
92
126
|
// ---------------------------------------------------------------------------
|
|
93
127
|
// CompositeMindooDirectory — wraps tenant directory + trusted servers
|
|
94
128
|
// ---------------------------------------------------------------------------
|
|
@@ -141,11 +175,11 @@ class CompositeMindooDirectory {
|
|
|
141
175
|
}
|
|
142
176
|
return this.inner.isUserRevoked(username);
|
|
143
177
|
}
|
|
144
|
-
async validatePublicSigningKey(publicKey) {
|
|
178
|
+
async validatePublicSigningKey(publicKey, opts) {
|
|
145
179
|
if (this.adminBootstrapIdentity && this.adminBootstrapIdentity.signingPublicKey === publicKey) {
|
|
146
180
|
return true;
|
|
147
181
|
}
|
|
148
|
-
const innerResult = await this.inner.validatePublicSigningKey(publicKey);
|
|
182
|
+
const innerResult = await this.inner.validatePublicSigningKey(publicKey, opts);
|
|
149
183
|
if (innerResult)
|
|
150
184
|
return true;
|
|
151
185
|
for (const server of this.trustedServers) {
|
|
@@ -155,6 +189,87 @@ class CompositeMindooDirectory {
|
|
|
155
189
|
}
|
|
156
190
|
return false;
|
|
157
191
|
}
|
|
192
|
+
// -----------------------------------------------------------------------
|
|
193
|
+
// Advanced directory features forwarded to the inner directory. Config-based
|
|
194
|
+
// inner directories (SimpleMindooDirectory) do not implement these, so the
|
|
195
|
+
// composite degrades gracefully (no key-based identity, no read policy, no
|
|
196
|
+
// wipe directives) — preserving legacy config-only behavior — while a real
|
|
197
|
+
// BaseMindooTenantDirectory inner enables the key-based auth, read gate, and
|
|
198
|
+
// remote-wipe paths (docs/accesscontrol.md §6.5).
|
|
199
|
+
// -----------------------------------------------------------------------
|
|
200
|
+
async getUserBySigningPublicKey(publicKey) {
|
|
201
|
+
if (typeof this.inner.getUserBySigningPublicKey === "function") {
|
|
202
|
+
const innerLookup = await this.inner.getUserBySigningPublicKey(publicKey);
|
|
203
|
+
if (innerLookup)
|
|
204
|
+
return innerLookup;
|
|
205
|
+
}
|
|
206
|
+
// Bootstrap/config fallback: the admin and trusted-server identities can be
|
|
207
|
+
// resolved by their signing key even without a grantaccess document on this
|
|
208
|
+
// server, mirroring getUserPublicKeys. Without this, key-based identity
|
|
209
|
+
// resolution (and the validateToken active-key check below) would treat the
|
|
210
|
+
// admin's own key as unknown the moment the directory has no admin grant.
|
|
211
|
+
if (this.adminBootstrapIdentity && this.adminBootstrapIdentity.signingPublicKey === publicKey) {
|
|
212
|
+
return {
|
|
213
|
+
username: this.adminBootstrapIdentity.username,
|
|
214
|
+
signingPublicKey: this.adminBootstrapIdentity.signingPublicKey,
|
|
215
|
+
encryptionPublicKey: this.adminBootstrapIdentity.encryptionPublicKey,
|
|
216
|
+
details: null,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
for (const server of this.trustedServers) {
|
|
220
|
+
if (server.signingPublicKey === publicKey) {
|
|
221
|
+
return {
|
|
222
|
+
username: server.name,
|
|
223
|
+
signingPublicKey: server.signingPublicKey,
|
|
224
|
+
encryptionPublicKey: server.encryptionPublicKey,
|
|
225
|
+
details: null,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
async getUserSigningKeyUniverse(username) {
|
|
232
|
+
const base = typeof this.inner.getUserSigningKeyUniverse === "function"
|
|
233
|
+
? await this.inner.getUserSigningKeyUniverse(username)
|
|
234
|
+
: { active: [], wipeRequested: [] };
|
|
235
|
+
// The admin bootstrap identity, trusted servers, and config-based users are
|
|
236
|
+
// valid principals even without a grantaccess document on this server (the
|
|
237
|
+
// server config / bootstrap identity is the root of trust). Their signing
|
|
238
|
+
// key must therefore count as ACTIVE so the token-validation gate in
|
|
239
|
+
// AuthenticationService.validateToken (which requires the device key to be
|
|
240
|
+
// in this active set) does not reject a freshly-issued admin/config token.
|
|
241
|
+
// We reuse getUserPublicKeys, which already applies exactly those fallbacks.
|
|
242
|
+
const active = new Set(base.active);
|
|
243
|
+
const fallback = await this.getUserPublicKeys(username);
|
|
244
|
+
if (fallback)
|
|
245
|
+
active.add(fallback.signingPublicKey);
|
|
246
|
+
return { active: Array.from(active), wipeRequested: base.wipeRequested };
|
|
247
|
+
}
|
|
248
|
+
async getUserKeyPairs(username) {
|
|
249
|
+
if (typeof this.inner.getUserKeyPairs === "function") {
|
|
250
|
+
return this.inner.getUserKeyPairs(username);
|
|
251
|
+
}
|
|
252
|
+
return [];
|
|
253
|
+
}
|
|
254
|
+
async getWipeGrantDocId(signingKey) {
|
|
255
|
+
if (typeof this.inner.getWipeGrantDocId === "function") {
|
|
256
|
+
return this.inner.getWipeGrantDocId(signingKey);
|
|
257
|
+
}
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
async getRevokedDecryptionKeyIdsForSigningKey(signingKey) {
|
|
261
|
+
if (typeof this.inner.getRevokedDecryptionKeyIdsForSigningKey === "function") {
|
|
262
|
+
return this.inner.getRevokedDecryptionKeyIdsForSigningKey(signingKey);
|
|
263
|
+
}
|
|
264
|
+
return [];
|
|
265
|
+
}
|
|
266
|
+
async evaluateDbAccessForSigningKey(input) {
|
|
267
|
+
if (typeof this.inner.evaluateDbAccessForSigningKey === "function") {
|
|
268
|
+
return this.inner.evaluateDbAccessForSigningKey(input);
|
|
269
|
+
}
|
|
270
|
+
// Config-based directories carry no database-open policy -> unrestricted.
|
|
271
|
+
return true;
|
|
272
|
+
}
|
|
158
273
|
}
|
|
159
274
|
// ---------------------------------------------------------------------------
|
|
160
275
|
// TenantManager
|
|
@@ -174,6 +289,10 @@ class TenantManager {
|
|
|
174
289
|
this.loadedTenants = new Map();
|
|
175
290
|
this.serverIdentity = null;
|
|
176
291
|
this.trustedServers = [];
|
|
292
|
+
/** Per-tenant persistent registry of executed purges (docs/accesscontrol.md §13). */
|
|
293
|
+
this.purgedDocRegistries = new Map();
|
|
294
|
+
/** In-flight purge executions, keyed by normalized tenant id (serializes runs). */
|
|
295
|
+
this.purgeInFlight = new Map();
|
|
177
296
|
this.dataDir = dataDir;
|
|
178
297
|
this.serverPassword = serverPassword;
|
|
179
298
|
this.cryptoAdapter = new NodeCryptoAdapter_1.NodeCryptoAdapter();
|
|
@@ -212,6 +331,39 @@ class TenantManager {
|
|
|
212
331
|
encryptionPublicKey: this.serverIdentity.userEncryptionKeyPair.publicKey,
|
|
213
332
|
};
|
|
214
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Build (and cache) the server's witness identity used to stamp receipts on
|
|
336
|
+
* accepted entries (docs/accesscontrol.md §5.3). Returns undefined when the
|
|
337
|
+
* server identity or its unlock password is unavailable, in which case the
|
|
338
|
+
* server runs in pre-access-control mode (no stamping, no Tier 1 advertised).
|
|
339
|
+
*/
|
|
340
|
+
async getWitnessSigner() {
|
|
341
|
+
if (this.witnessSigner)
|
|
342
|
+
return this.witnessSigner;
|
|
343
|
+
if (!this.serverIdentity || !this.serverPassword)
|
|
344
|
+
return undefined;
|
|
345
|
+
const subtle = this.cryptoAdapter.getSubtle();
|
|
346
|
+
const signingKeyBuffer = await (0, privateKeyEncryption_1.decryptPrivateKey)(this.cryptoAdapter, this.serverIdentity.userSigningKeyPair.privateKey, this.serverPassword, "signing");
|
|
347
|
+
const signingPrivateKey = await subtle.importKey("pkcs8", signingKeyBuffer, { name: "Ed25519" }, false, ["sign"]);
|
|
348
|
+
this.witnessSigner = {
|
|
349
|
+
publicKeyPem: this.serverIdentity.userSigningKeyPair.publicKey,
|
|
350
|
+
signingPrivateKey,
|
|
351
|
+
subtle,
|
|
352
|
+
};
|
|
353
|
+
return this.witnessSigner;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Build the trusted-time provider that stamps receipts on accepted entries
|
|
357
|
+
* (docs/accesscontrol.md §5.3, §13). v1 wraps the server's Ed25519 witness
|
|
358
|
+
* identity; returns undefined when no witness signer is available, leaving the
|
|
359
|
+
* server in pre-access-control mode.
|
|
360
|
+
*/
|
|
361
|
+
async getTimestampProvider() {
|
|
362
|
+
const signer = await this.getWitnessSigner();
|
|
363
|
+
if (!signer)
|
|
364
|
+
return undefined;
|
|
365
|
+
return new Ed25519WitnessProvider_1.Ed25519WitnessProvider({ signer, subtle: signer.subtle });
|
|
366
|
+
}
|
|
215
367
|
// =======================================================================
|
|
216
368
|
// Trusted server management
|
|
217
369
|
// =======================================================================
|
|
@@ -477,6 +629,14 @@ class TenantManager {
|
|
|
477
629
|
}
|
|
478
630
|
addTenantSyncServer(tenantId, server) {
|
|
479
631
|
const normalizedId = tenantId.toLowerCase();
|
|
632
|
+
// SSRF guard (defense in depth alongside the HTTP route): a configured sync
|
|
633
|
+
// URL is fetched server-side, so reject plaintext/internal targets unless
|
|
634
|
+
// explicitly allowed for local development.
|
|
635
|
+
const allowInsecure = /^(1|true)$/i.test(process.env[types_2.ENV_VARS.ALLOW_INSECURE_SYNC_URLS] ?? "");
|
|
636
|
+
(0, urlSafety_1.assertSafeSyncUrl)(server.url, {
|
|
637
|
+
requireHttps: !allowInsecure,
|
|
638
|
+
allowPrivate: allowInsecure,
|
|
639
|
+
});
|
|
480
640
|
const configPath = this.resolveTenantConfigPath(normalizedId);
|
|
481
641
|
if (!(0, fs_1.existsSync)(configPath)) {
|
|
482
642
|
throw new Error(`Tenant ${normalizedId} not found`);
|
|
@@ -525,15 +685,222 @@ class TenantManager {
|
|
|
525
685
|
return cached;
|
|
526
686
|
}
|
|
527
687
|
const localStore = tenant.storeFactory.getStore(dbId, storeKind);
|
|
528
|
-
|
|
688
|
+
// Access-control v1 wiring (docs/accesscontrol.md §5–§7). The witness signer
|
|
689
|
+
// lets the server stamp receipts on accepted entries; the Tier 1 evaluator
|
|
690
|
+
// enforces identity-tier rules at push time. Both are only active when the
|
|
691
|
+
// server identity is unlocked and the directory supports evaluation, so
|
|
692
|
+
// pre-access-control deployments keep their existing behavior.
|
|
693
|
+
const timestampProvider = await this.getTimestampProvider();
|
|
694
|
+
const directory = tenant.directory;
|
|
695
|
+
const tier1Evaluator = this.buildTier1Evaluator(directory, localStore);
|
|
696
|
+
const wipeGrantDocIdResolver = this.buildWipeGrantDocIdResolver(directory);
|
|
697
|
+
// Database-open gate (directory-restricted policy). Never applied to the
|
|
698
|
+
// directory store itself, which must always sync so the policy can be read.
|
|
699
|
+
const dbAccessEvaluator = dbId === "directory" ? undefined : this.buildDbAccessEvaluator(directory);
|
|
700
|
+
// Per-user revoked-key blacklist (§13). Never applied to the directory store
|
|
701
|
+
// itself (its policy, which defines the blacklist, must always sync).
|
|
702
|
+
const revokedKeyResolver = dbId === "directory" ? undefined : this.buildRevokedKeyResolver(directory);
|
|
703
|
+
// Purged-document denylist (§13). Never applied to the directory store (purge
|
|
704
|
+
// requests themselves live there and must always sync).
|
|
705
|
+
const purgedDocResolver = dbId === "directory"
|
|
706
|
+
? undefined
|
|
707
|
+
: () => this.getPurgedDocRegistry(tenantId).getPurgedDocIds(dbId);
|
|
708
|
+
const serverStore = new ServerNetworkContentAddressedStore_1.ServerNetworkContentAddressedStore(localStore, directory, tenant.authService, this.cryptoAdapter, undefined, {
|
|
709
|
+
timestampProvider,
|
|
710
|
+
witnessDbid: dbId,
|
|
711
|
+
tier1Evaluator,
|
|
712
|
+
wipeGrantDocIdResolver,
|
|
713
|
+
dbAccessEvaluator,
|
|
714
|
+
revokedKeyResolver,
|
|
715
|
+
purgedDocResolver,
|
|
716
|
+
});
|
|
529
717
|
tenant.serverStores.set(cacheKey, serverStore);
|
|
530
718
|
console.log(`[TenantManager] Created server store for ${tenantId}/${dbId}/${storeKind}`);
|
|
531
719
|
return serverStore;
|
|
532
720
|
}
|
|
721
|
+
/**
|
|
722
|
+
* Build a Tier 1 evaluator closure for a server store, or undefined when the
|
|
723
|
+
* directory cannot evaluate access (e.g. config-based directory without the
|
|
724
|
+
* access-control state chain). The closure resolves `$author` for non-create
|
|
725
|
+
* ops by reading the document's `doc_create` entry creator key from the local
|
|
726
|
+
* store (metadata only, no decryption) and comparing it to the change author.
|
|
727
|
+
*/
|
|
728
|
+
buildTier1Evaluator(directory, localStore) {
|
|
729
|
+
const evaluable = directory;
|
|
730
|
+
if (typeof evaluable.evaluateAccessForSigningKey !== "function") {
|
|
731
|
+
return undefined;
|
|
732
|
+
}
|
|
733
|
+
return async (entry, dbid) => {
|
|
734
|
+
// The witness evaluates Tier 1 at its acceptance time (now), the same time
|
|
735
|
+
// it will stamp into the receipt (docs/accesscontrol.md §5.3, §7).
|
|
736
|
+
const trustedTime = Date.now();
|
|
737
|
+
// Resolve `$author`: for doc_create the author is the creator; otherwise
|
|
738
|
+
// compare the change signer to the document's original doc_create author.
|
|
739
|
+
let isAuthor = entry.entryType === "doc_create";
|
|
740
|
+
if (!isAuthor) {
|
|
741
|
+
try {
|
|
742
|
+
const docEntries = await localStore.findNewEntriesForDoc([], entry.docId);
|
|
743
|
+
const createEntry = docEntries.find((m) => m.entryType === "doc_create");
|
|
744
|
+
if (createEntry) {
|
|
745
|
+
isAuthor = createEntry.createdByPublicKey === entry.createdByPublicKey;
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
catch {
|
|
749
|
+
// If we cannot resolve the creator, leave isAuthor false; a rule that
|
|
750
|
+
// requires $author will deny, which is the safe (fail-closed) choice.
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
return evaluable.evaluateAccessForSigningKey({
|
|
754
|
+
op: entry.entryType,
|
|
755
|
+
dbid,
|
|
756
|
+
signingKey: entry.createdByPublicKey,
|
|
757
|
+
trustedTime,
|
|
758
|
+
isAuthor,
|
|
759
|
+
});
|
|
760
|
+
};
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* Build a database-open evaluator closure for a server store, or undefined
|
|
764
|
+
* when the directory cannot evaluate the database-open policy (e.g. a
|
|
765
|
+
* config-based directory without the access-control state chain). When the
|
|
766
|
+
* tenant policy is `"directory-restricted"`, this rejects sync for any
|
|
767
|
+
* database id that is not in the allowlist; `"directory"` is always allowed
|
|
768
|
+
* and the tenant admin is exempt (resolved from the principal signing key).
|
|
769
|
+
*/
|
|
770
|
+
buildDbAccessEvaluator(directory) {
|
|
771
|
+
const evaluable = directory;
|
|
772
|
+
if (typeof evaluable.evaluateDbAccessForSigningKey !== "function") {
|
|
773
|
+
return undefined;
|
|
774
|
+
}
|
|
775
|
+
return async (principal, dbid) => {
|
|
776
|
+
return evaluable.evaluateDbAccessForSigningKey({
|
|
777
|
+
dbid,
|
|
778
|
+
signingKey: principal.signingKey ?? "",
|
|
779
|
+
});
|
|
780
|
+
};
|
|
781
|
+
}
|
|
782
|
+
/**
|
|
783
|
+
* Build a remote-wipe resolver closure for a server store, or undefined when
|
|
784
|
+
* the directory does not support wipe directives (docs/accesscontrol.md §6.5).
|
|
785
|
+
* Maps a wipe-targeted signing key to the admin-signed grant document id so
|
|
786
|
+
* the server can serve only that document to the targeted device.
|
|
787
|
+
*/
|
|
788
|
+
buildWipeGrantDocIdResolver(directory) {
|
|
789
|
+
if (typeof directory.getWipeGrantDocId !== "function") {
|
|
790
|
+
return undefined;
|
|
791
|
+
}
|
|
792
|
+
return (signingKey) => directory.getWipeGrantDocId(signingKey);
|
|
793
|
+
}
|
|
794
|
+
/**
|
|
795
|
+
* Build a per-user revoked-key blacklist resolver for a server store, or
|
|
796
|
+
* undefined when the directory cannot resolve revoked keys (e.g. a
|
|
797
|
+
* config-based directory). Maps the authenticated principal's signing key to
|
|
798
|
+
* the set of decryption key ids revoked for them at the directory head
|
|
799
|
+
* (docs/accesscontrol.md §13).
|
|
800
|
+
*/
|
|
801
|
+
buildRevokedKeyResolver(directory) {
|
|
802
|
+
if (typeof directory.getRevokedDecryptionKeyIdsForSigningKey !== "function") {
|
|
803
|
+
return undefined;
|
|
804
|
+
}
|
|
805
|
+
return async (principal) => {
|
|
806
|
+
const ids = await directory.getRevokedDecryptionKeyIdsForSigningKey(principal.signingKey ?? "");
|
|
807
|
+
return new Set(ids);
|
|
808
|
+
};
|
|
809
|
+
}
|
|
533
810
|
async getStore(tenantId, dbId, storeKind) {
|
|
534
811
|
const tenant = await this.getTenant(tenantId);
|
|
535
812
|
return tenant.storeFactory.getStore(dbId, storeKind);
|
|
536
813
|
}
|
|
814
|
+
/** The (lazily-loaded, cached) purge registry for a tenant. */
|
|
815
|
+
getPurgedDocRegistry(tenantId) {
|
|
816
|
+
const normalizedId = tenantId.toLowerCase();
|
|
817
|
+
let registry = this.purgedDocRegistries.get(normalizedId);
|
|
818
|
+
if (!registry) {
|
|
819
|
+
registry = new PurgedDocRegistry_1.PurgedDocRegistry((0, path_1.join)(this.resolveTenantDir(normalizedId), "purged-docs.json"));
|
|
820
|
+
this.purgedDocRegistries.set(normalizedId, registry);
|
|
821
|
+
}
|
|
822
|
+
return registry;
|
|
823
|
+
}
|
|
824
|
+
/**
|
|
825
|
+
* Execute any not-yet-processed document-history purge requests for a tenant
|
|
826
|
+
* (docs/accesscontrol.md §13). Reads the admin-signed purge requests from the
|
|
827
|
+
* tenant directory (server-readable `$publicinfos` envelope), physically
|
|
828
|
+
* purges each requested document's history from the tenant's `docs` and
|
|
829
|
+
* `attachments` stores, and records the purge in the persistent registry so
|
|
830
|
+
* (a) it is never executed twice and (b) re-pushes of the purged docs are
|
|
831
|
+
* rejected at sync time.
|
|
832
|
+
*
|
|
833
|
+
* No-op when the server cannot read the directory (config-based fallback, or
|
|
834
|
+
* the directory does not expose the purge reader). Runs are serialized per
|
|
835
|
+
* tenant; concurrent callers share the in-flight promise.
|
|
836
|
+
*/
|
|
837
|
+
async executePendingPurges(tenantId) {
|
|
838
|
+
const normalizedId = tenantId.toLowerCase();
|
|
839
|
+
const existing = this.purgeInFlight.get(normalizedId);
|
|
840
|
+
if (existing)
|
|
841
|
+
return existing;
|
|
842
|
+
const run = this.executePendingPurgesInternal(normalizedId).finally(() => {
|
|
843
|
+
this.purgeInFlight.delete(normalizedId);
|
|
844
|
+
});
|
|
845
|
+
this.purgeInFlight.set(normalizedId, run);
|
|
846
|
+
return run;
|
|
847
|
+
}
|
|
848
|
+
async executePendingPurgesInternal(normalizedId) {
|
|
849
|
+
const tenant = await this.getTenant(normalizedId);
|
|
850
|
+
if (!tenant.mindooTenant) {
|
|
851
|
+
// Config-based fallback: the server holds no $publicinfos directory and
|
|
852
|
+
// cannot read purge requests. Clients still purge locally on reconcile.
|
|
853
|
+
return;
|
|
854
|
+
}
|
|
855
|
+
let directory;
|
|
856
|
+
try {
|
|
857
|
+
directory = await tenant.mindooTenant.openDirectory();
|
|
858
|
+
}
|
|
859
|
+
catch (error) {
|
|
860
|
+
console.error(`[TenantManager] executePendingPurges: cannot open directory for ${normalizedId}:`, error);
|
|
861
|
+
return;
|
|
862
|
+
}
|
|
863
|
+
if (typeof directory.getRequestedDocHistoryPurges !== "function") {
|
|
864
|
+
return;
|
|
865
|
+
}
|
|
866
|
+
let requests;
|
|
867
|
+
try {
|
|
868
|
+
requests = await directory.getRequestedDocHistoryPurges();
|
|
869
|
+
}
|
|
870
|
+
catch (error) {
|
|
871
|
+
console.error(`[TenantManager] executePendingPurges: cannot read purge requests for ${normalizedId}:`, error);
|
|
872
|
+
return;
|
|
873
|
+
}
|
|
874
|
+
if (requests.length === 0)
|
|
875
|
+
return;
|
|
876
|
+
const registry = this.getPurgedDocRegistry(normalizedId);
|
|
877
|
+
for (const request of requests) {
|
|
878
|
+
if (registry.isRequestProcessed(request.purgeRequestDocId)) {
|
|
879
|
+
continue;
|
|
880
|
+
}
|
|
881
|
+
if (typeof request.dbId !== "string" || request.dbId.length === 0) {
|
|
882
|
+
continue;
|
|
883
|
+
}
|
|
884
|
+
for (const docId of request.docIds) {
|
|
885
|
+
if (typeof docId !== "string" || docId.length === 0)
|
|
886
|
+
continue;
|
|
887
|
+
for (const storeKind of [types_1.StoreKind.docs, types_1.StoreKind.attachments]) {
|
|
888
|
+
try {
|
|
889
|
+
const store = await this.getStore(normalizedId, request.dbId, storeKind);
|
|
890
|
+
await store.purgeDocHistory(docId);
|
|
891
|
+
}
|
|
892
|
+
catch (error) {
|
|
893
|
+
console.error(`[TenantManager] executePendingPurges: failed to purge ${docId} in ${normalizedId}/${request.dbId}/${storeKind}:`, error);
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
// Record on the denylist regardless of per-store outcome so re-pushes of
|
|
897
|
+
// this docId are rejected even if one store had nothing to purge.
|
|
898
|
+
registry.recordPurgedDoc(request.dbId, docId);
|
|
899
|
+
}
|
|
900
|
+
registry.markRequestProcessed(request.purgeRequestDocId);
|
|
901
|
+
console.log(`[TenantManager] Executed purge request ${request.purgeRequestDocId} (${request.docIds.length} doc(s)) for ${normalizedId}/${request.dbId}`);
|
|
902
|
+
}
|
|
903
|
+
}
|
|
537
904
|
async getAuthService(tenantId) {
|
|
538
905
|
const tenant = await this.getTenant(tenantId);
|
|
539
906
|
return tenant.authService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenantManager.js","sourceRoot":"","sources":["../../../src/node/server/TenantManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TenantManager.js","sourceRoot":"","sources":["../../../src/node/server/TenantManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/node/server/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAEV,YAAY,EAEZ,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/node/server/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,KAAK,EAEV,YAAY,EAEZ,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAcvE;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,oBAAoB,GAC9B,OAAO,CAET;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAKhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,kBAAkB,CAAC,EAAE,MAAM,GAC1B,YAAY,CAmBd;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CA2CjF;AAoJD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CASvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAG1E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhE;AAcD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAaxE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAmBrF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GACnB,oBAAoB,EAAE,CAexB"}
|
|
@@ -28,7 +28,11 @@ function isTenantCreationCapabilityRule(ruleKey) {
|
|
|
28
28
|
}
|
|
29
29
|
const method = ruleKey.substring(0, colonIdx).toUpperCase();
|
|
30
30
|
const pathPattern = ruleKey.substring(colonIdx + 1);
|
|
31
|
-
|
|
31
|
+
// Segment-exact: tenant creation targets exactly one segment under
|
|
32
|
+
// `/system/tenants/` (the tenant id, which may itself be a `*` pattern). A
|
|
33
|
+
// prefix test would let a wildcard `*` principal be configured on an existing
|
|
34
|
+
// tenant's sub-resource (e.g. `.../sync-servers`), an over-grant (audit #6).
|
|
35
|
+
return method === "POST" && /^\/system\/tenants\/[^/]+\/?$/.test(pathPattern);
|
|
32
36
|
}
|
|
33
37
|
function isWildcardSystemAdminPrincipal(principal) {
|
|
34
38
|
return principal.username === "*" && principal.publicsignkey === "*";
|