mindoodb 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README-server.md +34 -5
  2. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +9 -1
  3. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
  4. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +226 -130
  5. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
  6. package/dist/appendonlystores/network/HttpTransport.d.ts +12 -1
  7. package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
  8. package/dist/appendonlystores/network/HttpTransport.js +192 -10
  9. package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
  10. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +3 -1
  11. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
  12. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +26 -4
  13. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
  14. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +6 -3
  15. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -1
  16. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +79 -10
  17. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -1
  18. package/dist/core/BaseMindooDB.d.ts +5 -0
  19. package/dist/core/BaseMindooDB.d.ts.map +1 -1
  20. package/dist/core/BaseMindooDB.js +223 -108
  21. package/dist/core/BaseMindooDB.js.map +1 -1
  22. package/dist/core/BaseMindooTenant.d.ts +1 -0
  23. package/dist/core/BaseMindooTenant.d.ts.map +1 -1
  24. package/dist/core/BaseMindooTenant.js +69 -21
  25. package/dist/core/BaseMindooTenant.js.map +1 -1
  26. package/dist/core/MindooDBServerAdmin.d.ts +3 -0
  27. package/dist/core/MindooDBServerAdmin.d.ts.map +1 -1
  28. package/dist/core/MindooDBServerAdmin.js +57 -1
  29. package/dist/core/MindooDBServerAdmin.js.map +1 -1
  30. package/dist/core/appendonlystores/AttachmentReadPlanner.d.ts +22 -0
  31. package/dist/core/appendonlystores/AttachmentReadPlanner.d.ts.map +1 -0
  32. package/dist/core/appendonlystores/AttachmentReadPlanner.js +124 -0
  33. package/dist/core/appendonlystores/AttachmentReadPlanner.js.map +1 -0
  34. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +8 -4
  35. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
  36. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +22 -9
  37. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
  38. package/dist/core/appendonlystores/MaterializationPlanner.d.ts +35 -0
  39. package/dist/core/appendonlystores/MaterializationPlanner.d.ts.map +1 -1
  40. package/dist/core/appendonlystores/MaterializationPlanner.js +1 -0
  41. package/dist/core/appendonlystores/MaterializationPlanner.js.map +1 -1
  42. package/dist/core/appendonlystores/network/NetworkTransport.d.ts +19 -1
  43. package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
  44. package/dist/core/appendonlystores/network/types.d.ts +33 -0
  45. package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
  46. package/dist/core/appendonlystores/network/types.js +2 -0
  47. package/dist/core/appendonlystores/network/types.js.map +1 -1
  48. package/dist/core/appendonlystores/types.d.ts +91 -3
  49. package/dist/core/appendonlystores/types.d.ts.map +1 -1
  50. package/dist/core/types.d.ts +37 -2
  51. package/dist/core/types.d.ts.map +1 -1
  52. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +28 -7
  53. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
  54. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +115 -17
  55. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
  56. package/dist/node/server/MindooDBServer.d.ts +7 -0
  57. package/dist/node/server/MindooDBServer.d.ts.map +1 -1
  58. package/dist/node/server/MindooDBServer.js +232 -16
  59. package/dist/node/server/MindooDBServer.js.map +1 -1
  60. package/dist/node/server/TenantManager.d.ts +17 -2
  61. package/dist/node/server/TenantManager.d.ts.map +1 -1
  62. package/dist/node/server/TenantManager.js +142 -20
  63. package/dist/node/server/TenantManager.js.map +1 -1
  64. package/dist/node/server/types.d.ts +9 -4
  65. package/dist/node/server/types.d.ts.map +1 -1
  66. package/dist/node/server/types.js.map +1 -1
  67. package/package.json +2 -1
package/README-server.md CHANGED
@@ -16,7 +16,7 @@ A Node.js/Express server implementing the MindooDB sync API with:
16
16
 
17
17
  ## Quick Start
18
18
 
19
- The fastest way to get a server running is the interactive setup script. It prompts for a server name, password, data directory, and bind address, then builds the Docker image and initialises the server identity (including optional system admin creation):
19
+ The fastest way to get a server running is the interactive setup script. It prompts for the data directory first, detects whether this is a fresh setup or an existing deployment, and then asks only for the values needed for the chosen path (for example server name and password for fresh setup, or just bind settings for safe update). It then builds the Docker image and initialises the server identity when needed (including optional system admin creation):
20
20
 
