@harperfast/harper 5.2.13 → 5.3.0-beta.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 (655) hide show
  1. package/agent/mcpTools.ts +1 -1
  2. package/agent/session.ts +25 -14
  3. package/bin/cliOperations.ts +58 -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 +120 -4
  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 +3436 -242
  14. package/components/ApplicationScope.ts +8 -0
  15. package/components/EntryHandler.ts +59 -39
  16. package/components/OptionsWatcher.ts +440 -98
  17. package/components/RuntimeModuleTracker.ts +38 -7
  18. package/components/Scope.ts +56 -15
  19. package/components/awaitRestart.ts +84 -0
  20. package/components/componentLoader.ts +381 -32
  21. package/components/componentPreparationLock.ts +16 -5
  22. package/components/deploymentOperations.ts +4 -1
  23. package/components/deploymentRecorder.ts +9 -2
  24. package/components/mcp/adapters/harperHttp.ts +4 -0
  25. package/components/mcp/listChanged.ts +4 -0
  26. package/components/mcp/toolRegistry.ts +2 -0
  27. package/components/mcp/tools/operations.ts +9 -0
  28. package/components/mcp/tools/schemas/operationDescriptions.ts +2 -2
  29. package/components/operations.js +537 -113
  30. package/components/operationsValidation.js +98 -3
  31. package/components/packageComponent.ts +25 -1
  32. package/components/requestRestart.ts +11 -0
  33. package/components/status/ComponentStatusRegistry.ts +59 -0
  34. package/config/RootConfigWatcher.ts +240 -40
  35. package/config/configReadRetry.ts +62 -0
  36. package/config/configUtils.ts +357 -48
  37. package/config/harperConfigEnvVars.ts +170 -27
  38. package/config/parseConfigFile.ts +34 -0
  39. package/config/readConfigFileSync.ts +44 -0
  40. package/config/watcherArming.ts +59 -0
  41. package/config-root.schema.json +33 -0
  42. package/dataLayer/blobBackup.ts +160 -50
  43. package/dataLayer/delete.ts +6 -1
  44. package/dataLayer/harperBridge/ResourceBridge.ts +80 -10
  45. package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  46. package/dataLayer/hdbInfoController.ts +34 -1
  47. package/dataLayer/insert.ts +44 -1
  48. package/dataLayer/rocksdbBackup.ts +53 -10
  49. package/dataLayer/schema.ts +11 -1
  50. package/dataLayer/schemaDescribe.ts +8 -1
  51. package/dist/agent/mcpTools.js +1 -1
  52. package/dist/agent/mcpTools.js.map +1 -1
  53. package/dist/agent/session.d.ts +22 -0
  54. package/dist/agent/session.js +26 -15
  55. package/dist/agent/session.js.map +1 -1
  56. package/dist/bin/cliOperations.js +61 -9
  57. package/dist/bin/cliOperations.js.map +1 -1
  58. package/dist/bin/copyDb.d.ts +12 -1
  59. package/dist/bin/copyDb.js +248 -60
  60. package/dist/bin/copyDb.js.map +1 -1
  61. package/dist/bin/deploySetup.d.ts +2 -0
  62. package/dist/bin/deploySetup.js +11 -3
  63. package/dist/bin/deploySetup.js.map +1 -1
  64. package/dist/bin/harper.js +1 -1
  65. package/dist/bin/harper.js.map +1 -1
  66. package/dist/bin/help.js +4 -1
  67. package/dist/bin/help.js.map +1 -1
  68. package/dist/bin/lite.js +4 -1
  69. package/dist/bin/lite.js.map +1 -1
  70. package/dist/bin/restart.js +91 -6
  71. package/dist/bin/restart.js.map +1 -1
  72. package/dist/bin/run.js +4 -10
  73. package/dist/bin/run.js.map +1 -1
  74. package/dist/bin/upgrade.js +4 -3
  75. package/dist/bin/upgrade.js.map +1 -1
  76. package/dist/bin/workloadIdentity.d.ts +18 -0
  77. package/dist/bin/workloadIdentity.js +100 -0
  78. package/dist/bin/workloadIdentity.js.map +1 -0
  79. package/dist/components/Application.d.ts +235 -17
  80. package/dist/components/Application.js +3038 -238
  81. package/dist/components/Application.js.map +1 -1
  82. package/dist/components/ApplicationScope.d.ts +8 -0
  83. package/dist/components/ApplicationScope.js +7 -0
  84. package/dist/components/ApplicationScope.js.map +1 -1
  85. package/dist/components/EntryHandler.js +26 -10
  86. package/dist/components/EntryHandler.js.map +1 -1
  87. package/dist/components/OptionsWatcher.d.ts +4 -0
  88. package/dist/components/OptionsWatcher.js +440 -99
  89. package/dist/components/OptionsWatcher.js.map +1 -1
  90. package/dist/components/RuntimeModuleTracker.js +40 -6
  91. package/dist/components/RuntimeModuleTracker.js.map +1 -1
  92. package/dist/components/Scope.js +52 -13
  93. package/dist/components/Scope.js.map +1 -1
  94. package/dist/components/awaitRestart.d.ts +33 -0
  95. package/dist/components/awaitRestart.js +61 -0
  96. package/dist/components/awaitRestart.js.map +1 -0
  97. package/dist/components/componentLoader.d.ts +38 -1
  98. package/dist/components/componentLoader.js +313 -24
  99. package/dist/components/componentLoader.js.map +1 -1
  100. package/dist/components/componentPreparationLock.d.ts +5 -0
  101. package/dist/components/componentPreparationLock.js +14 -6
  102. package/dist/components/componentPreparationLock.js.map +1 -1
  103. package/dist/components/deploymentOperations.js +4 -1
  104. package/dist/components/deploymentOperations.js.map +1 -1
  105. package/dist/components/deploymentRecorder.d.ts +4 -2
  106. package/dist/components/deploymentRecorder.js +1 -0
  107. package/dist/components/deploymentRecorder.js.map +1 -1
  108. package/dist/components/mcp/adapters/harperHttp.js +4 -0
  109. package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
  110. package/dist/components/mcp/listChanged.js +5 -0
  111. package/dist/components/mcp/listChanged.js.map +1 -1
  112. package/dist/components/mcp/toolRegistry.d.ts +1 -0
  113. package/dist/components/mcp/toolRegistry.js.map +1 -1
  114. package/dist/components/mcp/tools/operations.d.ts +5 -0
  115. package/dist/components/mcp/tools/operations.js +9 -0
  116. package/dist/components/mcp/tools/operations.js.map +1 -1
  117. package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -2
  118. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  119. package/dist/components/operations.d.ts +28 -0
  120. package/dist/components/operations.js +476 -113
  121. package/dist/components/operations.js.map +1 -1
  122. package/dist/components/operationsValidation.js +97 -3
  123. package/dist/components/operationsValidation.js.map +1 -1
  124. package/dist/components/packageComponent.js +24 -0
  125. package/dist/components/packageComponent.js.map +1 -1
  126. package/dist/components/requestRestart.d.ts +1 -0
  127. package/dist/components/requestRestart.js +7 -0
  128. package/dist/components/requestRestart.js.map +1 -1
  129. package/dist/components/status/ComponentStatusRegistry.d.ts +0 -4
  130. package/dist/components/status/ComponentStatusRegistry.js +63 -0
  131. package/dist/components/status/ComponentStatusRegistry.js.map +1 -1
  132. package/dist/config/RootConfigWatcher.d.ts +9 -1
  133. package/dist/config/RootConfigWatcher.js +228 -37
  134. package/dist/config/RootConfigWatcher.js.map +1 -1
  135. package/dist/config/configReadRetry.d.ts +8 -0
  136. package/dist/config/configReadRetry.js +62 -0
  137. package/dist/config/configReadRetry.js.map +1 -0
  138. package/dist/config/configUtils.d.ts +11 -2
  139. package/dist/config/configUtils.js +304 -47
  140. package/dist/config/configUtils.js.map +1 -1
  141. package/dist/config/harperConfigEnvVars.d.ts +16 -0
  142. package/dist/config/harperConfigEnvVars.js +162 -25
  143. package/dist/config/harperConfigEnvVars.js.map +1 -1
  144. package/dist/config/parseConfigFile.d.ts +4 -0
  145. package/dist/config/parseConfigFile.js +35 -0
  146. package/dist/config/parseConfigFile.js.map +1 -0
  147. package/dist/config/readConfigFileSync.d.ts +1 -0
  148. package/dist/config/readConfigFileSync.js +47 -0
  149. package/dist/config/readConfigFileSync.js.map +1 -0
  150. package/dist/config/watcherArming.d.ts +15 -0
  151. package/dist/config/watcherArming.js +59 -0
  152. package/dist/config/watcherArming.js.map +1 -0
  153. package/dist/dataLayer/blobBackup.d.ts +49 -20
  154. package/dist/dataLayer/blobBackup.js +139 -50
  155. package/dist/dataLayer/blobBackup.js.map +1 -1
  156. package/dist/dataLayer/delete.js +1 -1
  157. package/dist/dataLayer/delete.js.map +1 -1
  158. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +14 -1
  159. package/dist/dataLayer/harperBridge/ResourceBridge.js +72 -12
  160. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  161. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +3 -1
  162. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
  163. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -1
  164. package/dist/dataLayer/hdbInfoController.d.ts +10 -0
  165. package/dist/dataLayer/hdbInfoController.js +30 -1
  166. package/dist/dataLayer/hdbInfoController.js.map +1 -1
  167. package/dist/dataLayer/insert.d.ts +9 -1
  168. package/dist/dataLayer/insert.js +30 -0
  169. package/dist/dataLayer/insert.js.map +1 -1
  170. package/dist/dataLayer/rocksdbBackup.d.ts +2 -2
  171. package/dist/dataLayer/rocksdbBackup.js +45 -8
  172. package/dist/dataLayer/rocksdbBackup.js.map +1 -1
  173. package/dist/dataLayer/schema.js +8 -0
  174. package/dist/dataLayer/schema.js.map +1 -1
  175. package/dist/dataLayer/schemaDescribe.js +8 -1
  176. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  177. package/dist/index.d.ts +2 -1
  178. package/dist/index.js +4 -1
  179. package/dist/index.js.map +1 -1
  180. package/dist/json/systemSchema.json +55 -0
  181. package/dist/resources/DatabaseTransaction.d.ts +77 -0
  182. package/dist/resources/DatabaseTransaction.js +586 -54
  183. package/dist/resources/DatabaseTransaction.js.map +1 -1
  184. package/dist/resources/LMDBTransaction.d.ts +2 -1
  185. package/dist/resources/LMDBTransaction.js +43 -6
  186. package/dist/resources/LMDBTransaction.js.map +1 -1
  187. package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
  188. package/dist/resources/PrimaryRocksDatabase.js +49 -5
  189. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  190. package/dist/resources/RecordEncoder.d.ts +20 -0
  191. package/dist/resources/RecordEncoder.js +110 -9
  192. package/dist/resources/RecordEncoder.js.map +1 -1
  193. package/dist/resources/RequestTarget.d.ts +2 -0
  194. package/dist/resources/RequestTarget.js.map +1 -1
  195. package/dist/resources/Resource.js +117 -24
  196. package/dist/resources/Resource.js.map +1 -1
  197. package/dist/resources/ResourceInterface.d.ts +28 -1
  198. package/dist/resources/ResourceInterface.js.map +1 -1
  199. package/dist/resources/RocksIndexStore.d.ts +6 -1
  200. package/dist/resources/RocksIndexStore.js +24 -9
  201. package/dist/resources/RocksIndexStore.js.map +1 -1
  202. package/dist/resources/RocksTransactionLogStore.d.ts +24 -1
  203. package/dist/resources/RocksTransactionLogStore.js +160 -49
  204. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  205. package/dist/resources/Table.d.ts +165 -10
  206. package/dist/resources/Table.js +1805 -303
  207. package/dist/resources/Table.js.map +1 -1
  208. package/dist/resources/analytics/write.js +10 -3
  209. package/dist/resources/analytics/write.js.map +1 -1
  210. package/dist/resources/auditStore.d.ts +181 -2
  211. package/dist/resources/auditStore.js +640 -29
  212. package/dist/resources/auditStore.js.map +1 -1
  213. package/dist/resources/blob.d.ts +129 -9
  214. package/dist/resources/blob.js +992 -114
  215. package/dist/resources/blob.js.map +1 -1
  216. package/dist/resources/branchDatabase.d.ts +48 -0
  217. package/dist/resources/branchDatabase.js +892 -0
  218. package/dist/resources/branchDatabase.js.map +1 -0
  219. package/dist/resources/crdt.js +50 -12
  220. package/dist/resources/crdt.js.map +1 -1
  221. package/dist/resources/dataLoader.js +3 -4
  222. package/dist/resources/dataLoader.js.map +1 -1
  223. package/dist/resources/databases.d.ts +157 -14
  224. package/dist/resources/databases.js +1462 -325
  225. package/dist/resources/databases.js.map +1 -1
  226. package/dist/resources/defineTable.d.ts +10 -2
  227. package/dist/resources/defineTable.js +9 -1
  228. package/dist/resources/defineTable.js.map +1 -1
  229. package/dist/resources/derivedIndexRegistry.d.ts +5 -0
  230. package/dist/resources/derivedIndexRegistry.js +68 -0
  231. package/dist/resources/derivedIndexRegistry.js.map +1 -0
  232. package/dist/resources/derivedIndexRuntime.d.ts +215 -0
  233. package/dist/resources/derivedIndexRuntime.js +2027 -0
  234. package/dist/resources/derivedIndexRuntime.js.map +1 -0
  235. package/dist/resources/graphql.d.ts +1 -1
  236. package/dist/resources/graphql.js +52 -16
  237. package/dist/resources/graphql.js.map +1 -1
  238. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +103 -9
  239. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +854 -41
  240. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  241. package/dist/resources/indexes/hnswDerivedIndex.d.ts +67 -0
  242. package/dist/resources/indexes/hnswDerivedIndex.js +464 -0
  243. package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -0
  244. package/dist/resources/indexes/hnswPlaneBinding.d.ts +65 -0
  245. package/dist/resources/indexes/hnswPlaneBinding.js +91 -0
  246. package/dist/resources/indexes/hnswPlaneBinding.js.map +1 -0
  247. package/dist/resources/longLivedTransactions.d.ts +71 -0
  248. package/dist/resources/longLivedTransactions.js +358 -0
  249. package/dist/resources/longLivedTransactions.js.map +1 -0
  250. package/dist/resources/models/backendRegistry.d.ts +26 -0
  251. package/dist/resources/models/backendRegistry.js +60 -2
  252. package/dist/resources/models/backendRegistry.js.map +1 -1
  253. package/dist/resources/models/bootstrap.d.ts +33 -1
  254. package/dist/resources/models/bootstrap.js +416 -31
  255. package/dist/resources/models/bootstrap.js.map +1 -1
  256. package/dist/resources/nodeIdMapping.d.ts +5 -0
  257. package/dist/resources/nodeIdMapping.js +49 -0
  258. package/dist/resources/nodeIdMapping.js.map +1 -1
  259. package/dist/resources/recordLock.d.ts +123 -0
  260. package/dist/resources/recordLock.js +315 -0
  261. package/dist/resources/recordLock.js.map +1 -0
  262. package/dist/resources/recordLockCoordinator.d.ts +557 -0
  263. package/dist/resources/recordLockCoordinator.js +2565 -0
  264. package/dist/resources/recordLockCoordinator.js.map +1 -0
  265. package/dist/resources/replayLogs.d.ts +14 -1
  266. package/dist/resources/replayLogs.js +157 -24
  267. package/dist/resources/replayLogs.js.map +1 -1
  268. package/dist/resources/replayLogsGuards.d.ts +94 -7
  269. package/dist/resources/replayLogsGuards.js +111 -7
  270. package/dist/resources/replayLogsGuards.js.map +1 -1
  271. package/dist/resources/replicatedApplyFailure.d.ts +16 -0
  272. package/dist/resources/replicatedApplyFailure.js +63 -0
  273. package/dist/resources/replicatedApplyFailure.js.map +1 -0
  274. package/dist/resources/scheduler/scheduler.js +3 -3
  275. package/dist/resources/scheduler/scheduler.js.map +1 -1
  276. package/dist/resources/search.d.ts +10 -4
  277. package/dist/resources/search.js +283 -37
  278. package/dist/resources/search.js.map +1 -1
  279. package/dist/resources/tracked.d.ts +5 -1
  280. package/dist/resources/tracked.js +74 -23
  281. package/dist/resources/tracked.js.map +1 -1
  282. package/dist/resources/transactionBroadcast.d.ts +1 -1
  283. package/dist/resources/transactionBroadcast.js +2 -2
  284. package/dist/resources/transactionBroadcast.js.map +1 -1
  285. package/dist/security/auth.js +61 -30
  286. package/dist/security/auth.js.map +1 -1
  287. package/dist/security/authn/oidc/claims.d.ts +22 -0
  288. package/dist/security/authn/oidc/claims.js +71 -0
  289. package/dist/security/authn/oidc/claims.js.map +1 -0
  290. package/dist/security/authn/oidc/identityToken.d.ts +27 -0
  291. package/dist/security/authn/oidc/identityToken.js +111 -0
  292. package/dist/security/authn/oidc/identityToken.js.map +1 -0
  293. package/dist/security/authn/oidc/jwks.d.ts +25 -0
  294. package/dist/security/authn/oidc/jwks.js +261 -0
  295. package/dist/security/authn/oidc/jwks.js.map +1 -0
  296. package/dist/security/authn/oidc/providers/generic.d.ts +13 -0
  297. package/dist/security/authn/oidc/providers/generic.js +34 -0
  298. package/dist/security/authn/oidc/providers/generic.js.map +1 -0
  299. package/dist/security/authn/oidc/providers/githubActions.d.ts +11 -0
  300. package/dist/security/authn/oidc/providers/githubActions.js +129 -0
  301. package/dist/security/authn/oidc/providers/githubActions.js.map +1 -0
  302. package/dist/security/authn/oidc/providers/index.d.ts +37 -0
  303. package/dist/security/authn/oidc/providers/index.js +24 -0
  304. package/dist/security/authn/oidc/providers/index.js.map +1 -0
  305. package/dist/security/authn/oidc/tokenExchange.d.ts +12 -0
  306. package/dist/security/authn/oidc/tokenExchange.js +306 -0
  307. package/dist/security/authn/oidc/tokenExchange.js.map +1 -0
  308. package/dist/security/authn/oidc/trustPolicyOperations.d.ts +49 -0
  309. package/dist/security/authn/oidc/trustPolicyOperations.js +358 -0
  310. package/dist/security/authn/oidc/trustPolicyOperations.js.map +1 -0
  311. package/dist/security/authn/oidc/types.d.ts +38 -0
  312. package/dist/security/authn/oidc/types.js +6 -0
  313. package/dist/security/authn/oidc/types.js.map +1 -0
  314. package/dist/security/certificateVerification/index.js +40 -11
  315. package/dist/security/certificateVerification/index.js.map +1 -1
  316. package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
  317. package/dist/security/certificateVerification/trustedIssuers.js +79 -0
  318. package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
  319. package/dist/security/certificateVerification/types.d.ts +1 -0
  320. package/dist/security/credentialProvenance.d.ts +35 -0
  321. package/dist/security/credentialProvenance.js +51 -0
  322. package/dist/security/credentialProvenance.js.map +1 -0
  323. package/dist/security/credentialRejection.d.ts +4 -0
  324. package/dist/security/credentialRejection.js +24 -0
  325. package/dist/security/credentialRejection.js.map +1 -0
  326. package/dist/security/deferredAuthentication.d.ts +36 -0
  327. package/dist/security/deferredAuthentication.js +70 -0
  328. package/dist/security/deferredAuthentication.js.map +1 -0
  329. package/dist/security/impersonation.d.ts +21 -0
  330. package/dist/security/impersonation.js +108 -9
  331. package/dist/security/impersonation.js.map +1 -1
  332. package/dist/security/jsLoader.d.ts +6 -0
  333. package/dist/security/jsLoader.js +77 -15
  334. package/dist/security/jsLoader.js.map +1 -1
  335. package/dist/security/keys.js +301 -71
  336. package/dist/security/keys.js.map +1 -1
  337. package/dist/security/operationScope.d.ts +21 -0
  338. package/dist/security/operationScope.js +36 -0
  339. package/dist/security/operationScope.js.map +1 -0
  340. package/dist/security/permissionsTranslator.js +21 -0
  341. package/dist/security/permissionsTranslator.js.map +1 -1
  342. package/dist/security/tokenAuthentication.d.ts +19 -1
  343. package/dist/security/tokenAuthentication.js +191 -10
  344. package/dist/security/tokenAuthentication.js.map +1 -1
  345. package/dist/security/user.js +4 -3
  346. package/dist/security/user.js.map +1 -1
  347. package/dist/server/DurableSubscriptionsSession.d.ts +2 -2
  348. package/dist/server/DurableSubscriptionsSession.js +67 -10
  349. package/dist/server/DurableSubscriptionsSession.js.map +1 -1
  350. package/dist/server/REST.js +106 -2
  351. package/dist/server/REST.js.map +1 -1
  352. package/dist/server/graphqlQuerying.js +4 -0
  353. package/dist/server/graphqlQuerying.js.map +1 -1
  354. package/dist/server/http.d.ts +16 -1
  355. package/dist/server/http.js +122 -17
  356. package/dist/server/http.js.map +1 -1
  357. package/dist/server/itc/serverHandlers.js +8 -1
  358. package/dist/server/itc/serverHandlers.js.map +1 -1
  359. package/dist/server/jobs/jobProcess.js +6 -2
  360. package/dist/server/jobs/jobProcess.js.map +1 -1
  361. package/dist/server/jobs/jobs.js +4 -1
  362. package/dist/server/jobs/jobs.js.map +1 -1
  363. package/dist/server/liveSubscriptionAuth.d.ts +26 -4
  364. package/dist/server/liveSubscriptionAuth.js +105 -39
  365. package/dist/server/liveSubscriptionAuth.js.map +1 -1
  366. package/dist/server/loadRootComponents.js +49 -10
  367. package/dist/server/loadRootComponents.js.map +1 -1
  368. package/dist/server/mqtt.d.ts +2 -0
  369. package/dist/server/mqtt.js +165 -30
  370. package/dist/server/mqtt.js.map +1 -1
  371. package/dist/server/nodeName.d.ts +2 -0
  372. package/dist/server/nodeName.js +107 -23
  373. package/dist/server/nodeName.js.map +1 -1
  374. package/dist/server/serverHelpers/Headers.d.ts +27 -0
  375. package/dist/server/serverHelpers/Headers.js +145 -1
  376. package/dist/server/serverHelpers/Headers.js.map +1 -1
  377. package/dist/server/serverHelpers/NodeAdapterResponse.d.ts +48 -0
  378. package/dist/server/serverHelpers/NodeAdapterResponse.js +220 -0
  379. package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -0
  380. package/dist/server/serverHelpers/Request.d.ts +5 -10
  381. package/dist/server/serverHelpers/Request.js +38 -136
  382. package/dist/server/serverHelpers/Request.js.map +1 -1
  383. package/dist/server/serverHelpers/contentTypes.d.ts +11 -0
  384. package/dist/server/serverHelpers/contentTypes.js +221 -40
  385. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  386. package/dist/server/serverHelpers/deployValidationState.d.ts +3 -0
  387. package/dist/server/serverHelpers/deployValidationState.js +9 -19
  388. package/dist/server/serverHelpers/deployValidationState.js.map +1 -1
  389. package/dist/server/serverHelpers/operationAuthorizationState.d.ts +12 -0
  390. package/dist/server/serverHelpers/operationAuthorizationState.js +24 -2
  391. package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -1
  392. package/dist/server/serverHelpers/registeredOperations.d.ts +5 -4
  393. package/dist/server/serverHelpers/registeredOperations.js +74 -21
  394. package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
  395. package/dist/server/serverHelpers/requestSanitization.d.ts +11 -0
  396. package/dist/server/serverHelpers/requestSanitization.js +20 -0
  397. package/dist/server/serverHelpers/requestSanitization.js.map +1 -0
  398. package/dist/server/serverHelpers/serverHandlers.js +6 -3
  399. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  400. package/dist/server/serverHelpers/serverUtilities.d.ts +18 -0
  401. package/dist/server/serverHelpers/serverUtilities.js +178 -29
  402. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  403. package/dist/server/serverHelpers/sharedMessageEncoding.d.ts +67 -0
  404. package/dist/server/serverHelpers/sharedMessageEncoding.js +280 -0
  405. package/dist/server/serverHelpers/sharedMessageEncoding.js.map +1 -0
  406. package/dist/server/serverHelpers/uwsServer.js +19 -1
  407. package/dist/server/serverHelpers/uwsServer.js.map +1 -1
  408. package/dist/server/static.js +24 -28
  409. package/dist/server/static.js.map +1 -1
  410. package/dist/server/storageReclamation.d.ts +5 -0
  411. package/dist/server/storageReclamation.js +17 -1
  412. package/dist/server/storageReclamation.js.map +1 -1
  413. package/dist/server/threads/isolatedApplications.d.ts +47 -0
  414. package/dist/server/threads/isolatedApplications.js +171 -0
  415. package/dist/server/threads/isolatedApplications.js.map +1 -0
  416. package/dist/server/threads/itc.d.ts +7 -2
  417. package/dist/server/threads/itc.js +5 -1
  418. package/dist/server/threads/itc.js.map +1 -1
  419. package/dist/server/threads/logRotationTransport.d.ts +1 -0
  420. package/dist/server/threads/logRotationTransport.js +33 -0
  421. package/dist/server/threads/logRotationTransport.js.map +1 -0
  422. package/dist/server/threads/manageThreads.d.ts +83 -3
  423. package/dist/server/threads/manageThreads.js +769 -75
  424. package/dist/server/threads/manageThreads.js.map +1 -1
  425. package/dist/server/threads/socketRouter.d.ts +1 -0
  426. package/dist/server/threads/socketRouter.js +277 -31
  427. package/dist/server/threads/socketRouter.js.map +1 -1
  428. package/dist/server/threads/threadHeapMemory.d.ts +2 -0
  429. package/dist/server/threads/threadHeapMemory.js +31 -0
  430. package/dist/server/threads/threadHeapMemory.js.map +1 -0
  431. package/dist/server/threads/threadServer.js +76 -22
  432. package/dist/server/threads/threadServer.js.map +1 -1
  433. package/dist/sqlEngine/config.d.ts +1 -3
  434. package/dist/sqlEngine/config.js +19 -16
  435. package/dist/sqlEngine/config.js.map +1 -1
  436. package/dist/sqlTranslator/index.d.ts +1 -1
  437. package/dist/sqlTranslator/index.js +30 -7
  438. package/dist/sqlTranslator/index.js.map +1 -1
  439. package/dist/upgrade/directives/5-3-0.d.ts +7 -0
  440. package/dist/upgrade/directives/5-3-0.js +148 -0
  441. package/dist/upgrade/directives/5-3-0.js.map +1 -0
  442. package/dist/upgrade/directives/directivesController.js +2 -1
  443. package/dist/upgrade/directives/directivesController.js.map +1 -1
  444. package/dist/utility/OperationFunctionCaller.js +2 -1
  445. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  446. package/dist/utility/common_utils.d.ts +16 -0
  447. package/dist/utility/common_utils.js +32 -6
  448. package/dist/utility/common_utils.js.map +1 -1
  449. package/dist/utility/componentNames.d.ts +8 -0
  450. package/dist/utility/componentNames.js +12 -1
  451. package/dist/utility/componentNames.js.map +1 -1
  452. package/dist/utility/environment/environmentManager.js +3 -6
  453. package/dist/utility/environment/environmentManager.js.map +1 -1
  454. package/dist/utility/environment/systemInformation.d.ts +1 -0
  455. package/dist/utility/environment/systemInformation.js +1 -0
  456. package/dist/utility/environment/systemInformation.js.map +1 -1
  457. package/dist/utility/errors/commonErrors.d.ts +2 -0
  458. package/dist/utility/errors/commonErrors.js +2 -0
  459. package/dist/utility/errors/commonErrors.js.map +1 -1
  460. package/dist/utility/errors/hdbError.d.ts +33 -0
  461. package/dist/utility/errors/hdbError.js +58 -1
  462. package/dist/utility/errors/hdbError.js.map +1 -1
  463. package/dist/utility/globalSchema.d.ts +18 -0
  464. package/dist/utility/hdbTerms.d.ts +18 -0
  465. package/dist/utility/hdbTerms.js +20 -2
  466. package/dist/utility/hdbTerms.js.map +1 -1
  467. package/dist/utility/logging/harper_logger.d.ts +2 -0
  468. package/dist/utility/logging/harper_logger.js +286 -30
  469. package/dist/utility/logging/harper_logger.js.map +1 -1
  470. package/dist/utility/logging/logGenerationCoordinator.d.ts +35 -0
  471. package/dist/utility/logging/logGenerationCoordinator.js +184 -0
  472. package/dist/utility/logging/logGenerationCoordinator.js.map +1 -0
  473. package/dist/utility/logging/logRotation.d.ts +46 -0
  474. package/dist/utility/logging/logRotation.js +365 -0
  475. package/dist/utility/logging/logRotation.js.map +1 -0
  476. package/dist/utility/logging/logRotator.d.ts +1 -1
  477. package/dist/utility/logging/logRotator.js +192 -85
  478. package/dist/utility/logging/logRotator.js.map +1 -1
  479. package/dist/utility/nodeIdentity.d.ts +9 -0
  480. package/dist/utility/nodeIdentity.js +58 -0
  481. package/dist/utility/nodeIdentity.js.map +1 -0
  482. package/dist/utility/npmUtilities.js +11 -7
  483. package/dist/utility/npmUtilities.js.map +1 -1
  484. package/dist/utility/operationPermissions.d.ts +3 -1
  485. package/dist/utility/operationPermissions.js +16 -1
  486. package/dist/utility/operationPermissions.js.map +1 -1
  487. package/dist/utility/operation_authorization.d.ts +10 -7
  488. package/dist/utility/operation_authorization.js +212 -41
  489. package/dist/utility/operation_authorization.js.map +1 -1
  490. package/dist/utility/watchPath.d.ts +29 -0
  491. package/dist/utility/watchPath.js +68 -0
  492. package/dist/utility/watchPath.js.map +1 -0
  493. package/dist/utility/watcherFallback.d.ts +41 -0
  494. package/dist/utility/watcherFallback.js +153 -0
  495. package/dist/utility/watcherFallback.js.map +1 -1
  496. package/dist/validation/configValidator.d.ts +12 -0
  497. package/dist/validation/configValidator.js +205 -75
  498. package/dist/validation/configValidator.js.map +1 -1
  499. package/dist/validation/installValidator.js +12 -0
  500. package/dist/validation/installValidator.js.map +1 -1
  501. package/dist/validation/validationWrapper.d.ts +11 -0
  502. package/dist/validation/validationWrapper.js +16 -3
  503. package/dist/validation/validationWrapper.js.map +1 -1
  504. package/index.ts +8 -0
  505. package/json/systemSchema.json +55 -0
  506. package/npm-shrinkwrap.json +286 -194
  507. package/package.json +15 -7
  508. package/resources/DESIGN.md +219 -52
  509. package/resources/DatabaseTransaction.ts +657 -52
  510. package/resources/LMDBTransaction.ts +46 -6
  511. package/resources/PrimaryRocksDatabase.ts +46 -7
  512. package/resources/RecordEncoder.ts +124 -9
  513. package/resources/RequestTarget.ts +2 -0
  514. package/resources/Resource.ts +114 -22
  515. package/resources/ResourceInterface.ts +31 -0
  516. package/resources/RocksIndexStore.ts +30 -9
  517. package/resources/RocksTransactionLogStore.ts +188 -51
  518. package/resources/Table.ts +1960 -301
  519. package/resources/analytics/write.ts +10 -3
  520. package/resources/auditStore.ts +647 -32
  521. package/resources/blob.ts +1029 -110
  522. package/resources/branchDatabase.ts +941 -0
  523. package/resources/crdt.ts +76 -12
  524. package/resources/dataLoader.ts +3 -4
  525. package/resources/databases.ts +1584 -320
  526. package/resources/defineTable.ts +18 -2
  527. package/resources/derivedIndexRegistry.ts +56 -0
  528. package/resources/derivedIndexRuntime.ts +2292 -0
  529. package/resources/graphql.ts +72 -17
  530. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +911 -48
  531. package/resources/indexes/hnswDerivedIndex.ts +531 -0
  532. package/resources/indexes/hnswPlaneBinding.ts +174 -0
  533. package/resources/longLivedTransactions.ts +360 -0
  534. package/resources/models/backendRegistry.ts +84 -2
  535. package/resources/models/bootstrap.ts +473 -28
  536. package/resources/nodeIdMapping.ts +50 -0
  537. package/resources/recordLock.ts +419 -0
  538. package/resources/recordLockCoordinator.ts +3043 -0
  539. package/resources/replayLogs.ts +152 -26
  540. package/resources/replayLogsGuards.ts +171 -8
  541. package/resources/replicatedApplyFailure.ts +77 -0
  542. package/resources/scheduler/scheduler.ts +4 -4
  543. package/resources/search.ts +288 -46
  544. package/resources/tracked.ts +73 -22
  545. package/resources/transactionBroadcast.ts +3 -3
  546. package/security/auth.ts +68 -29
  547. package/security/authn/oidc/claims.ts +72 -0
  548. package/security/authn/oidc/identityToken.ts +129 -0
  549. package/security/authn/oidc/jwks.ts +260 -0
  550. package/security/authn/oidc/providers/generic.ts +40 -0
  551. package/security/authn/oidc/providers/githubActions.ts +137 -0
  552. package/security/authn/oidc/providers/index.ts +52 -0
  553. package/security/authn/oidc/tokenExchange.ts +300 -0
  554. package/security/authn/oidc/trustPolicyOperations.ts +343 -0
  555. package/security/authn/oidc/types.ts +41 -0
  556. package/security/certificateVerification/index.ts +54 -13
  557. package/security/certificateVerification/trustedIssuers.ts +76 -0
  558. package/security/certificateVerification/types.ts +1 -0
  559. package/security/credentialProvenance.ts +47 -0
  560. package/security/credentialRejection.ts +22 -0
  561. package/security/deferredAuthentication.ts +71 -0
  562. package/security/impersonation.ts +117 -12
  563. package/security/jsLoader.ts +83 -18
  564. package/security/keys.ts +298 -72
  565. package/security/operationScope.ts +33 -0
  566. package/security/permissionsTranslator.js +23 -0
  567. package/security/tokenAuthentication.ts +233 -12
  568. package/security/user.ts +4 -3
  569. package/server/DESIGN.md +194 -16
  570. package/server/DurableSubscriptionsSession.ts +71 -11
  571. package/server/REST.ts +115 -4
  572. package/server/graphqlQuerying.ts +4 -0
  573. package/server/http.ts +133 -20
  574. package/server/itc/serverHandlers.js +8 -1
  575. package/server/jobs/jobProcess.ts +8 -2
  576. package/server/jobs/jobs.ts +4 -1
  577. package/server/liveSubscriptionAuth.ts +129 -46
  578. package/server/loadRootComponents.js +50 -8
  579. package/server/mqtt.ts +179 -38
  580. package/server/nodeName.ts +103 -21
  581. package/server/serverHelpers/Headers.ts +135 -0
  582. package/server/serverHelpers/NodeAdapterResponse.ts +221 -0
  583. package/server/serverHelpers/Request.ts +33 -131
  584. package/server/serverHelpers/contentTypes.ts +217 -36
  585. package/server/serverHelpers/deployValidationState.ts +24 -13
  586. package/server/serverHelpers/operationAuthorizationState.ts +34 -3
  587. package/server/serverHelpers/registeredOperations.ts +79 -22
  588. package/server/serverHelpers/requestSanitization.ts +15 -0
  589. package/server/serverHelpers/serverHandlers.js +6 -3
  590. package/server/serverHelpers/serverUtilities.ts +232 -40
  591. package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
  592. package/server/serverHelpers/uwsServer.ts +17 -2
  593. package/server/static.ts +23 -29
  594. package/server/storageReclamation.ts +15 -2
  595. package/server/threads/isolatedApplications.ts +157 -0
  596. package/server/threads/itc.js +11 -1
  597. package/server/threads/logRotationTransport.ts +40 -0
  598. package/server/threads/manageThreads.js +771 -66
  599. package/server/threads/socketRouter.ts +291 -30
  600. package/server/threads/threadHeapMemory.ts +26 -0
  601. package/server/threads/threadServer.js +73 -22
  602. package/sqlTranslator/index.ts +31 -8
  603. package/studio/web/assets/{Chat-4RrB5134.js → Chat-D3j-1yY1.js} +1 -1
  604. package/studio/web/assets/{FloatingChat-omlNMDcJ.js → FloatingChat-BxJGYcfB.js} +3 -3
  605. package/studio/web/assets/{apiToken-Bke3wvfZ.js → apiToken-CT55oWOe.js} +1 -1
  606. package/studio/web/assets/{applications-DvFDYJgK.js → applications-D9Ct9_vm.js} +1 -1
  607. package/studio/web/assets/{cssMode-C1vRa7zh.js → cssMode-DV8H7VwA.js} +1 -1
  608. package/studio/web/assets/{editor-3XRWEDWX.js → editor-uatc0unt.js} +1 -1
  609. package/studio/web/assets/{html-CTY5tdMr.js → html-Bm6D6paN.js} +1 -1
  610. package/studio/web/assets/{htmlMode-CG1vSD9t.js → htmlMode-CEn7tpLG.js} +1 -1
  611. package/studio/web/assets/{index-Dfpeofdu.js → index-BIXW6Pu4.js} +5 -5
  612. package/studio/web/assets/{index.lazy-B1VOIv-t.js → index.lazy-UI7L-Vrk.js} +1 -1
  613. package/studio/web/assets/{javascript-CJeJzGnI.js → javascript-CJ0G3AFZ.js} +1 -1
  614. package/studio/web/assets/{jsonMode-CYPBwM82.js → jsonMode-DQADAYEa.js} +1 -1
  615. package/studio/web/assets/{languageServices-IKH4GUHl.js → languageServices-CAQJXWcI.js} +1 -1
  616. package/studio/web/assets/{lspLanguageFeatures-BC8_gxKG.js → lspLanguageFeatures-CCQ8P5sY.js} +1 -1
  617. package/studio/web/assets/{notifications-BfKBpYcq.js → notifications-BbxTU6Aw.js} +1 -1
  618. package/studio/web/assets/{notifications-DFbArTfC.js → notifications-Cvb3P1lB.js} +1 -1
  619. package/studio/web/assets/{profile-Q4-T6c-S.js → profile-Yyb7gsvL.js} +1 -1
  620. package/studio/web/assets/{regions-CtkV0xje.js → regions-OgjGHlU5.js} +1 -1
  621. package/studio/web/assets/{register-1ZZuMsiA.js → register-6qwNEOY3.js} +2 -2
  622. package/studio/web/assets/{setComponentFile-ZWLcWv5X.js → setComponentFile-BilDMtgB.js} +1 -1
  623. package/studio/web/assets/{setup-DWprJyJy.js → setup-J6qJ7OIU.js} +2 -2
  624. package/studio/web/assets/{status--aNm8isn.js → status-0RWGcfyD.js} +1 -1
  625. package/studio/web/assets/{toggleHighContrast-Cq_lt3XD.js → toggleHighContrast-BIn-vErT.js} +1 -1
  626. package/studio/web/assets/{tsMode-pjgytARx.js → tsMode-DgUXku4d.js} +1 -1
  627. package/studio/web/assets/{typescript-Cdg0mqUh.js → typescript-C9orXcsM.js} +1 -1
  628. package/studio/web/assets/{useEntityRestURL-RZhaY8Rn.js → useEntityRestURL-BEoXXbUB.js} +1 -1
  629. package/studio/web/assets/{workers-BgoXIqQe.js → workers-JVzSDmgx.js} +1 -1
  630. package/studio/web/assets/{xml-BwSeDMiP.js → xml-Cq-S8S4X.js} +1 -1
  631. package/studio/web/assets/{yaml-DotCUG5l.js → yaml-sfoRdh1M.js} +1 -1
  632. package/studio/web/index.html +1 -1
  633. package/upgrade/directives/5-3-0.ts +132 -0
  634. package/upgrade/directives/directivesController.ts +2 -1
  635. package/utility/OperationFunctionCaller.ts +2 -1
  636. package/utility/common_utils.ts +30 -5
  637. package/utility/componentNames.ts +12 -0
  638. package/utility/environment/environmentManager.ts +3 -7
  639. package/utility/environment/systemInformation.ts +7 -0
  640. package/utility/errors/commonErrors.ts +4 -0
  641. package/utility/errors/hdbError.ts +57 -0
  642. package/utility/hdbTerms.ts +19 -0
  643. package/utility/logging/harper_logger.ts +278 -26
  644. package/utility/logging/logGenerationCoordinator.ts +196 -0
  645. package/utility/logging/logRotation.ts +367 -0
  646. package/utility/logging/logRotator.ts +213 -81
  647. package/utility/nodeIdentity.ts +45 -0
  648. package/utility/npmUtilities.ts +12 -8
  649. package/utility/operationPermissions.ts +18 -1
  650. package/utility/operation_authorization.ts +231 -42
  651. package/utility/watchPath.ts +63 -0
  652. package/utility/watcherFallback.ts +148 -0
  653. package/validation/configValidator.ts +215 -75
  654. package/validation/installValidator.ts +15 -0
  655. package/validation/validationWrapper.ts +18 -4
