@harperfast/harper 5.2.10 → 5.3.0-alpha.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 (554) hide show
  1. package/agent/mcpTools.ts +1 -1
  2. package/agent/session.ts +25 -14
  3. package/bin/cliOperations.ts +46 -9
  4. package/bin/copyDb.ts +282 -59
  5. package/bin/deploySetup.ts +16 -5
  6. package/bin/harper.ts +1 -1
  7. package/bin/help.ts +4 -1
  8. package/bin/lite.ts +4 -1
  9. package/bin/restart.ts +59 -3
  10. package/bin/run.ts +6 -11
  11. package/bin/upgrade.js +7 -3
  12. package/bin/workloadIdentity.ts +119 -0
  13. package/components/Application.ts +2414 -242
  14. package/components/ApplicationScope.ts +8 -0
  15. package/components/EntryHandler.ts +59 -39
  16. package/components/OptionsWatcher.ts +150 -74
  17. package/components/RuntimeModuleTracker.ts +38 -7
  18. package/components/Scope.ts +37 -15
  19. package/components/awaitRestart.ts +84 -0
  20. package/components/componentLoader.ts +340 -30
  21. package/components/componentPreparationLock.ts +16 -5
  22. package/components/mcp/adapters/harperHttp.ts +4 -0
  23. package/components/mcp/listChanged.ts +4 -0
  24. package/components/mcp/toolRegistry.ts +2 -0
  25. package/components/mcp/tools/operations.ts +9 -0
  26. package/components/mcp/tools/schemas/operationDescriptions.ts +2 -2
  27. package/components/operations.js +270 -78
  28. package/components/operationsValidation.js +49 -1
  29. package/components/status/ComponentStatusRegistry.ts +59 -0
  30. package/config/RootConfigWatcher.ts +80 -34
  31. package/config/configUtils.ts +291 -34
  32. package/config/harperConfigEnvVars.ts +170 -27
  33. package/config-root.schema.json +29 -0
  34. package/dataLayer/blobBackup.ts +160 -50
  35. package/dataLayer/delete.ts +6 -1
  36. package/dataLayer/harperBridge/ResourceBridge.ts +52 -8
  37. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  38. package/dataLayer/hdbInfoController.ts +34 -1
  39. package/dataLayer/insert.ts +44 -1
  40. package/dataLayer/rocksdbBackup.ts +53 -10
  41. package/dataLayer/schema.ts +11 -1
  42. package/dataLayer/schemaDescribe.ts +8 -1
  43. package/dist/agent/mcpTools.js +1 -1
  44. package/dist/agent/mcpTools.js.map +1 -1
  45. package/dist/agent/session.d.ts +22 -0
  46. package/dist/agent/session.js +26 -15
  47. package/dist/agent/session.js.map +1 -1
  48. package/dist/bin/cliOperations.js +48 -9
  49. package/dist/bin/cliOperations.js.map +1 -1
  50. package/dist/bin/copyDb.d.ts +12 -1
  51. package/dist/bin/copyDb.js +248 -60
  52. package/dist/bin/copyDb.js.map +1 -1
  53. package/dist/bin/deploySetup.d.ts +2 -0
  54. package/dist/bin/deploySetup.js +11 -3
  55. package/dist/bin/deploySetup.js.map +1 -1
  56. package/dist/bin/harper.js +1 -1
  57. package/dist/bin/harper.js.map +1 -1
  58. package/dist/bin/help.js +4 -1
  59. package/dist/bin/help.js.map +1 -1
  60. package/dist/bin/lite.js +4 -1
  61. package/dist/bin/lite.js.map +1 -1
  62. package/dist/bin/restart.js +54 -5
  63. package/dist/bin/restart.js.map +1 -1
  64. package/dist/bin/run.js +4 -10
  65. package/dist/bin/run.js.map +1 -1
  66. package/dist/bin/upgrade.js +4 -3
  67. package/dist/bin/upgrade.js.map +1 -1
  68. package/dist/bin/workloadIdentity.d.ts +18 -0
  69. package/dist/bin/workloadIdentity.js +100 -0
  70. package/dist/bin/workloadIdentity.js.map +1 -0
  71. package/dist/components/Application.d.ts +139 -16
  72. package/dist/components/Application.js +2215 -267
  73. package/dist/components/Application.js.map +1 -1
  74. package/dist/components/ApplicationScope.d.ts +8 -0
  75. package/dist/components/ApplicationScope.js +7 -0
  76. package/dist/components/ApplicationScope.js.map +1 -1
  77. package/dist/components/EntryHandler.js +26 -10
  78. package/dist/components/EntryHandler.js.map +1 -1
  79. package/dist/components/OptionsWatcher.d.ts +1 -0
  80. package/dist/components/OptionsWatcher.js +141 -74
  81. package/dist/components/OptionsWatcher.js.map +1 -1
  82. package/dist/components/RuntimeModuleTracker.js +40 -6
  83. package/dist/components/RuntimeModuleTracker.js.map +1 -1
  84. package/dist/components/Scope.js +38 -13
  85. package/dist/components/Scope.js.map +1 -1
  86. package/dist/components/awaitRestart.d.ts +33 -0
  87. package/dist/components/awaitRestart.js +61 -0
  88. package/dist/components/awaitRestart.js.map +1 -0
  89. package/dist/components/componentLoader.d.ts +38 -1
  90. package/dist/components/componentLoader.js +279 -22
  91. package/dist/components/componentLoader.js.map +1 -1
  92. package/dist/components/componentPreparationLock.d.ts +5 -0
  93. package/dist/components/componentPreparationLock.js +14 -6
  94. package/dist/components/componentPreparationLock.js.map +1 -1
  95. package/dist/components/mcp/adapters/harperHttp.js +4 -0
  96. package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
  97. package/dist/components/mcp/listChanged.js +5 -0
  98. package/dist/components/mcp/listChanged.js.map +1 -1
  99. package/dist/components/mcp/toolRegistry.d.ts +1 -0
  100. package/dist/components/mcp/toolRegistry.js.map +1 -1
  101. package/dist/components/mcp/tools/operations.d.ts +5 -0
  102. package/dist/components/mcp/tools/operations.js +9 -0
  103. package/dist/components/mcp/tools/operations.js.map +1 -1
  104. package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -2
  105. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  106. package/dist/components/operations.js +231 -77
  107. package/dist/components/operations.js.map +1 -1
  108. package/dist/components/operationsValidation.js +49 -1
  109. package/dist/components/operationsValidation.js.map +1 -1
  110. package/dist/components/status/ComponentStatusRegistry.d.ts +0 -4
  111. package/dist/components/status/ComponentStatusRegistry.js +63 -0
  112. package/dist/components/status/ComponentStatusRegistry.js.map +1 -1
  113. package/dist/config/RootConfigWatcher.d.ts +7 -1
  114. package/dist/config/RootConfigWatcher.js +64 -27
  115. package/dist/config/RootConfigWatcher.js.map +1 -1
  116. package/dist/config/configUtils.d.ts +9 -1
  117. package/dist/config/configUtils.js +254 -33
  118. package/dist/config/configUtils.js.map +1 -1
  119. package/dist/config/harperConfigEnvVars.d.ts +16 -0
  120. package/dist/config/harperConfigEnvVars.js +162 -25
  121. package/dist/config/harperConfigEnvVars.js.map +1 -1
  122. package/dist/dataLayer/blobBackup.d.ts +49 -20
  123. package/dist/dataLayer/blobBackup.js +139 -50
  124. package/dist/dataLayer/blobBackup.js.map +1 -1
  125. package/dist/dataLayer/delete.js +1 -1
  126. package/dist/dataLayer/delete.js.map +1 -1
  127. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +14 -1
  128. package/dist/dataLayer/harperBridge/ResourceBridge.js +51 -10
  129. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  130. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +3 -1
  131. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  132. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -1
  133. package/dist/dataLayer/hdbInfoController.d.ts +10 -0
  134. package/dist/dataLayer/hdbInfoController.js +30 -1
  135. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  136. package/dist/dataLayer/insert.d.ts +9 -1
  137. package/dist/dataLayer/insert.js +30 -0
  138. package/dist/dataLayer/insert.js.map +1 -1
  139. package/dist/dataLayer/rocksdbBackup.d.ts +2 -2
  140. package/dist/dataLayer/rocksdbBackup.js +45 -8
  141. package/dist/dataLayer/rocksdbBackup.js.map +1 -1
  142. package/dist/dataLayer/schema.js +8 -0
  143. package/dist/dataLayer/schema.js.map +1 -1
  144. package/dist/dataLayer/schemaDescribe.js +8 -1
  145. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  146. package/dist/index.d.ts +1 -1
  147. package/dist/index.js.map +1 -1
  148. package/dist/json/systemSchema.json +52 -0
  149. package/dist/resources/DatabaseTransaction.d.ts +55 -3
  150. package/dist/resources/DatabaseTransaction.js +460 -134
  151. package/dist/resources/DatabaseTransaction.js.map +1 -1
  152. package/dist/resources/LMDBTransaction.js +22 -4
  153. package/dist/resources/LMDBTransaction.js.map +1 -1
  154. package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
  155. package/dist/resources/PrimaryRocksDatabase.js +30 -2
  156. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  157. package/dist/resources/RecordEncoder.d.ts +20 -0
  158. package/dist/resources/RecordEncoder.js +94 -9
  159. package/dist/resources/RecordEncoder.js.map +1 -1
  160. package/dist/resources/RequestTarget.d.ts +2 -0
  161. package/dist/resources/RequestTarget.js.map +1 -1
  162. package/dist/resources/Resource.js +20 -11
  163. package/dist/resources/Resource.js.map +1 -1
  164. package/dist/resources/ResourceInterface.d.ts +20 -1
  165. package/dist/resources/ResourceInterface.js.map +1 -1
  166. package/dist/resources/RocksIndexStore.d.ts +6 -1
  167. package/dist/resources/RocksIndexStore.js +24 -10
  168. package/dist/resources/RocksIndexStore.js.map +1 -1
  169. package/dist/resources/RocksTransactionLogStore.d.ts +14 -1
  170. package/dist/resources/RocksTransactionLogStore.js +57 -17
  171. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  172. package/dist/resources/Table.d.ts +112 -8
  173. package/dist/resources/Table.js +1071 -197
  174. package/dist/resources/Table.js.map +1 -1
  175. package/dist/resources/auditStore.d.ts +11 -2
  176. package/dist/resources/auditStore.js +183 -18
  177. package/dist/resources/auditStore.js.map +1 -1
  178. package/dist/resources/blob.d.ts +129 -9
  179. package/dist/resources/blob.js +992 -114
  180. package/dist/resources/blob.js.map +1 -1
  181. package/dist/resources/branchDatabase.d.ts +48 -0
  182. package/dist/resources/branchDatabase.js +892 -0
  183. package/dist/resources/branchDatabase.js.map +1 -0
  184. package/dist/resources/crdt.js +50 -12
  185. package/dist/resources/crdt.js.map +1 -1
  186. package/dist/resources/databases.d.ts +150 -9
  187. package/dist/resources/databases.js +1247 -525
  188. package/dist/resources/databases.js.map +1 -1
  189. package/dist/resources/defineTable.d.ts +10 -2
  190. package/dist/resources/defineTable.js +9 -1
  191. package/dist/resources/defineTable.js.map +1 -1
  192. package/dist/resources/graphql.d.ts +1 -1
  193. package/dist/resources/graphql.js +50 -15
  194. package/dist/resources/graphql.js.map +1 -1
  195. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +1 -0
  196. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +6 -2
  197. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  198. package/dist/resources/longLivedTransactions.d.ts +71 -0
  199. package/dist/resources/longLivedTransactions.js +358 -0
  200. package/dist/resources/longLivedTransactions.js.map +1 -0
  201. package/dist/resources/models/backendRegistry.d.ts +26 -0
  202. package/dist/resources/models/backendRegistry.js +60 -2
  203. package/dist/resources/models/backendRegistry.js.map +1 -1
  204. package/dist/resources/models/bootstrap.d.ts +33 -1
  205. package/dist/resources/models/bootstrap.js +416 -31
  206. package/dist/resources/models/bootstrap.js.map +1 -1
  207. package/dist/resources/recordLock.d.ts +80 -0
  208. package/dist/resources/recordLock.js +184 -0
  209. package/dist/resources/recordLock.js.map +1 -0
  210. package/dist/resources/replayLogs.d.ts +14 -1
  211. package/dist/resources/replayLogs.js +152 -24
  212. package/dist/resources/replayLogs.js.map +1 -1
  213. package/dist/resources/replayLogsGuards.d.ts +94 -7
  214. package/dist/resources/replayLogsGuards.js +111 -7
  215. package/dist/resources/replayLogsGuards.js.map +1 -1
  216. package/dist/resources/search.js +158 -32
  217. package/dist/resources/search.js.map +1 -1
  218. package/dist/resources/transactionBroadcast.d.ts +1 -1
  219. package/dist/resources/transactionBroadcast.js +2 -2
  220. package/dist/resources/transactionBroadcast.js.map +1 -1
  221. package/dist/security/auth.js +61 -30
  222. package/dist/security/auth.js.map +1 -1
  223. package/dist/security/authn/oidc/claims.d.ts +22 -0
  224. package/dist/security/authn/oidc/claims.js +71 -0
  225. package/dist/security/authn/oidc/claims.js.map +1 -0
  226. package/dist/security/authn/oidc/identityToken.d.ts +27 -0
  227. package/dist/security/authn/oidc/identityToken.js +111 -0
  228. package/dist/security/authn/oidc/identityToken.js.map +1 -0
  229. package/dist/security/authn/oidc/jwks.d.ts +25 -0
  230. package/dist/security/authn/oidc/jwks.js +261 -0
  231. package/dist/security/authn/oidc/jwks.js.map +1 -0
  232. package/dist/security/authn/oidc/providers/generic.d.ts +13 -0
  233. package/dist/security/authn/oidc/providers/generic.js +34 -0
  234. package/dist/security/authn/oidc/providers/generic.js.map +1 -0
  235. package/dist/security/authn/oidc/providers/githubActions.d.ts +11 -0
  236. package/dist/security/authn/oidc/providers/githubActions.js +129 -0
  237. package/dist/security/authn/oidc/providers/githubActions.js.map +1 -0
  238. package/dist/security/authn/oidc/providers/index.d.ts +37 -0
  239. package/dist/security/authn/oidc/providers/index.js +24 -0
  240. package/dist/security/authn/oidc/providers/index.js.map +1 -0
  241. package/dist/security/authn/oidc/tokenExchange.d.ts +12 -0
  242. package/dist/security/authn/oidc/tokenExchange.js +306 -0
  243. package/dist/security/authn/oidc/tokenExchange.js.map +1 -0
  244. package/dist/security/authn/oidc/trustPolicyOperations.d.ts +49 -0
  245. package/dist/security/authn/oidc/trustPolicyOperations.js +358 -0
  246. package/dist/security/authn/oidc/trustPolicyOperations.js.map +1 -0
  247. package/dist/security/authn/oidc/types.d.ts +38 -0
  248. package/dist/security/authn/oidc/types.js +6 -0
  249. package/dist/security/authn/oidc/types.js.map +1 -0
  250. package/dist/security/certificateVerification/index.js +40 -11
  251. package/dist/security/certificateVerification/index.js.map +1 -1
  252. package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
  253. package/dist/security/certificateVerification/trustedIssuers.js +79 -0
  254. package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
  255. package/dist/security/certificateVerification/types.d.ts +1 -0
  256. package/dist/security/credentialProvenance.d.ts +35 -0
  257. package/dist/security/credentialProvenance.js +51 -0
  258. package/dist/security/credentialProvenance.js.map +1 -0
  259. package/dist/security/credentialRejection.d.ts +4 -0
  260. package/dist/security/credentialRejection.js +24 -0
  261. package/dist/security/credentialRejection.js.map +1 -0
  262. package/dist/security/deferredAuthentication.d.ts +36 -0
  263. package/dist/security/deferredAuthentication.js +70 -0
  264. package/dist/security/deferredAuthentication.js.map +1 -0
  265. package/dist/security/impersonation.d.ts +21 -0
  266. package/dist/security/impersonation.js +108 -9
  267. package/dist/security/impersonation.js.map +1 -1
  268. package/dist/security/jsLoader.d.ts +6 -0
  269. package/dist/security/jsLoader.js +75 -15
  270. package/dist/security/jsLoader.js.map +1 -1
  271. package/dist/security/keys.js +301 -71
  272. package/dist/security/keys.js.map +1 -1
  273. package/dist/security/operationScope.d.ts +21 -0
  274. package/dist/security/operationScope.js +36 -0
  275. package/dist/security/operationScope.js.map +1 -0
  276. package/dist/security/permissionsTranslator.js +21 -0
  277. package/dist/security/permissionsTranslator.js.map +1 -1
  278. package/dist/security/tokenAuthentication.d.ts +19 -1
  279. package/dist/security/tokenAuthentication.js +191 -10
  280. package/dist/security/tokenAuthentication.js.map +1 -1
  281. package/dist/security/user.js +4 -3
  282. package/dist/security/user.js.map +1 -1
  283. package/dist/server/DurableSubscriptionsSession.d.ts +2 -2
  284. package/dist/server/DurableSubscriptionsSession.js +67 -10
  285. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  286. package/dist/server/REST.js +73 -0
  287. package/dist/server/REST.js.map +1 -1
  288. package/dist/server/graphqlQuerying.js +4 -0
  289. package/dist/server/graphqlQuerying.js.map +1 -1
  290. package/dist/server/http.d.ts +11 -0
  291. package/dist/server/http.js +88 -15
  292. package/dist/server/http.js.map +1 -1
  293. package/dist/server/itc/serverHandlers.js +8 -1
  294. package/dist/server/itc/serverHandlers.js.map +1 -1
  295. package/dist/server/jobs/jobProcess.js +6 -2
  296. package/dist/server/jobs/jobProcess.js.map +1 -1
  297. package/dist/server/jobs/jobs.js +4 -1
  298. package/dist/server/jobs/jobs.js.map +1 -1
  299. package/dist/server/liveSubscriptionAuth.d.ts +26 -4
  300. package/dist/server/liveSubscriptionAuth.js +105 -39
  301. package/dist/server/liveSubscriptionAuth.js.map +1 -1
  302. package/dist/server/loadRootComponents.js +49 -10
  303. package/dist/server/loadRootComponents.js.map +1 -1
  304. package/dist/server/mqtt.d.ts +2 -0
  305. package/dist/server/mqtt.js +165 -30
  306. package/dist/server/mqtt.js.map +1 -1
  307. package/dist/server/nodeName.d.ts +2 -0
  308. package/dist/server/nodeName.js +107 -23
  309. package/dist/server/nodeName.js.map +1 -1
  310. package/dist/server/serverHelpers/Headers.d.ts +25 -0
  311. package/dist/server/serverHelpers/Headers.js +139 -1
  312. package/dist/server/serverHelpers/Headers.js.map +1 -1
  313. package/dist/server/serverHelpers/contentTypes.d.ts +9 -0
  314. package/dist/server/serverHelpers/contentTypes.js +32 -25
  315. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  316. package/dist/server/serverHelpers/deployValidationState.d.ts +3 -0
  317. package/dist/server/serverHelpers/deployValidationState.js +9 -19
  318. package/dist/server/serverHelpers/deployValidationState.js.map +1 -1
  319. package/dist/server/serverHelpers/operationAuthorizationState.d.ts +12 -0
  320. package/dist/server/serverHelpers/operationAuthorizationState.js +24 -2
  321. package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -1
  322. package/dist/server/serverHelpers/registeredOperations.d.ts +5 -4
  323. package/dist/server/serverHelpers/registeredOperations.js +74 -21
  324. package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
  325. package/dist/server/serverHelpers/requestSanitization.d.ts +11 -0
  326. package/dist/server/serverHelpers/requestSanitization.js +20 -0
  327. package/dist/server/serverHelpers/requestSanitization.js.map +1 -0
  328. package/dist/server/serverHelpers/serverHandlers.js +6 -3
  329. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  330. package/dist/server/serverHelpers/serverUtilities.d.ts +18 -0
  331. package/dist/server/serverHelpers/serverUtilities.js +90 -20
  332. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  333. package/dist/server/serverHelpers/sharedMessageEncoding.d.ts +67 -0
  334. package/dist/server/serverHelpers/sharedMessageEncoding.js +280 -0
  335. package/dist/server/serverHelpers/sharedMessageEncoding.js.map +1 -0
  336. package/dist/server/serverHelpers/uwsServer.js +19 -1
  337. package/dist/server/serverHelpers/uwsServer.js.map +1 -1
  338. package/dist/server/static.js +24 -28
  339. package/dist/server/static.js.map +1 -1
  340. package/dist/server/storageReclamation.d.ts +5 -0
  341. package/dist/server/storageReclamation.js +16 -0
  342. package/dist/server/storageReclamation.js.map +1 -1
  343. package/dist/server/threads/itc.d.ts +7 -2
  344. package/dist/server/threads/itc.js +5 -1
  345. package/dist/server/threads/itc.js.map +1 -1
  346. package/dist/server/threads/manageThreads.d.ts +26 -4
  347. package/dist/server/threads/manageThreads.js +517 -72
  348. package/dist/server/threads/manageThreads.js.map +1 -1
  349. package/dist/server/threads/socketRouter.js +89 -26
  350. package/dist/server/threads/socketRouter.js.map +1 -1
  351. package/dist/server/threads/threadHeapMemory.d.ts +2 -0
  352. package/dist/server/threads/threadHeapMemory.js +31 -0
  353. package/dist/server/threads/threadHeapMemory.js.map +1 -0
  354. package/dist/server/threads/threadServer.js +46 -15
  355. package/dist/server/threads/threadServer.js.map +1 -1
  356. package/dist/sqlEngine/config.d.ts +1 -3
  357. package/dist/sqlEngine/config.js +19 -16
  358. package/dist/sqlEngine/config.js.map +1 -1
  359. package/dist/sqlTranslator/index.d.ts +1 -1
  360. package/dist/sqlTranslator/index.js +30 -7
  361. package/dist/sqlTranslator/index.js.map +1 -1
  362. package/dist/upgrade/directives/5-3-0.d.ts +7 -0
  363. package/dist/upgrade/directives/5-3-0.js +148 -0
  364. package/dist/upgrade/directives/5-3-0.js.map +1 -0
  365. package/dist/upgrade/directives/directivesController.js +2 -1
  366. package/dist/upgrade/directives/directivesController.js.map +1 -1
  367. package/dist/utility/OperationFunctionCaller.js +2 -1
  368. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  369. package/dist/utility/common_utils.d.ts +16 -0
  370. package/dist/utility/common_utils.js +32 -6
  371. package/dist/utility/common_utils.js.map +1 -1
  372. package/dist/utility/componentNames.d.ts +8 -0
  373. package/dist/utility/componentNames.js +12 -1
  374. package/dist/utility/componentNames.js.map +1 -1
  375. package/dist/utility/environment/environmentManager.js +3 -6
  376. package/dist/utility/environment/environmentManager.js.map +1 -1
  377. package/dist/utility/environment/systemInformation.d.ts +1 -0
  378. package/dist/utility/environment/systemInformation.js +1 -0
  379. package/dist/utility/environment/systemInformation.js.map +1 -1
  380. package/dist/utility/errors/commonErrors.d.ts +2 -0
  381. package/dist/utility/errors/commonErrors.js +2 -0
  382. package/dist/utility/errors/commonErrors.js.map +1 -1
  383. package/dist/utility/errors/hdbError.d.ts +17 -0
  384. package/dist/utility/errors/hdbError.js +30 -1
  385. package/dist/utility/errors/hdbError.js.map +1 -1
  386. package/dist/utility/globalSchema.d.ts +18 -0
  387. package/dist/utility/hdbTerms.d.ts +16 -0
  388. package/dist/utility/hdbTerms.js +18 -2
  389. package/dist/utility/hdbTerms.js.map +1 -1
  390. package/dist/utility/logging/harper_logger.d.ts +2 -0
  391. package/dist/utility/logging/harper_logger.js +91 -14
  392. package/dist/utility/logging/harper_logger.js.map +1 -1
  393. package/dist/utility/logging/logRotator.js +76 -49
  394. package/dist/utility/logging/logRotator.js.map +1 -1
  395. package/dist/utility/nodeIdentity.d.ts +9 -0
  396. package/dist/utility/nodeIdentity.js +58 -0
  397. package/dist/utility/nodeIdentity.js.map +1 -0
  398. package/dist/utility/npmUtilities.js +9 -7
  399. package/dist/utility/npmUtilities.js.map +1 -1
  400. package/dist/utility/operationPermissions.d.ts +3 -1
  401. package/dist/utility/operationPermissions.js +16 -1
  402. package/dist/utility/operationPermissions.js.map +1 -1
  403. package/dist/utility/operation_authorization.d.ts +10 -7
  404. package/dist/utility/operation_authorization.js +212 -41
  405. package/dist/utility/operation_authorization.js.map +1 -1
  406. package/dist/utility/watchPath.d.ts +29 -0
  407. package/dist/utility/watchPath.js +68 -0
  408. package/dist/utility/watchPath.js.map +1 -0
  409. package/dist/utility/watcherFallback.d.ts +86 -0
  410. package/dist/utility/watcherFallback.js +278 -1
  411. package/dist/utility/watcherFallback.js.map +1 -1
  412. package/dist/validation/configValidator.d.ts +12 -0
  413. package/dist/validation/configValidator.js +199 -72
  414. package/dist/validation/configValidator.js.map +1 -1
  415. package/dist/validation/installValidator.js +12 -0
  416. package/dist/validation/installValidator.js.map +1 -1
  417. package/dist/validation/validationWrapper.d.ts +11 -0
  418. package/dist/validation/validationWrapper.js +16 -3
  419. package/dist/validation/validationWrapper.js.map +1 -1
  420. package/index.ts +2 -0
  421. package/json/systemSchema.json +52 -0
  422. package/npm-shrinkwrap.json +235 -233
  423. package/package.json +8 -7
  424. package/resources/DESIGN.md +114 -52
  425. package/resources/DatabaseTransaction.ts +522 -130
  426. package/resources/LMDBTransaction.ts +26 -4
  427. package/resources/PrimaryRocksDatabase.ts +29 -3
  428. package/resources/RecordEncoder.ts +103 -8
  429. package/resources/RequestTarget.ts +2 -0
  430. package/resources/Resource.ts +17 -9
  431. package/resources/ResourceInterface.ts +23 -0
  432. package/resources/RocksIndexStore.ts +30 -10
  433. package/resources/RocksTransactionLogStore.ts +78 -21
  434. package/resources/Table.ts +1107 -164
  435. package/resources/auditStore.ts +187 -21
  436. package/resources/blob.ts +1029 -110
  437. package/resources/branchDatabase.ts +941 -0
  438. package/resources/crdt.ts +76 -12
  439. package/resources/databases.ts +1354 -522
  440. package/resources/defineTable.ts +18 -2
  441. package/resources/graphql.ts +70 -16
  442. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +6 -2
  443. package/resources/longLivedTransactions.ts +360 -0
  444. package/resources/models/backendRegistry.ts +84 -2
  445. package/resources/models/bootstrap.ts +473 -28
  446. package/resources/recordLock.ts +253 -0
  447. package/resources/replayLogs.ts +147 -26
  448. package/resources/replayLogsGuards.ts +171 -8
  449. package/resources/search.ts +154 -32
  450. package/resources/transactionBroadcast.ts +3 -3
  451. package/security/auth.ts +68 -29
  452. package/security/authn/oidc/claims.ts +72 -0
  453. package/security/authn/oidc/identityToken.ts +129 -0
  454. package/security/authn/oidc/jwks.ts +260 -0
  455. package/security/authn/oidc/providers/generic.ts +40 -0
  456. package/security/authn/oidc/providers/githubActions.ts +137 -0
  457. package/security/authn/oidc/providers/index.ts +52 -0
  458. package/security/authn/oidc/tokenExchange.ts +300 -0
  459. package/security/authn/oidc/trustPolicyOperations.ts +343 -0
  460. package/security/authn/oidc/types.ts +41 -0
  461. package/security/certificateVerification/index.ts +54 -13
  462. package/security/certificateVerification/trustedIssuers.ts +76 -0
  463. package/security/certificateVerification/types.ts +1 -0
  464. package/security/credentialProvenance.ts +47 -0
  465. package/security/credentialRejection.ts +22 -0
  466. package/security/deferredAuthentication.ts +71 -0
  467. package/security/impersonation.ts +117 -12
  468. package/security/jsLoader.ts +81 -18
  469. package/security/keys.ts +298 -72
  470. package/security/operationScope.ts +33 -0
  471. package/security/permissionsTranslator.js +23 -0
  472. package/security/tokenAuthentication.ts +233 -12
  473. package/security/user.ts +4 -3
  474. package/server/DESIGN.md +183 -16
  475. package/server/DurableSubscriptionsSession.ts +71 -11
  476. package/server/REST.ts +79 -1
  477. package/server/graphqlQuerying.ts +4 -0
  478. package/server/http.ts +99 -18
  479. package/server/itc/serverHandlers.js +8 -1
  480. package/server/jobs/jobProcess.ts +8 -2
  481. package/server/jobs/jobs.ts +4 -1
  482. package/server/liveSubscriptionAuth.ts +129 -46
  483. package/server/loadRootComponents.js +50 -8
  484. package/server/mqtt.ts +179 -38
  485. package/server/nodeName.ts +103 -21
  486. package/server/serverHelpers/Headers.ts +131 -0
  487. package/server/serverHelpers/contentTypes.ts +29 -21
  488. package/server/serverHelpers/deployValidationState.ts +24 -13
  489. package/server/serverHelpers/operationAuthorizationState.ts +34 -3
  490. package/server/serverHelpers/registeredOperations.ts +79 -22
  491. package/server/serverHelpers/requestSanitization.ts +15 -0
  492. package/server/serverHelpers/serverHandlers.js +6 -3
  493. package/server/serverHelpers/serverUtilities.ts +104 -31
  494. package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
  495. package/server/serverHelpers/uwsServer.ts +17 -2
  496. package/server/static.ts +23 -29
  497. package/server/storageReclamation.ts +13 -0
  498. package/server/threads/itc.js +11 -1
  499. package/server/threads/manageThreads.js +526 -63
  500. package/server/threads/socketRouter.ts +81 -26
  501. package/server/threads/threadHeapMemory.ts +26 -0
  502. package/server/threads/threadServer.js +43 -15
  503. package/sqlTranslator/index.ts +31 -8
  504. package/studio/web/assets/{Chat-Br06zdMA.js → Chat-BnCBegQz.js} +1 -1
  505. package/studio/web/assets/{FloatingChat-BWImX5fA.js → FloatingChat-CoDW1ySS.js} +3 -3
  506. package/studio/web/assets/{apiToken-DN0nmDsq.js → apiToken-Bwk5BLXW.js} +1 -1
  507. package/studio/web/assets/{applications-kSxVoyeU.js → applications-DHxGi7JH.js} +1 -1
  508. package/studio/web/assets/{cssMode-C1JeufH5.js → cssMode-s0cWI-_M.js} +1 -1
  509. package/studio/web/assets/{editor-qoo9CrGO.js → editor-DNcRHK54.js} +1 -1
  510. package/studio/web/assets/{html-Dt4IIy04.js → html-Bdssedlg.js} +1 -1
  511. package/studio/web/assets/{htmlMode-DXgKKr4C.js → htmlMode-CoDlJ3fw.js} +1 -1
  512. package/studio/web/assets/{index-6onkYFOG.js → index-D6sxmFLR.js} +5 -5
  513. package/studio/web/assets/{index.lazy-BrCFnpNJ.js → index.lazy-tmU5BS8s.js} +1 -1
  514. package/studio/web/assets/{javascript-DNCQGUBc.js → javascript-B8meVSTH.js} +1 -1
  515. package/studio/web/assets/{jsonMode-CR6HWruP.js → jsonMode-DpIPd35T.js} +1 -1
  516. package/studio/web/assets/{languageServices-BM4fI4rS.js → languageServices-C_5FMJzQ.js} +1 -1
  517. package/studio/web/assets/{lspLanguageFeatures-DSa1ttcD.js → lspLanguageFeatures-BIzNBzPK.js} +1 -1
  518. package/studio/web/assets/{notifications-BHXLnh6x.js → notifications-CQf18QKb.js} +1 -1
  519. package/studio/web/assets/{notifications-CUmtIA6z.js → notifications-CvZivSbh.js} +1 -1
  520. package/studio/web/assets/{profile-8BeFSF3j.js → profile-DdOwtntb.js} +1 -1
  521. package/studio/web/assets/{regions-C8qR0HhD.js → regions-n69fwagr.js} +1 -1
  522. package/studio/web/assets/{register-B4n5i0SD.js → register-PfWTCXWB.js} +2 -2
  523. package/studio/web/assets/{setComponentFile-g0_B0lgX.js → setComponentFile-Bg6O7X0S.js} +1 -1
  524. package/studio/web/assets/{setup-B0CTj_Q5.js → setup-CUx_aUDl.js} +2 -2
  525. package/studio/web/assets/{status-C6Yib7-K.js → status-D7BVKqX9.js} +1 -1
  526. package/studio/web/assets/{toggleHighContrast-Dgta7bVi.js → toggleHighContrast-DBSyXzMr.js} +1 -1
  527. package/studio/web/assets/{tsMode-CH_jHvU-.js → tsMode-BByKCjBS.js} +1 -1
  528. package/studio/web/assets/{typescript-Co9LCXd5.js → typescript-DDLnLpw9.js} +1 -1
  529. package/studio/web/assets/{useEntityRestURL-wKC8NsC_.js → useEntityRestURL-31CHGaHk.js} +1 -1
  530. package/studio/web/assets/{workers-CWeLxCXA.js → workers-pR3jRY9D.js} +1 -1
  531. package/studio/web/assets/{xml-BadC-0Rk.js → xml-2iRnMhQO.js} +1 -1
  532. package/studio/web/assets/{yaml-BiUfxPbC.js → yaml-Bf92gJpd.js} +1 -1
  533. package/studio/web/index.html +1 -1
  534. package/upgrade/directives/5-3-0.ts +132 -0
  535. package/upgrade/directives/directivesController.ts +2 -1
  536. package/utility/OperationFunctionCaller.ts +2 -1
  537. package/utility/common_utils.ts +30 -5
  538. package/utility/componentNames.ts +12 -0
  539. package/utility/environment/environmentManager.ts +3 -7
  540. package/utility/environment/systemInformation.ts +7 -0
  541. package/utility/errors/commonErrors.ts +4 -0
  542. package/utility/errors/hdbError.ts +29 -0
  543. package/utility/hdbTerms.ts +17 -0
  544. package/utility/logging/harper_logger.ts +87 -14
  545. package/utility/logging/logRotator.ts +72 -45
  546. package/utility/nodeIdentity.ts +45 -0
  547. package/utility/npmUtilities.ts +10 -8
  548. package/utility/operationPermissions.ts +18 -1
  549. package/utility/operation_authorization.ts +231 -42
  550. package/utility/watchPath.ts +63 -0
  551. package/utility/watcherFallback.ts +270 -0
  552. package/validation/configValidator.ts +209 -72
  553. package/validation/installValidator.ts +15 -0
  554. package/validation/validationWrapper.ts +18 -4
