@harperfast/harper 5.3.0-beta.3 → 5.3.0-beta.4

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 (311) hide show
  1. package/bin/cliOperations.ts +25 -3
  2. package/bin/run.ts +18 -0
  3. package/components/Application.ts +52 -78
  4. package/components/DESIGN.md +76 -3
  5. package/components/Scope.ts +10 -4
  6. package/components/anthropic/index.ts +10 -1
  7. package/components/bedrock/index.ts +10 -1
  8. package/components/componentLoader.ts +23 -14
  9. package/components/mcp/tools/operations.ts +3 -1
  10. package/components/ollama/index.ts +10 -1
  11. package/components/openai/index.ts +265 -18
  12. package/components/operations.js +40 -1
  13. package/config/configUtils.ts +3 -19
  14. package/dataLayer/DESIGN.md +29 -5
  15. package/dataLayer/harperBridge/ResourceBridge.ts +39 -3
  16. package/dataLayer/restoreMarker.ts +250 -14
  17. package/dataLayer/schema.ts +2 -7
  18. package/dataLayer/schemaDescribe.ts +10 -0
  19. package/dist/bin/cliOperations.js +28 -3
  20. package/dist/bin/cliOperations.js.map +1 -1
  21. package/dist/bin/run.js +19 -0
  22. package/dist/bin/run.js.map +1 -1
  23. package/dist/components/Application.d.ts +8 -2
  24. package/dist/components/Application.js +43 -69
  25. package/dist/components/Application.js.map +1 -1
  26. package/dist/components/Scope.d.ts +1 -1
  27. package/dist/components/Scope.js +9 -4
  28. package/dist/components/Scope.js.map +1 -1
  29. package/dist/components/anthropic/index.d.ts +0 -10
  30. package/dist/components/anthropic/index.js +9 -1
  31. package/dist/components/anthropic/index.js.map +1 -1
  32. package/dist/components/bedrock/index.d.ts +0 -12
  33. package/dist/components/bedrock/index.js +9 -1
  34. package/dist/components/bedrock/index.js.map +1 -1
  35. package/dist/components/componentLoader.js +23 -14
  36. package/dist/components/componentLoader.js.map +1 -1
  37. package/dist/components/mcp/tools/operations.js +1 -1
  38. package/dist/components/mcp/tools/operations.js.map +1 -1
  39. package/dist/components/ollama/index.d.ts +0 -13
  40. package/dist/components/ollama/index.js +9 -1
  41. package/dist/components/ollama/index.js.map +1 -1
  42. package/dist/components/openai/index.d.ts +11 -15
  43. package/dist/components/openai/index.js +224 -12
  44. package/dist/components/openai/index.js.map +1 -1
  45. package/dist/components/operations.d.ts +9 -0
  46. package/dist/components/operations.js +32 -2
  47. package/dist/components/operations.js.map +1 -1
  48. package/dist/config/configUtils.d.ts +1 -2
  49. package/dist/config/configUtils.js +7 -22
  50. package/dist/config/configUtils.js.map +1 -1
  51. package/dist/dataLayer/harperBridge/ResourceBridge.js +29 -2
  52. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  53. package/dist/dataLayer/restoreMarker.d.ts +25 -3
  54. package/dist/dataLayer/restoreMarker.js +213 -13
  55. package/dist/dataLayer/restoreMarker.js.map +1 -1
  56. package/dist/dataLayer/schema.js +1 -4
  57. package/dist/dataLayer/schema.js.map +1 -1
  58. package/dist/dataLayer/schemaDescribe.js +10 -0
  59. package/dist/dataLayer/schemaDescribe.js.map +1 -1
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/json/systemSchema.json +28 -0
  63. package/dist/resources/DatabaseTransaction.d.ts +21 -1
  64. package/dist/resources/DatabaseTransaction.js +147 -8
  65. package/dist/resources/DatabaseTransaction.js.map +1 -1
  66. package/dist/resources/PrimaryRocksDatabase.js +1 -1
  67. package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
  68. package/dist/resources/Table.d.ts +31 -3
  69. package/dist/resources/Table.js +397 -79
  70. package/dist/resources/Table.js.map +1 -1
  71. package/dist/resources/auditStore.js +16 -10
  72. package/dist/resources/auditStore.js.map +1 -1
  73. package/dist/resources/blob.d.ts +1 -0
  74. package/dist/resources/blob.js +14 -5
  75. package/dist/resources/blob.js.map +1 -1
  76. package/dist/resources/branchDatabase.js +3 -3
  77. package/dist/resources/branchDatabase.js.map +1 -1
  78. package/dist/resources/databaseDropPreparation.d.ts +20 -0
  79. package/dist/resources/databaseDropPreparation.js +106 -0
  80. package/dist/resources/databaseDropPreparation.js.map +1 -0
  81. package/dist/resources/databases.d.ts +26 -21
  82. package/dist/resources/databases.js +1040 -204
  83. package/dist/resources/databases.js.map +1 -1
  84. package/dist/resources/derivedIndexRegistry.d.ts +23 -0
  85. package/dist/resources/derivedIndexRegistry.js +92 -0
  86. package/dist/resources/derivedIndexRegistry.js.map +1 -1
  87. package/dist/resources/derivedIndexRuntime.d.ts +10 -0
  88. package/dist/resources/derivedIndexRuntime.js +136 -25
  89. package/dist/resources/derivedIndexRuntime.js.map +1 -1
  90. package/dist/resources/derivedIndexes.d.ts +39 -0
  91. package/dist/resources/derivedIndexes.js +733 -0
  92. package/dist/resources/derivedIndexes.js.map +1 -0
  93. package/dist/resources/fullTextSchema.d.ts +8 -0
  94. package/dist/resources/fullTextSchema.js +42 -0
  95. package/dist/resources/fullTextSchema.js.map +1 -1
  96. package/dist/resources/fullTextSchemaLifecycle.d.ts +0 -5
  97. package/dist/resources/fullTextSchemaLifecycle.js +0 -9
  98. package/dist/resources/fullTextSchemaLifecycle.js.map +1 -1
  99. package/dist/resources/graphql.js +101 -9
  100. package/dist/resources/graphql.js.map +1 -1
  101. package/dist/resources/indexes/hnswDerivedIndex.d.ts +0 -10
  102. package/dist/resources/indexes/hnswDerivedIndex.js +0 -230
  103. package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -1
  104. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.d.ts +3 -0
  105. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js +57 -8
  106. package/dist/resources/indexes/nativeFullTextDerivedIndexLifecycle.js.map +1 -1
  107. package/dist/resources/models/Models.d.ts +26 -3
  108. package/dist/resources/models/Models.js +256 -13
  109. package/dist/resources/models/Models.js.map +1 -1
  110. package/dist/resources/models/TestBackend.d.ts +3 -1
  111. package/dist/resources/models/TestBackend.js +35 -1
  112. package/dist/resources/models/TestBackend.js.map +1 -1
  113. package/dist/resources/models/analyticsTable.d.ts +2 -2
  114. package/dist/resources/models/analyticsTable.js +4 -2
  115. package/dist/resources/models/analyticsTable.js.map +1 -1
  116. package/dist/resources/models/backendHelpers.d.ts +24 -0
  117. package/dist/resources/models/backendHelpers.js +18 -1
  118. package/dist/resources/models/backendHelpers.js.map +1 -1
  119. package/dist/resources/models/backendRegistry.d.ts +10 -21
  120. package/dist/resources/models/backendRegistry.js +74 -18
  121. package/dist/resources/models/backendRegistry.js.map +1 -1
  122. package/dist/resources/models/bootstrap.d.ts +7 -0
  123. package/dist/resources/models/bootstrap.js +36 -4
  124. package/dist/resources/models/bootstrap.js.map +1 -1
  125. package/dist/resources/models/decideHook.d.ts +33 -0
  126. package/dist/resources/models/decideHook.js +105 -0
  127. package/dist/resources/models/decideHook.js.map +1 -0
  128. package/dist/resources/models/decision.d.ts +64 -0
  129. package/dist/resources/models/decision.js +507 -0
  130. package/dist/resources/models/decision.js.map +1 -0
  131. package/dist/resources/models/decisionStore.d.ts +134 -0
  132. package/dist/resources/models/decisionStore.js +350 -0
  133. package/dist/resources/models/decisionStore.js.map +1 -0
  134. package/dist/resources/models/embedHook.d.ts +66 -8
  135. package/dist/resources/models/embedHook.js +228 -61
  136. package/dist/resources/models/embedHook.js.map +1 -1
  137. package/dist/resources/models/generativeDecision.d.ts +58 -0
  138. package/dist/resources/models/generativeDecision.js +315 -0
  139. package/dist/resources/models/generativeDecision.js.map +1 -0
  140. package/dist/resources/models/types.d.ts +232 -4
  141. package/dist/security/authn/oidc/tokenExchange.js +3 -33
  142. package/dist/security/authn/oidc/tokenExchange.js.map +1 -1
  143. package/dist/security/authn/oidc/tokenUseTable.d.ts +9 -0
  144. package/dist/security/authn/oidc/tokenUseTable.js +28 -0
  145. package/dist/security/authn/oidc/tokenUseTable.js.map +1 -0
  146. package/dist/security/certificateVerification/certificateVerificationSource.d.ts +0 -1
  147. package/dist/security/certificateVerification/certificateVerificationSource.js +3 -3
  148. package/dist/security/certificateVerification/certificateVerificationSource.js.map +1 -1
  149. package/dist/security/certificateVerification/crlVerification.js +77 -165
  150. package/dist/security/certificateVerification/crlVerification.js.map +1 -1
  151. package/dist/security/certificateVerification/types.d.ts +0 -3
  152. package/dist/security/certificateVerification/verificationTables.d.ts +19 -0
  153. package/dist/security/certificateVerification/verificationTables.js +125 -0
  154. package/dist/security/certificateVerification/verificationTables.js.map +1 -0
  155. package/dist/security/certificateVerification/verificationUtils.d.ts +1 -1
  156. package/dist/security/certificateVerification/verificationUtils.js +6 -31
  157. package/dist/security/certificateVerification/verificationUtils.js.map +1 -1
  158. package/dist/security/jsLoader.d.ts +5 -0
  159. package/dist/security/jsLoader.js +8 -0
  160. package/dist/security/jsLoader.js.map +1 -1
  161. package/dist/server/Server.d.ts +1 -0
  162. package/dist/server/Server.js.map +1 -1
  163. package/dist/server/http.js +2 -2
  164. package/dist/server/http.js.map +1 -1
  165. package/dist/server/itc/serverHandlers.js +21 -2
  166. package/dist/server/itc/serverHandlers.js.map +1 -1
  167. package/dist/server/jobs/jobOwnership.d.ts +25 -0
  168. package/dist/server/jobs/jobOwnership.js +127 -0
  169. package/dist/server/jobs/jobOwnership.js.map +1 -0
  170. package/dist/server/jobs/jobProcess.js +9 -2
  171. package/dist/server/jobs/jobProcess.js.map +1 -1
  172. package/dist/server/jobs/jobs.js +18 -5
  173. package/dist/server/jobs/jobs.js.map +1 -1
  174. package/dist/server/loadRootComponents.js +10 -0
  175. package/dist/server/loadRootComponents.js.map +1 -1
  176. package/dist/server/serverHelpers/contentTypes.js +11 -1
  177. package/dist/server/serverHelpers/contentTypes.js.map +1 -1
  178. package/dist/server/serverHelpers/serverHandlers.js +12 -2
  179. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  180. package/dist/server/threads/itc.d.ts +4 -1
  181. package/dist/server/threads/itc.js +29 -6
  182. package/dist/server/threads/itc.js.map +1 -1
  183. package/dist/server/threads/manageThreads.d.ts +12 -4
  184. package/dist/server/threads/manageThreads.js +241 -119
  185. package/dist/server/threads/manageThreads.js.map +1 -1
  186. package/dist/server/threads/threadServer.d.ts +1 -0
  187. package/dist/server/threads/threadServer.js +15 -1
  188. package/dist/server/threads/threadServer.js.map +1 -1
  189. package/dist/server/threads/windowsProcessTree.d.ts +91 -0
  190. package/dist/server/threads/windowsProcessTree.js +361 -0
  191. package/dist/server/threads/windowsProcessTree.js.map +1 -0
  192. package/dist/server/throttle.d.ts +1 -1
  193. package/dist/server/throttle.js +8 -1
  194. package/dist/server/throttle.js.map +1 -1
  195. package/dist/upgrade/directives/5-3-0.js +53 -46
  196. package/dist/upgrade/directives/5-3-0.js.map +1 -1
  197. package/dist/utility/errors/hdbError.d.ts +10 -1
  198. package/dist/utility/errors/hdbError.js +55 -11
  199. package/dist/utility/errors/hdbError.js.map +1 -1
  200. package/dist/utility/fsync.d.ts +2 -0
  201. package/dist/utility/fsync.js +20 -0
  202. package/dist/utility/fsync.js.map +1 -0
  203. package/dist/utility/globalSchema.d.ts +18 -0
  204. package/dist/utility/hdbTerms.d.ts +3 -0
  205. package/dist/utility/hdbTerms.js +3 -0
  206. package/dist/utility/hdbTerms.js.map +1 -1
  207. package/dist/utility/signalling.d.ts +7 -1
  208. package/dist/utility/signalling.js +27 -3
  209. package/dist/utility/signalling.js.map +1 -1
  210. package/dist/utility/when.d.ts +1 -0
  211. package/dist/utility/when.js +21 -0
  212. package/dist/utility/when.js.map +1 -1
  213. package/dist/validation/configValidator.js +30 -3
  214. package/dist/validation/configValidator.js.map +1 -1
  215. package/index.ts +13 -0
  216. package/json/systemSchema.json +28 -0
  217. package/npm-shrinkwrap.json +151 -55
  218. package/package.json +14 -13
  219. package/resources/DESIGN.md +80 -100
  220. package/resources/DatabaseTransaction.ts +157 -10
  221. package/resources/PrimaryRocksDatabase.ts +2 -2
  222. package/resources/Table.ts +494 -101
  223. package/resources/auditStore.ts +18 -10
  224. package/resources/blob.ts +13 -6
  225. package/resources/branchDatabase.ts +3 -3
  226. package/resources/databaseDropPreparation.ts +120 -0
  227. package/resources/databases.ts +1155 -205
  228. package/resources/derivedIndexRegistry.ts +122 -0
  229. package/resources/derivedIndexRuntime.ts +157 -30
  230. package/resources/derivedIndexes.ts +856 -0
  231. package/resources/fullTextSchema.ts +55 -0
  232. package/resources/fullTextSchemaLifecycle.ts +0 -15
  233. package/resources/graphql.ts +107 -12
  234. package/resources/indexes/DESIGN.md +7 -0
  235. package/resources/indexes/hnswDerivedIndex.ts +0 -260
  236. package/resources/indexes/nativeFullTextDerivedIndexLifecycle.ts +72 -9
  237. package/resources/models/DESIGN.md +39 -0
  238. package/resources/models/Models.ts +361 -18
  239. package/resources/models/TestBackend.ts +56 -1
  240. package/resources/models/analyticsTable.ts +6 -4
  241. package/resources/models/backendHelpers.ts +17 -0
  242. package/resources/models/backendRegistry.ts +76 -21
  243. package/resources/models/bootstrap.ts +57 -7
  244. package/resources/models/decideHook.ts +135 -0
  245. package/resources/models/decision.ts +505 -0
  246. package/resources/models/decisionStore.ts +419 -0
  247. package/resources/models/embedHook.ts +272 -55
  248. package/resources/models/generativeDecision.ts +459 -0
  249. package/resources/models/types.ts +231 -4
  250. package/security/DESIGN.md +22 -2
  251. package/security/authn/oidc/tokenExchange.ts +6 -34
  252. package/security/authn/oidc/tokenUseTable.ts +27 -0
  253. package/security/certificateVerification/certificateVerificationSource.ts +2 -3
  254. package/security/certificateVerification/crlVerification.ts +96 -174
  255. package/security/certificateVerification/types.ts +0 -3
  256. package/security/certificateVerification/verificationTables.ts +124 -0
  257. package/security/certificateVerification/verificationUtils.ts +8 -32
  258. package/security/jsLoader.ts +9 -1
  259. package/server/DESIGN.md +27 -1
  260. package/server/Server.ts +2 -1
  261. package/server/http.ts +4 -2
  262. package/server/itc/serverHandlers.js +29 -1
  263. package/server/jobs/jobOwnership.ts +89 -0
  264. package/server/jobs/jobProcess.ts +8 -2
  265. package/server/jobs/jobs.ts +15 -4
  266. package/server/loadRootComponents.js +11 -0
  267. package/server/serverHelpers/contentTypes.ts +13 -1
  268. package/server/serverHelpers/serverHandlers.js +11 -2
  269. package/server/threads/itc.js +32 -6
  270. package/server/threads/manageThreads.js +268 -122
  271. package/server/threads/threadServer.js +13 -1
  272. package/server/threads/windowsProcessTree.ts +409 -0
  273. package/server/throttle.ts +11 -1
  274. package/studio/web/assets/{Chat-CveGbxe6.js → Chat-Bq60AO-g.js} +1 -1
  275. package/studio/web/assets/{FloatingChat-IpCFgYWL.js → FloatingChat-D4560T0p.js} +3 -3
  276. package/studio/web/assets/{apiToken-CS8fFTgL.js → apiToken-BEvbFPMc.js} +1 -1
  277. package/studio/web/assets/{applications-D7F4Jopl.js → applications-CSUVTH4E.js} +1 -1
  278. package/studio/web/assets/{cssMode-Daw_oLPq.js → cssMode-DJyc9mHj.js} +1 -1
  279. package/studio/web/assets/{editor-B3Bs1zWX.js → editor-DDIsQfj6.js} +1 -1
  280. package/studio/web/assets/{html-CDaQwWiE.js → html-g1BJHxLy.js} +1 -1
  281. package/studio/web/assets/{htmlMode-Cb6emO4U.js → htmlMode-Vh5IglCQ.js} +1 -1
  282. package/studio/web/assets/{index-B4g2Fu_2.js → index-DGRAzvO4.js} +5 -5
  283. package/studio/web/assets/{index.lazy-NwhvF1q1.js → index.lazy-vgSic7et.js} +1 -1
  284. package/studio/web/assets/{javascript-2_86gB9Q.js → javascript-5VIolqf7.js} +1 -1
  285. package/studio/web/assets/{jsonMode-DX-i86uQ.js → jsonMode-DG4zQraI.js} +1 -1
  286. package/studio/web/assets/{languageServices-B85WN-Ej.js → languageServices-t5FBpX-i.js} +1 -1
  287. package/studio/web/assets/{lspLanguageFeatures-JCWHIsKg.js → lspLanguageFeatures-DgVnNPh-.js} +1 -1
  288. package/studio/web/assets/{notifications-D9ejzt52.js → notifications-BeWcX04m.js} +1 -1
  289. package/studio/web/assets/{notifications-B7hjKhai.js → notifications-DUGWrWoO.js} +1 -1
  290. package/studio/web/assets/{profile-D8B6No3F.js → profile-BvUEDBzW.js} +1 -1
  291. package/studio/web/assets/{regions-DFazIfTK.js → regions-CB-_2m7M.js} +1 -1
  292. package/studio/web/assets/{register-CwFLviLF.js → register-1w1Zr3b2.js} +2 -2
  293. package/studio/web/assets/{setComponentFile-VnJ80SSJ.js → setComponentFile-z4-qJCbA.js} +1 -1
  294. package/studio/web/assets/{setup-BYQxFy-C.js → setup-CS50uJ4x.js} +2 -2
  295. package/studio/web/assets/{status-Cn5XjmsL.js → status-CI0wOdOE.js} +1 -1
  296. package/studio/web/assets/{toggleHighContrast-g9xIh6TX.js → toggleHighContrast-BsAE4jPe.js} +1 -1
  297. package/studio/web/assets/{tsMode-EC-n0Wqc.js → tsMode-D83Gg3cq.js} +1 -1
  298. package/studio/web/assets/{typescript-DHmM9JCO.js → typescript-Dfp-GrNq.js} +1 -1
  299. package/studio/web/assets/{useEntityRestURL-BUdnVSVv.js → useEntityRestURL-BKetlINf.js} +1 -1
  300. package/studio/web/assets/{workers-BVl9bBB-.js → workers-CCvmDLH3.js} +1 -1
  301. package/studio/web/assets/{xml-C4_sqOkX.js → xml-06pZp00U.js} +1 -1
  302. package/studio/web/assets/{yaml-CVkbDqtW.js → yaml-iSnWMVlV.js} +1 -1
  303. package/studio/web/index.html +1 -1
  304. package/upgrade/directives/5-3-0.ts +61 -54
  305. package/utility/DESIGN.md +5 -1
  306. package/utility/errors/hdbError.ts +56 -8
  307. package/utility/fsync.ts +16 -0
  308. package/utility/hdbTerms.ts +3 -0
  309. package/utility/signalling.ts +33 -4
  310. package/utility/when.ts +22 -0
  311. package/validation/configValidator.ts +36 -7
