@harperfast/harper 5.0.0-beta.6 → 5.0.0-beta.8

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 (97) hide show
  1. package/bin/cliOperations.js +3 -3
  2. package/bin/harper.js +1 -1
  3. package/bin/run.js +2 -2
  4. package/components/Application.ts +6 -3
  5. package/components/ApplicationScope.ts +1 -0
  6. package/components/componentLoader.ts +23 -12
  7. package/components/operations.js +13 -13
  8. package/components/operationsValidation.js +3 -3
  9. package/config/configUtils.js +20 -4
  10. package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
  11. package/dist/bin/cliOperations.js +3 -3
  12. package/dist/bin/cliOperations.js.map +1 -1
  13. package/dist/bin/harper.d.ts +1 -1
  14. package/dist/bin/harper.js +1 -1
  15. package/dist/bin/run.js +2 -2
  16. package/dist/bin/run.js.map +1 -1
  17. package/dist/components/Application.js +7 -2
  18. package/dist/components/Application.js.map +1 -1
  19. package/dist/components/ApplicationScope.d.ts +1 -0
  20. package/dist/components/ApplicationScope.js +1 -0
  21. package/dist/components/ApplicationScope.js.map +1 -1
  22. package/dist/components/componentLoader.js +21 -10
  23. package/dist/components/componentLoader.js.map +1 -1
  24. package/dist/components/operations.js +13 -13
  25. package/dist/components/operations.js.map +1 -1
  26. package/dist/components/operationsValidation.js +3 -3
  27. package/dist/components/operationsValidation.js.map +1 -1
  28. package/dist/config/configUtils.d.ts +6 -0
  29. package/dist/config/configUtils.js +23 -3
  30. package/dist/config/configUtils.js.map +1 -1
  31. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
  32. package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
  33. package/dist/resources/DatabaseTransaction.d.ts +2 -1
  34. package/dist/resources/DatabaseTransaction.js +71 -35
  35. package/dist/resources/DatabaseTransaction.js.map +1 -1
  36. package/dist/resources/Resource.d.ts +2 -0
  37. package/dist/resources/Resource.js +11 -4
  38. package/dist/resources/Resource.js.map +1 -1
  39. package/dist/resources/RocksTransactionLogStore.d.ts +1 -0
  40. package/dist/resources/RocksTransactionLogStore.js +8 -1
  41. package/dist/resources/RocksTransactionLogStore.js.map +1 -1
  42. package/dist/resources/Table.d.ts +6 -6
  43. package/dist/resources/Table.js +15 -10
  44. package/dist/resources/Table.js.map +1 -1
  45. package/dist/resources/analytics/write.js +6 -0
  46. package/dist/resources/analytics/write.js.map +1 -1
  47. package/dist/resources/databases.js +3 -2
  48. package/dist/resources/databases.js.map +1 -1
  49. package/dist/security/jsLoader.js +223 -116
  50. package/dist/security/jsLoader.js.map +1 -1
  51. package/dist/server/REST.js +30 -14
  52. package/dist/server/REST.js.map +1 -1
  53. package/dist/server/http.d.ts +1 -0
  54. package/dist/server/http.js +6 -1
  55. package/dist/server/http.js.map +1 -1
  56. package/dist/server/itc/serverHandlers.js +1 -1
  57. package/dist/server/itc/serverHandlers.js.map +1 -1
  58. package/dist/utility/hdbTerms.d.ts +1 -0
  59. package/dist/utility/hdbTerms.js +1 -0
  60. package/dist/utility/hdbTerms.js.map +1 -1
  61. package/dist/utility/logging/harper_logger.js +24 -1
  62. package/dist/utility/logging/harper_logger.js.map +1 -1
  63. package/dist/utility/logging/readLog.js +2 -2
  64. package/dist/utility/logging/readLog.js.map +1 -1
  65. package/dist/utility/npmUtilities.js +2 -2
  66. package/dist/utility/npmUtilities.js.map +1 -1
  67. package/dist/validation/configValidator.js +18 -8
  68. package/dist/validation/configValidator.js.map +1 -1
  69. package/dist/validation/readLogValidator.js +2 -2
  70. package/dist/validation/readLogValidator.js.map +1 -1
  71. package/package.json +5 -5
  72. package/resources/DatabaseTransaction.ts +67 -32
  73. package/resources/Resource.ts +17 -6
  74. package/resources/RocksTransactionLogStore.ts +8 -1
  75. package/resources/Table.ts +29 -10
  76. package/resources/analytics/write.ts +6 -0
  77. package/resources/databases.ts +3 -2
  78. package/security/jsLoader.ts +258 -129
  79. package/server/REST.ts +32 -13
  80. package/server/http.ts +6 -3
  81. package/server/itc/serverHandlers.js +1 -1
  82. package/static/defaultConfig.yaml +1 -1
  83. package/studio/web/assets/{index-BckVDix4.js → index-CXQsBaYq.js} +5 -5
  84. package/studio/web/assets/{index-BckVDix4.js.map → index-CXQsBaYq.js.map} +1 -1
  85. package/studio/web/assets/{index.lazy-iG1_8dzm.js → index.lazy-C3Ejfvna.js} +2 -2
  86. package/studio/web/assets/{index.lazy-iG1_8dzm.js.map → index.lazy-C3Ejfvna.js.map} +1 -1
  87. package/studio/web/assets/{profile-CzjslUXv.js → profile-BbbbWJCN.js} +2 -2
  88. package/studio/web/assets/{profile-CzjslUXv.js.map → profile-BbbbWJCN.js.map} +1 -1
  89. package/studio/web/assets/{status-BP4TQJDR.js → status-CFe85l8C.js} +2 -2
  90. package/studio/web/assets/{status-BP4TQJDR.js.map → status-CFe85l8C.js.map} +1 -1
  91. package/studio/web/index.html +1 -1
  92. package/utility/hdbTerms.ts +1 -0
  93. package/utility/logging/harper_logger.js +22 -1
  94. package/utility/logging/readLog.js +2 -2
  95. package/utility/npmUtilities.js +2 -2
  96. package/validation/configValidator.js +16 -8
  97. package/validation/readLogValidator.js +2 -2
