@harperfast/harper 5.3.0 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/bin/copyDb.ts +5 -1
  2. package/bin/deployRenderer.ts +3 -0
  3. package/components/Application.ts +66 -22
  4. package/components/DESIGN.md +89 -36
  5. package/components/componentLoader.ts +2 -0
  6. package/components/deploymentRecorder.ts +18 -1
  7. package/components/installFingerprint.ts +123 -0
  8. package/components/mcp/DESIGN.md +4 -4
  9. package/components/operations.js +29 -0
  10. package/config/DESIGN.md +5 -5
  11. package/dataLayer/DESIGN.md +37 -22
  12. package/dataLayer/backupRepository.ts +248 -0
  13. package/dataLayer/restoreMarker.ts +30 -75
  14. package/dataLayer/rocksdbBackup.ts +253 -110
  15. package/dist/bin/copyDb.js +3 -0
  16. package/dist/bin/copyDb.js.map +1 -1
  17. package/dist/bin/deployRenderer.js +3 -0
  18. package/dist/bin/deployRenderer.js.map +1 -1
  19. package/dist/components/Application.d.ts +5 -0
  20. package/dist/components/Application.js +51 -19
  21. package/dist/components/Application.js.map +1 -1
  22. package/dist/components/componentLoader.js +2 -0
  23. package/dist/components/componentLoader.js.map +1 -1
  24. package/dist/components/deploymentRecorder.js +18 -1
  25. package/dist/components/deploymentRecorder.js.map +1 -1
  26. package/dist/components/installFingerprint.d.ts +39 -0
  27. package/dist/components/installFingerprint.js +113 -0
  28. package/dist/components/installFingerprint.js.map +1 -0
  29. package/dist/components/operations.d.ts +2 -0
  30. package/dist/components/operations.js +31 -0
  31. package/dist/components/operations.js.map +1 -1
  32. package/dist/dataLayer/backupRepository.d.ts +33 -0
  33. package/dist/dataLayer/backupRepository.js +232 -0
  34. package/dist/dataLayer/backupRepository.js.map +1 -0
  35. package/dist/dataLayer/restoreMarker.d.ts +4 -1
  36. package/dist/dataLayer/restoreMarker.js +29 -68
  37. package/dist/dataLayer/restoreMarker.js.map +1 -1
  38. package/dist/dataLayer/rocksdbBackup.js +221 -112
  39. package/dist/dataLayer/rocksdbBackup.js.map +1 -1
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/json/systemSchema.json +14 -0
  43. package/dist/resources/DatabaseTransaction.d.ts +140 -11
  44. package/dist/resources/DatabaseTransaction.js +1055 -464
  45. package/dist/resources/DatabaseTransaction.js.map +1 -1
  46. package/dist/resources/IterableEventQueue.d.ts +2 -1
  47. package/dist/resources/IterableEventQueue.js +16 -8
  48. package/dist/resources/IterableEventQueue.js.map +1 -1
  49. package/dist/resources/LMDBTransaction.d.ts +13 -2
  50. package/dist/resources/LMDBTransaction.js +219 -93
  51. package/dist/resources/LMDBTransaction.js.map +1 -1
  52. package/dist/resources/RecordEncoder.js +2 -3
  53. package/dist/resources/RecordEncoder.js.map +1 -1
  54. package/dist/resources/Resource.js +5 -6
  55. package/dist/resources/Resource.js.map +1 -1
  56. package/dist/resources/ResourceInterface.d.ts +3 -1
  57. package/dist/resources/ResourceInterface.js.map +1 -1
  58. package/dist/resources/RocksIndexStore.d.ts +2 -1
  59. package/dist/resources/RocksIndexStore.js +3 -0
  60. package/dist/resources/RocksIndexStore.js.map +1 -1
  61. package/dist/resources/Table.js +116 -12
  62. package/dist/resources/Table.js.map +1 -1
  63. package/dist/resources/analytics/write.js +6 -2
  64. package/dist/resources/analytics/write.js.map +1 -1
  65. package/dist/resources/auditStore.d.ts +71 -17
  66. package/dist/resources/auditStore.js +248 -64
  67. package/dist/resources/auditStore.js.map +1 -1
  68. package/dist/resources/branchDatabase.js +2 -0
  69. package/dist/resources/branchDatabase.js.map +1 -1
  70. package/dist/resources/databases.js +8 -2
  71. package/dist/resources/databases.js.map +1 -1
  72. package/dist/resources/indexes/fullTextNativeBinding.d.ts +6 -2
  73. package/dist/resources/indexes/fullTextNativeBinding.js +12 -2
  74. package/dist/resources/indexes/fullTextNativeBinding.js.map +1 -1
  75. package/dist/resources/indexes/fullTextQueryIndex.d.ts +4 -0
  76. package/dist/resources/indexes/fullTextQueryIndex.js +207 -10
  77. package/dist/resources/indexes/fullTextQueryIndex.js.map +1 -1
  78. package/dist/resources/models/Models.d.ts +11 -0
  79. package/dist/resources/models/Models.js +95 -4
  80. package/dist/resources/models/Models.js.map +1 -1
  81. package/dist/resources/models/backendRegistry.d.ts +8 -0
  82. package/dist/resources/models/backendRegistry.js +15 -1
  83. package/dist/resources/models/backendRegistry.js.map +1 -1
  84. package/dist/resources/models/bootstrap.d.ts +2 -0
  85. package/dist/resources/models/bootstrap.js +6 -0
  86. package/dist/resources/models/bootstrap.js.map +1 -1
  87. package/dist/resources/models/calibration.d.ts +88 -0
  88. package/dist/resources/models/calibration.js +244 -0
  89. package/dist/resources/models/calibration.js.map +1 -0
  90. package/dist/resources/models/calibrationStore.d.ts +163 -0
  91. package/dist/resources/models/calibrationStore.js +986 -0
  92. package/dist/resources/models/calibrationStore.js.map +1 -0
  93. package/dist/resources/models/decisionStore.d.ts +24 -0
  94. package/dist/resources/models/decisionStore.js +45 -0
  95. package/dist/resources/models/decisionStore.js.map +1 -1
  96. package/dist/resources/models/generativeDecision.js +44 -15
  97. package/dist/resources/models/generativeDecision.js.map +1 -1
  98. package/dist/resources/models/types.d.ts +7 -0
  99. package/dist/resources/recordLock.d.ts +8 -5
  100. package/dist/resources/recordLock.js +6 -4
  101. package/dist/resources/recordLock.js.map +1 -1
  102. package/dist/resources/replayLogs.js +8 -1
  103. package/dist/resources/replayLogs.js.map +1 -1
  104. package/dist/resources/scheduler/engine.d.ts +4 -0
  105. package/dist/resources/scheduler/engine.js +30 -2
  106. package/dist/resources/scheduler/engine.js.map +1 -1
  107. package/dist/resources/search.d.ts +16 -4
  108. package/dist/resources/search.js +117 -13
  109. package/dist/resources/search.js.map +1 -1
  110. package/dist/resources/transaction.js +85 -5
  111. package/dist/resources/transaction.js.map +1 -1
  112. package/dist/resources/transactionBroadcast.d.ts +8 -0
  113. package/dist/resources/transactionBroadcast.js +65 -0
  114. package/dist/resources/transactionBroadcast.js.map +1 -1
  115. package/dist/security/keys.d.ts +1 -1
  116. package/dist/security/keys.js +170 -120
  117. package/dist/security/keys.js.map +1 -1
  118. package/dist/server/http.js +10 -0
  119. package/dist/server/http.js.map +1 -1
  120. package/dist/server/serverHelpers/Request.js +11 -2
  121. package/dist/server/serverHelpers/Request.js.map +1 -1
  122. package/dist/server/serverHelpers/contentTypes.js +8 -3
  123. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  124. package/dist/server/serverHelpers/uwsServer.js +38 -7
  125. package/dist/server/serverHelpers/uwsServer.js.map +1 -1
  126. package/dist/server/threads/manageThreads.d.ts +3 -3
  127. package/dist/server/threads/manageThreads.js +15 -13
  128. package/dist/server/threads/manageThreads.js.map +1 -1
  129. package/dist/server/threads/threadServer.d.ts +3 -0
  130. package/dist/server/threads/threadServer.js +24 -6
  131. package/dist/server/threads/threadServer.js.map +1 -1
  132. package/dist/upgrade/directives/5-3-0.js +9 -3
  133. package/dist/upgrade/directives/5-3-0.js.map +1 -1
  134. package/dist/utility/durableFile.d.ts +36 -0
  135. package/dist/utility/durableFile.js +106 -0
  136. package/dist/utility/durableFile.js.map +1 -0
  137. package/dist/utility/errors/hdbError.d.ts +4 -0
  138. package/dist/utility/errors/hdbError.js +10 -1
  139. package/dist/utility/errors/hdbError.js.map +1 -1
  140. package/dist/utility/globalSchema.d.ts +9 -0
  141. package/dist/utility/hdbTerms.d.ts +1 -0
  142. package/dist/utility/hdbTerms.js +1 -0
  143. package/dist/utility/hdbTerms.js.map +1 -1
  144. package/dist/validation/configValidator.js +29 -0
  145. package/dist/validation/configValidator.js.map +1 -1
  146. package/index.ts +7 -0
  147. package/json/systemSchema.json +14 -0
  148. package/npm-shrinkwrap.json +22 -22
  149. package/package.json +2 -2
  150. package/resources/DESIGN.md +57 -272
  151. package/resources/DatabaseTransaction.ts +708 -87
  152. package/resources/FULL_TEXT.md +6 -2
  153. package/resources/IterableEventQueue.ts +14 -7
  154. package/resources/LMDBTransaction.ts +212 -84
  155. package/resources/RecordEncoder.ts +2 -3
  156. package/resources/Resource.ts +5 -6
  157. package/resources/ResourceInterface.ts +3 -1
  158. package/resources/RocksIndexStore.ts +5 -0
  159. package/resources/Table.ts +118 -15
  160. package/resources/analytics/write.ts +6 -2
  161. package/resources/audit-retention.md +203 -0
  162. package/resources/auditStore.ts +306 -84
  163. package/resources/branchDatabase.ts +2 -0
  164. package/resources/databases.ts +6 -2
  165. package/resources/indexes/DESIGN.md +120 -177
  166. package/resources/indexes/fullTextNativeBinding.ts +22 -3
  167. package/resources/indexes/fullTextQueryIndex.ts +274 -11
  168. package/resources/models/DESIGN.md +11 -3
  169. package/resources/models/Models.ts +127 -4
  170. package/resources/models/backendRegistry.ts +17 -0
  171. package/resources/models/bootstrap.ts +9 -1
  172. package/resources/models/calibration.ts +298 -0
  173. package/resources/models/calibrationStore.ts +1167 -0
  174. package/resources/models/decisionStore.ts +57 -0
  175. package/resources/models/generativeDecision.ts +54 -16
  176. package/resources/models/types.ts +6 -0
  177. package/resources/record-locks.md +155 -141
  178. package/resources/recordLock.ts +12 -6
  179. package/resources/replayLogs.ts +9 -2
  180. package/resources/scheduler/DESIGN.md +4 -3
  181. package/resources/scheduler/engine.ts +35 -2
  182. package/resources/search.ts +154 -16
  183. package/resources/transaction.ts +50 -5
  184. package/resources/transactionBroadcast.ts +69 -0
  185. package/security/DESIGN.md +9 -30
  186. package/security/keys.ts +175 -127
  187. package/server/DESIGN.md +70 -36
  188. package/server/http.ts +10 -0
  189. package/server/serverHelpers/Request.ts +10 -2
  190. package/server/serverHelpers/contentTypes.ts +5 -3
  191. package/server/serverHelpers/uwsServer.ts +34 -7
  192. package/server/threads/manageThreads.js +16 -14
  193. package/server/threads/threadServer.js +24 -6
  194. package/studio/web/assets/{Chat-CNEKMllJ.js → Chat-4LMxI0yB.js} +1 -1
  195. package/studio/web/assets/{FloatingChat-CEnWhHeR.js → FloatingChat-kWHApEtF.js} +3 -3
  196. package/studio/web/assets/{SearchDialog-CwhJdEdY.js → SearchDialog-B7ymna97.js} +1 -1
  197. package/studio/web/assets/{apiToken-DC5vsaaO.js → apiToken-CE3AAt9f.js} +1 -1
  198. package/studio/web/assets/{applications-DQZxDy0x.js → applications-DdN7CqsB.js} +1 -1
  199. package/studio/web/assets/{cssMode-Dz2DxF4e.js → cssMode-BpySZUSt.js} +1 -1
  200. package/studio/web/assets/{editor-B3mjd3tz.js → editor-myLCVv9C.js} +1 -1
  201. package/studio/web/assets/{html-BsRGM7tp.js → html-DGNYO55O.js} +1 -1
  202. package/studio/web/assets/{htmlMode-tUKJaA3o.js → htmlMode-BUgpQr41.js} +1 -1
  203. package/studio/web/assets/{index-BuqFjN5K.js → index-FN4KC9va.js} +39 -39
  204. package/studio/web/assets/index-QLZw6xrU.css +1 -0
  205. package/studio/web/assets/{index.lazy-CcpfQFY_.js → index.lazy-DZFuaumG.js} +1 -1
  206. package/studio/web/assets/{javascript-BZ_uRGHl.js → javascript-DiBzh4pj.js} +1 -1
  207. package/studio/web/assets/{jsonMode-DgB-aFMj.js → jsonMode-Bm312nmu.js} +1 -1
  208. package/studio/web/assets/{languageServices-BleuBw17.js → languageServices-Dz2K9rZN.js} +1 -1
  209. package/studio/web/assets/{lspLanguageFeatures-ByVYLSsQ.js → lspLanguageFeatures-CNu1L5xn.js} +1 -1
  210. package/studio/web/assets/{notifications-TuzN0IMi.js → notifications--nwFLGmM.js} +1 -1
  211. package/studio/web/assets/{notifications-D1Nf-Edn.js → notifications-BelKw5bR.js} +1 -1
  212. package/studio/web/assets/{profile-D7C7Lupz.js → profile-AU5FjOBx.js} +1 -1
  213. package/studio/web/assets/{regions-nGQCm-v8.js → regions-C0sTSEHH.js} +1 -1
  214. package/studio/web/assets/{register-C3x9Ze6P.js → register-DyNR2rGk.js} +2 -2
  215. package/studio/web/assets/{setComponentFile-DpjrRqeG.js → setComponentFile-BkWx8AN3.js} +1 -1
  216. package/studio/web/assets/{setup-CGiKLZ9e.js → setup-D6LZS78d.js} +2 -2
  217. package/studio/web/assets/{status-CGJwrNPH.js → status-BCWnn70o.js} +1 -1
  218. package/studio/web/assets/{toggleHighContrast-C-Ne6P7T.js → toggleHighContrast-pyeGJ6W1.js} +1 -1
  219. package/studio/web/assets/{tsMode-CSreYTys.js → tsMode-CGV3iaWC.js} +1 -1
  220. package/studio/web/assets/{typescript-MnxBk89W.js → typescript-Ci7Khvwo.js} +1 -1
  221. package/studio/web/assets/{useEntityRestURL-TNrh77-s.js → useEntityRestURL-DNiz3aZ0.js} +1 -1
  222. package/studio/web/assets/{workers-BfZlUNVI.js → workers-byzxjbqy.js} +1 -1
  223. package/studio/web/assets/{xml-BHd6qGH7.js → xml-DGnHQ3CX.js} +1 -1
  224. package/studio/web/assets/{yaml-C53R8OQq.js → yaml-BUoTnPWb.js} +1 -1
  225. package/studio/web/index.html +2 -2
  226. package/upgrade/directives/5-3-0.ts +10 -3
  227. package/utility/durableFile.ts +96 -0
  228. package/utility/errors/hdbError.ts +9 -0
  229. package/utility/hdbTerms.ts +1 -0
  230. package/validation/configValidator.ts +31 -0
  231. package/studio/web/assets/index-72cEH474.css +0 -1