@@ -3,18 +3,19 @@
3
3
  import {
4
4
  closeSync,
5
5
  existsSync,
6
- fsyncSync,
7
6
  mkdirSync,
8
7
  openSync,
9
8
  readdirSync,
10
9
  readFileSync,
11
10
  renameSync,
11
+ fsyncSync,
12
12
  unlinkSync,
13
13
  writeSync,
14
14
  } from 'node:fs';
15
- import { basename, dirname, join } from 'node:path';
15
+ import { basename, dirname, isAbsolute, join, resolve } from 'node:path';
16
16
  import { createHash } from 'node:crypto';
17
17
  import { tryFileLock, fileLockRelease } from '@harperfast/rocksdb-js';
18
+ import { fsyncTolerantSync, isUnsupportedSyncError } from '../utility/fsync.ts';
18
19
 
19
20
  /**
20
21
  * Restore lock + marker protocol for RocksDB database restores (online operation and offline CLI),
@@ -51,6 +52,11 @@ import { tryFileLock, fileLockRelease } from '@harperfast/rocksdb-js';
51
52
  * content or the complete new content, so a torn write can never replace a valid marker with one
52
53
  * the scan reads as empty (and therefore honors as no block). An intact marker is also never
53
54
  * rewritten at all — see `beginRestore`.
55
+ * - `<meta-dir>/<key>.dropping` — durable database-drop intent for one physical root. Every root in
56
+ * a logical database receives its marker before any root is destroyed. Startup scans block marked
57
+ * roots, and retrying the same drop removes remaining roots and the blob directories recorded for
58
+ * their physical store identities before clearing the markers. The recorded identity is covered by
59
+ * a digest, so damaged marker content fails closed instead of redirecting blob deletion.
54
60
  */