@@ -9,7 +9,7 @@ module.exports = {
9
9
  installModules,
10
10
  };
11
11
  const { CONFIG_PARAMS } = require("./hdbTerms.js");
12
- const { getConfigValue } = require('../config/configUtils.js');
12
+ const { getConfigPath } = require('../config/configUtils.js');
13
13
  const { nonInteractiveSpawn } = require("../components/Application.js");
14
14
  /**
15
15
  * Executes npm install against specified custom function projects
@@ -25,7 +25,7 @@ async function installModules(req) {
25
25
  throw handleHDBError(validation, validation.message, HTTP_STATUS_CODES.BAD_REQUEST);
26
26
  }
27
27
  let { projects, dryRun } = req;
28
- const componentsRootDirPath = getConfigValue(CONFIG_PARAMS.COMPONENTSROOT);
28
+ const componentsRootDirPath = getConfigPath(CONFIG_PARAMS.COMPONENTSROOT);
29
29
  const responseObject = {};
30
30
  const args = ['install', '--force', '--omit=dev', '--json'];
31
31
  if (dryRun)
@@ -1 +1 @@
1
- {"version":3,"file":"npmUtilities.js","sourceRoot":"","sources":["../../utility/npmUtilities.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACtE,MAAM,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;AAExC,MAAM,SAAS,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;AAChE,MAAM,YAAY,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE3D,MAAM,CAAC,OAAO,GAAG;IAChB,cAAc;CACd,CAAC;AAEF,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AACnD,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAC/D,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAExE;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,GAAG;IAChC,MAAM,kBAAkB,GACvB,iFAAiF;QACjF,qEAAqE,CAAC;IACvE,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE/B,MAAM,qBAAqB,GAAG,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAE3E,MAAM,cAAc,GAAG,EAAE,CAAC;IAE1B,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC;YACJ,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAChF,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAElD,IAAI,CAAC;gBACJ,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACR,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC;gBACJ,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACR,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC;YAC5C,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACP,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;YACnD,CAAC;YACD,SAAS;QACV,CAAC;IACF,CAAC;IAED,YAAY,CAAC,IAAI,CAAC,yCAAyC,cAAc,EAAE,CAAC,CAAC;IAC7E,cAAc,CAAC,OAAO,GAAG,kBAAkB,CAAC;IAC5C,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,MAAM;IAC7B,qHAAqH;IACrH,IAAI,iBAAiB,GAAG,YAAY,CAAC;IACrC,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;SAAM,CAAC;QACP,OAAO,MAAM,CAAC;IACf,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAG;IAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;QAC7B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC3D,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACrC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"npmUtilities.js","sourceRoot":"","sources":["../../utility/npmUtilities.js"],"names":[],"mappings":"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"}
@@ -199,8 +199,18 @@ function doesPathExist(pathToCheck) {
199
199
  return `Specified path ${pathToCheck} does not exist.`;
200
200
  }
201
201
  function validatePath(value, helpers) {
202
- Joi.assert(value, string.pattern(/^[\\/]$|([\\/a-zA-Z_0-9:-]+)+$/, 'directory path'));
203
- const doesExistMsg = doesPathExist(value);
202
+ Joi.assert(value, string.pattern(/^[\\/~]$|([\\/~a-zA-Z_0-9:-]+)+$/, 'directory path'));
203
+ let resolvedValue;
204
+ if (value.startsWith('~/')) {
205
+ resolvedValue = path.join(os.homedir(), value.slice(1));
206
+ }
207
+ else if (path.isAbsolute(value)) {
208
+ resolvedValue = value;
209
+ }
210
+ else {
211
+ resolvedValue = path.join(hdbRoot, value);
212
+ }
213
+ const doesExistMsg = doesPathExist(resolvedValue);
204
214
  if (doesExistMsg) {
205
215
  return helpers.message(doesExistMsg);
206
216
  }
@@ -262,18 +272,18 @@ function setDefaultRoot(parent, helpers) {
262
272
  }
263
273
  switch (configParam) {
264
274
  case 'componentsRoot':
265
- return path.join(hdbRoot, DEFAULT_COMPONENTS_FOLDER);
275
+ return DEFAULT_COMPONENTS_FOLDER;
266
276
  case 'logging.root':
267
- return path.join(hdbRoot, DEFAULT_LOG_FOLDER);
277
+ return DEFAULT_LOG_FOLDER;
268
278
  case 'storage.path':
269
279
  const legacyStoragePath = path.join(hdbRoot, hdbTerms.LEGACY_DATABASES_DIR_NAME);
270
280
  if (fs.existsSync(legacyStoragePath))
271
- return legacyStoragePath;
272
- return path.join(hdbRoot, hdbTerms.DATABASES_DIR_NAME);
281
+ return hdbTerms.LEGACY_DATABASES_DIR_NAME;
282
+ return hdbTerms.DATABASES_DIR_NAME;
273
283
  case 'logging.rotation.path':
274
- return path.join(hdbRoot, DEFAULT_LOG_FOLDER);
284
+ return DEFAULT_LOG_FOLDER;
275
285
  case 'operationsApi.network.domainSocket':
276
- return configParam == null ? null : path.join(hdbRoot, 'operations-server');
286
+ return configParam == null ? null : 'operations-server';
277
287
  default:
278
288
  throw new Error(`Error setting default root for config parameter: ${configParam}. Unrecognized config parameter`);
279
289
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../validation/configValidator.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../validation/configValidator.js"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
- const envMangr = require('../utility/environment/environmentManager.js');
3
2
  const Joi = require('joi');
4
3
  const validator = require('./validationWrapper.js');
5
4
  const moment = require('moment');
6
5
  const fs = require('fs-extra');
7
6
  const path = require('path');
8
7
  const _ = require('lodash');
8
+ const { getConfigPath } = require('../config/configUtils.js');
9
9
  const hdbTerms = require("../utility/hdbTerms.js");
10
10
  const { LOG_LEVELS } = require("../utility/hdbTerms.js");
11
11
  const LOG_DATE_FORMAT = 'YYYY-MM-DD hh:mm:ss';
@@ -34,7 +34,7 @@ function validateReadLogPath(value, helpers) {
34
34
  if (processLogName[value] === undefined) {
35
35
  return helpers.message(`'log_name' '${value}' is invalid.`);
36
36
  }
37
- const logPath = envMangr.get(hdbTerms.HDB_SETTINGS_NAMES.LOG_PATH_KEY);
37
+ const logPath = getConfigPath(hdbTerms.HDB_SETTINGS_NAMES.LOG_PATH_KEY);
38
38
  const logName = value === undefined ? hdbTerms.LOG_NAMES.HDB : value;
39
39
  const readLogPath = logName === hdbTerms.LOG_NAMES.INSTALL
40
40
  ? path.join(INSTALL_LOG_LOCATION, hdbTerms.LOG_NAMES.INSTALL)
@@ -1 +1 @@
1
- {"version":3,"file":"readLogValidator.js","sourceRoot":"","sources":["../../validation/readLogValidator.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readLogValidator.js","sourceRoot":"","sources":["../../validation/readLogValidator.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@harperfast/harper",
3
3
  "description": "Harper is an open-source Node.js performance platform that unifies database, cache, application, and messaging layers into one in-memory process.",
4
- "version": "5.0.0-beta.6",
4
+ "version": "5.0.0-beta.8",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://harper.fast",
7
7
  "bugs": {
@@ -125,7 +125,7 @@
125
125
  "@types/sinon": "^17.0.4",
126
126
  "@types/tar-fs": "^2.0.4",
127
127
  "@typescript-eslint/parser": "^8.48.1",
128
- "axios": "^1.12.2",
128
+ "axios": "1.14.0",
129
129
  "chai": "^6.2.0",
130
130
  "chai-as-promised": "^8.0.2",
131
131
  "chai-integer": "^0.1.0",
@@ -157,7 +157,7 @@
157
157
  "@fastify/cors": "^11.2.0",
158
158
  "@fastify/static": "^9.0.0",
159
159
  "@harperfast/extended-iterable": "^1.0.1",
160
- "@harperfast/rocksdb-js": "^0.1.13",
160
+ "@harperfast/rocksdb-js": "^0.1.14",
161
161
  "@turf/area": "6.5.0",
162
162
  "@turf/boolean-contains": "6.5.0",
163
163
  "@turf/boolean-disjoint": "6.5.0",
@@ -192,7 +192,7 @@
192
192
  "json-bigint-fixes": "1.1.0",
193
193
  "jsonata": "1.8.7",
194
194
  "jsonwebtoken": "9.0.3",
195
- "lmdb": "3.5.2",
195
+ "lmdb": "3.5.3",
196
196
  "lodash": "^4.17.23",
197
197
  "mathjs": "11.12.0",
198
198
  "micromatch": "^4.0.8",
@@ -218,7 +218,7 @@
218
218
  "recursive-iterator": "3.3.0",
219
219
  "semver": "7.7.3",
220
220
  "send": "^1.2.0",
221
- "ses": "^1.14.0",
221
+ "ses": "^1.15.0",
222
222
  "stream-chain": "2.2.5",
223
223
  "stream-json": "1.9.1",
224
224
  "systeminformation": "^5.31.4",
@@ -35,6 +35,7 @@ export type CommitOptions = {
35
35
  timestamp?: number;
36
36
  retries?: number;
37
37
  flush?: boolean;
38
+ transaction?: RocksTransaction;
38
39
  };
39
40
 
40
41
  type ReadTransaction = (LMDBTransaction | RocksTransaction) & {
@@ -116,8 +117,13 @@ export class DatabaseTransaction implements Transaction {
116
117
  if (!this.transaction) return;
117
118
  if (--this.readTxnsUsed === 0) {
118
119
  trackedTxns.delete(this);
119
- this.transaction?.abort();
120
- this.transaction = null;
120
+ if (this.open === TRANSACTION_STATE.LINGERING) {
121
+ // if we have lingering writes, we have to call commit to finish them
122
+ this.commit();
123
+ } else {
124
+ this.transaction?.abort();
125
+ this.transaction = null;
126
+ }
121
127
  }
122
128
  }
123
129
 
@@ -139,9 +145,6 @@ export class DatabaseTransaction implements Transaction {
139
145
  }
140
146
 
141
147
  addWrite(operation: TransactionWrite) {
142
- if (this.open === TRANSACTION_STATE.CLOSED) {
143
- throw new Error('Can not use a transaction that is no longer open');
144
- }
145
148
  this.writes.push(operation);
146
149
  if (!operation.deferSave) {
147
150
  // Setting saved to false means to defer saving
@@ -150,61 +153,94 @@ export class DatabaseTransaction implements Transaction {
150
153
  return operation;
151
154
  }
152
155
 
153
- save(operation: TransactionWrite, reloadEntry = false) {
156
+ save(operation: TransactionWrite, transaction?: RocksTransaction, reloadEntry = false) {
154
157
  let txnTime = this.timestamp;
155
- if (!this.transaction) {
156
- this.transaction = new RocksTransaction(this.db.store as RocksStore);
158
+ transaction ??= this.transaction;
159
+ let immediateCommit = false;
160
+ if (!transaction) {
161
+ transaction = new RocksTransaction(this.db.store as RocksStore);
162
+ if (this.open === TRANSACTION_STATE.OPEN) {
163
+ this.transaction = transaction;
164
+ } else {
165
+ // if it is closed, we have to immediately commit, using our immediate transaction
166
+ immediateCommit = true;
167
+ }
157
168
  if (txnTime) {
158
- this.transaction.setTimestamp(txnTime);
169
+ transaction.setTimestamp(txnTime);
159
170
  }
160
171
  }
161
172
  if (this.retries > 0) {
162
173
  // this is marks the rocks transaction as a retry so we don't write the transaction log again
163
- this.transaction.isRetry = true;
174
+ transaction.isRetry = true;
164
175
  }
165
- if (!txnTime) txnTime = this.timestamp = this.transaction.getTimestamp();
176
+ if (!txnTime) txnTime = this.timestamp = transaction.getTimestamp();
166
177
  if (reloadEntry || operation.entry === undefined) {
167
- operation.entry = operation.store.getEntry(operation.key, { transaction: this.transaction });
178
+ operation.entry = operation.store.getEntry(operation.key, { transaction });
179
+ }
180
+ if (!operation.saved) {
181
+ operation.saved = true;
182
+ // immediately execute in this transaction
183
+ if (operation.validate?.(txnTime) === false) {
184
+ operation.commit = () => {}; // noop if we try again
185
+ return;
186
+ }
187
+ let result: Promise<void> = operation.before?.() as Promise<void>;
188
+ if (result?.then) this.completions.push(result);
189
+ result = operation.beforeIntermediate?.() as Promise<void>;
190
+ if (result?.then) this.completions.push(result);
191
+ }
192
+ operation.commit(txnTime, operation.entry, this.retries > 0, transaction);
193
+ if (immediateCommit) {
194
+ return this.commit({ transaction }); // immediately commit if the harper transaction is closed
168
195
  }
169
- operation.saved = true;
170
- // immediately execute in this transaction
171
- if (operation.validate?.(txnTime) === false) return;
172
- let result: Promise<void> = operation.before?.() as Promise<void>;
173
- if (result?.then) this.completions.push(result);
174
- result = operation.beforeIntermediate?.() as Promise<void>;
175
- if (result?.then) this.completions.push(result);
176
- operation.commit(txnTime, operation.entry, this.retries > 0, this.transaction);
177
196
  }
178
197
 
179
198
  /**
180
199
  * Resolves with information on the timestamp and success of the commit
181
200
  */