@@ -42,11 +42,18 @@ exports.boundedAuditPruneEnd = boundedAuditPruneEnd;
42
42
  exports.raiseAuditFloor = raiseAuditFloor;
43
43
  exports.establishAuditFloor = establishAuditFloor;
44
44
  exports.getAuditFloor = getAuditFloor;
45
+ exports.getDatabaseGeneration = getDatabaseGeneration;
46
+ exports.getAuditResumeFloor = getAuditResumeFloor;
47
+ exports.isResumablePosition = isResumablePosition;
48
+ exports.establishDatabaseGeneration = establishDatabaseGeneration;
49
+ exports.stampDatabaseGeneration = stampDatabaseGeneration;
50
+ exports.stampDatabaseDirectory = stampDatabaseDirectory;
45
51
  exports.setAuditRetention = setAuditRetention;
46
52
  exports.purgeAgedLogs = purgeAgedLogs;
47
53
  exports.isLockControlType = isLockControlType;
48
54
  exports.createAuditEntry = createAuditEntry;
49
55
  exports.readAuditEntry = readAuditEntry;
56
+ const node_crypto_1 = require("node:crypto");
50
57
  const ordered_binary_1 = require("ordered-binary");
51
58
  const environmentManager_ts_1 = require("../utility/environment/environmentManager.js");