21
21
  ```bash
22
22
  # 1. Clone and enter the repo
@@ -38,6 +38,18 @@ The setup script:
38
38
  - initialises the server identity and optionally creates a system admin keypair interactively
39
39
  - writes a `docker-compose.override.yml` with your current host uid/gid, bind mounts, and one or more published port bindings based on your chosen bind address
40
40
 
41
+ For an existing deployment, use one of these update paths instead of reinitialising blindly:
42
+
43
+ ```bash
44
+ # Safe interactive update for an existing server
45
+ bash serversetup.sh --update
46
+
47
+ # Or rebuild the image and restart without touching setup files
48
+ docker compose up -d --build
49
+ ```
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 and regenerating `docker-compose.override.yml`. Before the override is rewritten, the script now saves the previous file as `docker-compose.override.<timestamp>.yml`.
52
+
41
53
  After setup, manage the server with:
42
54
 
43
55
  ```bash
@@ -47,6 +59,14 @@ docker compose logs -f # follow logs
47
59
  docker compose up -d --build # rebuild image and restart
48
60
  ```
49
61
 
62
+ When rerunning `bash serversetup.sh` without `--update`, the script now detects an existing `server.identity.json` and offers three choices:
63
+
64
+ - safe update (preserve identity, keybag, config, tenant data, and password file)
65
+ - overwrite identity (destructive re-init)
66
+ - abort
67
+
68
+ Only choose overwrite if you intentionally want to replace the server identity and reinitialise the deployment.
69
+
50
70
  For identity utilities on a Docker-deployed server, use the wrapper script from the repository root:
51
71
 
52
72
  ```bash
@@ -626,7 +646,7 @@ Generated by `npm run server:init`. Contains a `PrivateUserId` with encrypted pr
626
646
  | `MINDOODB_SERVER_PASSWORD` | If `server.identity.json` exists and `MINDOODB_SERVER_PASSWORD_FILE` is unset | Password to decrypt server identity and per-tenant keybags |
627
647
  | `MINDOODB_SERVER_PASSWORD_FILE` | No | Path to a file whose contents are the server password (trimmed). If set, **used instead of** `MINDOODB_SERVER_PASSWORD`. Prefer for Docker: env only holds the path, not the secret. |
628
648
  | `MINDOODB_SYSTEM_ADMIN_PASSWORD` | No | For `server:add-to-network`: password for `--identity` (if not using `--password-file` or interactive prompt). May be visible in `ps` on shared hosts. |
629
- | `MINDOODB_CORS_ORIGIN` | No | Allowed CORS origin (e.g., `https://app.example.com`). If not set, CORS is disabled. |
649
+ | `MINDOODB_CORS_ORIGIN` | No | Allowed CORS origin or comma-separated allowlist (e.g., `https://app.example.com` or `http://localhost:4174,https://otherserver.com`). If not set, CORS is disabled. |
630
650
  | `MINDOODB_ADMIN_ALLOWED_IPS` | No | Optional comma-separated client IPs/CIDRs allowed to call **`/system/*`** (all system admin routes, including `/system/auth/*`). If unset or `*`, any source IP may reach `/system/*` (JWT + `config.json` capabilities still apply). Example: `127.0.0.1,::1,172.23.248.0/24,2001:db8::/32`. Behind a reverse proxy, configure Express `trust proxy` so `req.ip` is the real client. |
631
651
 
632
652
  > **Note:** The old `MINDOODB_ADMIN_API_KEY` variable has been removed. System admin **authorization** is enforced by `config.json` capabilities and JWTs. **`MINDOODB_ADMIN_ALLOWED_IPS`** is an optional **network** layer for `/system/*` only. See [Server Security](docs/server-security.md).
@@ -771,10 +791,12 @@ The **`curl`** examples in this document use **`$SYSTEM_ADMIN_JWT`** as a placeh
771
791
  | `POST` | `/:tenantId/sync/findNewEntries` | Find entries we don't have |
772
792
  | `POST` | `/:tenantId/sync/findNewEntriesForDoc` | Find entries for specific document |
773
793
  | `POST` | `/:tenantId/sync/getEntries` | Get specific entries |
794
+ | `POST` | `/:tenantId/sync/getEntryMetadata` | Get metadata for a single entry |
774
795
  | `POST` | `/:tenantId/sync/putEntries` | Push entries to server |
775
796
  | `POST` | `/:tenantId/sync/hasEntries` | Check which entry IDs exist |
776
797
  | `GET` | `/:tenantId/sync/getAllIds` | Get all entry IDs |
777
798
  | `POST` | `/:tenantId/sync/resolveDependencies` | Resolve dependency chain |
799
+ | `POST` | `/:tenantId/sync/planAttachmentReadByWalkingMetadata` | Build an attachment read plan on the server |
778
800
  | `POST` | `/:tenantId/sync/findEntries` | Find entries by type/date |
