@harperfast/harper-pro 5.0.0-alpha.9 → 5.0.0-beta.2

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 (181) hide show
  1. package/core/.dockerignore +9 -0
  2. package/core/.git-blame-ignore-revs +2 -0
  3. package/core/.github/workflows/create-release.yaml +4 -4
  4. package/core/.github/workflows/integration-tests.yml +12 -10
  5. package/core/.github/workflows/notify-release-published.yaml +1 -1
  6. package/core/.github/workflows/publish-docker.yaml +2 -2
  7. package/core/.github/workflows/publish-npm.yaml +4 -4
  8. package/core/CONTRIBUTING.md +1 -1
  9. package/core/Dockerfile +62 -0
  10. package/core/build-tools/build-studio.sh +12 -0
  11. package/core/build-tools/build.sh +22 -0
  12. package/core/build-tools/download-prebuilds.js +13 -0
  13. package/core/components/Logger.ts +14 -0
  14. package/core/components/Scope.ts +35 -11
  15. package/core/components/componentLoader.ts +27 -10
  16. package/core/components/operations.js +10 -2
  17. package/core/config/configUtils.js +1 -1
  18. package/core/dataLayer/CreateTableObject.js +2 -2
  19. package/core/dataLayer/schema.js +7 -5
  20. package/core/dataLayer/schemaDescribe.js +1 -1
  21. package/core/index.d.ts +11 -6
  22. package/core/index.js +2 -0
  23. package/core/integrationTests/README.md +24 -0
  24. package/core/integrationTests/apiTests/tests/10_otherRoleTests.mjs +6 -6
  25. package/core/integrationTests/apiTests/tests/12_configuration.mjs +1 -1
  26. package/core/integrationTests/apiTests/tests/14_tokenAuth.mjs +2 -2
  27. package/core/integrationTests/apiTests/tests/16_terminologyUpdates.mjs +4 -4
  28. package/core/integrationTests/apiTests/tests/1_environmentSetup.mjs +1 -1
  29. package/core/integrationTests/apiTests/tests/2_dataLoad.mjs +4 -4
  30. package/core/integrationTests/apiTests/tests/3_sqlTests.mjs +3 -3
  31. package/core/integrationTests/apiTests/tests/4_noSqlTests.mjs +12 -12
  32. package/core/integrationTests/apiTests/tests/5_noSqlRoleTesting.mjs +8 -8
  33. package/core/integrationTests/apiTests/tests/7_jobsAndJobRoleTesting.mjs +10 -12
  34. package/core/integrationTests/apiTests/tests/8_deleteTests.mjs +8 -8
  35. package/core/integrationTests/apiTests/tests/9_transactions.mjs +2 -2
  36. package/core/integrationTests/apiTests/utils/search.mjs +1 -1
  37. package/core/integrationTests/apiTests/utils/table.mjs +1 -1
  38. package/core/integrationTests/server/operation-user-rbac.test.ts +1 -1
  39. package/core/integrationTests/server/operations-server.test.ts +1 -1
  40. package/core/integrationTests/server/storage-reclamation.test.ts +1 -1
  41. package/core/integrationTests/utils/README.md +1 -15
  42. package/core/integrationTests/utils/harperLifecycle.ts +33 -21
  43. package/core/package.json +23 -5
  44. package/core/resources/ResourceInterface.ts +1 -1
  45. package/core/resources/Table.ts +26 -11
  46. package/core/resources/analytics/read.ts +33 -26
  47. package/core/resources/analytics/write.ts +3 -7
  48. package/core/resources/databases.ts +29 -18
  49. package/core/resources/search.ts +10 -5
  50. package/core/security/auth.ts +1 -1
  51. package/core/security/jsLoader.ts +302 -83
  52. package/core/security/keys.js +11 -12
  53. package/core/security/user.ts +3 -3
  54. package/core/server/REST.ts +18 -2
  55. package/core/server/Server.ts +2 -1
  56. package/core/server/fastifyRoutes.ts +1 -0
  57. package/core/server/http.ts +13 -9
  58. package/core/server/loadRootComponents.js +1 -0
  59. package/core/server/operationsServer.ts +2 -1
  60. package/core/server/threads/manageThreads.js +49 -35
  61. package/core/static/defaultConfig.yaml +3 -0
  62. package/core/unitTests/apiTests/RESTProperties-test.mjs +2 -2
  63. package/core/unitTests/apiTests/basicREST-test.mjs +2 -2
  64. package/core/unitTests/components/Scope.test.js +54 -16
  65. package/core/unitTests/components/fixtures/testJSWithDeps/child-dir/circular.js +4 -0
  66. package/core/unitTests/components/fixtures/testJSWithDeps/child-dir/in-child-dir.js +4 -0
  67. package/core/unitTests/components/fixtures/testJSWithDeps/child-dir/typestrip.ts +2 -0
  68. package/core/unitTests/components/fixtures/testJSWithDeps/resources.js +43 -0
  69. package/core/unitTests/components/fixtures/testJSWithDeps/test-child-process.js +18 -0
  70. package/core/unitTests/components/globalIsolation.test.js +87 -1
  71. package/core/unitTests/config/configUtils.test.js +1 -260
  72. package/core/unitTests/resources/query.test.js +16 -1
  73. package/core/unitTests/resources/vectorIndex.test.js +1 -1
  74. package/core/unitTests/server/fastifyRoutes/operations.test.js +1 -1
  75. package/core/unitTests/testUtils.js +0 -17
  76. package/core/utility/hdbTerms.ts +3 -0
  77. package/core/utility/installation.ts +2 -5
  78. package/core/utility/lmdb/commonUtility.js +21 -10
  79. package/dist/core/{resources/ResourceInterfaceV2.js → components/Logger.js} +1 -1
  80. package/dist/core/components/Logger.js.map +1 -0
  81. package/dist/core/components/Scope.js +18 -10
  82. package/dist/core/components/Scope.js.map +1 -1
  83. package/dist/core/components/componentLoader.js +17 -10
  84. package/dist/core/components/componentLoader.js.map +1 -1
  85. package/dist/core/components/operations.js +2 -2
  86. package/dist/core/components/operations.js.map +1 -1
  87. package/dist/core/config/configUtils.js +1 -1
  88. package/dist/core/config/configUtils.js.map +1 -1
  89. package/dist/core/dataLayer/CreateTableObject.js +2 -2
  90. package/dist/core/dataLayer/CreateTableObject.js.map +1 -1
  91. package/dist/core/dataLayer/schema.js +6 -5
  92. package/dist/core/dataLayer/schema.js.map +1 -1
  93. package/dist/core/dataLayer/schemaDescribe.js +1 -1
  94. package/dist/core/dataLayer/schemaDescribe.js.map +1 -1
  95. package/dist/core/index.js +2 -0
  96. package/dist/core/index.js.map +1 -1
  97. package/dist/core/resources/Table.js +12 -4
  98. package/dist/core/resources/Table.js.map +1 -1
  99. package/dist/core/resources/analytics/read.js +32 -22
  100. package/dist/core/resources/analytics/read.js.map +1 -1
  101. package/dist/core/resources/analytics/write.js +3 -6
  102. package/dist/core/resources/analytics/write.js.map +1 -1
  103. package/dist/core/resources/databases.js +22 -19
  104. package/dist/core/resources/databases.js.map +1 -1
  105. package/dist/core/resources/search.js +11 -5
  106. package/dist/core/resources/search.js.map +1 -1
  107. package/dist/core/security/auth.js +1 -1
  108. package/dist/core/security/auth.js.map +1 -1
  109. package/dist/core/security/jsLoader.js +265 -73
  110. package/dist/core/security/jsLoader.js.map +1 -1
  111. package/dist/core/security/keys.js +11 -12
  112. package/dist/core/security/keys.js.map +1 -1
  113. package/dist/core/security/user.js +3 -3
  114. package/dist/core/security/user.js.map +1 -1
  115. package/dist/core/server/REST.js +16 -2
  116. package/dist/core/server/REST.js.map +1 -1
  117. package/dist/core/server/Server.js.map +1 -1
  118. package/dist/core/server/fastifyRoutes.js +2 -0
  119. package/dist/core/server/fastifyRoutes.js.map +1 -1
  120. package/dist/core/server/http.js +12 -6
  121. package/dist/core/server/http.js.map +1 -1
  122. package/dist/core/server/loadRootComponents.js +1 -0
  123. package/dist/core/server/loadRootComponents.js.map +1 -1
  124. package/dist/core/server/operationsServer.js +3 -1
  125. package/dist/core/server/operationsServer.js.map +1 -1
  126. package/dist/core/server/threads/manageThreads.js +50 -35
  127. package/dist/core/server/threads/manageThreads.js.map +1 -1
  128. package/dist/core/utility/hdbTerms.js +3 -0
  129. package/dist/core/utility/hdbTerms.js.map +1 -1
  130. package/dist/core/utility/installation.js.map +1 -1
  131. package/dist/core/utility/lmdb/commonUtility.js +20 -13
  132. package/dist/core/utility/lmdb/commonUtility.js.map +1 -1
  133. package/dist/licensing/usageLicensing.js.map +1 -1
  134. package/dist/replication/knownNodes.js +5 -37
  135. package/dist/replication/knownNodes.js.map +1 -1
  136. package/dist/replication/nodeIdMapping.js +2 -35
  137. package/dist/replication/nodeIdMapping.js.map +1 -1
  138. package/dist/replication/replicationConnection.js +15 -6
  139. package/dist/replication/replicationConnection.js.map +1 -1
  140. package/dist/replication/replicator.js +3 -2
  141. package/dist/replication/replicator.js.map +1 -1
  142. package/dist/replication/setNode.js +1 -1
  143. package/dist/replication/setNode.js.map +1 -1
  144. package/dist/security/certificate.js.map +1 -1
  145. package/licensing/usageLicensing.ts +3 -2
  146. package/npm-shrinkwrap.json +303 -282
  147. package/package.json +4 -3
  148. package/replication/knownNodes.ts +3 -2
  149. package/replication/nodeIdMapping.ts +1 -1
  150. package/replication/replicationConnection.ts +33 -8
  151. package/replication/replicator.ts +7 -2
  152. package/replication/setNode.ts +1 -1
  153. package/security/certificate.ts +2 -1
  154. package/studio/web/assets/{index-v3wIpSYx.js → index-CWN9Wp5V.js} +2 -2
  155. package/studio/web/assets/{index-v3wIpSYx.js.map → index-CWN9Wp5V.js.map} +1 -1
  156. package/studio/web/assets/{index-ChCctErQ.js → index-CzghSAn2.js} +2 -2
  157. package/studio/web/assets/{index-ChCctErQ.js.map → index-CzghSAn2.js.map} +1 -1
  158. package/studio/web/assets/{index-Qu8D43wo.js → index-DMDhGP7N.js} +5 -5
  159. package/studio/web/assets/{index-Qu8D43wo.js.map → index-DMDhGP7N.js.map} +1 -1
  160. package/studio/web/assets/{index.lazy-tVSPM7bX.js → index.lazy-C-yDTGUy.js} +2 -2
  161. package/studio/web/assets/{index.lazy-tVSPM7bX.js.map → index.lazy-C-yDTGUy.js.map} +1 -1
  162. package/studio/web/assets/{profiler-C9as4sv-.js → profiler-0fZAOscv.js} +2 -2
  163. package/studio/web/assets/{profiler-C9as4sv-.js.map → profiler-0fZAOscv.js.map} +1 -1
  164. package/studio/web/assets/{react-redux-RRIhZnM6.js → react-redux-BIxqK8O6.js} +2 -2
  165. package/studio/web/assets/{react-redux-RRIhZnM6.js.map → react-redux-BIxqK8O6.js.map} +1 -1
  166. package/studio/web/assets/{startRecording-DYa4zCXV.js → startRecording-Ca3Gf2MY.js} +2 -2
  167. package/studio/web/assets/{startRecording-DYa4zCXV.js.map → startRecording-Ca3Gf2MY.js.map} +1 -1
  168. package/studio/web/index.html +1 -1
  169. package/core/resources/ResourceInterfaceV2.ts +0 -53
  170. package/core/resources/ResourceV2.ts +0 -67
  171. package/core/resources/analytics/profile.ts +0 -109
  172. package/core/unitTests/apiTests/analytics-test.mjs +0 -38
  173. package/core/v1.d.ts +0 -47
  174. package/core/v1.js +0 -38
  175. package/core/v2.d.ts +0 -47
  176. package/core/v2.js +0 -38
  177. package/dist/core/resources/ResourceInterfaceV2.js.map +0 -1
  178. package/dist/core/resources/ResourceV2.js +0 -27
  179. package/dist/core/resources/ResourceV2.js.map +0 -1
  180. package/dist/core/resources/analytics/profile.js +0 -144
  181. package/dist/core/resources/analytics/profile.js.map +0 -1
