@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
@@ -1,3 +1,4 @@
1
+ import PermissionResponseObject from '../security/data_objects/PermissionResponseObject.ts';
1
2
  /**
2
3
  * Register an authorization entry for a dynamically-registered operation (via
3
4
  * server.registerOperation), so it flows through verifyPerms and the role `operations`
@@ -15,14 +16,14 @@ export declare function registerOperationPermission(apiName: string, { requiresS
15
16
  * register throwaway ops and must not leak them into the process-global registries.
16
17
  */
17
18
  export declare function unregisterOperationPermission(apiName: string): void;
19
+ export declare function verifyPermsAST(ast: any, userObject: any, operation: any, apiOperation?: "sql"): any;
18
20
  /**
19
- * Verifies permissions and restrictions for a SQL operation based on the user's assigned role.
20
- * @param ast - The SQL statement in Syntax Tree form.
21
- * @param userObject - The user and role specification
22
- * @param operation - The operation specified in the call.
23
- * @returns {null | PermissionResponseObject} - null if permissions match, errors returned in the PermissionResponseObject
21
+ * Gate 1 of the role `operations` allowlist, callable from every authorization path. The SQL path
22
+ * (chooseOperation → checkASTPermissions) never reaches verifyPerms, so it must call this
23
+ * directly — otherwise an allowlisted role could reach unlisted operations through `sql`.
24
+ * Returns null when allowed (or no allowlist present), a PermissionResponseObject denial otherwise.
24
25
  */
25
- export declare function verifyPermsAST(ast: any, userObject: any, operation: any): any;
26
+ export declare function verifyOperationsAllowlist(requestJson: any, operationFunctionName: string): PermissionResponseObject;
26
27
  /**
27
28
  * Verifies permissions and restrictions for the NoSQL operation based on the user's assigned role.
28
29
  *
@@ -30,7 +31,9 @@ export declare function verifyPermsAST(ast: any, userObject: any, operation: any
30
31
  * @param operation - The name of the operation specified in the request.
31
32
  * @returns { null | PermissionResponseObject } - null if permissions match, errors are consolidated into PermissionResponseObj.
32
33
  */
33
- export declare function verifyPerms(requestJson: any, operation: any, _options?: any): any;
34
+ export declare function verifyPerms(requestJson: any, operation: any, options?: {
35
+ apiOperation?: string;
36
+ }): any;
34
37
  /**
35
38
  * Checks if the user's role has the required permissions for the operation specified.
36
39
  * @param userObject - the hdb_user specified in the request body
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.registerOperationPermission = registerOperationPermission;
40
40
  exports.unregisterOperationPermission = unregisterOperationPermission;
41
41
  exports.verifyPermsAST = verifyPermsAST;
42
+ exports.verifyOperationsAllowlist = verifyOperationsAllowlist;
42
43
  exports.verifyPerms = verifyPerms;
43
44
  exports.hasPermissions = hasPermissions;
44
45
  exports.checkAttributePerms = checkAttributePerms;
@@ -87,6 +88,8 @@ const hdbError_ts_1 = require("../utility/errors/hdbError.js");
87
88
  const regDeprecated = __importStar(require("../resources/registrationDeprecated.js"));
88
89
  const deploymentOperations = __importStar(require("../components/deploymentOperations.js"));
89
90
  const secretOperations = __importStar(require("../components/secretOperations.js"));
91
+ const trustPolicyOperations = __importStar(require("../security/authn/oidc/trustPolicyOperations.js"));
92
+ const tokenExchange = __importStar(require("../security/authn/oidc/tokenExchange.js"));
90
93
  const requiredPermissions = new Map();
91
94
  const DELETE_PERM = 'delete';
92
95
  const INSERT_PERM = 'insert';
@@ -124,6 +127,8 @@ const BULK_OPS = {
124
127
  CSV_FILE_LOAD: 'csvFileLoad',
125
128
  IMPORT_FROM_S3: 'importFromS3',
126
129
  };
130
+ /** The same set, precomputed: `isBulkLoadOperation` runs on every operations authorization. */
131
+ const BULK_OP_NAMES = new Set(Object.values(BULK_OPS));
127
132
  const STRUCTURE_USER_OPS = [
128
133
  schema.createTable.name,
129
134
  schema.createAttribute.name,
@@ -171,6 +176,10 @@ function unregisterOperationPermission(apiName) {
171
176
  requiredPermissions.set(write.insert.name, new permission(false, [INSERT_PERM], terms.OPERATIONS_ENUM.INSERT));
172
177
  requiredPermissions.set(write.update.name, new permission(false, [UPDATE_PERM], terms.OPERATIONS_ENUM.UPDATE));
173
178
  requiredPermissions.set(write.upsert.name, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.UPSERT));
179
+ // Same grants as `upsert`, and the same as REST `PUT` enforces: creating needs insert, replacing an
180
+ // existing record needs update. A full replace can DROP attributes, which is why the
181
+ // attribute-scoped denial below applies to it.
182
+ requiredPermissions.set(write.put.name, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.PUT));
174
183
  requiredPermissions.set(search.searchByConditions.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_CONDITIONS));
