mindoodb 0.0.88 → 0.0.90
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 +1 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +4 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +8 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/browser/index.mjs +17 -0
- package/dist/core/BaseMindooDB.d.ts +14 -0
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +42 -0
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +3 -0
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +28 -0
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +5 -0
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +29 -1
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/accesscontrol/directoryProjection.d.ts.map +1 -1
- package/dist/core/accesscontrol/directoryProjection.js +4 -0
- package/dist/core/accesscontrol/directoryProjection.js.map +1 -1
- package/dist/core/accesscontrol/types.d.ts +25 -3
- package/dist/core/accesscontrol/types.d.ts.map +1 -1
- package/dist/core/accesscontrol/types.js +27 -6
- package/dist/core/accesscontrol/types.js.map +1 -1
- package/dist/core/builtinDbInvariants.d.ts +5 -1
- package/dist/core/builtinDbInvariants.d.ts.map +1 -1
- package/dist/core/builtinDbInvariants.js +5 -1
- package/dist/core/builtinDbInvariants.js.map +1 -1
- package/dist/core/expressions/builder.d.ts +30 -0
- package/dist/core/expressions/builder.d.ts.map +1 -1
- package/dist/core/expressions/builder.js +42 -0
- package/dist/core/expressions/builder.js.map +1 -1
- package/dist/core/expressions/evaluateExpression.d.ts +10 -0
- package/dist/core/expressions/evaluateExpression.d.ts.map +1 -1
- package/dist/core/expressions/evaluateExpression.js +66 -1
- package/dist/core/expressions/evaluateExpression.js.map +1 -1
- package/dist/core/expressions/formulaSource.d.ts.map +1 -1
- package/dist/core/expressions/formulaSource.js +5 -0
- package/dist/core/expressions/formulaSource.js.map +1 -1
- package/dist/core/expressions/index.d.ts +1 -1
- package/dist/core/expressions/index.d.ts.map +1 -1
- package/dist/core/expressions/index.js +2 -1
- package/dist/core/expressions/index.js.map +1 -1
- package/dist/core/expressions/metadata.d.ts +2 -2
- package/dist/core/expressions/metadata.d.ts.map +1 -1
- package/dist/core/expressions/metadata.js +14 -0
- package/dist/core/expressions/metadata.js.map +1 -1
- package/dist/core/expressions/types.d.ts +1 -1
- package/dist/core/expressions/types.d.ts.map +1 -1
- package/dist/core/filing/FilingIndex.d.ts +209 -0
- package/dist/core/filing/FilingIndex.d.ts.map +1 -0
- package/dist/core/filing/FilingIndex.js +689 -0
- package/dist/core/filing/FilingIndex.js.map +1 -0
- package/dist/core/filing/MindooFilingStore.d.ts +200 -0
- package/dist/core/filing/MindooFilingStore.d.ts.map +1 -0
- package/dist/core/filing/MindooFilingStore.js +515 -0
- package/dist/core/filing/MindooFilingStore.js.map +1 -0
- package/dist/core/filing/index.d.ts +4 -0
- package/dist/core/filing/index.d.ts.map +1 -0
- package/dist/core/filing/index.js +22 -0
- package/dist/core/filing/index.js.map +1 -0
- package/dist/core/filing/refs.d.ts +56 -0
- package/dist/core/filing/refs.d.ts.map +1 -0
- package/dist/core/filing/refs.js +109 -0
- package/dist/core/filing/refs.js.map +1 -0
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -5
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/createViewDataProvider.d.ts +6 -0
- package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/createViewDataProvider.js +26 -1
- package/dist/core/indexing/createViewDataProvider.js.map +1 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts +43 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts.map +1 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.js +302 -2
- package/dist/core/indexing/summary/DocumentSummaryStore.js.map +1 -1
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts +33 -2
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +129 -26
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/summary/types.d.ts +40 -0
- package/dist/core/indexing/summary/types.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +27 -2
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +106 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +70 -5
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.js +329 -28
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +4 -22
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +175 -129
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +28 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js +62 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.d.ts +75 -0
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.js +163 -0
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.d.ts +112 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.js +296 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts +2 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js +10 -9
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js.map +1 -1
- package/dist/core/indexing/virtualviews/index.d.ts +2 -0
- package/dist/core/indexing/virtualviews/index.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/index.js +8 -1
- package/dist/core/indexing/virtualviews/index.js.map +1 -1
- package/dist/core/query/executeQuery.d.ts.map +1 -1
- package/dist/core/query/executeQuery.js +4 -0
- package/dist/core/query/executeQuery.js.map +1 -1
- package/dist/core/query/executeQueryInclude.d.ts.map +1 -1
- package/dist/core/query/executeQueryInclude.js +4 -0
- package/dist/core/query/executeQueryInclude.js.map +1 -1
- package/dist/core/query/queryView.d.ts.map +1 -1
- package/dist/core/query/queryView.js +4 -0
- package/dist/core/query/queryView.js.map +1 -1
- package/dist/core/types.d.ts +20 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/server/TenantManager.d.ts.map +1 -1
- package/dist/server/TenantManager.js +1 -1
- package/dist/server/TenantManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -1444,24 +1444,52 @@ class BaseMindooTenantDirectory {
|
|
|
1444
1444
|
* that grant and by the tenant admin; it may be deposited into by
|
|
1445
1445
|
* identities whose grant lists the prefix in `depositPrefixes`; nobody
|
|
1446
1446
|
* else gets anything. An unknown grant id leaves everyone but the admin out.
|
|
1447
|
+
* `mbusy_` (free/busy) is the exception: other members read it read-only
|
|
1448
|
+
* (`readOnly`, pushes refused) under the tenant's `freeBusy` setting, and
|
|
1449
|
+
* the tenant admin reads it read-only as well (whatever `freeBusy` says).
|
|
1447
1450
|
*/
|
|
1448
1451
|
async evaluatePersonalDatabaseAccess(input) {
|
|
1449
1452
|
const head = await this.getDirectoryStateHead();
|
|
1450
1453
|
const owner = (0, builtinDbInvariants_1.personalDatabaseOwner)(input.dbid, head.defaultPolicy?.personalDatabasePrefixes ?? []);
|
|
1451
1454
|
if (!owner)
|
|
1452
1455
|
return null;
|
|
1453
|
-
|
|
1456
|
+
const isAdmin = (0, DirectoryStateNode_1.signingKeysEqual)(input.signingKey, this.tenant.getAdministrationPublicKey());
|
|
1457
|
+
if (isAdmin && owner.prefix !== "mbusy_") {
|
|
1454
1458
|
return { mode: "read", reason: "tenant admin" };
|
|
1455
1459
|
}
|
|
1456
1460
|
const grant = await this.loadGrantDocument(owner.grantDocId);
|
|
1457
1461
|
if (grant && (0, grantKeys_1.extractActiveKeyPairs)(grant).some((pair) => (0, DirectoryStateNode_1.signingKeysEqual)(pair.signingPublicKey, input.signingKey))) {
|
|
1458
1462
|
return { mode: "read", reason: "a device of the owner" };
|
|
1459
1463
|
}
|
|
1464
|
+
// Free/busy (§6.11): the tenant admin reads every person's busy times but,
|
|
1465
|
+
// like every other member, does not write them (unless the admin key is a
|
|
1466
|
+
// device of the owner, checked above).
|
|
1467
|
+
if (isAdmin) {
|
|
1468
|
+
return { mode: "read", readOnly: true, reason: "tenant admin (free/busy, read-only)" };
|
|
1469
|
+
}
|
|
1460
1470
|
const signerGrants = await this.grantsForSigningKey(input.signingKey);
|
|
1461
1471
|
const listed = (grant, field) => Array.isArray(grant[field]) && grant[field].includes(owner.prefix);
|
|
1462
1472
|
if (signerGrants.some((grant) => listed(grant, "accessPrefixes"))) {
|
|
1463
1473
|
return { mode: "read", reason: `service access to ${owner.prefix}* granted` };
|
|
1464
1474
|
}
|
|
1475
|
+
// Free/busy (§6.11): other members read the owner's busy times, read-only,
|
|
1476
|
+
// under the tenant's `freeBusy` setting. Nobody but the owner writes.
|
|
1477
|
+
if (owner.prefix === "mbusy_" && grant && signerGrants.length > 0) {
|
|
1478
|
+
const mode = head.defaultPolicy?.freeBusy ?? "members";
|
|
1479
|
+
let allowed = mode === "members";
|
|
1480
|
+
if (mode === "rules") {
|
|
1481
|
+
const decision = await this.evaluateAccessForSigningKey({
|
|
1482
|
+
op: "doc_read",
|
|
1483
|
+
dbid: input.dbid,
|
|
1484
|
+
signingKey: input.signingKey,
|
|
1485
|
+
trustedTime: Number.MAX_SAFE_INTEGER,
|
|
1486
|
+
});
|
|
1487
|
+
allowed = decision.allowed && decision.matchedRuleId !== undefined;
|
|
1488
|
+
}
|
|
1489
|
+
if (allowed)
|
|
1490
|
+
return { mode: "read", readOnly: true, reason: `free/busy (${mode})` };
|
|
1491
|
+
return { mode: "none", reason: `free/busy of another person (${mode})` };
|
|
1492
|
+
}
|
|
1465
1493
|
const depositors = signerGrants.filter((grant) => listed(grant, "depositPrefixes"));
|
|
1466
1494
|
if (depositors.length > 0) {
|
|
1467
1495
|
// Document ids a deposit may use: the grant's `depositDocIdPrefixes`
|