harper 5.1.20 → 5.2.0-alpha.5

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 (395) hide show
  1. package/agent/operations.ts +13 -16
  2. package/components/Application.ts +188 -7
  3. package/components/ApplicationScope.ts +3 -0
  4. package/components/Scope.ts +12 -0
  5. package/components/anthropic/index.ts +9 -2
  6. package/components/bedrock/index.ts +25 -2
  7. package/components/componentLoader.ts +56 -7
  8. package/components/componentSecrets.ts +451 -0
  9. package/components/deploymentRecorder.ts +7 -1
  10. package/components/mcp/adapters/fastify.ts +3 -0
  11. package/components/mcp/adapters/harperHttp.ts +3 -0
  12. package/components/mcp/audit.ts +21 -6
  13. package/components/mcp/customResourceRegistry.ts +17 -38
  14. package/components/mcp/listChanged.ts +37 -20
  15. package/components/mcp/quota.ts +145 -0
  16. package/components/mcp/rateLimit.ts +152 -14
  17. package/components/mcp/resources.ts +2 -4
  18. package/components/mcp/toolRegistry.ts +73 -4
  19. package/components/mcp/tools/application.ts +77 -8
  20. package/components/mcp/tools/operations.ts +106 -36
  21. package/components/mcp/tools/schemas/operationDescriptions.ts +4 -4
  22. package/components/mcp/tools/schemas/operations.ts +5 -0
  23. package/components/mcp/transport.ts +55 -4
  24. package/components/ollama/index.ts +6 -2
  25. package/components/openai/index.ts +9 -2
  26. package/components/operations.js +204 -10
  27. package/components/operationsValidation.js +173 -0
  28. package/components/secretOperations.ts +498 -0
  29. package/config/configUtils.ts +25 -1
  30. package/config-app.schema.json +81 -0
  31. package/config-root.schema.json +8 -1
  32. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
  33. package/dataLayer/readAuditLog.ts +14 -0
  34. package/dataLayer/schemaDescribe.ts +1 -0
  35. package/dist/agent/operations.d.ts +7 -4
  36. package/dist/agent/operations.js +13 -15
  37. package/dist/agent/operations.js.map +1 -1
  38. package/dist/components/Application.d.ts +25 -2
  39. package/dist/components/Application.js +166 -7
  40. package/dist/components/Application.js.map +1 -1
  41. package/dist/components/ApplicationScope.d.ts +2 -0
  42. package/dist/components/ApplicationScope.js +3 -0
  43. package/dist/components/ApplicationScope.js.map +1 -1
  44. package/dist/components/Scope.d.ts +8 -0
  45. package/dist/components/Scope.js +11 -0
  46. package/dist/components/Scope.js.map +1 -1
  47. package/dist/components/anthropic/index.d.ts +4 -1
  48. package/dist/components/anthropic/index.js +4 -2
  49. package/dist/components/anthropic/index.js.map +1 -1
  50. package/dist/components/bedrock/index.d.ts +4 -1
  51. package/dist/components/bedrock/index.js +22 -2
  52. package/dist/components/bedrock/index.js.map +1 -1
  53. package/dist/components/componentLoader.d.ts +2 -0
  54. package/dist/components/componentLoader.js +52 -10
  55. package/dist/components/componentLoader.js.map +1 -1
  56. package/dist/components/componentSecrets.d.ts +63 -0
  57. package/dist/components/componentSecrets.js +405 -0
  58. package/dist/components/componentSecrets.js.map +1 -0
  59. package/dist/components/deploymentRecorder.d.ts +3 -0
  60. package/dist/components/deploymentRecorder.js +4 -3
  61. package/dist/components/deploymentRecorder.js.map +1 -1
  62. package/dist/components/mcp/adapters/fastify.d.ts +2 -0
  63. package/dist/components/mcp/adapters/fastify.js +1 -0
  64. package/dist/components/mcp/adapters/fastify.js.map +1 -1
  65. package/dist/components/mcp/adapters/harperHttp.d.ts +2 -0
  66. package/dist/components/mcp/adapters/harperHttp.js +1 -0
  67. package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
  68. package/dist/components/mcp/audit.d.ts +2 -2
  69. package/dist/components/mcp/audit.js +20 -5
  70. package/dist/components/mcp/audit.js.map +1 -1
  71. package/dist/components/mcp/customResourceRegistry.d.ts +5 -12
  72. package/dist/components/mcp/customResourceRegistry.js +15 -30
  73. package/dist/components/mcp/customResourceRegistry.js.map +1 -1
  74. package/dist/components/mcp/listChanged.d.ts +7 -2
  75. package/dist/components/mcp/listChanged.js +28 -0
  76. package/dist/components/mcp/listChanged.js.map +1 -1
  77. package/dist/components/mcp/quota.d.ts +31 -0
  78. package/dist/components/mcp/quota.js +155 -0
  79. package/dist/components/mcp/quota.js.map +1 -0
  80. package/dist/components/mcp/rateLimit.d.ts +19 -3
  81. package/dist/components/mcp/rateLimit.js +129 -13
  82. package/dist/components/mcp/rateLimit.js.map +1 -1
  83. package/dist/components/mcp/resources.js.map +1 -1
  84. package/dist/components/mcp/toolRegistry.d.ts +39 -1
  85. package/dist/components/mcp/toolRegistry.js +60 -5
  86. package/dist/components/mcp/toolRegistry.js.map +1 -1
  87. package/dist/components/mcp/tools/application.d.ts +8 -1
  88. package/dist/components/mcp/tools/application.js +65 -5
  89. package/dist/components/mcp/tools/application.js.map +1 -1
  90. package/dist/components/mcp/tools/operations.d.ts +15 -3
  91. package/dist/components/mcp/tools/operations.js +99 -38
  92. package/dist/components/mcp/tools/operations.js.map +1 -1
  93. package/dist/components/mcp/tools/schemas/operationDescriptions.js +4 -4
  94. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  95. package/dist/components/mcp/tools/schemas/operations.js +4 -0
  96. package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
  97. package/dist/components/mcp/transport.d.ts +6 -0
  98. package/dist/components/mcp/transport.js +47 -3
  99. package/dist/components/mcp/transport.js.map +1 -1
  100. package/dist/components/ollama/index.d.ts +4 -1
  101. package/dist/components/ollama/index.js +4 -2
  102. package/dist/components/ollama/index.js.map +1 -1
  103. package/dist/components/openai/index.d.ts +4 -1
  104. package/dist/components/openai/index.js +4 -2
  105. package/dist/components/openai/index.js.map +1 -1
  106. package/dist/components/operations.d.ts +39 -0
  107. package/dist/components/operations.js +194 -2
  108. package/dist/components/operations.js.map +1 -1
  109. package/dist/components/operationsValidation.d.ts +38 -0
  110. package/dist/components/operationsValidation.js +155 -0
  111. package/dist/components/operationsValidation.js.map +1 -1
  112. package/dist/components/secretOperations.d.ts +113 -0
  113. package/dist/components/secretOperations.js +475 -0
  114. package/dist/components/secretOperations.js.map +1 -0
  115. package/dist/config/configUtils.d.ts +4 -1
  116. package/dist/config/configUtils.js +18 -1
  117. package/dist/config/configUtils.js.map +1 -1
  118. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
  119. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
  120. package/dist/dataLayer/readAuditLog.js +11 -0
  121. package/dist/dataLayer/readAuditLog.js.map +1 -1
  122. package/dist/dataLayer/schemaDescribe.js +2 -0
  123. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  124. package/dist/globals.d.ts +1 -1
  125. package/dist/globals.js +1 -0
  126. package/dist/globals.js.map +1 -1
  127. package/dist/index.d.ts +3 -0
  128. package/dist/index.js +1 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/json/systemSchema.json +38 -0
  131. package/dist/resources/DatabaseTransaction.d.ts +31 -3
  132. package/dist/resources/DatabaseTransaction.js +190 -29
  133. package/dist/resources/DatabaseTransaction.js.map +1 -1
  134. package/dist/resources/LMDBTransaction.d.ts +1 -1
  135. package/dist/resources/LMDBTransaction.js +43 -5
  136. package/dist/resources/LMDBTransaction.js.map +1 -1
  137. package/dist/resources/PrimaryRocksDatabase.d.ts +51 -0
  138. package/dist/resources/PrimaryRocksDatabase.js +194 -0
  139. package/dist/resources/PrimaryRocksDatabase.js.map +1 -0
  140. package/dist/resources/RecordEncoder.d.ts +1 -0
  141. package/dist/resources/RecordEncoder.js +81 -75
  142. package/dist/resources/RecordEncoder.js.map +1 -1
  143. package/dist/resources/RequestTarget.d.ts +19 -0
  144. package/dist/resources/RequestTarget.js.map +1 -1
  145. package/dist/resources/Resource.d.ts +0 -1
  146. package/dist/resources/Resource.js +103 -16
  147. package/dist/resources/Resource.js.map +1 -1
  148. package/dist/resources/ResourceInterface.d.ts +6 -2
  149. package/dist/resources/ResourceInterface.js.map +1 -1
  150. package/dist/resources/Resources.js.map +1 -1
  151. package/dist/resources/Table.d.ts +6 -4
  152. package/dist/resources/Table.js +247 -24
  153. package/dist/resources/Table.js.map +1 -1
  154. package/dist/resources/analytics/read.js +25 -28
  155. package/dist/resources/analytics/read.js.map +1 -1
  156. package/dist/resources/blob.js +165 -22
  157. package/dist/resources/blob.js.map +1 -1
  158. package/dist/resources/crdt.d.ts +2 -0
  159. package/dist/resources/crdt.js +45 -36
  160. package/dist/resources/crdt.js.map +1 -1
  161. package/dist/resources/databases.d.ts +1 -0
  162. package/dist/resources/databases.js +134 -7
  163. package/dist/resources/databases.js.map +1 -1
  164. package/dist/resources/graphql.js +8 -0
  165. package/dist/resources/graphql.js.map +1 -1
  166. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +35 -5
  167. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +239 -14
  168. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  169. package/dist/resources/jsResource.js +6 -0
  170. package/dist/resources/jsResource.js.map +1 -1
  171. package/dist/resources/loadEnv.js +30 -3
  172. package/dist/resources/loadEnv.js.map +1 -1
  173. package/dist/resources/login.js +2 -2
  174. package/dist/resources/login.js.map +1 -1
  175. package/dist/resources/models/Models.js +14 -3
  176. package/dist/resources/models/Models.js.map +1 -1
  177. package/dist/resources/models/embedHook.js +10 -2
  178. package/dist/resources/models/embedHook.js.map +1 -1
  179. package/dist/resources/models/openaiStream.d.ts +56 -0
  180. package/dist/resources/models/openaiStream.js +94 -0
  181. package/dist/resources/models/openaiStream.js.map +1 -0
  182. package/dist/resources/replayLogs.js +4 -3
  183. package/dist/resources/replayLogs.js.map +1 -1
  184. package/dist/resources/search.d.ts +1 -1
  185. package/dist/resources/search.js +104 -11
  186. package/dist/resources/search.js.map +1 -1
  187. package/dist/resources/secretDecryptor.d.ts +54 -0
  188. package/dist/resources/secretDecryptor.js +131 -0
  189. package/dist/resources/secretDecryptor.js.map +1 -0
  190. package/dist/resources/tracked.js +15 -5
  191. package/dist/resources/tracked.js.map +1 -1
  192. package/dist/security/auth.js +71 -8
  193. package/dist/security/auth.js.map +1 -1
  194. package/dist/security/jsLoader.js +11 -0
  195. package/dist/security/jsLoader.js.map +1 -1
  196. package/dist/security/tokenAuthentication.d.ts +9 -1
  197. package/dist/security/tokenAuthentication.js +31 -1
  198. package/dist/security/tokenAuthentication.js.map +1 -1
  199. package/dist/server/DurableSubscriptionsSession.d.ts +1 -1
  200. package/dist/server/DurableSubscriptionsSession.js +8 -4
  201. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  202. package/dist/server/REST.js +28 -9
  203. package/dist/server/REST.js.map +1 -1
  204. package/dist/server/fastifyRoutes.js +11 -1
  205. package/dist/server/fastifyRoutes.js.map +1 -1
  206. package/dist/server/graphqlQuerying.js +4 -3
  207. package/dist/server/graphqlQuerying.js.map +1 -1
  208. package/dist/server/http.d.ts +40 -2
  209. package/dist/server/http.js +560 -77
  210. package/dist/server/http.js.map +1 -1
  211. package/dist/server/itc/serverHandlers.js +64 -0
  212. package/dist/server/itc/serverHandlers.js.map +1 -1
  213. package/dist/server/liveSubscriptionAuth.d.ts +12 -0
  214. package/dist/server/liveSubscriptionAuth.js +140 -0
  215. package/dist/server/liveSubscriptionAuth.js.map +1 -0
  216. package/dist/server/loadRootComponents.js +2 -1
  217. package/dist/server/loadRootComponents.js.map +1 -1
  218. package/dist/server/middlewareChain.d.ts +44 -1
  219. package/dist/server/middlewareChain.js +86 -10
  220. package/dist/server/middlewareChain.js.map +1 -1
  221. package/dist/server/mqtt.js +2 -1
  222. package/dist/server/mqtt.js.map +1 -1
  223. package/dist/server/operationsServer.js +1 -1
  224. package/dist/server/operationsServer.js.map +1 -1
  225. package/dist/server/serverHelpers/Headers.d.ts +9 -0
  226. package/dist/server/serverHelpers/Headers.js +22 -0
  227. package/dist/server/serverHelpers/Headers.js.map +1 -1
  228. package/dist/server/serverHelpers/JSONStream.js +3 -3
  229. package/dist/server/serverHelpers/JSONStream.js.map +1 -1
  230. package/dist/server/serverHelpers/Request.d.ts +52 -1
  231. package/dist/server/serverHelpers/Request.js +122 -1
  232. package/dist/server/serverHelpers/Request.js.map +1 -1
  233. package/dist/server/serverHelpers/contentTypes.js +3 -8
  234. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  235. package/dist/server/serverHelpers/progressEmitter.d.ts +19 -0
  236. package/dist/server/serverHelpers/progressEmitter.js +52 -4
  237. package/dist/server/serverHelpers/progressEmitter.js.map +1 -1
  238. package/dist/server/serverHelpers/registeredOperations.d.ts +40 -0
  239. package/dist/server/serverHelpers/registeredOperations.js +286 -0
  240. package/dist/server/serverHelpers/registeredOperations.js.map +1 -0
  241. package/dist/server/serverHelpers/serverHandlers.js +11 -5
  242. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  243. package/dist/server/serverHelpers/serverUtilities.d.ts +1 -0
  244. package/dist/server/serverHelpers/serverUtilities.js +67 -5
  245. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  246. package/dist/server/serverHelpers/uwsServer.d.ts +80 -0
  247. package/dist/server/serverHelpers/uwsServer.js +433 -0
  248. package/dist/server/serverHelpers/uwsServer.js.map +1 -0
  249. package/dist/server/static.d.ts +0 -15
  250. package/dist/server/static.js +161 -2
  251. package/dist/server/static.js.map +1 -1
  252. package/dist/server/status/index.d.ts +4 -1
  253. package/dist/server/status/index.js +64 -4
  254. package/dist/server/status/index.js.map +1 -1
  255. package/dist/server/threads/manageThreads.d.ts +10 -0
  256. package/dist/server/threads/manageThreads.js +107 -4
  257. package/dist/server/threads/manageThreads.js.map +1 -1
  258. package/dist/server/threads/socketRouter.js +5 -1
  259. package/dist/server/threads/socketRouter.js.map +1 -1
  260. package/dist/server/threads/threadServer.js +92 -14
  261. package/dist/server/threads/threadServer.js.map +1 -1
  262. package/dist/upgrade/directives/5-2-0.d.ts +7 -0
  263. package/dist/upgrade/directives/5-2-0.js +108 -0
  264. package/dist/upgrade/directives/5-2-0.js.map +1 -0
  265. package/dist/upgrade/directives/directivesController.js +2 -1
  266. package/dist/upgrade/directives/directivesController.js.map +1 -1
  267. package/dist/utility/common_utils.js +5 -0
  268. package/dist/utility/common_utils.js.map +1 -1
  269. package/dist/utility/envFile.d.ts +41 -0
  270. package/dist/utility/envFile.js +221 -0
  271. package/dist/utility/envFile.js.map +1 -0
  272. package/dist/utility/globalSchema.d.ts +9 -0
  273. package/dist/utility/hdbTerms.d.ts +25 -0
  274. package/dist/utility/hdbTerms.js +31 -0
  275. package/dist/utility/hdbTerms.js.map +1 -1
  276. package/dist/utility/logging/harper_logger.d.ts +21 -0
  277. package/dist/utility/logging/harper_logger.js +160 -8
  278. package/dist/utility/logging/harper_logger.js.map +1 -1
  279. package/dist/utility/logging/logRotator.js +29 -17
  280. package/dist/utility/logging/logRotator.js.map +1 -1
  281. package/dist/utility/logging/readLog.d.ts +1 -1
  282. package/dist/utility/logging/readLog.js +305 -2
  283. package/dist/utility/logging/readLog.js.map +1 -1
  284. package/dist/utility/operationPermissions.d.ts +18 -0
  285. package/dist/utility/operationPermissions.js +35 -1
  286. package/dist/utility/operationPermissions.js.map +1 -1
  287. package/dist/utility/operation_authorization.d.ts +17 -0
  288. package/dist/utility/operation_authorization.js +38 -0
  289. package/dist/utility/operation_authorization.js.map +1 -1
  290. package/dist/utility/secretEnvelope.d.ts +30 -0
  291. package/dist/utility/secretEnvelope.js +94 -0
  292. package/dist/utility/secretEnvelope.js.map +1 -0
  293. package/dist/utility/signalling.d.ts +7 -0
  294. package/dist/utility/signalling.js +16 -0
  295. package/dist/utility/signalling.js.map +1 -1
  296. package/dist/validation/configValidator.js +70 -24
  297. package/dist/validation/configValidator.js.map +1 -1
  298. package/index.ts +4 -0
  299. package/json/systemSchema.json +38 -0
  300. package/npm-shrinkwrap.json +15066 -9347
  301. package/package.json +13 -8
  302. package/resources/DESIGN.md +15 -12
  303. package/resources/DatabaseTransaction.ts +206 -37
  304. package/resources/LMDBTransaction.ts +43 -9
  305. package/resources/PrimaryRocksDatabase.ts +201 -0
  306. package/resources/RecordEncoder.ts +81 -69
  307. package/resources/RequestTarget.ts +21 -0
  308. package/resources/Resource.ts +109 -25
  309. package/resources/ResourceInterface.ts +6 -2
  310. package/resources/Resources.ts +1 -3
  311. package/resources/Table.ts +238 -29
  312. package/resources/analytics/read.ts +25 -30
  313. package/resources/blob.ts +159 -23
  314. package/resources/crdt.ts +37 -31
  315. package/resources/databases.ts +143 -6
  316. package/resources/graphql.ts +8 -0
  317. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +251 -17
  318. package/resources/jsResource.ts +6 -0
  319. package/resources/loadEnv.ts +34 -3
  320. package/resources/login.ts +2 -2
  321. package/resources/models/Models.ts +19 -3
  322. package/resources/models/embedHook.ts +13 -2
  323. package/resources/models/openaiStream.ts +133 -0
  324. package/resources/replayLogs.ts +4 -3
  325. package/resources/search.ts +113 -11
  326. package/resources/secretDecryptor.ts +159 -0
  327. package/resources/tracked.ts +24 -17
  328. package/security/auth.ts +70 -10
  329. package/security/jsLoader.ts +12 -0
  330. package/security/tokenAuthentication.ts +42 -1
  331. package/server/DESIGN.md +10 -0
  332. package/server/DurableSubscriptionsSession.ts +8 -4
  333. package/server/REST.ts +26 -9
  334. package/server/fastifyRoutes.ts +10 -1
  335. package/server/graphqlQuerying.ts +4 -3
  336. package/server/http.ts +563 -77
  337. package/server/itc/serverHandlers.js +70 -0
  338. package/server/liveSubscriptionAuth.ts +152 -0
  339. package/server/loadRootComponents.js +2 -1
  340. package/server/middlewareChain.ts +107 -17
  341. package/server/mqtt.ts +2 -1
  342. package/server/operationsServer.ts +2 -2
  343. package/server/serverHelpers/Headers.ts +24 -0
  344. package/server/serverHelpers/JSONStream.ts +3 -3
  345. package/server/serverHelpers/Request.ts +127 -0
  346. package/server/serverHelpers/contentTypes.ts +3 -8
  347. package/server/serverHelpers/progressEmitter.ts +55 -5
  348. package/server/serverHelpers/registeredOperations.ts +259 -0
  349. package/server/serverHelpers/serverHandlers.js +11 -5
  350. package/server/serverHelpers/serverUtilities.ts +88 -5
  351. package/server/serverHelpers/uwsServer.ts +488 -0
  352. package/server/static.ts +180 -2
  353. package/server/status/index.ts +72 -4
  354. package/server/threads/manageThreads.js +102 -4
  355. package/server/threads/socketRouter.ts +5 -1
  356. package/server/threads/threadServer.js +93 -10
  357. package/studio/web/assets/{Chat-SdD1EZca.js → Chat-Cv_2paZE.js} +2 -2
  358. package/studio/web/assets/{Chat-SdD1EZca.js.map → Chat-Cv_2paZE.js.map} +1 -1
  359. package/studio/web/assets/{FloatingChat-GMq6tHK9.js → FloatingChat-CPyPIcVR.js} +4 -4
  360. package/studio/web/assets/{FloatingChat-GMq6tHK9.js.map → FloatingChat-CPyPIcVR.js.map} +1 -1
  361. package/studio/web/assets/{applications-B5hhv7uA.js → applications-C0jT2vdZ.js} +2 -2
  362. package/studio/web/assets/{applications-B5hhv7uA.js.map → applications-C0jT2vdZ.js.map} +1 -1
  363. package/studio/web/assets/{index-VFcpNWgq.js → index-D_GKOkhn.js} +6 -6
  364. package/studio/web/assets/index-D_GKOkhn.js.map +1 -0
  365. package/studio/web/assets/{index.lazy-DgcJojIA.js → index.lazy-CAmCIA65.js} +4 -4
  366. package/studio/web/assets/{index.lazy-DgcJojIA.js.map → index.lazy-CAmCIA65.js.map} +1 -1
  367. package/studio/web/assets/{profile-BqN-8vzm.js → profile-CaF-4aZe.js} +2 -2
  368. package/studio/web/assets/{profile-BqN-8vzm.js.map → profile-CaF-4aZe.js.map} +1 -1
  369. package/studio/web/assets/{setComponentFile-CHFvFq9u.js → setComponentFile-DLW1DHCt.js} +2 -2
  370. package/studio/web/assets/{setComponentFile-CHFvFq9u.js.map → setComponentFile-DLW1DHCt.js.map} +1 -1
  371. package/studio/web/assets/{setup-CQ3vWJSr.js → setup-TGCErIhq.js} +2 -2
  372. package/studio/web/assets/{setup-CQ3vWJSr.js.map → setup-TGCErIhq.js.map} +1 -1
  373. package/studio/web/assets/{status-BsW5fjuh.js → status-DG0Maoao.js} +2 -2
  374. package/studio/web/assets/{status-BsW5fjuh.js.map → status-DG0Maoao.js.map} +1 -1
  375. package/studio/web/assets/{swagger-ui-react-DITdeB9-.js → swagger-ui-react-8T4SgQ1m.js} +2 -2
  376. package/studio/web/assets/{swagger-ui-react-DITdeB9-.js.map → swagger-ui-react-8T4SgQ1m.js.map} +1 -1
  377. package/studio/web/assets/{tsMode-Dyph-OUs.js → tsMode-DJ6Sl24Q.js} +2 -2
  378. package/studio/web/assets/{tsMode-Dyph-OUs.js.map → tsMode-DJ6Sl24Q.js.map} +1 -1
  379. package/studio/web/assets/{useEntityRestURL-D0QTUqex.js → useEntityRestURL-JO2mfWTQ.js} +2 -2
  380. package/studio/web/assets/{useEntityRestURL-D0QTUqex.js.map → useEntityRestURL-JO2mfWTQ.js.map} +1 -1
  381. package/studio/web/index.html +1 -1
  382. package/upgrade/directives/5-2-0.ts +82 -0
  383. package/upgrade/directives/directivesController.ts +2 -1
  384. package/utility/common_utils.ts +5 -0
  385. package/utility/envFile.ts +218 -0
  386. package/utility/hdbTerms.ts +31 -0
  387. package/utility/logging/harper_logger.ts +156 -8
  388. package/utility/logging/logRotator.ts +24 -14
  389. package/utility/logging/readLog.ts +323 -2
  390. package/utility/operationPermissions.ts +35 -1
  391. package/utility/operation_authorization.ts +74 -1
  392. package/utility/secretEnvelope.ts +113 -0
  393. package/utility/signalling.ts +15 -0
  394. package/validation/configValidator.ts +78 -25
  395. package/studio/web/assets/index-VFcpNWgq.js.map +0 -1