@@ -40,6 +40,7 @@ exports.getJWTRSAKeys = getJWTRSAKeys;
40
40
  exports.clearJWTRSAKeysCache = clearJWTRSAKeysCache;
41
41
  exports.createTokens = createTokens;
42
42
  exports.refreshOperationToken = refreshOperationToken;
43
+ exports.createOperationToken = createOperationToken;
43
44
  exports.validateOperationToken = validateOperationToken;
44
45
  exports.validateRefreshToken = validateRefreshToken;
45
46
  exports.validateLoginToken = validateLoginToken;
@@ -56,6 +57,11 @@ const { HTTP_STATUS_CODES, AUTHENTICATION_ERROR_MSGS } = hdbError_ts_1.hdbErrors
56
57
  const harper_logger_ts_1 = __importDefault(require("../utility/logging/harper_logger.js"));
57
58
  const password = __importStar(require("../utility/password.js"));
58
59
  const user_ts_1 = require("./user.js");
60
+ const operationScope_ts_1 = require("./operationScope.js");
61
+ const credentialProvenance_ts_1 = require("./credentialProvenance.js");
62
+ const impersonation_ts_1 = require("./impersonation.js");
63
+ const credentialRejection_ts_1 = require("./credentialRejection.js");
64
+ const operationPermissions_ts_1 = require("../utility/operationPermissions.js");
59
65
  const insert_ts_1 = require("../dataLayer/insert.js");