55
61
 
56
62
  // The backtick makes this an illegal database name (schemaRegex rejects `/` and backtick only), so
@@ -58,6 +64,7 @@ import { tryFileLock, fileLockRelease } from '@harperfast/rocksdb-js';
58
64
  export const RESTORE_META_DIR = '`restore`';
59
65
  export const RESTORE_LOCK_SUFFIX = '.lock';
60
66
  export const RESTORING_MARKER_SUFFIX = '.restoring';
67
+ export const DROPPING_MARKER_SUFFIX = '.dropping';
61
68
  // Deliberately not a `.restoring` suffix: `scanBlockedRestores` selects markers by that suffix, and
62
69
  // a half-written temp must never be mistaken for one.
63
70
  const MARKER_TEMP_SUFFIX = '.tmp';
@@ -91,6 +98,10 @@ export function restoringMarkerPath(dbPath: string): string {
91
98
  return join(restoreMetaDir(dbPath), restoreMetaKey(dbPath) + RESTORING_MARKER_SUFFIX);
92
99
  }
93
100
 
101
+ export function droppingMarkerPath(dbPath: string): string {
102
+ return join(restoreMetaDir(dbPath), restoreMetaKey(dbPath) + DROPPING_MARKER_SUFFIX);
103
+ }
104
+
94
105
  export type RestoreState = 'in-progress' | 'incomplete' | 'clear';
