@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
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  const path = require('node:path');
3
- const { isMainThread } = require('node:worker_threads');
3
+ const { isMainThread, parentPort } = require('node:worker_threads');
4
4
  const fs = require('fs-extra');
5
5
  const fg = require('fast-glob');
6
6
  const normalize = require('normalize-path');
@@ -17,11 +17,21 @@ const { HDB_ERROR_MSGS, HTTP_STATUS_CODES } = hdbErrors;
17
17
  const manageThreads = require('../server/threads/manageThreads.js');
18
18
  const { packageDirectory, scanPackageDirectory, streamPackagedDirectory, } = require("../components/packageComponent.js");
19
19
  const { Resources } = require("../resources/Resources.js");
20
- const { Application, prepareApplication, ASIDE_STAGING_DIR } = require("./Application.js");
21
- const { COMPONENT_PREPARATION_LOCK_DIR } = require("./componentPreparationLock.js");
20
+ const { Application, prepareApplication, ASIDE_STAGING_DIR, DEPLOY_STAGING_DIR, dropComponentDirectory, } = require("./Application.js");
21
+ const { COMPONENT_PREPARATION_LOCK_DIR, withComponentPreparationLock } = require("./componentPreparationLock.js");
22
22
  const { server } = require("../server/Server.js");
23
23
  const { DeploymentRecorder, awaitDeploymentRow, readPayloadBlobWithRetry, coerceTimeoutMs, DEFAULT_AWAIT_ROW_TIMEOUT_MS, } = require("./deploymentRecorder.js");
24
24
  const { ProgressEmitter } = require("../server/serverHelpers/progressEmitter.js");