@@ -17,51 +17,6 @@ const { HTTP_STATUS_CODES } = require('#js/utility/errors/commonErrors');
17
17
 
18
18
  const DIRNAME = __dirname;
19
19
  const HDB_ROOT = path.join(DIRNAME, 'yaml');
20
- const TEST_CERT = path.join(DIRNAME, '../../../hdb/keys/certificate.pem');
21
- const TEST_PRIVATE_KEY = path.join(DIRNAME, '../../../hdb/keys/ca.pem');
22
- const TEST_ARGS = {
23
- HTTP_PORT: '9936',
24
- HTTP_CORS: false,
25
- HTTP_CORSACCESSLIST: '["test1", "test2"]',
26
- HTTP_HEADERSTIMEOUT: '59999',
27
- HTTP_KEEPALIVETIMEOUT: '4999',
28
- TLS_CERTIFICATE: TEST_CERT,
29
- TLS_CERTIFICATEAUTHORITY: null,
30
- TLS_PRIVATEKEY: TEST_PRIVATE_KEY,
31
- HTTP_TIMEOUT: '119999',
32
- COMPONENTSROOT: path.join(DIRNAME, 'test_custom_functions'),
33
- THREADS_COUNT: '4',
34
- THREADS_DEBUG: false,
35
- HTTP_REMOTE_ADDRESS_AFFINITY: false,
36
- LOCALSTUDIO_ENABLED: true,
37
- LOGGING_FILE: false,
38
- LOGGING_LEVEL: 'notify',
39
- LOGGING_ROOT: path.join(DIRNAME, 'testlogging'),
40
- LOGGING_ROTATION_ENABLED: true,
41
- LOGGING_ROTATION_COMPRESS: true,
42
- LOGGING_ROTATION_INTERVAL: '10D',
43
- LOGGING_ROTATION_MAXSIZE: '10M',
44
- LOGGING_ROTATION_PATH: 'lets/send/log/here',
45
- LOGGING_STDSTREAMS: true,
46
- LOGGING_AUDITLOG: true,
47
- AUTHENTICATION_OPERATIONTOKENTIMEOUT: '2d',
48
- AUTHENTICATION_REFRESHTOKENTIMEOUT: '31d',
49
- OPERATIONSAPI_NETWORK_CORS: false,
50
- OPERATIONSAPI_NETWORK_CORSACCESSLIST: '["test1", "test2"]',
51
- OPERATIONSAPI_NETWORK_HEADERSTIMEOUT: '60001',
52
- OPERATIONSAPI_NETWORK_HTTPS: true,
53
- OPERATIONSAPI_NETWORK_KEEPALIVETIMEOUT: '5001',
54
- OPERATIONSAPI_NETWORK_PORT: '2599',
55
- OPERATIONSAPI_NETWORK_TIMEOUT: '120001',
56
- ROOTPATH: HDB_ROOT,
57
- STORAGE_WRITEASYNC: true,
58
- STORAGE_OVERLAPPINGSYNC: false,
59
- STORAGE_CACHING: false,
60
- STORAGE_COMPRESSION: false,
61
- STORAGE_NOREADAHEAD: false,
62
- STORAGE_PREFETCHWRITES: false,
63
- STORAGE_PATH: 'users/unit_test/path',
64
- };
65
20
  const TEST_ARGS_2 = {
66
21
  LOGGING_LEVEL: 'error',
67
22
  ROOTPATH: HDB_ROOT,
@@ -179,204 +134,6 @@ describe('Test configUtils module', () => {
179
134
  after(() => {
180
135
  validate_config_rw();
181
136
  });
182
-
183
- it('Test that given args are updated in new config file', () => {
184
- const expected_config = {
185
- authentication: {
186
- authorizeLocal: false,
187
- cacheTTL: 30000,
188
- enableSessions: true,
189
- operationTokenTimeout: '2d',
190
- refreshTokenTimeout: '31d',
191
- },
192
- analytics: {
193
- aggregatePeriod: 60,
194
- replicate: false,
195
- },
196
- applications: {
197
- lockdown: 'freeze',
198
- containment: 'vm',
199
- dependencyContainment: false,
200
- },
201
- componentsRoot: path.join(DIRNAME, '/test_custom_functions'),
202
- localStudio: {
203
- enabled: true,
204
- },
205
- logging: {
206
- auditAuthEvents: {
207
- logFailed: false,
208
- logSuccessful: false,
209
- },
210
- auditLog: true,
211
- auditRetention: '3d',
212
- file: false,
213
- level: 'notify',
214
- root: path.join(DIRNAME, '/testlogging'),
215
- rotation: {
216
- enabled: true,
217
- compress: true,
218
- interval: '10D',
219
- maxSize: '10M',
220
- path: 'lets/send/log/here',
221
- },
222
- stdStreams: true,
223
- },
224
- mqtt: {
225
- network: {
226
- mtls: false,
227
- port: 1883,
228
- securePort: 8883,
229
- },
230
- webSocket: true,
231
- requireAuthentication: true,
232
- },
233
- node: {
234
- hostname: null,
235
- },
236
- operationsApi: {
237
- network: {
238
- compressionThreshold: 0,
239
- cors: false,
240
- corsAccessList: ['test1', 'test2'],
241
- port: 2599,
242
- securePort: 9925,
243
- domainSocket: 'hdb/operations-server',
244
- headersTimeout: 60001,
245
- http2: false,
246
- https: true,
247
- mtls: false,
248
- keepAliveTimeout: 5001,
249
- timeout: 120001,
250
- },
251
- tls: {
252
- certificate: TEST_CERT,
253
- certificateAuthority: null,
254
- privateKey: TEST_PRIVATE_KEY,
255
- },
256
- },
257
- http: {
258
- compressionThreshold: 0,
259
- cors: false,
260
- corsAccessList: ['test1', 'test2'],
261
- keepAliveTimeout: 4999,
262
- port: 9936,
263
- securePort: 9926,
264
- timeout: 119999,
265
- headersTimeout: 59999,
266
- http2: false,
267
- mtls: false,
268
- },
269
- threads: {
270
- count: 4,
271
- debug: false,
272
- },
273
- rootPath: path.join(DIRNAME, '/yaml'),
274
- storage: {
275
- writeAsync: true,
276
- caching: false,
277
- compression: false,
278
- noReadAhead: false,
279
- path: 'users/unit_test/path',
280
- prefetchWrites: false,
281
- overlappingSync: false,
282
- },
283
- tls: {
284
- certificate: TEST_CERT,
285
- certificateAuthority: null,
286
- privateKey: TEST_PRIVATE_KEY,
287
- },
288
- };
289
- const expected_flat_config = {
290
- authentication_cachettl: 30000,
291
- authentication_authorizelocal: false,
292
- authentication_enablesessions: true,
293
- authentication_operationtokentimeout: '2d',
294
- authentication_refreshtokentimeout: '31d',
295
- analytics_aggregateperiod: 60,
296
- analytics_replicate: false,
297
- applications_containment: 'vm',
298
- applications_dependencycontainment: false,
299
- applications_lockdown: 'freeze',
300
- componentsroot: path.join(DIRNAME, '/test_custom_functions'),
301
- localstudio_enabled: true,
302
- logging_auditauthevents_logfailed: false,
303
- logging_auditauthevents_logsuccessful: false,
304
- logging_auditlog: true,
305
- logging_auditretention: '3d',
306
- logging_file: false,
307
- logging_level: 'notify',
308
- logging_root: path.join(DIRNAME, '/testlogging'),
309
- logging_rotation_enabled: true,
310
- logging_rotation_compress: true,
311
- logging_rotation_interval: '10D',
312
- logging_rotation_maxsize: '10M',
313
- logging_rotation_path: 'lets/send/log/here',
314
- logging_stdstreams: true,
315
- mqtt_network_mtls: false,
316
- mqtt_network_port: 1883,
317
- mqtt_network_secureport: 8883,
318
- mqtt_websocket: true,
319
- mqtt_requireauthentication: true,
320
- node_hostname: null,
321
- operationsapi_network_compressionthreshold: 0,
322
- operationsapi_network_cors: false,
323
- operationsapi_network_corsaccesslist: ['test1', 'test2'],
324
- operationsapi_network_port: 2599,
325
- operationsapi_network_secureport: 9925,
326
- operationsapi_network_domainsocket: 'hdb/operations-server',
327
- operationsapi_network_headerstimeout: 60001,
328
- operationsapi_network_https: true,
329
- operationsapi_network_http2: false,
330
- operationsapi_network_keepalivetimeout: 5001,
331
- operationsapi_network_timeout: 120001,
332
- http_compressionthreshold: 0,
333
- http_cors: false,
334
- http_corsaccesslist: ['test1', 'test2'],
335
- http_keepalivetimeout: 4999,
336
- http_http2: false,
337
- http_port: 9936,
338
- http_secureport: 9926,
339
- http_mtls: false,
340
- threads_count: 4,
341
- threads_debug: false,
342
- http_timeout: 119999,
343
- http_headerstimeout: 59999,
344
- rootpath: path.join(DIRNAME, '/yaml'),
345
- storage_writeasync: true,
346
- storage_caching: false,
347
- storage_compression: false,
348
- storage_noreadahead: false,
349
- storage_path: 'users/unit_test/path',
350
- storage_prefetchwrites: false,
351
- storage_overlappingsync: false,
352
- tls_certificate: TEST_CERT,
353
- tls_certificateauthority: null,
354
- tls_privatekey: TEST_PRIVATE_KEY,
355
- operationsapi_tls_certificate: TEST_CERT,
356
- operationsapi_tls_privatekey: TEST_PRIVATE_KEY,
357
- operationsapi_tls_certificateauthority: null,
358
- operationsapi_network_mtls: false,
359
- };
360
-
361
- config_utils_rw.createConfigFile(TEST_ARGS);
362
-
363
- const test_config_doc = YAML.parseDocument(fs.readFileSync(CONFIG_FILE_PATH, 'utf8'));
364
- const config_json = test_config_doc.toJSON();
365
- const test_flat_config_obj = config_utils_rw.flattenConfig(config_json);
366
-
367
- expect(config_json).to.eql(expected_config);
368
- const non_object_flat_test_config_obj = { ...test_flat_config_obj };
369
- for (let key in non_object_flat_test_config_obj) {
370
- if (
371
- typeof non_object_flat_test_config_obj[key] === 'object' &&
372
- non_object_flat_test_config_obj[key] &&
373
- !Array.isArray(non_object_flat_test_config_obj[key])
374
- )
375
- delete non_object_flat_test_config_obj[key];
376
- }
377
-
378
- expect(non_object_flat_test_config_obj).to.eql(expected_flat_config);
379
- });
380
137
  });
381
138
 
382
139
  describe('Test getDefaultConfig function', () => {
@@ -391,6 +148,7 @@ describe('Test configUtils module', () => {
391
148
  applications_containment: 'vm',
392
149
  applications_dependencycontainment: false,
393
150
  applications_lockdown: 'freeze',
151
+ applications_allowedspawncommands: 'freeze',
394
152
  http_cors: false,
395
153
  http_corsaccesslist: [null],
396
154
  http_compressionthreshold: 0,
@@ -449,23 +207,6 @@ describe('Test configUtils module', () => {
449
207
  flat_default_config_obj_rw();
450
208
  });
451
209
 
452
- it('Test if in-memory object is undefined, the default config obj is instantiated and default value is returned', () => {
453
- flat_default_config_obj_rw = config_utils_rw.__set__('flatDefaultConfigObj', undefined);
454
-
455
- config_utils_rw.getDefaultConfig(hdbTerms.CONFIG_PARAMS.NODE_HOSTNAME);
456
- const flat_default_config_obj = config_utils_rw.__get__('flatDefaultConfigObj');
457
- const non_object_flat_default_config_obj = { ...flat_default_config_obj };
458
- for (let key in non_object_flat_default_config_obj) {
459
- if (
460
- typeof non_object_flat_default_config_obj[key] === 'object' &&
461
- non_object_flat_default_config_obj[key] &&
462
- !Array.isArray(non_object_flat_default_config_obj[key])
463
- )
464
- delete non_object_flat_default_config_obj[key];
465
- }
466
- expect(non_object_flat_default_config_obj).to.eql(expected_flat_default_config_obj);
467
- });
468
-
469
210
  it('Test that if the in-memory object exists, the correct default value is returned', () => {
470
211
  flat_default_config_obj_rw = config_utils_rw.__set__('flatDefaultConfigObj', expected_flat_default_config_obj);
471
212
  const parse_document_spy = sandbox.spy(YAML, 'parseDocument');
@@ -199,6 +199,20 @@ describe('Querying through Resource API', () => {
199
199
  }
200
200
  assert.equal(results.length, 1);
201
201
  });
202
+ it('Ensure that we are yielding when querying data in a table', async function () {
203
+ let results = [];
204
+ let yielded = false;
205
+ setImmediate(() => {
206
+ yielded = true;
207
+ });
208
+ for await (let record of QueryTable.search({
209
+ conditions: [{ attribute: 'id', comparator: 'less_than_equal', value: 'id-3' }],
210
+ })) {
211
+ results.push(record);
212
+ }
213
+ assert(yielded);
214
+ assert.equal(results.length, 24);
215
+ });
202
216
  it('Query data in a table with non-indexed property', async function () {
203
217
  let results = [];
204
218
  for await (let record of QueryTable.search({
@@ -342,7 +356,8 @@ describe('Querying through Resource API', () => {
342
356
 
343
357
  it('Query relational data in a table with many-to-one', async function () {
344
358
  let results = [];
345
- for await (let record of QueryTable.search({
359
+ // do this test with sync iteration to verify it is possible
360
+ for (let record of QueryTable.search({
346
361
  conditions: [{ attribute: 'id', value: 'id-1' }],
347
362
  select: ['id', 'related', 'name'],
348
363
  })) {
@@ -110,7 +110,7 @@ describe('HierarchicalNavigableSmallWorld indexing', () => {
110
110
  );
111
111
  });
112
112
  it('can remove and add and search with vector index', async () => {
113
- for (let record of HNSWTest.search([])) {
113
+ for await (let record of HNSWTest.search([])) {
114
114
  await HNSWTest.delete(record.id);
115
115
  }
116
116
  const records = [
@@ -168,7 +168,7 @@ describe('Test custom functions operations', () => {
168
168
  const coolComponent = result.entries.find((e) => e.name === 'my-cool-component');
169
169
  const otherComponent = result.entries.find((e) => e.name === 'my-other-component');
170
170
  expect(coolComponent).to.exist;
171
- expect(coolComponent.entries.length).to.equal(2);
171
+ expect(coolComponent.entries.length).to.equal(3);
172
172
  expect(coolComponent.package).to.be.undefined;
173
173
  expect(otherComponent).to.exist;
174
174
  expect(otherComponent.entries.find((e) => e.name === 'config.yaml')).to.exist;
@@ -357,23 +357,6 @@ function getMockTestPath() {
357
357
  return testPath;
358
358
  }
359
359
 
360
- /**
361
- * Returns the path to the test root path that will be used for testing
362
- * @returns String representing the path value to the mock lmdb system directory
363
- */
364
- function setupTestDBPath() {
365
- let lmdb_path = path.join(ENV_DIR_PATH, process.pid.toString());
366
- env.setProperty(terms.HDB_SETTINGS_NAMES.HDB_ROOT_KEY, lmdb_path);
367
- env.setProperty(terms.CONFIG_PARAMS.DATABASES, { data: { path: lmdb_path }, dev: { path: lmdb_path } });
368
- resetDatabases();
369
- if (isMainThread) {
370
- process.on('exit', function () {
371
- tearDownMockDB();
372
- });
373
- }
374
- return lmdb_path;
375
- }
376
-
377
360
  /**
378
361
  * Returns the path to the test root path that will be used for testing
379
362
  * @returns String representing the path value to the mock lmdb system directory
@@ -439,6 +439,8 @@ export const CONFIG_PARAMS = {
439
439
  APPLICATIONS_LOCKDOWN: 'applications_lockdown',
440
440
  APPLICATIONS_DEPENDENCYCONTAINMENT: 'applications_dependencyContainment',
441
441
  APPLICATIONS_PACKAGEMANAGERPREFIX: 'applications_packageManagerPrefix',
442
+ APPLICATIONS_ALLOWEDBUILTINMODULES: 'applications_allowedBuiltInModules',
443
+ APPLICATIONS_ALLOWEDSPAWNCOMMANDS: 'applications_allowedSpawnCommands',
442
444
  THREADS: 'threads',
443
445
  THREADS_COUNT: 'threads_count',
444
446
  THREADS_DEBUG: 'threads_debug',
@@ -544,6 +546,7 @@ export const CONFIG_PARAMS = {
544
546
  REPLICATION_BLOBTIMEOUT: 'replication_blobTimeout',
545
547
  REPLICATION_FAILOVER: 'replication_failover',
546
548
  REPLICATION_BLOBCONCURRENCY: 'replication_blobConcurrency',
549
+ REPLICATION_MAXPAYLOAD: 'replication_maxPayload',
547
550
  REPLICATION_RECORDCONCURRENCY: 'replication_recordConcurrency',
548
551
  ROOTPATH: 'rootPath',
549
552
  SERIALIZATION_BIGINT: 'serialization_bigInt',
@@ -1,3 +1,4 @@
1
+ import type { Logger } from '../components/Logger.ts';
1
2
  import * as terms from './hdbTerms.js';
2
3
  import fs from 'node:fs';
3
4
  import { noBootFile, getPropsFilePath } from './common_utils.js';
@@ -6,15 +7,11 @@ interface Env {
6
7
  get(key: string): string;
7
8
  }
8
9
 
9
- interface ErrorLogger {
10
- error(message: string): void;
11
- }
12
-
13
10
  /** isHdbInstalled checks for a valid installation of Harper based on the env
14
11
  * arg's settings path and any boot props file it can find and returns true
15
12
  * if an installation is found; false otherwise.
16
13
  */
17
- export function isHdbInstalled(env: Env, logger: ErrorLogger) {
14
+ export function isHdbInstalled(env: Env, logger: Pick<Logger, 'error'>) {
18
15
  try {
19
16
  fs.statSync(getPropsFilePath());
20
17
  fs.statSync(env.get(terms.HDB_SETTINGS_NAMES.SETTINGS_PATH_KEY));
@@ -58,28 +58,39 @@ function convertKeyValueToWrite(key) {
58
58
  * Return all the indexable values from an attribute, ready to be indexed
59
59
  */
60
60
  function getIndexedValues(value, indexNulls) {
61
- if (value === null) return indexNulls ? [null] : undefined;
62
- if (value === undefined) return;
61
+ if (value === null) {
62
+ return indexNulls ? [null] : undefined;
63
+ }
64
+ if (value === undefined) {
65
+ return undefined;
66
+ }
63
67
  if (PRIMITIVES.includes(typeof value)) {
64
68
  if (value.length > MAX_SEARCH_KEY_LENGTH) {
65
69
  return [value.slice(0, MAX_SEARCH_KEY_LENGTH) + OVERFLOW_MARKER];
66
70
  }
67
71
  return [value];
68
72
  }
69
- let values;
70
73
  if (Array.isArray(value)) {
71
- values = [];
74
+ const values = [];
72
75
  for (let i = 0, l = value.length; i < l; i++) {
73
76
  let element = value[i];
74
77
  if (PRIMITIVES.includes(typeof element)) {
75
- if (element.length > MAX_SEARCH_KEY_LENGTH)
78
+ if (element.length > MAX_SEARCH_KEY_LENGTH) {
76
79
  values.push(element.slice(0, MAX_SEARCH_KEY_LENGTH) + OVERFLOW_MARKER);
77
- else values.push(element);
78
- } else if (element === null && indexNulls) return values.push(null);
79
- else if (element instanceof Date) return values.push(element.getTime());
80
+ } else {
81
+ values.push(element);
82
+ }
83
+ } else if (element === null && indexNulls) {
84
+ values.push(null);
85
+ } else if (element instanceof Date) {
86
+ values.push(element.getTime());
87
+ }
80
88
  }
81
- } else if (value instanceof Date) return [value.getTime()];
82
- return values;
89
+ return values;
90
+ } else if (value instanceof Date) {
91
+ return [value.getTime()];
92
+ }
93
+ return undefined;
83
94
  }
84
95
 
85
96
  let lastTime = 0; // reported time used to ensure monotonic time.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ResourceInterfaceV2.js.map
3
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../core/components/Logger.ts"],"names":[],"mappings":""}
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.Scope = exports.MissingDefaultFilesOptionError = void 0;
12
12
  const harper_logger_js_1 = require("../utility/logging/harper_logger.js");
13
13
  const node_events_1 = require("node:events");
14
+ const databases_ts_1 = require("../resources/databases.js");
14
15
  const Server_ts_1 = require("../server/Server.js");
15
16
  const EntryHandler_ts_1 = require("./EntryHandler.js");
16
17
  const OptionsWatcher_ts_1 = require("./OptionsWatcher.js");
@@ -26,14 +27,15 @@ exports.MissingDefaultFilesOptionError = MissingDefaultFilesOptionError;
26
27
  /**
27
28
  * This class is what is passed to the `handleApplication` function of an extension.
28
29
  *
29
- * It is imperative that the instance is "ready" before its passed to the `handleApplication` function
30
+ * It is imperative that the instance is "ready" before it's passed to the `handleApplication` function
30
31
  * so that the developer can immediately start using `scope.options`, etc.
31
32
  *
32
33
  */
33
34
  class Scope extends node_events_1.EventEmitter {
34
35
  #configFilePath;
35
36
  #directory;
36
- #name;
37
+ #appName;
38
+ #pluginName;
37
39
  #entryHandler;
38
40
  #entryHandlers;
39
41
  #logger;
@@ -43,12 +45,15 @@ class Scope extends node_events_1.EventEmitter {
43
45
  resources;
44
46
  server;
45
47
  ready;
46
- constructor(name, directory, configFilePath, applicationScope) {
48
+ databaseEvents;
49
+ constructor(appName, pluginName, directory, configFilePath, applicationScope) {
47
50
  super();
48
- this.#name = name;
51
+ this.#appName = appName;
52
+ this.#pluginName = pluginName;
49
53
  this.#directory = directory;
50
54
  this.#configFilePath = configFilePath;
51
- this.#logger = (0, harper_logger_js_1.loggerWithTag)(this.#name);
55
+ this.#logger = logger || (0, harper_logger_js_1.loggerWithTag)(this.#appName);
56
+ this.databaseEvents = databases_ts_1.databaseEventsEmitter;
52
57
  this.applicationScope = applicationScope;
53
58
  this.resources = applicationScope?.resources ?? Resources_ts_1.resources;
54
59
  this.server = applicationScope?.server ?? Server_ts_1.server;
@@ -56,7 +61,7 @@ class Scope extends node_events_1.EventEmitter {
56
61
  this.#pendingInitialLoads = new Set();
57
62
  this.ready = (0, node_events_1.once)(this, 'ready');
58
63
  // Create the options instance for the scope immediately
59
- this.options = new OptionsWatcher_ts_1.OptionsWatcher(name, configFilePath, this.#logger)
64
+ this.options = new OptionsWatcher_ts_1.OptionsWatcher(pluginName, configFilePath, this.#logger)
60
65
  .on('error', this.#handleError.bind(this))
61
66
  .on('change', this.#optionsWatcherChangeListener.bind(this)())
62
67
  .on('ready', this.#handleOptionsWatcherReady.bind(this));
@@ -64,8 +69,11 @@ class Scope extends node_events_1.EventEmitter {
64
69
  get logger() {
65
70
  return this.#logger;
66
71
  }
67
- get name() {
68
- return this.#name;
72
+ get appName() {
73
+ return this.#appName;
74
+ }
75
+ get pluginName() {
76
+ return this.#pluginName;
69
77
  }
70
78
  get directory() {
71
79
  return this.#directory;
@@ -94,7 +102,7 @@ class Scope extends node_events_1.EventEmitter {
94
102
  return this;
95
103
  }
96
104
  #createEntryHandler(config) {
97
- const entryHandler = new EntryHandler_ts_1.EntryHandler(this.#name, this.#directory, config, this.#logger)
105
+ const entryHandler = new EntryHandler_ts_1.EntryHandler(this.#pluginName, this.#directory, config, this.#logger)
98
106
  .on('error', this.#handleError.bind(this))
99
107
  .on('add', this.#defaultEntryHandlerListener('add'))
100
108
  .on('change', this.#defaultEntryHandlerListener('change'))
@@ -236,7 +244,7 @@ class Scope extends node_events_1.EventEmitter {
236
244
  return entryHandler;
237
245
  }
238
246
  requestRestart() {
239
- this.#logger.debug?.(`Restart requested from ${this.name} scope for ${this.directory}`);
247
+ this.#logger.debug?.(`Restart requested from ${this.#pluginName} scope for ${this.#appName}`);
240
248
  (0, requestRestart_ts_1.requestRestart)();
241
249
  }
242
250
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../../core/components/Scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../../core/components/Scope.ts"],"names":[],"mappings":"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"}