@@ -52,8 +52,14 @@ exports.COERCIBLE_OPERATORS = {
52
52
  ne: true,
53
53
  eq: true,
54
54
  };
55
- function executeConditions(conditions, operator, table, txn, request, context, transformToEntries, filtered) {
55
+ function executeConditions(conditions, operator, table, txn, request, context, transformToEntries, filtered, recordAccess) {
56
56
  const firstSearch = conditions[0];
57
+ // Record-level guards (a caller-supplied vectorFilter + RBAC allowReadRecord) apply to every record
58
+ // the query returns, independent of which condition leads (#1241). `recordAccess` is supplied only on
59
+ // the top-level executeConditions call (Table.search) and deliberately NOT threaded into the recursive
60
+ // calls below, so the guards run exactly once — on the final result set — rather than redundantly at
61
+ // each nested group.
62
+ const recordGuards = buildRecordGuards(recordAccess);
57
63
  // both AND and OR start by getting an iterator for the ids for first condition
58
64
  // and then things diverge...
59
65
  if (operator === 'or') {
@@ -66,7 +72,7 @@ function executeConditions(conditions, operator, table, txn, request, context, t
66
72
  results = results.concat(nextResults);
67
73
  }
68
74
  const returnedIds = new Set();
69
- return results.filter((entry) => {
75
+ const deduped = results.filter((entry) => {
70
76
  const id = entry.key ?? entry;
71
77
  if (returnedIds.has(id))
72
78
  // skip duplicate ids
@@ -74,19 +80,41 @@ function executeConditions(conditions, operator, table, txn, request, context, t
74
80
  returnedIds.add(id);
75
81
  return true;
76
82
  });
83
+ // Record guards must hold on the OR union too — loading each surviving record and dropping the
84
+ // ones the guards reject (transformToEntries loads the record to evaluate a filter). Without this
85
+ // a record-level RBAC check would be bypassed by any OR query.
86
+ return recordGuards ? transformToEntries(deduped, recordGuards) : deduped;
77
87
  }
78
88
  else {
79
- // AND
89
+ // AND: use the indexed query for the first condition and filter by all subsequent conditions.
90
+ if (isFilterablePushdown(firstSearch, table)) {
91
+ // The lead is a filterable custom index (HNSW). It doesn't populate the join map (`filtered`)
92
+ // that sibling filters read, so — unlike the general case below — we can build the sibling
93
+ // filters BEFORE executing the lead and push them into the traversal, so filtering happens
94
+ // during the graph walk instead of post-filtering an under-filled candidate set (#1241). They
95
+ // also stay in the post-filter chain as a deterministic, harmless re-check.
96
+ const filters = mapConditionsToFilters(conditions.slice(1), true, firstSearch.estimated_count);
97
+ const recordFilters = recordGuards ? filters.concat(recordGuards) : filters;
98
+ // Execute a COPY carrying the pushed-down predicate, never mutating the caller's condition
99
+ // object (which may be reused across requests with different users / guards).
100
+ const lead = recordFilters.length > 0
101
+ ? { ...firstSearch, recordFilter: composeRecordFilter(recordFilters, table, context) }
102
+ : firstSearch;
103
+ const results = executeCondition(lead);
104
+ return recordFilters.length > 0 ? transformToEntries(results, recordFilters) : results;
105
+ }
106
+ // General path: execute the lead FIRST — a leading join populates `filtered`, which the sibling
107
+ // filters read as they are built — then apply the sibling filters plus any record guards.
80
108
  const results = executeCondition(firstSearch);
81
- // get the intersection of condition searches by using the indexed query for the first condition
82
- // and then filtering by all subsequent conditions.
83
- // now apply filters that require looking up records
84
109
  const filters = mapConditionsToFilters(conditions.slice(1), true, firstSearch.estimated_count);
85
- return filters.length > 0 ? transformToEntries(results, filters) : results;
110
+ const recordFilters = recordGuards ? filters.concat(recordGuards) : filters;
111
+ return recordFilters.length > 0 ? transformToEntries(results, recordFilters) : results;
86
112
  }
87
113
  function executeCondition(condition) {
88
114
  if (condition.conditions)
89
- return executeConditions(condition.conditions, condition.operator, table, txn, request, context, transformToEntries, filtered);
115
+ return executeConditions(condition.conditions, condition.operator, table, txn, request, context, transformToEntries, filtered
116
+ // recordAccess intentionally omitted: guards run once, at the top level (see above).
117
+ );
90
118
  return searchByIndex(condition, txn, condition.descending || request.reverse === true, table, request.allowFullScan, filtered, context);
91
119
  }
92
120
  function mapConditionsToFilters(conditions, intersection, estimatedIncomingCount) {
@@ -111,6 +139,66 @@ function executeConditions(conditions, operator, table, txn, request, context, t
111
139
  .filter(Boolean);
112
140
  }
113
141
  }
142
+ /**
143
+ * Build the record-level guards that apply to a query independent of its conditions (#1241):
144
+ * - `vectorFilter`: a caller-supplied `(record) => boolean` predicate (JS-API only).
145
+ * - `allowReadRecord`: a resource's static record-level RBAC check `(user, record) => boolean`.
146
+ * Both arrive already resolved on `recordAccess` (assembled once in Table.search). Returns an array of
147
+ * `(record) => boolean` predicates, or undefined when neither is defined (the common case — zero
148
+ * overhead). Predicates must be synchronous and side-effect free; records passed in are frozen.
149
+ */
150
+ function buildRecordGuards(recordAccess) {
151
+ if (!recordAccess)
152
+ return undefined;
153
+ const guards = [];
154
+ const vectorFilter = recordAccess.vectorFilter;
155
+ if (typeof vectorFilter === 'function')
156
+ guards.push((record) => vectorFilter(record));
157
+ const allowReadRecord = recordAccess.allowReadRecord;
158
+ if (typeof allowReadRecord === 'function') {
159
+ const user = recordAccess.user;
160
+ guards.push((record) => allowReadRecord(user, record));
161
+ }
162
+ return guards.length > 0 ? guards : undefined;
163
+ }
164
+ /** True when a condition's index is a custom index that participates in predicate-aware traversal (HNSW). */
165
+ function isFilterablePushdown(condition, table) {
166
+ const attributeName = condition?.attribute ?? condition?.[0];
167
+ if (attributeName == null || table == null)
168
+ return false;
169
+ const index = attributeName === table.primaryKey ? table.primaryStore : table.indices?.[attributeName];
170
+ return Boolean(index?.customIndex?.filteredSearch);
171
+ }
172
+ /**
173
+ * Compose a set of record predicates into the single `(primaryKey) => boolean` the custom index calls
174
+ * during traversal (#1241). The record is loaded lazily (only when the index reaches a node) via
175
+ * `primaryStore.getEntry` and frozen before the predicates see it. Verdicts are memoized per query since
176
+ * the graph can reach a node from multiple neighbors. A missing/deleted record fails the predicate.
177
+ */
178
+ function composeRecordFilter(recordFilters, table, context) {
179
+ const memo = new Map();
180
+ const transaction = context && table._readTxnForContext ? table._readTxnForContext(context) : undefined;
181
+ return (primaryKey) => {
182
+ const cached = memo.get(primaryKey);
183
+ if (cached !== undefined)
184
+ return cached;
185
+ let verdict = false;
186
+ const entry = table.primaryStore.getEntry(primaryKey, { transaction });
187
+ const record = entry?.value;
188
+ if (record != null) {
189
+ (0, Table_ts_1.freezeRecord)(record);
190
+ verdict = true;
191
+ for (const filter of recordFilters) {
192
+ if (!filter(record, entry)) {
193
+ verdict = false;
194
+ break;
195
+ }
196
+ }
197
+ }
198
+ memo.set(primaryKey, verdict);
199
+ return verdict;
200
+ };
201
+ }
114
202
  /**
115
203
  * Search for records or keys, based on the search condition, using an index if available
116
204
  * @param searchCondition
@@ -343,7 +431,7 @@ function searchByIndex(searchCondition, transaction, reverse, Table, allowFullSc
343
431
  if (entry.value == null && !(entry.metadataFlags & (Table_ts_1.INVALIDATED | Table_ts_1.EVICTED)))
344
432
  result = extended_iterable_1.SKIP;
345
433
  else {
346
- Object.freeze(entry.value);
434
+ (0, Table_ts_1.freezeRecord)(entry.value);
347
435
  recordRead(entry);
348
436
  result = entry;
349
437
  }
@@ -356,7 +444,12 @@ function searchByIndex(searchCondition, transaction, reverse, Table, allowFullSc
356
444
  }
357
445
  else if (index && !skipIndex) {
358
446
  if (index.customIndex) {
359
- const loaded = index.customIndex.search(searchCondition, context).map((entry) => {
447
+ // Predicate-aware traversal (#1241): a record filter composed from companion AND conditions,
448
+ // a caller-supplied vectorFilter, and record-level RBAC is pushed into the index so it keeps
449
+ // exploring until it has enough MATCHING results, rather than post-filtering an under-filled
450
+ // candidate set. Only indexes that opt in (filteredSearch) receive it; others post-filter as before.
451
+ const recordFilter = index.customIndex.filteredSearch ? searchCondition.recordFilter : undefined;
452
+ const loaded = index.customIndex.search(searchCondition, context, recordFilter).map((entry) => {
360
453
  // if the custom index returns an entry with metadata, merge it with the loaded entry
361
454
  if (typeof entry === 'object' && entry) {
362
455
  const { key, ...otherProps } = entry;
@@ -367,7 +460,7 @@ function searchByIndex(searchCondition, transaction, reverse, Table, allowFullSc
367
460
  });
368
461
  if (!loadedEntry)
369
462
  return extended_iterable_1.SKIP; // record was deleted/expired or not yet visible
370
- Object.freeze(loadedEntry?.value);
463
+ (0, Table_ts_1.freezeRecord)(loadedEntry?.value);
371
464
  recordRead(loadedEntry);
372
465
  return { ...otherProps, ...loadedEntry };
373
466
  }
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../resources/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../resources/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ export type SecretDecryptor = (value: string) => string;
2
+ /** An encrypted `.env` entry that was loaded before any decryptor was registered. */
3
+ export interface DeferredEncryptedEnvValue {
4
+ key: string;
5
+ rawValue: string;
6
+ sourcePath: string;
7
+ override: boolean;
8
+ }
9
+ /**
10
+ * Queue an encrypted `.env` entry that could not be decrypted because no decryptor is registered
11
+ * yet. When one registers, the queue is replayed into `process.env` with the same
12
+ * override/conflict semantics `loadEnv` applied to the original load.
13
+ */
14
+ export declare function deferEncryptedEnvValue(entry: DeferredEncryptedEnvValue): void;
15
+ /**
16
+ * A redacted snapshot of the queued entries awaiting a decryptor, for tests/diagnostics: a copy,
17
+ * without the ciphertext (`rawValue`), so holders can neither mutate pending entries nor retain
18
+ * the queued values past the flush.
19
+ */
20
+ export declare function getDeferredEncryptedEnvValues(): Omit<DeferredEncryptedEnvValue, 'rawValue'>[];
21
+ /**
22
+ * Install the env-secret decryptor (called by the Pro env-secrets component at startup). Any
23
+ * encrypted `.env` entries that loaded before this point are immediately decrypted into
24
+ * `process.env`.
25
+ */
26
+ export declare function registerSecretDecryptor(fn: SecretDecryptor): void;
27
+ /** The registered decryptor, or undefined when no Pro env-secrets component is active. */
28
+ export declare function getSecretDecryptor(): SecretDecryptor | undefined;
29
+ /** Remove the registered decryptor and drop any deferred entries. Intended for tests. */
30
+ export declare function clearSecretDecryptor(): void;
31
+ /** The public half of the cluster secrets keypair, with its stable SHA-256 fingerprint (`kid`). */
32
+ export interface SecretCustodyPublicKey {
33
+ publicKey: string;
34
+ fingerprint: string;
35
+ }
36
+ /**
37
+ * Full key custody: decrypt plus access to the public key, so the node can encrypt on ingest
38
+ * (`set_secret` with a plaintext value) and serve `get_secrets_public_key`. Core ships no custody;
39
+ * the Pro secrets component registers one per process where secrets are used — including the MAIN
40
+ * thread, where the operations API dispatches the secret operations.
41
+ */
42
+ export interface SecretCustody {
43
+ decrypt: SecretDecryptor;
44
+ getPublicKey(): SecretCustodyPublicKey;
45
+ }
46
+ /**
47
+ * Install key custody. Also installs `custody.decrypt` via the decryptor slot above, so consumers
48
+ * like `loadEnv` that only need decryption keep working through the existing hook.
49
+ */
50
+ export declare function registerSecretCustody(newCustody: SecretCustody): void;
51
+ /** The registered custody, or undefined when no secrets key is held by this process. */
52
+ export declare function getSecretCustody(): SecretCustody | undefined;
53
+ /** Remove the registered custody (and the decryptor it installed). Intended for tests. */
54
+ export declare function clearSecretCustody(): void;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.deferEncryptedEnvValue = deferEncryptedEnvValue;
7
+ exports.getDeferredEncryptedEnvValues = getDeferredEncryptedEnvValues;
8
+ exports.registerSecretDecryptor = registerSecretDecryptor;
9
+ exports.getSecretDecryptor = getSecretDecryptor;
10
+ exports.clearSecretDecryptor = clearSecretDecryptor;
11
+ exports.registerSecretCustody = registerSecretCustody;
12
+ exports.getSecretCustody = getSecretCustody;
13
+ exports.clearSecretCustody = clearSecretCustody;
14
+ /**
15
+ * Extension point for decrypting `enc:v1:` secret values at runtime. `.env` loading is the first
16
+ * consumer; the same hook serves any store of `enc:v1:` ciphertext (secret tables, deploy
17
+ * credentials) so key custody stays in one place.
18
+ *
19
+ * Core (Apache) ships NO decryptor: encrypted values stay opaque and are skipped at load time.
20
+ * The Harper Pro secrets component registers a real decryptor here at startup (it holds the
21
+ * cluster's secrets private key), at which point consumers like `loadEnv` transparently decrypt
22
+ * encrypted values. Without Pro the hook is empty and the feature is dormant.
23
+ *
24
+ * The decryptor is synchronous on purpose — `loadEnv` runs synchronously and Node's RSA/AES
25
+ * primitives are synchronous, so this avoids reworking the load path. It receives the full value
26
+ * (including the `enc:v1:` prefix) and returns the plaintext, or throws if it cannot decrypt.
27
+ *
28
+ * Registration is per-process: the Pro component registers in each worker where secrets are
29
+ * consumed, so registration and use share the same module instance.
30
+ *
31
+ * Registration order is NOT load-bearing for `.env` values: entries that load before a decryptor
32
+ * exists are queued (see `deferEncryptedEnvValue`) and replayed into `process.env` the moment one
33
+ * registers, so a custody provider that comes up after component `.env` loading heals the skipped
34
+ * values instead of leaving them missing.
35
+ */
36
+ const harper_logger_ts_1 = __importDefault(require("../utility/logging/harper_logger.js"));
37
+ // Defensive cap: the queue only ever holds encrypted `.env` entries loaded before registration,
38
+ // so growth beyond this indicates a bug or abuse — drop (with an error) rather than grow.
39
+ const MAX_DEFERRED_SECRETS = 1000;
40
+ let deferredSecrets = [];
41
+ let decryptor;
42
+ /**
43
+ * Queue an encrypted `.env` entry that could not be decrypted because no decryptor is registered
44
+ * yet. When one registers, the queue is replayed into `process.env` with the same
45
+ * override/conflict semantics `loadEnv` applied to the original load.
46
+ */
47
+ function deferEncryptedEnvValue(entry) {
48
+ // A re-evaluated env file (reload, watcher re-add) defers the same key again: replace the
49
+ // earlier entry in place so the queue holds one entry per {key, sourcePath} with the newest
50
+ // ciphertext, instead of wasting the cap and replaying stale values.
51
+ const existingIndex = deferredSecrets.findIndex((queued) => queued.key === entry.key && queued.sourcePath === entry.sourcePath);
52
+ if (existingIndex >= 0) {
53
+ deferredSecrets[existingIndex] = entry;
54
+ return;
55
+ }
56
+ if (deferredSecrets.length >= MAX_DEFERRED_SECRETS) {
57
+ harper_logger_ts_1.default.error(`Deferred encrypted env queue is full (${MAX_DEFERRED_SECRETS}); dropping ${entry.key} from ${entry.sourcePath}`);
58
+ return;
59
+ }
60
+ deferredSecrets.push(entry);
61
+ }
62
+ /**
63
+ * A redacted snapshot of the queued entries awaiting a decryptor, for tests/diagnostics: a copy,
64
+ * without the ciphertext (`rawValue`), so holders can neither mutate pending entries nor retain
65
+ * the queued values past the flush.
66
+ */
67
+ function getDeferredEncryptedEnvValues() {
68
+ return deferredSecrets.map(({ key, sourcePath, override }) => ({ key, sourcePath, override }));
69
+ }
70
+ // Replay queued encrypted env entries through a newly registered decryptor, mirroring loadEnv's
71
+ // conflict semantics: a failed decrypt logs and skips that entry; an already-set key is only
72
+ // overwritten when the entry's env file was loaded with `override`.
73
+ function replayDeferredSecrets(newDecryptor) {
74
+ const entries = deferredSecrets;
75
+ deferredSecrets = [];
76
+ for (const { key, rawValue, sourcePath, override } of entries) {
77
+ let value;
78
+ try {
79
+ value = newDecryptor(rawValue);
80
+ }
81
+ catch (error) {
82
+ harper_logger_ts_1.default.error(`Failed to decrypt deferred environment variable ${key} from ${sourcePath}: ${error.message}; skipping`);
83
+ continue;
84
+ }
85
+ if (process.env[key] !== undefined) {
86
+ if (process.env[key] === value)
87
+ continue; // already holds the decrypted value — nothing to report
88
+ harper_logger_ts_1.default.warn(`Environment variable conflict: ${key} from ${sourcePath} is already set on process.env`);
89
+ if (!override)
90
+ continue;
91
+ }
92
+ process.env[key] = value;
93
+ }
94
+ }
95
+ /**
96
+ * Install the env-secret decryptor (called by the Pro env-secrets component at startup). Any
97
+ * encrypted `.env` entries that loaded before this point are immediately decrypted into
98
+ * `process.env`.
99
+ */
100
+ function registerSecretDecryptor(fn) {
101
+ decryptor = fn;
102
+ replayDeferredSecrets(fn);
103
+ }
104
+ /** The registered decryptor, or undefined when no Pro env-secrets component is active. */
105
+ function getSecretDecryptor() {
106
+ return decryptor;
107
+ }
108
+ /** Remove the registered decryptor and drop any deferred entries. Intended for tests. */
109
+ function clearSecretDecryptor() {
110
+ decryptor = undefined;
111
+ deferredSecrets = [];
112
+ }
113
+ let custody;
114
+ /**
115
+ * Install key custody. Also installs `custody.decrypt` via the decryptor slot above, so consumers
116
+ * like `loadEnv` that only need decryption keep working through the existing hook.
117
+ */
118
+ function registerSecretCustody(newCustody) {
119
+ custody = newCustody;
120
+ registerSecretDecryptor(newCustody.decrypt);
121
+ }
122
+ /** The registered custody, or undefined when no secrets key is held by this process. */
123
+ function getSecretCustody() {
124
+ return custody;
125
+ }
126
+ /** Remove the registered custody (and the decryptor it installed). Intended for tests. */
127
+ function clearSecretCustody() {
128
+ custody = undefined;
129
+ decryptor = undefined;
130
+ }
131
+ //# sourceMappingURL=secretDecryptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretDecryptor.js","sourceRoot":"","sources":["../../resources/secretDecryptor.ts"],"names":[],"mappings":"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"}