52
59
  const terms_ts_1 = require("../utility/lmdb/terms.js");
@@ -61,6 +68,7 @@ const storageReclamation_ts_1 = require("../server/storageReclamation.js");
61
68
  const rocksdb_js_1 = require("@harperfast/rocksdb-js");
62
69
  const lmdb_1 = require("lmdb");
63
70
  const RocksTransactionLogStore_ts_1 = require("./RocksTransactionLogStore.js");
71
+ const transactionBroadcast_ts_1 = require("./transactionBroadcast.js");
64
72
  const databases_ts_1 = require("./databases.js");
65
73
  /**
66
74
  * This module is responsible for the binary representation of audit records in an efficient form.
@@ -154,9 +162,10 @@ const FLOAT_BUFFER = new Uint8Array(FLOAT_TARGET.buffer);
154
162
  const AUDIT_FLOOR_KEY = Symbol.for('audit-floor');
155
163
  // The epoch `establishAuditFloor` stamped, never raised or removed. Its PRESENCE marks the floor as
156
164
  // unverified provenance — a guess bounded by what survived, blind to history a legacy prune removed
157
- // before tracking began — until a database generation (#2451) retires the mark. No comparison does:
158
- // a later prune certifies only what it removed, so `floor > bootstrap` says nothing about the older
159
- // gap. The value records how far the guess reached, for that repair. See `establishAuditFloor`.
165
+ // before tracking began. No comparison retires the mark: a later prune certifies only what it
166
+ // removed, so `floor > bootstrap` says nothing about the older gap. Resume never relies on it, since a
167
+ // position is bound to a database generation and everything after its cursor was written after
168
+ // tracking began. The value records how far the guess reached. See `establishAuditFloor`.
160
169
  const AUDIT_FLOOR_BOOTSTRAP_KEY = Symbol.for('audit-floor-bootstrap');
161
170
  /**
162
171
  * The floor's own eight bytes, deliberately NOT the FLOAT_TARGET/FLOAT_BUFFER pair the `last-removed`
@@ -168,6 +177,24 @@ const FLOOR_TARGET = new Float64Array(1);
168
177
  const FLOOR_BUFFER = new Uint8Array(FLOOR_TARGET.buffer);
169
178
  /** No trustworthy floor: the highest possible floor, so every cursor compares as stale. */
