sietch 0.12.1 → 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 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":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,WAAW,GAIZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,QAAQ,GACT,MAAM,aAAa,CAAC;AAgCrB,8DAA8D;AAE9D,aAAa;AACb,MAAM,OAAO,UAAU;IAKQ;IAJ7B,8CAA8C;IAC7B,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,eAAe,GAA2B,IAAI,CAAC;IAEvD,YAA6B,GAAyB;QAAzB,QAAG,GAAH,GAAG,CAAsB;IAAG,CAAC;IAE1D;;OAEG;IACH,kBAAkB,CAAC,EAAmB;QACpC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,aAAa;IACb,kBAAkB,CAAC,IAAsB;QACvC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,iDAAiD;YACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,mBAAmB,CAAC;YAClC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,gCAAgC,CAAC,CAAC;YACtF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,wBAAwB,EAAE,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,SAAiB,EAAE,MAAc,EAAE,MAAyB;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE1C,uBAAuB;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxE,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5C,CAAC;YACD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5C,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB,EAAE,MAAc;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxE,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB,EAAE,MAAc;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,6BAA6B;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,aAAa,CACX,SAAiB,EACjB,SAAiB,EACjB,WAA2B;QAE3B,mCAAmC;QACnC,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,mCAAmC,EAAE,eAAe,CAAC,EAAE,CAAC;QAClG,CAAC;QACD,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,oCAAoC,EAAE,eAAe,CAAC,EAAE,CAAC;QACnG,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,8BAA8B,CAAC,EAAE,CAAC;QACzF,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,SAAiB,EAAE,SAAiB,EAAE,QAAgB;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,EAAE,CAAC;QAChF,CAAC;QAED,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC7F,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,qBAAqB,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAC1F,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,SAAiB,EACjB,OAAe,EACf,GAAW,EACX,SAAkB;QAElB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,YAAY,CACV,GAAW,EACX,cAA+C;QAE/C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,MAAM,WAAW,GAA+B,EAAE,CAAC;QAEnD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,EAAE,EAAE,CAAC;gBACP,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,SAAS,CACP,GAAW,EACX,cAA+C;QAE/C,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF;AAED,8DAA8D;AAE9D,+DAA+D;AAC/D,SAAS,mBAAmB,CAAC,OAAmB;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,wCAAwC;AACxC,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,6DAA6D;AAE7D;;;;;GAKG;AACH,aAAa;AACb,MAAM,UAAU,gBAAgB,CAAC,IAAsB;IACrD,MAAM,MAAM,GAA8B;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAA2C;QACrD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;QACnC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;KACpC,CAAC;IACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAiC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,aAAa;AACb,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,IACE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAClC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS;QACnC,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI;QACjD,CAAC,CAAC,IAAI,CAAC,WAAW,YAAY,UAAU,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,WAAW,YAAY,UAAU,CAAC,EACzC,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,IAAI,GAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAwB;QAClC,SAAS,EAAE;YACT,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,OAAO,EAAE,IAAI,CAAC,WAAW;SAC1B;KACF,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9G,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAkC,CAAC;IACtD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -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,7 +10,12 @@
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';
15
+ // AMD-006: libp2p peerIds are base58-encoded multihashes with stable
16
+ // prefixes — Ed25519 starts with "12D3KooW", legacy RSA with "Qm".
17
+ // Sietch identity peerIds are lowercase-hex digests (no such prefix).
18
+ const LIBP2P_PEERID_SHAPE = /^(12D3KooW|Qm[1-9A-HJ-NP-Za-km-z]{43,46})/;
14
19
  /** Default signing backend wrapping a HybridKeypair. */