95
106
 
96
107
  /**
@@ -104,6 +115,10 @@ export function restoreMarkerPresent(dbPath: string): boolean {
104
115
  return existsSync(restoringMarkerPath(dbPath));
105
116
  }
106
117
 
118
+ export function databaseDropMarkerPresent(dbPath: string): boolean {
119
+ return existsSync(droppingMarkerPath(dbPath));
120
+ }
121
+
107
122
  /** The lock and (optional) marker held by a begin/acquire call, threaded back to complete/abandon. */
108
123
  export type RestoreLock = {
109
124
  /** rocksdb-js file-lock token; non-zero. */
@@ -156,23 +171,25 @@ function fsyncDir(dir: string): void {
156
171
  try {
157
172
  dirFd = openSync(dir, 'r');
158
173
  } catch (error: any) {
159
- if (error.code === 'EPERM' || error.code === 'EISDIR' || error.code === 'ENOTSUP') return;
174
+ if (isUnsupportedSyncError(error)) return;
160
175
  throw error;
161
176
  }
162
177
  try {
163
- fsyncSync(dirFd);
178
+ fsyncTolerantSync(dirFd);
164
179
  } finally {
165
180
  closeSync(dirFd);
166
181
  }
167
182
  }
168
183
 
169
184
  /**
170
- * Take the per-database restore lock without writing a marker. Used by `dropDatabase` so a drop and
171
- * a restore serialize on the same primitive: whichever takes the lock first runs to completion; the
172
- * other gets a 409. Throws (statusCode 409) if the lock is already held.
185
+ * Take the per-database restore lock without writing a marker. Restore and drop build their durable
186
+ * protocols on this shared exclusion primitive. Throws (statusCode 409) if the lock is already held.
173
187
  */
174
188
  export function acquireRestoreLock(dbPath: string): RestoreLock {
175
- mkdirSync(restoreMetaDir(dbPath), { recursive: true });
189
+ const metaDir = restoreMetaDir(dbPath);
190
+ const createMetaDir = !existsSync(metaDir);
191
+ mkdirSync(metaDir, { recursive: true });
192
+ if (createMetaDir) fsyncDir(dirname(metaDir));
176
193
  const token = tryFileLock(restoreLockPath(dbPath));
177
194
  if (token === 0) {
178
195
  const error: any = new Error(`Restore already in progress for database at ${dbPath}`);
@@ -204,24 +221,22 @@ function markerIsIntact(markerPath: string, dbPath: string): boolean {
204
221
  }
205
222
 
206
223
  /**
207
- * Publish the restoring marker atomically. The caller must already hold the restore lock, which is
224
+ * Publish a restore or drop marker atomically. The caller must already hold the restore lock, which is
208
225
  * what makes the fixed temp name safe: only one writer per database can exist at a time, so a temp
209
226
  * left by an earlier crash is this database's own debris and is simply overwritten.
210
227
  */
211
- function publishRestoringMarker(dbPath: string): void {
228
+ function publishMarker(dbPath: string, markerPath: string, content: string): void {
212
229
  const metaDir = restoreMetaDir(dbPath);
213
230
  const tempPath = join(metaDir, restoreMetaKey(dbPath) + MARKER_TEMP_SUFFIX);
214
231
  try {
215
232
  const fd = openSync(tempPath, 'w');
216
233
  try {
217
- // first line is the database directory name so the startup scan can map this marker back to
218
- // the database it blocks without reversing the hashed key
219
- writeSync(fd, `${basename(dbPath)}\nrestore started ${new Date().toISOString()}\n`);
234
+ writeSync(fd, content);
220
235
  fsyncSync(fd);
221
236
  } finally {
222
237
  closeSync(fd);
223
238
  }
224
- renameSync(tempPath, restoringMarkerPath(dbPath));
239
+ renameSync(tempPath, markerPath);
225
240
  } catch (error) {
226
241
  try {
227
242
  unlinkSync(tempPath);
@@ -235,6 +250,14 @@ function publishRestoringMarker(dbPath: string): void {
235
250
  fsyncDir(metaDir);
236
251
  }
237
252
 
253
+ function publishRestoringMarker(dbPath: string): void {
254
+ publishMarker(
255
+ dbPath,
256
+ restoringMarkerPath(dbPath),
257
+ `${basename(dbPath)}\nrestore started ${new Date().toISOString()}\n`
258
+ );
259
+ }
260
+
238
261
  /**
239
262
  * Acquire the per-database restore lock and ensure the restoring marker is in place. Call before any
240
263
  * destructive step. Returns the lock (with `preexisting` set when a marker was already present, so
@@ -254,6 +277,11 @@ export function beginRestore(dbPath: string): RestoreLock {
254
277
  // clear the marker protecting a directory that run had already half-purged.
255
278
  const preexisting = existsSync(markerPath);
256
279
  try {
280
+ if (databaseDropMarkerPresent(dbPath)) {
281
+ const error: any = new Error(`Database at ${dbPath} has an incomplete drop; retry drop_database first`);
282
+ error.statusCode = 409;
283
+ throw error;
284
+ }
257
285
  if (!preexisting || !markerIsIntact(markerPath, dbPath)) publishRestoringMarker(dbPath);
258
286
  // An intact marker is kept, but its durability is not assumed: the publisher that wrote it may
259
287
  // have been interrupted between the rename and this flush, which would leave the directory
@@ -307,6 +335,214 @@ export function clearRestoreMarker(lock: RestoreLock): void {
307
335
  }
308
336
  }
309
337
 
338
+ export type DatabaseDropLock = RestoreLock & {
339
+ databaseName: string;
340
+ blobDatabaseName: string;
341
+ blobPaths: string[];
342
+ };
343
+
344
+ function validDatabaseDropMarkerField(value: string | undefined): value is string {
345
+ if (!value) return false;
346
+ for (const character of value) {
347
+ const code = character.charCodeAt(0);
348
+ if (code <= 0x1f || code === 0x7f) return false;
349
+ }
350
+ return true;
351
+ }
352
+
353
+ function validBlobDatabaseName(databaseName: string | undefined): databaseName is string {
354
+ return (
355
+ validDatabaseDropMarkerField(databaseName) &&
356
+ databaseName.length <= 250 &&
357
+ databaseName !== '.' &&
358
+ databaseName !== '..' &&
359
+ !databaseName.includes('/') &&
360
+ !databaseName.includes('\\') &&
361
+ !databaseName.includes('`')
362
+ );
363
+ }
364
+
365
+ function encodeBlobPaths(blobPaths: string[]): string {
366
+ return Buffer.from(JSON.stringify(blobPaths)).toString('base64url');
367
+ }
368
+
369
+ function decodeBlobPaths(encoded: string | undefined): string[] | undefined {
370
+ try {
371
+ const blobPaths = JSON.parse(Buffer.from(encoded ?? '', 'base64url').toString());
372
+ if (
373
+ !Array.isArray(blobPaths) ||
374
+ !blobPaths.every((blobPath) => typeof blobPath === 'string' && isAbsolute(blobPath))
375
+ )
376
+ return undefined;
377
+ return blobPaths;
378
+ } catch {
379
+ return undefined;
380
+ }
381
+ }
382
+
383
+ function databaseDropMarkerDigest(
384
+ rootName: string,
385
+ databaseName: string,
386
+ blobDatabaseName: string,
387
+ encodedBlobPaths: string
388
+ ): string {
389
+ return createHash('sha256')
390
+ .update('database-drop\0')
391
+ .update(rootName)
392
+ .update('\0')
393
+ .update(databaseName)
394
+ .update('\0')
395
+ .update(blobDatabaseName)
396
+ .update('\0')
397
+ .update(encodedBlobPaths)
398
+ .digest('hex');
399
+ }
400
+
401
+ function readDatabaseDropMarker(
402
+ dbPath: string
403
+ ): { databaseName: string; blobDatabaseName: string; blobPaths: string[] } | undefined {
404
+ try {
405
+ const [rootName, databaseName, blobDatabaseName, encodedBlobPaths, digest] = readFileSync(
406
+ droppingMarkerPath(dbPath),
407
+ 'utf8'
408
+ ).split('\n', 5);
409
+ const blobPaths = decodeBlobPaths(encodedBlobPaths);
410
+ if (
411
+ rootName !== basename(dbPath) ||
412
+ !validDatabaseDropMarkerField(databaseName) ||
413
+ !validBlobDatabaseName(blobDatabaseName) ||
414
+ !blobPaths ||
415
+ digest !== databaseDropMarkerDigest(rootName, databaseName, blobDatabaseName, encodedBlobPaths)
416
+ )
417
+ return undefined;
418
+ return { databaseName, blobDatabaseName, blobPaths };
419
+ } catch {
420
+ return undefined;
421
+ }
422
+ }
423
+
424
+ export function beginDatabaseDrop(
425
+ dbPath: string,
426
+ databaseName: string,
427
+ blobDatabaseName = databaseName,
428
+ blobPaths: string[] = []
429
+ ): DatabaseDropLock {
430
+ const rootName = basename(dbPath);
431
+ blobPaths = [...new Set(blobPaths.map((blobPath) => resolve(blobPath)))];
432
+ if (!validDatabaseDropMarkerField(rootName) || !validDatabaseDropMarkerField(databaseName)) {
433
+ const error: any = new Error(`Database drop marker identity for '${databaseName}' is invalid`);
434
+ error.statusCode = 409;
435
+ throw error;
436
+ }
437
+ if (!validBlobDatabaseName(blobDatabaseName)) {
438
+ const error: any = new Error(`Database drop blob identity for '${databaseName}' is invalid`);
439
+ error.statusCode = 409;
440
+ throw error;
441
+ }
442
+ const markerPath = droppingMarkerPath(dbPath);
443
+ const lock = acquireRestoreLock(dbPath);
444
+ const preexisting = existsSync(markerPath);
445
+ try {
446
+ if (restoreMarkerPresent(dbPath)) {
447
+ const error: any = new Error(
448
+ `Database '${databaseName}' has an incomplete restore; rerun restore_backup before dropping it`
449
+ );
450
+ error.statusCode = 409;
451
+ throw error;
452
+ }
453
+ if (preexisting) {
454
+ const marker = readDatabaseDropMarker(dbPath);
455
+ if (marker?.databaseName !== databaseName) {
456
+ const error: any = new Error(`Database drop marker for '${databaseName}' is invalid at ${markerPath}`);
457
+ error.statusCode = 409;
458
+ throw error;
459
+ }
460
+ blobDatabaseName = marker.blobDatabaseName;
461
+ blobPaths = marker.blobPaths;
462
+ fsyncDir(restoreMetaDir(dbPath));
463
+ } else {
464
+ const encodedBlobPaths = encodeBlobPaths(blobPaths);
465
+ publishMarker(
466
+ dbPath,
467
+ markerPath,
468
+ `${rootName}\n${databaseName}\n${blobDatabaseName}\n${encodedBlobPaths}\n${databaseDropMarkerDigest(rootName, databaseName, blobDatabaseName, encodedBlobPaths)}\ndrop started ${new Date().toISOString()}\n`
469
+ );
470
+ }
471
+ } catch (error) {
472
+ fileLockRelease(lock.token);
473
+ throw error;
474
+ }
475
+ return { ...lock, preexisting, databaseName, blobDatabaseName, blobPaths };
476
+ }
477
+
478
+ function removeDatabaseDropMarker(lock: DatabaseDropLock): void {
479
+ const markerPath = droppingMarkerPath(lock.dbPath);
480
+ if (existsSync(markerPath)) {
481
+ unlinkSync(markerPath);
482
+ fsyncDir(restoreMetaDir(lock.dbPath));
483
+ }
484
+ }
485
+
486
+ export function completeDatabaseDrop(lock: DatabaseDropLock): void {
487
+ try {
488
+ fsyncDir(dirname(lock.dbPath));
489
+ for (const blobPath of lock.blobPaths) {
490
+ const parent = dirname(blobPath);
491
+ if (existsSync(parent)) fsyncDir(parent);
492
+ }
493
+ removeDatabaseDropMarker(lock);
494
+ } finally {
495
+ fileLockRelease(lock.token);
496
+ }
497
+ }
498
+
499
+ export function cancelDatabaseDrop(lock: DatabaseDropLock): void {
500
+ try {
501
+ if (!lock.preexisting) removeDatabaseDropMarker(lock);
502
+ } finally {
503
+ fileLockRelease(lock.token);
504
+ }
505
+ }
506
+
507
+ export function abandonDatabaseDrop(lock: DatabaseDropLock): void {
508
+ fileLockRelease(lock.token);
509
+ }
510
+
511
+ export type BlockedDatabaseDrop = {
512
+ rootPath: string;
513
+ databaseName?: string;
514
+ markerPath: string;
515
+ };
516
+
517
+ export function scanBlockedDatabaseDrops(databasesRoot: string): BlockedDatabaseDrop[] {
518
+ const metaDir = join(databasesRoot, RESTORE_META_DIR);
519
+ if (!existsSync(metaDir)) return [];
520
+ const rootsByMarker = new Map(
521
+ readdirSync(databasesRoot, { withFileTypes: true })
522
+ .filter((entry) => entry.name !== RESTORE_META_DIR)
523
+ .map((entry) => [restoreMetaKey(join(databasesRoot, entry.name)) + DROPPING_MARKER_SUFFIX, entry.name])
524
+ );
525
+ const blocked: BlockedDatabaseDrop[] = [];
526
+ for (const entry of readdirSync(metaDir, { withFileTypes: true })) {
527
+ if (!entry.isFile() || !entry.name.endsWith(DROPPING_MARKER_SUFFIX)) continue;
528
+ const markerPath = join(metaDir, entry.name);
529
+ let rootName = rootsByMarker.get(entry.name);
530
+ if (!rootName) {
531
+ try {
532
+ const [recordedRootName] = readFileSync(markerPath, 'utf8').split('\n', 1);
533
+ if (validDatabaseDropMarkerField(recordedRootName)) rootName = recordedRootName;
534
+ } catch {
535
+ continue;
536
+ }
537
+ }
538
+ if (!rootName) continue;
539
+ const rootPath = join(databasesRoot, rootName);
540
+ if (droppingMarkerPath(rootPath) !== markerPath) continue;
541
+ blocked.push({ rootPath, databaseName: readDatabaseDropMarker(rootPath)?.databaseName, markerPath });
542
+ }
543
+ return blocked;
544
+ }
545
+
310
546
  /**
311
547
  * Scan a databases root's reserved `` `restore` `` metadata directory and report every database
312
548
  * currently blocked from loading. Existing database entries are mapped to markers by their hashed
@@ -14,7 +14,7 @@ import { handleHDBError, ClientError } from '../utility/errors/hdbError.ts';
14
14
  import { HDB_ERROR_MSGS, HTTP_STATUS_CODES } from '../utility/errors/commonErrors.ts';
15
15
 
16
16
  import { SchemaEventMsg } from '../server/threads/itc.js';
17
- import { getDatabases, dropTableMeta, isBranchIdentity } from '../resources/databases.ts';
17
+ import { databaseDropRecoveryPending, getDatabases, dropTableMeta, isBranchIdentity } from '../resources/databases.ts';
18
18
  import { transformReq } from '../utility/common_utils.ts';
19
19
  import { server } from '../server/Server.ts';
20
20
  import { cleanupOrphans } from '../resources/blob.ts';
@@ -184,7 +184,7 @@ export async function dropSchema(dropSchemaObject: any) {
184
184
  transformReq(dropSchemaObject);
185
185
 
186
186
  let invalidSchemaMsg = await schemaMetadataValidator.checkSchemaExists(dropSchemaObject.schema);
187
- if (invalidSchemaMsg) {
187
+ if (invalidSchemaMsg && !databaseDropRecoveryPending(dropSchemaObject.schema)) {
188
188
  throw handleHDBError(
189
189
  new Error(),
190
190
  invalidSchemaMsg,
@@ -196,11 +196,6 @@ export async function dropSchema(dropSchemaObject: any) {
196
196
  }
197
197
 
198
198
  await harperBridge.dropSchema(dropSchemaObject);
199
- // Await cross-worker propagation before returning success so no worker keeps serving the
200
- // dropped schema (#1497).
201
- await signalling.signalSchemaChange(
202
- new SchemaEventMsg(process.pid, dropSchemaObject.operation, dropSchemaObject.schema)
203
- );
204
199
 
205
200
  let response = await server.replication.replicateOperation(dropSchemaObject);
206
201
  response.message = `successfully deleted '${dropSchemaObject.schema}'`;
@@ -162,6 +162,16 @@ async function descTable(describeTableObject: any, attrPerms?: any) {
162
162
  nullable: att.nullable,
163
163
  computed: att.computed ? true : undefined, // only include if computed
164
164
  embed: att.embed ? { source: att.embed.source, model: att.embed.model } : undefined,
165
+ decide: att.decide
166
+ ? {
167
+ source: att.decide.source,
168
+ model: att.decide.model,
169
+ confidence: att.decide.confidence,
170
+ decision: att.decide.decision,
171
+ instructions: att.decide.instructions,
172
+ schema: att.decide.schema,
173
+ }
174
+ : undefined,
165
175
  properties: att.properties
166
176
  ? att.properties.map((prop) => {
167
177
  return { type: prop.type, name: prop.name };
@@ -987,16 +987,23 @@ async function cliOperations(req, skipResponseLog = false) {
987
987
  // once all multipart bytes have flowed through. For SSE deploys, httpRequest resolves
988
988
  // when response headers arrive (streamResponse: true), which happens before the full
989
989
  // upload completes — calling endUpload() here would snap the bar prematurely.
990
+ const { statusCode } = response;
991
+ const failedStatus = statusCode < 200 || (statusCode >= 300 && statusCode !== 304);
992
+ const eventStream = useSse && response.headers['content-type']?.startsWith('text/event-stream');
990
993
  let responseData;
991
- if (useSse && response.headers['content-type']?.startsWith('text/event-stream')) {
994
+ if (eventStream && !failedStatus) {
992
995
  // Consume SSE: render phase events live, capture the final result from the `done`
993
996
  // event (or the error message from the `error` event). The HTTP status stays 200
994
997
  // until end-of-stream; failures are signaled in-band.
995
998
  let finalResult;
996
999
  let sseError;
1000
+ let terminated = false;
1001
+ // Older servers write a result as unnamed frames, with no `done` event.
1002
+ let lastUnnamedData;
997
1003
  for await (const message of (0, sseConsumer_ts_1.parseSSE)(response)) {
998
1004
  renderer?.renderEvent(message);
999
1005
  if (message.event === 'done') {
1006
+ terminated = true;
1000
1007
  try {
1001
1008
  finalResult = JSON.parse(message.data)?.result;
1002
1009
  }
@@ -1005,6 +1012,7 @@ async function cliOperations(req, skipResponseLog = false) {
1005
1012
  }
1006
1013
  }
1007
1014
  else if (message.event === 'error') {
1015
+ terminated = true;
1008
1016
  try {
1009
1017
  sseError = JSON.parse(message.data);
1010
1018
  }
@@ -1012,12 +1020,23 @@ async function cliOperations(req, skipResponseLog = false) {
1012
1020
  sseError = { message: message.data };
1013
1021
  }
1014
1022
  }
1023
+ else if (message.event === 'message') {
1024
+ lastUnnamedData = message.data;
1025
+ }
1015
1026
  }
1016
1027
  if (sseError) {
1017
1028
  const errMsg = sseError.message ?? (typeof sseError === 'object' ? JSON.stringify(sseError) : sseError);
1018
1029
  console.error(`error: ${errMsg}`);
1019
1030
  process.exit(1);
1020
1031
  }
1032
+ if (finalResult === undefined && !terminated && lastUnnamedData !== undefined) {
1033
+ try {
1034
+ finalResult = JSON.parse(lastUnnamedData);
1035
+ }
1036
+ catch {
1037
+ finalResult = { message: lastUnnamedData };
1038
+ }
1039
+ }
1021
1040
  responseData = finalResult ?? { message: 'Deploy completed (no result payload).' };
1022
1041
  }
1023
1042
  else {
@@ -1033,6 +1052,13 @@ async function cliOperations(req, skipResponseLog = false) {
1033
1052
  else {
1034
1053
  bodyText = response.body;
1035
1054
  }
1055
+ // A request refused before its stream started can still arrive labeled as an event stream,
1056
+ // with the error written as an unnamed frame (older servers). Unwrap it; a body with no
1057
+ // frames at all (a proxy's error page) stays as it came.
1058
+ if (eventStream) {
1059
+ for await (const message of (0, sseConsumer_ts_1.parseSSE)(node_stream_1.Readable.from([bodyText])))
1060
+ bodyText = message.data;
1061
+ }
1036
1062
  try {
1037
1063
  responseData = JSON.parse(bodyText);
1038
1064
  }
@@ -1050,8 +1076,7 @@ async function cliOperations(req, skipResponseLog = false) {
1050
1076
  else {
1051
1077
  responseLog = YAML.stringify(responseData).trim();
1052
1078
  }
1053
- const { statusCode } = response;
1054
- if (statusCode < 200 || (statusCode >= 300 && statusCode !== 304)) {
1079
+ if (failedStatus) {
1055
1080
  const errorPrefix = responseLog.startsWith('error:') ? '' : 'error: ';
1056
1081
  console.error(`${errorPrefix}${responseLog}`);
1057
1082
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"cliOperations.js","sourceRoot":"","sources":["../../bin/cliOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cliOperations.js","sourceRoot":"","sources":["../../bin/cliOperations.ts"],"names":[],"mappings":"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"}
package/dist/bin/run.js CHANGED
@@ -65,6 +65,8 @@ const socketRouter_ts_1 = require("../server/threads/socketRouter.js");
65
65
  const manageThreads_js_1 = require("../server/threads/manageThreads.js");
66
66
  const hdbInfoController = __importStar(require("../dataLayer/hdbInfoController.js"));
67
67
  const databases_ts_1 = require("../resources/databases.js");
68
+ const tokenUseTable_ts_1 = require("../security/authn/oidc/tokenUseTable.js");
69
+ const verificationTables_ts_1 = require("../security/certificateVerification/verificationTables.js");
68
70
  const nodeName_ts_1 = require("../server/nodeName.js");
69
71
  const hdbTerms = __importStar(require("../utility/hdbTerms.js"));
70
72
  const processManagement_js_1 = require("../utility/processManagement/processManagement.js");
@@ -206,6 +208,23 @@ async function initialize(calledByInstall = false, calledByMain = false) {
206
208
  }
207
209
  process.exit(1);
208
210
  }
211
+ // Every boot: data already at a 5.3.0 pre-release never runs the 5.3.0 directive (compareVersions sorts
212
+ // those versions above 5.3.0). Before worker threads start, so they load the table with its expiration.
213
+ if (!(0, databases_ts_1.isReadOnlyMode)()) {
214
+ try {
215
+ (0, tokenUseTable_ts_1.declareTokenUseTable)();
216
+ }
217
+ catch (error) {
218
+ harper_logger_ts_1.default.error('Starting without the declared system.hdb_oidc_token_use; the next start retries', error);
219
+ }
220
+ // A node that never verifies a client certificate still holds the rows its peers replicate.
221
+ try {
222
+ await (0, verificationTables_ts_1.ensureCertificateVerificationTables)();
223
+ }
224
+ catch (error) {
225
+ harper_logger_ts_1.default.error('Starting without the declared certificate verification tables; the next start retries', error);
226
+ }
227
+ }
209
228
  // A built-in component only activates when its config key is present. Fresh installs get these
210
229
  // keys from defaultConfig.yaml, but an in-place upgrade carries the old config forward without a
211
230
  // key added in a newer release (harper-pro#585). Ensure them on every boot — idempotent and