25
+ const DROP_COMPONENT_LOCK_TIMEOUT_MS = 5 * 60 * 1000;
26
+ function componentDropLockOptions(project) {
27
+ return {
28
+ timeoutMs: DROP_COMPONENT_LOCK_TIMEOUT_MS,
29
+ onWait: (owner) => log.info(`Waiting to drop ${project} while component preparation is in progress` +
30
+ (owner ? ` in process ${owner.pid}, thread ${owner.threadId}` : '')),
31
+ onReleaseError: (error) => log.error(`Failed to release the component preparation lock for ${project}:`, error),
32
+ isOwnerAlive: (owner) => owner.pid !== process.pid || manageThreads.isThreadRunning(owner.threadId),
33
+ };
34
+ }
25
35
  /**
26
36
  * Read the settings.js file and return the
27
37
  *
@@ -172,12 +182,10 @@ async function addComponent(req) {
172
182
  throw handleHDBError(validation, validation.message, HTTP_STATUS_CODES.BAD_REQUEST);
173
183
  }
174
184
  log.trace(`adding component`);
175
- const cfDir = configUtils.getConfigPath(hdbTerms.CONFIG_PARAMS.COMPONENTSROOT);
176
185
  const { project, install_command, install_timeout, install_allow_scripts } = req;
177
186
  const template = req.template || 'https://github.com/harperdb/application-template';
178
187
  try {
179
- const projectDir = path.join(cfDir, project);
180
- fs.mkdirSync(projectDir, { recursive: true });
188
+ await fs.mkdir(configUtils.getConfigPath(hdbTerms.CONFIG_PARAMS.COMPONENTSROOT), { recursive: true });
181
189
  const application = new Application({
182
190
  name: project,
183
191
  packageIdentifier: template,
@@ -230,8 +238,13 @@ async function dropCustomFunctionProject(req) {
230
238
  }
231
239
  try {
232
240
  const projectDir = path.join(cfDir, project);
233
- fs.rmSync(projectDir, { recursive: true });
234
- let response = await server.replication.replicateOperation(req);
241
+ const stagingDir = path.join(cfDir, ASIDE_STAGING_DIR, project);
242
+ if (!(await fs.pathExists(projectDir)) && !(await fs.pathExists(stagingDir)))
243
+ await fs.stat(projectDir);
244
+ await withComponentPreparationLock(projectDir, async () => {
245
+ await dropComponentDirectory(projectDir, project, log);
246
+ }, componentDropLockOptions(project));
247
+ const response = await server.replication.replicateOperation(req);
235
248
  response.message = `Successfully deleted project: ${project}`;
236
249
  return response;
237
250
  }
@@ -320,6 +333,115 @@ async function packageComponent(req) {
320
333
  // return the package payload as base64-encoded string
321
334
  return { project, payload };
322
335
  }
336
+ /**
337
+ * Load the built candidate to surface load-time errors. A load-ERROR PROBE, not a safety guarantee: it runs
338
+ * the component's own top-level code with incomplete side-effect isolation.
339
+ *
340
+ * A no-op on the main thread, and the operations API deploys there — so operator deploys are unvalidated
341
+ * (#2315 step 2). What this guarantees is ORDER: where validation runs, a rejected candidate never goes live.
342
+ */
343
+ // `componentLoader.setErrorReporter` is ONE process-global callback, so two components validating
344
+ // concurrently on the same worker cross-attribute their failures: B installs its reporter while A is
345
+ // loading, A's load error lands in B, and A then activates broken code while B rejects a good candidate.
346
+ // Validation is serialized (it is already the slow path) and the previous reporter is restored, so the
347
+ // global is only ever owned by one in-flight validation.
348
+ let validationChain = Promise.resolve();
349
+ async function validateComponentLoads(candidateDirPath, emit) {
350
+ const run = validationChain.then(() => validateComponentLoadsExclusive(candidateDirPath, emit), () => validateComponentLoadsExclusive(candidateDirPath, emit));
351
+ validationChain = run.then(() => { }, () => { });
352
+ return run;
353
+ }
354
+ async function validateComponentLoadsExclusive(candidateDirPath, emit) {
355
+ // now we attempt to actually load the component in case there is
356
+ // an error we can immediately detect and report, but app code should not run on the main thread
357
+ if (!isMainThread && !process.env.HARPER_SAFE_MODE) {
358
+ const pseudoResources = new Resources();
359
+ pseudoResources.isWorker = true;
360
+ const componentLoader = require("./componentLoader.js").default || require("./componentLoader.js");
361
+ const { trackScopeClose } = require("./scopeShutdown.js");
362
+ let lastError;
363
+ const priorErrorReporter = componentLoader.getErrorReporter?.();
364
+ componentLoader.setErrorReporter((error) => (lastError = error));
365
+ emit('phase', { phase: 'load', status: 'start' });
366
+ // This load exists only to surface load-time errors early; the Scopes it creates are
367
+ // throwaway. They are collected (instead of registered for worker-shutdown auto-close) so we
368
+ // can close them here once validation completes — otherwise each deploy leaks the Scope's
369
+ // deploy-lifecycle listeners on this worker, eventually tripping MaxListenersExceededWarning
370
+ // (#1462).
371
+ const validationScopes = new Set();
372
+ // Process-wide `server.*` registrations (registerOperation, setMcpQuotaHandler) are not owned by
373
+ // a Scope, so a candidate's top-level registration during this throwaway load would otherwise
374
+ // outlive it and pollute the live worker on a failed/rolled-back deploy. The guard makes those
375
+ // registration methods no-op for the duration of the load.
376
+ const { runWithDeployValidationGuard } = require("../server/serverHelpers/deployValidationState.js");
377
+ // The candidate loads under the REAL component's name, so a candidate that throws would mark the live
378
+ // component ERROR. Its status writes are diverted into the guard's throwaway sink instead — see
379
+ // `deployValidationState.ts` for why this is context-scoped rather than captured and reverted here.
380
+ const componentName = path.basename(candidateDirPath);
381
+ // Extension modules the candidate load pulls in are registered in the loader's module registry keyed by
382
+ // module, so forgetting only the candidate's realpath leaves those behind — one set per deploy. Their
383
+ // identities are collected by the load itself; diffing the global registry instead would delete a live
384
+ // module registered by an interleaving real load, since validations serialize only with each other.
385
+ const validationModules = new Set();
386
+ const validation = runWithDeployValidationGuard(async () => {
387
+ try {
388
+ await componentLoader.loadComponent(candidateDirPath, pseudoResources, undefined, {
389
+ collectScopes: validationScopes,
390
+ collectLoadedModules: validationModules,
391
+ });
392
+ }
393
+ finally {
394
+ const closeResults = await Promise.allSettled(Array.from(validationScopes, (scope) => scope.close()));
395
+ const failedCloses = closeResults.filter((result) => result.status === 'rejected');
396
+ for (const result of failedCloses) {
397
+ log.warn('Failed to close a deploy-validation Scope', result.reason);
398
+ }
399
+ // A rejected close is a REJECTED VALIDATION, not a warning. `Scope.close()` stops at the
400
+ // throwing listener, so its remaining internal listener removal and subscription-hold release
401
+ // never run and the throwaway scope stays partially live — one leak per deploy, on the worker
402
+ // that serves the component.
403
+ if (failedCloses.length) {
404
+ throw new AggregateError(failedCloses.map((result) => result.reason), `Could not tear down deploy validation for ${componentName}: ${failedCloses.length} scope(s) failed to close`);
405
+ }
406
+ }
407
+ });
408
+ // Track the load+close so a concurrent worker shutdown waits for these scopes to finish
409
+ // disposing — a plugin may start a native runtime in handleApplication — before realExit.
410
+ trackScopeClose(validation);
411
+ try {
412
+ await validation;
413
+ }
414
+ finally {
415
+ componentLoader.setErrorReporter(priorErrorReporter);
416
+ // The candidate path is unique per deploy, so leaving it in the loader's realpath registry leaks
417
+ // one dead entry per deploy for the life of the process.
418
+ componentLoader.forgetLoadedPath?.(candidateDirPath);
419
+ componentLoader.forgetLoadedModules?.(validationModules);
420
+ }
421
+ emit('phase', { phase: 'load', status: 'done' });
422
+ if (lastError)
423
+ throw lastError;
424
+ }
425
+ }
426
+ const BRANCH_STORAGE_RETAINED = '. Any branched database storage this application owns was left in place; drop it again with restart: true to discard that data';
427
+ /** Report a restart outcome the operation's own success message cannot convey. */
428
+ function logRestartOutcome(restart, what) {
429
+ const { RESTART_IDLE_TIMEOUT_MS, RESTART_WAIT_CEILING_MS } = require("./awaitRestart.js");
430
+ if (restart.replacementsNotStarted)
431
+ log.warn(`${restart.replacementsNotStarted} replacement worker thread(s) did not report starting after ${what}; the pool is short until they are restarted`);
432
+ if (restart.error)
433
+ log.error(`Restart after ${what} failed`, restart.error);
434
+ else if (restart.workersKeptOnOldCode)
435
+ log.warn(`${restart.workersKeptOnOldCode} worker thread(s) could not be replaced after ${what} and are still running the previous code`);
436
+ else if (restart.declined)
437
+ log.warn(`No restart was performed after ${what}: the process is already shutting down`);
438
+ else if (restart.handedOff)
439
+ log.debug?.(`The restart after ${what} was handed to the main thread, which reports its own completion`);
440
+ else if (restart.stalled)
441
+ log.warn(`The restart after ${what} stopped making progress for ${RESTART_IDLE_TIMEOUT_MS}ms; worker threads may still be running the previous code`);
442
+ else if (!restart.completed)
443
+ log.warn(`The restart after ${what} was still running after ${RESTART_WAIT_CEILING_MS}ms; worker threads may still be running the previous code`);
444
+ }
323
445
  /**
324
446
  * Can deploy a component in multiple ways. If a 'package' is provided all it will do is write that package to
325
447
  * harperdb-config, when HDB is restarted the package will be installed in hdb/nodeModules. If a base64 encoded string is passed it
@@ -368,6 +490,13 @@ async function deployComponent(req) {
368
490
  applicationConfig.urlPath = req.urlPath;
369
491
  if (req.host !== undefined)
370
492
  applicationConfig.host = req.host;
493
+ // Same convention as host/urlPath above, and for the same reason: a package redeploy rebuilds
494
+ // this application's whole root-config entry from request fields, so a deployment-level key that
495
+ // isn't re-supplied here is silently dropped -- for branchedDatabases specifically, that means an
496
+ // application which believed it had a private fork resumes sharing the base after the next
497
+ // restart, with nothing in this operation to say so.
498
+ if (req.branchedDatabases !== undefined)
499
+ applicationConfig.branchedDatabases = req.branchedDatabases;
371
500
  // Persist credential references (never tokens) so every cold install of this component —
372
501
  // reboot, new peer, rollback — re-resolves the credential from the store.
373
502
  if (credentialReferences.length)
@@ -492,52 +621,19 @@ async function deployComponent(req) {
492
621
  req.credentials = credentialReferences;
493
622
  else
494
623
  delete req.credentials;
624
+ // Validated INSIDE preparation, between build and swap, so a component that installs cleanly but
625
+ // throws at load never becomes live.
626
+ //
627
+ // Phase ORDER is unchanged for clients, but `prepare:done` means "candidate built", not "swap
628
+ // committed" — so a later failure arrives after both phases reported success. The operation's error
629
+ // is the authority on whether the deploy landed, not the phase stream.
495
630
  emit('phase', { phase: 'prepare', status: 'start' });
496
- await prepareApplication(application);
497
- emit('phase', { phase: 'prepare', status: 'done' });
498
- // now we attempt to actually load the component in case there is
499
- // an error we can immediately detect and report, but app code should not run on the main thread
500
- if (!isMainThread && !process.env.HARPER_SAFE_MODE) {
501
- const pseudoResources = new Resources();
502
- pseudoResources.isWorker = true;
503
- const componentLoader = require("./componentLoader.js").default || require("./componentLoader.js");
504
- const { trackScopeClose } = require("./scopeShutdown.js");
505
- let lastError;
506
- componentLoader.setErrorReporter((error) => (lastError = error));
507
- emit('phase', { phase: 'load', status: 'start' });
508
- // This load exists only to surface load-time errors early; the Scopes it creates are
509
- // throwaway. They are collected (instead of registered for worker-shutdown auto-close) so we
510
- // can close them here once validation completes — otherwise each deploy leaks the Scope's
511
- // deploy-lifecycle listeners on this worker, eventually tripping MaxListenersExceededWarning
512
- // (#1462).
513
- const validationScopes = new Set();
514
- // Process-wide `server.*` registrations (registerOperation, setMcpQuotaHandler) are not owned by
515
- // a Scope, so a candidate's top-level registration during this throwaway load would otherwise
516
- // outlive it and pollute the live worker on a failed/rolled-back deploy. The guard makes those
517
- // registration methods no-op for the duration of the load.
518
- const { runWithDeployValidationGuard } = require("../server/serverHelpers/deployValidationState.js");
519
- const validation = runWithDeployValidationGuard(async () => {
520
- try {
521
- await componentLoader.loadComponent(application.dirPath, pseudoResources, undefined, {
522
- collectScopes: validationScopes,
523
- });
524
- }
525
- finally {
526
- const closeResults = await Promise.allSettled(Array.from(validationScopes, (scope) => scope.close()));
527
- for (const result of closeResults) {
528
- if (result.status === 'rejected')
529
- log.warn('Failed to close a deploy-validation Scope', result.reason);
530
- }
531
- }
532
- });
533
- // Track the load+close so a concurrent worker shutdown waits for these scopes to finish
534
- // disposing — a plugin may start a native runtime in handleApplication — before realExit.
535
- trackScopeClose(validation);
536
- await validation;
537
- emit('phase', { phase: 'load', status: 'done' });
538
- if (lastError)
539
- throw lastError;
540
- }
631
+ await prepareApplication(application, {
632
+ validateCandidate: async (candidateDirPath) => {
633
+ emit('phase', { phase: 'prepare', status: 'done' });
634
+ await validateComponentLoads(candidateDirPath, emit);
635
+ },
636
+ });
541
637
  const rollingRestart = req.restart === 'rolling';
542
638
  // if doing a rolling restart set restart to false so that other nodes don't also restart.
543
639
  req.restart = rollingRestart ? false : req.restart;
@@ -582,8 +678,14 @@ async function deployComponent(req) {
582
678
  }
583
679
  if (req.restart === true) {
584
680
  emit('phase', { phase: 'restart', status: 'start' });
585
- manageThreads.restartWorkers('http');
681
+ // Workers not yet replaced keep serving the pre-deploy component set, and where the OS lets
682
+ // replacements share a port they keep accepting connections for the whole rolling restart, so
683
+ // a caller that reads success as "the component is live" can be served by a worker that has
684
+ // never heard of it.
685
+ const { awaitRestart } = require("./awaitRestart.js");
686
+ const restart = await awaitRestart((onProgress) => manageThreads.restartWorkers('http', undefined, undefined, onProgress));
586
687
  emit('phase', { phase: 'restart', status: 'done' });
688
+ logRestartOutcome(restart, `deploying ${application.name}`);
587
689
  response.message = `Successfully deployed: ${application.name}, restarting Harper`;
588
690
  }
589
691
  else if (rollingRestart) {
@@ -774,8 +876,12 @@ async function getComponents() {
774
876
  const list = await fs.readdir(dir, { withFileTypes: true });
775
877
  for (let item of list) {
776
878
  const itemName = item.name;
879
+ // Deny-list, not a dot-prefix skip: component CONTENTS legitimately include dot-files
880
+ // (`.aiignore`, `.env.example`) that callers expect to see, so only Harper's own
881
+ // bookkeeping directories are excluded by name.
777
882
  if (itemName === 'node_modules' ||
778
883
  itemName === ASIDE_STAGING_DIR ||
884
+ itemName === DEPLOY_STAGING_DIR ||
779
885
  itemName === COMPONENT_PREPARATION_LOCK_DIR)
780
886
  continue;
781
887
  const itemPath = path.join(dir, itemName);
@@ -1054,31 +1160,79 @@ async function dropComponent(req) {
1054
1160
  }
1055
1161
  const { project, file } = req;
1056
1162
  const projectPath = req.file ? path.join(project, file) : project;
1057
- const pathToComponent = path.join(configUtils.getConfigPath(hdbTerms.CONFIG_PARAMS.COMPONENTSROOT), projectPath);
1058
- const componentSymlink = path.join(env.get(hdbTerms.CONFIG_PARAMS.ROOTPATH), 'node_modules', project);
1059
- if (await fs.pathExists(componentSymlink)) {
1060
- await fs.unlink(componentSymlink);
1061
- }
1062
- if (await fs.pathExists(pathToComponent)) {
1063
- await fs.remove(pathToComponent);
1064
- }
1065
- // Remove the component from the package.json file
1066
- const packageJsonPath = path.join(env.get(hdbTerms.CONFIG_PARAMS.ROOTPATH), 'package.json');
1067
- if (await fs.pathExists(packageJsonPath)) {
1068
- const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'));
1069
- if (packageJson?.dependencies?.[project]) {
1070
- delete packageJson.dependencies[project];
1163
+ const componentsRoot = configUtils.getConfigPath(hdbTerms.CONFIG_PARAMS.COMPONENTSROOT);
1164
+ const componentPath = path.join(componentsRoot, project);
1165
+ const pathToComponent = path.join(componentsRoot, projectPath);
1166
+ let response;
1167
+ await withComponentPreparationLock(componentPath, async () => {
1168
+ const componentSymlink = path.join(env.get(hdbTerms.CONFIG_PARAMS.ROOTPATH), 'node_modules', project);
1169
+ if (await fs.pathExists(componentSymlink)) {
1170
+ await fs.unlink(componentSymlink);
1071
1171
  }
1072
- await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8');
1073
- }
1074
- configUtils.deleteConfigFromFile([project]);
1075
- let response = await server.replication.replicateOperation(req);
1076
- if (req.restart === true) {
1077
- manageThreads.restartWorkers('http');
1172
+ if (!file) {
1173
+ await dropComponentDirectory(componentPath, project, log);
1174
+ }
1175
+ else if (await fs.pathExists(pathToComponent)) {
1176
+ await fs.remove(pathToComponent);
1177
+ }
1178
+ const packageJsonPath = path.join(env.get(hdbTerms.CONFIG_PARAMS.ROOTPATH), 'package.json');
1179
+ if (await fs.pathExists(packageJsonPath)) {
1180
+ const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'));
1181
+ if (packageJson?.dependencies?.[project]) {
1182
+ delete packageJson.dependencies[project];
1183
+ }
1184
+ await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8');
1185
+ }
1186
+ configUtils.deleteConfigFromFile([project]);
1187
+ // The main thread's cached config still names the project; the restart below installs every
1188
+ // package application in that cache, and installing this one would take the lock held here.
1189
+ // (A worker's RESTART message refreshes main's config the same way.)
1190
+ if (isMainThread)
1191
+ env.initSync(true);
1192
+ response = await server.replication.replicateOperation(req);
1193
+ const { applicationHasBranchStorage, removeBranchesForApplication } = require("../resources/branchDatabase.js");
1194
+ const branched = !file && applicationHasBranchStorage(project);
1195
+ if (req.restart !== true) {
1196
+ response.message = `Successfully dropped: ${projectPath}`;
1197
+ if (branched)
1198
+ response.message += BRANCH_STORAGE_RETAINED;
1199
+ return;
1200
+ }
1201
+ // The branches go after the restart, under this lock; a worker is one of the threads being
1202
+ // replaced, so it hands both to the main thread.
1078
1203
  response.message = `Successfully dropped: ${projectPath}, restarting Harper`;
1079
- }
1080
- else
1081
- response.message = `Successfully dropped: ${projectPath}`;
1204
+ if (!isMainThread) {
1205
+ parentPort.postMessage({
1206
+ type: hdbTerms.ITC_EVENT_TYPES.RESTART,
1207
+ workerType: 'http',
1208
+ removeBranchesFor: file ? undefined : project,
1209
+ });
1210
+ if (branched) {
1211
+ response.message +=
1212
+ '; the main thread removes its branched database storage after the restart and logs the outcome';
1213
+ }
1214
+ return;
1215
+ }
1216
+ const { awaitRestart } = require("./awaitRestart.js");
1217
+ const restart = await awaitRestart((onProgress) => manageThreads.restartWorkers('http', undefined, undefined, onProgress));
1218
+ logRestartOutcome(restart, `dropping ${projectPath}`);
1219
+ if (!branched)
1220
+ return;
1221
+ if (restart.completed && !restart.workersKeptOnOldCode) {
1222
+ try {
1223
+ await removeBranchesForApplication(project);
1224
+ }
1225
+ catch (error) {
1226
+ log.error(`Branched database storage of ${project} could not be removed`, error);
1227
+ throw new Error(`Successfully dropped: ${projectPath}, but its branched database storage could not be removed and ` +
1228
+ `was left in place: ${error.message}. Drop it again with restart: true to retry.`);
1229
+ }
1230
+ }
1231
+ else {
1232
+ log.warn(`Branched database storage of ${project} was left in place: the restart did not complete`);
1233
+ response.message += BRANCH_STORAGE_RETAINED;
1234
+ }
1235
+ }, componentDropLockOptions(project));
1082
1236
  return response;
1083
1237
  }
1084
1238
  exports.customFunctionsStatus = customFunctionsStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../components/operations.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../components/operations.js"],"names":[],"mappings":"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"}