sietch 0.6.0 → 0.8.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/eviction.d.ts +12 -1
- package/dist/eviction.js +9 -7
- package/dist/eviction.js.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/server.d.ts +18 -1
- package/dist/server/server.js +35 -0
- package/dist/server/server.js.map +1 -1
- package/dist/sync-engine.d.ts +25 -0
- package/dist/sync-engine.js +161 -0
- package/dist/sync-engine.js.map +1 -1
- package/dist/yjs-engine.d.ts +21 -0
- package/dist/yjs-engine.js +70 -1
- package/dist/yjs-engine.js.map +1 -1
- package/package.json +1 -1
package/dist/eviction.d.ts
CHANGED
|
@@ -13,15 +13,26 @@ import type { StorageBackend } from './storage.js';
|
|
|
13
13
|
import type { YjsEngine } from './yjs-engine.js';
|
|
14
14
|
import type { ObservabilityContext } from './observability.js';
|
|
15
15
|
import type { EvictionPolicy, StorageMetrics } from './types.js';
|
|
16
|
+
/** Options for creating an EvictionManager. */
|
|
17
|
+
export interface EvictionManagerOptions {
|
|
18
|
+
policy?: EvictionPolicy | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Optional guard: return true if the subtree is actively synced by
|
|
21
|
+
* a connected peer. When provided, actively-synced subtrees are
|
|
22
|
+
* never evicted — eviction only targets truly idle subdocs.
|
|
23
|
+
*/
|
|
24
|
+
isActivelySynced?: ((subtreeId: string) => boolean) | undefined;
|
|
25
|
+
}
|
|
16
26
|
export declare class EvictionManager {
|
|
17
27
|
private readonly storage;
|
|
18
28
|
private readonly yjsEngine;
|
|
19
29
|
private readonly obs;
|
|
20
30
|
private readonly pinned;
|
|
21
31
|
private readonly policy;
|
|
32
|
+
private readonly isActivelySynced;
|
|
22
33
|
private evictionCount;
|
|
23
34
|
private tier1Timer;
|
|
24
|
-
constructor(storage: StorageBackend, yjsEngine: YjsEngine, obs: ObservabilityContext,
|
|
35
|
+
constructor(storage: StorageBackend, yjsEngine: YjsEngine, obs: ObservabilityContext, options?: EvictionPolicy | EvictionManagerOptions);
|
|
25
36
|
/**
|
|
26
37
|
* Start the Tier 1 eviction timer.
|
|
27
38
|
*/
|
package/dist/eviction.js
CHANGED
|
@@ -9,24 +9,23 @@
|
|
|
9
9
|
* Tier 2 (disk → network): Delete subdocument from local storage.
|
|
10
10
|
* Triggered by storage pressure. Data must be re-fetched from network.
|
|
11
11
|
*/
|
|
12
|
-
// ── Eviction Manager ───────────────────────────────────────
|
|
13
|
-
// @req FR-22
|
|
14
|
-
// @req FR-23
|
|
15
|
-
// @req FR-24
|
|
16
|
-
// @req FR-25
|
|
17
|
-
// @req FR-26
|
|
18
12
|
export class EvictionManager {
|
|
19
13
|
storage;
|
|
20
14
|
yjsEngine;
|
|
21
15
|
obs;
|
|
22
16
|
pinned = new Set();
|
|
23
17
|
policy;
|
|
18
|
+
isActivelySynced;
|
|
24
19
|
evictionCount = 0;
|
|
25
20
|
tier1Timer = null;
|
|
26
|
-
constructor(storage, yjsEngine, obs,
|
|
21
|
+
constructor(storage, yjsEngine, obs, options) {
|
|
27
22
|
this.storage = storage;
|
|
28
23
|
this.yjsEngine = yjsEngine;
|
|
29
24
|
this.obs = obs;
|
|
25
|
+
// Support both old (EvictionPolicy) and new (EvictionManagerOptions) signatures
|
|
26
|
+
const isExtended = options != null && 'isActivelySynced' in options;
|
|
27
|
+
const policy = isExtended ? options.policy : options;
|
|
28
|
+
this.isActivelySynced = isExtended ? options.isActivelySynced : undefined;
|
|
30
29
|
this.policy = {
|
|
31
30
|
strategy: policy?.strategy ?? 'size-weighted-lru',
|
|
32
31
|
memoryTimeoutMs: policy?.memoryTimeoutMs ?? 60_000,
|
|
@@ -217,6 +216,9 @@ export class EvictionManager {
|
|
|
217
216
|
// Reference nodes are always retained
|
|
218
217
|
if (id.startsWith('_keys') || id.startsWith('_system'))
|
|
219
218
|
return true;
|
|
219
|
+
// Actively synced by a connected peer — do not evict
|
|
220
|
+
if (this.isActivelySynced?.(id))
|
|
221
|
+
return true;
|
|
220
222
|
return false;
|
|
221
223
|
}
|
|
222
224
|
/**
|
package/dist/eviction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eviction.js","sourceRoot":"","sources":["../src/eviction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"eviction.js","sourceRoot":"","sources":["../src/eviction.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* connecting to PostgreSQL (with AGE and pgvector extensions).
|
|
6
6
|
*/
|
|
7
7
|
export { SietchServer, createServer } from './server.js';
|
|
8
|
-
export type { ServerOptions } from './server.js';
|
|
8
|
+
export type { ServerOptions, ServerEvictionOptions } from './server.js';
|
|
9
9
|
export { ServerAuthService } from './auth.js';
|
|
10
10
|
export type { DeviceLinkRequest, VerificationRecord, UserIdentity, LinkResult, EmailProvider } from './auth.js';
|
|
11
11
|
export { ServerAclAuthority, DefaultSigningBackend } from './acl-authority.js';
|
package/dist/server/server.d.ts
CHANGED
|
@@ -17,7 +17,12 @@ import { type StorageBackend } from '../storage.js';
|
|
|
17
17
|
import type { SyncConfig } from '../sync-engine.js';
|
|
18
18
|
import { type DatabaseAdapter } from './query-bridge.js';
|
|
19
19
|
import { type AclSigningBackend } from './acl-authority.js';
|
|
20
|
-
import type { CrdtValue, MutationEvent, StorageType, Unsubscribe, WriteConfirmation, ReadResult } from '../types.js';
|
|
20
|
+
import type { CrdtValue, EvictionPolicy, MutationEvent, StorageMetrics, StorageType, Unsubscribe, WriteConfirmation, ReadResult } from '../types.js';
|
|
21
|
+
/** Server-side eviction options (Tier 1 only — memory to disk). */
|
|
22
|
+
export interface ServerEvictionOptions extends EvictionPolicy {
|
|
23
|
+
/** Subtree IDs that should never be evicted. */
|
|
24
|
+
pinned?: string[];
|
|
25
|
+
}
|
|
21
26
|
export interface ServerOptions {
|
|
22
27
|
/** Multiaddrs to listen on (e.g., ['/ip4/0.0.0.0/tcp/9090/ws']). */
|
|
23
28
|
listen: string[];
|
|
@@ -35,6 +40,15 @@ export interface ServerOptions {
|
|
|
35
40
|
aclSigningBackend?: AclSigningBackend;
|
|
36
41
|
/** Sync reconnect configuration. */
|
|
37
42
|
reconnect?: SyncConfig['reconnect'];
|
|
43
|
+
/**
|
|
44
|
+
* Enable server-side memory eviction. When set, idle subdocs are
|
|
45
|
+
* unloaded from memory after `memoryTimeoutMs` of inactivity.
|
|
46
|
+
* Data stays in storage (PG) and reloads on next access.
|
|
47
|
+
*
|
|
48
|
+
* Subtrees actively synced by connected peers are never evicted.
|
|
49
|
+
* Tier 2 (disk deletion) is disabled on servers.
|
|
50
|
+
*/
|
|
51
|
+
eviction?: ServerEvictionOptions;
|
|
38
52
|
}
|
|
39
53
|
export declare class SietchServer {
|
|
40
54
|
private readonly yjsEngine;
|
|
@@ -45,6 +59,7 @@ export declare class SietchServer {
|
|
|
45
59
|
private readonly storage;
|
|
46
60
|
private queryBridge?;
|
|
47
61
|
private aclAuthority?;
|
|
62
|
+
private evictionMgr?;
|
|
48
63
|
/** Subtrees already registered with the query bridge. */
|
|
49
64
|
private readonly bridgedSubtrees;
|
|
50
65
|
/** Private — use createServer(). */
|
|
@@ -73,6 +88,8 @@ export declare class SietchServer {
|
|
|
73
88
|
cypher(query: string, params?: Record<string, unknown>): Promise<Record<string, unknown>[]>;
|
|
74
89
|
/** Register a query handler for the sync protocol. */
|
|
75
90
|
registerQueryHandler(handler: (q: string, p?: Record<string, unknown>) => Promise<Record<string, unknown>[]>): void;
|
|
91
|
+
/** Get eviction metrics (requires eviction option). */
|
|
92
|
+
getEvictionMetrics(): Promise<StorageMetrics | null>;
|
|
76
93
|
/** Ensure the query bridge is observing a subtree. */
|
|
77
94
|
private ensureBridged;
|
|
78
95
|
/** Gracefully shut down all subsystems. */
|
package/dist/server/server.js
CHANGED
|
@@ -19,6 +19,7 @@ import { createStorageBackend } from '../storage.js';
|
|
|
19
19
|
import { createObservabilityContext } from '../observability.js';
|
|
20
20
|
import { ServerQueryBridge } from './query-bridge.js';
|
|
21
21
|
import { ServerAclAuthority } from './acl-authority.js';
|
|
22
|
+
import { EvictionManager } from '../eviction.js';
|
|
22
23
|
// ── YjsEngine → BridgeStateSource adapter ──────────────────
|
|
23
24
|
/**
|
|
24
25
|
* Adapts YjsEngine to the BridgeStateSource interface required by
|
|
@@ -54,6 +55,7 @@ export class SietchServer {
|
|
|
54
55
|
storage;
|
|
55
56
|
queryBridge;
|
|
56
57
|
aclAuthority;
|
|
58
|
+
evictionMgr;
|
|
57
59
|
/** Subtrees already registered with the query bridge. */
|
|
58
60
|
bridgedSubtrees = new Set();
|
|
59
61
|
/** Private — use createServer(). */
|
|
@@ -104,6 +106,31 @@ export class SietchServer {
|
|
|
104
106
|
const identity = identityMgr.getPublicIdentity();
|
|
105
107
|
server.aclAuthority = new ServerAclAuthority(options.aclSigningBackend, obs, identity.peerId);
|
|
106
108
|
}
|
|
109
|
+
// 8. Eviction (optional — Tier 1 only, gated by active sync)
|
|
110
|
+
if (options.eviction) {
|
|
111
|
+
const { pinned, ...policyFields } = options.eviction;
|
|
112
|
+
// Force Tier 2 thresholds to unreachable values — servers never
|
|
113
|
+
// delete data from storage, only unload from memory.
|
|
114
|
+
const serverPolicy = {
|
|
115
|
+
...policyFields,
|
|
116
|
+
diskThreshold: Infinity,
|
|
117
|
+
diskTargetUsage: 1,
|
|
118
|
+
};
|
|
119
|
+
server.evictionMgr = new EvictionManager(storage, yjsEngine, obs, {
|
|
120
|
+
policy: serverPolicy,
|
|
121
|
+
isActivelySynced: (id) => syncEngine.isSubtreeActivelySynced(id),
|
|
122
|
+
});
|
|
123
|
+
for (const id of pinned ?? []) {
|
|
124
|
+
server.evictionMgr.pin(id);
|
|
125
|
+
}
|
|
126
|
+
// Clear bridge tracking on evict so it re-observes on reload
|
|
127
|
+
yjsEngine.onUnload((subtreeId) => {
|
|
128
|
+
server.bridgedSubtrees.delete(subtreeId);
|
|
129
|
+
syncEngine.unsyncSubdoc(subtreeId);
|
|
130
|
+
});
|
|
131
|
+
server.evictionMgr.start();
|
|
132
|
+
obs.logger.info({ memoryTimeoutMs: serverPolicy.memoryTimeoutMs, pinned: pinned?.length ?? 0 }, 'server eviction enabled (tier 1 only)');
|
|
133
|
+
}
|
|
107
134
|
obs.logger.info({ listen: options.listen }, 'server started');
|
|
108
135
|
return server;
|
|
109
136
|
}
|
|
@@ -181,6 +208,13 @@ export class SietchServer {
|
|
|
181
208
|
registerQueryHandler(handler) {
|
|
182
209
|
this.syncEngine.registerQueryHandler(handler);
|
|
183
210
|
}
|
|
211
|
+
// ── Eviction ─────────────────────────────────────────────
|
|
212
|
+
/** Get eviction metrics (requires eviction option). */
|
|
213
|
+
async getEvictionMetrics() {
|
|
214
|
+
if (!this.evictionMgr)
|
|
215
|
+
return null;
|
|
216
|
+
return this.evictionMgr.getMetrics();
|
|
217
|
+
}
|
|
184
218
|
// ── Private ──────────────────────────────────────────────
|
|
185
219
|
/** Ensure the query bridge is observing a subtree. */
|
|
186
220
|
ensureBridged(subtreeId) {
|
|
@@ -194,6 +228,7 @@ export class SietchServer {
|
|
|
194
228
|
// ── Lifecycle ────────────────────────────────────────────
|
|
195
229
|
/** Gracefully shut down all subsystems. */
|
|
196
230
|
async close() {
|
|
231
|
+
this.evictionMgr?.stop();
|
|
197
232
|
if (this.queryBridge) {
|
|
198
233
|
this.queryBridge.stop();
|
|
199
234
|
}
|
|
@@ -1 +1 @@
|
|
|
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,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;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
package/dist/sync-engine.d.ts
CHANGED
|
@@ -144,6 +144,10 @@ export declare class SyncEngine {
|
|
|
144
144
|
private readonly syncWaiters;
|
|
145
145
|
/** Listeners for per-subtree sync status changes. */
|
|
146
146
|
private readonly subtreeStatusListeners;
|
|
147
|
+
/** Per-peer ACL denial tracking for threshold-based disconnect. */
|
|
148
|
+
private readonly denialTrackers;
|
|
149
|
+
/** Per-peer escalating ban state: tracks disconnect count and cooldown expiry. */
|
|
150
|
+
private readonly aclBanState;
|
|
147
151
|
constructor(yjsEngine: YjsEngine, identity: IdentityManager, acl: AclManager, obs: ObservabilityContext);
|
|
148
152
|
/**
|
|
149
153
|
* Register a handler for cypher queries received via the query protocol.
|
|
@@ -196,6 +200,11 @@ export declare class SyncEngine {
|
|
|
196
200
|
* Emit a subtree sync status to all listeners.
|
|
197
201
|
*/
|
|
198
202
|
private emitSubtreeStatus;
|
|
203
|
+
/**
|
|
204
|
+
* Check if any connected peer is actively syncing a subtree.
|
|
205
|
+
* Used by the eviction manager to prevent evicting live subdocs.
|
|
206
|
+
*/
|
|
207
|
+
isSubtreeActivelySynced(subtreeId: string): boolean;
|
|
199
208
|
/**
|
|
200
209
|
* Count how many peers have synced a given subtree.
|
|
201
210
|
*/
|
|
@@ -303,6 +312,22 @@ export declare class SyncEngine {
|
|
|
303
312
|
* delivery when the stream opens. Errors also re-buffer the update.
|
|
304
313
|
*/
|
|
305
314
|
private sendUpdate;
|
|
315
|
+
/**
|
|
316
|
+
* Send an authoritative state reset to a peer after ACL write denial.
|
|
317
|
+
*
|
|
318
|
+
* Encodes the server's full subdoc state as a V2 update and sends it
|
|
319
|
+
* as messageYjsAuthReset. The peer replaces its local subdoc entirely,
|
|
320
|
+
* correcting any divergent state from the unauthorized write.
|
|
321
|
+
*/
|
|
322
|
+
/**
|
|
323
|
+
* Handle an ACL write denial: track the denial, then either send an
|
|
324
|
+
* authoritative reset (under threshold) or warn and disconnect (over).
|
|
325
|
+
*
|
|
326
|
+
* Returns true if the peer was disconnected — caller should `return`
|
|
327
|
+
* to exit the reader loop (the finally block handles cleanup).
|
|
328
|
+
*/
|
|
329
|
+
private handleAclDenial;
|
|
330
|
+
private sendAuthoritativeReset;
|
|
306
331
|
/**
|
|
307
332
|
* Handle incoming diagnostic stream.
|
|
308
333
|
*
|
package/dist/sync-engine.js
CHANGED
|
@@ -22,6 +22,7 @@ import { bootstrap } from '@libp2p/bootstrap';
|
|
|
22
22
|
import { circuitRelayTransport } from '@libp2p/circuit-relay-v2';
|
|
23
23
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
24
24
|
import { Uint8ArrayList } from 'uint8arraylist';
|
|
25
|
+
import * as Y from 'yjs';
|
|
25
26
|
import * as encoding from 'lib0/encoding';
|
|
26
27
|
import * as decoding from 'lib0/decoding';
|
|
27
28
|
import { messageYjsSyncStep1, messageYjsSyncStep2, messageYjsUpdate, writeSyncStep1, } from 'y-protocols/sync';
|
|
@@ -190,6 +191,23 @@ const messageYjsUpdateV2 = 5;
|
|
|
190
191
|
/** Demand-driven subtree subscription message types. */
|
|
191
192
|
const messageYjsSubtreeList = 6; // Client → Server: list of wanted subtree IDs
|
|
192
193
|
const messageYjsSubtreeRequest = 7; // Client → Server: request a specific subtree
|
|
194
|
+
/** Authoritative state reset — server sends full subdoc after ACL write denial. */
|
|
195
|
+
const messageYjsAuthReset = 8;
|
|
196
|
+
/** Access violation notice — server warns peer before disconnecting for excessive ACL denials. */
|
|
197
|
+
const messageYjsAccessViolation = 9;
|
|
198
|
+
/** Per-peer ACL denial threshold: disconnect after this many denials in the window. */
|
|
199
|
+
const ACL_DENIAL_THRESHOLD = 5;
|
|
200
|
+
/** Sliding window for denial tracking (ms). */
|
|
201
|
+
const ACL_DENIAL_WINDOW_MS = 30_000;
|
|
202
|
+
/** Escalating reconnect backoff delays after ACL threshold disconnects. */
|
|
203
|
+
const ACL_BAN_DELAYS_MS = [
|
|
204
|
+
0, // 1st disconnect: immediate reconnect allowed
|
|
205
|
+
30_000, // 2nd: 30 seconds
|
|
206
|
+
300_000, // 3rd: 5 minutes
|
|
207
|
+
1_800_000, // 4th+: 30 minutes
|
|
208
|
+
];
|
|
209
|
+
/** Duration of a "clean session" (no denials) to reset escalation (ms). */
|
|
210
|
+
const ACL_CLEAN_SESSION_MS = 300_000; // 5 minutes
|
|
193
211
|
// ── Sync Engine ────────────────────────────────────────────
|
|
194
212
|
// @req FR-10
|
|
195
213
|
// @req FR-11
|
|
@@ -229,6 +247,10 @@ export class SyncEngine {
|
|
|
229
247
|
syncWaiters = [];
|
|
230
248
|
/** Listeners for per-subtree sync status changes. */
|
|
231
249
|
subtreeStatusListeners = new Set();
|
|
250
|
+
/** Per-peer ACL denial tracking for threshold-based disconnect. */
|
|
251
|
+
denialTrackers = new Map();
|
|
252
|
+
/** Per-peer escalating ban state: tracks disconnect count and cooldown expiry. */
|
|
253
|
+
aclBanState = new Map();
|
|
232
254
|
constructor(yjsEngine, identity, acl, obs) {
|
|
233
255
|
this.yjsEngine = yjsEngine;
|
|
234
256
|
this.identity = identity;
|
|
@@ -495,6 +517,17 @@ export class SyncEngine {
|
|
|
495
517
|
listener(status);
|
|
496
518
|
}
|
|
497
519
|
}
|
|
520
|
+
/**
|
|
521
|
+
* Check if any connected peer is actively syncing a subtree.
|
|
522
|
+
* Used by the eviction manager to prevent evicting live subdocs.
|
|
523
|
+
*/
|
|
524
|
+
isSubtreeActivelySynced(subtreeId) {
|
|
525
|
+
for (const peer of this.peers.values()) {
|
|
526
|
+
if (peer.syncedSubtrees.has(subtreeId))
|
|
527
|
+
return true;
|
|
528
|
+
}
|
|
529
|
+
return false;
|
|
530
|
+
}
|
|
498
531
|
/**
|
|
499
532
|
* Count how many peers have synced a given subtree.
|
|
500
533
|
*/
|
|
@@ -709,6 +742,35 @@ export class SyncEngine {
|
|
|
709
742
|
this.obs.logger.debug({ senderPeerId }, 'sync stream from unknown peer — ignoring');
|
|
710
743
|
return;
|
|
711
744
|
}
|
|
745
|
+
// Check ACL ban state — refuse early reconnect after threshold disconnect
|
|
746
|
+
const ban = this.aclBanState.get(senderPeerId);
|
|
747
|
+
if (ban) {
|
|
748
|
+
const now = Date.now();
|
|
749
|
+
// Clean session reset: if cooldown expired AND enough time has passed
|
|
750
|
+
// since last disconnect, reset escalation (peer behaved for a while)
|
|
751
|
+
if (now >= ban.cooldownUntil && (now - ban.lastDisconnectAt) >= ACL_CLEAN_SESSION_MS) {
|
|
752
|
+
this.aclBanState.delete(senderPeerId);
|
|
753
|
+
this.obs.logger.info({ peerId: senderPeerId }, 'ACL ban state cleared — clean session window elapsed');
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
const activeBan = this.aclBanState.get(senderPeerId);
|
|
757
|
+
if (activeBan && Date.now() < activeBan.cooldownUntil) {
|
|
758
|
+
const remainingSec = Math.ceil((activeBan.cooldownUntil - Date.now()) / 1000);
|
|
759
|
+
const reason = `Reconnect refused: ACL cooldown active (${remainingSec}s remaining, disconnect #${activeBan.disconnects})`;
|
|
760
|
+
this.obs.logger.warn({ peerId: senderPeerId, remainingSec, disconnects: activeBan.disconnects }, reason);
|
|
761
|
+
// Warn the peer and close immediately
|
|
762
|
+
const framedStream = new FramedStream(stream);
|
|
763
|
+
try {
|
|
764
|
+
const enc = encoding.createEncoder();
|
|
765
|
+
encoding.writeVarUint(enc, messageYjsAccessViolation);
|
|
766
|
+
encoding.writeVarString(enc, reason);
|
|
767
|
+
const msg = encodeSubtreeMsg('_system', encoding.toUint8Array(enc));
|
|
768
|
+
await framedStream.writeMessage(msg);
|
|
769
|
+
}
|
|
770
|
+
catch { /* stream may already be broken */ }
|
|
771
|
+
framedStream.close();
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
712
774
|
// Close old sync stream if one exists (handles reconnect overlap)
|
|
713
775
|
if (peer.syncStream) {
|
|
714
776
|
peer.syncStream.close();
|
|
@@ -877,11 +939,15 @@ export class SyncEngine {
|
|
|
877
939
|
const identityId = peer.identityPeerId;
|
|
878
940
|
if (!identityId) {
|
|
879
941
|
this.obs.logger.warn({ subtreeId, peerId, authenticated: peer.authenticated }, 'SyncStep2 rejected: no identity for ACL-protected subtree');
|
|
942
|
+
if (await this.handleAclDenial(peerId, subtreeId, framedStream))
|
|
943
|
+
return;
|
|
880
944
|
break;
|
|
881
945
|
}
|
|
882
946
|
const check = this.acl.checkWrite(subtreeId, identityId);
|
|
883
947
|
if (!check.allowed) {
|
|
884
948
|
this.obs.logger.warn({ subtreeId, peerId, identityId }, 'SyncStep2 rejected: write denied');
|
|
949
|
+
if (await this.handleAclDenial(peerId, subtreeId, framedStream))
|
|
950
|
+
return;
|
|
885
951
|
break;
|
|
886
952
|
}
|
|
887
953
|
}
|
|
@@ -921,11 +987,15 @@ export class SyncEngine {
|
|
|
921
987
|
const identityId = peer.identityPeerId;
|
|
922
988
|
if (!identityId) {
|
|
923
989
|
this.obs.logger.warn({ subtreeId, peerId, authenticated: peer.authenticated }, 'update rejected: no identity for ACL-protected subtree');
|
|
990
|
+
if (await this.handleAclDenial(peerId, subtreeId, framedStream))
|
|
991
|
+
return;
|
|
924
992
|
break;
|
|
925
993
|
}
|
|
926
994
|
const check = this.acl.checkWrite(subtreeId, identityId);
|
|
927
995
|
if (!check.allowed) {
|
|
928
996
|
this.obs.logger.warn({ subtreeId, peerId, identityId }, 'update rejected: write denied');
|
|
997
|
+
if (await this.handleAclDenial(peerId, subtreeId, framedStream))
|
|
998
|
+
return;
|
|
929
999
|
break;
|
|
930
1000
|
}
|
|
931
1001
|
}
|
|
@@ -964,6 +1034,33 @@ export class SyncEngine {
|
|
|
964
1034
|
}
|
|
965
1035
|
break;
|
|
966
1036
|
}
|
|
1037
|
+
// @req FR-36
|
|
1038
|
+
case messageYjsAuthReset: {
|
|
1039
|
+
const snapshot = decoding.readVarUint8Array(decoder);
|
|
1040
|
+
if (!peer.authenticated) {
|
|
1041
|
+
this.obs.logger.warn({ subtreeId, peerId }, 'authoritative reset rejected: peer not authenticated');
|
|
1042
|
+
break;
|
|
1043
|
+
}
|
|
1044
|
+
this.obs.logger.info({ subtreeId, peerId, size: snapshot.byteLength }, 'authoritative reset received — replacing local subdoc');
|
|
1045
|
+
await this.yjsEngine.replaceSubdoc(subtreeId, snapshot);
|
|
1046
|
+
peer.syncedSubtrees.add(subtreeId);
|
|
1047
|
+
this.emitSubtreeStatus({
|
|
1048
|
+
subtreeId,
|
|
1049
|
+
state: 'synced',
|
|
1050
|
+
peerCount: this.countPeersForSubtree(subtreeId),
|
|
1051
|
+
lastSyncedAt: Date.now(),
|
|
1052
|
+
});
|
|
1053
|
+
if (!this.initialSyncDone.has(subtreeId)) {
|
|
1054
|
+
this.initialSyncDone.add(subtreeId);
|
|
1055
|
+
this.resolveSyncWaiters();
|
|
1056
|
+
}
|
|
1057
|
+
break;
|
|
1058
|
+
}
|
|
1059
|
+
case messageYjsAccessViolation: {
|
|
1060
|
+
const reason = decoding.readVarString(decoder);
|
|
1061
|
+
this.obs.logger.error({ peerId, reason }, 'access violation notice from server — connection will be closed');
|
|
1062
|
+
break;
|
|
1063
|
+
}
|
|
967
1064
|
case messageYjsSubtreeList: {
|
|
968
1065
|
const count = decoding.readVarUint(decoder);
|
|
969
1066
|
const subs = new Set();
|
|
@@ -1276,6 +1373,70 @@ export class SyncEngine {
|
|
|
1276
1373
|
this.pendingOps.push({ subtreeId, update });
|
|
1277
1374
|
}
|
|
1278
1375
|
}
|
|
1376
|
+
/**
|
|
1377
|
+
* Send an authoritative state reset to a peer after ACL write denial.
|
|
1378
|
+
*
|
|
1379
|
+
* Encodes the server's full subdoc state as a V2 update and sends it
|
|
1380
|
+
* as messageYjsAuthReset. The peer replaces its local subdoc entirely,
|
|
1381
|
+
* correcting any divergent state from the unauthorized write.
|
|
1382
|
+
*/
|
|
1383
|
+
// @req FR-36
|
|
1384
|
+
/**
|
|
1385
|
+
* Handle an ACL write denial: track the denial, then either send an
|
|
1386
|
+
* authoritative reset (under threshold) or warn and disconnect (over).
|
|
1387
|
+
*
|
|
1388
|
+
* Returns true if the peer was disconnected — caller should `return`
|
|
1389
|
+
* to exit the reader loop (the finally block handles cleanup).
|
|
1390
|
+
*/
|
|
1391
|
+
// @req FR-36
|
|
1392
|
+
async handleAclDenial(peerId, subtreeId, stream) {
|
|
1393
|
+
const now = Date.now();
|
|
1394
|
+
let tracker = this.denialTrackers.get(peerId);
|
|
1395
|
+
// Reset tracker if window expired
|
|
1396
|
+
if (!tracker || (now - tracker.firstDenialAt) > ACL_DENIAL_WINDOW_MS) {
|
|
1397
|
+
tracker = { count: 0, firstDenialAt: now, subtrees: new Set() };
|
|
1398
|
+
this.denialTrackers.set(peerId, tracker);
|
|
1399
|
+
}
|
|
1400
|
+
tracker.count++;
|
|
1401
|
+
tracker.subtrees.add(subtreeId);
|
|
1402
|
+
if (tracker.count >= ACL_DENIAL_THRESHOLD) {
|
|
1403
|
+
// Escalate ban state
|
|
1404
|
+
const ban = this.aclBanState.get(peerId);
|
|
1405
|
+
const disconnects = (ban?.disconnects ?? 0) + 1;
|
|
1406
|
+
const delayIndex = Math.min(disconnects - 1, ACL_BAN_DELAYS_MS.length - 1);
|
|
1407
|
+
const delayMs = ACL_BAN_DELAYS_MS[delayIndex];
|
|
1408
|
+
const cooldownUntil = now + delayMs;
|
|
1409
|
+
this.aclBanState.set(peerId, { disconnects, cooldownUntil, lastDisconnectAt: now });
|
|
1410
|
+
const delaySec = Math.round(delayMs / 1000);
|
|
1411
|
+
const reason = `Disconnected: ${tracker.count} ACL write violations across ${tracker.subtrees.size} subtree(s) within ${ACL_DENIAL_WINDOW_MS / 1000}s (disconnect #${disconnects}, cooldown ${delaySec}s)`;
|
|
1412
|
+
this.obs.logger.error({ peerId, denials: tracker.count, subtrees: [...tracker.subtrees], disconnects, cooldownSec: delaySec }, 'peer exceeded ACL denial threshold — disconnecting');
|
|
1413
|
+
// Send warning to offending peer before closing
|
|
1414
|
+
try {
|
|
1415
|
+
const enc = encoding.createEncoder();
|
|
1416
|
+
encoding.writeVarUint(enc, messageYjsAccessViolation);
|
|
1417
|
+
encoding.writeVarString(enc, reason);
|
|
1418
|
+
const msg = encodeSubtreeMsg('_system', encoding.toUint8Array(enc));
|
|
1419
|
+
await stream.writeMessage(msg);
|
|
1420
|
+
}
|
|
1421
|
+
catch { /* stream may already be broken */ }
|
|
1422
|
+
this.denialTrackers.delete(peerId);
|
|
1423
|
+
stream.close();
|
|
1424
|
+
return true;
|
|
1425
|
+
}
|
|
1426
|
+
// Under threshold — send authoritative reset to help peer correct
|
|
1427
|
+
await this.sendAuthoritativeReset(subtreeId, stream);
|
|
1428
|
+
return false;
|
|
1429
|
+
}
|
|
1430
|
+
async sendAuthoritativeReset(subtreeId, stream) {
|
|
1431
|
+
const doc = await this.yjsEngine.getSubdoc(subtreeId);
|
|
1432
|
+
const fullState = Y.encodeStateAsUpdateV2(doc);
|
|
1433
|
+
const enc = encoding.createEncoder();
|
|
1434
|
+
encoding.writeVarUint(enc, messageYjsAuthReset);
|
|
1435
|
+
encoding.writeVarUint8Array(enc, fullState);
|
|
1436
|
+
const msg = encodeSubtreeMsg(subtreeId, encoding.toUint8Array(enc));
|
|
1437
|
+
await stream.writeMessage(msg);
|
|
1438
|
+
this.obs.logger.debug({ subtreeId, size: fullState.byteLength }, 'authoritative reset sent to denied peer');
|
|
1439
|
+
}
|
|
1279
1440
|
// ── Diagnostic Protocol ──────────────────────────────────
|
|
1280
1441
|
/**
|
|
1281
1442
|
* Handle incoming diagnostic stream.
|
package/dist/sync-engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../src/sync-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../src/sync-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/yjs-engine.d.ts
CHANGED
|
@@ -30,6 +30,10 @@ export declare class YjsEngine {
|
|
|
30
30
|
private readonly mutationObservers;
|
|
31
31
|
/** Pending listeners for subdocs that haven't been loaded yet. */
|
|
32
32
|
private readonly pendingSubdocListeners;
|
|
33
|
+
/** Durable update listeners — survives unload/reload cycles. Keyed by subtreeId. */
|
|
34
|
+
private readonly durableUpdateListeners;
|
|
35
|
+
/** Callbacks invoked when a subdoc is unloaded from memory. */
|
|
36
|
+
private readonly unloadListeners;
|
|
33
37
|
constructor(storage: StorageBackend, obs: ObservabilityContext);
|
|
34
38
|
/**
|
|
35
39
|
* Get or create a subdocument for a subtree.
|
|
@@ -145,8 +149,25 @@ export declare class YjsEngine {
|
|
|
145
149
|
/**
|
|
146
150
|
* Unload a subdocument from memory (Tier 1 eviction).
|
|
147
151
|
* State is already persisted on disk.
|
|
152
|
+
*
|
|
153
|
+
* Durable update listeners are moved back to pending so they
|
|
154
|
+
* re-attach automatically when the subdoc is next loaded.
|
|
148
155
|
*/
|
|
149
156
|
unloadSubdoc(subtreeId: string): void;
|
|
157
|
+
/**
|
|
158
|
+
* Replace a subdocument with an authoritative snapshot.
|
|
159
|
+
*
|
|
160
|
+
* Used when the server rejects a peer's unauthorized write and sends
|
|
161
|
+
* back the correct state. The local doc is destroyed, the authoritative
|
|
162
|
+
* state is persisted, and a fresh doc is loaded with all observers
|
|
163
|
+
* re-attached via the standard loadSubdoc() lifecycle.
|
|
164
|
+
*/
|
|
165
|
+
replaceSubdoc(subtreeId: string, authoritativeUpdateV2: Uint8Array): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Register a callback invoked when a subdoc is unloaded from memory.
|
|
168
|
+
* Used by server components to clean up per-subtree tracking.
|
|
169
|
+
*/
|
|
170
|
+
onUnload(callback: (subtreeId: string) => void): Unsubscribe;
|
|
150
171
|
/**
|
|
151
172
|
* Get info about loaded subdocuments (for eviction manager).
|
|
152
173
|
*/
|
package/dist/yjs-engine.js
CHANGED
|
@@ -46,6 +46,10 @@ export class YjsEngine {
|
|
|
46
46
|
mutationObservers = new Set();
|
|
47
47
|
/** Pending listeners for subdocs that haven't been loaded yet. */
|
|
48
48
|
pendingSubdocListeners = new Map();
|
|
49
|
+
/** Durable update listeners — survives unload/reload cycles. Keyed by subtreeId. */
|
|
50
|
+
durableUpdateListeners = new Map();
|
|
51
|
+
/** Callbacks invoked when a subdoc is unloaded from memory. */
|
|
52
|
+
unloadListeners = new Set();
|
|
49
53
|
constructor(storage, obs) {
|
|
50
54
|
this.storage = storage;
|
|
51
55
|
this.obs = obs;
|
|
@@ -364,6 +368,13 @@ export class YjsEngine {
|
|
|
364
368
|
*/
|
|
365
369
|
onSubdocUpdate(subtreeId, listener) {
|
|
366
370
|
const entry = { subtreeId, listener };
|
|
371
|
+
// Track in durable set so the listener survives unload/reload cycles
|
|
372
|
+
let durable = this.durableUpdateListeners.get(subtreeId);
|
|
373
|
+
if (!durable) {
|
|
374
|
+
durable = new Set();
|
|
375
|
+
this.durableUpdateListeners.set(subtreeId, durable);
|
|
376
|
+
}
|
|
377
|
+
durable.add(entry);
|
|
367
378
|
const existing = this.subdocs.get(subtreeId);
|
|
368
379
|
if (existing) {
|
|
369
380
|
// Subdoc already loaded — attach immediately
|
|
@@ -381,6 +392,13 @@ export class YjsEngine {
|
|
|
381
392
|
pending.add(entry);
|
|
382
393
|
}
|
|
383
394
|
return () => {
|
|
395
|
+
// Remove from durable tracking
|
|
396
|
+
const durableSet = this.durableUpdateListeners.get(subtreeId);
|
|
397
|
+
if (durableSet) {
|
|
398
|
+
durableSet.delete(entry);
|
|
399
|
+
if (durableSet.size === 0)
|
|
400
|
+
this.durableUpdateListeners.delete(subtreeId);
|
|
401
|
+
}
|
|
384
402
|
if (entry.unsub) {
|
|
385
403
|
entry.unsub();
|
|
386
404
|
}
|
|
@@ -546,17 +564,66 @@ export class YjsEngine {
|
|
|
546
564
|
/**
|
|
547
565
|
* Unload a subdocument from memory (Tier 1 eviction).
|
|
548
566
|
* State is already persisted on disk.
|
|
567
|
+
*
|
|
568
|
+
* Durable update listeners are moved back to pending so they
|
|
569
|
+
* re-attach automatically when the subdoc is next loaded.
|
|
549
570
|
*/
|
|
550
571
|
unloadSubdoc(subtreeId) {
|
|
551
572
|
const doc = this.subdocs.get(subtreeId);
|
|
552
573
|
if (doc) {
|
|
574
|
+
// Move durable update listeners back to pending before destroying
|
|
575
|
+
const durable = this.durableUpdateListeners.get(subtreeId);
|
|
576
|
+
if (durable && durable.size > 0) {
|
|
577
|
+
let pending = this.pendingSubdocListeners.get(subtreeId);
|
|
578
|
+
if (!pending) {
|
|
579
|
+
pending = new Set();
|
|
580
|
+
this.pendingSubdocListeners.set(subtreeId, pending);
|
|
581
|
+
}
|
|
582
|
+
for (const entry of durable) {
|
|
583
|
+
entry.unsub = undefined; // old handler is dead after destroy()
|
|
584
|
+
pending.add(entry);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
553
587
|
doc.destroy();
|
|
554
588
|
this.subdocs.delete(subtreeId);
|
|
555
589
|
this.lastAccess.delete(subtreeId);
|
|
556
590
|
this.accessCount.delete(subtreeId);
|
|
591
|
+
// Notify consumers (e.g. SietchServer clears bridgedSubtrees)
|
|
592
|
+
for (const cb of this.unloadListeners) {
|
|
593
|
+
cb(subtreeId);
|
|
594
|
+
}
|
|
557
595
|
this.obs.logger.debug({ subtreeId }, 'subdoc unloaded from memory');
|
|
558
596
|
}
|
|
559
597
|
}
|
|
598
|
+
/**
|
|
599
|
+
* Replace a subdocument with an authoritative snapshot.
|
|
600
|
+
*
|
|
601
|
+
* Used when the server rejects a peer's unauthorized write and sends
|
|
602
|
+
* back the correct state. The local doc is destroyed, the authoritative
|
|
603
|
+
* state is persisted, and a fresh doc is loaded with all observers
|
|
604
|
+
* re-attached via the standard loadSubdoc() lifecycle.
|
|
605
|
+
*/
|
|
606
|
+
// @req FR-36
|
|
607
|
+
async replaceSubdoc(subtreeId, authoritativeUpdateV2) {
|
|
608
|
+
// 1. Unload old doc (destroy, move durable listeners to pending)
|
|
609
|
+
this.unloadSubdoc(subtreeId);
|
|
610
|
+
// 2. Create temp doc, apply authoritative state, persist
|
|
611
|
+
const freshDoc = new Y.Doc();
|
|
612
|
+
Y.applyUpdateV2(freshDoc, authoritativeUpdateV2);
|
|
613
|
+
const state = encodeForPersistence(freshDoc);
|
|
614
|
+
await this.storage.persistSubdoc(subtreeId, state);
|
|
615
|
+
freshDoc.destroy();
|
|
616
|
+
// 3. Reload via standard path (re-wires all observers automatically)
|
|
617
|
+
await this.getSubdoc(subtreeId);
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* Register a callback invoked when a subdoc is unloaded from memory.
|
|
621
|
+
* Used by server components to clean up per-subtree tracking.
|
|
622
|
+
*/
|
|
623
|
+
onUnload(callback) {
|
|
624
|
+
this.unloadListeners.add(callback);
|
|
625
|
+
return () => { this.unloadListeners.delete(callback); };
|
|
626
|
+
}
|
|
560
627
|
/**
|
|
561
628
|
* Get info about loaded subdocuments (for eviction manager).
|
|
562
629
|
*/
|
|
@@ -590,8 +657,10 @@ export class YjsEngine {
|
|
|
590
657
|
unsub();
|
|
591
658
|
}
|
|
592
659
|
this.mutationObservers.clear();
|
|
593
|
-
// Clean up pending subdoc listeners
|
|
660
|
+
// Clean up pending and durable subdoc listeners
|
|
594
661
|
this.pendingSubdocListeners.clear();
|
|
662
|
+
this.durableUpdateListeners.clear();
|
|
663
|
+
this.unloadListeners.clear();
|
|
595
664
|
for (const doc of this.subdocs.values()) {
|
|
596
665
|
doc.destroy();
|
|
597
666
|
}
|
package/dist/yjs-engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yjs-engine.js","sourceRoot":"","sources":["../src/yjs-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yjs-engine.js","sourceRoot":"","sources":["../src/yjs-engine.ts"],"names":[],"mappings":"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"}
|