@harperfast/harper-pro 5.0.0-beta.6 → 5.0.0-beta.7
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.
- package/core/bin/harper.js +1 -1
- package/core/bin/run.js +2 -2
- package/core/components/Application.ts +6 -3
- package/core/components/componentLoader.ts +19 -11
- package/core/components/operations.js +13 -13
- package/core/components/operationsValidation.js +3 -3
- package/core/config/configUtils.js +20 -4
- package/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
- package/core/resources/Resource.ts +17 -6
- package/core/resources/RocksTransactionLogStore.ts +8 -1
- package/core/resources/analytics/write.ts +6 -0
- package/core/resources/databases.ts +3 -2
- package/core/security/jsLoader.ts +127 -46
- package/core/server/REST.ts +20 -11
- package/core/server/http.ts +2 -2
- package/core/server/itc/serverHandlers.js +1 -1
- package/core/static/defaultConfig.yaml +1 -1
- package/core/utility/hdbTerms.ts +1 -0
- package/core/utility/logging/harper_logger.js +22 -1
- package/core/utility/logging/readLog.js +2 -2
- package/core/utility/npmUtilities.js +2 -2
- package/core/validation/configValidator.js +16 -8
- package/core/validation/readLogValidator.js +2 -2
- package/dist/core/bin/harper.js +1 -1
- package/dist/core/bin/run.js +2 -2
- package/dist/core/bin/run.js.map +1 -1
- package/dist/core/components/Application.js +7 -2
- package/dist/core/components/Application.js.map +1 -1
- package/dist/core/components/componentLoader.js +19 -9
- package/dist/core/components/componentLoader.js.map +1 -1
- package/dist/core/components/operations.js +13 -13
- package/dist/core/components/operations.js.map +1 -1
- package/dist/core/components/operationsValidation.js +3 -3
- package/dist/core/components/operationsValidation.js.map +1 -1
- package/dist/core/config/configUtils.js +23 -3
- package/dist/core/config/configUtils.js.map +1 -1
- package/dist/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +3 -2
- package/dist/core/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
- package/dist/core/resources/Resource.js +11 -4
- package/dist/core/resources/Resource.js.map +1 -1
- package/dist/core/resources/RocksTransactionLogStore.js +8 -1
- package/dist/core/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/core/resources/analytics/write.js +6 -0
- package/dist/core/resources/analytics/write.js.map +1 -1
- package/dist/core/resources/databases.js +3 -2
- package/dist/core/resources/databases.js.map +1 -1
- package/dist/core/security/jsLoader.js +114 -40
- package/dist/core/security/jsLoader.js.map +1 -1
- package/dist/core/server/REST.js +17 -10
- package/dist/core/server/REST.js.map +1 -1
- package/dist/core/server/http.js +1 -1
- package/dist/core/server/http.js.map +1 -1
- package/dist/core/server/itc/serverHandlers.js +1 -1
- package/dist/core/server/itc/serverHandlers.js.map +1 -1
- package/dist/core/utility/hdbTerms.js +1 -0
- package/dist/core/utility/hdbTerms.js.map +1 -1
- package/dist/core/utility/logging/harper_logger.js +24 -1
- package/dist/core/utility/logging/harper_logger.js.map +1 -1
- package/dist/core/utility/logging/readLog.js +2 -2
- package/dist/core/utility/logging/readLog.js.map +1 -1
- package/dist/core/utility/npmUtilities.js +2 -2
- package/dist/core/utility/npmUtilities.js.map +1 -1
- package/dist/core/validation/configValidator.js +18 -8
- package/dist/core/validation/configValidator.js.map +1 -1
- package/dist/core/validation/readLogValidator.js +2 -2
- package/dist/core/validation/readLogValidator.js.map +1 -1
- package/dist/replication/nodeIdMapping.js +1 -1
- package/dist/replication/nodeIdMapping.js.map +1 -1
- package/npm-shrinkwrap.json +454 -453
- package/package.json +7 -4
- package/replication/nodeIdMapping.ts +1 -1
- package/static/defaultConfig.yaml +3 -0
- package/studio/web/assets/{index-BckVDix4.js → index-ClD_q6ya.js} +5 -5
- package/studio/web/assets/{index-BckVDix4.js.map → index-ClD_q6ya.js.map} +1 -1
- package/studio/web/assets/{index.lazy-iG1_8dzm.js → index.lazy-CXzU1gVu.js} +2 -2
- package/studio/web/assets/{index.lazy-iG1_8dzm.js.map → index.lazy-CXzU1gVu.js.map} +1 -1
- package/studio/web/assets/{profile-CzjslUXv.js → profile-DCNVg5yY.js} +2 -2
- package/studio/web/assets/{profile-CzjslUXv.js.map → profile-DCNVg5yY.js.map} +1 -1
- package/studio/web/assets/{status-BP4TQJDR.js → status-CoGlcjSB.js} +2 -2
- package/studio/web/assets/{status-BP4TQJDR.js.map → status-CoGlcjSB.js.map} +1 -1
- package/studio/web/index.html +1 -1
|
@@ -148,6 +148,7 @@ function parseJsonModule(source: string, url: string): any {
|
|
|
148
148
|
async function loadModuleWithVM(moduleUrl: string, scope: ApplicationScope) {
|
|
149
149
|
const moduleCache = new Map<string, Promise<SourceTextModule | SyntheticModule>>();
|
|
150
150
|
const linkingPromises = new Map<string, Promise<void>>();
|
|
151
|
+
const cjsCache = new Map<string, { exports: any }>();
|
|
151
152
|
|
|
152
153
|
// Create a secure context with limited globals
|
|
153
154
|
const contextObject = getGlobalObject(scope);
|
|
@@ -165,6 +166,9 @@ async function loadModuleWithVM(moduleUrl: string, scope: ApplicationScope) {
|
|
|
165
166
|
// block harper/* for now (reserving for potential future use)
|
|
166
167
|
throw new Error(`Module ${specifier} is not allowed, may only access the 'harper' module`);
|
|
167
168
|
}
|
|
169
|
+
if (parts[0] === 'file:') {
|
|
170
|
+
return specifier;
|
|
171
|
+
}
|
|
168
172
|
const resolved = createRequire(referrer).resolve(specifier);
|
|
169
173
|
if (isAbsolute(resolved)) {
|
|
170
174
|
return pathToFileURL(resolved).toString();
|
|
@@ -176,7 +180,16 @@ async function loadModuleWithVM(moduleUrl: string, scope: ApplicationScope) {
|
|
|
176
180
|
* Load a CommonJS module in our private context
|
|
177
181
|
*/
|
|
178
182
|
function loadCJS(url: string, source: string): { exports: any } {
|
|
183
|
+
// Check cache first to handle circular dependencies
|
|
184
|
+
if (cjsCache.has(url)) {
|
|
185
|
+
return cjsCache.get(url)!;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Create module object and cache it immediately (before execution)
|
|
189
|
+
// This allows circular dependencies to get a reference to the incomplete module
|
|
179
190
|
const cjsModule = { exports: {} };
|
|
191
|
+
cjsCache.set(url, cjsModule);
|
|
192
|
+
|
|
180
193
|
if (url.endsWith('.json')) {
|
|
181
194
|
cjsModule.exports = parseJsonModule(source, url);
|
|
182
195
|
return cjsModule;
|
|
@@ -204,7 +217,7 @@ async function loadModuleWithVM(moduleUrl: string, scope: ApplicationScope) {
|
|
|
204
217
|
filename: url,
|
|
205
218
|
async importModuleDynamically(specifier: string, script) {
|
|
206
219
|
const resolvedUrl = resolveModule(specifier, script.sourceURL);
|
|
207
|
-
const useContainment = specifier.startsWith('.') || scope.dependencyContainment;
|
|
220
|
+
const useContainment = specifier.startsWith('.') || scope.dependencyContainment !== false;
|
|
208
221
|
const dynamicModule = await loadModuleWithCache(resolvedUrl, useContainment);
|
|
209
222
|
return dynamicModule;
|
|
210
223
|
},
|
|
@@ -221,16 +234,18 @@ async function loadModuleWithVM(moduleUrl: string, scope: ApplicationScope) {
|
|
|
221
234
|
}
|
|
222
235
|
function loadCJSModule(url: string, source: string, usePrivateGlobal: boolean): SyntheticModule {
|
|
223
236
|
const cjsModule = usePrivateGlobal ? loadCJS(url, source) : { exports: require(url) };
|
|
224
|
-
|
|
237
|
+
let exports = cjsModule.exports;
|
|
238
|
+
if (exports.default === undefined) {
|
|
239
|
+
// provide the default export for compatibility
|
|
240
|
+
exports = { default: exports, ...exports };
|
|
241
|
+
}
|
|
242
|
+
const exportNames = Object.keys(exports);
|
|
243
|
+
|
|
225
244
|
const synModule = new SyntheticModule(
|
|
226
|
-
exportNames
|
|
245
|
+
exportNames,
|
|
227
246
|
function () {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
this.setExport(key, cjsModule.exports[key]);
|
|
231
|
-
}
|
|
232
|
-
} else {
|
|
233
|
-
this.setExport('default', cjsModule.exports);
|
|
247
|
+
for (const key of exportNames) {
|
|
248
|
+
this.setExport(key, exports[key]);
|
|
234
249
|
}
|
|
235
250
|
},
|
|
236
251
|
{ identifier: url, context }
|
|
@@ -239,13 +254,68 @@ async function loadModuleWithVM(moduleUrl: string, scope: ApplicationScope) {
|
|
|
239
254
|
return synModule;
|
|
240
255
|
}
|
|
241
256
|
|
|
257
|
+
/**
|
|
258
|
+
* Check if a package (or any of its dependencies) depends on harper
|
|
259
|
+
* Expects a file URL like: file:///path/to/node_modules/package-name/dist/index.js
|
|
260
|
+
*/
|
|
261
|
+
function packageDependsOnHarper(fileUrl: string): boolean {
|
|
262
|
+
try {
|
|
263
|
+
// Convert file:// URL to path
|
|
264
|
+
const filePath = fileURLToPath(fileUrl);
|
|
265
|
+
|
|
266
|
+
// Find the node_modules directory and package name
|
|
267
|
+
// Example: /path/to/node_modules/package-name/dist/index.js
|
|
268
|
+
// or: /path/to/node_modules/@scope/package-name/dist/index.js
|
|
269
|
+
const nodeModulesMarker = '/node_modules/';
|
|
270
|
+
const nodeModulesIndex = filePath.lastIndexOf(nodeModulesMarker);
|
|
271
|
+
if (nodeModulesIndex === -1) return false;
|
|
272
|
+
|
|
273
|
+
// Get the part after /node_modules/
|
|
274
|
+
const afterNodeModules = filePath.substring(nodeModulesIndex + nodeModulesMarker.length);
|
|
275
|
+
const parts = afterNodeModules.split('/');
|
|
276
|
+
|
|
277
|
+
// Handle scoped packages (@scope/package-name) vs regular packages (package-name)
|
|
278
|
+
const beforeNodeModules = filePath.substring(0, nodeModulesIndex);
|
|
279
|
+
const packageRoot = parts[0].startsWith('@')
|
|
280
|
+
? join(beforeNodeModules, 'node_modules', parts[0], parts[1])
|
|
281
|
+
: join(beforeNodeModules, 'node_modules', parts[0]);
|
|
282
|
+
|
|
283
|
+
// Read package.json from the package root
|
|
284
|
+
const packageJsonPath = join(packageRoot, 'package.json');
|
|
285
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
286
|
+
|
|
287
|
+
const deps = {
|
|
288
|
+
...packageJson.dependencies,
|
|
289
|
+
...packageJson.devDependencies,
|
|
290
|
+
...packageJson.peerDependencies,
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
// Check if harper is a direct dependency
|
|
294
|
+
return Object.keys(deps).some((dep) => HARPER_MODULE_IDS.has(dep));
|
|
295
|
+
} catch {
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
242
300
|
/**
|
|
243
301
|
* Linker function for module resolution during instantiation
|
|
244
302
|
*/
|
|
245
303
|
async function linker(specifier: string, referencingModule: SourceTextModule | SyntheticModule) {
|
|
246
304
|
const resolvedUrl = resolveModule(specifier, referencingModule.identifier);
|
|
247
305
|
|
|
248
|
-
|
|
306
|
+
// Determine if we should use VM containment for this module
|
|
307
|
+
let useContainment = specifier.startsWith('.'); // Always contain relative imports
|
|
308
|
+
|
|
309
|
+
if (!useContainment && scope.dependencyContainment !== false) {
|
|
310
|
+
// For npm packages, check if they depend on harper
|
|
311
|
+
if (resolvedUrl.startsWith('file://') && resolvedUrl.includes('node_modules')) {
|
|
312
|
+
useContainment = packageDependsOnHarper(resolvedUrl);
|
|
313
|
+
} else {
|
|
314
|
+
// Non-file URLs (bare specifiers) - use default behavior
|
|
315
|
+
useContainment = scope.dependencyContainment === true;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
249
319
|
// Return the module immediately (even if not yet linked) to support circular dependencies
|
|
250
320
|
return await getOrCreateModule(resolvedUrl, useContainment);
|
|
251
321
|
}
|
|
@@ -351,38 +421,25 @@ async function loadModuleWithVM(moduleUrl: string, scope: ApplicationScope) {
|
|
|
351
421
|
}
|
|
352
422
|
} else {
|
|
353
423
|
const replacedModule = checkAllowedModulePath(url, scope.verifyPath);
|
|
354
|
-
// For Node.js built-in modules (node:) and npm packages
|
|
424
|
+
// For Node.js built-in modules (node:) and npm packages without dependency containment
|
|
355
425
|
// Always try require first to properly handle CJS modules with named exports
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
function () {
|
|
363
|
-
if (exportNames.length > 0) {
|
|
364
|
-
for (const key of exportNames) {
|
|
365
|
-
this.setExport(key, cjsExports[key]);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
this.setExport('default', cjsExports);
|
|
369
|
-
},
|
|
370
|
-
{ identifier: url, context }
|
|
371
|
-
);
|
|
372
|
-
} catch {
|
|
373
|
-
// Fall back to dynamic import for ESM packages
|
|
374
|
-
const importedModule = await import(url);
|
|
375
|
-
const exportNames = Object.keys(importedModule);
|
|
376
|
-
module = new SyntheticModule(
|
|
377
|
-
exportNames,
|
|
378
|
-
function () {
|
|
379
|
-
for (const key of exportNames) {
|
|
380
|
-
this.setExport(key, importedModule[key]);
|
|
381
|
-
}
|
|
382
|
-
},
|
|
383
|
-
{ identifier: url, context }
|
|
384
|
-
);
|
|
426
|
+
// Fall back to dynamic import for ESM packages
|
|
427
|
+
let importedModule = replacedModule ?? (await import(url));
|
|
428
|
+
const cjsModule = importedModule['module.exports'];
|
|
429
|
+
if (cjsModule) {
|
|
430
|
+
// back-compat import
|
|
431
|
+
importedModule = importedModule.default ? { default: importedModule.default, ...cjsModule } : cjsModule;
|
|
385
432
|
}
|
|
433
|
+
const exportNames = Object.keys(importedModule);
|
|
434
|
+
module = new SyntheticModule(
|
|
435
|
+
exportNames,
|
|
436
|
+
function () {
|
|
437
|
+
for (const key of exportNames) {
|
|
438
|
+
this.setExport(key, importedModule[key]);
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
{ identifier: url, context }
|
|
442
|
+
);
|
|
386
443
|
}
|
|
387
444
|
|
|
388
445
|
return module;
|
|
@@ -533,6 +590,25 @@ function getHarperExports(scope: ApplicationScope) {
|
|
|
533
590
|
authenticateUser: server.authenticateUser,
|
|
534
591
|
operation: server.operation,
|
|
535
592
|
contentTypes,
|
|
593
|
+
Attribute: undefined,
|
|
594
|
+
Config: undefined,
|
|
595
|
+
ConfigValue: undefined,
|
|
596
|
+
Context: undefined,
|
|
597
|
+
FileAndURLPathConfig: undefined,
|
|
598
|
+
FilesOption: undefined,
|
|
599
|
+
FilesOptionObject: undefined,
|
|
600
|
+
IterableEventQueue: undefined,
|
|
601
|
+
Logger: undefined,
|
|
602
|
+
Query: undefined,
|
|
603
|
+
RecordObject: undefined,
|
|
604
|
+
RequestTargetOrId: undefined,
|
|
605
|
+
ResourceInterface: undefined,
|
|
606
|
+
Scope: undefined,
|
|
607
|
+
Session: undefined,
|
|
608
|
+
SourceContext: undefined,
|
|
609
|
+
SubscriptionRequest: undefined,
|
|
610
|
+
Table: undefined,
|
|
611
|
+
User: undefined,
|
|
536
612
|
};
|
|
537
613
|
}
|
|
538
614
|
const ALLOWED_NODE_BUILTIN_MODULES = env.get(CONFIG_PARAMS.APPLICATIONS_ALLOWEDBUILTINMODULES)
|
|
@@ -544,14 +620,19 @@ const ALLOWED_NODE_BUILTIN_MODULES = env.get(CONFIG_PARAMS.APPLICATIONS_ALLOWEDB
|
|
|
544
620
|
},
|
|
545
621
|
};
|
|
546
622
|
const ALLOWED_COMMANDS = new Set(env.get(CONFIG_PARAMS.APPLICATIONS_ALLOWEDSPAWNCOMMANDS) ?? []);
|
|
547
|
-
const
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
623
|
+
const child_processConstrained = {
|
|
624
|
+
exec: createSpawn(child_process.exec),
|
|
625
|
+
execFile: createSpawn(child_process.execFile),
|
|
626
|
+
fork: createSpawn(child_process.fork, true), // this is launching node, so deemed safe
|
|
627
|
+
spawn: createSpawn(child_process.spawn),
|
|
628
|
+
execSync: function () {
|
|
629
|
+
throw new Error('execSync is not allowed');
|
|
553
630
|
},
|
|
554
631
|
};
|
|
632
|
+
child_processConstrained.default = child_processConstrained;
|
|
633
|
+
const REPLACED_BUILTIN_MODULES = {
|
|
634
|
+
child_process: child_processConstrained,
|
|
635
|
+
};
|
|
555
636
|
/**
|
|
556
637
|
* Creates a ChildProcess-like object for an existing process
|
|
557
638
|
*/
|
package/core/server/REST.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as harperLogger from '../utility/logging/harper_logger.js';
|
|
|
4
4
|
import { ServerOptions } from 'http';
|
|
5
5
|
import { ServerError, ClientError } from '../utility/errors/hdbError.js';
|
|
6
6
|
import { Resources } from '../resources/Resources.ts';
|
|
7
|
-
import { Resource } from '../resources/Resource.ts';
|
|
7
|
+
import { Resource, missingMethod, allowedMethods } from '../resources/Resource.ts';
|
|
8
8
|
import { IterableEventQueue } from '../resources/IterableEventQueue.ts';
|
|
9
9
|
import { transaction } from '../resources/transaction.ts';
|
|
10
10
|
import { Headers, mergeHeaders } from '../server/serverHelpers/Headers.ts';
|
|
@@ -114,29 +114,38 @@ async function http(request: Context & Request, nextHandler) {
|
|
|
114
114
|
switch (method) {
|
|
115
115
|
case 'GET':
|
|
116
116
|
case 'HEAD':
|
|
117
|
-
return resource.get(target, request);
|
|
117
|
+
return resource.get ? resource.get(target, request) : missingMethod(resource, 'get');
|
|
118
118
|
case 'POST':
|
|
119
|
-
return resource.post(target, request.data, request);
|
|
119
|
+
return resource.post ? resource.post(target, request.data, request) : missingMethod(resource, 'post');
|
|
120
120
|
case 'PUT':
|
|
121
|
-
return resource.put(target, request.data, request);
|
|
121
|
+
return resource.put ? resource.put(target, request.data, request) : missingMethod(resource, 'put');
|
|
122
122
|
case 'DELETE':
|
|
123
|
-
return resource.delete(target, request);
|
|
123
|
+
return resource.delete ? resource.delete(target, request) : missingMethod(resource, 'delete');
|
|
124
124
|
case 'PATCH':
|
|
125
|
-
return resource.patch(target, request.data, request);
|
|
125
|
+
return resource.patch ? resource.patch(target, request.data, request) : missingMethod(resource, 'patch');
|
|
126
126
|
case 'OPTIONS': // used primarily for CORS
|
|
127
|
-
headers.setIfNone(
|
|
127
|
+
headers.setIfNone(
|
|
128
|
+
'Allow',
|
|
129
|
+
allowedMethods(resource)
|
|
130
|
+
.map((method) => method.toUpperCase())
|
|
131
|
+
.join(', ')
|
|
132
|
+
);
|
|
128
133
|
return;
|
|
129
134
|
case 'CONNECT':
|
|
130
135
|
// websockets? and event-stream
|
|
131
|
-
return resource.connect(target, null, request);
|
|
136
|
+
return resource.connect ? resource.connect(target, null, request) : missingMethod(resource, 'connect');
|
|
132
137
|
case 'TRACE':
|
|
133
138
|
return 'Harper is the terminating server';
|
|
134
139
|
case 'QUERY':
|
|
135
|
-
return resource.query(target, request.data, request);
|
|
140
|
+
return resource.query ? resource.query(target, request.data, request) : missingMethod(resource, 'query');
|
|
136
141
|
case 'COPY': // methods suggested from webdav RFC 4918
|
|
137
|
-
return resource.copy
|
|
142
|
+
return resource.copy
|
|
143
|
+
? resource.copy(target, headersObject.destination, request)
|
|
144
|
+
: missingMethod(resource, 'copy');
|
|
138
145
|
case 'MOVE':
|
|
139
|
-
return resource.move
|
|
146
|
+
return resource.move
|
|
147
|
+
? resource.move(target, headersObject.destination, request)
|
|
148
|
+
: missingMethod(resource, 'move');
|
|
140
149
|
case 'BREW': // RFC 2324
|
|
141
150
|
throw new ClientError("Harper is short and stout and can't brew coffee", 418);
|
|
142
151
|
default:
|
package/core/server/http.ts
CHANGED
|
@@ -8,7 +8,7 @@ import harperLogger from '../utility/logging/harper_logger.js';
|
|
|
8
8
|
import { parentPort } from 'node:worker_threads';
|
|
9
9
|
import env from '../utility/environment/environmentManager.js';
|
|
10
10
|
import * as terms from '../utility/hdbTerms.ts';
|
|
11
|
-
import {
|
|
11
|
+
import { getConfigPath } from '../config/configUtils.js';
|
|
12
12
|
import { getTicketKeys } from './threads/manageThreads.js';
|
|
13
13
|
import { createTLSSelector } from '../security/keys.js';
|
|
14
14
|
import { createSecureServer } from 'node:http2';
|
|
@@ -181,7 +181,7 @@ function getPorts(options) {
|
|
|
181
181
|
|
|
182
182
|
if (options?.usageType === 'operations-api' && env.get(terms.CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET)) {
|
|
183
183
|
ports.push({
|
|
184
|
-
port:
|
|
184
|
+
port: getConfigPath(terms.CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET),
|
|
185
185
|
secure: false,
|
|
186
186
|
});
|
|
187
187
|
}
|
|
@@ -149,7 +149,7 @@ async function componentStatusRequestHandler(event) {
|
|
|
149
149
|
if (originatorThreadId === undefined) {
|
|
150
150
|
hdbLogger.debug('No originator threadId, falling back to broadcast');
|
|
151
151
|
} else {
|
|
152
|
-
hdbLogger.
|
|
152
|
+
hdbLogger.debug(`Failed to send direct response to thread ${originatorThreadId}, falling back to broadcast`);
|
|
153
153
|
}
|
|
154
154
|
await sendItcEvent(responseMessage);
|
|
155
155
|
}
|
package/core/utility/hdbTerms.ts
CHANGED
|
@@ -426,6 +426,7 @@ export const LEGACY_CONFIG_PARAMS = {
|
|
|
426
426
|
export const CONFIG_PARAMS = {
|
|
427
427
|
ANALYTICS_AGGREGATEPERIOD: 'analytics_aggregatePeriod',
|
|
428
428
|
ANALYTICS_REPLICATE: 'analytics_replicate',
|
|
429
|
+
ANALYTICS_STORAGEINTERVAL: 'analytics_storageInterval',
|
|
429
430
|
AUTHENTICATION_AUTHORIZELOCAL: 'authentication_authorizeLocal',
|
|
430
431
|
AUTHENTICATION_CACHETTL: 'authentication_cacheTTL',
|
|
431
432
|
AUTHENTICATION_COOKIE_DOMAINS: 'authentication_cookie_domains',
|
|
@@ -98,6 +98,14 @@ function updateConditional(logger) {
|
|
|
98
98
|
conditional.debug = LOG_LEVEL_HIERARCHY.debug >= logger.level ? logger.debug.bind(logger) : undefined;
|
|
99
99
|
conditional.trace = LOG_LEVEL_HIERARCHY.trace >= logger.level ? logger.trace.bind(logger) : undefined;
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Resolve a config path value against rootPath if it is relative.
|
|
103
|
+
*/
|
|
104
|
+
function resolveLogPath(configPath, rootPath) {
|
|
105
|
+
if (!configPath || !rootPath) return configPath;
|
|
106
|
+
if (pathModule.isAbsolute(configPath)) return configPath;
|
|
107
|
+
return pathModule.resolve(rootPath, configPath);
|
|
108
|
+
}
|
|
101
109
|
async function updateLogSettings() {
|
|
102
110
|
if (!rootConfig) {
|
|
103
111
|
// set up the initial watcher
|
|
@@ -109,6 +117,14 @@ async function updateLogSettings() {
|
|
|
109
117
|
}
|
|
110
118
|
let rootConfigObject = rootConfig.config;
|
|
111
119
|
const logOptions = rootConfigObject.logging ?? {};
|
|
120
|
+
// Resolve relative paths against rootPath from the same config
|
|
121
|
+
const rootPath = rootConfigObject.rootPath;
|
|
122
|
+
if (logOptions.root) {
|
|
123
|
+
logOptions.root = resolveLogPath(logOptions.root, rootPath);
|
|
124
|
+
}
|
|
125
|
+
if (logOptions.rotation?.path) {
|
|
126
|
+
logOptions.rotation.path = resolveLogPath(logOptions.rotation.path, rootPath);
|
|
127
|
+
}
|
|
112
128
|
updateLogger(mainLogger, logOptions);
|
|
113
129
|
logFilePath = mainLogger.path;
|
|
114
130
|
logConsole = logOptions.console ?? false;
|
|
@@ -805,13 +821,18 @@ function getLogConfig(hdbConfigPath) {
|
|
|
805
821
|
};
|
|
806
822
|
}
|
|
807
823
|
const configDoc = YAML.parseDocument(fs.readFileSync(hdbConfigPath, 'utf8'));
|
|
824
|
+
const rootPath = configDoc.getIn(['rootPath']);
|
|
808
825
|
const level = configDoc.getIn(['logging', 'level']);
|
|
809
|
-
const configLogPath = configDoc.getIn(['logging', 'root']);
|
|
826
|
+
const configLogPath = resolveLogPath(configDoc.getIn(['logging', 'root']), rootPath);
|
|
810
827
|
const toFile = configDoc.getIn(['logging', 'file']);
|
|
811
828
|
const toStream = configDoc.getIn(['logging', 'stdStreams']);
|
|
812
829
|
const logConsole = configDoc.getIn(['logging', 'console']);
|
|
813
830
|
const colorMode = configDoc.getIn(['logging', 'colors']) ?? true; // default to true
|
|
814
831
|
const rotation = configDoc.getIn(['logging', 'rotation'])?.toJSON();
|
|
832
|
+
// Resolve rotation path if relative
|
|
833
|
+
if (rotation?.path) {
|
|
834
|
+
rotation.path = resolveLogPath(rotation.path, rootPath);
|
|
835
|
+
}
|
|
815
836
|
|
|
816
837
|
return {
|
|
817
838
|
level,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
const hdbTerms = require('../hdbTerms.ts');
|
|
4
4
|
const hdbLogger = require('./harper_logger.js');
|
|
5
|
-
const envMangr = require('../environment/environmentManager.js');
|
|
6
5
|
const validator = require('../../validation/readLogValidator.js');
|
|
7
6
|
const path = require('path');
|
|
8
7
|
const fs = require('fs-extra');
|
|
9
8
|
const { once } = require('events');
|
|
9
|
+
const { getConfigPath } = require('../../config/configUtils.js');
|
|
10
10
|
const { handleHDBError, hdbErrors } = require('../errors/hdbError.js');
|
|
11
11
|
const { PACKAGE_ROOT } = require('../../utility/packageUtils.js');
|
|
12
12
|
const { server } = require('../../server/Server.ts');
|
|
@@ -39,7 +39,7 @@ async function readLog(request) {
|
|
|
39
39
|
// start pulling logs from the other nodes now so it can be done in parallel
|
|
40
40
|
let whenReplicatedResponse = server.replication.replicateOperation(request);
|
|
41
41
|
|
|
42
|
-
const logPath =
|
|
42
|
+
const logPath = getConfigPath(hdbTerms.HDB_SETTINGS_NAMES.LOG_PATH_KEY);
|
|
43
43
|
const logName = request.log_name === undefined ? hdbTerms.LOG_NAMES.HDB : request.log_name;
|
|
44
44
|
const readLogPath =
|
|
45
45
|
logName === hdbTerms.LOG_NAMES.INSTALL
|
|
@@ -14,7 +14,7 @@ module.exports = {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
const { CONFIG_PARAMS } = require('./hdbTerms.ts');
|
|
17
|
-
const {
|
|
17
|
+
const { getConfigPath } = require('../config/configUtils.js');
|
|
18
18
|
const { nonInteractiveSpawn } = require('../components/Application.ts');
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -34,7 +34,7 @@ async function installModules(req) {
|
|
|
34
34
|
|
|
35
35
|
let { projects, dryRun } = req;
|
|
36
36
|
|
|
37
|
-
const componentsRootDirPath =
|
|
37
|
+
const componentsRootDirPath = getConfigPath(CONFIG_PARAMS.COMPONENTSROOT);
|
|
38
38
|
|
|
39
39
|
const responseObject = {};
|
|
40
40
|
|
|
@@ -226,9 +226,17 @@ function doesPathExist(pathToCheck) {
|
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
function validatePath(value, helpers) {
|
|
229
|
-
Joi.assert(value, string.pattern(/^[
|
|
229
|
+
Joi.assert(value, string.pattern(/^[\\/~]$|([\\/~a-zA-Z_0-9:-]+)+$/, 'directory path'));
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
let resolvedValue;
|
|
232
|
+
if (value.startsWith('~/')) {
|
|
233
|
+
resolvedValue = path.join(os.homedir(), value.slice(1));
|
|
234
|
+
} else if (path.isAbsolute(value)) {
|
|
235
|
+
resolvedValue = value;
|
|
236
|
+
} else {
|
|
237
|
+
resolvedValue = path.join(hdbRoot, value);
|
|
238
|
+
}
|
|
239
|
+
const doesExistMsg = doesPathExist(resolvedValue);
|
|
232
240
|
if (doesExistMsg) {
|
|
233
241
|
return helpers.message(doesExistMsg);
|
|
234
242
|
}
|
|
@@ -302,17 +310,17 @@ function setDefaultRoot(parent, helpers) {
|
|
|
302
310
|
|
|
303
311
|
switch (configParam) {
|
|
304
312
|
case 'componentsRoot':
|
|
305
|
-
return
|
|
313
|
+
return DEFAULT_COMPONENTS_FOLDER;
|
|
306
314
|
case 'logging.root':
|
|
307
|
-
return
|
|
315
|
+
return DEFAULT_LOG_FOLDER;
|
|
308
316
|
case 'storage.path':
|
|
309
317
|
const legacyStoragePath = path.join(hdbRoot, hdbTerms.LEGACY_DATABASES_DIR_NAME);
|
|
310
|
-
if (fs.existsSync(legacyStoragePath)) return
|
|
311
|
-
return
|
|
318
|
+
if (fs.existsSync(legacyStoragePath)) return hdbTerms.LEGACY_DATABASES_DIR_NAME;
|
|
319
|
+
return hdbTerms.DATABASES_DIR_NAME;
|
|
312
320
|
case 'logging.rotation.path':
|
|
313
|
-
return
|
|
321
|
+
return DEFAULT_LOG_FOLDER;
|
|
314
322
|
case 'operationsApi.network.domainSocket':
|
|
315
|
-
return configParam == null ? null :
|
|
323
|
+
return configParam == null ? null : 'operations-server';
|
|
316
324
|
default:
|
|
317
325
|
throw new Error(`Error setting default root for config parameter: ${configParam}. Unrecognized config parameter`);
|
|
318
326
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const envMangr = require('../utility/environment/environmentManager.js');
|
|
4
3
|
const Joi = require('joi');
|
|
5
4
|
const validator = require('./validationWrapper.js');
|
|
6
5
|
const moment = require('moment');
|
|
7
6
|
const fs = require('fs-extra');
|
|
8
7
|
const path = require('path');
|
|
9
8
|
const _ = require('lodash');
|
|
9
|
+
const { getConfigPath } = require('../config/configUtils.js');
|
|
10
10
|
const hdbTerms = require('../utility/hdbTerms.ts');
|
|
11
11
|
const { LOG_LEVELS } = require('../utility/hdbTerms.ts');
|
|
12
12
|
|
|
@@ -49,7 +49,7 @@ function validateReadLogPath(value, helpers) {
|
|
|
49
49
|
return helpers.message(`'log_name' '${value}' is invalid.`);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
const logPath =
|
|
52
|
+
const logPath = getConfigPath(hdbTerms.HDB_SETTINGS_NAMES.LOG_PATH_KEY);
|
|
53
53
|
const logName = value === undefined ? hdbTerms.LOG_NAMES.HDB : value;
|
|
54
54
|
const readLogPath =
|
|
55
55
|
logName === hdbTerms.LOG_NAMES.INSTALL
|
package/dist/core/bin/harper.js
CHANGED
package/dist/core/bin/run.js
CHANGED
|
@@ -240,7 +240,7 @@ function startupLog(portResolutions) {
|
|
|
240
240
|
? `, TCP: ${env.get(CONFIG_PARAMS.THREADS_DEBUG_PORT)}\n`
|
|
241
241
|
: '\n';
|
|
242
242
|
}
|
|
243
|
-
const logFilePath = path.join(
|
|
243
|
+
const logFilePath = path.join(configUtils.getConfigPath(CONFIG_PARAMS.LOGGING_ROOT), 'hdb.log');
|
|
244
244
|
logMsg += `${pad('Logging:')}level: ${env.get(CONFIG_PARAMS.LOGGING_LEVEL)}, location: ${logFilePath + (env.get(CONFIG_PARAMS.LOGGING_STDSTREAMS) ? ', stdout/err' : '')}\n`;
|
|
245
245
|
// Database Log aka Applications API aka http (in config)
|
|
246
246
|
logMsg += pad('Default:');
|
|
@@ -258,7 +258,7 @@ function startupLog(portResolutions) {
|
|
|
258
258
|
logMsg += `CORS: ${env.get(CONFIG_PARAMS.OPERATIONSAPI_NETWORK_CORS)
|
|
259
259
|
? `enabled for ${env.get(CONFIG_PARAMS.OPERATIONSAPI_NETWORK_CORSACCESSLIST)}`
|
|
260
260
|
: 'disabled'}`;
|
|
261
|
-
logMsg += `, unix socket: ${
|
|
261
|
+
logMsg += `, unix socket: ${configUtils.getConfigPath(CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET)}\n`;
|
|
262
262
|
if (env.get(CONFIG_PARAMS.OPERATIONSAPI_NETWORK_PORT)) {
|
|
263
263
|
logMsg +=
|
|
264
264
|
pad('') +
|
package/dist/core/bin/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../core/bin/run.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../core/bin/run.js"],"names":[],"mappings":"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"}
|
|
@@ -304,7 +304,10 @@ class Application {
|
|
|
304
304
|
this.payload = payload;
|
|
305
305
|
this.packageIdentifier = packageIdentifier && derivePackageIdentifier(packageIdentifier);
|
|
306
306
|
this.install = install;
|
|
307
|
-
|
|
307
|
+
const componentsRoot = (0, configUtils_js_1.getConfigPath)(hdbTerms_js_1.CONFIG_PARAMS.COMPONENTSROOT);
|
|
308
|
+
if (!componentsRoot)
|
|
309
|
+
throw new Error('componentsRoot is not configured');
|
|
310
|
+
this.dirPath = (0, node_path_1.join)(componentsRoot, name);
|
|
308
311
|
this.logger = harper_logger_js_1.default.loggerWithTag(name);
|
|
309
312
|
this.packageManagerPrefix = (0, configUtils_js_1.getConfigValue)(hdbTerms_js_1.CONFIG_PARAMS.APPLICATIONS_PACKAGEMANAGERPREFIX);
|
|
310
313
|
}
|
|
@@ -359,7 +362,9 @@ async function installApplications() {
|
|
|
359
362
|
applicationInstallationPromises.push(prepareApplication(application));
|
|
360
363
|
}
|
|
361
364
|
const config = (0, configUtils_js_1.getConfigObj)();
|
|
362
|
-
const componentsRootDirPath = (0, configUtils_js_1.
|
|
365
|
+
const componentsRootDirPath = (0, configUtils_js_1.getConfigPath)(hdbTerms_js_1.CONFIG_PARAMS.COMPONENTSROOT);
|
|
366
|
+
if (!componentsRootDirPath)
|
|
367
|
+
throw new Error('componentsRoot is not configured');
|
|
363
368
|
// Ensure component directory exists
|
|
364
369
|
await (0, promises_1.mkdir)(componentsRootDirPath, { recursive: true });
|
|
365
370
|
const harperApplicationLockPath = (0, node_path_1.join)((0, configUtils_js_1.getConfigValue)(hdbTerms_js_1.CONFIG_PARAMS.ROOTPATH), 'harper-application-lock.json');
|