15
20
  export class DefaultSigningBackend {
16
21
  keypair;
@@ -149,6 +154,17 @@ export class ServerAclAuthority {
149
154
  getRefNode(subtreeId) {
150
155
  return this.refNodes.get(subtreeId);
151
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
+ }
152
168
  /**
153
169
  * Verify that a reference node was signed by this server.
154
170
  */
@@ -171,6 +187,14 @@ export class ServerAclAuthority {
171
187
  if (!request.permissions) {
172
188
  return { ok: false, error: new AclError('Grant requires permissions', 'ACL_MISSING_PERMS') };
173
189
  }
190
+ // AMD-006: warn if targetUserId looks like a libp2p peerId. Sietch
191
+ // identityPeerIds are 32-byte hex digests; libp2p peerIds are
192
+ // base58-encoded multihashes starting with `12D3` (Ed25519) or `Qm`
193
+ // (RSA). Grants keyed against libp2p peerIds silently no-op because
194
+ // the sync gate checks sietch identityPeerId.
195
+ if (LIBP2P_PEERID_SHAPE.test(request.targetUserId)) {
196
+ this.obs.logger.warn({ subtreeId: request.subtreeId, targetUserId: request.targetUserId }, '[AMD-006] ACL grant target looks like a libp2p peerId — write gate keys on sietch identityPeerId. Grants against libp2p peerIds silently no-op. Use ctx.aclTarget (== ctx.sietchIdentityPeerId) from the HandshakeHook instead.');
197
+ }
174
198
  // For existing subtrees, validate requester is admin
175
199
  if (existing) {
176
200
  const requesterPerms = existing.acl[request.requesterId];
@@ -1 +1 @@
1
- {"version":3,"file":"acl-authority.js","sourceRoot":"","sources":["../../src/server/acl-authority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acl-authority.js","sourceRoot":"","sources":["../../src/server/acl-authority.ts"],"names":[],"mappings":"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"}
@@ -7,15 +7,24 @@
7
7
  *
8
8
  * The pool is NOT owned by this backend — close() is a no-op.
9
9
  * The caller owns the pool and may share it with PostgreSQLDatabaseAdapter.
10
+ *
11
+ * AMD-008: `pg.Pool` emits an `'error'` event when a connection is closed
12
+ * by the server (administrator command, restart, ECONNRESET); unhandled,
13
+ * this crashes the process. The constructor now registers a listener so
14
+ * such errors are logged and swallowed. All queries are wrapped in a
15
+ * retry-on-transient loop (3 attempts, 100/500/2500 ms backoff) so a
16
+ * brief PG bounce no longer fails caller writes.
10
17
  */
11
18
  import pg from 'pg';
12
19
  import type { StorageBackend } from '../storage.js';
13
20
  import type { StorageCapacity } from '../types.js';
21
+ import type { ObservabilityContext } from '../observability.js';
14
22
  export declare class PostgresStorageBackend implements StorageBackend {
15
23
  readonly type: "postgres";
16
24
  private pool;
17
25
  private schemaReady;
18
- constructor(pool: pg.Pool);
26
+ private obs;
27
+ constructor(pool: pg.Pool, obs?: ObservabilityContext);
19
28
  /**
20
29
  * Ensure required tables exist. Idempotent — safe to call on every startup.
21
30
  * Does NOT create `nodes`, `node_history`, `vectors`, or AGE graph —
@@ -47,4 +56,12 @@ export declare class PostgresStorageBackend implements StorageBackend {
47
56
  close(): Promise<void>;
48
57
  private kvUpsert;
49
58
  private kvLoad;
59
+ /**
60
+ * AMD-008: per-query retry on transient PG errors.
61
+ *
62
+ * Retries up to 3 times (4 total attempts) on `terminating connection`,
63
+ * `ECONNRESET`, and similar disconnect classes. Backoff: 100, 500, 2500 ms.
64
+ * Permanent errors (auth, syntax, schema) bypass retries and throw.
65
+ */
66
+ private runQuery;
50
67
  }
@@ -7,14 +7,47 @@
7
7
  *
8
8
  * The pool is NOT owned by this backend — close() is a no-op.
9
9
  * The caller owns the pool and may share it with PostgreSQLDatabaseAdapter.
10
+ *
11
+ * AMD-008: `pg.Pool` emits an `'error'` event when a connection is closed
12
+ * by the server (administrator command, restart, ECONNRESET); unhandled,
13
+ * this crashes the process. The constructor now registers a listener so
14
+ * such errors are logged and swallowed. All queries are wrapped in a
15
+ * retry-on-transient loop (3 attempts, 100/500/2500 ms backoff) so a
16
+ * brief PG bounce no longer fails caller writes.
10
17
  */
18
+ // AMD-008: transient PG error class detection. We retry on:
19
+ // - Connection terminated by administrator (`57P01`)
20
+ // - Crash shutdown (`57P02`), cannot connect now (`57P03`)
21
+ // - Admin shutdown (`57P04`), idle session timeout (`57P05`)
22
+ // - ECONNRESET / EPIPE / read ECONNRESET at the socket layer
23
+ // - "Connection terminated unexpectedly" — node-postgres pool message
24
+ const TRANSIENT_PG_CODES = new Set(['57P01', '57P02', '57P03', '57P04', '57P05']);
25
+ const TRANSIENT_PG_MESSAGE = /terminating connection|Connection terminated|ECONNRESET|EPIPE|read ECONNRESET|server closed the connection unexpectedly/i;
26
+ function isTransientPgError(err) {
27
+ if (!err || typeof err !== 'object')
28
+ return false;
29
+ const e = err;
30
+ if (typeof e.code === 'string' && TRANSIENT_PG_CODES.has(e.code))
31
+ return true;
32
+ if (typeof e.message === 'string' && TRANSIENT_PG_MESSAGE.test(e.message))
33
+ return true;
34
+ return false;
35
+ }
36
+ const RETRY_DELAYS_MS = [100, 500, 2500];
11
37
  // @req FR-02
12
38
  export class PostgresStorageBackend {
13
39
  type = 'postgres';
14
40
  pool;
15
41
  schemaReady = false;
16
- constructor(pool) {
42
+ obs;
43
+ constructor(pool, obs) {
17
44
  this.pool = pool;
45
+ this.obs = obs;
46
+ // AMD-008: trap pool-level errors that otherwise propagate as
47
+ // uncaughtException and crash the process during PG restarts.
48
+ pool.on('error', (err) => {
49
+ this.obs?.logger.warn({ err: String(err), code: err.code }, '[AMD-008] pg.Pool error swallowed — query-level retry will handle reconnection');
50
+ });
18
51
  }
19
52
  /**
20
53
  * Ensure required tables exist. Idempotent — safe to call on every startup.
@@ -24,14 +57,14 @@ export class PostgresStorageBackend {
24
57
  async ensureSchema() {
25
58
  if (this.schemaReady)
26
59
  return;
27
- await this.pool.query(`
60
+ await this.runQuery(`
28
61
  CREATE TABLE IF NOT EXISTS subdoc_states (
29
62
  subtree_id TEXT PRIMARY KEY,
30
63
  yjs_state BYTEA NOT NULL,
31
64
  updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
32
65
  )
33
66
  `);
34
- await this.pool.query(`
67
+ await this.runQuery(`
35
68
  CREATE TABLE IF NOT EXISTS sietch_kv (
36
69
  key TEXT PRIMARY KEY,
37
70
  value BYTEA NOT NULL,
@@ -42,22 +75,22 @@ export class PostgresStorageBackend {
42
75
  }
43
76
  // ── Subdoc persistence ──────────────────────────────────
44
77
  async persistSubdoc(subtreeId, state) {
45
- await this.pool.query(`INSERT INTO subdoc_states (subtree_id, yjs_state, updated_at)
78
+ await this.runQuery(`INSERT INTO subdoc_states (subtree_id, yjs_state, updated_at)
46
79
  VALUES ($1, $2, now())
47
80
  ON CONFLICT (subtree_id) DO UPDATE SET yjs_state = $2, updated_at = now()`, [subtreeId, Buffer.from(state)]);
48
81
  }
49
82
  async loadSubdoc(subtreeId) {
50
- const result = await this.pool.query('SELECT yjs_state FROM subdoc_states WHERE subtree_id = $1', [subtreeId]);
83
+ const result = await this.runQuery('SELECT yjs_state FROM subdoc_states WHERE subtree_id = $1', [subtreeId]);
51
84
  if (result.rows.length === 0)
52
85
  return null;
53
86
  const buf = result.rows[0].yjs_state;
54
87
  return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
55
88
  }
56
89
  async deleteSubdoc(subtreeId) {
57
- await this.pool.query('DELETE FROM subdoc_states WHERE subtree_id = $1', [subtreeId]);
90
+ await this.runQuery('DELETE FROM subdoc_states WHERE subtree_id = $1', [subtreeId]);
58
91
  }
59
92
  async listSubdocs() {
60
- const result = await this.pool.query('SELECT subtree_id FROM subdoc_states ORDER BY subtree_id');
93
+ const result = await this.runQuery('SELECT subtree_id FROM subdoc_states ORDER BY subtree_id');
61
94
  return result.rows.map((row) => row.subtree_id);
62
95
  }
63
96
  // ── Capacity ────────────────────────────────────────────
@@ -94,7 +127,7 @@ export class PostgresStorageBackend {
94
127
  await this.kvUpsert(`meta:${id}`, encoded);
95
128
  }
96
129
  async listSubdocMetadata() {
97
- const result = await this.pool.query("SELECT key, value FROM sietch_kv WHERE key LIKE 'meta:%' ORDER BY key");
130
+ const result = await this.runQuery("SELECT key, value FROM sietch_kv WHERE key LIKE 'meta:%' ORDER BY key");
98
131
  return result.rows.map((row) => {
99
132
  const id = row.key.slice(5); // strip 'meta:'
100
133
  const meta = JSON.parse(row.value.toString());
@@ -107,16 +140,42 @@ export class PostgresStorageBackend {
107
140
  }
108
141
  // ── Private helpers ─────────────────────────────────────
109
142
  async kvUpsert(key, value) {
110
- await this.pool.query(`INSERT INTO sietch_kv (key, value, updated_at)
143
+ await this.runQuery(`INSERT INTO sietch_kv (key, value, updated_at)
111
144
  VALUES ($1, $2, now())
112
145
  ON CONFLICT (key) DO UPDATE SET value = $2, updated_at = now()`, [key, value]);
113
146
  }
114
147
  async kvLoad(key) {
115
- const result = await this.pool.query('SELECT value FROM sietch_kv WHERE key = $1', [key]);
148
+ const result = await this.runQuery('SELECT value FROM sietch_kv WHERE key = $1', [key]);
116
149
  if (result.rows.length === 0)
117
150
  return null;
118
151
  const buf = result.rows[0].value;
119
152
  return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
120
153
  }
154
+ /**
155
+ * AMD-008: per-query retry on transient PG errors.
156
+ *
157
+ * Retries up to 3 times (4 total attempts) on `terminating connection`,
158
+ * `ECONNRESET`, and similar disconnect classes. Backoff: 100, 500, 2500 ms.
159
+ * Permanent errors (auth, syntax, schema) bypass retries and throw.
160
+ */
161
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
162
+ async runQuery(text, params) {
163
+ let lastErr;
164
+ for (let attempt = 0; attempt <= RETRY_DELAYS_MS.length; attempt++) {
165
+ try {
166
+ return await this.pool.query(text, params);
167
+ }
168
+ catch (err) {
169
+ lastErr = err;
170
+ if (!isTransientPgError(err) || attempt === RETRY_DELAYS_MS.length) {
171
+ throw err;
172
+ }
173
+ const delay = RETRY_DELAYS_MS[attempt];
174
+ this.obs?.logger.warn({ attempt: attempt + 1, delay, err: String(err) }, '[AMD-008] transient PG error, retrying');
175
+ await new Promise((r) => setTimeout(r, delay));
176
+ }
177
+ }
178
+ throw lastErr;
179
+ }
121
180
  }
122
181
  //# sourceMappingURL=pg-storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pg-storage.js","sourceRoot":"","sources":["../../src/server/pg-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pg-storage.js","sourceRoot":"","sources":["../../src/server/pg-storage.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,10 @@ import { type PublicIdentity } from '../identity.js';
16
16
  import { type StorageBackend } from '../storage.js';
17
17
  import type { SyncConfig, HandshakeHook } from '../sync-engine.js';
18
18
  import { type DatabaseAdapter } from './query-bridge.js';
19
- import { type AclSigningBackend } from './acl-authority.js';
19
+ import { ServerAclAuthority, type AclSigningBackend } from './acl-authority.js';
20
+ import { type AclReferenceNode } from '../acl.js';
21
+ import type { AclPermissions } from '../types.js';
22
+ import type { HybridPublicKey } from '../crypto.js';
20
23
  import type { CrdtValue, EvictionPolicy, MutationEvent, StorageMetrics, StorageType, Unsubscribe, WriteConfirmation, ReadResult } from '../types.js';
21
24
  /** Server-side eviction options (Tier 1 only — memory to disk). */
22
25
  export interface ServerEvictionOptions extends EvictionPolicy {
@@ -67,6 +70,14 @@ export interface ServerOptions {
67
70
  * See AMD-002 / FR-67.
68
71
  */
69
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[];
70
81
  }
71
82
  export declare class SietchServer {
72
83
  private readonly yjsEngine;
@@ -76,7 +87,7 @@ export declare class SietchServer {
76
87
  private readonly obs;
77
88
  private readonly storage;
78
89
  private queryBridge?;
79
- private aclAuthority?;
90
+ private _aclAuthority?;
80
91
  private evictionMgr?;
81
92
  /** Private — use createServer(). */
82
93
  private constructor();
@@ -124,6 +135,85 @@ export declare class SietchServer {
124
135
  cleared: boolean;
125
136
  priorDisconnects: number;
126
137
  };
138
+ /**
139
+ * AMD-009: read-only access to the underlying `ServerAclAuthority`.
140
+ *
141
+ * `undefined` if `aclSigningBackend` was not passed to `createServer`.
142
+ * Use this when you need direct access to the authority primitives
143
+ * (e.g. low-level `processChange` or CEK handling for encrypted
144
+ * subtrees). For most flows the high-level `setAcl` / `grant` /
145
+ * `revoke` / `createOwnedSubtree` methods below are friendlier.
146
+ *
147
+ * @req FR-28
148
+ * @req FR-36
149
+ */
150
+ get aclAuthority(): ServerAclAuthority | undefined;
151
+ /**
152
+ * AMD-009: persist an ACL reference node into `_keys.{subtreeId}` and
153
+ * apply it to the local `AclManager`. Mirrors `Store.setAcl` for the
154
+ * server role. Connected clients receive the update via the existing
155
+ * `initAclSync` listener on their side.
156
+ *
157
+ * Typically called internally by `grant` / `revoke` /
158
+ * `createOwnedSubtree`. Exposed for advanced integrations that compute
159
+ * a ref node out-of-band (e.g. signed by an external HSM).
160
+ *
161
+ * @req FR-28
162
+ * @req FR-36
163
+ */
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>;
176
+ /**
177
+ * AMD-009: create a server-owned subtree with an initial ACL granting
178
+ * only the server admin perms. Persists the ref node into `_keys` and
179
+ * propagates to connected peers.
180
+ *
181
+ * Throws if `aclSigningBackend` was not configured at `createServer`
182
+ * time — no authority to sign with.
183
+ *
184
+ * @req FR-36
185
+ * @req FR-72
186
+ */
187
+ createOwnedSubtree(subtreeId: string, opts?: {
188
+ encrypted?: boolean;
189
+ userPublicKeys?: Map<string, HybridPublicKey>;
190
+ }): Promise<AclReferenceNode>;
191
+ /**
192
+ * AMD-009: grant permissions on a subtree to a target identity peerId.
193
+ *
194
+ * **`identityPeerId` must be the sietch identity peerId**
195
+ * (`ctx.aclTarget` / `ctx.sietchIdentityPeerId` from `HandshakeHook`),
196
+ * NOT the libp2p `ctx.peerId`. AMD-006 added a runtime WARN for the
197
+ * libp2p-shaped mismatch.
198
+ *
199
+ * If the subtree doesn't exist yet, it is created server-owned and
200
+ * unencrypted before the grant is applied. Subsequent calls add to
201
+ * the existing ACL.
202
+ *
203
+ * @req FR-28
204
+ * @req FR-36
205
+ * @req FR-67
206
+ */
207
+ grant(subtreeId: string, identityPeerId: string, permissions: AclPermissions): Promise<AclReferenceNode>;
208
+ /**
209
+ * AMD-009: revoke a target identity peerId's permissions on a subtree.
210
+ *
211
+ * Throws if the subtree doesn't exist or the authority isn't configured.
212
+ *
213
+ * @req FR-28
214
+ * @req FR-36
215
+ */
216
+ revoke(subtreeId: string, identityPeerId: string): Promise<AclReferenceNode>;
127
217
  /** Get eviction metrics (requires eviction option). */
128
218
  getEvictionMetrics(): Promise<StorageMetrics | null>;
129
219
  /** Gracefully shut down all subsystems. */