779
801
  | `POST` | `/:tenantId/sync/scanEntriesSince` | Cursor-based entry scanning |
780
802
  | `POST` | `/:tenantId/sync/getIdBloomSummary` | Get Bloom filter summary |
@@ -794,7 +816,7 @@ The server includes the following hardening measures:
794
816
  - **Input validation** -- all identifiers (tenantId, dbId, serverName) are validated to prevent path traversal. Only lowercase alphanumeric characters and hyphens are allowed, max 64 characters. Tenant IDs that collide with server route prefixes (`admin`, `health`, `statics`) are rejected as reserved names.
795
817
  - **Rate limiting** -- tiered per-IP rate limits: auth endpoints (20/min), admin endpoints (30/min), sync endpoints (200/min), global fallback (500/min). Returns `429 Too Many Requests` when exceeded.
796
818
  - **Security headers** -- `helmet` middleware sets X-Content-Type-Options, X-Frame-Options, Content-Security-Policy, Strict-Transport-Security, and others.
797
- - **CORS** -- disabled by default. Set `MINDOODB_CORS_ORIGIN` to allow a specific origin.
819
+ - **CORS** -- disabled by default. Set `MINDOODB_CORS_ORIGIN` to allow one specific origin or a comma-separated allowlist of origins.
798
820
  - **Constant-time key comparison** -- tenant creation API keys are compared using `crypto.timingSafeEqual()` where applicable.
799
821
  - **Error sanitization** -- internal errors never leak file paths or stack traces to clients. Only known auth/validation errors return specific messages.
800
822
  - **Request size limits** -- JSON body limited to 5MB. Array sizes capped (100k IDs, 10k entries for putEntries).
@@ -902,7 +924,7 @@ Available DNS plugins include Cloudflare, Route53, Google Cloud DNS, DigitalOcea
902
924
 
903
925
  The server ships with a multi-stage `Dockerfile` under `src/node/server/` that produces a minimal Alpine-based image. The build context must be the **repository root** so the library and server compile together.
904
926
 
