mindoodb 0.0.66 → 0.0.67
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 +77 -16
- package/README.md +41 -58
- package/dist/appendonlystores/network/HttpTransport.d.ts +2 -0
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +31 -6
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +18 -8
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +30 -16
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/browser/index.mjs +29 -0
- package/dist/core/BaseMindooDB.d.ts +129 -8
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +631 -60
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/appendonlystores/network/IrohNetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/IrohNetworkTransport.js +5 -1
- package/dist/core/appendonlystores/network/IrohNetworkTransport.js.map +1 -1
- package/dist/core/appendonlystores/network/IrohStreamIO.d.ts +10 -0
- package/dist/core/appendonlystores/network/IrohStreamIO.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/IrohStreamIO.js.map +1 -1
- package/dist/core/appendonlystores/network/types.d.ts +20 -0
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.js +33 -0
- package/dist/core/appendonlystores/network/types.js.map +1 -1
- package/dist/core/appendonlystores/syncStores.d.ts +80 -2
- package/dist/core/appendonlystores/syncStores.d.ts.map +1 -1
- package/dist/core/appendonlystores/syncStores.js +82 -9
- package/dist/core/appendonlystores/syncStores.js.map +1 -1
- package/dist/core/appendonlystores/types.d.ts +88 -6
- package/dist/core/appendonlystores/types.d.ts.map +1 -1
- package/dist/core/appendonlystores/types.js +61 -1
- package/dist/core/appendonlystores/types.js.map +1 -1
- package/dist/core/builtinDbInvariants.d.ts +8 -5
- package/dist/core/builtinDbInvariants.d.ts.map +1 -1
- package/dist/core/builtinDbInvariants.js +8 -5
- package/dist/core/builtinDbInvariants.js.map +1 -1
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +45 -11
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts +26 -3
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts.map +1 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.js +100 -15
- package/dist/core/indexing/summary/DocumentSummaryStore.js.map +1 -1
- package/dist/core/quarantine/QuarantineDocument.d.ts +211 -0
- package/dist/core/quarantine/QuarantineDocument.d.ts.map +1 -0
- package/dist/core/quarantine/QuarantineDocument.js +314 -0
- package/dist/core/quarantine/QuarantineDocument.js.map +1 -0
- package/dist/core/quarantine/QuarantineView.d.ts +90 -0
- package/dist/core/quarantine/QuarantineView.d.ts.map +1 -0
- package/dist/core/quarantine/QuarantineView.js +106 -0
- package/dist/core/quarantine/QuarantineView.js.map +1 -0
- package/dist/core/quarantine/recordPushRejections.d.ts +73 -0
- package/dist/core/quarantine/recordPushRejections.d.ts.map +1 -0
- package/dist/core/quarantine/recordPushRejections.js +112 -0
- package/dist/core/quarantine/recordPushRejections.js.map +1 -0
- package/dist/core/quarantine/resubmitQuarantined.d.ts +81 -0
- package/dist/core/quarantine/resubmitQuarantined.d.ts.map +1 -0
- package/dist/core/quarantine/resubmitQuarantined.js +120 -0
- package/dist/core/quarantine/resubmitQuarantined.js.map +1 -0
- package/dist/core/types.d.ts +132 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/values.d.ts +72 -0
- package/dist/core/values.d.ts.map +1 -0
- package/dist/core/values.js +107 -0
- package/dist/core/values.js.map +1 -0
- package/dist/node/server/MindooDBServer.d.ts.map +1 -1
- package/dist/node/server/MindooDBServer.js +6 -1
- package/dist/node/server/MindooDBServer.js.map +1 -1
- package/dist/node/server/peer/PeerReplicator.d.ts.map +1 -1
- package/dist/node/server/peer/PeerReplicator.js +35 -15
- package/dist/node/server/peer/PeerReplicator.js.map +1 -1
- package/package.json +1 -1
package/README-server.md
CHANGED
|
@@ -48,7 +48,7 @@ bash serversetup.sh --update
|
|
|
48
48
|
docker compose up -d --build
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
`bash serversetup.sh --update` preserves the existing `server.identity.json`, `server.keybag`, `config.json`, tenant data, `trusted-servers.json`, and `.server_unlock`, while still rebuilding the Docker image (including `@number0/iroh`) and regenerating `docker-compose.override.yml`. Before the override is rewritten, the script now saves the previous file as `docker-compose.override.<timestamp>.yml`. Existing `config.json` files are not patched — add `"iroh": { "enabled": true, "secretKeyPath": "iroh-secret.key" }` yourself if you want the rebuilt image to join the Iroh network.
|
|
51
|
+
`bash serversetup.sh --update` preserves the existing `server.identity.json`, `server.keybag`, `config.json`, tenant data, `trusted-servers.json`, and `.server_unlock`, while still rebuilding the Docker image (including `@number0/iroh`) and regenerating `docker-compose.override.yml`. Before the override is rewritten, the script now saves the previous file as `docker-compose.override.<timestamp>.yml`. Existing `config.json` files are not patched — add `"iroh": { "enabled": true, "secretKeyPath": "iroh-secret.key" }` yourself if you want the rebuilt image to join the Iroh network, as described in [Reaching the server over Iroh](#reaching-the-server-over-iroh).
|
|
52
52
|
|
|
53
53
|
The setup and update flows now prompt for a separate `Host port`. This lets you keep MindooDB listening on its internal container port `1661` while publishing a different host port such as `80`.
|
|
54
54
|
|
|
@@ -400,6 +400,78 @@ A system admin with `DELETE:/system/tenants/*` or `ALL:/system/*` can still dele
|
|
|
400
400
|
|
|
401
401
|
For key rotation, adding/removing admins, and the full authentication flow (challenge/response, JWT lifecycle), see [Server Security](docs/server-security.md).
|
|
402
402
|
|
|
403
|
+
## Reaching the server over Iroh
|
|
404
|
+
|
|
405
|
+
Most of the machines people actually want to run this on are not in a data centre. They sit in a practice, an office, or a cupboard at home — behind a router that does NAT, on a connection whose public address changes every few days. Publishing such a server the usual way means DynDNS, a port forward, and a TLS certificate for a hostname you only half control.
|
|
406
|
+
|
|
407
|
+
[Iroh](https://www.iroh.computer/) is the alternative. It is a QUIC-based peer protocol in which endpoints identify each other by public key rather than by DNS name. Two endpoints hole-punch a direct path when the networks allow it and fall back through public relays when they do not. Payloads stay end-to-end encrypted either way — a relay forwards packets and holds no key.
|
|
408
|
+
|
|
409
|
+
For MindooDB, Iroh is an alternative `NetworkTransport`, not a second protocol: the same sync RPCs, the same challenge/response and JWT, the same encrypted entries, the same access rules. HTTP remains the default and is still what you want whenever the server *does* have a public URL. Transport reference: [docs/iroh.md](docs/iroh.md).
|
|
410
|
+
|
|
411
|
+
### It is off by default
|
|
412
|
+
|
|
413
|
+
A fresh `serversetup.sh` writes the block into `config.json` with `"enabled": false`. The Docker image already contains the native `@number0/iroh` package, so nothing has to be installed on the host — but the server does not join the Iroh network until you turn it on, and `serversetup.sh --update` never rewrites an existing `config.json`.
|
|
414
|
+
|
|
415
|
+
### Enabling it
|
|
416
|
+
|
|
417
|
+
Edit `config.json` in the server data directory, then restart:
|
|
418
|
+
|
|
419
|
+
```json
|
|
420
|
+
{
|
|
421
|
+
"capabilities": {
|
|
422
|
+
"ALL:/system/*": [
|
|
423
|
+
{
|
|
424
|
+
"username": "cn=sysadmin/o=myorg",
|
|
425
|
+
"publicsignkey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
|
|
426
|
+
}
|
|
427
|
+
]
|
|
428
|
+
},
|
|
429
|
+
"iroh": {
|
|
430
|
+
"enabled": true,
|
|
431
|
+
"secretKeyPath": "iroh-secret.key"
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
docker compose restart
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
`secretKeyPath` is relative to the data directory and the file is created on first start. It holds the server's long-term Iroh identity, so back it up with the rest of the data directory: replacing it changes the endpoint id, and every client that stored the old one has to be repointed.
|
|
441
|
+
|
|
442
|
+
On start the server joins the network, waits until it has a home relay, and logs its endpoint id and a ticket. Listen is asynchronous, so these lines appear shortly after `Listening on 0.0.0.0:1661`:
|
|
443
|
+
|
|
444
|
+
```
|
|
445
|
+
[Iroh] Listening on ALPN mindoodb/sync-v5
|
|
446
|
+
[Iroh] Endpoint id: 1b5fb57653d25ae7b0ef8a30fe8b3f4bf9b60283cc3afe1d38f0ff9a8412dc0b
|
|
447
|
+
[Iroh] Ticket: endpointaanv7nlwkpjfvz5q56fdb7ulh5f7tnqcqpgdv7q5hdyp7guecloawayaenuhi5dqom5c6l3fovrtcljrfzzgk3dbpexg4mbonfzg62bonruw42zof4aqalxbs5x6thicaeakyeqaaluz2aq
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### What to enter in the Haven client
|
|
451
|
+
|
|
452
|
+
Take the **`Ticket:` line and prefix it with `iroh:`**. That string goes into the **Base URL** field of Haven's **Push to server** dialog — and equally into **Add existing location** and **Join tenant**:
|
|
453
|
+
|
|
454
|
+
```
|
|
455
|
+
iroh:endpointaanv7nlwkpjfvz5q56fdb7ulh5f7tnqcqpgdv7q5hdyp7gue...
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
The raw `endpoint...` ticket without the `iroh:` prefix is accepted too. What does **not** work as a pairing value is the bare `Endpoint id:` line — `iroh:<64-hex>` is the stable label Haven keeps internally, but a first dial needs the full ticket, which is what carries the current relay and socket addresses.
|
|
459
|
+
|
|
460
|
+
A ticket can go stale after the server changes its IP or its home relay. If an existing connection stops working, copy a fresh ticket out of the log and paste it again.
|
|
461
|
+
|
|
462
|
+
A Node CLI or service uses the same ticket through `createNodeIrohStreamIO` from `mindoodb/iroh/node` — see [docs/iroh.md](docs/iroh.md#node-cli).
|
|
463
|
+
|
|
464
|
+
### Notes before you rely on it
|
|
465
|
+
|
|
466
|
+
- **Iroh replaces the address, not the security.** Clients still sign a challenge, the server still stores ciphertext, and the capability rules in `config.json` apply exactly as they do over HTTP. A ticket is neither a secret nor a credential.
|
|
467
|
+
- **Cluster admin stays on HTTP.** Tenant publication and the auth handshake are answered over Iroh; `/system/cluster/*` and `add-to-network` are HTTP only.
|
|
468
|
+
- **Server-to-server mirroring works over Iroh too.** Put `iroh:<ticket>` in `trusted-servers.json` as the peer's `url` — see [Walkthrough: Multi-Server Setup](#walkthrough-multi-server-setup).
|
|
469
|
+
- **Relays are shared by default.** Endpoints use the free public n0 relays: rate-limited, no SLA, fine for development. Production deployments should use dedicated or self-hosted relays ([iroh.computer/pricing](https://www.iroh.computer/pricing)).
|
|
470
|
+
- **Browsers are relay-only.** A page cannot open raw UDP sockets, so Haven never hole-punches; every byte travels through a relay. Native clients try a direct path first.
|
|
471
|
+
- **Health checks stay on HTTP.** `curl http://localhost:1661/health` is still how you verify the process, from the LAN or on the box itself.
|
|
472
|
+
|
|
473
|
+
Live tests against real relays: `MINDOODB_IROH_LIVE=1 pnpm test:iroh` in this repo, and `pnpm test:e2e:iroh` in Haven.
|
|
474
|
+
|
|
403
475
|
## Walkthrough: Multi-Server Setup
|
|
404
476
|
|
|
405
477
|
MindooDB servers can mirror encrypted data between each other. This section covers the full workflow: initializing servers, establishing trust, seeding a tenant onto a second server, and running the mesh.
|
|
@@ -621,21 +693,10 @@ Controls which system admins can call which `/system/*` endpoints. See [How `con
|
|
|
621
693
|
}
|
|
622
694
|
```
|
|
623
695
|
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
When `"enabled": true` the process joins the Iroh network with ALPN
|
|
630
|
-
`mindoodb/sync-v5`, waits until the endpoint is online (home relay), and
|
|
631
|
-
logs a ticket. The secret key is created at
|
|
632
|
-
`iroh-secret.key` in the data directory on first start. Haven pastes
|
|
633
|
-
`iroh:<ticket>` into the server URL field. A Node CLI uses the same ticket
|
|
634
|
-
via `createNodeIrohStreamIO` from `mindoodb/iroh/node` — see
|
|
635
|
-
[docs/iroh.md](docs/iroh.md).
|
|
636
|
-
|
|
637
|
-
Live tests (real relays): `MINDOODB_IROH_LIVE=1 pnpm test:iroh` in this
|
|
638
|
-
repo, and `pnpm test:e2e:iroh` in Haven.
|
|
696
|
+
The same file carries the optional `iroh` block, which lets clients reach this
|
|
697
|
+
server without a public URL. It is off by default; how to enable it and what to
|
|
698
|
+
paste into a Haven client is in
|
|
699
|
+
[Reaching the server over Iroh](#reaching-the-server-over-iroh).
|
|
639
700
|
|
|
640
701
|
```json
|
|
641
702
|
{
|
package/README.md
CHANGED
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
**Sleep well, even if your hosting service gets hacked.** 🔒
|
|
4
4
|
|
|
5
5
|
MindooDB is an **end-to-end encrypted, local-first sync database**.
|
|
6
|
-
|
|
6
|
+
Apps collaborate and sync data without ever giving a server access to the contents.
|
|
7
7
|
|
|
8
|
-
Even
|
|
9
|
-
|
|
10
|
-
Your data is encrypted on the client before it ever touches a server. No plaintext. No server-side keys. No trust required.
|
|
8
|
+
Data is encrypted on the client before it leaves the device. Even someone with full access to your infrastructure — database dumps, backups, logs — gets nothing but ciphertext. No plaintext on the server, no server-side keys, no trust required.
|
|
11
9
|
|
|
12
10
|
> ⚠️ **Beta software**: This project is in early development and not yet recommended for production use. APIs may change without notice.
|
|
13
11
|
|
|
@@ -17,37 +15,33 @@ Use AI to explore this repository:
|
|
|
17
15
|
|
|
18
16
|
## The Problem
|
|
19
17
|
|
|
20
|
-
Traditional databases trust the server. If your hosting provider is compromised, your data is exposed. Even "encrypted at rest" solutions decrypt data server
|
|
18
|
+
Traditional databases trust the server. If your hosting provider is compromised, your data is exposed. Even "encrypted at rest" solutions decrypt data on the server to answer queries. **MindooDB takes a different approach**: encryption keys never leave your clients, and all querying happens on the client.
|
|
21
19
|
|
|
22
20
|
## How It Works
|
|
23
21
|
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
│ │ Encrypted Blobs (unreadable) │ │
|
|
43
|
-
│ │ 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 🔒 │ │
|
|
44
|
-
│ └─────────────────────────────────────────────────────────┘ │
|
|
45
|
-
│ │
|
|
46
|
-
│ Server can sync & store data, but CANNOT read it │
|
|
47
|
-
└──────────────────────────────────────────────────────────────────┘
|
|
22
|
+
```mermaid
|
|
23
|
+
flowchart TB
|
|
24
|
+
subgraph clients["Your Clients: keys stay on devices"]
|
|
25
|
+
direction LR
|
|
26
|
+
A["Alice's Device<br/>🔑 private keys<br/>🔒 local encrypted store"]
|
|
27
|
+
B["Bob's Device<br/>🔑 private keys<br/>🔒 local encrypted store"]
|
|
28
|
+
C["Charlie's Device<br/>🔑 private keys<br/>🔒 local encrypted store"]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
subgraph server["Server (or P2P Peers): can sync & store data, but CANNOT read it"]
|
|
32
|
+
S[("🔒 Encrypted Blobs<br/>(same entries, unreadable)")]
|
|
33
|
+
D[("📇 Directory DB<br/>public keys, admin-signed grants")]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
A <-- "sync missing entries" --> S
|
|
37
|
+
B <-- "sync missing entries" --> S
|
|
38
|
+
C <-- "sync missing entries" --> S
|
|
39
|
+
clients <-. "public keys synced like any other data" .-> D
|
|
48
40
|
```
|
|
49
41
|
|
|
50
|
-
**Sync happens through content-addressed stores**:
|
|
42
|
+
Every device keeps its own local, encrypted copy of the data it syncs, so reading, writing, and querying work offline. **Sync happens through content-addressed stores**: two sides compare what they have and exchange only the encrypted entries they're missing. This works peer-to-peer, client-server, or any mix of the two, for documents and attachments alike.
|
|
43
|
+
|
|
44
|
+
Public keys are not secret and travel the same way: users and their devices are registered in the tenant's **directory database** through admin-signed grant documents, which every member syncs like any other database. That is how any client can check who signed a change, and how keys are handed to new members without a central key server.
|
|
51
45
|
|
|
52
46
|
## Key Features
|
|
53
47
|
|
|
@@ -56,9 +50,9 @@ Traditional databases trust the server. If your hosting provider is compromised,
|
|
|
56
50
|
| 🛡️ **End-to-End Encrypted** | Data encrypted on client before sync. Servers can't decrypt. |
|
|
57
51
|
| 📴 **Local-First** | Create and edit documents without network. Sync when online. |
|
|
58
52
|
| ✍️ **Signed Changes** | Every change is digitally signed. Proves authorship, prevents tampering. |
|
|
59
|
-
| 🔗 **Tamperproof History** | Append-only
|
|
60
|
-
| 🤝 **
|
|
61
|
-
| 🔑 **Fine-grained Access** | Named encryption keys for sensitive documents
|
|
53
|
+
| 🔗 **Tamperproof History** | Append-only and hash-chained, so any tampering is detectable. |
|
|
54
|
+
| 🤝 **Collaboration** | Built on [Automerge](https://automerge.org/) CRDTs. Concurrent edits merge automatically. |
|
|
55
|
+
| 🔑 **Fine-grained Access** | Named encryption keys for sensitive documents, shared only with the users you choose. |
|
|
62
56
|
| 🔎 **Full-Text Search & OCR** | Built-in encrypted full-text index. The Haven client extracts text from PDF/Office files and OCRs images. |
|
|
63
57
|
|
|
64
58
|
## MindooDB Haven — the graphical client
|
|
@@ -167,16 +161,16 @@ await aliceDB.pullChangesFrom(bobDB.getStore());
|
|
|
167
161
|
## Core Concepts
|
|
168
162
|
|
|
169
163
|
### Tenants
|
|
170
|
-
An organization or team that shares access. Created client
|
|
171
|
-
- Has a **default encryption key**
|
|
172
|
-
- Has an **admin key**
|
|
173
|
-
- Contains
|
|
164
|
+
An organization or team that shares access. Created on the client, with no server registration needed.
|
|
165
|
+
- Has a **default encryption key** shared with all members
|
|
166
|
+
- Has an **admin key** for registering and revoking users
|
|
167
|
+
- Contains any number of databases
|
|
174
168
|
|
|
175
169
|
### Users
|
|
176
|
-
Identified by cryptographic key pairs
|
|
177
|
-
- **Signing key** (Ed25519):
|
|
178
|
-
- **Encryption key** (RSA-OAEP):
|
|
179
|
-
- Keys generated
|
|
170
|
+
Identified by cryptographic key pairs and registered by an admin:
|
|
171
|
+
- **Signing key** (Ed25519): proves authorship of every change
|
|
172
|
+
- **Encryption key** (RSA-OAEP): lets other members wrap symmetric keys for this user's devices
|
|
173
|
+
- Keys are generated on the device; only the public halves are handed to the admin, who records them in the directory. See [User Keys](./docs/userkeys.md).
|
|
180
174
|
|
|
181
175
|
### Databases
|
|
182
176
|
Each tenant can have multiple databases, created on-demand:
|
|
@@ -184,7 +178,7 @@ Each tenant can have multiple databases, created on-demand:
|
|
|
184
178
|
const contacts = await tenant.openDB("contacts");
|
|
185
179
|
const invoices = await tenant.openDB("invoices");
|
|
186
180
|
```
|
|
187
|
-
A special **directory** database
|
|
181
|
+
A special **directory** database holds user registrations, public keys, key distributions, and access policies. Only admins can write to it; every member syncs it.
|
|
188
182
|
|
|
189
183
|
Databases that outgrow their store can be split. `copyDocumentsTo()` moves whole
|
|
190
184
|
document histories into a new database with every original signature still
|
|
@@ -278,17 +272,6 @@ A built-in, **client-side full-text index** (`DocumentFullTextIndex`, powered by
|
|
|
278
272
|
|
|
279
273
|
See: [Full-Text Search](./docs/fulltext-search.md)
|
|
280
274
|
|
|
281
|
-
### Encryption Model
|
|
282
|
-
|
|
283
|
-
All encryption keys are stored in the **KeyBag**—a local, password-protected key store.
|
|
284
|
-
|
|
285
|
-
| Key Type | Purpose | Who Has It |
|
|
286
|
-
|----------|---------|------------|
|
|
287
|
-
| **`default` key** | Used when no other key is specified | All tenant members |
|
|
288
|
-
| **Named keys** | Fine-grained access for sensitive docs | Only users you share it with |
|
|
289
|
-
|
|
290
|
-
Keys are distributed offline (e.g. password protected via email or a shared drive). The `default` key is typically shared during onboarding; named keys are shared as needed for specific documents.
|
|
291
|
-
|
|
292
275
|
## Security
|
|
293
276
|
|
|
294
277
|
### Cryptographic Guarantees
|
|
@@ -298,15 +281,15 @@ Keys are distributed offline (e.g. password protected via email or a shared driv
|
|
|
298
281
|
- **Trusted time**: when a sync server accepts an entry it signs a **witness receipt** attesting *when* it was accepted - a clock no client can rewind
|
|
299
282
|
|
|
300
283
|
### Encryption-based Access Control
|
|
301
|
-
Read access is governed by **key possession**, not server-side permissions. If you hold the key you can decrypt; if you don't, the document stays ciphertext wherever it travels (server, peer, or relay)
|
|
284
|
+
Read access is governed by **key possession**, not server-side permissions. If you hold the key you can decrypt; if you don't, the document stays ciphertext wherever it travels (server, peer, or relay). Each device keeps its keys in the **KeyBag**, a local, password-protected key store.
|
|
302
285
|
|
|
303
286
|
| Key | Scope |
|
|
304
287
|
|-----|-------|
|
|
305
|
-
| **`default` key** | Tenant-wide data;
|
|
288
|
+
| **`default` key** | Tenant-wide data; every member receives it during onboarding |
|
|
306
289
|
| **Named keys** | Need-to-know documents; shared only with the users you choose |
|
|
307
290
|
| **`$publicinfos` key** | Encrypts directory access-control metadata so servers can validate signing keys without seeing usernames or business data |
|
|
308
291
|
|
|
309
|
-
Rotating a named key is the cryptographic cutoff for read access:
|
|
292
|
+
Keys are distributed through the directory: an admin publishes a signed key distribution that wraps the key to each recipient's public encryption key, and the recipient's devices import it on their next sync. Rotating a named key is the cryptographic cutoff for read access: new data is encrypted under the new key, which is withheld from anyone who should no longer see it.
|
|
310
293
|
|
|
311
294
|
### Write Governance (opt-in)
|
|
312
295
|
On top of the encryption model, MindooDB adds fine-grained, **admin-signed** control over write operations (`doc_create`, `doc_change`, `doc_delete`, `doc_undelete`, `doc_snapshot`). Policies, rules, groups, and grants are append-only documents in the directory database that every participant already syncs:
|
|
@@ -404,14 +387,14 @@ pnpm test:all
|
|
|
404
387
|
### Current parity status
|
|
405
388
|
|
|
406
389
|
- The package exports and core API shape are aligned across Node.js, browser, and React Native entrypoints.
|
|
407
|
-
- Node and browser
|
|
390
|
+
- Node and browser tests both run from the command line against real runtimes.
|
|
408
391
|
- React Native coverage is currently adapter-focused in Jest and does not yet validate full app-level behavior inside a real React Native runtime.
|
|
409
392
|
- For high confidence in three-environment parity, add a React Native integration lane (Expo/Detox or RN test app) that exercises document lifecycle, sync, and virtual view updates on device/simulator.
|
|
410
393
|
- For Expo Go / JS fallback scenarios, PBKDF2 iterations can be tuned at runtime; native RN builds should keep strong defaults.
|
|
411
394
|
|
|
412
395
|
## Support
|
|
413
396
|
|
|
414
|
-
Need commercial support, have
|
|
397
|
+
Need commercial support, have a question, or want to request a feature? We're happy to help.
|
|
415
398
|
|
|
416
399
|
- 🐛 **Bug Reports**: [Open an issue on GitHub](https://github.com/klehmann/mindoodb/issues)
|
|
417
400
|
- 💬 **Questions & Discussions**: [GitHub Discussions](https://github.com/klehmann/mindoodb/discussions)
|
|
@@ -173,6 +173,8 @@ export declare class HttpTransport implements NetworkTransport {
|
|
|
173
173
|
* {@link PutEntriesAck}. Older servers omit `receipts` and/or `rejected`.
|
|
174
174
|
*/
|
|
175
175
|
private parsePutEntriesAck;
|
|
176
|
+
/** Validate a server-supplied rejection class against the known set. */
|
|
177
|
+
private parseRejectionClass;
|
|
176
178
|
private postSerializedEntries;
|
|
177
179
|
private measureBodyBytes;
|
|
178
180
|
private uint8ArrayToBase64;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/HttpTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,gCAAgC,EAChC,2BAA2B,EAC3B,0BAA0B,EAC1B,aAAa,
|
|
1
|
+
{"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/HttpTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -688,10 +688,15 @@ class HttpTransport {
|
|
|
688
688
|
throw new types_2.NetworkError(types_2.NetworkErrorType.SERVER_ERROR, "Sync cancelled");
|
|
689
689
|
}
|
|
690
690
|
lastError = error;
|
|
691
|
-
// Don't retry
|
|
691
|
+
// Don't retry a decision the server will reach again. Repeating it
|
|
692
|
+
// costs the caller the retry delay and, worse, loses the type: after
|
|
693
|
+
// the last attempt this method throws a generic NETWORK_ERROR, so an
|
|
694
|
+
// answer as specific as "this write is not allowed" would arrive
|
|
695
|
+
// looking like a broken connection.
|
|
692
696
|
if (error instanceof types_2.NetworkError) {
|
|
693
697
|
if (error.type === types_2.NetworkErrorType.INVALID_TOKEN ||
|
|
694
698
|
error.type === types_2.NetworkErrorType.USER_REVOKED ||
|
|
699
|
+
error.type === types_2.NetworkErrorType.ACCESS_DENIED ||
|
|
695
700
|
error.type === types_2.NetworkErrorType.INVALID_SIGNATURE ||
|
|
696
701
|
error.type === types_2.NetworkErrorType.PAYLOAD_TOO_LARGE ||
|
|
697
702
|
error.type === types_2.NetworkErrorType.RATE_LIMITED) {
|
|
@@ -741,7 +746,12 @@ class HttpTransport {
|
|
|
741
746
|
case 401:
|
|
742
747
|
throw new types_2.NetworkError(types_2.NetworkErrorType.INVALID_TOKEN, errorData.error || "Unauthorized");
|
|
743
748
|
case 403:
|
|
744
|
-
|
|
749
|
+
// 403 covers both "this user is gone" and "this particular write
|
|
750
|
+
// is not allowed", and the two want different handling. Trust the
|
|
751
|
+
// server's own type when it sends one; a server predating the
|
|
752
|
+
// field could only have meant USER_REVOKED from this client's
|
|
753
|
+
// point of view, so that stays the fallback.
|
|
754
|
+
throw new types_2.NetworkError((0, types_2.parseNetworkErrorType)(errorData.type) ?? types_2.NetworkErrorType.USER_REVOKED, errorData.error || "Access denied");
|
|
745
755
|
case 404:
|
|
746
756
|
throw new types_2.NetworkError(types_2.NetworkErrorType.USER_NOT_FOUND, errorData.error || "Not found");
|
|
747
757
|
case 413:
|
|
@@ -1059,13 +1069,28 @@ class HttpTransport {
|
|
|
1059
1069
|
const rejected = Array.isArray(body.rejected)
|
|
1060
1070
|
? body.rejected
|
|
1061
1071
|
.filter((r) => typeof r?.id === "string")
|
|
1062
|
-
.map((r) =>
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1072
|
+
.map((r) => {
|
|
1073
|
+
// Omitted by servers predating the field; `rejectionClassOf` then
|
|
1074
|
+
// applies the "signature" default. An unknown string is dropped
|
|
1075
|
+
// rather than passed through, so a newer server cannot smuggle a
|
|
1076
|
+
// class this client has no handling for.
|
|
1077
|
+
const rejectionClass = this.parseRejectionClass(r.rejectionClass);
|
|
1078
|
+
return {
|
|
1079
|
+
id: r.id,
|
|
1080
|
+
reason: typeof r.reason === "string" ? r.reason : "rejected by remote",
|
|
1081
|
+
...(rejectionClass ? { rejectionClass } : {}),
|
|
1082
|
+
};
|
|
1083
|
+
})
|
|
1066
1084
|
: [];
|
|
1067
1085
|
return { receipts, rejected };
|
|
1068
1086
|
}
|
|
1087
|
+
/** Validate a server-supplied rejection class against the known set. */
|
|
1088
|
+
parseRejectionClass(value) {
|
|
1089
|
+
return typeof value === "string" &&
|
|
1090
|
+
types_1.PUT_REJECTION_CLASSES.includes(value)
|
|
1091
|
+
? value
|
|
1092
|
+
: undefined;
|
|
1093
|
+
}
|
|
1069
1094
|
async postSerializedEntries(token, serializedEntries) {
|
|
1070
1095
|
const response = await this.fetchWithRetry(`${this.getSyncBasePath()}/putEntries`, {
|
|
1071
1096
|
method: "POST",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpTransport.js","sourceRoot":"","sources":["../../../src/appendonlystores/network/HttpTransport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HttpTransport.js","sourceRoot":"","sources":["../../../src/appendonlystores/network/HttpTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -351,13 +351,16 @@ export declare class ServerNetworkContentAddressedStore {
|
|
|
351
351
|
/**
|
|
352
352
|
* Handle a putEntries request from a client.
|
|
353
353
|
*
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
354
|
+
* Refused entries are rejected PER ENTRY and reported in the returned ack,
|
|
355
|
+
* each carrying a {@link PutRejectionClass} that says why: one refused entry
|
|
356
|
+
* must not permanently block a database's push sync, and the pushing side
|
|
357
|
+
* needs to tell a corrupt entry (final) from a legitimate write whose right
|
|
358
|
+
* was withdrawn (keepable, and offerable again once the right returns).
|
|
359
|
+
*
|
|
360
|
+
* Two conditions still fail the whole request, because they are about the
|
|
361
|
+
* session rather than about an entry: a device targeted for remote wipe (here)
|
|
362
|
+
* and a database outside the tenant's allowed list (in
|
|
363
|
+
* {@link validateToken}).
|
|
361
364
|
*
|
|
362
365
|
* @param token The JWT access token
|
|
363
366
|
* @param entries The entries to store
|
|
@@ -389,7 +392,14 @@ export declare class ServerNetworkContentAddressedStore {
|
|
|
389
392
|
* transplanted from one database onto another.
|
|
390
393
|
*/
|
|
391
394
|
private verifyReplicatedReceipt;
|
|
392
|
-
/**
|
|
395
|
+
/**
|
|
396
|
+
* Record a per-entry rejection and log it.
|
|
397
|
+
*
|
|
398
|
+
* The class travels with the rejection because it decides what the pushing
|
|
399
|
+
* side may do with the entry: a `"signature"` failure is final, while a
|
|
400
|
+
* `"policy"` denial is a legitimate write that lost its right and can regain
|
|
401
|
+
* it (see {@link PutRejectionClass}).
|
|
402
|
+
*/
|
|
393
403
|
private rejectEntry;
|
|
394
404
|
/** Project a store entry to its metadata (including any witness fields). */
|
|
395
405
|
private toMetadata;
|