@@ -47,6 +47,8 @@ export declare class ConfigEnvVarError extends Error {
47
47
  * // Returns: { rootpath: '/var/hdb' }
48
48
  */
49
49
  export declare function filterArgsAgainstRuntimeConfig(args: Record<string, any>): Record<string, any>;
50
+ export declare function commitStagedConfigState(rootPath: string): boolean;
51
+ export declare function discardConfigState(rootPath: string): void;
50
52
  /**
51
53
  * Compose a merged config from HARPER_DEFAULT_CONFIG, HARPER_CONFIG and
52
54
  * HARPER_SET_CONFIG layered with an optional base. Later layers win:
@@ -99,4 +101,18 @@ export declare function hasPersistedEnvConfigState(rootPath: string): boolean;
99
101
  export declare function applyRuntimeEnvConfig(fileConfig: ConfigObject, rootPath: string, options?: {
100
102
  isInstall?: boolean;
101
103
  }): ConfigObject;
104
+ /**
105
+ * Apply the env layers and hand the state writes back to the caller, so a caller that also persists
106
+ * the merged config file can commit the pair as a unit (#847): saveState() stages the new state
107
+ * beside the confirmed one, confirmConfigWritten() renames it over the confirmed one after the
108
+ * config file lands, and discardConfigState() drops the staged copy if that write never happens.
109
+ */
110
+ export declare function prepareRuntimeEnvConfig(fileConfig: ConfigObject, rootPath: string, options?: {
111
+ isInstall?: boolean;
112
+ }): {
113
+ config: ConfigObject;
114
+ saveState: () => boolean;
115
+ confirmConfigWritten: () => boolean;
116
+ commitState: () => boolean;
117
+ };
102
118
  export {};
@@ -58,20 +58,36 @@ var __importStar = (this && this.__importStar) || (function () {
58
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
59
  exports.ConfigEnvVarError = void 0;
60
60
  exports.filterArgsAgainstRuntimeConfig = filterArgsAgainstRuntimeConfig;
61
+ exports.commitStagedConfigState = commitStagedConfigState;
62
+ exports.discardConfigState = discardConfigState;
61
63
  exports.composeConfigFromEnv = composeConfigFromEnv;
62
64
  exports.hasConfigEnvVars = hasConfigEnvVars;
63
65
  exports.overlayRootEnvConfig = overlayRootEnvConfig;
64
66
  exports.isRootConfigFilename = isRootConfigFilename;
65
67
  exports.hasPersistedEnvConfigState = hasPersistedEnvConfigState;
66
68
  exports.applyRuntimeEnvConfig = applyRuntimeEnvConfig;
69
+ exports.prepareRuntimeEnvConfig = prepareRuntimeEnvConfig;
67
70
  const fs = __importStar(require("fs-extra"));
68
71
  const path = __importStar(require("node:path"));
72
+ const node_worker_threads_1 = require("node:worker_threads");
69
73
  const crypto = __importStar(require("node:crypto"));
70
74
  const lodash_1 = require("lodash");
71
75
  const configHelpers_ts_1 = require("./configHelpers.js");
72
76
  const configUtils_ts_1 = require("./configUtils.js");
73
77
  const hdbTerms = __importStar(require("../utility/hdbTerms.js"));
74
78
  const STATE_FILE_NAME = '.harper-config-state.json';
79
+ // Staged beside the confirmed state while a config-file write is in flight, then renamed over it.
80
+ // Per-process, because every CLI invocation and worker runs this and one shared name would let one
81
+ // clear another's in-flight commit. See DESIGN.md, boot-path config persistence.
82
+ const PENDING_STATE_PREFIX = '.harper-config-state.pending.';
83
+ const PENDING_STATE_SUFFIX = '.json';
84
+ const pendingStateFileName = () => `${PENDING_STATE_PREFIX}${process.pid}${PENDING_STATE_SUFFIX}`;
85
+ // Recovery from a recycled pid only has to be eventual, and deleting a slow-but-live writer's
86
+ // sidecar is the worse error - it strands that writer's config file against an unpromoted state. So
87
+ // the age-out is far longer than a commit (three synchronous steps) could ever legitimately take:
88
+ // long enough that a stalled writer or clock skew between containers sharing a volume cannot reach
89
+ // it, short enough that leaked wreckage does not suspend drift detection indefinitely.
90
+ const PENDING_STATE_STALE_MS = 60 * 60 * 1000;
75
91
  /**
76
92
  * Get logger instance with tag - lazy loaded to avoid circular dependencies
77
93
  * and ensure logger is initialized before use
@@ -492,15 +508,8 @@ function parseConfigEnvVar(envVarValue, envVarName) {
492
508
  */
493
509
  function loadConfigState(rootPath) {
494
510
  const statePath = path.join((0, configHelpers_ts_1.getBackupDirPath)(rootPath), STATE_FILE_NAME);
495
- if (!fs.existsSync(statePath)) {
496
- return {
497
- version: '1.0',
498
- sources: {},
499
- originalValues: {},
500
- emptyScopeOriginals: {},
501
- snapshots: {},
502
- };
503
- }
511
+ if (!fs.existsSync(statePath))
512
+ return freshConfigState();
504
513
  try {
505
514
  const state = fs.readJsonSync(statePath);
506
515
  // Ensure newer fields exist (for backwards compatibility with old state files)
@@ -519,18 +528,85 @@ function loadConfigState(rootPath) {
519
528
  // If state file is corrupted, start fresh
520
529
  const logger = getLogger();
521
530
  logger.warn(`Failed to load config state file, starting fresh: ${error.message}`);
522
- return {
523
- version: '1.0',
524
- sources: {},
525
- originalValues: {},
526
- emptyScopeOriginals: {},
527
- snapshots: {},
528
- };
531
+ return freshConfigState();
532
+ }
533
+ }
534
+ /**
535
+ * Clear a sidecar left by an interrupted commit, reporting whether one was there. The caller skips
536
+ * drift detection for that boot: it cannot tell a manual user edit from the write that was in
537
+ * flight, and calling it an edit hands those paths to 'user' for good.
538
+ */
539
+ function takeInterruptedCommit(rootPath) {
540
+ const backupDir = (0, configHelpers_ts_1.getBackupDirPath)(rootPath);
541
+ let entries;
542
+ try {
543
+ entries = fs.readdirSync(backupDir);
544
+ }
545
+ catch {
546
+ return false;
547
+ }
548
+ let interrupted = false;
549
+ for (const entry of entries) {
550
+ if (!entry.startsWith(PENDING_STATE_PREFIX) || !entry.endsWith(PENDING_STATE_SUFFIX))
551
+ continue;
552
+ const pid = Number(entry.slice(PENDING_STATE_PREFIX.length, -PENDING_STATE_SUFFIX.length));
553
+ const entryPath = path.join(backupDir, entry);
554
+ if (pid !== process.pid && isProcessAlive(pid) && !isStale(entryPath)) {
555
+ // A live owner is mid-commit, so its sidecar is not wreckage to clear - but the pair it is
556
+ // halfway through is no more comparable than an interrupted one, so drift detection is off
557
+ // for this boot either way.
558
+ interrupted = true;
559
+ continue;
560
+ }
561
+ try {
562
+ fs.removeSync(entryPath);
563
+ }
564
+ catch (error) {
565
+ // Keep drift detection on rather than disabling it every boot over a sidecar we cannot clear
566
+ getLogger().warn(`Could not remove an interrupted env config commit (${entry}): ${error.message}`);
567
+ continue;
568
+ }
569
+ interrupted = true;
570
+ }
571
+ if (interrupted)
572
+ getLogger().warn('An env config commit was interrupted; skipping drift detection for this boot');
573
+ return interrupted;
574
+ }
575
+ function isStale(entryPath) {
576
+ try {
577
+ return Date.now() - fs.statSync(entryPath).mtimeMs > PENDING_STATE_STALE_MS;
578
+ }
579
+ catch {
580
+ return false;
581
+ }
582
+ }
583
+ function isProcessAlive(pid) {
584
+ if (!Number.isInteger(pid) || pid <= 0)
585
+ return false;
586
+ try {
587
+ process.kill(pid, 0);
588
+ return true;
589
+ }
590
+ catch (error) {
591
+ return error.code === 'EPERM';
529
592
  }
530
593
  }
594
+ function freshConfigState() {
595
+ return {
596
+ version: '1.0',
597
+ sources: {},
598
+ originalValues: {},
599
+ emptyScopeOriginals: {},
600
+ snapshots: {},
601
+ };
602
+ }
531
603
  /**
532
604
  * Save configuration state to file
533
605
  */
606
+ function serializeConfigState(state) {
607
+ return JSON.stringify(state, null, 2) + '\n';
608
+ }
609
+ // Returns true when the file was rewritten, false when it already held this state.
534
610
  function saveConfigState(rootPath, state) {
535
611
  const backupDir = (0, configHelpers_ts_1.getBackupDirPath)(rootPath);
536
612
  const statePath = path.join(backupDir, STATE_FILE_NAME);
@@ -538,7 +614,46 @@ function saveConfigState(rootPath, state) {
538
614
  fs.ensureDirSync(backupDir);
539
615
  // Atomic write: a torn state file resets to fresh on the next load, losing every
540
616
  // restoration record — the blast radius is user config-file content
541
- (0, configUtils_ts_1.atomicWriteFile)(statePath, JSON.stringify(state, null, 2) + '\n');
617
+ return (0, configUtils_ts_1.atomicWriteFile)(statePath, serializeConfigState(state), { skipIfUnchanged: true });
618
+ }
619
+ function configStateMatchesDisk(rootPath, state) {
620
+ try {
621
+ const statePath = path.join((0, configHelpers_ts_1.getBackupDirPath)(rootPath), STATE_FILE_NAME);
622
+ return fs.readFileSync(statePath, 'utf8') === serializeConfigState(state);
623
+ }
624
+ catch {
625
+ return false;
626
+ }
627
+ }
628
+ function stageConfigState(rootPath, state) {
629
+ const backupDir = (0, configHelpers_ts_1.getBackupDirPath)(rootPath);
630
+ fs.ensureDirSync(backupDir);
631
+ return (0, configUtils_ts_1.atomicWriteFile)(path.join(backupDir, pendingStateFileName()), serializeConfigState(state));
632
+ }
633
+ // A rename, so an exhausted volume cannot refuse it and leave the config file described by nothing.
634
+ function commitStagedConfigState(rootPath) {
635
+ const backupDir = (0, configHelpers_ts_1.getBackupDirPath)(rootPath);
636
+ const pendingPath = path.join(backupDir, pendingStateFileName());
637
+ try {
638
+ (0, configUtils_ts_1.renameWithRetry)(pendingPath, path.join(backupDir, STATE_FILE_NAME));
639
+ return true;
640
+ }
641
+ catch (error) {
642
+ // Loud: the config file is already on disk, so the confirmed state now describes values it no
643
+ // longer has, and the next boot reads that difference as a manual user edit.
644
+ getLogger().error(`Could not promote the staged env config state at ${pendingPath}: ${error.message}`);
645
+ return false;
646
+ }
647
+ }
648
+ // Drops the staged state for a config-file write that did not happen; the confirmed record stays.
649
+ function discardConfigState(rootPath) {
650
+ const pendingPath = path.join((0, configHelpers_ts_1.getBackupDirPath)(rootPath), pendingStateFileName());
651
+ try {
652
+ fs.removeSync(pendingPath);
653
+ }
654
+ catch (error) {
655
+ getLogger().warn(`Could not remove the staged env config state at ${pendingPath}: ${error.message}`);
656
+ }
542
657
  }
543
658
  /**
544
659
  * Detect config drift (user manual edits)
@@ -841,17 +956,36 @@ function hasPersistedEnvConfigState(rootPath) {
841
956
  * later wins). Can be used for both install-time and runtime.
842
957
  */
843
958
  function applyRuntimeEnvConfig(fileConfig, rootPath, options = {}) {
959
+ const { config, commitState } = prepareRuntimeEnvConfig(fileConfig, rootPath, options);
960
+ commitState();
961
+ return config;
962
+ }
963
+ /**
964
+ * Apply the env layers and hand the state writes back to the caller, so a caller that also persists
965
+ * the merged config file can commit the pair as a unit (#847): saveState() stages the new state
966
+ * beside the confirmed one, confirmConfigWritten() renames it over the confirmed one after the
967
+ * config file lands, and discardConfigState() drops the staged copy if that write never happens.
968
+ */
969
+ function prepareRuntimeEnvConfig(fileConfig, rootPath, options = {}) {
844
970
  const defaultEnvValue = process.env.HARPER_DEFAULT_CONFIG;
845
971
  const configEnvValue = process.env.HARPER_CONFIG;
846
972
  const setEnvValue = process.env.HARPER_SET_CONFIG;
847
- // Load existing state
973
+ // Load existing state. Only the main thread persists, so only the main thread has wreckage to
974
+ // clear - and a worker shares its pid, so letting one scan would delete the main thread's
975
+ // in-flight sidecar as if it were last boot's.
976
+ const interruptedCommit = node_worker_threads_1.isMainThread && takeInterruptedCommit(rootPath);
848
977
  const state = loadConfigState(rootPath);
849
978
  // No env vars set and no previous state, nothing to do
850
979
  if (!defaultEnvValue && !configEnvValue && !setEnvValue && Object.keys(state.snapshots).length === 0) {
851
- return fileConfig;
852
- }
853
- // Detect drift (user manual edits) - only at runtime, not install
854
- if (!options.isInstall) {
980
+ return { config: fileConfig, saveState: () => false, confirmConfigWritten: () => false, commitState: () => false };
981
+ }
982
+ // Detect drift (user manual edits) - only at runtime, not install, not on a boot that found an
983
+ // interrupted commit (where a difference could equally be the write that was in flight), and only
984
+ // on the main thread: a worker never owns the state, and one re-deriving inside the main thread's
985
+ // commit window would call its half-written config file a user edit and drop the env-supplied
986
+ // value for itself alone - serving different config than its siblings, with nothing on disk to
987
+ // show why.
988
+ if (!options.isInstall && !interruptedCommit && node_worker_threads_1.isMainThread) {
855
989
  const driftedPaths = detectConfigDrift(fileConfig, state);
856
990
  for (const path of driftedPaths) {
857
991
  state.sources[path] = 'user';
@@ -876,8 +1010,11 @@ function applyRuntimeEnvConfig(fileConfig, rootPath, options = {}) {
876
1010
  processEnvVar(fileConfig, state, 'HARPER_DEFAULT_CONFIG', 'HARPER_DEFAULT_CONFIG', options);
877
1011
  processEnvVar(fileConfig, state, 'HARPER_CONFIG', 'HARPER_CONFIG', options);
878
1012
  processEnvVar(fileConfig, state, 'HARPER_SET_CONFIG', 'HARPER_SET_CONFIG', options);
879
- // Save updated state
880
- saveConfigState(rootPath, state);
881
- return fileConfig;
1013
+ return {
1014
+ config: fileConfig,
1015
+ saveState: () => (configStateMatchesDisk(rootPath, state) ? false : stageConfigState(rootPath, state)),
1016
+ confirmConfigWritten: () => commitStagedConfigState(rootPath),
1017
+ commitState: () => saveConfigState(rootPath, state),
1018
+ };
882
1019
  }
883
1020
  //# sourceMappingURL=harperConfigEnvVars.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"harperConfigEnvVars.js","sourceRoot":"","sources":["../../config/harperConfigEnvVars.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harperConfigEnvVars.js","sourceRoot":"","sources":["../../config/harperConfigEnvVars.ts"],"names":[],"mappings":"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"}
@@ -13,39 +13,68 @@
13
13
  * possible (cheap, no extra space on the same filesystem) and copied otherwise (never symlinked, so
14
14
  * a snapshot is a standalone set of files that survives independent of the live blob).
15
15
  *
16
- * Consistency is best-effort and point-in-time-ish, matching how the engine treats the transaction
17
- * log: the walk captures whatever files exist at snapshot time. A blob deleted mid-walk is skipped;
18
- * a blob being written mid-walk is captured as-is (a hard link shares the inode, so it reflects the
19
- * writer's final bytes; a cross-filesystem copy captures the bytes present at copy time). Harper
20
- * does not freeze blob writes for the duration of a backup.
16
+ * Harper does not freeze blob writes for a backup, and a blob is written in place at its final path,
17
+ * so the walk can meet one that is still growing. Hard-linking that inode would put bytes in the
18
+ * snapshot that keep changing after it was taken. Every entry returned by the walk is therefore
19
+ * classified (`captureBlobFile`): a complete blob is linked, and one that becomes unavailable or is
20
+ * not yet complete is replaced by a marker rather than dropped. This closes the classify-to-capture
21
+ * race and keeps that file id reserved; a file reclaimed before its parent directory is read remains
22
+ * outside the snapshot.
21
23
  *
22
- * Hard-linking is safe against later mutation because Harper blobs are content-addressed and
23
- * write-once: each write allocates a fresh monotonic file id (a new path), and an update or delete
24
- * unlinks the old path rather than rewriting it in place — so a snapshot's hard link keeps the exact
25
- * bytes alive even after the live blob is deleted, and no in-place overwrite can retroactively alter
26
- * a snapshot.
24
+ * Past that gate, hard-linking is safe against later mutation: each write takes a fresh monotonic
25
+ * file id, and an update, delete, or in-place repair replaces or unlinks the path rather than
26
+ * rewriting the inode.
27
27
  */
28
28
  /** Directory holding all blob snapshots for a backup repository. */
29
29
  export declare function blobsRootDir(backupDir: string): string;
30
30
  /** Directory holding a single backup id's blob snapshot. */
31
31
  export declare function blobSnapshotDir(backupDir: string, backupId: number): string;
32
+ /** What a substituted marker says happened, so a branch clone doesn't report itself as a backup. */
33
+ export interface CaptureMarkerReasons {
34
+ gone: string;
35
+ pending: string;
36
+ }
32
37
  /**
33
- * Snapshot a database's blob roots into a backup's blob directory. Writes to a temporary sibling
34
- * and atomically renames into place so a create_backup that fails mid-copy never leaves a partial
35
- * `blobs/<backupId>/` that a later restore would trust. Overwrites any pre-existing snapshot for the
36
- * same id (create_backup always produces a fresh id, so this only matters on a retried offline run).
38
+ * Recursively copy every file under `srcRoot` into `destRoot` (hard-link-else-copy), preserving the
39
+ * relative directory structure. Missing `srcRoot` is a no-op (a database with no blobs yet).
40
+ *
41
+ * `classify` substitutes a marker for a file that is mid-write or already gone, so the destination
42
+ * fails loudly on that blob rather than carrying a truncated one. It belongs to the capture direction
43
+ * only; restore must replace exactly what the snapshot holds.
44
+ *
45
+ * Also used by branch materialization (harper#644), which clones a base's blob roots into the
46
+ * branch's own so the OS inode refcount does the reference counting. Its walk runs inside a window
47
+ * other threads wait on, which is what `onProgress` is for.
48
+ */
49
+ export declare function copyTree(srcRoot: string, destRoot: string, classify?: boolean, reasons?: CaptureMarkerReasons, onProgress?: () => void): Promise<{
50
+ substituted: number;
51
+ captured: number;
52
+ copied: number;
53
+ }>;
54
+ /**
55
+ * Copy every blob root into `destDir` as `<rootIndex>/<relpath>`, hard-linking where possible.
56
+ * Writes to a temporary sibling and atomically renames into place so a run that fails mid-copy never
57
+ * leaves a partial directory a later restore would trust, and replaces any pre-existing `destDir`.
58
+ * Shared by managed-backup snapshots and `copy-db`'s standalone blob copy (harper#2048).
59
+ */
60
+ export declare function copyBlobRootsByIndex(destDir: string, blobRoots: string[]): Promise<void>;
61
+ /**
62
+ * Snapshot a database's blob roots into a backup's blob directory. Overwrites any pre-existing
63
+ * snapshot for the same id (create_backup always produces a fresh id, so this only matters on a
64
+ * retried offline run).
37
65
  */
38
66
  export declare function snapshotBlobs(backupDir: string, backupId: number, blobRoots: string[]): Promise<void>;
39
67
  /**
40
68
  * Build the `blobs/README.md` documenting the blob snapshot layout, so an operator inspecting or
41
- * hand-recovering a backup can decode the numeric directories. Two variants:
42
- * - managed (default): a create_backup repository, where snapshots are keyed by backup id
69
+ * hand-recovering a backup can decode the numeric directories. Three variants:
70
+ * - `managed` (default): a create_backup repository, where snapshots are keyed by backup id
43
71
  * (`<backupId>/<rootIndex>/…`) and restore is automatic via `restore_backup`.
44
- * - archive (`archive: true`): a downloaded `get_backup` tar, which holds a single snapshot with no
45
- * backup-id level (`<rootIndex>/…`) and is restored by extracting the files back into the roots.
72
+ * - `archive`: a downloaded `get_backup` tar, which holds a single snapshot with no backup-id level
73
+ * (`<rootIndex>/…`) and is restored by extracting the files back into the roots.
74
+ * - `copy`: the companion directory `copy-db` writes beside a database copy, restored by hand.
46
75
  */
47
- export declare function blobsReadmeContent(blobRoots: string[], { archive }?: {
48
- archive?: boolean;
76
+ export declare function blobsReadmeContent(blobRoots: string[], { variant }?: {
77
+ variant?: 'managed' | 'archive' | 'copy';
49
78
  }): string;
50
79
  /**
51
80
  * Write the `blobs/README.md` into a managed backup's `blobs/` directory. Best-effort: a failure to