60
66
  const UpdateObject_ts_1 = __importDefault(require("../dataLayer/UpdateObject.js"));
61
67
  const signalling = __importStar(require("../utility/signalling.js"));
@@ -78,6 +84,10 @@ const TOKEN_TYPE = {
78
84
  // TOKEN_TYPE.OPERATION, so validateOperationToken's Bearer-API path rejects it automatically —
79
85
  // it can't be replayed as a general API credential the way a full operation token could.
80
86
  LOGIN: 'login',
87
+ // Minted by createTokens with an inline `role` object (super_user-gated): the token embeds its
88
+ // own downgraded permission set and its bearer needs no hdb_user row. Accepted by
89
+ // validateOperationToken, which builds a synthetic user from the embedded role.
90
+ SCOPED: 'scoped-operation',
81
91
  };
82
92
  /**
83
93
  * fetches the rsa keys from cache var or disk
@@ -134,12 +144,39 @@ async function createTokens(authObj) {
134
144
  const validation = (0, validationWrapper_ts_1.validateBySchema)(authObj, joi_1.default.object({
135
145
  username: joi_1.default.string().optional(),
136
146
  password: joi_1.default.string().optional(),
137
- role: joi_1.default.string().optional(),
147
+ role: joi_1.default.alternatives(joi_1.default.string(), joi_1.default.object()).optional(),
138
148
  expires_in: joi_1.default.alternatives(joi_1.default.string(), joi_1.default.number()).optional(),
139
149
  purpose: joi_1.default.string().valid('login').optional(),
140
150
  }));
141
151
  if (validation)
142
152
  throw new hdbError_ts_1.ClientError(validation.message);
153
+ // create_authentication_tokens is NO_AUTH, so verifyPerms — and the token-scope gate inside it —
154
+ // never runs here. A caller holding a workload-identity token (#2171) must not mint any standing
155
+ // credential through it: honoring expires_in verbatim turns a minutes-long leak into an
156
+ // arbitrarily long-lived one, and the refresh_token write below hands out a 30-day credential —
157
+ // both defeating the exchange's ephemerality guarantee. A CI token needs none of this; it already
158
+ // holds the operation token the exchange gave it, and gets a fresh one next run.
159
+ //
160
+ // Gated on provenance, NOT on the scope: a trust policy carries `operations` only when the
161
+ // operator opts in, so the ordinary exchanged token is unscoped and a scope-only check would let
162
+ // exactly the common case through. The scope check stays as well, covering a scoped credential
163
+ // from any other source.
164
+ //
165
+ // First, ahead of the user lookup and the `purpose` branch: this reads only the caller's own
166
+ // principal, so a refused request should cost no database read and write nothing. That also
167
+ // covers the login path, where a session is minted from a username alone and so cannot be
168
+ // narrowed after the fact.
169
+ // `authObj?.` — a bare createTokens() reaches here, and must still fail as invalid credentials
170
+ // below rather than as a TypeError out of this guard.
171
+ if ((0, credentialProvenance_ts_1.isWorkloadIdentityPrincipal)(authObj?.hdb_user)) {
172
+ throw new hdbError_ts_1.ClientError('a workload identity token cannot mint authentication tokens', HTTP_STATUS_CODES.FORBIDDEN);
173
+ }
174
+ if ((0, operationScope_ts_1.hasOperationScope)(authObj?.hdb_user?.tokenOperations)) {
175
+ throw new hdbError_ts_1.ClientError('a scoped token cannot mint authentication tokens', HTTP_STATUS_CODES.FORBIDDEN);
176
+ }
177
+ if (authObj?.role && typeof authObj.role === 'object') {
178
+ return createScopedToken(authObj);
179
+ }
143
180
  let user;
144
181
  try {
145
182
  // Trusted bypass is dispatch/async-context state (set by a component calling
@@ -148,6 +185,12 @@ async function createTokens(authObj) {
148
185
  // without a password (see operationAuthorizationState.ts).
149
186
  let validatePassword = !(0, operationAuthorizationState_ts_1.isOperationAuthorizationBypassed)();
150
187
  if (!authObj.username && !authObj.password) {
188
+ // A scoped-token bearer must not self-mint: its username is an unverified attribution
189
+ // label, and resolving it here without a password would hand out standing operation/
190
+ // refresh tokens for whatever real user later takes that name (privilege escalation).
191
+ if (authObj.hdb_user?._scopedToken) {
192
+ throw new hdbError_ts_1.ClientError(AUTHENTICATION_ERROR_MSGS.INVALID_CREDENTIALS, HTTP_STATUS_CODES.UNAUTHORIZED);
193
+ }
151
194
  // if the username and password are not provided, use the hdb_user making the request.
152
195
  authObj.username = authObj.hdb_user?.username;
153
196
  // the password would have been checked by authHandler before getting here
@@ -202,6 +245,43 @@ async function createTokens(authObj) {
202
245
  refresh_token: refreshToken,
203
246
  };
204
247
  }
248
+ /**
249
+ * Mints a scoped token: a single operation-usable JWT that embeds an inline role object, so its
250
+ * bearer needs no hdb_user or hdb_role row. Requires an authenticated super_user minter (or
251
+ * trusted internal dispatch). `username` is attribution only, must NOT name an existing user,
252
+ * and defaults to `scoped:<minter>`. No refresh token is issued and no user record is touched,
253
+ * so the token is irrevocable until expiry — size expires_in accordingly.
254
+ */
255
+ // Measured on the signed token (base64url payload + signature), so it reflects what the
256
+ // Authorization header actually carries; keeps tokens inside common 16KB header limits.
257
+ const MAX_SCOPED_TOKEN_LENGTH = 12288;
258
+ async function createScopedToken(authObj) {
259
+ if (authObj.password) {
260
+ throw new hdbError_ts_1.ClientError("'password' cannot be combined with an inline 'role' object");
261
+ }
262
+ if (authObj.purpose) {
263
+ throw new hdbError_ts_1.ClientError("'purpose' cannot be combined with an inline 'role' object");
264
+ }
265
+ const scopedUser = await (0, impersonation_ts_1.buildScopedTokenUser)(authObj.hdb_user, { username: authObj.username, role: authObj.role }, (0, operationAuthorizationState_ts_1.isOperationAuthorizationBypassed)());
266
+ const keys = await getJWTRSAKeys();
267
+ const operationToken = jsonwebtoken_1.default.sign({
268
+ username: scopedUser.username,
269
+ super_user: false,
270
+ role: { permission: scopedUser.role.permission },
271
+ minted_by: authObj.hdb_user?.username,
272
+ }, { key: keys.privateKey, passphrase: keys.passphrase }, {
273
+ expiresIn: (authObj.expires_in ?? OPERATION_TOKEN_TIMEOUT),
274
+ algorithm: RSA_ALGORITHM,
275
+ subject: TOKEN_TYPE.SCOPED,
276
+ });
277
+ if (operationToken.length > MAX_SCOPED_TOKEN_LENGTH) {
278
+ throw new hdbError_ts_1.ClientError(`the minted token exceeds ${MAX_SCOPED_TOKEN_LENGTH} bytes and would not fit in an Authorization header; reduce the role permission size`);
279
+ }
280
+ // role.role is the content hash of the granted permission set — logged so an operator can
281
+ // correlate outstanding tokens with what they grant.
282
+ harper_logger_ts_1.default.info(`Scoped token minted by "${authObj.hdb_user?.username ?? '<internal>'}" for "${scopedUser.username}" (${scopedUser.role.role})`);
283
+ return { operation_token: operationToken };
284
+ }
205
285
  /**
206
286
  * Refreshes the operation token using the refresh token.
207
287
  * @param tokenObj
@@ -214,13 +294,49 @@ async function refreshOperationToken(tokenObj) {
214
294
  await validateRefreshToken(refresh_token);
215
295
  const keys = await getJWTRSAKeys();
216
296
  const decodedJWT = jsonwebtoken_1.default.decode(refresh_token, { json: true });
217
- const operationToken = jsonwebtoken_1.default.sign({ username: decodedJWT.username, super_user: decodedJWT.super_user }, { key: keys.privateKey, passphrase: keys.passphrase }, {
297
+ const refreshedPayload = {
298
+ username: decodedJWT.username,
299
+ super_user: decodedJWT.super_user,
300
+ };
301
+ // Refreshing a scoped refresh token must not widen back to the full role.
302
+ (0, operationScope_ts_1.attachScopeToToken)(refreshedPayload, decodedJWT.operations);
303
+ const operationToken = jsonwebtoken_1.default.sign(refreshedPayload, { key: keys.privateKey, passphrase: keys.passphrase }, {
218
304
  expiresIn: OPERATION_TOKEN_TIMEOUT,
219
305
  algorithm: RSA_ALGORITHM,
220
306
  subject: TOKEN_TYPE.OPERATION,
221
307
  });
222
308
  return { operation_token: operationToken };
223
309
  }
310
+ /**
311
+ * Signs a standalone operation token. No refresh token, no write to the user record.
312
+ *
313
+ * createTokens cannot serve this: it overwrites hdb_user.refresh_token as a side effect, silently
314
+ * revoking whatever credential that user already held (#2018). The OIDC exchange (#2171) exists so
315
+ * CI holds no durable credential at all, so minting one on its behalf would defeat the point.
316
+ *
317
+ * The caller is responsible for having established that the user exists, is active, and is entitled
318
+ * to this token — nothing here re-checks that.
319
+ */
320
+ async function createOperationToken(user, expiresIn) {
321
+ const keys = await getJWTRSAKeys();
322
+ const payload = {
323
+ username: user.username,
324
+ super_user: user.super_user,
325
+ };
326
+ // A narrowing scope, never a grant: verifyPerms intersects it with the user's role. An empty scope
327
+ // (deny-all) is preserved rather than dropped — attachScopeToToken carries any array, which is
328
+ // what keeps this from failing open.
329
+ (0, operationScope_ts_1.attachScopeToToken)(payload, user.operations);
330
+ // Unconditional, because every token this function mints is minted without a password — the
331
+ // caller vouched for the user instead. That is precisely the credential that must not be able to
332
+ // trade itself for a longer-lived one, whether or not a scope narrows it.
333
+ (0, credentialProvenance_ts_1.markTokenAsWorkloadIdentity)(payload);
334
+ return jsonwebtoken_1.default.sign(payload, { key: keys.privateKey, passphrase: keys.passphrase }, {
335
+ expiresIn,
336
+ algorithm: RSA_ALGORITHM,
337
+ subject: TOKEN_TYPE.OPERATION,
338
+ });
339
+ }
224
340
  async function validateOperationToken(token) {
225
341
  return validateToken(token, TOKEN_TYPE.OPERATION);
226
342
  }