175
184
  requiredPermissions.set(search.searchByHash.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_HASH));
176
185
  requiredPermissions.set(search.searchByValue.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_VALUE));
@@ -256,6 +265,15 @@ requiredPermissions.set(secretOperations.revokeSecret.name, new permission(true,
256
265
  requiredPermissions.set(secretOperations.listSecrets.name, new permission(true, [], terms.OPERATIONS_ENUM.LIST_SECRETS));
257
266
  requiredPermissions.set(secretOperations.deleteSecret.name, new permission(true, [], terms.OPERATIONS_ENUM.DELETE_SECRET));
258
267
  requiredPermissions.set(secretOperations.getSecretsPublicKey.name, new permission(true, [], terms.OPERATIONS_ENUM.GET_SECRETS_PUBLIC_KEY));
268
+ // OIDC trust policies (#2171). A policy lets an external CI run authenticate as a Harper user, so
269
+ // these are SU-only; the handlers ALSO enforce super_user directly so they cannot be delegated
270
+ // through a role's `operations` allowlist (gate-2 bypass below).
271
+ requiredPermissions.set(trustPolicyOperations.addOidcTrust.name, new permission(true, [], terms.OPERATIONS_ENUM.ADD_OIDC_TRUST));
272
+ requiredPermissions.set(trustPolicyOperations.listOidcTrust.name, new permission(true, [], terms.OPERATIONS_ENUM.LIST_OIDC_TRUST));
273
+ requiredPermissions.set(trustPolicyOperations.dropOidcTrust.name, new permission(true, [], terms.OPERATIONS_ENUM.DROP_OIDC_TRUST));
274
+ // The exchange is unauthenticated by design — it authenticates its own caller against a trust
275
+ // policy, the way create_authentication_tokens does against a password.
276
+ requiredPermissions.set(tokenExchange.exchangeOidcToken.name, new permission(false, [], terms.OPERATIONS_ENUM.EXCHANGE_OIDC_TOKEN));
259
277
  //Below are functions that are currently open to all roles
260
278
  requiredPermissions.set(regDeprecated.getRegistrationInfo.name, new permission(false, []));
261
279
  requiredPermissions.set(user.userInfo.name, new permission(false, [], terms.OPERATIONS_ENUM.USER_INFO));
@@ -279,6 +297,7 @@ requiredPermissions.set(terms.VALID_SQL_OPS_ENUM.UPDATE, new permission(false, [
279
297
  module.exports = {
280
298
  verifyPerms,
281
299
  verifyPermsAST,
300
+ verifyOperationsAllowlist,
282
301
  verifyBulkLoadAttributePerms,
283
302
  registerOperationPermission,
284
303
  unregisterOperationPermission,
@@ -290,7 +309,77 @@ module.exports = {
290
309
  * @param operation - The operation specified in the call.
291
310
  * @returns {null | PermissionResponseObject} - null if permissions match, errors returned in the PermissionResponseObject
292
311
  */
293
- function verifyPermsAST(ast, userObject, operation) {
312
+ /**
313
+ * Token-scoped narrowing: a minted operation token may carry a subset of what its user's role allows,
314
+ * so one credential can be handed out with less authority than the user has (an OIDC trust policy
315
+ * uses this to scope a single workflow). Returns a denial, or undefined when the scope permits — or
316
+ * when there is no scope, which is every token minted before this existed.
317
+ *
318
+ * Shared by verifyPerms AND verifyPermsAST, and called first in both. Four ways this gets bypassed
319
+ * if it moves or is incomplete:
320
+ *
321
+ * 1. `sql` dispatches to verifyPermsAST, in a branch mutually exclusive with the verifyPerms call
322
+ * (server/serverHelpers/serverUtilities.ts). A gate in only one of them means a token scoped to
323
+ * `get_status` can still run arbitrary SQL against whatever its role can reach.
324
+ * 2. Both functions `return null` early for a super_user — the identity that most needs constraining.
325
+ * 3. verifyPerms' `operations` gate 2 also returns null, treating an explicit listing of an SU-only
326
+ * operation as a deliberate grant.
327
+ * 4. Operations that never reach verifyPerms at all: create_authentication_tokens (NO_AUTH),
328
+ * refresh_operation_token, and impersonation each PRODUCE a new credential or principal, so the
329
+ * scope has to be carried forward there too or a scoped token mints an unscoped one. That carry-
330
+ * forward lives in tokenAuthentication.ts and impersonation.ts, not here.
331
+ *
332
+ * It can only subtract. The scope is deliberately NOT merged into `permission.operations`, because
333
+ * that field is not purely narrowing (see gate 2) — merging into it could widen instead.
334
+ *
335
+ * `apiOperation` MUST be the snake_case API operation the caller actually invoked (`deploy_component`,
336
+ * `sql`, `export_local`, ...) — i.e. `requestJson.operation`, the same namespace the policy's scope is
337
+ * written in. It is emphatically NOT the handler function name: many handlers have no `api_name`
338
+ * mapping (deploy_component → `deployComponent`) and some are shared across operations
339
+ * (`search_by_id`/`search_by_hash`), so resolving the scope name from the handler both denies the
340
+ * feature's own headline op and conflates aliases. Callers pass the real operation.
341
+ */
342
+ function tokenScopeDenial(userObject, apiOperation) {
343
+ // `!= null`, not `!== undefined`: an unscoped policy stores `operations: null`, and expanding a
344
+ // null would throw rather than fall through to the role.
345
+ const tokenOperations = userObject?.tokenOperations;
346
+ if (tokenOperations == null)
347
+ return undefined;
348
+ // `instanceof Set`, not just presence: this memo rides on hdb_user, and a job persists that user
349
+ // into hdb_job.request, where msgpackr round-trips a Set back as a plain Array. Trusting the
350
+ // memo's presence would then call .has() on an Array and throw a TypeError out of the auth gate
351
+ // — still fail-closed, but as a 500 rather than a denial, and only inside a job worker.
352
+ let scopedOps = userObject._expandedTokenOperations;
353
+ if (!(scopedOps instanceof Set)) {
354
+ scopedOps = userObject._expandedTokenOperations = (0, operationPermissions_ts_1.expandOperationsPerms)(tokenOperations);
355
+ }
356
+ if (scopedOps.has(apiOperation))
357
+ return undefined;
358
+ harper_logger_ts_1.default.info(`Operation '${apiOperation}' is outside the scope of the presented token`);
359
+ return new PermissionResponseObject_ts_1.default().handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.OP_NOT_IN_OPERATIONS(apiOperation));
360
+ }
361
+ /**
362
+ * A scope naming `sql` grants the SQL interface, not unrestricted DML through it.
363
+ *
364
+ * `read_only` expands to include `sql` — the group defers DML enforcement to table CRUD permissions
365
+ * (see its note in operationPermissions.ts) — but verifyPermsAST returns null outright for a
366
+ * super_user before any table check runs. Without this, a token scoped to `read_only` could DELETE,
367
+ * which is the one thing that name promises it cannot do.
368
+ *
369
+ * So a write statement additionally requires its matching data operation in scope. That is exactly
370
+ * what separates `read_only` (no insert/update/delete) from `standard_user` (all three), with no
371
+ * need to track which group admitted `sql`. A bare `['sql']` therefore admits SELECT only; name the
372
+ * write operations alongside it to allow more. Anything that is not a recognized SELECT falls
373
+ * through to the same check and is denied unless named, so an unfamiliar statement type fails closed.
374
+ */
375
+ function sqlWriteScopeDenial(userObject, sqlVariant) {
376
+ if (userObject?.tokenOperations == null)
377
+ return undefined;
378
+ if (sqlVariant === terms.VALID_SQL_OPS_ENUM.SELECT)
379
+ return undefined;
380
+ return tokenScopeDenial(userObject, sqlVariant);
381
+ }
382
+ function verifyPermsAST(ast, userObject, operation, apiOperation = terms.OPERATIONS_ENUM.SQL) {
294
383
  //TODO - update these validation checks to use validate.js
295
384
  if (commonUtils.isEmptyOrZeroLength(ast)) {
296
385
  harper_logger_ts_1.default.info('verify_perms_ast has an empty user parameter');
@@ -304,6 +393,14 @@ function verifyPermsAST(ast, userObject, operation) {
304
393
  harper_logger_ts_1.default.info('verify_perms_ast has a null operation parameter');
305
394
  throw (0, hdbError_ts_1.handleHDBError)(new Error());
306
395
  }
396
+ // `operation` here is the SQL statement variant (select/insert/...), not the API operation. The
397
+ // scope is checked against `apiOperation` — the top-level operation the caller invoked, which is
398
+ // `sql` for a direct SQL call but `export_local`/`export_to_s3` for a job whose inner
399
+ // search_operation is SQL. Checking a hardcoded `sql` would let a token scoped only to `sql` start
400
+ // an export that its scope excludes. Ahead of the super_user bypass, as on the NoSQL path.
401
+ const scopeDenial = tokenScopeDenial(userObject, apiOperation) ?? sqlWriteScopeDenial(userObject, operation);
402
+ if (scopeDenial)
403
+ return scopeDenial;
307
404
  try {
308
405
  const bucketModule = require('../sqlTranslator/sql_statement_bucket');
309
406
  const bucket = bucketModule.default || bucketModule;
@@ -371,6 +468,28 @@ function verifyPermsAST(ast, userObject, operation) {
371
468
  throw (0, hdbError_ts_1.handleHDBError)(e);
372
469
  }
373
470
  }
471
+ /**
472
+ * Gate 1 of the role `operations` allowlist, callable from every authorization path. The SQL path
473
+ * (chooseOperation → checkASTPermissions) never reaches verifyPerms, so it must call this
474
+ * directly — otherwise an allowlisted role could reach unlisted operations through `sql`.
475
+ * Returns null when allowed (or no allowlist present), a PermissionResponseObject denial otherwise.
476
+ */
477
+ function verifyOperationsAllowlist(requestJson, operationFunctionName) {
478
+ const rolePermission = requestJson.hdb_user?.role?.permission;
479
+ const allowedOperationsList = rolePermission?.operations;
480
+ if (allowedOperationsList == null)
481
+ return null;
482
+ // _expandedOperations is pre-built at cache-load time (O(1) lookup).
483
+ // Fall back to on-demand expansion for inline-asserted roles (e.g. impersonation via hdb_user in body).
484
+ const allowedOps = rolePermission._expandedOperations ?? (0, operationPermissions_ts_1.expandOperationsPerms)(allowedOperationsList);
485
+ // operationFunctionName is the internal camelCase function name; allowedOps contains snake_case
486
+ // API names. Resolve via the api_name stored on the permission entry (set at registration time).
487
+ const opApiName = requiredPermissions.get(operationFunctionName)?.api_name ?? operationFunctionName;
488
+ if (!allowedOps.has(opApiName)) {
489
+ return new PermissionResponseObject_ts_1.default().handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.OP_NOT_IN_OPERATIONS(opApiName));
490
+ }
491
+ return null;
492
+ }
374
493
  /**
375
494
  * Verifies permissions and restrictions for the NoSQL operation based on the user's assigned role.
376
495
  *
@@ -378,7 +497,7 @@ function verifyPermsAST(ast, userObject, operation) {
378
497
  * @param operation - The name of the operation specified in the request.
379
498
  * @returns { null | PermissionResponseObject } - null if permissions match, errors are consolidated into PermissionResponseObj.
380
499
  */
381
- function verifyPerms(requestJson, operation, _options) {
500
+ function verifyPerms(requestJson, operation, options) {
382
501
  if (requestJson === null ||
383
502
  operation === null ||
384
503
  requestJson.hdb_user === undefined ||
@@ -395,19 +514,61 @@ function verifyPerms(requestJson, operation, _options) {
395
514
  op = operation;
396
515
  }
397
516
  //we need to use the action value, if present, to ensure the correct permission is checked below
398
- let action = requestJson.action;
399
- let operationSchema = requestJson.schema ?? requestJson.database;
517
+ // `action` narrows the required permissions to just that one — `hasPermissions` does it for table
518
+ // permissions and `checkAttributePerms` for attribute permissions — because a bulk load carries
519
+ // `action: insert|update|upsert` and only needs the permission for what it will actually do.
520
+ //
521
+ // Honoured ONLY for a real bulk-load operation. `action` is an unknown-but-accepted key on the
522
+ // shared write validator, so taking it from any request let a caller pick which half of an
523
+ // operation's permissions to be checked against: `{operation:'put', action:'insert'}` from a role
524
+ // with `insert: true, update: false` replaced an existing record, and `action:'update'` created a
525
+ // missing one with no insert permission. `upsert` had the same shape before `put` existed.
526
+ //
527
+ // Both narrowing sites read this one variable, so gating it here covers both. The bulk path is
528
+ // unaffected: `verifyBulkLoadAttributePerms` receives the real action from
529
+ // `bulkLoad.validateChunk`, not from here.
530
+ let action = isBulkLoadOperation(op) ? requestJson.action : undefined;
531
+ // Resolved through the same helper the handlers use (`transformReq` delegates to it), because
532
+ // authorization runs BEFORE `transformReq` and any disagreement about the target means the
533
+ // permissions checked are not the permissions for the write that happens. This used to be a
534
+ // local `schema ?? database`, which diverged from the handlers in two separately exploitable
535
+ // ways: it kept a falsy-but-present `database: 0` instead of defaulting, and it preferred
536
+ // `schema` where the handlers prefer `database` — so a request could be authorized against one
537
+ // database and written to another. With no target resolved at all, `schemaTableMap` stayed empty
538
+ // and `hasPermissions` iterated nothing, authorizing by vacuous truth.
539
+ let operationSchema = commonUtils.resolveTargetDatabase(requestJson);
400
540
  let table = requestJson.table;
401
541
  let schemaTableMap = new Map();
402
- if (operationSchema && table) {
542
+ // `table != undefined`, not truthy: `hdbTable` is `Joi.alternatives(Joi.string(), Joi.number())`
543
+ // (validation/common_validators.ts), so a table named `0` validates and a truthy test drops it
544
+ // from the map — leaving `hasPermissions` nothing to iterate, which authorizes by vacuous truth.
545
+ // The same falsy-vs-nullish distinction the database resolution above turns on.
546
+ if (operationSchema != undefined && table != undefined) {
403
547
  schemaTableMap.set(operationSchema, [table]);
404
548
  }
405
549
  const permsResponse = new PermissionResponseObject_ts_1.default();
550
+ // The top-level API operation the caller invoked — the namespace the policy scope is written in.
551
+ // For a job (export_local/export_to_s3), the dispatcher passes the nested search_operation as
552
+ // requestJson, so requestJson.operation is the *inner* op (e.g. search_by_conditions); the caller
553
+ // threads the real top-level op through `options.apiOperation` so a read-scoped token cannot ride
554
+ // an export. Never `op` (the handler name), which would deny deploy_component and conflate aliases.
555
+ const scopeDenial = tokenScopeDenial(requestJson.hdb_user, options?.apiOperation ?? requestJson.operation);
556
+ if (scopeDenial)
557
+ return scopeDenial;
406
558
  if (commonUtils.isEmptyOrZeroLength(requestJson.hdb_user?.role) ||
407
559
  commonUtils.isEmptyOrZeroLength(requestJson.hdb_user?.role?.permission)) {
408
560
  harper_logger_ts_1.default.info(`User ${requestJson.hdb_user?.username} has no role or permissions. Please assign the user a valid role.`);
409
561
  return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.USER_HAS_NO_PERMS(requestJson.hdb_user?.username));
410
562
  }
563
+ // Gate 1 of the optional `operations` allowlist: when present, only ops explicitly listed (or
564
+ // expanded from a group) are reachable. This must run before EVERY privilege early-return below
565
+ // (super_user, structure_user, system-table allowances) — otherwise a role combining one of
566
+ // those flags with a restrictive allowlist could reach ops outside its list. Gate 2 (the
567
+ // SU-only-op bypass for explicitly listed ops) stays below, after the ambient privilege checks.
568
+ const allowlistDenial = verifyOperationsAllowlist(requestJson, op);
569
+ if (allowlistDenial)
570
+ return allowlistDenial;
571
+ const allowedOperationsList = requestJson.hdb_user?.role?.permission?.operations;
411
572
  const isSuperUser = !!requestJson.hdb_user?.role?.permission?.super_user;
412
573
  const structureUser = requestJson.hdb_user?.role?.permission?.structure_user;
413
574
  // set to true if this operation affects a system table. Only su can read from system tables, but can't update/delete.
@@ -445,36 +606,18 @@ function verifyPerms(requestJson, operation, _options) {
445
606
  //if we get here then error out
446
607
  return permsResponse.handleUnauthorizedItem(`User does not have access to perform '${requestJson.operation}' against schema '${operationSchema}'`);
447
608
  }
448
- // operations is an optional allowlist on the role. When present, it acts as a two-gate check:
449
- // Gate 1 — operation allowlist: only ops explicitly listed (or expanded from a group) are reachable.
450
- // Any unlisted op is denied here, before table CRUD checks even run.
451
- // Gate 2 — SU bypass: if the op passed gate 1 and is normally restricted to super_user, the explicit
452
- // listing is treated as a deliberate admin grant and allowed immediately (return null).
453
- // Non-SU ops that pass gate 1 fall through to the normal table CRUD checks below.
454
- const permission = requestJson.hdb_user?.role?.permission;
455
- const operations = permission?.operations;
456
- if (operations !== undefined) {
457
- // _expandedOperations is pre-built at cache-load time (O(1) lookup).
458
- // Fall back to on-demand expansion for inline-asserted roles (e.g. impersonation via hdb_user in body).
459
- const allowedOps = permission._expandedOperations ?? (0, operationPermissions_ts_1.expandOperationsPerms)(operations);
460
- // op is the internal camelCase function name; allowedOps contains snake_case API names.
461
- // Resolve via the api_name stored on the permission entry (set at registration time).
462
- const opApiName = requiredPermissions.get(op)?.api_name ?? op;
463
- // Gate 1: op not in allowlist — deny regardless of table CRUD permissions.
464
- if (!allowedOps.has(opApiName)) {
465
- return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.OP_NOT_IN_OPERATIONS(opApiName));
466
- }
467
- // Gate 2: op is SU-only but was explicitly granted via operations — allow without super_user.
468
- // Without this, the SU check further below would still deny it even though it passed gate 1.
469
- // TODO: ops registered with both requires_su AND non-empty CRUD perms have their table-level
470
- // CRUD check bypassed here. Should fall through for those instead of returning null
471
- // unconditionally. The managed-backup ops share this shape but self-enforce super_user in their
472
- // handlers/validators (dataLayer/rocksdbBackup.ts requireSuperUser), so they are not delegable
473
- // regardless; get_backup remains the one that relies solely on this gate. Low risk today but
474
- // worth tightening.
475
- if (requiredPermissions.get(op)?.requires_su) {
476
- return null;
477
- }
609
+ // Gate 2 of the `operations` allowlist (gate 1 ran above, before the privilege early-returns):
610
+ // the op passed the allowlist, so if it is normally restricted to super_user, the explicit
611
+ // listing is treated as a deliberate admin grant and allowed immediately (return null).
612
+ // Non-SU ops that passed gate 1 fall through to the normal table CRUD checks below.
613
+ // TODO: ops registered with both requires_su AND non-empty CRUD perms have their table-level
614
+ // CRUD check bypassed here. Should fall through for those instead of returning null
615
+ // unconditionally. The managed-backup ops share this shape but self-enforce super_user in their
616
+ // handlers/validators (dataLayer/rocksdbBackup.ts requireSuperUser), so they are not delegable
617
+ // regardless; get_backup remains the one that relies solely on this gate. Low risk today but
618
+ // worth tightening.
619
+ if (allowedOperationsList !== undefined && requiredPermissions.get(op)?.requires_su) {
620
+ return null;
478
621
  }
479
622
  const fullRolePerms = permsTranslator.getRolePermissions(requestJson.hdb_user?.role);
480
623
  if (requestJson.hdb_user?.role)
@@ -497,6 +640,15 @@ function verifyPerms(requestJson, operation, _options) {
497
640
  }
498
641
  }
499
642
  }
643
+ // Fail closed on an unresolved target. `hasPermissions` iterates `schemaTableMap`, so an empty map
644
+ // authorizes by vacuous truth — the shape of this whole bug class, and of the SQL path's
645
+ // GHSA-5c29-q62v-jrwf, whose fix carries the same backstop. `resolveTargetDatabase` always
646
+ // returns a database, so a named table always populates the map and this is unreachable today; it
647
+ // is here so that a future change to target resolution fails safe instead of silently authorizing
648
+ // everything. That also means no test can cover it, which is the point rather than an omission.
649
+ if (table != undefined && schemaTableMap.size === 0) {
650
+ return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.UNKNOWN_OP_AUTH_ERROR(op, operationSchema, table));
651
+ }
500
652
  let failedPermissions = hasPermissions(requestJson.hdb_user, op, schemaTableMap, permsResponse, action);
501
653
  //check if failedTablePerms are back and return them B/C it will be an op-level permission issue
502
654
  if (failedPermissions) {
@@ -523,8 +675,17 @@ function verifyPerms(requestJson, operation, _options) {
523
675
  requestJson.get_attributes = finalGetAttrs;
524
676
  }
525
677
  }
526
- const recordAttrs = getRecordAttributes(requestJson);
678
+ const recordAttrs = getRecordAttributes(requestJson, op);
527
679
  const attrPermissions = getAttributePermissions(requestJson.hdb_user?.role?.permission, operationSchema, table);
680
+ // A `put` replaces the whole record, so it REMOVES every attribute the request omits — and
681
+ // `checkAttributePerms` below only sees the attributes a request SUPPLIES, so it cannot police
682
+ // those removals. An attribute-scoped role could otherwise erase an attribute it has no `update`
683
+ // permission for by leaving it out. REST closes the same gap in `Table.allowUpdate` by restoring
684
+ // such attributes from the stored record, which needs the stored record; this runs before anything
685
+ // is read, so it denies instead. Roles that scope no attribute are unaffected.
686
+ if (attrPermissions.size > 0 && op === write.put.name) {
687
+ return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.PUT_WITH_ATTRIBUTE_PERMS(operationSchema, table));
688
+ }
528
689
  checkAttributePerms(recordAttrs, attrPermissions, op, table, operationSchema, permsResponse, action);
529
690
  //This result value will be null if no perms issues were found in checkAttributePerms
530
691
  return permsResponse.getPermsResponse();
@@ -695,12 +856,19 @@ function checkAttributePerms(recordAttributes, roleAttributePermissions, operati
695
856
  * @param json - json containing the request
696
857
  * @returns {Set} - all attributes affected by the request statement.
697
858
  */
698
- function getRecordAttributes(json) {
859
+ /** Whether the operation checks attribute permissions per chunk rather than from this request. */
860
+ function isBulkLoadOperation(operationName) {
861
+ return BULK_OP_NAMES.has(operationName);
862
+ }
863
+ function getRecordAttributes(json, operationName) {
699
864
  let affectedAttributes = new Set();
700
865
  try {
701
- //Bulk load operations need to have attr-level permissions checked during the validateChunk step of the operation
702
- // in the bulkLoad.js methods
703
- if (json.action) {
866
+ // Bulk load operations have their attribute permissions checked per chunk instead, in
867
+ // `bulkLoad.validateChunk` — the records aren't in this request. That opt-out is keyed on the
868
+ // OPERATION, never on the caller-supplied `action` field: `action` is an unknown-but-accepted
869
+ // key on the insert/update/upsert validator, so inferring the opt-out from its presence let any
870
+ // direct request skip every attribute check by adding `action: "update"` to the body.
871
+ if (isBulkLoadOperation(operationName)) {
704
872
  return affectedAttributes;
705
873
  }
706
874
  if (json.operation === terms.OPERATIONS_ENUM.SEARCH_BY_CONDITIONS) {
@@ -760,7 +928,10 @@ function getAttributePermissions(rolePerms, operationSchema, table) {
760
928
  }
761
929
  //Some commands do not require a table to be specified. If there is no table, there is likely not
762
930
  // anything attribute permissions needs to check.
763
- if (!operationSchema || !table) {
931
+ // Nullish rather than falsy for the same reason as the map guard in verifyPerms: a table named `0`
932
+ // validates (`hdbTable` accepts a number), and skipping it here means its attribute permissions
933
+ // go unchecked.
934
+ if (operationSchema == undefined || table == undefined) {
764
935
  return roleAttributePermissions;
765
936
  }
766
937
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"operation_authorization.js","sourceRoot":"","sources":["../../utility/operation_authorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation_authorization.js","sourceRoot":"","sources":["../../utility/operation_authorization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Canonicalize an absolute path before it is handed to a native file watch (`fs.watch`, directly or
3
+ * through chokidar).
4
+ *
5
+ * libuv's Windows fs-event callback rebuilds each event's absolute path, expands it with
6
+ * `GetLongPathNameW`, and then asserts the expansion still starts with the directory it stored when
7
+ * the watch was armed. An 8.3 short directory (`C:\Users\RUNNER~1\...`) never survives that
8
+ * comparison, and the assertion aborts the process rather than failing the watch, so a short path
9
+ * reaching a native watch takes down the whole server (harper#2234).
10
+ *
11
+ * Every Windows path is resolved rather than only the ones that look short: `GetLongPathNameW`'s
12
+ * documentation is explicit that a short name need not contain a tilde, and NTFS allows an
13
+ * explicitly assigned one, so any spelling test would leave the abort reachable. `realpathSync` is
14
+ * not a substitute for the `.native` variant — it resolves symlinks but leaves 8.3 names intact.
15
+ *
16
+ * Returns `undefined` when the long form cannot be established, because a path we cannot prove is
17
+ * expanded is exactly the one that must never reach a native watch.
18
+ */
19
+ export declare function canonicalizeWatchPath(watchPath: string, platform?: string): string | undefined;
20
+ /**
21
+ * Watch target for a chokidar/`fs.watch` call: the canonical path, or the original path with
22
+ * `mustPoll`, which callers turn into their polling options. Polling stats the file instead of
23
+ * arming a native watch, so it cannot reach the abort.
24
+ */
25
+ export declare function resolveWatchTarget(watchPath: string): {
26
+ path: string;
27
+ mustPoll: boolean;
28
+ };
29
+ export declare function _resetForTests(): void;