905
- **Recommended:** use `bash serversetup.sh` (see [Quick Start](#quick-start)) to build, initialise, and configure everything interactively. The rest of this section covers manual Docker commands for advanced use cases.
927
+ **Recommended:** use `bash serversetup.sh` for first-time setup, and `bash serversetup.sh --update` for safe interactive updates to an existing deployment. The rest of this section covers manual Docker commands for advanced use cases.
906
928
 
907
929
  ### docker-compose.yml
908
930
 
@@ -913,6 +935,8 @@ The generated override also contains the published port bindings. This supports
913
935
  - bind a single specific IP (for example a VPN address)
914
936
  - bind both `127.0.0.1` and one specific extra IP
915
937
 
938
+ If you only changed application code and do not need to adjust ports or bind addresses, `docker compose up -d --build` is usually enough.
939
+
916
940
  ### Manual Docker commands (without serversetup.sh)
917
941
 
918
942
  If you prefer not to use the setup script, here are the individual steps:
@@ -947,10 +971,12 @@ On SELinux hosts, append `:Z` to the `/data` bind mount and `,Z` to the read-onl
947
971
 
948
972
  ### Bind to a specific IP
949
973
 
950
- To restrict the server to a specific network interface (e.g. a VPN), rerun `bash serversetup.sh` and provide the bind address when prompted.
974
+ To restrict the server to a specific network interface (e.g. a VPN), rerun `bash serversetup.sh --update` and provide the bind address when prompted. Update mode preserves the existing server identity, keybag, config, tenant data, and password file while regenerating `docker-compose.override.yml`.
951
975
 
952
976
  If you also want local checks from the same host, answer `y` when asked whether to also bind `127.0.0.1`. The generated `docker-compose.override.yml` will then contain both mappings.
953
977
 
978
+ Avoid the overwrite path unless you intentionally want to replace `server.identity.json`. Replacing the server identity breaks the relationship to server-owned encrypted state such as `server.keybag`, so it should be treated as a destructive reinitialization step, not a normal upgrade.
979
+
954
980
  ### Additional flags
955
981
 
956
982
  Environment variables and CLI flags can be added to `docker-compose.override.yml`:
@@ -959,12 +985,15 @@ Environment variables and CLI flags can be added to `docker-compose.override.yml
959
985
  services:
960
986
  mindoodb:
961
987
  environment:
988
+ MINDOODB_CORS_ORIGIN: "http://localhost:4174,https://otherserver.com"
962
989
  MINDOODB_ADMIN_ALLOWED_IPS: "127.0.0.1,10.0.0.0/8"
963
990
  command: ["--port", "8443", "--auto-sync"]
964
991
  ports:
965
992
  - "0.0.0.0:8443:8443"
966
993
  ```
967
994
 
995
+ If `serversetup.sh` needs to regenerate the override later, it first creates a timestamped backup such as `docker-compose.override.20260407-103000.yml` and tells you where to find it so custom settings can be merged forward if needed.
996
+
968
997
  ### Password handling
969
998
 
970
999
  Prefer **`MINDOODB_SERVER_PASSWORD_FILE`** over **`MINDOODB_SERVER_PASSWORD`** so the plaintext secret is not stored in the process environment block (visible via `docker inspect`, `/proc/<pid>/environ`). The setup script and `docker-compose.yml` use file-based passwords by default. See [Server Security](docs/server-security.md) for details on Docker secrets.
@@ -1,6 +1,6 @@
1
1
  import type { ContentAddressedStore } from "../../core/types";
2
2
  import type { StoreEntry, StoreEntryMetadata, StoreEntryType, StoreScanCursor, StoreScanFilters, StoreScanResult, StoreIdBloomSummary, StoreCompactionStatus } from "../../core/types";
3
- import type { DocumentMaterializationBatchPlan, DocumentMaterializationPlan, MaterializationPlanOptions } from "../../core/appendonlystores/types";
3
+ import type { AttachmentReadPlan, AttachmentReadPlanOptions, DocumentMaterializationBatchPlan, DocumentMaterializationPlan, MaterializationPlanOptions } from "../../core/appendonlystores/types";
4
4
  import type { CryptoAdapter } from "../../core/crypto/CryptoAdapter";
5
5
  import type { NetworkTransport } from "../../core/appendonlystores/network/NetworkTransport";
6
6
  import type { NetworkSyncCapabilities } from "../../core/appendonlystores/network/types";
@@ -29,6 +29,7 @@ export declare class ClientNetworkContentAddressedStore implements ContentAddres
29
29
  private cryptoAdapter;
30
30
  private accessToken;
31
31
  private tokenExpiry;
32
+ private authenticationPromise;
32
33
  private logger;
33
34
  private capabilitiesCache;
34
35
  private syncAuthOverride;
@@ -58,6 +59,8 @@ export declare class ClientNetworkContentAddressedStore implements ContentAddres
58
59
  * @returns The entries with decrypted payloads
59
60
  */
60
61
  getEntries(ids: string[]): Promise<StoreEntry[]>;
62
+ getEntryMetadata(id: string): Promise<StoreEntryMetadata | null>;
63
+ planAttachmentReadByWalkingMetadata(lastChunkId: string, attachmentSize: number, options: AttachmentReadPlanOptions): Promise<AttachmentReadPlan>;
61
64
  /**
62
65
  * Check which IDs exist in the remote store.
63
66
  *
@@ -80,6 +83,7 @@ export declare class ClientNetworkContentAddressedStore implements ContentAddres
80
83
  * Find entries by type and creation date range from the remote store.
81
84
  */
82
85
  findEntries(type: StoreEntryType, creationDateFrom: number | null, creationDateUntil: number | null): Promise<StoreEntryMetadata[]>;
86
+ private supportsReceiptOrderCursorProtocol;
83
87
  /**
84
88
  * Get all entry IDs from the remote store.
85
89
  * Used for synchronization to identify which entries the remote has.
@@ -115,6 +119,7 @@ export declare class ClientNetworkContentAddressedStore implements ContentAddres
115
119
  * Ensure we have a valid access token, authenticating if necessary.
116
120
  */
117
121
  private ensureAuthenticated;
122
+ private performAuthentication;
118
123
  /**
119
124
  * Sign a challenge with the user's private signing key.
120
125
  */
@@ -130,6 +135,9 @@ export declare class ClientNetworkContentAddressedStore implements ContentAddres
130
135
  * Call this if you need to force re-authentication.
131
136
  */
132
137
  clearAuthCache(): void;
138
+ private refreshAuthentication;
139
+ private isInvalidTokenError;
140
+ private withTransparentReauth;
133
141
  /**
134
142
  * Set or clear a temporary per-sync authentication override.
135
143
  * Intended for bootstrap scenarios (for example authenticating as admin).
@@ -1 +1 @@
1
- {"version":3,"file":"ClientNetworkContentAddressedStore.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/ClientNetworkContentAddressedStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientNetworkContentAddressedStore.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/ClientNetworkContentAddressedStore.ts"],"names":[],"mappings":"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"}