170
179
  const AUDIT_FLOOR_UNKNOWN = Infinity;
180
+ /**
181
+ * Which copy of this database's history this is: a sixteen-byte random id, then the float64 time the
182
+ * generation began (0 for genesis). Every path that publishes a copy stamps a fresh one first
183
+ * (`stampDatabaseGeneration`), so a position naming an older id is refused (harper#2451). RocksDB only,
184
+ * like the resume floor: an LMDB database carries neither, so no position is resumable against it.
185
+ */
186
+ const DATABASE_GENERATION_KEY = Symbol.for('database-generation');
187
+ const GENERATION_ID_BYTES = 16;
188
+ const GENERATION_RECORD_BYTES = GENERATION_ID_BYTES + 8;
189
+ /**
190
+ * The highest prune cutoff within the current generation, encoded like the floor. Kept apart from the
191
+ * floor, which also steers `Table.commit`'s reconciliation: resume validity must restart at a copy and
192
+ * must not be absorbed by the floor's unknown sentinel, and doing either to the floor changes merges.
193
+ */
194
+ const AUDIT_RESUME_FLOOR_KEY = Symbol.for('audit-resume-floor');
195
+ function isRocksStore(store) {
196
+ return store instanceof RocksTransactionLogStore_ts_1.RocksTransactionLogStore || store instanceof rocksdb_js_1.RocksDatabase;
197
+ }
171
198
  /** Last resort on a detached path: a failing log sink must not itself become an unhandled rejection. */
