sietch 0.14.0 → 0.16.0
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/dist/acl.d.ts +6 -0
- package/dist/acl.js +8 -0
- package/dist/acl.js.map +1 -1
- package/dist/server/acl-authority.d.ts +9 -0
- package/dist/server/acl-authority.js +12 -0
- package/dist/server/acl-authority.js.map +1 -1
- package/dist/server/server.d.ts +19 -0
- package/dist/server/server.js +35 -8
- package/dist/server/server.js.map +1 -1
- package/dist/store.d.ts +24 -1
- package/dist/store.js +77 -14
- package/dist/store.js.map +1 -1
- package/dist/subtree.d.ts +113 -0
- package/dist/subtree.js +197 -0
- package/dist/subtree.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/yjs-engine.d.ts +16 -1
- package/dist/yjs-engine.js +19 -26
- package/dist/yjs-engine.js.map +1 -1
- package/package.json +1 -1
package/dist/acl.d.ts
CHANGED
|
@@ -47,6 +47,12 @@ export declare class AclManager {
|
|
|
47
47
|
* Set the trusted server's public key for signature verification.
|
|
48
48
|
*/
|
|
49
49
|
setServerPublicKey(pk: HybridPublicKey): void;
|
|
50
|
+
/**
|
|
51
|
+
* The trusted server public key, or null if none is configured (open mode).
|
|
52
|
+
* Reused by the AMD-013 subtree-rulebook verifier so the rulebook shares the
|
|
53
|
+
* same trust anchor as ACL reference nodes.
|
|
54
|
+
*/
|
|
55
|
+
getServerPublicKey(): HybridPublicKey | null;
|
|
50
56
|
/**
|
|
51
57
|
* Apply an ACL reference node update (from server or sync).
|
|
52
58
|
* Verifies server signature before accepting.
|
package/dist/acl.js
CHANGED
|
@@ -26,6 +26,14 @@ export class AclManager {
|
|
|
26
26
|
setServerPublicKey(pk) {
|
|
27
27
|
this.serverPublicKey = pk;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* The trusted server public key, or null if none is configured (open mode).
|
|
31
|
+
* Reused by the AMD-013 subtree-rulebook verifier so the rulebook shares the
|
|
32
|
+
* same trust anchor as ACL reference nodes.
|
|
33
|
+
*/
|
|
34
|
+
getServerPublicKey() {
|
|
35
|
+
return this.serverPublicKey;
|
|
36
|
+
}
|
|
29
37
|
/**
|
|
30
38
|
* Apply an ACL reference node update (from server or sync).
|
|
31
39
|
* Verifies server signature before accepting.
|
package/dist/acl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acl.js","sourceRoot":"","sources":["../src/acl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acl.js","sourceRoot":"","sources":["../src/acl.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { type HybridKeypair, type HybridPublicKey, type HybridSignature } from '../crypto.js';
|
|
12
12
|
import { type AclReferenceNode } from '../acl.js';
|
|
13
|
+
import { type SubtreeRegistryNode } from '../subtree.js';
|
|
13
14
|
import type { AclPermissions, Result } from '../types.js';
|
|
14
15
|
import type { ObservabilityContext } from '../observability.js';
|
|
15
16
|
import { AclError } from '../errors.js';
|
|
@@ -81,6 +82,14 @@ export declare class ServerAclAuthority {
|
|
|
81
82
|
* Get the current ACL reference node for a subtree.
|
|
82
83
|
*/
|
|
83
84
|
getRefNode(subtreeId: string): AclReferenceNode | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* AMD-013: sign the boundary rulebook (subtree pattern set) with the
|
|
87
|
+
* server's signing backend, producing a `SubtreeRegistryNode` that clients
|
|
88
|
+
* verify against the same trusted server public key they use for ACL nodes.
|
|
89
|
+
*
|
|
90
|
+
* @req FR-37
|
|
91
|
+
*/
|
|
92
|
+
signSubtreeRegistry(patterns: string[], version: number): SubtreeRegistryNode;
|
|
84
93
|
/**
|
|
85
94
|
* Verify that a reference node was signed by this server.
|
|
86
95
|
*/
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { sign, verify, generateCek, wrapCek, } from '../crypto.js';
|
|
12
12
|
import { serializeAclPayload, } from '../acl.js';
|
|
13
|
+
import { serializeSubtreeRegistry, } from '../subtree.js';
|
|
13
14
|
import { AclError, PermissionDeniedError } from '../errors.js';
|
|
14
15
|
// AMD-006: libp2p peerIds are base58-encoded multihashes with stable
|
|
15
16
|
// prefixes — Ed25519 starts with "12D3KooW", legacy RSA with "Qm".
|
|
@@ -153,6 +154,17 @@ export class ServerAclAuthority {
|
|
|
153
154
|
getRefNode(subtreeId) {
|
|
154
155
|
return this.refNodes.get(subtreeId);
|
|
155
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* AMD-013: sign the boundary rulebook (subtree pattern set) with the
|
|
159
|
+
* server's signing backend, producing a `SubtreeRegistryNode` that clients
|
|
160
|
+
* verify against the same trusted server public key they use for ACL nodes.
|
|
161
|
+
*
|
|
162
|
+
* @req FR-37
|
|
163
|
+
*/
|
|
164
|
+
signSubtreeRegistry(patterns, version) {
|
|
165
|
+
const signature = this.signingBackend.sign(serializeSubtreeRegistry({ patterns, version }));
|
|
166
|
+
return { patterns, version, signature };
|
|
167
|
+
}
|
|
156
168
|
/**
|
|
157
169
|
* Verify that a reference node was signed by this server.
|
|
158
170
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acl-authority.js","sourceRoot":"","sources":["../../src/server/acl-authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,IAAI,EACJ,MAAM,EACN,WAAW,EACX,OAAO,GAIR,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,mBAAmB,GACpB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"acl-authority.js","sourceRoot":"","sources":["../../src/server/acl-authority.ts"],"names":[],"mappings":"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"}
|
package/dist/server/server.d.ts
CHANGED
|
@@ -70,6 +70,14 @@ export interface ServerOptions {
|
|
|
70
70
|
* See AMD-002 / FR-67.
|
|
71
71
|
*/
|
|
72
72
|
onPeerHandshake?: HandshakeHook;
|
|
73
|
+
/**
|
|
74
|
+
* Declared subtree boundary patterns (AMD-012). Slash-delimited segment
|
|
75
|
+
* globs, e.g. `['users/*', 'users/<id>/docs/<id>']` (each `<id>` is a `*`
|
|
76
|
+
* wildcard segment). MUST match the patterns
|
|
77
|
+
* configured on every client, since the boundary is the sync address.
|
|
78
|
+
* Omitted → boundary is the first dot-segment (pre-AMD-012 behavior).
|
|
79
|
+
*/
|
|
80
|
+
subtrees?: string[];
|
|
73
81
|
}
|
|
74
82
|
export declare class SietchServer {
|
|
75
83
|
private readonly yjsEngine;
|
|
@@ -154,6 +162,17 @@ export declare class SietchServer {
|
|
|
154
162
|
* @req FR-36
|
|
155
163
|
*/
|
|
156
164
|
setAcl(subtreeId: string, refNode: AclReferenceNode): Promise<void>;
|
|
165
|
+
/**
|
|
166
|
+
* AMD-013: publish the boundary rulebook (subtree pattern set) as a
|
|
167
|
+
* server-signed reference node at `_system.subtrees`. Distributed to peers
|
|
168
|
+
* over the same reference-subtree sync path as `_keys` ACL nodes, so a
|
|
169
|
+
* client configured with no `subtrees` learns the boundaries from the
|
|
170
|
+
* server. Requires `aclSigningBackend` (the signer); without it the rulebook
|
|
171
|
+
* cannot be signed and clients must configure `subtrees` manually.
|
|
172
|
+
*
|
|
173
|
+
* @req FR-37
|
|
174
|
+
*/
|
|
175
|
+
publishSubtreeRegistry(patterns: string[]): Promise<void>;
|
|
157
176
|
/**
|
|
158
177
|
* AMD-009: create a server-owned subtree with an initial ACL granting
|
|
159
178
|
* only the server admin perms. Persists the ref node into `_keys` and
|
package/dist/server/server.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import * as Y from 'yjs';
|
|
15
15
|
import { YjsEngine } from '../yjs-engine.js';
|
|
16
|
+
import { SubtreeResolver, SUBTREE_REGISTRY_PATH, serializeRegistryNode } from '../subtree.js';
|
|
16
17
|
import { IdentityManager } from '../identity.js';
|
|
17
18
|
import { AclManager } from '../acl.js';
|
|
18
19
|
import { createStorageBackend } from '../storage.js';
|
|
@@ -86,8 +87,9 @@ export class SietchServer {
|
|
|
86
87
|
else {
|
|
87
88
|
storage = await createStorageBackend(obs, options.storage ?? 'auto', options.storagePath);
|
|
88
89
|
}
|
|
89
|
-
// 2. YjsEngine (single doc pool)
|
|
90
|
-
|
|
90
|
+
// 2. YjsEngine (single doc pool) with the declared subtree boundary
|
|
91
|
+
// resolver (AMD-012). Must mirror the clients' `subtrees` config.
|
|
92
|
+
const yjsEngine = new YjsEngine(storage, obs, new SubtreeResolver(options.subtrees ?? []));
|
|
91
93
|
// 3. Identity
|
|
92
94
|
const identityMgr = new IdentityManager(storage, obs);
|
|
93
95
|
await identityMgr.init();
|
|
@@ -126,6 +128,12 @@ export class SietchServer {
|
|
|
126
128
|
const identity = identityMgr.getPublicIdentity();
|
|
127
129
|
server._aclAuthority = new ServerAclAuthority(options.aclSigningBackend, obs, identity.peerId);
|
|
128
130
|
}
|
|
131
|
+
// 7b. Publish the subtree boundary rulebook (AMD-013) so connected peers
|
|
132
|
+
// adopt it automatically — refs sync first, so a fresh peer has it
|
|
133
|
+
// before any data subdoc is resolved.
|
|
134
|
+
if (options.subtrees && options.subtrees.length > 0) {
|
|
135
|
+
await server.publishSubtreeRegistry(options.subtrees);
|
|
136
|
+
}
|
|
129
137
|
// 8. Eviction (optional — Tier 1 only, gated by active sync)
|
|
130
138
|
if (options.eviction) {
|
|
131
139
|
const { pinned, ...policyFields } = options.eviction;
|
|
@@ -169,8 +177,7 @@ export class SietchServer {
|
|
|
169
177
|
// ── Data Operations ──────────────────────────────────────
|
|
170
178
|
/** Write a value (goes through YjsEngine — persist + sync to peers). */
|
|
171
179
|
async put(path, value) {
|
|
172
|
-
const subtreeId =
|
|
173
|
-
const { update } = await this.yjsEngine.applyLocal(path, value);
|
|
180
|
+
const { subtreeId, update } = await this.yjsEngine.applyLocal(path, value);
|
|
174
181
|
if (update) {
|
|
175
182
|
this.syncEngine.queueUpdate(subtreeId, update);
|
|
176
183
|
}
|
|
@@ -183,8 +190,7 @@ export class SietchServer {
|
|
|
183
190
|
}
|
|
184
191
|
/** Shallow-merge fields into an existing value. */
|
|
185
192
|
async patch(path, fields) {
|
|
186
|
-
const subtreeId =
|
|
187
|
-
const { update } = await this.yjsEngine.applyPatch(path, fields);
|
|
193
|
+
const { subtreeId, update } = await this.yjsEngine.applyPatch(path, fields);
|
|
188
194
|
if (update) {
|
|
189
195
|
this.syncEngine.queueUpdate(subtreeId, update);
|
|
190
196
|
}
|
|
@@ -192,8 +198,7 @@ export class SietchServer {
|
|
|
192
198
|
}
|
|
193
199
|
/** Delete a value. */
|
|
194
200
|
async delete(path) {
|
|
195
|
-
const subtreeId =
|
|
196
|
-
const { update } = await this.yjsEngine.applyLocal(path, null);
|
|
201
|
+
const { subtreeId, update } = await this.yjsEngine.applyLocal(path, null);
|
|
197
202
|
if (update) {
|
|
198
203
|
this.syncEngine.queueUpdate(subtreeId, update);
|
|
199
204
|
}
|
|
@@ -281,6 +286,28 @@ export class SietchServer {
|
|
|
281
286
|
this.syncEngine.queueUpdate('_keys', update);
|
|
282
287
|
}
|
|
283
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* AMD-013: publish the boundary rulebook (subtree pattern set) as a
|
|
291
|
+
* server-signed reference node at `_system.subtrees`. Distributed to peers
|
|
292
|
+
* over the same reference-subtree sync path as `_keys` ACL nodes, so a
|
|
293
|
+
* client configured with no `subtrees` learns the boundaries from the
|
|
294
|
+
* server. Requires `aclSigningBackend` (the signer); without it the rulebook
|
|
295
|
+
* cannot be signed and clients must configure `subtrees` manually.
|
|
296
|
+
*
|
|
297
|
+
* @req FR-37
|
|
298
|
+
*/
|
|
299
|
+
async publishSubtreeRegistry(patterns) {
|
|
300
|
+
if (!this._aclAuthority) {
|
|
301
|
+
this.obs.logger.warn({ patterns }, 'subtrees configured but no aclSigningBackend — rulebook not published; configure client subtrees manually');
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
const node = this._aclAuthority.signSubtreeRegistry(patterns, Date.now());
|
|
305
|
+
const { update } = await this.yjsEngine.applyLocal(SUBTREE_REGISTRY_PATH, serializeRegistryNode(node));
|
|
306
|
+
if (update) {
|
|
307
|
+
this.syncEngine.queueUpdate('_system', update);
|
|
308
|
+
}
|
|
309
|
+
this.obs.logger.info({ patterns, version: node.version }, 'subtree rulebook published');
|
|
310
|
+
}
|
|
284
311
|
/**
|
|
285
312
|
* AMD-009: create a server-owned subtree with an initial ACL granting
|
|
286
313
|
* only the server admin perms. Persists the ref node into `_keys` and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAuB,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAuB,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAA6B,MAAM,qBAAqB,CAAC;AAE5F,OAAO,EAAE,iBAAiB,EAAgD,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAA0B,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAyB,MAAM,WAAW,CAAC;AAGpE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AA0EjD,8DAA8D;AAE9D;;;;GAIG;AACH,MAAM,sBAAsB;IACG;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,QAAQ,CAAC,SAAiB,EAAE,QAAyD;QACnF,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,iBAA8B;QACzE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACvD,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,QAAqC;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB,CAAC,QAAqC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;CACF;AAED,8DAA8D;AAE9D,aAAa;AACb,aAAa;AACb,MAAM,OAAO,YAAY;IACN,SAAS,CAAY;IACrB,UAAU,CAAa;IACvB,WAAW,CAAkB;IAC7B,MAAM,CAAa;IACnB,GAAG,CAAuB;IAC1B,OAAO,CAAiB;IACjC,WAAW,CAAqB;IAChC,aAAa,CAAsB;IACnC,WAAW,CAAmB;IAEtC,oCAAoC;IACpC,YACE,OAAuB,EACvB,GAAyB,EACzB,SAAoB,EACpB,UAAsB,EACtB,WAA4B,EAC5B,MAAkB;QAElB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAsB;QACxC,MAAM,GAAG,GAAG,0BAA0B,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;QAEnE,aAAa;QACb,IAAI,OAAuB,CAAC;QAC5B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5F,CAAC;QAED,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3F,cAAc;QACd,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAEzB,SAAS;QACT,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAEnC,4BAA4B;QAC5B,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3E,2EAA2E;QAC3E,wEAAwE;QACxE,wCAAwC;QACxC,MAAM,UAAU,GAAe;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;SACR,CAAC;QACF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC3C,CAAC;QACD,+DAA+D;QAC/D,oEAAoE;QACpE,qBAAqB;QACrB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAE1F,gEAAgE;QAChE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,CAAC,WAAW,GAAG,IAAI,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxF,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3B,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAY,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,8BAA8B;QAC9B,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;YACjD,MAAM,CAAC,aAAa,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjG,CAAC;QAED,yEAAyE;QACzE,uEAAuE;QACvE,0CAA0C;QAC1C,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,6DAA6D;QAC7D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;YACrD,gEAAgE;YAChE,qDAAqD;YACrD,MAAM,YAAY,GAAmB;gBACnC,GAAG,YAAY;gBACf,aAAa,EAAE,QAAQ;gBACvB,eAAe,EAAE,CAAC;aACnB,CAAC;YACF,MAAM,CAAC,WAAW,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE;gBAChE,MAAM,EAAE,YAAY;gBACpB,gBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;aACjE,CAAC,CAAC;YACH,KAAK,MAAM,EAAE,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC9B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,mEAAmE;YACnE,yEAAyE;YACzE,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC/B,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,EAAE,eAAe,EAAE,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,EAC9E,uCAAuC,CACxC,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0DAA0D;IAE1D,8CAA8C;IAC9C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;IAC9C,CAAC;IAED,4DAA4D;IAE5D,wEAAwE;IACxE,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,KAAgB;QACtC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACxD,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,MAAiC;QACzD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5E,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1E,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,4DAA4D;IAE5D,qEAAqE;IACrE,UAAU,CAAC,QAAwC;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,0EAA0E;IAC1E,cAAc,CAAC,SAAiB,EAAE,QAAyD;QACzF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,4DAA4D;IAE5D,kDAAkD;IAClD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,MAAgC;QAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,4DAA4D;IAE5D,sDAAsD;IACtD,oBAAoB,CAAC,OAAuF;QAC1G,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,4DAA4D;IAE5D;;;;;;;;;;;OAWG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,OAAyB;QACvD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC;QACrF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,sBAAsB,CAAC,QAAkB;QAC7C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAClB,EAAE,QAAQ,EAAE,EACZ,2GAA2G,CAC5G,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAChD,qBAAqB,EACrB,qBAAqB,CAAC,IAAI,CAAC,CAC5B,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC1F,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,IAA6E;QAE7E,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAChB,sEAAsE,EACtE,8BAA8B,CAC/B,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnD,SAAS,EACT,IAAI,EAAE,SAAS,IAAI,KAAK,EACxB,IAAI,EAAE,cAAc,CACrB,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,cAAsB,EACtB,WAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAChB,yDAAyD,EACzD,8BAA8B,CAC/B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAC9C,SAAS;YACT,WAAW,EAAE,cAAc,CAAC,MAAM;YAClC,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,cAAc;YAC5B,WAAW;SACZ,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,cAAsB;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAChB,0DAA0D,EAC1D,8BAA8B,CAC/B,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAC9C,SAAS;YACT,WAAW,EAAE,cAAc,CAAC,MAAM;YAClC,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,cAAc;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,4DAA4D;IAE5D,uDAAuD;IACvD,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,4DAA4D;IAE5D,2CAA2C;IAC3C,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;CACF;AAED,2BAA2B;AAC3B,aAAa;AACb,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/store.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ import type { CrdtValue, CollectionConfig, MutationEvent, Unsubscribe, SyncStatu
|
|
|
16
16
|
import { type StorageBackend } from './storage.js';
|
|
17
17
|
import { type ObservabilityContext } from './observability.js';
|
|
18
18
|
import { YjsEngine } from './yjs-engine.js';
|
|
19
|
+
import { SubtreeResolver } from './subtree.js';
|
|
19
20
|
import { IdentityManager, type PublicIdentity, type LinkRequest } from './identity.js';
|
|
20
21
|
import { AclManager, type AclReferenceNode } from './acl.js';
|
|
21
22
|
import { EvictionManager } from './eviction.js';
|
|
@@ -71,8 +72,21 @@ export declare class Store {
|
|
|
71
72
|
private readonly plugins;
|
|
72
73
|
/** Per-collection schema configuration keyed by subtree prefix. */
|
|
73
74
|
private readonly collections;
|
|
75
|
+
/**
|
|
76
|
+
* Subtree boundary resolver (AMD-012). The SAME instance is shared with the
|
|
77
|
+
* YjsEngine so path→subtreeId derivation is identical on both layers.
|
|
78
|
+
*/
|
|
79
|
+
private readonly resolver;
|
|
80
|
+
/** Highest subtree-rulebook version applied (AMD-013); gates monotonic adoption. */
|
|
81
|
+
private appliedRegistryVersion;
|
|
74
82
|
/** @internal — use createStore() factory instead. */
|
|
75
|
-
constructor(storage: StorageBackend, obs: ObservabilityContext, yjsEngine: YjsEngine, identityMgr: IdentityManager, aclMgr: AclManager, evictionMgr: EvictionManager, queryEngine: QueryIndexEngine, plugins?: StorePlugin[], collections?: CollectionConfig[]);
|
|
83
|
+
constructor(storage: StorageBackend, obs: ObservabilityContext, yjsEngine: YjsEngine, identityMgr: IdentityManager, aclMgr: AclManager, evictionMgr: EvictionManager, queryEngine: QueryIndexEngine, plugins?: StorePlugin[], collections?: CollectionConfig[], resolver?: SubtreeResolver);
|
|
84
|
+
/**
|
|
85
|
+
* Resolve a path to the subtree (box) it belongs to under the configured
|
|
86
|
+
* boundary patterns (AMD-012). This is the ACL / sync / encryption unit for
|
|
87
|
+
* that path. Useful for callers that need to grant/observe at the boundary.
|
|
88
|
+
*/
|
|
89
|
+
subtreeIdFor(path: string): string;
|
|
76
90
|
/**
|
|
77
91
|
* Read data at a path.
|
|
78
92
|
*/
|
|
@@ -388,6 +402,15 @@ export declare class Store {
|
|
|
388
402
|
* the server signature.
|
|
389
403
|
*/
|
|
390
404
|
private initAclSync;
|
|
405
|
+
/**
|
|
406
|
+
* AMD-013: adopt the server-published subtree boundary rulebook received via
|
|
407
|
+
* Yjs sync on the `_system.subtrees` reference node. Mirrors initAclSync:
|
|
408
|
+
* verifies the server signature (open-accept when no trusted key is set,
|
|
409
|
+
* like ACL), gates on a monotonic version, and applies the patterns to the
|
|
410
|
+
* shared resolver. Because reference subtrees sync first, a fresh peer
|
|
411
|
+
* adopts the rulebook before any data subdoc is resolved.
|
|
412
|
+
*/
|
|
413
|
+
private initSubtreeRegistrySync;
|
|
391
414
|
/**
|
|
392
415
|
* Close the store and release all resources.
|
|
393
416
|
*/
|
package/dist/store.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
import { createStorageBackend } from './storage.js';
|
|
16
16
|
import { createObservabilityContext } from './observability.js';
|
|
17
17
|
import { YjsEngine } from './yjs-engine.js';
|
|
18
|
+
import { SubtreeResolver, SUBTREE_REGISTRY_PATH, deserializeRegistryNode, verifySubtreeRegistry, } from './subtree.js';
|
|
18
19
|
import * as Y from 'yjs';
|
|
19
20
|
import { IdentityManager } from './identity.js';
|
|
20
21
|
import { AclManager, serializeRefNode, deserializeRefNode } from './acl.js';
|
|
@@ -71,8 +72,15 @@ export class Store {
|
|
|
71
72
|
plugins;
|
|
72
73
|
/** Per-collection schema configuration keyed by subtree prefix. */
|
|
73
74
|
collections = new Map();
|
|
75
|
+
/**
|
|
76
|
+
* Subtree boundary resolver (AMD-012). The SAME instance is shared with the
|
|
77
|
+
* YjsEngine so path→subtreeId derivation is identical on both layers.
|
|
78
|
+
*/
|
|
79
|
+
resolver;
|
|
80
|
+
/** Highest subtree-rulebook version applied (AMD-013); gates monotonic adoption. */
|
|
81
|
+
appliedRegistryVersion = -1;
|
|
74
82
|
/** @internal — use createStore() factory instead. */
|
|
75
|
-
constructor(storage, obs, yjsEngine, identityMgr, aclMgr, evictionMgr, queryEngine, plugins, collections) {
|
|
83
|
+
constructor(storage, obs, yjsEngine, identityMgr, aclMgr, evictionMgr, queryEngine, plugins, collections, resolver) {
|
|
76
84
|
this.storage = storage;
|
|
77
85
|
this.obs = obs;
|
|
78
86
|
this.yjsEngine = yjsEngine;
|
|
@@ -81,14 +89,25 @@ export class Store {
|
|
|
81
89
|
this.evictionMgr = evictionMgr;
|
|
82
90
|
this.queryEngine = queryEngine;
|
|
83
91
|
this.plugins = plugins ?? [];
|
|
92
|
+
this.resolver = resolver ?? new SubtreeResolver();
|
|
84
93
|
if (collections) {
|
|
85
94
|
for (const col of collections) {
|
|
86
95
|
this.collections.set(col.subtree, col);
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
98
|
this.initAclSync();
|
|
99
|
+
this.initSubtreeRegistrySync();
|
|
90
100
|
this.initRemoteIndexSync();
|
|
91
101
|
}
|
|
102
|
+
// @req FR-37
|
|
103
|
+
/**
|
|
104
|
+
* Resolve a path to the subtree (box) it belongs to under the configured
|
|
105
|
+
* boundary patterns (AMD-012). This is the ACL / sync / encryption unit for
|
|
106
|
+
* that path. Useful for callers that need to grant/observe at the boundary.
|
|
107
|
+
*/
|
|
108
|
+
subtreeIdFor(path) {
|
|
109
|
+
return this.resolver.subtreeIdFor(path);
|
|
110
|
+
}
|
|
92
111
|
// ── CRUD ────────────────────────────────────────────────
|
|
93
112
|
/**
|
|
94
113
|
* Read data at a path.
|
|
@@ -137,7 +156,7 @@ export class Store {
|
|
|
137
156
|
// @req NFR-02
|
|
138
157
|
async put(path, value, options) {
|
|
139
158
|
// ACL check for non-open subtrees
|
|
140
|
-
const subtreeId =
|
|
159
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
141
160
|
if (this.aclMgr.hasAcl(subtreeId)) {
|
|
142
161
|
const peerId = this.identityMgr.isInitialized()
|
|
143
162
|
? this.identityMgr.getPublicIdentity().peerId
|
|
@@ -189,7 +208,7 @@ export class Store {
|
|
|
189
208
|
* If no value exists at the path, a new object is created.
|
|
190
209
|
*/
|
|
191
210
|
async patch(path, fields) {
|
|
192
|
-
const subtreeId =
|
|
211
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
193
212
|
if (this.aclMgr.hasAcl(subtreeId)) {
|
|
194
213
|
const peerId = this.identityMgr.isInitialized()
|
|
195
214
|
? this.identityMgr.getPublicIdentity().peerId
|
|
@@ -218,7 +237,7 @@ export class Store {
|
|
|
218
237
|
*/
|
|
219
238
|
// @req FR-06
|
|
220
239
|
async delete(path) {
|
|
221
|
-
const subtreeId =
|
|
240
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
222
241
|
this.localWriteSubtrees.add(subtreeId);
|
|
223
242
|
const { update } = await this.yjsEngine.applyLocal(path, null);
|
|
224
243
|
this.queryEngine.removeDocument(path);
|
|
@@ -237,7 +256,7 @@ export class Store {
|
|
|
237
256
|
* subtree's initial sync completes (prevents flash-of-empty-content).
|
|
238
257
|
*/
|
|
239
258
|
subscribe(path, callback, options) {
|
|
240
|
-
const subtreeId =
|
|
259
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
241
260
|
let unsubscribe = null;
|
|
242
261
|
let gated = options?.afterSync === true;
|
|
243
262
|
let disposed = false;
|
|
@@ -302,7 +321,7 @@ export class Store {
|
|
|
302
321
|
* subtree's initial sync completes.
|
|
303
322
|
*/
|
|
304
323
|
subscribePath(path, callback, options) {
|
|
305
|
-
const subtreeId =
|
|
324
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
306
325
|
let gated = options?.afterSync === true;
|
|
307
326
|
let disposed = false;
|
|
308
327
|
const unsub = this.onMutation((event) => {
|
|
@@ -618,7 +637,7 @@ export class Store {
|
|
|
618
637
|
* Grant permissions to a user on a subtree.
|
|
619
638
|
*/
|
|
620
639
|
async grant(path, userId, perms) {
|
|
621
|
-
const subtreeId =
|
|
640
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
622
641
|
const myId = this.identityMgr.isInitialized()
|
|
623
642
|
? this.identityMgr.getPublicIdentity().peerId
|
|
624
643
|
: '';
|
|
@@ -630,7 +649,7 @@ export class Store {
|
|
|
630
649
|
* Revoke a user's access to a subtree.
|
|
631
650
|
*/
|
|
632
651
|
async revoke(path, userId) {
|
|
633
|
-
const subtreeId =
|
|
652
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
634
653
|
const myId = this.identityMgr.isInitialized()
|
|
635
654
|
? this.identityMgr.getPublicIdentity().peerId
|
|
636
655
|
: '';
|
|
@@ -650,7 +669,7 @@ export class Store {
|
|
|
650
669
|
* Get the ACL for a subtree.
|
|
651
670
|
*/
|
|
652
671
|
async getAcl(path) {
|
|
653
|
-
const subtreeId =
|
|
672
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
654
673
|
return this.aclMgr.getAcl(subtreeId);
|
|
655
674
|
}
|
|
656
675
|
/**
|
|
@@ -678,14 +697,14 @@ export class Store {
|
|
|
678
697
|
*/
|
|
679
698
|
// @req FR-24
|
|
680
699
|
async pin(path) {
|
|
681
|
-
const subtreeId =
|
|
700
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
682
701
|
this.evictionMgr.pin(subtreeId);
|
|
683
702
|
}
|
|
684
703
|
/**
|
|
685
704
|
* Unpin a subtree.
|
|
686
705
|
*/
|
|
687
706
|
async unpin(path) {
|
|
688
|
-
const subtreeId =
|
|
707
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
689
708
|
this.evictionMgr.unpin(subtreeId);
|
|
690
709
|
}
|
|
691
710
|
/**
|
|
@@ -786,7 +805,7 @@ export class Store {
|
|
|
786
805
|
* Persistence is fire-and-forget.
|
|
787
806
|
*/
|
|
788
807
|
cursorWrite(path, propertyPath, value) {
|
|
789
|
-
const subtreeId =
|
|
808
|
+
const subtreeId = this.resolver.subtreeIdFor(path);
|
|
790
809
|
if (this.aclMgr.hasAcl(subtreeId)) {
|
|
791
810
|
const peerId = this.identityMgr.isInitialized()
|
|
792
811
|
? this.identityMgr.getPublicIdentity().peerId
|
|
@@ -980,6 +999,49 @@ export class Store {
|
|
|
980
999
|
}
|
|
981
1000
|
});
|
|
982
1001
|
}
|
|
1002
|
+
/**
|
|
1003
|
+
* AMD-013: adopt the server-published subtree boundary rulebook received via
|
|
1004
|
+
* Yjs sync on the `_system.subtrees` reference node. Mirrors initAclSync:
|
|
1005
|
+
* verifies the server signature (open-accept when no trusted key is set,
|
|
1006
|
+
* like ACL), gates on a monotonic version, and applies the patterns to the
|
|
1007
|
+
* shared resolver. Because reference subtrees sync first, a fresh peer
|
|
1008
|
+
* adopts the rulebook before any data subdoc is resolved.
|
|
1009
|
+
*/
|
|
1010
|
+
// @req FR-37
|
|
1011
|
+
initSubtreeRegistrySync() {
|
|
1012
|
+
this.onMutation((event) => {
|
|
1013
|
+
if (event.path !== SUBTREE_REGISTRY_PATH)
|
|
1014
|
+
return;
|
|
1015
|
+
if (event.action === 'delete')
|
|
1016
|
+
return;
|
|
1017
|
+
const data = event.value;
|
|
1018
|
+
if (typeof data !== 'object' || data === null || ArrayBuffer.isView(data) || Array.isArray(data)) {
|
|
1019
|
+
return;
|
|
1020
|
+
}
|
|
1021
|
+
const node = deserializeRegistryNode(data);
|
|
1022
|
+
if (!node) {
|
|
1023
|
+
this.obs.logger.warn({ path: event.path }, 'malformed subtree rulebook node ignored');
|
|
1024
|
+
return;
|
|
1025
|
+
}
|
|
1026
|
+
// Monotonic version gate — ignore replays and stale nodes.
|
|
1027
|
+
if (node.version <= this.appliedRegistryVersion)
|
|
1028
|
+
return;
|
|
1029
|
+
// Verify against the trusted server key (open-accept if none configured).
|
|
1030
|
+
if (!verifySubtreeRegistry(node, this.aclMgr.getServerPublicKey())) {
|
|
1031
|
+
this.obs.logger.warn({ path: event.path, version: node.version }, 'subtree rulebook signature rejected — ignoring');
|
|
1032
|
+
return;
|
|
1033
|
+
}
|
|
1034
|
+
const hadNonInternalWrites = [...this.localWriteSubtrees].some((s) => !s.startsWith('_'));
|
|
1035
|
+
const changed = this.resolver.setPatterns(node.patterns);
|
|
1036
|
+
this.appliedRegistryVersion = node.version;
|
|
1037
|
+
if (changed) {
|
|
1038
|
+
this.obs.logger.info({ patterns: node.patterns, version: node.version }, 'adopted synced subtree rulebook');
|
|
1039
|
+
if (hadNonInternalWrites) {
|
|
1040
|
+
this.obs.logger.warn({ patterns: node.patterns }, 'subtree rulebook changed AFTER local writes — data written under the prior boundary stays in its old box; declare boundaries before writing data');
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
});
|
|
1044
|
+
}
|
|
983
1045
|
// ── Lifecycle ───────────────────────────────────────────
|
|
984
1046
|
/**
|
|
985
1047
|
* Close the store and release all resources.
|
|
@@ -1021,7 +1083,8 @@ export async function createStore(options) {
|
|
|
1021
1083
|
storage = await createStorageBackend(obs, options?.storage ?? 'auto', options?.storagePath);
|
|
1022
1084
|
}
|
|
1023
1085
|
const storageMs = performance.now() - tStorage0;
|
|
1024
|
-
const
|
|
1086
|
+
const resolver = new SubtreeResolver(options?.subtrees ?? []);
|
|
1087
|
+
const yjsEngine = new YjsEngine(storage, obs, resolver);
|
|
1025
1088
|
const identityMgr = new IdentityManager(storage, obs);
|
|
1026
1089
|
const aclMgr = new AclManager(obs);
|
|
1027
1090
|
const evictionMgr = new EvictionManager(storage, yjsEngine, obs, options?.evictionPolicy);
|
|
@@ -1038,6 +1101,6 @@ export async function createStore(options) {
|
|
|
1038
1101
|
evictionMgr.start();
|
|
1039
1102
|
const totalMs = performance.now() - t0;
|
|
1040
1103
|
obs.logger.info({ storage: storage.type, storageMs, indexMs, identityMs, totalMs }, 'store cold start timing');
|
|
1041
|
-
return new Store(storage, obs, yjsEngine, identityMgr, aclMgr, evictionMgr, queryEngine, options?.plugins, options?.collections);
|
|
1104
|
+
return new Store(storage, obs, yjsEngine, identityMgr, aclMgr, evictionMgr, queryEngine, options?.plugins, options?.collections, resolver);
|
|
1042
1105
|
}
|
|
1043
1106
|
//# sourceMappingURL=store.js.map
|