182
201
  commit(options: CommitOptions = {}): MaybePromise<CommitResolution> {
202
+ let transaction = options.transaction ?? this.transaction; // we need to preserve this transaction as we might to resurrect it if we have to retry
183
203
  for (let i = 0; i < this.writes.length; i++) {
184
204
  let operation = this.writes[i];
185
205
  if (this.retries === 0 && operation.saved) continue;
186
- this.save(operation, i < this.validated);
206
+ this.save(operation, transaction, i < this.validated);
187
207
  }
188
208
  this.validated = this.writes.length;
189
- return when(this.completions.length > 0 ? Promise.all(this.completions) : null, () => {
209
+ const completions = this.completions;
210
+ if (completions.length > 0) this.completions = []; // reset
211
+ return when(completions.length > 0 ? Promise.all(completions) : null, () => {
212
+ if (this.writes.length > this.validated) {
213
+ // check just in case we got any more transactions while we were waiting, if so just recursively continue to finish the additional writes now
214
+ return this.commit(options);
215
+ }
216
+ this.open = TRANSACTION_STATE.CLOSED;
190
217
  let commitResolution: MaybePromise<void>;
191
218
  if (--this.readTxnsUsed > 0) {
192
219
  // we still have outstanding iterators using the transaction, we can't just commit/abort it, we will still
193
220
  // need to use it
221
+ if (this.writes.length > 0) {
222
+ // if there are outstanding writes, we have to call commit later to finish them
223
+ this.open = TRANSACTION_STATE.LINGERING;
224
+ /* TODO: This is not really the intended behavior though, we want to immediately commit writes, but continue to use
225
+ * the transaction, as there is likely existing references to the transaction in other parts of the codebase,
226
+ * particularly in the query iterator */
227
+ }
228
+ /*
194
229
  commitResolution =
195
230
  this.writes.length > 0
196
- ? this.transaction?.commit({ renewAfterCommit: true /* Try to use RocksDB's CommitAndTryCreateSnapshot */ })
197
- : // don't abort, we still have outstanding reads to complete
231
+ ? transaction?.commit({ renewAfterCommit: true }) // Try to use RocksDB's CommitAndTryCreateSnapshot
232
+ : // don't abort, we still have outstanding reads to complete
198
233
  null;
234
+ */
199
235
  } else {
200
236
  // no more reads need to be performed, just commit/abort based if there are any writes
201
237
  trackedTxns.delete(this);
202
- if (this.transaction) {
238
+ this.transaction = null; // clear transaction so any further operations operate immediately
239
+ if (transaction) {
203
240
  if (this.writes.length > 0) {
204
- commitResolution = this.transaction.commit();
241
+ commitResolution = transaction.commit();
205
242
  } else {
206
- commitResolution = this.transaction.abort();
207
- this.transaction = null; // immediately clear transaction, no need to wait
243
+ commitResolution = transaction.abort();
208
244
  }
209
245
  }
210
246
  }
@@ -220,8 +256,7 @@ export class DatabaseTransaction implements Transaction {
220
256
  const completions = [];
221
257
  return commitResolution.then(
222
258
  () => {
223
- this.transaction.onCommit?.();
224
- this.transaction = null; // the native transaction is done (reset if needed)
259
+ transaction.onCommit?.();
225
260
  if (this.next) {
226
261
  completions.push(this.next.commit(options));
227
262
  }
@@ -260,7 +295,7 @@ export class DatabaseTransaction implements Transaction {
260
295
  // if the transaction failed due to concurrent changes, we need to retry. First record this as an increased risk of contention/retry
261
296
  // for future transactions
262
297
  this.retries++;
263
- return this.commit(options); // try again
298
+ return this.commit({ transaction }); // try again
264
299
  } else throw error;
265
300
  }
266
301
  );
@@ -318,7 +353,7 @@ export class ImmediateTransaction extends DatabaseTransaction {
318
353
  save(transaction: ImmediateTransaction) {
319
354
  if (this.isCommitting) {
320
355
  // if we are in the commit, do the save and force a reload so we get a read within the transaction
321
- super.save(transaction, true);
356
+ super.save(transaction, null, true);
322
357
  } else {
323
358
  this.isCommitting = true;
324
359
  return when(this.commit(), () => {
@@ -683,15 +683,26 @@ function transactional(
683
683
  }
684
684
  }
685
685
  }
686
- function missingMethod(resource, method) {
687
- const error = new ClientError(`The ${resource.constructor.name} does not have a ${method} method implemented`, 405);
688
- error.allow = [];
686
+ const KNOWN_METHODS = ['get', 'head', 'put', 'post', 'delete', 'patch', 'query', 'move', 'copy'];
687
+ type ClientErrorWithMethods = ClientError & { allow: string[]; method: string };
688
+ export function missingMethod(resource: any, method: string) {
689
+ const error = new ClientError(
690
+ `The ${resource.constructor.name} does not have a ${method} method implemented`,
691
+ 405
692
+ ) as ClientErrorWithMethods;
693
+ error.allow = allowedMethods(resource);
689
694
  error.method = method;
690
- for (const method of ['get', 'put', 'post', 'delete', 'query', 'move', 'copy']) {
691
- if (typeof resource[method] === 'function') error.allow.push(method);
692
- }
693
695
  throw error;
694
696
  }
697
+
698
+ export function allowedMethods(resource: any) {
699
+ const allow = [];
700
+ for (const method of KNOWN_METHODS) {
701
+ if (typeof resource[method] === 'function') allow.push(method);
702
+ }
703
+ return allow;
704
+ }
705
+
695
706
  /**
696
707
  * This is responsible for handling a select query parameter/call that selects specific
697
708
  * properties from the returned record(s).
@@ -3,6 +3,7 @@ import { ExtendedIterable } from '@harperfast/extended-iterable';
3
3
  import { Decoder, readAuditEntry, ENTRY_DATAVIEW, AuditRecord, createAuditEntry } from './auditStore.ts';
4
4
  import { isMainThread } from 'node:worker_threads';
5
5
  import { EventEmitter } from 'node:events';
6
+ import { asBinary } from 'lmdb';
6
7
 
7
8
  if (!process.env.HARPER_NO_FLUSH_ON_EXIT && isMainThread) {
8
9
  // we want to be able to test log replay
@@ -81,7 +82,7 @@ export class RocksTransactionLogStore extends EventEmitter {
81
82
 
82
83
  putSync(suggestedKey: any, value: any, options: any) {
83
84
  if (typeof suggestedKey === 'symbol') {
84
- this.rootStore.putSync(suggestedKey, value, options);
85
+ this.rootStore.putSync(suggestedKey, asBinary(value), options);
85
86
  } else {
86
87
  this.put(suggestedKey, value, options);
87
88
  }
@@ -107,6 +108,12 @@ export class RocksTransactionLogStore extends EventEmitter {
107
108
  return this.rootStore.getSync(key);
108
109
  }
109
110
  }
111
+ getBinary(key: any) {
112
+ if (typeof key === 'number') {
113
+ throw new Error('Unsupported binary access by number');
114
+ }
115
+ return this.rootStore.getBinarySync(key);
116
+ }
110
117
  getEntry() {
111
118
  throw new Error('Not implemented');
112
119
  }
@@ -580,10 +580,16 @@ export function makeTable(options) {
580
580
  // dictates not to go to source
581
581
  if (!this.doesExist()) throw new ServerError('Entry is not cached', 504);
582
582
  } else if (resourceOptions?.ensureLoaded) {
583
- const loadingFromSource = ensureLoadedFromSource(this.constructor.source, id, entry, request, this);
583
+ const loadingFromSource = ensureLoadedFromSource(
584
+ this.constructor.source,
585
+ id,
586
+ entry,
587
+ request,
588
+ this,
589
+ target
590
+ );
584
591
  if (loadingFromSource) {
585
592
  txn?.disregardReadTxn(); // this could take some time, so don't keep the transaction open if possible
586
- target.loadedFromSource = true;
587
593
  return when(loadingFromSource, (entry) => {
588
594
  TableResource._updateResource(this, entry);
589
595
  return this;
@@ -988,10 +994,16 @@ export function makeTable(options) {
988
994
  // dictates not to go to source
989
995
  if (!entry?.value) throw new ServerError('Entry is not cached', 504);
990
996
  } else if (ensureLoaded) {
991
- const loadingFromSource = ensureLoadedFromSource(constructor.source, id, entry, context, this);
997
+ const loadingFromSource = ensureLoadedFromSource(
998
+ constructor.source,
999
+ id,
1000
+ entry,
1001
+ context,
1002
+ this,
1003
+ target
1004
+ );
992
1005
  if (loadingFromSource) {
993
1006
  txn?.disregardReadTxn(); // this could take some time, so don't keep the transaction open if possible
994
- target.loadedFromSource = true;
995
1007
  return loadingFromSource.then((entry) => entry?.value);
996
1008
  }
997
1009
  }
@@ -3732,7 +3744,7 @@ export function makeTable(options) {
3732
3744
  }
3733
3745
  }
3734
3746
 
3735
- function ensureLoadedFromSource(source: typeof TableResource, id, entry, context, resource?) {
3747
+ function ensureLoadedFromSource(source: typeof TableResource, id, entry, context, resource?, target?) {
3736
3748
  if (hasSourceGet) {
3737
3749
  let needsSourceData = false;
3738
3750
  if (context.noCache) needsSourceData = true;
@@ -3751,7 +3763,7 @@ export function makeTable(options) {
3751
3763
  recordActionBinary(!needsSourceData, 'cache-hit', tableName);
3752
3764
  }
3753
3765
  if (needsSourceData) {
3754
- const loadingFromSource = getFromSource(source, id, entry, context).then((entry) => {
3766
+ const loadingFromSource = getFromSource(source, id, entry, context, target).then((entry) => {
3755
3767
  if (entry?.value && entry?.value.getRecord?.())
3756
3768
  logger.error?.('Can not assign a record that is already a resource');
3757
3769
  if (context) {
@@ -3921,7 +3933,8 @@ export function makeTable(options) {
3921
3933
  source: typeof TableResource,
3922
3934
  id: Id,
3923
3935
  existingEntry: Entry,
3924
- context: Context
3936
+ context: Context,
3937
+ target?
3925
3938
  ): Promise<Entry> {
3926
3939
  const metadataFlags = existingEntry?.metadataFlags;
3927
3940
 
@@ -3943,9 +3956,13 @@ export function makeTable(options) {
3943
3956
  entry.metadataFlags & (INVALIDATED | EVICTED) ||
3944
3957
  (entry.expiresAt != undefined && entry.expiresAt < Date.now())
3945
3958
  )
3946
- // try again
3947
- whenResolved(getFromSource(source, id, primaryStore.getEntry(id), context));
3948
- else whenResolved(entry);
3959
+ // try again — entry still not valid, need to actually fetch from source
3960
+ whenResolved(getFromSource(source, id, primaryStore.getEntry(id), context, target));
3961
+ else {
3962
+ // served from cache after waiting for another request to resolve
3963
+ if (target) target.loadedFromSource = false;
3964
+ whenResolved(entry);
3965
+ }
3949
3966
  };
3950
3967
  const lockAcquired = primaryStore.tryLock(id, callback);
3951
3968
 
@@ -3957,6 +3974,8 @@ export function makeTable(options) {
3957
3974
  }, LOCK_TIMEOUT);
3958
3975
  });
3959
3976
  }
3977
+ // lock acquired — this request will actually load from source
3978
+ if (target) target.loadedFromSource = true;
3960
3979
 
3961
3980
  const existingRecord = existingEntry?.value;
3962
3981
  // it is important to remember that this is _NOT_ part of the current transaction; nothing is changing
@@ -402,7 +402,12 @@ export async function getDirectorySizeAsync(dirPath: string): Promise<number> {
402
402
  }
403
403
  }
404
404
 
405
+ const DEFAULT_STORAGE_INTERVAL = 10;
406
+ let nodeStorageInterval = DEFAULT_STORAGE_INTERVAL;
407
+ let nodeStorageCycleCount = 0;
408
+
405
409
  async function storeNodeStorageMetric(analyticsTable: Table) {
410
+ if (nodeStorageInterval <= 0 || ++nodeStorageCycleCount % nodeStorageInterval !== 1) return;
406
411
  try {
407
412
  const size = await getDirectorySizeAsync(getHdbBasePath());
408
413
  storeMetric(analyticsTable, {
@@ -689,6 +694,7 @@ if (!parentPort) onMessageByType(ANALYTICS_REPORT_TYPE, recordAnalytics);
689
694
  let scheduledTasksRunning;
690
695
  function startScheduledTasks() {
691
696
  scheduledTasksRunning = true;
697
+ nodeStorageInterval = envGet(CONFIG_PARAMS.ANALYTICS_STORAGEINTERVAL) ?? DEFAULT_STORAGE_INTERVAL;
692
698
  const AGGREGATE_PERIOD = envGet(CONFIG_PARAMS.ANALYTICS_AGGREGATEPERIOD) * 1000;
693
699
  if (AGGREGATE_PERIOD) {
694
700
  setInterval(
@@ -12,6 +12,7 @@ import {
12
12
  import { makeTable } from './Table.ts';
13
13
  import OpenEnvironmentObject from '../utility/lmdb/OpenEnvironmentObject.js';
14
14
  import { CONFIG_PARAMS, LEGACY_DATABASES_DIR_NAME, DATABASES_DIR_NAME } from '../utility/hdbTerms.ts';
15
+ import { getConfigPath } from '../config/configUtils.js';
15
16
  import { _assignPackageExport } from '../globals.js';
16
17
  import { getIndexedValues } from '../utility/lmdb/commonUtility.js';
17
18
  import * as signalling from '../utility/signalling.js';
@@ -176,7 +177,7 @@ export function getDatabases(): Databases {
176
177
  if (process.env.SCHEMAS_DATA_PATH) schemaConfigs.data = { path: process.env.SCHEMAS_DATA_PATH };
177
178
  databasePath =
178
179
  process.env.STORAGE_PATH ||
179
- envGet(CONFIG_PARAMS.STORAGE_PATH) ||
180
+ getConfigPath(CONFIG_PARAMS.STORAGE_PATH) ||
180
181
  (databasePath && (existsSync(databasePath) ? databasePath : join(getHdbBasePath(), LEGACY_DATABASES_DIR_NAME)));
181
182
  if (!databasePath) return;
182
183
 
@@ -694,7 +695,7 @@ export function database({ database: databaseName, table: tableName }) {
694
695
  tablePath ||
695
696
  databaseConfig[databaseName]?.path ||
696
697
  process.env.STORAGE_PATH ||
697
- envGet(CONFIG_PARAMS.STORAGE_PATH) ||
698
+ getConfigPath(CONFIG_PARAMS.STORAGE_PATH) ||
698
699
  (existsSync(join(hdbBasePath, DATABASES_DIR_NAME))
699
700
  ? join(hdbBasePath, DATABASES_DIR_NAME)
700
701
  : join(hdbBasePath, LEGACY_DATABASES_DIR_NAME));