@harperfast/harper 5.0.0-alpha.10
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/CODE_OF_CONDUCT.md +83 -0
- package/LICENSE +201 -0
- package/README.md +54 -0
- package/SECURITY.md +18 -0
- package/SUPPORT.md +26 -0
- package/dist/bin/BinObjects.d.ts +9 -0
- package/dist/bin/BinObjects.js +15 -0
- package/dist/bin/BinObjects.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +12 -0
- package/dist/bin/cliOperations.js +156 -0
- package/dist/bin/cliOperations.js.map +1 -0
- package/dist/bin/copyDb.d.ts +2 -0
- package/dist/bin/copyDb.js +298 -0
- package/dist/bin/copyDb.js.map +1 -0
- package/dist/bin/harper.d.ts +2 -0
- package/dist/bin/harper.js +148 -0
- package/dist/bin/harper.js.map +1 -0
- package/dist/bin/install.d.ts +2 -0
- package/dist/bin/install.js +16 -0
- package/dist/bin/install.js.map +1 -0
- package/dist/bin/lite.d.ts +1 -0
- package/dist/bin/lite.js +6 -0
- package/dist/bin/lite.js.map +1 -0
- package/dist/bin/restart.d.ts +13 -0
- package/dist/bin/restart.js +194 -0
- package/dist/bin/restart.js.map +1 -0
- package/dist/bin/run.d.ts +21 -0
- package/dist/bin/run.js +365 -0
- package/dist/bin/run.js.map +1 -0
- package/dist/bin/status.d.ts +2 -0
- package/dist/bin/status.js +56 -0
- package/dist/bin/status.js.map +1 -0
- package/dist/bin/stop.d.ts +2 -0
- package/dist/bin/stop.js +17 -0
- package/dist/bin/stop.js.map +1 -0
- package/dist/bin/upgrade.d.ts +7 -0
- package/dist/bin/upgrade.js +111 -0
- package/dist/bin/upgrade.js.map +1 -0
- package/dist/components/Application.d.ts +110 -0
- package/dist/components/Application.js +509 -0
- package/dist/components/Application.js.map +1 -0
- package/dist/components/ApplicationScope.d.ts +28 -0
- package/dist/components/ApplicationScope.js +81 -0
- package/dist/components/ApplicationScope.js.map +1 -0
- package/dist/components/Component.d.ts +21 -0
- package/dist/components/Component.js +43 -0
- package/dist/components/Component.js.map +1 -0
- package/dist/components/ComponentV1.d.ts +69 -0
- package/dist/components/ComponentV1.js +263 -0
- package/dist/components/ComponentV1.js.map +1 -0
- package/dist/components/DEFAULT_CONFIG.d.ts +18 -0
- package/dist/components/DEFAULT_CONFIG.js +22 -0
- package/dist/components/DEFAULT_CONFIG.js.map +1 -0
- package/dist/components/EntryHandler.d.ts +61 -0
- package/dist/components/EntryHandler.js +148 -0
- package/dist/components/EntryHandler.js.map +1 -0
- package/dist/components/OptionsWatcher.d.ts +75 -0
- package/dist/components/OptionsWatcher.js +281 -0
- package/dist/components/OptionsWatcher.js.map +1 -0
- package/dist/components/PluginModule.d.ts +5 -0
- package/dist/components/PluginModule.js +3 -0
- package/dist/components/PluginModule.js.map +1 -0
- package/dist/components/Scope.d.ts +49 -0
- package/dist/components/Scope.js +262 -0
- package/dist/components/Scope.js.map +1 -0
- package/dist/components/componentLoader.js +498 -0
- package/dist/components/componentLoader.js.map +1 -0
- package/dist/components/deriveCommonPatternBase.d.ts +1 -0
- package/dist/components/deriveCommonPatternBase.js +34 -0
- package/dist/components/deriveCommonPatternBase.js.map +1 -0
- package/dist/components/deriveGlobOptions.d.ts +13 -0
- package/dist/components/deriveGlobOptions.js +30 -0
- package/dist/components/deriveGlobOptions.js.map +1 -0
- package/dist/components/deriveURLPath.d.ts +3 -0
- package/dist/components/deriveURLPath.js +55 -0
- package/dist/components/deriveURLPath.js.map +1 -0
- package/dist/components/operations.d.ts +97 -0
- package/dist/components/operations.js +556 -0
- package/dist/components/operations.js.map +1 -0
- package/dist/components/operationsValidation.d.ts +44 -0
- package/dist/components/operationsValidation.js +221 -0
- package/dist/components/operationsValidation.js.map +1 -0
- package/dist/components/packageComponent.d.ts +8 -0
- package/dist/components/packageComponent.js +42 -0
- package/dist/components/packageComponent.js.map +1 -0
- package/dist/components/requestRestart.d.ts +3 -0
- package/dist/components/requestRestart.js +27 -0
- package/dist/components/requestRestart.js.map +1 -0
- package/dist/components/resolveBaseURLPath.d.ts +15 -0
- package/dist/components/resolveBaseURLPath.js +38 -0
- package/dist/components/resolveBaseURLPath.js.map +1 -0
- package/dist/components/status/ComponentStatus.d.ts +61 -0
- package/dist/components/status/ComponentStatus.js +102 -0
- package/dist/components/status/ComponentStatus.js.map +1 -0
- package/dist/components/status/ComponentStatusRegistry.d.ts +89 -0
- package/dist/components/status/ComponentStatusRegistry.js +195 -0
- package/dist/components/status/ComponentStatusRegistry.js.map +1 -0
- package/dist/components/status/api.d.ts +104 -0
- package/dist/components/status/api.js +137 -0
- package/dist/components/status/api.js.map +1 -0
- package/dist/components/status/crossThread.d.ts +62 -0
- package/dist/components/status/crossThread.js +343 -0
- package/dist/components/status/crossThread.js.map +1 -0
- package/dist/components/status/errors.d.ts +68 -0
- package/dist/components/status/errors.js +123 -0
- package/dist/components/status/errors.js.map +1 -0
- package/dist/components/status/index.d.ts +35 -0
- package/dist/components/status/index.js +75 -0
- package/dist/components/status/index.js.map +1 -0
- package/dist/components/status/internal.d.ts +40 -0
- package/dist/components/status/internal.js +76 -0
- package/dist/components/status/internal.js.map +1 -0
- package/dist/components/status/registry.d.ts +10 -0
- package/dist/components/status/registry.js +14 -0
- package/dist/components/status/registry.js.map +1 -0
- package/dist/components/status/types.d.ts +94 -0
- package/dist/components/status/types.js +20 -0
- package/dist/components/status/types.js.map +1 -0
- package/dist/config/RootConfigWatcher.d.ts +10 -0
- package/dist/config/RootConfigWatcher.js +59 -0
- package/dist/config/RootConfigWatcher.js.map +1 -0
- package/dist/config/configHelpers.d.ts +6 -0
- package/dist/config/configHelpers.js +47 -0
- package/dist/config/configHelpers.js.map +1 -0
- package/dist/config/configUtils.d.ts +85 -0
- package/dist/config/configUtils.js +801 -0
- package/dist/config/configUtils.js.map +1 -0
- package/dist/config/harperConfigEnvVars.d.ts +46 -0
- package/dist/config/harperConfigEnvVars.js +527 -0
- package/dist/config/harperConfigEnvVars.js.map +1 -0
- package/dist/dataLayer/CreateAttributeObject.d.ts +19 -0
- package/dist/dataLayer/CreateAttributeObject.js +23 -0
- package/dist/dataLayer/CreateAttributeObject.js.map +1 -0
- package/dist/dataLayer/CreateTableObject.d.ts +7 -0
- package/dist/dataLayer/CreateTableObject.js +10 -0
- package/dist/dataLayer/CreateTableObject.js.map +1 -0
- package/dist/dataLayer/DataLayerObjects.d.ts +22 -0
- package/dist/dataLayer/DataLayerObjects.js +33 -0
- package/dist/dataLayer/DataLayerObjects.js.map +1 -0
- package/dist/dataLayer/DeleteBeforeObject.d.ts +18 -0
- package/dist/dataLayer/DeleteBeforeObject.js +21 -0
- package/dist/dataLayer/DeleteBeforeObject.js.map +1 -0
- package/dist/dataLayer/DeleteObject.d.ts +19 -0
- package/dist/dataLayer/DeleteObject.js +23 -0
- package/dist/dataLayer/DeleteObject.js.map +1 -0
- package/dist/dataLayer/DropAttributeObject.d.ts +7 -0
- package/dist/dataLayer/DropAttributeObject.js +10 -0
- package/dist/dataLayer/DropAttributeObject.js.map +1 -0
- package/dist/dataLayer/GetBackupObject.d.ts +16 -0
- package/dist/dataLayer/GetBackupObject.js +20 -0
- package/dist/dataLayer/GetBackupObject.js.map +1 -0
- package/dist/dataLayer/InsertObject.d.ts +20 -0
- package/dist/dataLayer/InsertObject.js +24 -0
- package/dist/dataLayer/InsertObject.js.map +1 -0
- package/dist/dataLayer/ReadAuditLogObject.d.ts +18 -0
- package/dist/dataLayer/ReadAuditLogObject.js +22 -0
- package/dist/dataLayer/ReadAuditLogObject.js.map +1 -0
- package/dist/dataLayer/SQLSearch.d.ts +171 -0
- package/dist/dataLayer/SQLSearch.js +1168 -0
- package/dist/dataLayer/SQLSearch.js.map +1 -0
- package/dist/dataLayer/SearchByConditionsObject.d.ts +85 -0
- package/dist/dataLayer/SearchByConditionsObject.js +57 -0
- package/dist/dataLayer/SearchByConditionsObject.js.map +1 -0
- package/dist/dataLayer/SearchByHashObject.d.ts +17 -0
- package/dist/dataLayer/SearchByHashObject.js +20 -0
- package/dist/dataLayer/SearchByHashObject.js.map +1 -0
- package/dist/dataLayer/SearchObject.d.ts +30 -0
- package/dist/dataLayer/SearchObject.js +33 -0
- package/dist/dataLayer/SearchObject.js.map +1 -0
- package/dist/dataLayer/SqlSearchObject.d.ts +10 -0
- package/dist/dataLayer/SqlSearchObject.js +13 -0
- package/dist/dataLayer/SqlSearchObject.js.map +1 -0
- package/dist/dataLayer/UpdateObject.d.ts +18 -0
- package/dist/dataLayer/UpdateObject.js +22 -0
- package/dist/dataLayer/UpdateObject.js.map +1 -0
- package/dist/dataLayer/UpsertObject.d.ts +18 -0
- package/dist/dataLayer/UpsertObject.js +22 -0
- package/dist/dataLayer/UpsertObject.js.map +1 -0
- package/dist/dataLayer/bulkLoad.d.ts +28 -0
- package/dist/dataLayer/bulkLoad.js +624 -0
- package/dist/dataLayer/bulkLoad.js.map +1 -0
- package/dist/dataLayer/dataObjects/BulkLoadObjects.d.ts +17 -0
- package/dist/dataLayer/dataObjects/BulkLoadObjects.js +25 -0
- package/dist/dataLayer/dataObjects/BulkLoadObjects.js.map +1 -0
- package/dist/dataLayer/dataObjects/UpsertObject.d.ts +18 -0
- package/dist/dataLayer/dataObjects/UpsertObject.js +22 -0
- package/dist/dataLayer/dataObjects/UpsertObject.js.map +1 -0
- package/dist/dataLayer/delete.d.ts +22 -0
- package/dist/dataLayer/delete.js +111 -0
- package/dist/dataLayer/delete.js.map +1 -0
- package/dist/dataLayer/export.d.ts +15 -0
- package/dist/dataLayer/export.js +302 -0
- package/dist/dataLayer/export.js.map +1 -0
- package/dist/dataLayer/getBackup.d.ts +8 -0
- package/dist/dataLayer/getBackup.js +28 -0
- package/dist/dataLayer/getBackup.js.map +1 -0
- package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +24 -0
- package/dist/dataLayer/harperBridge/BridgeMethods.js +62 -0
- package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +104 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.js +630 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.d.ts +14 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js +24 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js.map +1 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +11 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +68 -0
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js.map +1 -0
- package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -0
- package/dist/dataLayer/harperBridge/harperBridge.js +18 -0
- package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.d.ts +47 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js +99 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +15 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +18 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +12 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +74 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +13 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +54 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +23 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +62 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +82 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.d.ts +11 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +76 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +9 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +83 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +73 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +110 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.d.ts +14 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +33 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.d.ts +7 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +110 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +21 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.d.ts +14 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +25 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.d.ts +7 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +180 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +134 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +6 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +14 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +15 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +26 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js +17 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.d.ts +12 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +52 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +15 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +56 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +16 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +20 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.d.ts +16 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js +22 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.d.ts +16 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js +21 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.d.ts +19 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js +22 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.d.ts +18 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js +23 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.d.ts +18 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js +23 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.d.ts +21 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +24 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.d.ts +7 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +19 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.d.ts +22 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +137 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.d.ts +9 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +73 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +38 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +29 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +17 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +63 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.d.ts +106 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +251 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js.map +1 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.d.ts +8 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +66 -0
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js.map +1 -0
- package/dist/dataLayer/hdbInfoController.d.ts +28 -0
- package/dist/dataLayer/hdbInfoController.js +203 -0
- package/dist/dataLayer/hdbInfoController.js.map +1 -0
- package/dist/dataLayer/insert.d.ts +44 -0
- package/dist/dataLayer/insert.js +192 -0
- package/dist/dataLayer/insert.js.map +1 -0
- package/dist/dataLayer/readAuditLog.d.ts +8 -0
- package/dist/dataLayer/readAuditLog.js +37 -0
- package/dist/dataLayer/readAuditLog.js.map +1 -0
- package/dist/dataLayer/schema.d.ts +24 -0
- package/dist/dataLayer/schema.js +225 -0
- package/dist/dataLayer/schema.js.map +1 -0
- package/dist/dataLayer/schemaDescribe.d.ts +26 -0
- package/dist/dataLayer/schemaDescribe.js +265 -0
- package/dist/dataLayer/schemaDescribe.js.map +1 -0
- package/dist/dataLayer/search.d.ts +4 -0
- package/dist/dataLayer/search.js +56 -0
- package/dist/dataLayer/search.js.map +1 -0
- package/dist/dataLayer/transaction.d.ts +8 -0
- package/dist/dataLayer/transaction.js +16 -0
- package/dist/dataLayer/transaction.js.map +1 -0
- package/dist/dataLayer/update.d.ts +15 -0
- package/dist/dataLayer/update.js +107 -0
- package/dist/dataLayer/update.js.map +1 -0
- package/dist/globals.d.ts +7 -0
- package/dist/globals.js +12 -0
- package/dist/globals.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/json/systemSchema.json +373 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.d.ts +4 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js +13 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -0
- package/dist/resources/DatabaseTransaction.d.ts +96 -0
- package/dist/resources/DatabaseTransaction.js +354 -0
- package/dist/resources/DatabaseTransaction.js.map +1 -0
- package/dist/resources/ErrorResource.d.ts +26 -0
- package/dist/resources/ErrorResource.js +60 -0
- package/dist/resources/ErrorResource.js.map +1 -0
- package/dist/resources/IterableEventQueue.d.ts +19 -0
- package/dist/resources/IterableEventQueue.js +103 -0
- package/dist/resources/IterableEventQueue.js.map +1 -0
- package/dist/resources/LMDBTransaction.d.ts +43 -0
- package/dist/resources/LMDBTransaction.js +371 -0
- package/dist/resources/LMDBTransaction.js.map +1 -0
- package/dist/resources/RecordEncoder.d.ts +65 -0
- package/dist/resources/RecordEncoder.js +700 -0
- package/dist/resources/RecordEncoder.js.map +1 -0
- package/dist/resources/RequestTarget.d.ts +57 -0
- package/dist/resources/RequestTarget.js +91 -0
- package/dist/resources/RequestTarget.js.map +1 -0
- package/dist/resources/Resource.d.ts +152 -0
- package/dist/resources/Resource.js +727 -0
- package/dist/resources/Resource.js.map +1 -0
- package/dist/resources/ResourceInterface.d.ts +162 -0
- package/dist/resources/ResourceInterface.js +3 -0
- package/dist/resources/ResourceInterface.js.map +1 -0
- package/dist/resources/ResourceInterfaceV2.d.ts +21 -0
- package/dist/resources/ResourceInterfaceV2.js +3 -0
- package/dist/resources/ResourceInterfaceV2.js.map +1 -0
- package/dist/resources/ResourceV2.d.ts +30 -0
- package/dist/resources/ResourceV2.js +27 -0
- package/dist/resources/ResourceV2.js.map +1 -0
- package/dist/resources/Resources.d.ts +36 -0
- package/dist/resources/Resources.js +155 -0
- package/dist/resources/Resources.js.map +1 -0
- package/dist/resources/RocksIndexStore.d.ts +24 -0
- package/dist/resources/RocksIndexStore.js +54 -0
- package/dist/resources/RocksIndexStore.js.map +1 -0
- package/dist/resources/RocksTransactionLogStore.d.ts +60 -0
- package/dist/resources/RocksTransactionLogStore.js +344 -0
- package/dist/resources/RocksTransactionLogStore.js.map +1 -0
- package/dist/resources/Table.d.ts +854 -0
- package/dist/resources/Table.js +4350 -0
- package/dist/resources/Table.js.map +1 -0
- package/dist/resources/analytics/hostnames.d.ts +16 -0
- package/dist/resources/analytics/hostnames.js +72 -0
- package/dist/resources/analytics/hostnames.js.map +1 -0
- package/dist/resources/analytics/metadata.d.ts +9 -0
- package/dist/resources/analytics/metadata.js +12 -0
- package/dist/resources/analytics/metadata.js.map +1 -0
- package/dist/resources/analytics/profile.d.ts +2 -0
- package/dist/resources/analytics/profile.js +144 -0
- package/dist/resources/analytics/profile.js.map +1 -0
- package/dist/resources/analytics/read.d.ts +41 -0
- package/dist/resources/analytics/read.js +189 -0
- package/dist/resources/analytics/read.js.map +1 -0
- package/dist/resources/analytics/write.d.ts +131 -0
- package/dist/resources/analytics/write.js +822 -0
- package/dist/resources/analytics/write.js.map +1 -0
- package/dist/resources/auditStore.d.ts +81 -0
- package/dist/resources/auditStore.js +572 -0
- package/dist/resources/auditStore.js.map +1 -0
- package/dist/resources/blob.d.ts +137 -0
- package/dist/resources/blob.js +1273 -0
- package/dist/resources/blob.js.map +1 -0
- package/dist/resources/crdt.d.ts +19 -0
- package/dist/resources/crdt.js +146 -0
- package/dist/resources/crdt.js.map +1 -0
- package/dist/resources/dataLoader.d.ts +98 -0
- package/dist/resources/dataLoader.js +461 -0
- package/dist/resources/dataLoader.js.map +1 -0
- package/dist/resources/databases.d.ts +131 -0
- package/dist/resources/databases.js +1220 -0
- package/dist/resources/databases.js.map +1 -0
- package/dist/resources/graphql.d.ts +19 -0
- package/dist/resources/graphql.js +223 -0
- package/dist/resources/graphql.js.map +1 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +87 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +598 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -0
- package/dist/resources/indexes/customIndexes.d.ts +4 -0
- package/dist/resources/indexes/customIndexes.js +10 -0
- package/dist/resources/indexes/customIndexes.js.map +1 -0
- package/dist/resources/indexes/vector.d.ts +2 -0
- package/dist/resources/indexes/vector.js +40 -0
- package/dist/resources/indexes/vector.js.map +1 -0
- package/dist/resources/jsResource.d.ts +24 -0
- package/dist/resources/jsResource.js +82 -0
- package/dist/resources/jsResource.js.map +1 -0
- package/dist/resources/loadEnv.d.ts +5 -0
- package/dist/resources/loadEnv.js +28 -0
- package/dist/resources/loadEnv.js.map +1 -0
- package/dist/resources/login.d.ts +3 -0
- package/dist/resources/login.js +22 -0
- package/dist/resources/login.js.map +1 -0
- package/dist/resources/openApi.d.ts +27 -0
- package/dist/resources/openApi.js +327 -0
- package/dist/resources/openApi.js.map +1 -0
- package/dist/resources/registrationDeprecated.d.ts +4 -0
- package/dist/resources/registrationDeprecated.js +11 -0
- package/dist/resources/registrationDeprecated.js.map +1 -0
- package/dist/resources/replayLogs.d.ts +2 -0
- package/dist/resources/replayLogs.js +170 -0
- package/dist/resources/replayLogs.js.map +1 -0
- package/dist/resources/roles.d.ts +11 -0
- package/dist/resources/roles.js +102 -0
- package/dist/resources/roles.js.map +1 -0
- package/dist/resources/search.d.ts +39 -0
- package/dist/resources/search.js +1333 -0
- package/dist/resources/search.js.map +1 -0
- package/dist/resources/tracked.d.ts +49 -0
- package/dist/resources/tracked.js +665 -0
- package/dist/resources/tracked.js.map +1 -0
- package/dist/resources/transaction.d.ts +9 -0
- package/dist/resources/transaction.js +89 -0
- package/dist/resources/transaction.js.map +1 -0
- package/dist/resources/transactionBroadcast.d.ts +38 -0
- package/dist/resources/transactionBroadcast.js +263 -0
- package/dist/resources/transactionBroadcast.js.map +1 -0
- package/dist/security/auth.d.ts +9 -0
- package/dist/security/auth.js +408 -0
- package/dist/security/auth.js.map +1 -0
- package/dist/security/certificateVerification/certificateVerificationSource.d.ts +18 -0
- package/dist/security/certificateVerification/certificateVerificationSource.js +78 -0
- package/dist/security/certificateVerification/certificateVerificationSource.js.map +1 -0
- package/dist/security/certificateVerification/configValidation.d.ts +14 -0
- package/dist/security/certificateVerification/configValidation.js +101 -0
- package/dist/security/certificateVerification/configValidation.js.map +1 -0
- package/dist/security/certificateVerification/crlVerification.d.ts +29 -0
- package/dist/security/certificateVerification/crlVerification.js +564 -0
- package/dist/security/certificateVerification/crlVerification.js.map +1 -0
- package/dist/security/certificateVerification/index.d.ts +31 -0
- package/dist/security/certificateVerification/index.js +111 -0
- package/dist/security/certificateVerification/index.js.map +1 -0
- package/dist/security/certificateVerification/ocspVerification.d.ts +23 -0
- package/dist/security/certificateVerification/ocspVerification.js +117 -0
- package/dist/security/certificateVerification/ocspVerification.js.map +1 -0
- package/dist/security/certificateVerification/pkijs-ed25519-patch.d.ts +14 -0
- package/dist/security/certificateVerification/pkijs-ed25519-patch.js +183 -0
- package/dist/security/certificateVerification/pkijs-ed25519-patch.js.map +1 -0
- package/dist/security/certificateVerification/types.d.ts +105 -0
- package/dist/security/certificateVerification/types.js +6 -0
- package/dist/security/certificateVerification/types.js.map +1 -0
- package/dist/security/certificateVerification/verificationConfig.d.ts +29 -0
- package/dist/security/certificateVerification/verificationConfig.js +121 -0
- package/dist/security/certificateVerification/verificationConfig.js.map +1 -0
- package/dist/security/certificateVerification/verificationUtils.d.ts +79 -0
- package/dist/security/certificateVerification/verificationUtils.js +441 -0
- package/dist/security/certificateVerification/verificationUtils.js.map +1 -0
- package/dist/security/cryptoHash.d.ts +2 -0
- package/dist/security/cryptoHash.js +35 -0
- package/dist/security/cryptoHash.js.map +1 -0
- package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +11 -0
- package/dist/security/data_objects/PermissionAttributeResponseObject.js +14 -0
- package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -0
- package/dist/security/data_objects/PermissionResponseObject.d.ts +57 -0
- package/dist/security/data_objects/PermissionResponseObject.js +105 -0
- package/dist/security/data_objects/PermissionResponseObject.js.map +1 -0
- package/dist/security/data_objects/PermissionTableResponseObject.d.ts +16 -0
- package/dist/security/data_objects/PermissionTableResponseObject.js +19 -0
- package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -0
- package/dist/security/fastifyAuth.d.ts +2 -0
- package/dist/security/fastifyAuth.js +135 -0
- package/dist/security/fastifyAuth.js.map +1 -0
- package/dist/security/impersonation.d.ts +11 -0
- package/dist/security/impersonation.js +139 -0
- package/dist/security/impersonation.js.map +1 -0
- package/dist/security/jsLoader.d.ts +9 -0
- package/dist/security/jsLoader.js +522 -0
- package/dist/security/jsLoader.js.map +1 -0
- package/dist/security/keys.d.ts +119 -0
- package/dist/security/keys.js +866 -0
- package/dist/security/keys.js.map +1 -0
- package/dist/security/permissionsTranslator.d.ts +9 -0
- package/dist/security/permissionsTranslator.js +269 -0
- package/dist/security/permissionsTranslator.js.map +1 -0
- package/dist/security/role.d.ts +5 -0
- package/dist/security/role.js +160 -0
- package/dist/security/role.js.map +1 -0
- package/dist/security/tokenAuthentication.d.ts +38 -0
- package/dist/security/tokenAuthentication.js +205 -0
- package/dist/security/tokenAuthentication.js.map +1 -0
- package/dist/security/user.d.ts +77 -0
- package/dist/security/user.js +349 -0
- package/dist/security/user.js.map +1 -0
- package/dist/server/DurableSubscriptionsSession.d.ts +74 -0
- package/dist/server/DurableSubscriptionsSession.js +511 -0
- package/dist/server/DurableSubscriptionsSession.js.map +1 -0
- package/dist/server/REST.d.ts +16 -0
- package/dist/server/REST.js +423 -0
- package/dist/server/REST.js.map +1 -0
- package/dist/server/Server.d.ts +62 -0
- package/dist/server/Server.js +27 -0
- package/dist/server/Server.js.map +1 -0
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.d.ts +11 -0
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +32 -0
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js.map +1 -0
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.d.ts +6 -0
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +13 -0
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js.map +1 -0
- package/dist/server/fastifyRoutes/helpers/getServerOptions.d.ts +12 -0
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js +30 -0
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js.map +1 -0
- package/dist/server/fastifyRoutes/plugins/hdbCore.d.ts +2 -0
- package/dist/server/fastifyRoutes/plugins/hdbCore.js +31 -0
- package/dist/server/fastifyRoutes/plugins/hdbCore.js.map +1 -0
- package/dist/server/fastifyRoutes.d.ts +25 -0
- package/dist/server/fastifyRoutes.js +235 -0
- package/dist/server/fastifyRoutes.js.map +1 -0
- package/dist/server/graphqlQuerying.d.ts +1 -0
- package/dist/server/graphqlQuerying.js +630 -0
- package/dist/server/graphqlQuerying.js.map +1 -0
- package/dist/server/http.d.ts +15 -0
- package/dist/server/http.js +650 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/itc/serverHandlers.d.ts +10 -0
- package/dist/server/itc/serverHandlers.js +153 -0
- package/dist/server/itc/serverHandlers.js.map +1 -0
- package/dist/server/itc/utility/ITCEventObject.d.ts +6 -0
- package/dist/server/itc/utility/ITCEventObject.js +9 -0
- package/dist/server/itc/utility/ITCEventObject.js.map +1 -0
- package/dist/server/jobs/JobObject.d.ts +15 -0
- package/dist/server/jobs/JobObject.js +22 -0
- package/dist/server/jobs/JobObject.js.map +1 -0
- package/dist/server/jobs/jobProcess.d.ts +1 -0
- package/dist/server/jobs/jobProcess.js +66 -0
- package/dist/server/jobs/jobProcess.js.map +1 -0
- package/dist/server/jobs/jobRunner.d.ts +11 -0
- package/dist/server/jobs/jobRunner.js +160 -0
- package/dist/server/jobs/jobRunner.js.map +1 -0
- package/dist/server/jobs/jobs.d.ts +20 -0
- package/dist/server/jobs/jobs.js +267 -0
- package/dist/server/jobs/jobs.js.map +1 -0
- package/dist/server/loadRootComponents.d.ts +5 -0
- package/dist/server/loadRootComponents.js +45 -0
- package/dist/server/loadRootComponents.js.map +1 -0
- package/dist/server/mqtt.d.ts +9 -0
- package/dist/server/mqtt.js +466 -0
- package/dist/server/mqtt.js.map +1 -0
- package/dist/server/nodeName.d.ts +5 -0
- package/dist/server/nodeName.js +84 -0
- package/dist/server/nodeName.js.map +1 -0
- package/dist/server/operationsServer.d.ts +48 -0
- package/dist/server/operationsServer.js +265 -0
- package/dist/server/operationsServer.js.map +1 -0
- package/dist/server/serverHelpers/Headers.d.ts +20 -0
- package/dist/server/serverHelpers/Headers.js +134 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -0
- package/dist/server/serverHelpers/JSONStream.d.ts +14 -0
- package/dist/server/serverHelpers/JSONStream.js +322 -0
- package/dist/server/serverHelpers/JSONStream.js.map +1 -0
- package/dist/server/serverHelpers/OperationFunctionObject.d.ts +9 -0
- package/dist/server/serverHelpers/OperationFunctionObject.js +17 -0
- package/dist/server/serverHelpers/OperationFunctionObject.js.map +1 -0
- package/dist/server/serverHelpers/Request.d.ts +69 -0
- package/dist/server/serverHelpers/Request.js +141 -0
- package/dist/server/serverHelpers/Request.js.map +1 -0
- package/dist/server/serverHelpers/contentTypes.d.ts +57 -0
- package/dist/server/serverHelpers/contentTypes.js +639 -0
- package/dist/server/serverHelpers/contentTypes.js.map +1 -0
- package/dist/server/serverHelpers/requestTimePlugin.d.ts +2 -0
- package/dist/server/serverHelpers/requestTimePlugin.js +56 -0
- package/dist/server/serverHelpers/requestTimePlugin.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.d.ts +6 -0
- package/dist/server/serverHelpers/serverHandlers.js +130 -0
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -0
- package/dist/server/serverHelpers/serverUtilities.d.ts +29 -0
- package/dist/server/serverHelpers/serverUtilities.js +356 -0
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -0
- package/dist/server/serverRegistry.d.ts +3 -0
- package/dist/server/serverRegistry.js +11 -0
- package/dist/server/serverRegistry.js.map +1 -0
- package/dist/server/static.d.ts +16 -0
- package/dist/server/static.js +164 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/status/definitions.d.ts +27 -0
- package/dist/server/status/definitions.js +22 -0
- package/dist/server/status/definitions.js.map +1 -0
- package/dist/server/status/index.d.ts +26 -0
- package/dist/server/status/index.js +89 -0
- package/dist/server/status/index.js.map +1 -0
- package/dist/server/storageReclamation.d.ts +18 -0
- package/dist/server/storageReclamation.js +96 -0
- package/dist/server/storageReclamation.js.map +1 -0
- package/dist/server/threads/itc.d.ts +53 -0
- package/dist/server/threads/itc.js +81 -0
- package/dist/server/threads/itc.js.map +1 -0
- package/dist/server/threads/manageThreads.d.ts +30 -0
- package/dist/server/threads/manageThreads.js +579 -0
- package/dist/server/threads/manageThreads.js.map +1 -0
- package/dist/server/threads/socketRouter.d.ts +6 -0
- package/dist/server/threads/socketRouter.js +395 -0
- package/dist/server/threads/socketRouter.js.map +1 -0
- package/dist/server/threads/threadServer.d.ts +5 -0
- package/dist/server/threads/threadServer.js +288 -0
- package/dist/server/threads/threadServer.js.map +1 -0
- package/dist/server/throttle.d.ts +7 -0
- package/dist/server/throttle.js +71 -0
- package/dist/server/throttle.js.map +1 -0
- package/dist/sqlTranslator/SelectValidator.d.ts +79 -0
- package/dist/sqlTranslator/SelectValidator.js +274 -0
- package/dist/sqlTranslator/SelectValidator.js.map +1 -0
- package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +2 -0
- package/dist/sqlTranslator/alasqlFunctionImporter.js +55 -0
- package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -0
- package/dist/sqlTranslator/deleteTranslator.d.ts +2 -0
- package/dist/sqlTranslator/deleteTranslator.js +56 -0
- package/dist/sqlTranslator/deleteTranslator.js.map +1 -0
- package/dist/sqlTranslator/index.d.ts +16 -0
- package/dist/sqlTranslator/index.js +215 -0
- package/dist/sqlTranslator/index.js.map +1 -0
- package/dist/sqlTranslator/sql_statement_bucket.d.ts +46 -0
- package/dist/sqlTranslator/sql_statement_bucket.js +430 -0
- package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -0
- package/dist/upgrade/UpgradeObjects.d.ts +5 -0
- package/dist/upgrade/UpgradeObjects.js +12 -0
- package/dist/upgrade/UpgradeObjects.js.map +1 -0
- package/dist/upgrade/directives/directivesController.d.ts +30 -0
- package/dist/upgrade/directives/directivesController.js +76 -0
- package/dist/upgrade/directives/directivesController.js.map +1 -0
- package/dist/upgrade/directivesManager.d.ts +7 -0
- package/dist/upgrade/directivesManager.js +125 -0
- package/dist/upgrade/directivesManager.js.map +1 -0
- package/dist/upgrade/upgradePrompt.d.ts +13 -0
- package/dist/upgrade/upgradePrompt.js +102 -0
- package/dist/upgrade/upgradePrompt.js.map +1 -0
- package/dist/upgrade/upgradeUtilities.d.ts +10 -0
- package/dist/upgrade/upgradeUtilities.js +26 -0
- package/dist/upgrade/upgradeUtilities.js.map +1 -0
- package/dist/utility/AWS/AWSConnector.d.ts +2 -0
- package/dist/utility/AWS/AWSConnector.js +26 -0
- package/dist/utility/AWS/AWSConnector.js.map +1 -0
- package/dist/utility/OperationFunctionCaller.d.ts +9 -0
- package/dist/utility/OperationFunctionCaller.js +58 -0
- package/dist/utility/OperationFunctionCaller.js.map +1 -0
- package/dist/utility/assignCmdEnvVariables.d.ts +10 -0
- package/dist/utility/assignCmdEnvVariables.js +55 -0
- package/dist/utility/assignCmdEnvVariables.js.map +1 -0
- package/dist/utility/common_utils.d.ts +264 -0
- package/dist/utility/common_utils.js +806 -0
- package/dist/utility/common_utils.js.map +1 -0
- package/dist/utility/environment/environmentManager.d.ts +41 -0
- package/dist/utility/environment/environmentManager.js +179 -0
- package/dist/utility/environment/environmentManager.js.map +1 -0
- package/dist/utility/environment/systemInformation.d.ts +67 -0
- package/dist/utility/environment/systemInformation.js +326 -0
- package/dist/utility/environment/systemInformation.js.map +1 -0
- package/dist/utility/errors/commonErrors.d.ts +171 -0
- package/dist/utility/errors/commonErrors.js +230 -0
- package/dist/utility/errors/commonErrors.js.map +1 -0
- package/dist/utility/errors/hdbError.d.ts +76 -0
- package/dist/utility/errors/hdbError.js +128 -0
- package/dist/utility/errors/hdbError.js.map +1 -0
- package/dist/utility/functions/date/dateFunctions.d.ts +11 -0
- package/dist/utility/functions/date/dateFunctions.js +64 -0
- package/dist/utility/functions/date/dateFunctions.js.map +1 -0
- package/dist/utility/functions/geo.d.ts +74 -0
- package/dist/utility/functions/geo.js +311 -0
- package/dist/utility/functions/geo.js.map +1 -0
- package/dist/utility/functions/sql/alaSQLExtension.d.ts +13 -0
- package/dist/utility/functions/sql/alaSQLExtension.js +96 -0
- package/dist/utility/functions/sql/alaSQLExtension.js.map +1 -0
- package/dist/utility/globalSchema.d.ts +151 -0
- package/dist/utility/globalSchema.js +34 -0
- package/dist/utility/globalSchema.js.map +1 -0
- package/dist/utility/hdbTerms.d.ts +737 -0
- package/dist/utility/hdbTerms.js +756 -0
- package/dist/utility/hdbTerms.js.map +1 -0
- package/dist/utility/install/checkJWTTokensExist.d.ts +5 -0
- package/dist/utility/install/checkJWTTokensExist.js +53 -0
- package/dist/utility/install/checkJWTTokensExist.js.map +1 -0
- package/dist/utility/install/installer.d.ts +17 -0
- package/dist/utility/install/installer.js +569 -0
- package/dist/utility/install/installer.js.map +1 -0
- package/dist/utility/installation.d.ts +12 -0
- package/dist/utility/installation.js +64 -0
- package/dist/utility/installation.js.map +1 -0
- package/dist/utility/lmdb/DBIDefinition.d.ts +16 -0
- package/dist/utility/lmdb/DBIDefinition.js +19 -0
- package/dist/utility/lmdb/DBIDefinition.js.map +1 -0
- package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +21 -0
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js +24 -0
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +18 -0
- package/dist/utility/lmdb/InsertRecordsResponseObject.js +21 -0
- package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/OpenDBIObject.d.ts +23 -0
- package/dist/utility/lmdb/OpenDBIObject.js +29 -0
- package/dist/utility/lmdb/OpenDBIObject.js.map +1 -0
- package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +22 -0
- package/dist/utility/lmdb/OpenEnvironmentObject.js +40 -0
- package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -0
- package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +21 -0
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js +24 -0
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +18 -0
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js +21 -0
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -0
- package/dist/utility/lmdb/cleanLMDBMap.d.ts +6 -0
- package/dist/utility/lmdb/cleanLMDBMap.js +63 -0
- package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -0
- package/dist/utility/lmdb/commonUtility.d.ts +28 -0
- package/dist/utility/lmdb/commonUtility.js +120 -0
- package/dist/utility/lmdb/commonUtility.js.map +1 -0
- package/dist/utility/lmdb/deleteUtility.d.ts +10 -0
- package/dist/utility/lmdb/deleteUtility.js +115 -0
- package/dist/utility/lmdb/deleteUtility.js.map +1 -0
- package/dist/utility/lmdb/environmentUtility.d.ts +81 -0
- package/dist/utility/lmdb/environmentUtility.js +432 -0
- package/dist/utility/lmdb/environmentUtility.js.map +1 -0
- package/dist/utility/lmdb/searchCursorFunctions.d.ts +93 -0
- package/dist/utility/lmdb/searchCursorFunctions.js +174 -0
- package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -0
- package/dist/utility/lmdb/searchUtility.d.ts +204 -0
- package/dist/utility/lmdb/searchUtility.js +724 -0
- package/dist/utility/lmdb/searchUtility.js.map +1 -0
- package/dist/utility/lmdb/terms.d.ts +34 -0
- package/dist/utility/lmdb/terms.js +52 -0
- package/dist/utility/lmdb/terms.js.map +1 -0
- package/dist/utility/lmdb/writeUtility.d.ts +32 -0
- package/dist/utility/lmdb/writeUtility.js +360 -0
- package/dist/utility/lmdb/writeUtility.js.map +1 -0
- package/dist/utility/logging/harper_logger.d.ts +141 -0
- package/dist/utility/logging/harper_logger.js +862 -0
- package/dist/utility/logging/harper_logger.js.map +1 -0
- package/dist/utility/logging/logRotator.d.ts +19 -0
- package/dist/utility/logging/logRotator.js +146 -0
- package/dist/utility/logging/logRotator.js.map +1 -0
- package/dist/utility/logging/logger.d.ts +11 -0
- package/dist/utility/logging/logger.js +19 -0
- package/dist/utility/logging/logger.js.map +1 -0
- package/dist/utility/logging/readLog.d.ts +8 -0
- package/dist/utility/logging/readLog.js +339 -0
- package/dist/utility/logging/readLog.js.map +1 -0
- package/dist/utility/logging/transactionLog.d.ts +8 -0
- package/dist/utility/logging/transactionLog.js +46 -0
- package/dist/utility/logging/transactionLog.js.map +1 -0
- package/dist/utility/mount_hdb.d.ts +2 -0
- package/dist/utility/mount_hdb.js +51 -0
- package/dist/utility/mount_hdb.js.map +1 -0
- package/dist/utility/npmUtilities.d.ts +6 -0
- package/dist/utility/npmUtilities.js +91 -0
- package/dist/utility/npmUtilities.js.map +1 -0
- package/dist/utility/operationPermissions.d.ts +36 -0
- package/dist/utility/operationPermissions.js +116 -0
- package/dist/utility/operationPermissions.js.map +1 -0
- package/dist/utility/operation_authorization.d.ts +18 -0
- package/dist/utility/operation_authorization.js +667 -0
- package/dist/utility/operation_authorization.js.map +1 -0
- package/dist/utility/packageUtils.d.ts +9 -0
- package/dist/utility/packageUtils.js +52 -0
- package/dist/utility/packageUtils.js.map +1 -0
- package/dist/utility/password.d.ts +20 -0
- package/dist/utility/password.js +119 -0
- package/dist/utility/password.js.map +1 -0
- package/dist/utility/processManagement/processManagement.d.ts +35 -0
- package/dist/utility/processManagement/processManagement.js +188 -0
- package/dist/utility/processManagement/processManagement.js.map +1 -0
- package/dist/utility/processManagement/servicesConfig.d.ts +29 -0
- package/dist/utility/processManagement/servicesConfig.js +52 -0
- package/dist/utility/processManagement/servicesConfig.js.map +1 -0
- package/dist/utility/scripts/restartHdb.d.ts +1 -0
- package/dist/utility/scripts/restartHdb.js +23 -0
- package/dist/utility/scripts/restartHdb.js.map +1 -0
- package/dist/utility/signalling.d.ts +2 -0
- package/dist/utility/signalling.js +35 -0
- package/dist/utility/signalling.js.map +1 -0
- package/dist/utility/terms/certificates.d.ts +46 -0
- package/dist/utility/terms/certificates.js +65 -0
- package/dist/utility/terms/certificates.js.map +1 -0
- package/dist/utility/when.d.ts +3 -0
- package/dist/utility/when.js +18 -0
- package/dist/utility/when.js.map +1 -0
- package/dist/validation/bulkDeleteValidator.d.ts +2 -0
- package/dist/validation/bulkDeleteValidator.js +21 -0
- package/dist/validation/bulkDeleteValidator.js.map +1 -0
- package/dist/validation/check_permissions.d.ts +2 -0
- package/dist/validation/check_permissions.js +20 -0
- package/dist/validation/check_permissions.js.map +1 -0
- package/dist/validation/common_validators.d.ts +19 -0
- package/dist/validation/common_validators.js +76 -0
- package/dist/validation/common_validators.js.map +1 -0
- package/dist/validation/configValidator.d.ts +8 -0
- package/dist/validation/configValidator.js +292 -0
- package/dist/validation/configValidator.js.map +1 -0
- package/dist/validation/deleteValidator.d.ts +2 -0
- package/dist/validation/deleteValidator.js +15 -0
- package/dist/validation/deleteValidator.js.map +1 -0
- package/dist/validation/fileLoadValidator.d.ts +4 -0
- package/dist/validation/fileLoadValidator.js +138 -0
- package/dist/validation/fileLoadValidator.js.map +1 -0
- package/dist/validation/insertValidator.d.ts +2 -0
- package/dist/validation/insertValidator.js +38 -0
- package/dist/validation/insertValidator.js.map +1 -0
- package/dist/validation/installValidator.d.ts +7 -0
- package/dist/validation/installValidator.js +28 -0
- package/dist/validation/installValidator.js.map +1 -0
- package/dist/validation/readLogValidator.d.ts +2 -0
- package/dist/validation/readLogValidator.js +48 -0
- package/dist/validation/readLogValidator.js.map +1 -0
- package/dist/validation/role_validation.d.ts +3 -0
- package/dist/validation/role_validation.js +284 -0
- package/dist/validation/role_validation.js.map +1 -0
- package/dist/validation/schemaMetadataValidator.d.ts +16 -0
- package/dist/validation/schemaMetadataValidator.js +38 -0
- package/dist/validation/schemaMetadataValidator.js.map +1 -0
- package/dist/validation/searchValidator.d.ts +2 -0
- package/dist/validation/searchValidator.js +141 -0
- package/dist/validation/searchValidator.js.map +1 -0
- package/dist/validation/statusValidator.d.ts +19 -0
- package/dist/validation/statusValidator.js +95 -0
- package/dist/validation/statusValidator.js.map +1 -0
- package/dist/validation/transactionLogValidator.d.ts +2 -0
- package/dist/validation/transactionLogValidator.js +28 -0
- package/dist/validation/transactionLogValidator.js.map +1 -0
- package/dist/validation/user_validation.d.ts +3 -0
- package/dist/validation/user_validation.js +52 -0
- package/dist/validation/user_validation.js.map +1 -0
- package/dist/validation/validationWrapper.d.ts +15 -0
- package/dist/validation/validationWrapper.js +95 -0
- package/dist/validation/validationWrapper.js.map +1 -0
- package/package.json +225 -0
- package/static/README.md +13 -0
- package/static/ascii_logo.txt +21 -0
- package/static/defaultConfig.yaml +75 -0
|
@@ -0,0 +1,801 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const hdbTerms = require("../utility/hdbTerms.js");
|
|
3
|
+
const hdbUtils = require('../utility/common_utils.js');
|
|
4
|
+
const logger = require('../utility/logging/harper_logger.js');
|
|
5
|
+
const { configValidator } = require('../validation/configValidator.js');
|
|
6
|
+
const fs = require('fs-extra');
|
|
7
|
+
const YAML = require('yaml');
|
|
8
|
+
const path = require('path');
|
|
9
|
+
const isNumber = require('is-number');
|
|
10
|
+
const PropertiesReader = require('properties-reader');
|
|
11
|
+
const _ = require('lodash');
|
|
12
|
+
const { handleHDBError } = require('../utility/errors/hdbError.js');
|
|
13
|
+
const { HTTP_STATUS_CODES, HDB_ERROR_MSGS } = require('../utility/errors/commonErrors.js');
|
|
14
|
+
const { server } = require("../server/Server.js");
|
|
15
|
+
const { getBackupDirPath } = require("./configHelpers.js");
|
|
16
|
+
const { PACKAGE_ROOT } = require('../utility/packageUtils');
|
|
17
|
+
const { DATABASES_PARAM_CONFIG, CONFIG_PARAMS, CONFIG_PARAM_MAP } = hdbTerms;
|
|
18
|
+
const UNINIT_GET_CONFIG_ERR = 'Unable to get config value because config is uninitialized';
|
|
19
|
+
const CONFIG_INIT_MSG = 'Config successfully initialized';
|
|
20
|
+
const BACKUP_ERR = 'Error backing up config file';
|
|
21
|
+
const EMPTY_GET_VALUE = 'Empty parameter sent to getConfigValue';
|
|
22
|
+
const DEFAULT_CONFIG_FILE_PATH = path.join(PACKAGE_ROOT, 'static', hdbTerms.HDB_DEFAULT_CONFIG_FILE);
|
|
23
|
+
const CONFIGURE_SUCCESS_RESPONSE = 'Configuration successfully set. You must restart Harper for new config settings to take effect.';
|
|
24
|
+
const DEPRECATED_CONFIG = {
|
|
25
|
+
logging_rotation_retain: 'logging.rotation.retain',
|
|
26
|
+
logging_rotation_rotate: 'logging.rotation.rotate',
|
|
27
|
+
logging_rotation_rotateinterval: 'logging.rotation.rotateInterval',
|
|
28
|
+
logging_rotation_rotatemodule: 'logging.rotation.rotateModule',
|
|
29
|
+
logging_rotation_timezone: 'logging.rotation.timezone',
|
|
30
|
+
logging_rotation_workerinterval: 'logging.rotation.workerInterval',
|
|
31
|
+
};
|
|
32
|
+
let flatDefaultConfigObj;
|
|
33
|
+
let flatConfigObj;
|
|
34
|
+
let configObj;
|
|
35
|
+
exports.createConfigFile = createConfigFile;
|
|
36
|
+
exports.getDefaultConfig = getDefaultConfig;
|
|
37
|
+
exports.getConfigValue = getConfigValue;
|
|
38
|
+
exports.initConfig = initConfig;
|
|
39
|
+
exports.flattenConfig = flattenConfig;
|
|
40
|
+
exports.updateConfigValue = updateConfigValue;
|
|
41
|
+
exports.updateConfigObject = updateConfigObject;
|
|
42
|
+
exports.getConfiguration = getConfiguration;
|
|
43
|
+
exports.setConfiguration = setConfiguration;
|
|
44
|
+
exports.readConfigFile = readConfigFile;
|
|
45
|
+
exports.initOldConfig = initOldConfig;
|
|
46
|
+
exports.getConfigFromFile = getConfigFromFile;
|
|
47
|
+
exports.getConfigFilePath = getConfigFilePath;
|
|
48
|
+
exports.addConfig = addConfig;
|
|
49
|
+
exports.deleteConfigFromFile = deleteConfigFromFile;
|
|
50
|
+
exports.getConfigObj = getConfigObj;
|
|
51
|
+
exports.resolvePath = resolvePath;
|
|
52
|
+
exports.getFlatConfigObj = getFlatConfigObj;
|
|
53
|
+
function resolvePath(relativePath) {
|
|
54
|
+
if (relativePath?.startsWith('~/')) {
|
|
55
|
+
return path.join(hdbUtils.getHomeDir(), relativePath.slice(1));
|
|
56
|
+
}
|
|
57
|
+
const env = require('../utility/environment/environmentManager.js');
|
|
58
|
+
try {
|
|
59
|
+
return path.resolve(env.getHdbBasePath(), relativePath);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error('Unable to resolve path', relativePath, error);
|
|
63
|
+
return relativePath;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Builds the Harper config file using user inputs and default values from defaultConfig.yaml
|
|
68
|
+
* @param args - any args that the user provided.
|
|
69
|
+
*/
|
|
70
|
+
function createConfigFile(args, skipFsValidation = false) {
|
|
71
|
+
const configDoc = parseYamlDoc(DEFAULT_CONFIG_FILE_PATH);
|
|
72
|
+
flatDefaultConfigObj = flattenConfig(configDoc.toJSON());
|
|
73
|
+
// Loop through the user inputted args. Match them to a parameter in the default config file and update value.
|
|
74
|
+
let schemasArgs;
|
|
75
|
+
for (const arg in args) {
|
|
76
|
+
let configParam = CONFIG_PARAM_MAP[arg.toLowerCase()];
|
|
77
|
+
// Schemas config args are handled differently, so if they exist set them to var that will be used by setSchemasConfig
|
|
78
|
+
if (configParam === CONFIG_PARAMS.DATABASES) {
|
|
79
|
+
if (Array.isArray(args[arg])) {
|
|
80
|
+
schemasArgs = args[arg];
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
schemasArgs = Object.keys(args[arg]).map((key) => {
|
|
84
|
+
return { [key]: args[arg][key] };
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (!configParam && (arg.endsWith('_package') || arg.endsWith('_port'))) {
|
|
90
|
+
configParam = arg;
|
|
91
|
+
}
|
|
92
|
+
if (configParam !== undefined) {
|
|
93
|
+
const splitParam = configParam.split('_');
|
|
94
|
+
let value = castConfigValue(configParam, args[arg]);
|
|
95
|
+
if (configParam === 'rootPath' && value?.endsWith('/'))
|
|
96
|
+
value = value.slice(0, -1);
|
|
97
|
+
try {
|
|
98
|
+
// Remove parent structure if it's a boolean to avoid type conflicts when setting the new value
|
|
99
|
+
if (splitParam.length > 1 && typeof configDoc.getIn(splitParam.slice(0, -1)) === 'boolean') {
|
|
100
|
+
configDoc.deleteIn(splitParam.slice(0, -1));
|
|
101
|
+
}
|
|
102
|
+
configDoc.setIn([...splitParam], value);
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
logger.error(err);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (schemasArgs)
|
|
110
|
+
setSchemasConfig(configDoc, schemasArgs);
|
|
111
|
+
// Apply HARPER_DEFAULT_CONFIG and HARPER_SET_CONFIG environment variables BEFORE validation
|
|
112
|
+
// This allows runtime env vars to resolve port conflicts before validation
|
|
113
|
+
// Must be called AFTER rootPath is set in configDoc
|
|
114
|
+
// Mutates configDoc in place
|
|
115
|
+
applyRuntimeEnvVarConfig(configDoc, null, { isInstall: true });
|
|
116
|
+
// Validates config doc and if required sets default values for some parameters.
|
|
117
|
+
validateConfig(configDoc, skipFsValidation);
|
|
118
|
+
const configObj = configDoc.toJSON();
|
|
119
|
+
flatConfigObj = flattenConfig(configObj);
|
|
120
|
+
// Create new config file and write config doc to it.
|
|
121
|
+
const hdbRoot = configDoc.getIn(['rootPath']);
|
|
122
|
+
const configFilePath = path.join(hdbRoot, hdbTerms.HARPER_CONFIG_FILE);
|
|
123
|
+
fs.createFileSync(configFilePath);
|
|
124
|
+
if (configDoc.errors?.length > 0) {
|
|
125
|
+
throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
|
|
126
|
+
}
|
|
127
|
+
fs.writeFileSync(configFilePath, String(configDoc));
|
|
128
|
+
logger.trace(`Config file written to ${configFilePath}`);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Sets any schema/table location config that belongs under the 'schemas' config element.
|
|
132
|
+
* @param configDoc
|
|
133
|
+
* @param schemaConfJson
|
|
134
|
+
*/
|
|
135
|
+
function setSchemasConfig(configDoc, schemaConfJson) {
|
|
136
|
+
let schemasConf;
|
|
137
|
+
try {
|
|
138
|
+
try {
|
|
139
|
+
schemasConf = JSON.parse(schemaConfJson);
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
if (!hdbUtils.isObject(schemaConfJson))
|
|
143
|
+
throw err;
|
|
144
|
+
schemasConf = schemaConfJson;
|
|
145
|
+
}
|
|
146
|
+
for (const schemaConf of schemasConf) {
|
|
147
|
+
const schema = Object.keys(schemaConf)[0];
|
|
148
|
+
if (schemaConf[schema].hasOwnProperty(DATABASES_PARAM_CONFIG.TABLES)) {
|
|
149
|
+
for (const table in schemaConf[schema][DATABASES_PARAM_CONFIG.TABLES]) {
|
|
150
|
+
// Table path var can be 'path' or 'auditPath'
|
|
151
|
+
for (const tablePathVar in schemaConf[schema][DATABASES_PARAM_CONFIG.TABLES][table]) {
|
|
152
|
+
const tablePath = schemaConf[schema][DATABASES_PARAM_CONFIG.TABLES][table][tablePathVar];
|
|
153
|
+
const keys = [CONFIG_PARAMS.DATABASES, schema, DATABASES_PARAM_CONFIG.TABLES, table, tablePathVar];
|
|
154
|
+
configDoc.hasIn(keys) ? configDoc.setIn(keys, tablePath) : configDoc.addIn(keys, tablePath);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Schema path var can be 'path' or 'auditPath'
|
|
160
|
+
for (const schemaPathVar in schemaConf[schema]) {
|
|
161
|
+
const schemaPath = schemaConf[schema][schemaPathVar];
|
|
162
|
+
const keys = [CONFIG_PARAMS.DATABASES, schema, schemaPathVar];
|
|
163
|
+
configDoc.hasIn(keys) ? configDoc.setIn(keys, schemaPath) : configDoc.addIn(keys, schemaPath);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
logger.error('Error parsing schemas CLI/env config arguments', err);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get a default config value from in memory object.
|
|
174
|
+
* If object is undefined read the default config yaml and instantiate default config obj.
|
|
175
|
+
* @param param
|
|
176
|
+
* @returns {*}
|
|
177
|
+
*/
|
|
178
|
+
function getDefaultConfig(param) {
|
|
179
|
+
if (flatDefaultConfigObj === undefined) {
|
|
180
|
+
const configDoc = parseYamlDoc(DEFAULT_CONFIG_FILE_PATH);
|
|
181
|
+
flatDefaultConfigObj = flattenConfig(configDoc.toJSON());
|
|
182
|
+
}
|
|
183
|
+
const paramMap = CONFIG_PARAM_MAP[param.toLowerCase()];
|
|
184
|
+
if (paramMap === undefined)
|
|
185
|
+
return undefined;
|
|
186
|
+
return flatDefaultConfigObj[paramMap.toLowerCase()];
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get config value from in memory flattened config obj.
|
|
190
|
+
* This functions depends on the config obj being initialized.
|
|
191
|
+
* We do not want it to get value directly from config file as this adds unnecessary overhead.
|
|
192
|
+
* @param param
|
|
193
|
+
* @returns {undefined|*}
|
|
194
|
+
*/
|
|
195
|
+
function getConfigValue(param) {
|
|
196
|
+
if (param == null) {
|
|
197
|
+
logger.info(EMPTY_GET_VALUE);
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
if (flatConfigObj === undefined) {
|
|
201
|
+
logger.trace(UNINIT_GET_CONFIG_ERR);
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
const paramMap = CONFIG_PARAM_MAP[param.toLowerCase()];
|
|
205
|
+
if (paramMap === undefined)
|
|
206
|
+
return undefined;
|
|
207
|
+
return flatConfigObj[paramMap.toLowerCase()];
|
|
208
|
+
}
|
|
209
|
+
function getConfigFilePath(bootPropsFilePath = hdbUtils.getPropsFilePath()) {
|
|
210
|
+
const cmdArgs = hdbUtils.getEnvCliRootPath();
|
|
211
|
+
if (cmdArgs) {
|
|
212
|
+
let harperConfigPath = resolvePath(path.join(cmdArgs, hdbTerms.HARPER_CONFIG_FILE));
|
|
213
|
+
if (fs.existsSync(harperConfigPath))
|
|
214
|
+
return harperConfigPath;
|
|
215
|
+
if (fs.existsSync(resolvePath(path.join(cmdArgs, hdbTerms.HDB_CONFIG_FILE))))
|
|
216
|
+
return resolvePath(path.join(cmdArgs, hdbTerms.HDB_CONFIG_FILE));
|
|
217
|
+
return harperConfigPath;
|
|
218
|
+
}
|
|
219
|
+
const hdbProperties = PropertiesReader(bootPropsFilePath);
|
|
220
|
+
return resolvePath(hdbProperties.get(hdbTerms.HDB_SETTINGS_NAMES.SETTINGS_PATH_KEY));
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* If in memory config obj is undefined or init is being forced,
|
|
224
|
+
* read and parses the Harper config file and add to config object.
|
|
225
|
+
* @param force
|
|
226
|
+
*/
|
|
227
|
+
function initConfig(force = false) {
|
|
228
|
+
if (flatConfigObj === undefined || force) {
|
|
229
|
+
let bootPropsFilePath;
|
|
230
|
+
if (!hdbUtils.noBootFile()) {
|
|
231
|
+
bootPropsFilePath = hdbUtils.getPropsFilePath();
|
|
232
|
+
try {
|
|
233
|
+
fs.accessSync(bootPropsFilePath, fs.constants.F_OK | fs.constants.R_OK);
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
logger.error(err);
|
|
237
|
+
throw handleHDBError(new Error(), `Harper properties file at path ${bootPropsFilePath} does not exist`, HTTP_STATUS_CODES.BAD_REQUEST);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
const configFilePath = getConfigFilePath(bootPropsFilePath);
|
|
241
|
+
let configDoc;
|
|
242
|
+
// if this is true, user is upgrading from version prior to 4.0.0. We need to initialize existing
|
|
243
|
+
// params.
|
|
244
|
+
if (configFilePath.includes('config/settings.js')) {
|
|
245
|
+
try {
|
|
246
|
+
initOldConfig(configFilePath);
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
catch (initErr) {
|
|
250
|
+
// If user has an old boot prop file but hdb is not installed init old config will throw ENOENT error.
|
|
251
|
+
// We want to squash that error so that new version of HDB can be installed.
|
|
252
|
+
if (initErr.code !== hdbTerms.NODE_ERROR_CODES.ENOENT)
|
|
253
|
+
throw initErr;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
try {
|
|
257
|
+
configDoc = parseYamlDoc(configFilePath);
|
|
258
|
+
}
|
|
259
|
+
catch (err) {
|
|
260
|
+
if (err.code === hdbTerms.NODE_ERROR_CODES.ENOENT) {
|
|
261
|
+
logger.trace(`Harper config file not found at ${configFilePath}.
|
|
262
|
+
This can occur during early stages of install where the config file has not yet been created`);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
logger.error(err);
|
|
267
|
+
throw handleHDBError(new Error(), `Error reading Harper config file at ${configFilePath}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
checkForUpdatedConfig(configDoc, configFilePath);
|
|
271
|
+
// Apply HARPER_DEFAULT_CONFIG and HARPER_SET_CONFIG environment variables
|
|
272
|
+
applyRuntimeEnvVarConfig(configDoc, configFilePath);
|
|
273
|
+
// Validates config doc and if required sets default values for some parameters.
|
|
274
|
+
validateConfig(configDoc);
|
|
275
|
+
const configObj = configDoc.toJSON();
|
|
276
|
+
server.config = configObj;
|
|
277
|
+
flatConfigObj = flattenConfig(configObj);
|
|
278
|
+
// If config has old version of logrotate enabled let user know it has been deprecated.
|
|
279
|
+
if (flatConfigObj['logging_rotation_rotate']) {
|
|
280
|
+
for (const key in DEPRECATED_CONFIG) {
|
|
281
|
+
if (flatConfigObj[key])
|
|
282
|
+
logger.error(`Config ${DEPRECATED_CONFIG[key]} has been deprecated. Please check https://docs.harperdb.io/docs/ for further details.`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
logger.trace(CONFIG_INIT_MSG);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* When running an upgraded version there is a chance these config params won't exist.
|
|
290
|
+
* To address this we check for them and write them to config file if needed.
|
|
291
|
+
* @param configDoc
|
|
292
|
+
* @param configFilePath
|
|
293
|
+
*/
|
|
294
|
+
function checkForUpdatedConfig(configDoc, configFilePath) {
|
|
295
|
+
const rootPath = configDoc.getIn(['rootPath']);
|
|
296
|
+
let updateFile = false;
|
|
297
|
+
if (!configDoc.hasIn(['storage', 'path'])) {
|
|
298
|
+
configDoc.setIn(['storage', 'path'], path.join(rootPath, 'database'));
|
|
299
|
+
updateFile = true;
|
|
300
|
+
}
|
|
301
|
+
if (!configDoc.hasIn(['logging', 'rotation', 'path'])) {
|
|
302
|
+
configDoc.setIn(['logging', 'rotation', 'path'], path.join(rootPath, 'log'));
|
|
303
|
+
updateFile = true;
|
|
304
|
+
}
|
|
305
|
+
if (!configDoc.hasIn(['authentication'])) {
|
|
306
|
+
configDoc.addIn(['authentication'], {
|
|
307
|
+
cacheTTL: 30000,
|
|
308
|
+
enableSessions: true,
|
|
309
|
+
operationTokenTimeout: configDoc.getIn(['operationsApi', 'authentication', 'operationTokenTimeout']) ?? '1d',
|
|
310
|
+
refreshTokenTimeout: configDoc.getIn(['operationsApi', 'authentication', 'refreshTokenTimeout']) ?? '30d',
|
|
311
|
+
});
|
|
312
|
+
updateFile = true;
|
|
313
|
+
}
|
|
314
|
+
if (!configDoc.hasIn(['analytics'])) {
|
|
315
|
+
configDoc.addIn(['analytics'], {
|
|
316
|
+
aggregatePeriod: 60,
|
|
317
|
+
replicate: false,
|
|
318
|
+
});
|
|
319
|
+
updateFile = true;
|
|
320
|
+
}
|
|
321
|
+
if (updateFile) {
|
|
322
|
+
logger.trace('Updating config file with missing config params');
|
|
323
|
+
if (configDoc.errors?.length > 0) {
|
|
324
|
+
throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
|
|
325
|
+
}
|
|
326
|
+
fs.writeFileSync(configFilePath, String(configDoc));
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Validates the config doc and adds any default values to doc.
|
|
331
|
+
* NOTE - If any default values are set in configValidator they also need to be 'setIn' in this function.
|
|
332
|
+
* @param configDoc
|
|
333
|
+
*/
|
|
334
|
+
function validateConfig(configDoc, skipFsValidation = false) {
|
|
335
|
+
const configJson = configDoc.toJSON();
|
|
336
|
+
// Config might have some legacy values that will be modified by validator. We need to set old to new here before
|
|
337
|
+
// validator sets any defaults
|
|
338
|
+
configJson.componentsRoot = configJson.componentsRoot ?? configJson?.customFunctions?.root;
|
|
339
|
+
if (configJson?.http?.threads)
|
|
340
|
+
configJson.threads = configJson?.http?.threads;
|
|
341
|
+
if (configJson.http?.port && configJson.http?.port === configJson.http?.securePort) {
|
|
342
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.CONFIG_VALIDATION('http.port and http.securePort cannot be the same value'), HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
|
|
343
|
+
}
|
|
344
|
+
if (configJson.operationsApi?.network?.port &&
|
|
345
|
+
configJson.operationsApi?.network?.port === configJson.operationsApi?.network?.securePort) {
|
|
346
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.CONFIG_VALIDATION('operationsApi.network.port and operationsApi.network.securePort cannot be the same value'), HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
|
|
347
|
+
}
|
|
348
|
+
const validation = configValidator(configJson, skipFsValidation);
|
|
349
|
+
if (validation.error) {
|
|
350
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.CONFIG_VALIDATION(validation.error.message), HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
|
|
351
|
+
}
|
|
352
|
+
// These parameters can be set by the validator if they arent provided by user,
|
|
353
|
+
// for this reason we need to update the config yaml doc after the validator has run.
|
|
354
|
+
if (typeof validation.value.threads === 'object')
|
|
355
|
+
configDoc.setIn(['threads', 'count'], validation.value.threads.count);
|
|
356
|
+
else
|
|
357
|
+
configDoc.setIn(['threads'], validation.value.threads);
|
|
358
|
+
configDoc.setIn(['componentsRoot'], validation.value.componentsRoot); // TODO: check this works with old config
|
|
359
|
+
configDoc.setIn(['logging', 'root'], validation.value.logging.root);
|
|
360
|
+
configDoc.setIn(['storage', 'path'], validation.value.storage.path);
|
|
361
|
+
configDoc.setIn(['logging', 'rotation', 'path'], validation.value.logging.rotation.path);
|
|
362
|
+
configDoc.setIn(['operationsApi', 'network', 'domainSocket'], validation.value?.operationsApi?.network?.domainSocket);
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Updates the in memory flattened config object. Does not update the config file.
|
|
366
|
+
* This is mainly here to accommodate older versions of environmentManager and unit tests.
|
|
367
|
+
* @param param
|
|
368
|
+
* @param value
|
|
369
|
+
*/
|
|
370
|
+
function updateConfigObject(param, value) {
|
|
371
|
+
if (flatConfigObj === undefined) {
|
|
372
|
+
// This is here to allow unit tests to work when HDB is not installed.
|
|
373
|
+
flatConfigObj = {};
|
|
374
|
+
}
|
|
375
|
+
const configObjKey = CONFIG_PARAM_MAP[param.toLowerCase()];
|
|
376
|
+
if (configObjKey === undefined) {
|
|
377
|
+
logger.trace(`Unable to update config object because config param '${param}' does not exist`);
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
flatConfigObj[configObjKey.toLowerCase()] = value;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Updates and validates a config value in config file. Can also create a backup of config before updating.
|
|
384
|
+
* @param param - the config value to update
|
|
385
|
+
* @param value - the value to set the config to
|
|
386
|
+
* @param parsedArgs - an object of param/values to update
|
|
387
|
+
* @param createBackup - if true backup file is created
|
|
388
|
+
* @param update_config_obj - if true updates the in memory flattened config object
|
|
389
|
+
*/
|
|
390
|
+
function updateConfigValue(param, value, parsedArgs = undefined, createBackup = false, update_config_obj = false, skipParamMap = false) {
|
|
391
|
+
if (flatConfigObj === undefined) {
|
|
392
|
+
initConfig();
|
|
393
|
+
}
|
|
394
|
+
// Old root/path is used just in case they are updating the operations api root.
|
|
395
|
+
const oldHdbRoot = getConfigValue(CONFIG_PARAM_MAP.hdb_root);
|
|
396
|
+
let oldConfigPath = path.join(oldHdbRoot, hdbTerms.HARPER_CONFIG_FILE);
|
|
397
|
+
if (!fs.existsSync(oldConfigPath) && fs.existsSync(path.join(oldHdbRoot, hdbTerms.HDB_CONFIG_FILE))) {
|
|
398
|
+
oldConfigPath = path.join(oldHdbRoot, hdbTerms.HDB_CONFIG_FILE);
|
|
399
|
+
}
|
|
400
|
+
const configDoc = parseYamlDoc(oldConfigPath);
|
|
401
|
+
let schemasArgs;
|
|
402
|
+
// Don't do the update if the values are the same.
|
|
403
|
+
if (parsedArgs && flatConfigObj) {
|
|
404
|
+
let doUpdate = false;
|
|
405
|
+
for (const arg in parsedArgs) {
|
|
406
|
+
// Using no-strict here because we might need to compare string to number
|
|
407
|
+
if (parsedArgs[arg] != flatConfigObj[arg.toLowerCase()]) {
|
|
408
|
+
doUpdate = true;
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
if (!doUpdate) {
|
|
413
|
+
logger.trace(`No changes detected in config parameters, skipping update`);
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
if (parsedArgs === undefined && param.toLowerCase() === CONFIG_PARAMS.DATABASES) {
|
|
418
|
+
schemasArgs = value;
|
|
419
|
+
}
|
|
420
|
+
else if (parsedArgs === undefined) {
|
|
421
|
+
let configParam;
|
|
422
|
+
if (skipParamMap) {
|
|
423
|
+
configParam = param;
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
configParam = CONFIG_PARAM_MAP[param.toLowerCase()];
|
|
427
|
+
if (configParam === undefined) {
|
|
428
|
+
throw handleHDBError(new Error(), `Unable to update config, unrecognized config parameter: ${param}`, HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
const splitParam = configParam.split('_');
|
|
432
|
+
const newValue = castConfigValue(configParam, value);
|
|
433
|
+
configDoc.setIn([...splitParam], newValue);
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
// Loop through the user inputted args. Match them to a parameter in the default config file and update value.
|
|
437
|
+
for (const arg in parsedArgs) {
|
|
438
|
+
let configParam = CONFIG_PARAM_MAP[arg.toLowerCase()];
|
|
439
|
+
// If setting http.securePort to the same value as http.port, set http.port to null to avoid clashing ports
|
|
440
|
+
if (configParam === CONFIG_PARAMS.HTTP_SECUREPORT &&
|
|
441
|
+
parsedArgs[arg] === flatConfigObj[CONFIG_PARAMS.HTTP_PORT]?.toString()) {
|
|
442
|
+
configDoc.setIn(['http', 'port'], null);
|
|
443
|
+
}
|
|
444
|
+
// If setting operationsApi.network.securePort to the same value as operationsApi.network.port, set operationsApi.network.port to null to avoid clashing ports
|
|
445
|
+
if (configParam === CONFIG_PARAMS.OPERATIONSAPI_NETWORK_SECUREPORT &&
|
|
446
|
+
parsedArgs[arg] === flatConfigObj[CONFIG_PARAMS.OPERATIONSAPI_NETWORK_PORT.toLowerCase()]?.toString()) {
|
|
447
|
+
configDoc.setIn(['operationsApi', 'network', 'port'], null);
|
|
448
|
+
}
|
|
449
|
+
// Schemas config args are handled differently, so if they exist set them to var that will be used by setSchemasConfig
|
|
450
|
+
if (configParam === CONFIG_PARAMS.DATABASES) {
|
|
451
|
+
schemasArgs = parsedArgs[arg];
|
|
452
|
+
continue;
|
|
453
|
+
}
|
|
454
|
+
if (configParam?.startsWith('threads_')) {
|
|
455
|
+
// if threads was a number, recreate the threads object
|
|
456
|
+
const threadCount = configDoc.getIn(['threads']);
|
|
457
|
+
if (threadCount >= 0) {
|
|
458
|
+
configDoc.deleteIn(['threads']);
|
|
459
|
+
configDoc.setIn(['threads', 'count'], threadCount);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
if (!configParam && (arg.endsWith('_package') || arg.endsWith('_port'))) {
|
|
463
|
+
configParam = arg;
|
|
464
|
+
}
|
|
465
|
+
if (configParam !== undefined) {
|
|
466
|
+
let splitParam = configParam.split('_');
|
|
467
|
+
const legacyParam = hdbTerms.LEGACY_CONFIG_PARAMS[arg.toUpperCase()];
|
|
468
|
+
if (legacyParam && legacyParam.startsWith('customFunctions') && configDoc.hasIn(legacyParam.split('_'))) {
|
|
469
|
+
configParam = legacyParam;
|
|
470
|
+
splitParam = legacyParam.split('_');
|
|
471
|
+
}
|
|
472
|
+
let newValue = castConfigValue(configParam, parsedArgs[arg]);
|
|
473
|
+
if (configParam === 'rootPath' && newValue?.endsWith('/'))
|
|
474
|
+
newValue = newValue.slice(0, -1);
|
|
475
|
+
try {
|
|
476
|
+
if (splitParam.length > 1) {
|
|
477
|
+
if (typeof configDoc.getIn(splitParam.slice(0, -1)) === 'boolean') {
|
|
478
|
+
configDoc.deleteIn(splitParam.slice(0, -1));
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
configDoc.setIn([...splitParam], newValue);
|
|
482
|
+
}
|
|
483
|
+
catch (err) {
|
|
484
|
+
logger.error(err);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
if (schemasArgs)
|
|
490
|
+
setSchemasConfig(configDoc, schemasArgs);
|
|
491
|
+
// Validates config doc and if required sets default values for some parameters.
|
|
492
|
+
validateConfig(configDoc);
|
|
493
|
+
const hdbRoot = configDoc.getIn(['rootPath']);
|
|
494
|
+
let configFileLocation = path.join(hdbRoot, hdbTerms.HARPER_CONFIG_FILE);
|
|
495
|
+
if (!fs.existsSync(configFileLocation) && fs.existsSync(path.join(hdbRoot, hdbTerms.HDB_CONFIG_FILE))) {
|
|
496
|
+
configFileLocation = path.join(hdbRoot, hdbTerms.HDB_CONFIG_FILE);
|
|
497
|
+
}
|
|
498
|
+
if (createBackup === true) {
|
|
499
|
+
// Creates a backup of config before new config is written to disk.
|
|
500
|
+
backupConfigFile(oldConfigPath, hdbRoot);
|
|
501
|
+
}
|
|
502
|
+
if (configDoc.errors?.length > 0) {
|
|
503
|
+
throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
|
|
504
|
+
}
|
|
505
|
+
fs.writeFileSync(configFileLocation, String(configDoc));
|
|
506
|
+
if (update_config_obj) {
|
|
507
|
+
flatConfigObj = flattenConfig(configDoc.toJSON());
|
|
508
|
+
}
|
|
509
|
+
logger.trace(`Config parameter: ${param} updated with value: ${value}`);
|
|
510
|
+
}
|
|
511
|
+
function backupConfigFile(configPath, hdbRoot) {
|
|
512
|
+
try {
|
|
513
|
+
const backupFolderPath = path.join(getBackupDirPath(hdbRoot), `${new Date(Date.now()).toISOString().replaceAll(':', '-')}-${hdbTerms.HARPER_CONFIG_FILE}.bak`);
|
|
514
|
+
fs.copySync(configPath, backupFolderPath);
|
|
515
|
+
logger.trace(`Config file: ${configPath} backed up to: ${backupFolderPath}`);
|
|
516
|
+
}
|
|
517
|
+
catch (err) {
|
|
518
|
+
logger.error(BACKUP_ERR);
|
|
519
|
+
logger.error(err);
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
const PRESERVED_PROPERTIES = ['databases'];
|
|
523
|
+
/**
|
|
524
|
+
* Flattens the JSON version of Harper config with underscores separating each parent/child key.
|
|
525
|
+
* @param obj
|
|
526
|
+
* @returns {null}
|
|
527
|
+
*/
|
|
528
|
+
function flattenConfig(obj) {
|
|
529
|
+
if (obj.http)
|
|
530
|
+
Object.assign(obj.http, obj?.customFunctions?.network);
|
|
531
|
+
if (obj?.operationsApi?.network)
|
|
532
|
+
obj.operationsApi.network = { ...obj.http, ...obj.operationsApi.network };
|
|
533
|
+
if (obj?.operationsApi)
|
|
534
|
+
obj.operationsApi.tls = { ...obj.tls, ...obj.operationsApi.tls };
|
|
535
|
+
configObj = obj;
|
|
536
|
+
const flatObj = squashObj(obj);
|
|
537
|
+
return flatObj;
|
|
538
|
+
function squashObj(obj) {
|
|
539
|
+
let result = {};
|
|
540
|
+
for (let i in obj) {
|
|
541
|
+
if (!obj.hasOwnProperty(i))
|
|
542
|
+
continue;
|
|
543
|
+
if (typeof obj[i] == 'object' && obj[i] !== null && !Array.isArray(obj[i]) && !PRESERVED_PROPERTIES.includes(i)) {
|
|
544
|
+
const flatObj = squashObj(obj[i]);
|
|
545
|
+
for (const x in flatObj) {
|
|
546
|
+
if (!flatObj.hasOwnProperty(x))
|
|
547
|
+
continue;
|
|
548
|
+
if (x !== 'package')
|
|
549
|
+
i = i.toLowerCase();
|
|
550
|
+
const key = i + '_' + x;
|
|
551
|
+
// This is here to catch config param which has been renamed/moved
|
|
552
|
+
if (!CONFIG_PARAMS[key.toUpperCase()] && CONFIG_PARAM_MAP[key]) {
|
|
553
|
+
result[CONFIG_PARAM_MAP[key].toLowerCase()] = flatObj[x];
|
|
554
|
+
}
|
|
555
|
+
result[key] = flatObj[x];
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
if (obj[i] !== undefined)
|
|
559
|
+
result[i.toLowerCase()] = obj[i];
|
|
560
|
+
}
|
|
561
|
+
return result;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Cast config values.
|
|
566
|
+
* @param param
|
|
567
|
+
* @param value
|
|
568
|
+
* @returns {*|number|string|string|null|boolean}
|
|
569
|
+
*/
|
|
570
|
+
function castConfigValue(param, value) {
|
|
571
|
+
if (isNumber(value)) {
|
|
572
|
+
return parseFloat(value);
|
|
573
|
+
}
|
|
574
|
+
if (value === true || value === false) {
|
|
575
|
+
return value;
|
|
576
|
+
}
|
|
577
|
+
if (Array.isArray(value)) {
|
|
578
|
+
return value;
|
|
579
|
+
}
|
|
580
|
+
if (hdbUtils.isObject(value)) {
|
|
581
|
+
return value;
|
|
582
|
+
}
|
|
583
|
+
if (value === null) {
|
|
584
|
+
return value;
|
|
585
|
+
}
|
|
586
|
+
if (typeof value === 'string' && value.toLowerCase() === 'true') {
|
|
587
|
+
return true;
|
|
588
|
+
}
|
|
589
|
+
if (typeof value === 'string' && value.toLowerCase() === 'false') {
|
|
590
|
+
return false;
|
|
591
|
+
}
|
|
592
|
+
// undefined is not used in our yaml, just null.
|
|
593
|
+
if (value === undefined || value.toLowerCase() === 'undefined') {
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
//in order to handle json and arrays we test the string to see if it seems minimally like an object or array and perform a JSON.parse on it.
|
|
597
|
+
//if it fails we assume it is just a regular string
|
|
598
|
+
if (typeof value === 'string' &&
|
|
599
|
+
((value.startsWith('{') && value.endsWith('}')) || (value.startsWith('[') && value.endsWith(']')))) {
|
|
600
|
+
try {
|
|
601
|
+
return JSON.parse(value);
|
|
602
|
+
}
|
|
603
|
+
catch {
|
|
604
|
+
//no-op
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
return hdbUtils.autoCast(value);
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Get Configuration - this function returns all the config settings
|
|
611
|
+
* @returns {{}}
|
|
612
|
+
*/
|
|
613
|
+
function getConfiguration() {
|
|
614
|
+
const bootPropsFilePath = hdbUtils.getPropsFilePath();
|
|
615
|
+
const configFilePath = getConfigFilePath(bootPropsFilePath);
|
|
616
|
+
const configDoc = parseYamlDoc(configFilePath);
|
|
617
|
+
return configDoc.toJSON();
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* Set Configuration - this function sets new configuration
|
|
621
|
+
* @param setConfigJson
|
|
622
|
+
|
|
623
|
+
*/
|
|
624
|
+
async function setConfiguration(setConfigJson) {
|
|
625
|
+
// eslint-disable-next-line no-unused-vars
|
|
626
|
+
const { operation, hdb_user, hdbAuthHeader, ...configFields } = setConfigJson;
|
|
627
|
+
try {
|
|
628
|
+
updateConfigValue(undefined, undefined, configFields, true);
|
|
629
|
+
return CONFIGURE_SUCCESS_RESPONSE;
|
|
630
|
+
}
|
|
631
|
+
catch (err) {
|
|
632
|
+
if (typeof err === 'string' || err instanceof String) {
|
|
633
|
+
throw handleHDBError(err, err, HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
|
|
634
|
+
}
|
|
635
|
+
throw err;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
function readConfigFile() {
|
|
639
|
+
const bootPropsFilePath = hdbUtils.getPropsFilePath();
|
|
640
|
+
try {
|
|
641
|
+
fs.accessSync(bootPropsFilePath, fs.constants.F_OK | fs.constants.R_OK);
|
|
642
|
+
}
|
|
643
|
+
catch (err) {
|
|
644
|
+
if (!hdbUtils.noBootFile()) {
|
|
645
|
+
logger.error(err);
|
|
646
|
+
throw handleHDBError(new Error(), `Harper properties file at path ${bootPropsFilePath} does not exist`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
const configFilePath = getConfigFilePath(bootPropsFilePath);
|
|
650
|
+
const configDoc = parseYamlDoc(configFilePath);
|
|
651
|
+
return configDoc.toJSON();
|
|
652
|
+
}
|
|
653
|
+
function parseYamlDoc(filePath) {
|
|
654
|
+
return YAML.parseDocument(fs.readFileSync(filePath, 'utf8'), { simpleKeys: true });
|
|
655
|
+
}
|
|
656
|
+
/**
|
|
657
|
+
* Apply HARPER_DEFAULT_CONFIG and HARPER_SET_CONFIG environment variables at runtime
|
|
658
|
+
*
|
|
659
|
+
* This function performs the following:
|
|
660
|
+
* 1. Loads configuration state to track sources
|
|
661
|
+
* 2. Detects user edits (drift) to protect them from HARPER_DEFAULT_CONFIG
|
|
662
|
+
* 3. Applies HARPER_DEFAULT_CONFIG (respects user edits)
|
|
663
|
+
* 4. Applies HARPER_SET_CONFIG (overrides everything)
|
|
664
|
+
* 5. Handles deletions when keys removed from env vars
|
|
665
|
+
* 6. Saves updated state and persists changes to config file (if configFilePath provided)
|
|
666
|
+
*
|
|
667
|
+
* NOTE: This function performs multiple conversions (YAML → JSON → YAML) which is not
|
|
668
|
+
* efficient but provides clear separation of concerns. The conversions are necessary
|
|
669
|
+
* to handle YAML structure conflicts (e.g., when a boolean like 'threads: true' needs
|
|
670
|
+
* to become an object like 'threads: {count: 4}').
|
|
671
|
+
*
|
|
672
|
+
* @param {Document} configDoc - YAML document to modify (mutated in place)
|
|
673
|
+
* @param {string} [configFilePath] - Path to config file (optional, skips file write if not provided)
|
|
674
|
+
* @param {Object} [options] - Options to pass to applyRuntimeEnvConfig (e.g., {isInstall: true})
|
|
675
|
+
*/
|
|
676
|
+
function applyRuntimeEnvVarConfig(configDoc, configFilePath, options = {}) {
|
|
677
|
+
const defaultEnvValue = process.env.HARPER_DEFAULT_CONFIG;
|
|
678
|
+
const setEnvValue = process.env.HARPER_SET_CONFIG;
|
|
679
|
+
// No env vars set, skip entirely (zero overhead)
|
|
680
|
+
if (!defaultEnvValue && !setEnvValue)
|
|
681
|
+
return;
|
|
682
|
+
const { applyRuntimeEnvConfig } = require("./harperConfigEnvVars.js");
|
|
683
|
+
// Get rootPath for state file location
|
|
684
|
+
const rootPath = configDoc.getIn(['rootPath']);
|
|
685
|
+
if (!rootPath) {
|
|
686
|
+
logger.warn('Cannot apply runtime env config: rootPath not found in config');
|
|
687
|
+
return;
|
|
688
|
+
}
|
|
689
|
+
// Convert to JSON for processing
|
|
690
|
+
const configObj = configDoc.toJSON();
|
|
691
|
+
try {
|
|
692
|
+
// Apply env vars with source tracking and drift detection
|
|
693
|
+
applyRuntimeEnvConfig(configObj, rootPath, options);
|
|
694
|
+
// If securePort was set to the same value as port, auto-null port to avoid clashing
|
|
695
|
+
if (configObj.http?.port && configObj.http?.port === configObj.http?.securePort) {
|
|
696
|
+
configObj.http.port = null;
|
|
697
|
+
}
|
|
698
|
+
if (configObj.operationsApi?.network?.port &&
|
|
699
|
+
configObj.operationsApi?.network?.port === configObj.operationsApi?.network?.securePort) {
|
|
700
|
+
configObj.operationsApi.network.port = null;
|
|
701
|
+
}
|
|
702
|
+
// Update the YAML document's contents
|
|
703
|
+
// We update only the 'contents' property to preserve the Document instance and its methods
|
|
704
|
+
const mergedDoc = YAML.parseDocument(YAML.stringify(configObj), { simpleKeys: true });
|
|
705
|
+
// Check for YAML parsing errors
|
|
706
|
+
if (mergedDoc.errors?.length > 0) {
|
|
707
|
+
throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml: ${mergedDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
|
|
708
|
+
}
|
|
709
|
+
configDoc.contents = mergedDoc.contents;
|
|
710
|
+
}
|
|
711
|
+
catch (error) {
|
|
712
|
+
logger.error(`Failed to apply runtime env config: ${error.message}`);
|
|
713
|
+
throw error;
|
|
714
|
+
}
|
|
715
|
+
// We're done here if no config file to write to
|
|
716
|
+
if (!configFilePath) {
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
719
|
+
// Persist changes to file
|
|
720
|
+
try {
|
|
721
|
+
if (configDoc.errors?.length > 0) {
|
|
722
|
+
throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml: ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
|
|
723
|
+
}
|
|
724
|
+
fs.writeFileSync(configFilePath, String(configDoc));
|
|
725
|
+
logger.debug('Config file updated with runtime env var values');
|
|
726
|
+
}
|
|
727
|
+
catch (error) {
|
|
728
|
+
logger.error(`Failed to write config file after applying runtime env vars: ${error.message}`);
|
|
729
|
+
throw error;
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
/**
|
|
733
|
+
* This function reads config settings from old settings file(before 4.0.0), aligns old keys to new keys, gets old
|
|
734
|
+
* values, and updates the in-memory object.
|
|
735
|
+
* --Located here instead of upgradeUtilities.js to prevent circular dependency--
|
|
736
|
+
* @param oldConfigPath - a string with the old settings path ending in config/settings.js
|
|
737
|
+
*/
|
|
738
|
+
function initOldConfig(oldConfigPath) {
|
|
739
|
+
const oldHdbProperties = PropertiesReader(oldConfigPath);
|
|
740
|
+
flatConfigObj = {};
|
|
741
|
+
for (const configParam in CONFIG_PARAM_MAP) {
|
|
742
|
+
const value = oldHdbProperties.get(configParam.toUpperCase());
|
|
743
|
+
if (hdbUtils.isEmpty(value) || (typeof value === 'string' && value.trim().length === 0)) {
|
|
744
|
+
continue;
|
|
745
|
+
}
|
|
746
|
+
let paramKey = CONFIG_PARAM_MAP[configParam].toLowerCase();
|
|
747
|
+
if (paramKey === CONFIG_PARAMS.LOGGING_ROOT) {
|
|
748
|
+
flatConfigObj[paramKey] = path.dirname(value);
|
|
749
|
+
}
|
|
750
|
+
else {
|
|
751
|
+
flatConfigObj[paramKey] = value;
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
return flatConfigObj;
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* Gets a config value directly from harperdb-config.yaml
|
|
758
|
+
* @param param
|
|
759
|
+
* @returns {undefined}
|
|
760
|
+
*/
|
|
761
|
+
function getConfigFromFile(param) {
|
|
762
|
+
const config_file = readConfigFile();
|
|
763
|
+
return _.get(config_file, param.replaceAll('_', '.'));
|
|
764
|
+
}
|
|
765
|
+
/**
|
|
766
|
+
* Adds a top level element and any nested values to harperdb-config
|
|
767
|
+
* @param topLevelElement - element name
|
|
768
|
+
* @param values - JSON value which should have top level element
|
|
769
|
+
* @returns {Promise<void>}
|
|
770
|
+
*/
|
|
771
|
+
async function addConfig(topLevelElement, values) {
|
|
772
|
+
const configDoc = parseYamlDoc(getConfigFilePath());
|
|
773
|
+
configDoc.hasIn([topLevelElement])
|
|
774
|
+
? configDoc.setIn([topLevelElement], values)
|
|
775
|
+
: configDoc.addIn([topLevelElement], values);
|
|
776
|
+
if (configDoc.errors?.length > 0) {
|
|
777
|
+
throw handleHDBError(new Error(), `Error parsing harperdb-config.yaml ${configDoc.errors}`, HTTP_STATUS_CODES.INTERNAL_SERVER_ERROR);
|
|
778
|
+
}
|
|
779
|
+
await fs.writeFile(getConfigFilePath(), String(configDoc));
|
|
780
|
+
}
|
|
781
|
+
function deleteConfigFromFile(param) {
|
|
782
|
+
const configFilePath = getConfigFilePath(hdbUtils.getPropsFilePath());
|
|
783
|
+
const configDoc = parseYamlDoc(configFilePath);
|
|
784
|
+
configDoc.deleteIn(param);
|
|
785
|
+
const hdbRoot = configDoc.getIn(['rootPath']);
|
|
786
|
+
const configFileLocation = path.join(hdbRoot, hdbTerms.HARPER_CONFIG_FILE);
|
|
787
|
+
fs.writeFileSync(configFileLocation, String(configDoc));
|
|
788
|
+
}
|
|
789
|
+
function getConfigObj() {
|
|
790
|
+
if (!configObj) {
|
|
791
|
+
initConfig();
|
|
792
|
+
return configObj;
|
|
793
|
+
}
|
|
794
|
+
return configObj;
|
|
795
|
+
}
|
|
796
|
+
function getFlatConfigObj() {
|
|
797
|
+
if (!flatConfigObj)
|
|
798
|
+
initConfig();
|
|
799
|
+
return flatConfigObj;
|
|
800
|
+
}
|
|
801
|
+
//# sourceMappingURL=configUtils.js.map
|