@@ -238,29 +354,94 @@ async function validateLoginToken(token) {
238
354
  async function validateToken(token, tokenType) {
239
355
  try {
240
356
  const keys = await getJWTRSAKeys();
241
- const tokenVerified = jsonwebtoken_1.default.verify(token, keys.publicKey, {
242
- algorithms: [RSA_ALGORITHM],
243
- subject: tokenType,
244
- });
357
+ assertUsableVerificationKey(keys.publicKey);
358
+ // The OPERATION type also accepts scoped tokens, so the subject is checked after
359
+ // verification rather than pinned in the verify options.
360
+ const tokenVerified = jsonwebtoken_1.default.verify(token, keys.publicKey, tokenType === TOKEN_TYPE.OPERATION
361
+ ? { algorithms: [RSA_ALGORITHM] }
362
+ : { algorithms: [RSA_ALGORITHM], subject: tokenType });
363
+ if (tokenType === TOKEN_TYPE.OPERATION && tokenVerified.sub === TOKEN_TYPE.SCOPED) {
364
+ return buildUserFromScopedToken(tokenVerified);
365
+ }
366
+ if (tokenVerified.sub !== tokenType) {
367
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.INVALID_TOKEN, HTTP_STATUS_CODES.UNAUTHORIZED);
368
+ }
245
369
  // If a role is present, it means the token is not an operation token. The validation of
246
370
  // the token will happen in the respective function/component that uses the token.
247
371
  if (tokenVerified.role) {
248
- throw new Error('Invalid token');
372
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.INVALID_TOKEN, HTTP_STATUS_CODES.UNAUTHORIZED);
249
373
  }
250
374
  const user = await (0, user_ts_1.findAndValidateUser)(tokenVerified.username, undefined, false);
251
375
  if (tokenType === TOKEN_TYPE.REFRESH && !password.validate(user.refresh_token, token)) {
252
- throw new Error('Invalid token');
376
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.INVALID_TOKEN, HTTP_STATUS_CODES.UNAUTHORIZED);
253
377
  }