172
199
  function warnContained(message, error) {
173
200
  try {
@@ -207,6 +234,8 @@ function openAuditStore(rootStore) {
207
234
  rootStore.auditStore = auditStore;
208
235
  auditStore.rootStore = rootStore;
209
236
  establishAuditFloor(auditStore);
237
+ establishDatabaseGeneration(auditStore);
238
+ (0, transactionBroadcast_ts_1.endSubscriptionsFromEarlierHandles)(auditStore, isRocksStore(auditStore));
210
239
  auditStore.tableStores = [];
211
240
  const deleteCallbacks = [];
212
241
  auditStore.addDeleteRemovalCallback = function (tableId, table, callback) {
@@ -521,13 +550,13 @@ function decodeAuditFloor(stored) {
521
550
  return floor;
522
551
  }
523
552
  /**
524
- * Did the floor write land? A record has to be PRESENT, not merely decode to the value we wrote:
525
- * `decodeAuditFloor(undefined)` is the unknown sentinel too, so on a floorless store — where the
526
- * resolver writes exactly that sentinel — comparing decoded values alone reported a commit for a
527
- * write that never happened, and the caller pruned with nothing persisted.
553
+ * Did a metadata write land? A record has to be PRESENT with exactly the bytes written, not merely
554
+ * decode to the same value: `decodeAuditFloor(undefined)` is the unknown sentinel too, so on a
555
+ * floorless store — where the resolver writes exactly that sentinel — comparing decoded values alone
556
+ * reported a commit for a write that never happened, and the caller pruned with nothing persisted.
528
557
  */
529
- function floorWriteLanded(stored, floor) {
530
- return stored !== undefined && decodeAuditFloor(stored) === floor;
558
+ function writeLanded(stored, written) {
559
+ return stored !== undefined && stored.byteLength === written.byteLength && Buffer.compare(stored, written) === 0;
531
560
  }
532
561
  /** Own eight bytes per write: the store must never be handed a live view of the reused module buffer. */
533
562
  function encodeAuditFloor(floor) {
@@ -545,31 +574,42 @@ function encodeAuditFloor(floor) {
545
574
  * history the higher one already removed. Read-only mode writes nothing, and prunes nothing.
546
575
  */
547
576
  function updateAuditFloor(auditStore, resolve, key = AUDIT_FLOOR_KEY) {
548
- // A legacy `auditPath` layout is opened as its own standalone LMDB root (databases.ts) and has no
549
- // `.rootStore`, so it owns the transaction itself.
550
- const transactionOwner = auditStore?.rootStore ?? auditStore;
577
+ commitAuditMetadata(auditStore, (read) => {
578
+ const stored = read(key);
579
+ const floor = resolve(decodeAuditFloor(stored), stored !== undefined);
580
+ return floor === undefined ? undefined : [[key, encodeAuditFloor(floor)]];
581
+ }, 'audit retention floor');
582
+ }
583
+ /**
584
+ * Write audit metadata records under one store transaction, all or none: every write is read back,
585
+ * and a mismatch throws inside the transaction so it aborts — returning false commits on LMDB.
586
+ */
587
+ function commitAuditMetadata(store, plan, what) {
588
+ // A copy being stamped passes its RocksDB root directly. A legacy `auditPath` layout is opened as its
589
+ // own standalone LMDB root (databases.ts) and has no `.rootStore`, so it owns the transaction itself.
590
+ const onRocksDB = isRocksStore(store);
591
+ const transactionOwner = store instanceof rocksdb_js_1.RocksDatabase ? store : (store?.rootStore ?? store);
551
592
  if (!transactionOwner?.transactionSync)
552
- throw new Error('Cannot record the audit retention floor: this database has no audit store');
553
- // Both branches read their own write back and report `false` on mismatch, and the caller demands an
554
- // explicit `true`. Both halves are load-bearing: a RocksDB transactionSync returns undefined for a
555
- // swallowed abort rather than throwing (see RecordEncoder.saveStructures), and a write that fails
556
- // without throwing is otherwise indistinguishable from one that landed — a caller pruning against a
557
- // floor never recorded. Reads inside a write transaction see their own writes on both engines, so
558
- // the read-back observes what commit will make durable.
559
- const committed = auditStore instanceof RocksTransactionLogStore_ts_1.RocksTransactionLogStore
593
+ throw new Error(`Cannot record the ${what}: this database has no audit store`);
594
+ const notCommitted = () => new Error(`The ${what} transaction did not commit`);
595
+ // The caller still demands an explicit `true`: a RocksDB transactionSync returns undefined for a
596
+ // swallowed abort rather than throwing (see RecordEncoder.saveStructures). Reads inside a write
597
+ // transaction see their own writes on both engines, so the read-back observes what commit will make
598
+ // durable.
599
+ const committed = onRocksDB
560
600
  ? transactionOwner.transactionSync((txn) => {
561
- const stored = txn.getBinarySync(key);
562
- const floor = resolve(decodeAuditFloor(stored), stored !== undefined);
563
- if (floor !== undefined) {
564
- txn.putSync(key, (0, lmdb_1.asBinary)(encodeAuditFloor(floor)));
565
- if (!floorWriteLanded(txn.getBinarySync(key), floor))
566
- return false;
601
+ const writes = plan((key) => txn.getBinarySync(key));
602
+ if (writes) {
603
+ for (const [key, bytes] of writes)
604
+ txn.putSync(key, (0, lmdb_1.asBinary)(bytes));
605
+ for (const [key, bytes] of writes)
606
+ if (!writeLanded(txn.getBinarySync(key), bytes))
607
+ throw notCommitted();
567
608
  }
568
609
  return true;
569
610
  }, { retryOnBusy: true })
570
611
  : transactionOwner.transactionSync(() => {
571
- const stored = auditStore.getBinary(key);
572
- const floor = resolve(decodeAuditFloor(stored), stored !== undefined);
612
+ const writes = plan((key) => store.getBinary(key));
573
613
  // `put` rather than `putSync`, and inside the transaction: lmdb's putSync is
574
614
  // `put(...) === SYNC_PROMISE_SUCCESS`, so it drops whatever put returns, and a rejected put
575
615
  // would leak with no owner. Within a write transaction put writes synchronously and returns
@@ -577,17 +617,17 @@ function updateAuditFloor(auditStore, resolve, key = AUDIT_FLOOR_KEY) {
577
617
  // only takes ownership of the failure case.
578
618
  // asBinary: a legacy standalone audit root's encoder has no Uint8Array passthrough, so raw
579
619
  // bytes would reach createAuditEntry and throw. This bypasses both encoders.
580
- if (floor !== undefined) {
581
- auditStore
582
- .put(key, (0, lmdb_1.asBinary)(encodeAuditFloor(floor)))
583
- ?.catch?.((error) => warnContained('Error writing the audit retention floor', error));
584
- if (!floorWriteLanded(auditStore.getBinary(key), floor))
585
- return false;
620
+ if (writes) {
621
+ for (const [key, bytes] of writes)
622
+ store.put(key, (0, lmdb_1.asBinary)(bytes))?.catch?.((error) => warnContained(`Error writing the ${what}`, error));
623
+ for (const [key, bytes] of writes)
624
+ if (!writeLanded(store.getBinary(key), bytes))
625
+ throw notCommitted();
586
626
  }
587
627
  return true;
588
628
  });
589
629
  if (committed !== true)
590
- throw new Error('The audit retention floor transaction did not commit');
630
+ throw notCommitted();
591
631
  }
592
632
  /**
593
633
  * The bound a prune should use — and record — in place of an unbounded cutoff.
@@ -673,27 +713,38 @@ function raiseAuditFloor(auditStore, cutoff) {
673
713
  // database, a cutoff below one a wider prune already set), and taking the env write lock to
674
714
  // discover that serializes every worker's boot and reclamation on it. The in-transaction guards
675
715
  // below stay authoritative.
676
- // Skips only the case it can prove is a no-op: a record that exists and already sits at or above
677
- // the cutoff. An absent record is NOT decided here — the presence question is settled inside the
678
- // transaction below, because another worker's establishAuditFloor can land between this read and
679
- // that write.
716
+ // Skips only the case it can prove is a no-op: the floor, and on RocksDB the resume record, exist and
717
+ // already sit at or above the cutoff. An absent record is NOT decided here — the presence question is
718
+ // settled inside the transaction below, because another worker's establishAuditFloor can land between
719
+ // this read and that write.
720
+ const resumeTracked = isRocksStore(auditStore);
680
721
  if (auditStore?.getBinary) {
681
722
  const stored = auditStore.getBinary(AUDIT_FLOOR_KEY);
682
- if (stored !== undefined && !(cutoff > decodeAuditFloor(stored)))
723
+ const resume = resumeTracked ? auditStore.getBinary(AUDIT_RESUME_FLOOR_KEY) : undefined;
724
+ if (stored !== undefined &&
725
+ !(cutoff > decodeAuditFloor(stored)) &&
726
+ (!resumeTracked || (resume !== undefined && !(cutoff > decodeAuditFloor(resume)))))
683
727
  return;
684
728
  }
685
- updateAuditFloor(auditStore, (current, recorded) => {
729
+ commitAuditMetadata(auditStore, (read) => {
730
+ const writes = [];
731
+ const stored = read(AUDIT_FLOOR_KEY);
686
732
  // Still no record, and we are about to prune: persist the unknown sentinel. Leaving no marker
687
733
  // lets the next open stamp a FINITE epoch, and a prune bound above that epoch (a future
688
734
  // `endTime`, or a rolled-back clock) then certifies cursors whose history this prune deleted.
689
735
  // Unknown is the honest value, because a store with no record may have been pruned before this
690
736
  // run too.
691
- if (!recorded)
692
- return AUDIT_FLOOR_UNKNOWN;
693
- // A record appeared while we were getting here, so this is an ordinary monotonic raise: pruning
694
- // to `cutoff` against a floor left below it is exactly the silent gap this function prevents.
695
- return cutoff > current ? cutoff : undefined;
696
- });
737
+ if (stored === undefined)
738
+ writes.push([AUDIT_FLOOR_KEY, encodeAuditFloor(AUDIT_FLOOR_UNKNOWN)]);
739
+ else if (cutoff > decodeAuditFloor(stored))
740
+ writes.push([AUDIT_FLOOR_KEY, encodeAuditFloor(cutoff)]);
741
+ if (resumeTracked) {
742
+ const resume = read(AUDIT_RESUME_FLOOR_KEY);
743
+ if (resume === undefined || cutoff > decodeAuditFloor(resume))
744
+ writes.push([AUDIT_RESUME_FLOOR_KEY, encodeAuditFloor(cutoff)]);
745
+ }
746
+ return writes;
747
+ }, 'audit retention floor');
697
748
  }
698
749
  /**
699
750
  * Give a database a trustworthy floor if it has none: the current time, as a one-time resync epoch.
@@ -723,8 +774,9 @@ function raiseAuditFloor(auditStore, cutoff) {
723
774
  * unverified pre-tracking window for as long as it exists, however far the floor has since moved: a
724
775
  * prune raising the floor above the epoch certifies only what that prune removed, and says nothing
725
776
  * about history removed before tracking began — which may sit above the epoch, since that is exactly
726
- * the case the guess cannot see. Retiring the mark takes a database generation (harper#2451), not a
727
- * floor that has climbed past it.
777
+ * the case the guess cannot see. A floor that has climbed past it does not retire it. Resumable
778
+ * positions never depend on it: each is bound to a database generation minted after tracking began,
779
+ * so the pre-tracking window lies below every one of them (`getDatabaseGeneration`).
728
780
  *
729
781
  * Ordering. The provenance record is written **first**, so a crash between the two writes leaves a
730
782
  * record with no floor — which the next open retries, since the early return above tests the floor.
@@ -795,10 +847,10 @@ function establishAuditFloor(auditStore) {
795
847
  }
796
848
  /**
797
849
  * The floor of this database's retained audit history: every audit entry at or after the returned
798
- * time is still retained, so a consumer whose last-processed audit-log cursor is `>=` it can resume
799
- * incrementally, and one below it must resync — it may have lost nothing, but the floor cannot
800
- * certify it either way. Returns `Infinity` when
801
- * the floor is unknown, which fails closed — no cursor compares as safe.
850
+ * time is still retained, and below it the log may have lost anything. Returns `Infinity` when the
851
+ * floor is unknown, which fails closed — no cursor compares as safe. A resume is decided by the
852
+ * database generation and its resume floor (`getDatabaseGeneration`) instead: this floor survives a
853
+ * restore, and an unknown one is absorbing.
802
854
  *
803
855
  * **One exception, and it is the only one: history removed before the floor existed.** Every prune
804
856
  * that runs with a floor recorded is covered — it raises the floor first, so it cannot remove an entry
@@ -806,7 +858,9 @@ function establishAuditFloor(auditStore) {
806
858
  * (`establishAuditFloor`), and a legacy `Table.deleteHistory` that removed a table's newest entries,
807
859
  * followed by a clock rollback, leaves that stamp below history that is gone; a cursor in the window
808
860
  * is then certified over the gap. So the guarantee is one-directional for tracked prunes and silent
809
- * about untracked ones. Only a database generation can close that (harper#2451).
861
+ * about untracked ones. Resumable positions do not face it: they are checked against the database
862
+ * generation and its resume floor (`getDatabaseGeneration`), not against this floor, which also steers
863
+ * `Table.commit`'s reconciliation and so cannot move in the direction a cursor check would want.
810
864
  *
811
865
  * The time domain is the audit-log key: what `subscribe`'s events carry as `localTime` and what MQTT
812
866
  * durable sessions persist as `startTime`, so those compare against the floor directly.
@@ -825,8 +879,9 @@ function establishAuditFloor(auditStore) {
825
879
  *
826
880
  * **A moment-in-time observation.** Retention can advance between this call and whatever the caller
827
881
  * does with the answer, so a check-then-resume sequence has a window where the floor moves under it.
828
- * Closing that requires validating the cursor inside the resume itself (harper#2448); until then a
829
- * lost race degrades to the truncation that happens today, never to anything worse.
882
+ * Closing that requires validating the position inside the resume itself (harper#2448), against the
883
+ * generation and the resume floor; until then a lost race degrades to the truncation that happens
884
+ * today, never to anything worse.
830
885
  *
831
886
  * **On RocksDB the floor tracks the configured horizon, not retained reality.** That branch purges at
832
887
  * whole-log-file granularity, so it cannot know before the fact which entries a purge will drop, and
@@ -836,18 +891,147 @@ function establishAuditFloor(auditStore) {
836
891
  * resync. Conservative in the one safe direction, and the reason the LMDB branch (which can see a
837
892
  * single eligible entry) instead raises off the first one it finds.
838
893
  *
839
- * **Not covered: copying a database's state without its history.** `restore_backup` replaces a
840
- * database with the backup's, floor and all, and a RocksDB checkpoint (a branch database) copies the
841
- * floor record but no transaction logs — so in both cases a cursor from after the copy point sits
842
- * above a floor that is present, and therefore trusted, for history that is not there. Nothing here
843
- * can detect that on its own, and it is not the audit log's problem alone: the same copy rolls back
844
- * record versions and per-node replication sequence state, so making this one field honest while
845
- * those stay stale would not give a consumer a coherent answer. It needs a database-level epoch —
846
- * harper#2451.
894
+ * **Copies of a database's state.** `restore_backup` copies this record with everything else, and it
895
+ * stays accurate for the log the restore carried; a branch checkpoint copies it with no log at all.
896
+ * What a copy changes is which history the database is, and that is the database generation's to
897
+ * answer: every copy path stamps a new one (`stampDatabaseGeneration`), and a copy that carried no log
898
+ * raises this floor to the generation's epoch.
847
899
  */
848
900
  function getAuditFloor(auditStore) {
849
901
  return decodeAuditFloor(auditStore.getBinary(AUDIT_FLOOR_KEY));
850
902
  }
903
+ /**
904
+ * The generation this handle's open established, or undefined when it could not establish one, in
905
+ * which case nothing may resume against it. Per database per node, never cluster-wide.
906
+ */
907
+ function getDatabaseGeneration(auditStore) {
908
+ return auditStore?.databaseGeneration;
909
+ }
910
+ /**
911
+ * The bound a resumed position is checked against, or `Infinity` when unknown: the resume floor, but
912
+ * never below a finite audit floor, since a binary that predates the resume floor raised only the
913
+ * audit floor when it pruned. Such a binary pruning while the audit floor was unknown records nothing
914
+ * either record can show.
915
+ */
916
+ function getAuditResumeFloor(auditStore) {
917
+ // The audit floor first: both records only rise, and an unknown audit floor stays unknown, so a prune
918
+ // committing between the two reads is still seen through the resume floor read second.
919
+ const auditFloor = getAuditFloor(auditStore);
920
+ const resumeFloor = decodeAuditFloor(auditStore.getBinary(AUDIT_RESUME_FLOOR_KEY));
921
+ return Number.isFinite(auditFloor) && auditFloor > resumeFloor ? auditFloor : resumeFloor;
922
+ }
923
+ /**
924
+ * Whether a position may resume here: it names this handle's generation and carries a finite cursor
925
+ * at or above the resume floor. The cursor must be progress-based — no lower than the log position
926
+ * observed when the position was established — or a quiet scope's snapshot key falls below a floor
927
+ * that retention keeps advancing and is refused on every resume. The answer holds as of the read: a
928
+ * prune that commits after it returns is the caller's to order against its replay. Always false on
929
+ * LMDB, which has no generation: a caller applies the check to RocksDB databases only.
930
+ */
931
+ function isResumablePosition(auditStore, generationId, cursor) {
932
+ const generation = getDatabaseGeneration(auditStore);
933
+ return (generation !== undefined &&
934
+ generationId === generation.id &&
935
+ typeof cursor === 'number' &&
936
+ Number.isFinite(cursor) &&
937
+ cursor >= getAuditResumeFloor(auditStore));
938
+ }
939
+ function newGeneration(epoch) {
940
+ return { id: (0, node_crypto_1.randomBytes)(GENERATION_ID_BYTES).toString('hex'), epoch };
941
+ }
942
+ function encodeGeneration(generation) {
943
+ const bytes = new Uint8Array(GENERATION_RECORD_BYTES);
944
+ bytes.set(Buffer.from(generation.id, 'hex'));
945
+ new DataView(bytes.buffer).setFloat64(GENERATION_ID_BYTES, generation.epoch, true);
946
+ return bytes;
947
+ }
948
+ function decodeGeneration(stored) {
949
+ if (stored?.byteLength !== GENERATION_RECORD_BYTES)
950
+ return undefined;
951
+ const epoch = new DataView(stored.buffer, stored.byteOffset, GENERATION_RECORD_BYTES).getFloat64(GENERATION_ID_BYTES, true);
952
+ if (!Number.isFinite(epoch) || epoch < 0 || Object.is(epoch, -0))
953
+ return undefined;
954
+ return { id: Buffer.from(stored.buffer, stored.byteOffset, GENERATION_ID_BYTES).toString('hex'), epoch };
955
+ }
956
+ /**
957
+ * Establish this handle's generation at open: adopt the recorded one, or mint genesis for a RocksDB
958
+ * store that has none (an LMDB store gets none). An undecodable record is never replaced here — an
959
+ * ordinary open cannot know whether another worker already serves it; only a copy's stamp replaces a
960
+ * generation. Never fails the open.
961
+ */
962
+ function establishDatabaseGeneration(auditStore) {
963
+ auditStore.databaseGeneration = undefined;
964
+ if (!isRocksStore(auditStore))
965
+ return;
966
+ try {
967
+ let stored = auditStore.getBinary(DATABASE_GENERATION_KEY);
968
+ if (stored === undefined) {
969
+ if ((0, databases_ts_1.isReadOnlyMode)())
970
+ return;
971
+ const genesis = encodeGeneration(newGeneration(0));
972
+ commitAuditMetadata(auditStore, (read) => {
973
+ // compare-and-set on absence, so racing workers converge on the first one's id
974
+ if (read(DATABASE_GENERATION_KEY) !== undefined)
975
+ return undefined;
976
+ const writes = [[DATABASE_GENERATION_KEY, genesis]];
977
+ if (read(AUDIT_RESUME_FLOOR_KEY) === undefined) {
978
+ // starting at the audit floor rather than 0 keeps the next prune's lock-free skip effective
979
+ const auditFloor = decodeAuditFloor(read(AUDIT_FLOOR_KEY));
980
+ writes.push([AUDIT_RESUME_FLOOR_KEY, encodeAuditFloor(Number.isFinite(auditFloor) ? auditFloor : 0)]);
981
+ }
982
+ return writes;
983
+ }, 'database generation');
984
+ stored = auditStore.getBinary(DATABASE_GENERATION_KEY);
985
+ }
986
+ auditStore.databaseGeneration = decodeGeneration(stored);
987
+ if (!auditStore.databaseGeneration)
988
+ warnContained('The database generation record is unreadable, so no subscription can resume against this database', new Error(`database generation record of ${stored?.byteLength} bytes`));
989
+ }
990
+ catch (error) {
991
+ warnContained('Error establishing the database generation', error);
992
+ }
993
+ }
994
+ /**
995
+ * Give a copy of a database a generation of its own, before anything can read it; the caller holds
996
+ * the copy exclusively and makes the stamp durable before publishing. A copy that kept no
997
+ * transaction log has nothing below its epoch, so a finite floor is raised to it — raising it over
998
+ * history a copy carried would change `Table.commit`'s reconciliation, and an unknown floor stays
999
+ * unknown. `generation` lets a caller replay a value it recorded durably first.
1000
+ */
1001
+ function stampDatabaseGeneration(store, { carriesLog, generation = newGeneration(Date.now()) }) {
1002
+ if (!/^[0-9a-f]{32}$/.test(generation?.id) ||
1003
+ decodeGeneration(encodeGeneration(generation))?.epoch !== generation.epoch)
1004
+ throw new Error(`Invalid database generation: ${JSON.stringify(generation)}`);
1005
+ const stamp = [
1006
+ [DATABASE_GENERATION_KEY, encodeGeneration(generation)],
1007
+ [AUDIT_RESUME_FLOOR_KEY, encodeAuditFloor(0)],
1008
+ ];
1009
+ commitAuditMetadata(store, (read) => {
1010
+ if (carriesLog)
1011
+ return stamp;
1012
+ const stored = read(AUDIT_FLOOR_KEY);
1013
+ const floor = decodeAuditFloor(stored);
1014
+ return stored !== undefined && Number.isFinite(floor) && floor < generation.epoch
1015
+ ? [...stamp, [AUDIT_FLOOR_KEY, encodeAuditFloor(generation.epoch)]]
1016
+ : stamp;
1017
+ }, 'database generation');
1018
+ return generation;
1019
+ }
1020
+ /**
1021
+ * Stamp the RocksDB database at `path`, which nothing else may have open, and flush it: a root-store
1022
+ * write alone is not power-loss durable, and directory fsync is best-effort where unsupported.
1023
+ */
1024
+ async function stampDatabaseDirectory(path, options) {
1025
+ const database = (0, databases_ts_1.openRocksDatabase)(path, { disableWAL: false });
1026
+ try {
1027
+ const generation = stampDatabaseGeneration(database, options);
1028
+ await database.flush({ allowWriteStall: true });
1029
+ return generation;
1030
+ }
1031
+ finally {
1032
+ database.close();
1033
+ }
1034
+ }
851
1035
  function setAuditRetention(retentionTime, defaultDelay = DEFAULT_AUDIT_CLEANUP_DELAY) {
852
1036
  exports.auditRetention = retentionTime;
853
1037
  DEFAULT_AUDIT_CLEANUP_DELAY = defaultDelay;
@@ -1 +1 @@
1
- {"version":3,"file":"auditStore.js","sourceRoot":"","sources":["../../resources/auditStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auditStore.js","sourceRoot":"","sources":["../../resources/auditStore.ts"],"names":[],"mappings":"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"}