378
+ // Surfaced as `tokenOperations` rather than merged into role.permission.operations: that field
379
+ // is not purely narrowing (verifyPerms gate 2 treats an explicit SU-only listing as a grant),
380
+ // so merging a token scope into it could widen. verifyPerms intersects this separately, ahead
381
+ // of every bypass.
382
+ (0, operationScope_ts_1.attachScopeToUser)(user, tokenVerified.operations);
383
+ // Provenance rides the same lift: the claim is signed, so a caller cannot strip it to look
384
+ // like a password-minted principal at createTokens.
385
+ (0, credentialProvenance_ts_1.attachWorkloadIdentityToUser)(user, tokenVerified[credentialProvenance_ts_1.WORKLOAD_IDENTITY_CLAIM]);
254
386
  return user;
255
387
  }
256
388
  catch (err) {
257
389
  harper_logger_ts_1.default.warn(err);
258
390
  if (err?.name === 'TokenExpiredError') {
259
- throw new hdbError_ts_1.ClientError(AUTHENTICATION_ERROR_MSGS.TOKEN_EXPIRED, HTTP_STATUS_CODES.FORBIDDEN);
391
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.TOKEN_EXPIRED, HTTP_STATUS_CODES.FORBIDDEN);
260
392
  }
261
- throw new hdbError_ts_1.ClientError(AUTHENTICATION_ERROR_MSGS.INVALID_TOKEN, HTTP_STATUS_CODES.UNAUTHORIZED);
393
+ // Only positively classified token failures may cross the route-ownership boundary as rejections.
394
+ if (!isTokenRejection(err))
395
+ throw err;
396
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.INVALID_TOKEN, HTTP_STATUS_CODES.UNAUTHORIZED);
397
+ }
398
+ }
399
+ const JWT_REJECTION_ERROR_NAMES = new Set(['JsonWebTokenError', 'NotBeforeError', 'TokenExpiredError']);
400
+ // jsonwebtoken reports unusable verification keys and bad tokens through the same error type.
401
+ const KEY_MATERIAL_FAULT = /secretOrPublicKey|asymmetric key|PEM routines|^error:/i;
402
+ function isTokenRejection(err) {
403
+ if ((0, credentialRejection_ts_1.isCredentialRejection)(err))
404
+ return true;
405
+ if (!JWT_REJECTION_ERROR_NAMES.has(err?.name))
406
+ return false;
407
+ return !KEY_MATERIAL_FAULT.test(String(err?.message ?? ''));
408
+ }
409
+ function assertUsableVerificationKey(publicKey) {
410
+ if (typeof publicKey !== 'string' || !publicKey.includes('-----BEGIN')) {
411
+ throw new hdbError_ts_1.ServerError(AUTHENTICATION_ERROR_MSGS.NO_ENCRYPTION_KEYS, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
262
412
  }
263
413
  }
414
+ /**
415
+ * Builds the request user for a verified scoped token from its embedded role. No hdb_user lookup:
416
+ * the signed claims are the whole identity. The downgrade is re-applied here as defense-in-depth,
417
+ * so no scoped token — whatever minted it — can ever assert super_user or cluster_user.
418
+ */
419
+ function buildUserFromScopedToken(claims) {
420
+ const embedded = claims.role?.permission;
421
+ if (!embedded || typeof embedded !== 'object' || Array.isArray(embedded) || typeof claims.username !== 'string') {
422
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.INVALID_TOKEN, HTTP_STATUS_CODES.UNAUTHORIZED);
423
+ }
424
+ const permission = { ...embedded, super_user: false, cluster_user: false };
425
+ // Hashed from the server-side downgraded clone (before the _expandedOperations Set is attached),
426
+ // so the memo key reflects the effective permissions — see syntheticRoleName.
427
+ const roleName = (0, impersonation_ts_1.syntheticRoleName)('_scoped_token', permission);
428
+ if (Array.isArray(permission.operations)) {
429
+ permission._expandedOperations = (0, operationPermissions_ts_1.expandOperationsPerms)(permission.operations);
430
+ }
431
+ return {
432
+ username: claims.username,
433
+ active: true,
434
+ _scopedToken: true,
435
+ _mintedBy: claims.minted_by,
436
+ role: {
437
+ permission: permission,
438
+ role: roleName,
439
+ id: roleName,
440
+ __updatedtime__: 0,
441
+ __createdtime__: 0,
442
+ },
443
+ };
444
+ }
264
445
  /**
265
446
  * Decodes a JWT and returns its payload.
266
447
  * @param {string} token The JWT token to decode.
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAuthentication.js","sourceRoot":"","sources":["../../security/tokenAuthentication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenAuthentication.js","sourceRoot":"","sources":["../../security/tokenAuthentication.ts"],"names":[],"mappings":"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"}
@@ -82,6 +82,7 @@ const Server_ts_1 = require("../server/Server.js");
82
82
  const terms = __importStar(require("../utility/hdbTerms.js"));
83
83
  const operationPermissions_ts_1 = require("../utility/operationPermissions.js");
84
84
  const superUserGuard_ts_1 = require("./superUserGuard.js");
85
+ const credentialRejection_ts_1 = require("./credentialRejection.js");
85
86
  Server_ts_1.server.getUser = (username, password) => {
86
87
  return findAndValidateUser(username, password, password != null);
87
88
  };
@@ -349,10 +350,10 @@ async function findAndValidateUser(username, pw, validatePassword = true) {
349
350
  if (!userTmp) {
350
351
  if (!validatePassword)
351
352
  return { username };
352
- throw new hdbError_ts_1.ClientError(AUTHENTICATION_ERROR_MSGS.GENERIC_AUTH_FAIL, HTTP_STATUS_CODES.UNAUTHORIZED);
353
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.GENERIC_AUTH_FAIL, HTTP_STATUS_CODES.UNAUTHORIZED);
353
354
  }
354
355
  if (userTmp && !userTmp.active)
355
- throw new hdbError_ts_1.ClientError(AUTHENTICATION_ERROR_MSGS.USER_INACTIVE, HTTP_STATUS_CODES.UNAUTHORIZED);
356
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.USER_INACTIVE, HTTP_STATUS_CODES.UNAUTHORIZED);
356
357
  const user = {
357
358
  active: userTmp.active,
358
359
  username: userTmp.username,
@@ -377,7 +378,7 @@ async function findAndValidateUser(username, pw, validatePassword = true) {
377
378
  if (validated === true)
378
379
  passwordHashCache.set(pw, userTmp.password);
379
380
  else
380
- throw new hdbError_ts_1.ClientError(AUTHENTICATION_ERROR_MSGS.GENERIC_AUTH_FAIL, HTTP_STATUS_CODES.UNAUTHORIZED);
381
+ throw (0, credentialRejection_ts_1.credentialRejectionError)(AUTHENTICATION_ERROR_MSGS.GENERIC_AUTH_FAIL, HTTP_STATUS_CODES.UNAUTHORIZED);
381
382
  }
382
383
  }
383
384
  return user;
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../security/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../security/user.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ type Acknowledgement = {
39
39
  acknowledge?: () => any;
40
40
  };
41
41
  declare class SubscriptionsSession {
42
- listener: (message: any, subscription: any, timestamp: any, qos: any) => any;
42
+ listener: (topic: any, message: any, messageId: any, subscription: any, version?: any) => any;
43
43
  sessionId: any;
44
44
  user: any;
45
45
  request: any;
@@ -57,7 +57,7 @@ declare class SubscriptionsSession {
57
57
  removeSubscription(topic: any): Promise<boolean>;
58
58
  publish(message: any, data: any): Promise<any>;
59
59
  createContext(): any;
60
- setListener(listener: (message: any) => any): void;
60
+ setListener(listener: (topic: any, message: any, messageId: any, subscription: any, version?: any) => any): void;
61
61
  disconnect(clientTerminated: any): void;
62
62
  receivedPacket(): void;
63
63
  }
@@ -35,6 +35,24 @@ function getDurableSession() {
35
35
  return _DurableSession;
36
36
  }
37
37
  let _LastWill;
38
+ /**
39
+ * A scoped token's only revocation is expiry, so its will must not publish past it. Keyed off the
40
+ * persisted will principal (not any live session user) so both will paths agree on one source.
41
+ * Fails closed: a scoped will with no recorded expiry is treated as expired rather than published.
42
+ */
43
+ function isWillFromExpiredScopedToken(will) {
44
+ const user = will?.user;
45
+ if (!user?._scopedToken)
46
+ return false;
47
+ return !user.authExpiresAt || user.authExpiresAt * 1000 <= Date.now();
48
+ }
49
+ /** Drops the runtime-only pre-expanded operations Set so the permission set is storage-safe. */
50
+ function stripRuntimePermissionState(permission) {
51
+ if (!permission || typeof permission !== 'object')
52
+ return permission;
53
+ const { _expandedOperations, ...durable } = permission;
54
+ return durable;
55
+ }
38
56
  function getLastWill() {
39
57
  if (!_LastWill) {
40
58
  _LastWill = (0, databases_ts_1.table)({
@@ -59,15 +77,28 @@ if ((0, manageThreads_js_1.getWorkerIndex)() === 0) {
59
77
  for await (const will of getLastWill().search({})) {
60
78
  const data = will.data;
61
79
  const message = { ...will };
62
- if (message.user?.username)
63
- message.user = await Server_ts_1.server.getUser(message.user.username);
64
80
  try {
65
- await publishMessage(message, data, message);
81
+ if (message.user?._scopedToken) {
82
+ // A scoped token's username is attribution only; never rehydrate it by name (that could
83
+ // substitute a real principal). The will carries the token's own downgraded role.
84
+ if (!isWillFromExpiredScopedToken(message)) {
85
+ await publishMessage(message, data, message);
86
+ }
87
+ else
88
+ (0, harper_logger_ts_1.warn)('Dropping will from an expired scoped token', data);
89
+ }
90
+ else {
91
+ if (message.user?.username)
92
+ message.user = await Server_ts_1.server.getUser(message.user.username);
93
+ await publishMessage(message, data, message);
94
+ }
95
+ await getLastWill().delete(will.id);
66
96
  }
67
97
  catch {
98
+ // One will's publish/delete failure must not abort replay of the rest; the row stays and
99
+ // is retried on the next restart.
68
100
  (0, harper_logger_ts_1.warn)('Failed to publish will', data);
69
101
  }
70
- getLastWill().delete(will.id);
71
102
  }
72
103
  })();
73
104
  }
@@ -118,7 +149,22 @@ async function getSession({ clientId: sessionId, user, clean: nonDurable, proper
118
149
  }
119
150
  if (will) {
120
151
  will.id = sessionId;
121
- will.user = { username: user?.username };
152
+ // A scoped-token bearer's will must carry the token's own role and expiry: its username is
153
+ // attribution only and cannot be rehydrated from hdb_user at replay time. Persist only the
154
+ // durable permission fields — not the runtime-only _expandedOperations Set, which is rebuilt
155
+ // on read and would not round-trip through storage.
156
+ will.user = user?._scopedToken
157
+ ? {
158
+ username: user.username,
159
+ _scopedToken: true,
160
+ authExpiresAt: user.authExpiresAt,
161
+ role: user.role && {
162
+ role: user.role.role,
163
+ id: user.role.id,
164
+ permission: stripRuntimePermissionState(user.role.permission),
165
+ },
166
+ }
167
+ : { username: user?.username };
122
168
  // Must be durably persisted before CONNACK is sent (getSession() resolving is what lets
123
169
  // mqtt.ts send CONNACK). Otherwise a client that connects and then disconnects abruptly
124
170
  // (no DISCONNECT packet) can race ahead of this write: SubscriptionsSession.disconnect()
@@ -306,7 +352,10 @@ class SubscriptionsSession {
306
352
  path = (0, Resources_ts_1.keyArrayToString)(path);
307
353
  if (path == null)
308
354
  path = '';
309
- const result = await this.listener(resourcePath + '/' + path, update.value, messageId, subscriptionRequest);
355
+ // the version is forwarded so the delivery side can tell a store-sourced event (whose
356
+ // value is a fresh object per version) from an app-yielded one that may be a reused
357
+ // mutable envelope — only the former is safe to encode once and share
358
+ const result = await this.listener(resourcePath + '/' + path, update.value, messageId, subscriptionRequest, update.version);
310
359
  if (result === false)
311
360
  break;
312
361
  if (this.awaitingAcks?.size > AWAITING_ACKS_HIGH_WATER_MARK) {
@@ -390,8 +439,11 @@ class SubscriptionsSession {
390
439
  try {
391
440
  if (!clientTerminated) {
392
441
  const will = await getLastWill().get(this.sessionId);
393
- if (will) {
394
- await publishMessage(will, will.data, context);
442
+ if (will && !isWillFromExpiredScopedToken(will)) {
443
+ // A scoped will authorizes under its own embedded role, never the disconnecting
444
+ // session's user (which may be a later same-clientId reconnect).
445
+ const willContext = will.user?._scopedToken ? { ...context, user: will.user } : context;
446
+ await publishMessage(will, will.data, willContext);
395
447
  }
396
448
  }
397
449
  }
@@ -423,8 +475,13 @@ async function publishMessage(message, data, context) {
423
475
  message = { ...message, data, async: true };
424
476
  context.authorize = true;
425
477
  const entry = Resources_ts_1.resources.getMatch(topic, 'mqtt');
426
- if (!entry)
427
- throw new Error(`Can not publish to topic ${topic} as it does not exist, no resource has been defined to handle this topic`);
478
+ if (!entry) {
479
+ // Typed like addSubscription's identical miss, so a protocol layer can map it to a specific
480
+ // code rather than a generic failure.
481
+ const notFoundError = new Error(`Can not publish to topic ${topic} as it does not exist, no resource has been defined to handle this topic`);
482
+ notFoundError.statusCode = 404;
483
+ throw notFoundError;
484
+ }
428
485
  message.url = entry.relativeURL;
429
486
  const target = new RequestTarget_1.RequestTarget(entry.relativeURL);
430
487
  if (entry.params)