@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,667 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
/**
|
|
3
|
+
* This module is used before a SQL or NoSQL operation is performed in order to ensure the user's assigned role
|
|
4
|
+
* has the permissions and lack of restrictions needed to process the operation. Only verifyPerms and verifyPermsAST
|
|
5
|
+
* should be outward facing functions.
|
|
6
|
+
*
|
|
7
|
+
* verifyPerms() should be used to check permissions for NoSQL calls. verifyPermsAST() should be used to check permissions
|
|
8
|
+
* for SQL calls.
|
|
9
|
+
*
|
|
10
|
+
* The requiredPermissions member contains the permissions needed for each operation. Any new operations added to
|
|
11
|
+
* Harper need to have operations specified in here or they will never pass the permissions checks.
|
|
12
|
+
* */
|
|
13
|
+
const write = require('../dataLayer/insert.js');
|
|
14
|
+
const search = require('../dataLayer/search.js');
|
|
15
|
+
const schema = require('../dataLayer/schema.js');
|
|
16
|
+
const schemaDescribe = require('../dataLayer/schemaDescribe.js');
|
|
17
|
+
const delete_ = require('../dataLayer/delete.js');
|
|
18
|
+
const readAuditLog = require('../dataLayer/readAuditLog.js');
|
|
19
|
+
const getBackup = require('../dataLayer/getBackup.js');
|
|
20
|
+
const user = require("../security/user.js");
|
|
21
|
+
const role = require('../security/role.js');
|
|
22
|
+
const harperLogger = require('../utility/logging/harper_logger.js');
|
|
23
|
+
const readLog = require('../utility/logging/readLog.js');
|
|
24
|
+
const commonUtils = require('./common_utils.js');
|
|
25
|
+
const restart = require('../bin/restart.js');
|
|
26
|
+
const terms = require("./hdbTerms.js");
|
|
27
|
+
const { expandOperationsPerms } = require("./operationPermissions.js");
|
|
28
|
+
const permsTranslator = require('../security/permissionsTranslator.js');
|
|
29
|
+
const systemInformation = require('../utility/environment/systemInformation.js');
|
|
30
|
+
const tokenAuthentication = require("../security/tokenAuthentication.js");
|
|
31
|
+
const auth = require("../security/auth.js");
|
|
32
|
+
const configUtils = require('../config/configUtils.js');
|
|
33
|
+
const functionsOperations = require('../components/operations.js');
|
|
34
|
+
const transactionLog = require('../utility/logging/transactionLog.js');
|
|
35
|
+
const npmUtilities = require('./npmUtilities.js');
|
|
36
|
+
const analytics = require("../resources/analytics/read.js");
|
|
37
|
+
const status = require("../server/status/index.js");
|
|
38
|
+
const PermissionResponseObject = require('../security/data_objects/PermissionResponseObject.js');
|
|
39
|
+
const { handleHDBError, hdbErrors } = require('../utility/errors/hdbError.js');
|
|
40
|
+
const { HDB_ERROR_MSGS, HTTP_STATUS_CODES } = hdbErrors;
|
|
41
|
+
const regDeprecated = require("../resources/registrationDeprecated.js");
|
|
42
|
+
const requiredPermissions = new Map();
|
|
43
|
+
const DELETE_PERM = 'delete';
|
|
44
|
+
const INSERT_PERM = 'insert';
|
|
45
|
+
const READ_PERM = 'read';
|
|
46
|
+
const UPDATE_PERM = 'update';
|
|
47
|
+
const DESCRIBE_PERM = 'describe';
|
|
48
|
+
const DESCRIBE_SCHEMA_KEY = schemaDescribe.describeSchema.name;
|
|
49
|
+
const DESCRIBE_TABLE_KEY = schemaDescribe.describeTable.name;
|
|
50
|
+
const FORBIDDEN_SYSTEM_OPS_ENUM = {
|
|
51
|
+
delete: true,
|
|
52
|
+
deleteRecord: true,
|
|
53
|
+
update: true,
|
|
54
|
+
updateData: true,
|
|
55
|
+
dropAttribute: true,
|
|
56
|
+
dropTable: true,
|
|
57
|
+
dropSchema: true,
|
|
58
|
+
upsert: true,
|
|
59
|
+
upsertData: true,
|
|
60
|
+
};
|
|
61
|
+
const ALLOWED_SYS_OPS = {
|
|
62
|
+
insert: true,
|
|
63
|
+
delete: true,
|
|
64
|
+
deleteRecord: true,
|
|
65
|
+
update: true,
|
|
66
|
+
updateData: true,
|
|
67
|
+
upsert: true,
|
|
68
|
+
upsertData: true,
|
|
69
|
+
};
|
|
70
|
+
const CATCHUP = 'catchup';
|
|
71
|
+
const HANDLE_GET_JOB = 'handleGetJob';
|
|
72
|
+
const HANDLE_GET_JOB_BY_START_DATE = 'handleGetJobsByStartDate';
|
|
73
|
+
const BULK_OPS = {
|
|
74
|
+
CSV_DATA_LOAD: 'csvDataLoad',
|
|
75
|
+
CSV_URL_LOAD: 'csvURLLoad',
|
|
76
|
+
CSV_FILE_LOAD: 'csvFileLoad',
|
|
77
|
+
IMPORT_FROM_S3: 'importFromS3',
|
|
78
|
+
};
|
|
79
|
+
const STRUCTURE_USER_OPS = [
|
|
80
|
+
schema.createTable.name,
|
|
81
|
+
schema.createAttribute.name,
|
|
82
|
+
schema.dropTable.name,
|
|
83
|
+
schema.dropAttribute.name,
|
|
84
|
+
];
|
|
85
|
+
const DATA_EXPORT = {
|
|
86
|
+
EXPORT_TO_S3: 'export_to_s3',
|
|
87
|
+
EXPORT_LOCAL: 'export_local',
|
|
88
|
+
};
|
|
89
|
+
class permission {
|
|
90
|
+
constructor(requiresSu, perms, apiName) {
|
|
91
|
+
this.requires_su = requiresSu;
|
|
92
|
+
this.perms = perms;
|
|
93
|
+
// snake_case API operation name (from OPERATIONS_ENUM) for operations allowlist checks.
|
|
94
|
+
// Undefined for ops that aren't user-addressable (SQL sub-ops, internal-only ops).
|
|
95
|
+
this.api_name = apiName;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
requiredPermissions.set(write.insert.name, new permission(false, [INSERT_PERM], terms.OPERATIONS_ENUM.INSERT));
|
|
99
|
+
requiredPermissions.set(write.update.name, new permission(false, [UPDATE_PERM], terms.OPERATIONS_ENUM.UPDATE));
|
|
100
|
+
requiredPermissions.set(write.upsert.name, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.UPSERT));
|
|
101
|
+
requiredPermissions.set(search.searchByConditions.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_CONDITIONS));
|
|
102
|
+
requiredPermissions.set(search.searchByHash.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_HASH));
|
|
103
|
+
requiredPermissions.set(search.searchByValue.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_VALUE));
|
|
104
|
+
requiredPermissions.set(search.search.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH));
|
|
105
|
+
requiredPermissions.set(schema.createSchema.name, new permission(true, [], terms.OPERATIONS_ENUM.CREATE_DATABASE));
|
|
106
|
+
requiredPermissions.set(schema.createTable.name, new permission(true, [], terms.OPERATIONS_ENUM.CREATE_TABLE));
|
|
107
|
+
requiredPermissions.set(schema.createAttribute.name, new permission(false, [INSERT_PERM], terms.OPERATIONS_ENUM.CREATE_ATTRIBUTE));
|
|
108
|
+
requiredPermissions.set(schema.dropSchema.name, new permission(true, [], terms.OPERATIONS_ENUM.DROP_DATABASE));
|
|
109
|
+
requiredPermissions.set(schema.dropTable.name, new permission(true, [], terms.OPERATIONS_ENUM.DROP_TABLE));
|
|
110
|
+
requiredPermissions.set(schema.dropAttribute.name, new permission(true, [], terms.OPERATIONS_ENUM.DROP_ATTRIBUTE));
|
|
111
|
+
requiredPermissions.set(schemaDescribe.describeSchema.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.DESCRIBE_SCHEMA));
|
|
112
|
+
requiredPermissions.set(schemaDescribe.describeTable.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.DESCRIBE_TABLE));
|
|
113
|
+
requiredPermissions.set(delete_.deleteRecord.name, new permission(false, [DELETE_PERM], terms.OPERATIONS_ENUM.DELETE));
|
|
114
|
+
requiredPermissions.set(user.addUser.name, new permission(true, [], terms.OPERATIONS_ENUM.ADD_USER));
|
|
115
|
+
requiredPermissions.set(user.alterUser.name, new permission(true, [], terms.OPERATIONS_ENUM.ALTER_USER));
|
|
116
|
+
requiredPermissions.set(user.dropUser.name, new permission(true, [], terms.OPERATIONS_ENUM.DROP_USER));
|
|
117
|
+
requiredPermissions.set(user.listUsersExternal.name, new permission(true, [], terms.OPERATIONS_ENUM.LIST_USERS));
|
|
118
|
+
requiredPermissions.set(role.listRoles.name, new permission(true, [], terms.OPERATIONS_ENUM.LIST_ROLES));
|
|
119
|
+
requiredPermissions.set(role.addRole.name, new permission(true, [], terms.OPERATIONS_ENUM.ADD_ROLE));
|
|
120
|
+
requiredPermissions.set(role.alterRole.name, new permission(true, [], terms.OPERATIONS_ENUM.ALTER_ROLE));
|
|
121
|
+
requiredPermissions.set(role.dropRole.name, new permission(true, [], terms.OPERATIONS_ENUM.DROP_ROLE));
|
|
122
|
+
requiredPermissions.set(readLog.name, new permission(true, [], terms.OPERATIONS_ENUM.READ_LOG));
|
|
123
|
+
requiredPermissions.set(configUtils.setConfiguration.name, new permission(true, []));
|
|
124
|
+
requiredPermissions.set(delete_.deleteFilesBefore.name, new permission(true, []));
|
|
125
|
+
requiredPermissions.set(delete_.deleteAuditLogsBefore.name, new permission(true, []));
|
|
126
|
+
requiredPermissions.set(restart.restart.name, new permission(true, [], terms.OPERATIONS_ENUM.RESTART));
|
|
127
|
+
requiredPermissions.set(restart.restartService.name, new permission(true, []));
|
|
128
|
+
requiredPermissions.set(readAuditLog.name, new permission(true, [], terms.OPERATIONS_ENUM.READ_AUDIT_LOG));
|
|
129
|
+
requiredPermissions.set(getBackup.name, new permission(true, [READ_PERM]));
|
|
130
|
+
requiredPermissions.set(schema.cleanupOrphanBlobs.name, new permission(true, []));
|
|
131
|
+
requiredPermissions.set(systemInformation.systemInformation.name, new permission(true, [], terms.OPERATIONS_ENUM.SYSTEM_INFORMATION));
|
|
132
|
+
requiredPermissions.set(configUtils.getConfiguration.name, new permission(true, [], terms.OPERATIONS_ENUM.GET_CONFIGURATION));
|
|
133
|
+
requiredPermissions.set(transactionLog.readTransactionLog.name, new permission(true, []));
|
|
134
|
+
requiredPermissions.set(transactionLog.deleteTransactionLogsBefore.name, new permission(true, []));
|
|
135
|
+
requiredPermissions.set(npmUtilities.installModules.name, new permission(true, []));
|
|
136
|
+
requiredPermissions.set(analytics.getOp.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.GET_ANALYTICS));
|
|
137
|
+
requiredPermissions.set(analytics.listMetricsOp.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.LIST_METRICS));
|
|
138
|
+
requiredPermissions.set(analytics.describeMetricOp.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.DESCRIBE_METRIC));
|
|
139
|
+
requiredPermissions.set(status.clear.name, new permission(true, []));
|
|
140
|
+
requiredPermissions.set(status.get.name, new permission(true, []));
|
|
141
|
+
requiredPermissions.set(status.set.name, new permission(true, []));
|
|
142
|
+
//this operation must be available to all users so they can create authentication tokens and login
|
|
143
|
+
requiredPermissions.set(tokenAuthentication.createTokens.name, new permission(false, [], terms.OPERATIONS_ENUM.CREATE_AUTHENTICATION_TOKENS));
|
|
144
|
+
requiredPermissions.set(tokenAuthentication.refreshOperationToken.name, new permission(false, [], terms.OPERATIONS_ENUM.REFRESH_OPERATION_TOKEN));
|
|
145
|
+
requiredPermissions.set(auth.login.name, new permission(false, []));
|
|
146
|
+
requiredPermissions.set(auth.logout.name, new permission(false, []));
|
|
147
|
+
//Operations specific to HDB Functions
|
|
148
|
+
requiredPermissions.set(functionsOperations.customFunctionsStatus.name, new permission(true, [], terms.OPERATIONS_ENUM.CUSTOM_FUNCTIONS_STATUS));
|
|
149
|
+
requiredPermissions.set(functionsOperations.getCustomFunctions.name, new permission(true, [], terms.OPERATIONS_ENUM.GET_CUSTOM_FUNCTIONS));
|
|
150
|
+
requiredPermissions.set(functionsOperations.getComponents.name, new permission(true, [], terms.OPERATIONS_ENUM.GET_COMPONENTS));
|
|
151
|
+
requiredPermissions.set(functionsOperations.getComponentFile.name, new permission(true, [], terms.OPERATIONS_ENUM.GET_COMPONENT_FILE));
|
|
152
|
+
requiredPermissions.set(functionsOperations.setComponentFile.name, new permission(true, []));
|
|
153
|
+
requiredPermissions.set(functionsOperations.dropComponent.name, new permission(true, []));
|
|
154
|
+
requiredPermissions.set(functionsOperations.getCustomFunction.name, new permission(true, [], terms.OPERATIONS_ENUM.GET_CUSTOM_FUNCTION));
|
|
155
|
+
requiredPermissions.set(functionsOperations.setCustomFunction.name, new permission(true, []));
|
|
156
|
+
requiredPermissions.set(functionsOperations.dropCustomFunction.name, new permission(true, []));
|
|
157
|
+
requiredPermissions.set(functionsOperations.addComponent.name, new permission(true, []));
|
|
158
|
+
requiredPermissions.set(functionsOperations.dropCustomFunctionProject.name, new permission(true, []));
|
|
159
|
+
requiredPermissions.set(functionsOperations.packageComponent.name, new permission(true, []));
|
|
160
|
+
requiredPermissions.set(functionsOperations.deployComponent.name, new permission(true, []));
|
|
161
|
+
//Below are functions that are currently open to all roles
|
|
162
|
+
requiredPermissions.set(regDeprecated.getRegistrationInfo.name, new permission(false, []));
|
|
163
|
+
requiredPermissions.set(user.userInfo.name, new permission(false, [], terms.OPERATIONS_ENUM.USER_INFO));
|
|
164
|
+
//DescribeAll will only return the schema values a user has permissions for
|
|
165
|
+
requiredPermissions.set(schemaDescribe.describeAll.name, new permission(false, [], terms.OPERATIONS_ENUM.DESCRIBE_ALL));
|
|
166
|
+
//Below function names are hardcoded b/c of circular dependency issues
|
|
167
|
+
requiredPermissions.set(HANDLE_GET_JOB, new permission(false, [], terms.OPERATIONS_ENUM.GET_JOB));
|
|
168
|
+
requiredPermissions.set(HANDLE_GET_JOB_BY_START_DATE, new permission(true, []));
|
|
169
|
+
requiredPermissions.set(CATCHUP, new permission(true, []));
|
|
170
|
+
requiredPermissions.set(BULK_OPS.CSV_DATA_LOAD, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.CSV_DATA_LOAD));
|
|
171
|
+
requiredPermissions.set(BULK_OPS.CSV_URL_LOAD, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.CSV_URL_LOAD));
|
|
172
|
+
requiredPermissions.set(BULK_OPS.CSV_FILE_LOAD, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.CSV_FILE_LOAD));
|
|
173
|
+
requiredPermissions.set(BULK_OPS.IMPORT_FROM_S3, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.IMPORT_FROM_S3));
|
|
174
|
+
requiredPermissions.set(DATA_EXPORT.EXPORT_TO_S3, new permission(true, [], terms.OPERATIONS_ENUM.EXPORT_TO_S3));
|
|
175
|
+
requiredPermissions.set(DATA_EXPORT.EXPORT_LOCAL, new permission(true, [], terms.OPERATIONS_ENUM.EXPORT_LOCAL));
|
|
176
|
+
// SQL operations are distinct from operations above, so we need to store required perms for both.
|
|
177
|
+
requiredPermissions.set(terms.VALID_SQL_OPS_ENUM.DELETE, new permission(false, [DELETE_PERM]));
|
|
178
|
+
requiredPermissions.set(terms.VALID_SQL_OPS_ENUM.SELECT, new permission(false, [READ_PERM]));
|
|
179
|
+
requiredPermissions.set(terms.VALID_SQL_OPS_ENUM.INSERT, new permission(false, [INSERT_PERM]));
|
|
180
|
+
requiredPermissions.set(terms.VALID_SQL_OPS_ENUM.UPDATE, new permission(false, [UPDATE_PERM]));
|
|
181
|
+
module.exports = {
|
|
182
|
+
verifyPerms,
|
|
183
|
+
verifyPermsAst,
|
|
184
|
+
verifyBulkLoadAttributePerms,
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Verifies permissions and restrictions for a SQL operation based on the user's assigned role.
|
|
188
|
+
* @param ast - The SQL statement in Syntax Tree form.
|
|
189
|
+
* @param userObject - The user and role specification
|
|
190
|
+
* @param operation - The operation specified in the call.
|
|
191
|
+
* @returns {null | PermissionResponseObject} - null if permissions match, errors returned in the PermissionResponseObject
|
|
192
|
+
*/
|
|
193
|
+
function verifyPermsAst(ast, userObject, operation) {
|
|
194
|
+
//TODO - update these validation checks to use validate.js
|
|
195
|
+
if (commonUtils.isEmptyOrZeroLength(ast)) {
|
|
196
|
+
harperLogger.info('verify_perms_ast has an empty user parameter');
|
|
197
|
+
throw handleHDBError(new Error());
|
|
198
|
+
}
|
|
199
|
+
if (commonUtils.isEmptyOrZeroLength(userObject)) {
|
|
200
|
+
harperLogger.info('verify_perms_ast has an empty user parameter');
|
|
201
|
+
throw handleHDBError(new Error());
|
|
202
|
+
}
|
|
203
|
+
if (commonUtils.isEmptyOrZeroLength(operation)) {
|
|
204
|
+
harperLogger.info('verify_perms_ast has a null operation parameter');
|
|
205
|
+
throw handleHDBError(new Error());
|
|
206
|
+
}
|
|
207
|
+
try {
|
|
208
|
+
const bucket = require('../sqlTranslator/sql_statement_bucket.js');
|
|
209
|
+
const alasql = require('alasql');
|
|
210
|
+
const permsResponse = new PermissionResponseObject();
|
|
211
|
+
let parsedAst = new bucket(ast);
|
|
212
|
+
let schemas = parsedAst.getSchemas();
|
|
213
|
+
let schemaTableMap = new Map();
|
|
214
|
+
// Should not continue if there are no schemas defined and there are table columns defined.
|
|
215
|
+
// This is defined so we can do calc selects like : SELECT ABS(-12)
|
|
216
|
+
if ((!schemas || schemas.length === 0) && parsedAst.affected_attributes && parsedAst.affected_attributes.size > 0) {
|
|
217
|
+
harperLogger.info(`No schemas defined in verifyPermsAst(), will not continue.`);
|
|
218
|
+
throw handleHDBError(new Error());
|
|
219
|
+
}
|
|
220
|
+
// set to true if this operation affects a system table. Only su can read from system tables, but can't update/delete.
|
|
221
|
+
const isSuperUser = !!userObject.role.permission.super_user;
|
|
222
|
+
const isSuSystemOperation = schemas.includes('system');
|
|
223
|
+
if (isSuSystemOperation && FORBIDDEN_SYSTEM_OPS_ENUM[operation]) {
|
|
224
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.DROP_SYSTEM, HTTP_STATUS_CODES.FORBIDDEN);
|
|
225
|
+
}
|
|
226
|
+
if (isSuperUser && !isSuSystemOperation) {
|
|
227
|
+
//admins can do (almost) anything through the hole in sheet!
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
const fullRolePerms = permsTranslator.getRolePermissions(userObject.role);
|
|
231
|
+
userObject.role.permission = fullRolePerms;
|
|
232
|
+
//If the AST is for a SELECT, we need to check for wildcards and, if they exist, update the AST to include the
|
|
233
|
+
// attributes that the user has READ perms for - we can skip this step for super users
|
|
234
|
+
if (!isSuperUser && ast instanceof alasql.yy.Select) {
|
|
235
|
+
ast = parsedAst.updateAttributeWildcardsForRolePerms(fullRolePerms);
|
|
236
|
+
}
|
|
237
|
+
for (let s = 0; s < schemas.length; s++) {
|
|
238
|
+
//NOSONAR
|
|
239
|
+
let tables = parsedAst.getTablesBySchemaName(schemas[s]);
|
|
240
|
+
if (tables) {
|
|
241
|
+
schemaTableMap.set(schemas[s], tables);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
let tablePermRestriction = hasPermissions(userObject, operation, schemaTableMap, permsResponse); //NOSONAR;
|
|
245
|
+
if (tablePermRestriction) {
|
|
246
|
+
return tablePermRestriction;
|
|
247
|
+
}
|
|
248
|
+
schemaTableMap.forEach((tables, schemaKey) => {
|
|
249
|
+
for (let t = 0; t < tables.length; t++) {
|
|
250
|
+
let attributes = parsedAst.getAttributesBySchemaTableName(schemaKey, tables[t]);
|
|
251
|
+
const attribute_permissions = getAttributePermissions(userObject.role.permission, schemaKey, tables[t]);
|
|
252
|
+
checkAttributePerms(attributes, attribute_permissions, operation, tables[t], schemaKey, permsResponse);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
return permsResponse.getPermsResponse();
|
|
256
|
+
}
|
|
257
|
+
catch (e) {
|
|
258
|
+
throw handleHDBError(e);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Verifies permissions and restrictions for the NoSQL operation based on the user's assigned role.
|
|
263
|
+
*
|
|
264
|
+
* @param requestJson - The request body as json
|
|
265
|
+
* @param operation - The name of the operation specified in the request.
|
|
266
|
+
* @returns { null | PermissionResponseObject } - null if permissions match, errors are consolidated into PermissionResponseObj.
|
|
267
|
+
*/
|
|
268
|
+
function verifyPerms(requestJson, operation) {
|
|
269
|
+
if (requestJson === null ||
|
|
270
|
+
operation === null ||
|
|
271
|
+
requestJson.hdb_user === undefined ||
|
|
272
|
+
requestJson.hdb_user === null) {
|
|
273
|
+
harperLogger.info(`null required parameter in verifyPerms`);
|
|
274
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.DEFAULT_INVALID_REQUEST, HTTP_STATUS_CODES.BAD_REQUEST);
|
|
275
|
+
}
|
|
276
|
+
//passing in the function rather than the function name is an easy mistake to make, so taking care of that case here.
|
|
277
|
+
let op = undefined;
|
|
278
|
+
if (operation instanceof Function) {
|
|
279
|
+
op = operation.name;
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
op = operation;
|
|
283
|
+
}
|
|
284
|
+
//we need to use the action value, if present, to ensure the correct permission is checked below
|
|
285
|
+
let action = requestJson.action;
|
|
286
|
+
let operationSchema = requestJson.schema ?? requestJson.database;
|
|
287
|
+
let table = requestJson.table;
|
|
288
|
+
let schemaTableMap = new Map();
|
|
289
|
+
if (operationSchema && table) {
|
|
290
|
+
schemaTableMap.set(operationSchema, [table]);
|
|
291
|
+
}
|
|
292
|
+
const permsResponse = new PermissionResponseObject();
|
|
293
|
+
if (commonUtils.isEmptyOrZeroLength(requestJson.hdb_user?.role) ||
|
|
294
|
+
commonUtils.isEmptyOrZeroLength(requestJson.hdb_user?.role?.permission)) {
|
|
295
|
+
harperLogger.info(`User ${requestJson.hdb_user?.username} has no role or permissions. Please assign the user a valid role.`);
|
|
296
|
+
return permsResponse.handleUnauthorizedItem(HDB_ERROR_MSGS.USER_HAS_NO_PERMS(requestJson.hdb_user?.username));
|
|
297
|
+
}
|
|
298
|
+
const isSuperUser = !!requestJson.hdb_user?.role?.permission?.super_user;
|
|
299
|
+
const structureUser = requestJson.hdb_user?.role?.permission?.structure_user;
|
|
300
|
+
// set to true if this operation affects a system table. Only su can read from system tables, but can't update/delete.
|
|
301
|
+
let isSuSystemOperation = schemaTableMap.has(terms.SYSTEM_SCHEMA_NAME) || operationSchema === terms.SYSTEM_SCHEMA_NAME;
|
|
302
|
+
// Allow the hdbNodes, hdbRole & hdb_user tables to be modified by superusers
|
|
303
|
+
if (isSuperUser &&
|
|
304
|
+
isSuSystemOperation &&
|
|
305
|
+
ALLOWED_SYS_OPS[requestJson.operation] &&
|
|
306
|
+
(table === terms.SYSTEM_TABLE_NAMES.NODE_TABLE_NAME ||
|
|
307
|
+
table === terms.SYSTEM_TABLE_NAMES.ROLE_TABLE_NAME ||
|
|
308
|
+
table === terms.SYSTEM_TABLE_NAMES.USER_TABLE_NAME)) {
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
if (isSuSystemOperation && FORBIDDEN_SYSTEM_OPS_ENUM[op]) {
|
|
312
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.DROP_SYSTEM, HTTP_STATUS_CODES.FORBIDDEN);
|
|
313
|
+
}
|
|
314
|
+
if (isSuperUser && !isSuSystemOperation) {
|
|
315
|
+
//admins can do (almost) anything
|
|
316
|
+
return null;
|
|
317
|
+
}
|
|
318
|
+
//structureUsers can create/drop schemas if they are not locked down to specific schemas.
|
|
319
|
+
if (structureUser === true && (op === schema.createSchema.name || op === schema.dropSchema.name)) {
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
//check if this is a structureUser & trying to perform a structure user op
|
|
323
|
+
if (STRUCTURE_USER_OPS.indexOf(op) >= 0 && (structureUser === true || Array.isArray(structureUser))) {
|
|
324
|
+
//if true can perform op all schemas
|
|
325
|
+
if (structureUser === true) {
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
//if the structureUser value is an array and contains the operation schema, all good
|
|
329
|
+
if (structureUser.indexOf(operationSchema) >= 0) {
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
332
|
+
//if we get here then error out
|
|
333
|
+
return permsResponse.handleUnauthorizedItem(`User does not have access to perform '${requestJson.operation}' against schema '${operationSchema}'`);
|
|
334
|
+
}
|
|
335
|
+
// operations is an optional allowlist on the role. When present, it acts as a two-gate check:
|
|
336
|
+
// Gate 1 — operation allowlist: only ops explicitly listed (or expanded from a group) are reachable.
|
|
337
|
+
// Any unlisted op is denied here, before table CRUD checks even run.
|
|
338
|
+
// Gate 2 — SU bypass: if the op passed gate 1 and is normally restricted to super_user, the explicit
|
|
339
|
+
// listing is treated as a deliberate admin grant and allowed immediately (return null).
|
|
340
|
+
// Non-SU ops that pass gate 1 fall through to the normal table CRUD checks below.
|
|
341
|
+
const permission = requestJson.hdb_user?.role?.permission;
|
|
342
|
+
const operations = permission?.operations;
|
|
343
|
+
if (operations !== undefined) {
|
|
344
|
+
// _expandedOperations is pre-built at cache-load time (O(1) lookup).
|
|
345
|
+
// Fall back to on-demand expansion for inline-asserted roles (e.g. impersonation via hdb_user in body).
|
|
346
|
+
const allowedOps = permission._expandedOperations ?? expandOperationsPerms(operations);
|
|
347
|
+
// op is the internal camelCase function name; allowedOps contains snake_case API names.
|
|
348
|
+
// Resolve via the api_name stored on the permission entry (set at registration time).
|
|
349
|
+
const opApiName = requiredPermissions.get(op)?.api_name ?? op;
|
|
350
|
+
// Gate 1: op not in allowlist — deny regardless of table CRUD permissions.
|
|
351
|
+
if (!allowedOps.has(opApiName)) {
|
|
352
|
+
return permsResponse.handleUnauthorizedItem(HDB_ERROR_MSGS.OP_NOT_IN_OPERATIONS(opApiName));
|
|
353
|
+
}
|
|
354
|
+
// Gate 2: op is SU-only but was explicitly granted via operations — allow without super_user.
|
|
355
|
+
// Without this, the SU check further below would still deny it even though it passed gate 1.
|
|
356
|
+
// TODO: ops registered with both requires_su AND non-empty CRUD perms (currently only getBackup)
|
|
357
|
+
// have their table-level CRUD check bypassed here. Should fall through for those instead of
|
|
358
|
+
// returning null unconditionally. Low risk today but worth tightening.
|
|
359
|
+
if (requiredPermissions.get(op)?.requires_su) {
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
const fullRolePerms = permsTranslator.getRolePermissions(requestJson.hdb_user?.role);
|
|
364
|
+
if (requestJson.hdb_user?.role)
|
|
365
|
+
requestJson.hdb_user.role.permission = fullRolePerms;
|
|
366
|
+
if (op === DESCRIBE_SCHEMA_KEY || op === DESCRIBE_TABLE_KEY) {
|
|
367
|
+
if (!fullRolePerms.super_user) {
|
|
368
|
+
if (operationSchema === terms.SYSTEM_SCHEMA_NAME) {
|
|
369
|
+
return permsResponse.handleUnauthorizedItem(HDB_ERROR_MSGS.SCHEMA_PERM_ERROR(operationSchema));
|
|
370
|
+
}
|
|
371
|
+
if (op === DESCRIBE_SCHEMA_KEY) {
|
|
372
|
+
if (!fullRolePerms[operationSchema] || !fullRolePerms[operationSchema][DESCRIBE_PERM]) {
|
|
373
|
+
return permsResponse.handleInvalidItem(HDB_ERROR_MSGS.SCHEMA_NOT_FOUND(operationSchema));
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
if (op === DESCRIBE_TABLE_KEY &&
|
|
377
|
+
(!fullRolePerms[operationSchema] ||
|
|
378
|
+
!fullRolePerms[operationSchema].tables[table] ||
|
|
379
|
+
!fullRolePerms[operationSchema].tables[table][DESCRIBE_PERM])) {
|
|
380
|
+
return permsResponse.handleInvalidItem(HDB_ERROR_MSGS.TABLE_NOT_FOUND(operationSchema, table));
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
let failedPermissions = hasPermissions(requestJson.hdb_user, op, schemaTableMap, permsResponse, action);
|
|
385
|
+
//check if failedTablePerms are back and return them B/C it will be an op-level permission issue
|
|
386
|
+
if (failedPermissions) {
|
|
387
|
+
return failedPermissions;
|
|
388
|
+
}
|
|
389
|
+
if (requiredPermissions.get(op) && requiredPermissions.get(op).perms.length === 0) {
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
//For a NoSQL search op with `get_attributes: '*'` - as long as the role has READ permissions on the table,
|
|
393
|
+
//we will convert the * to the specific attributes the user has READ permissions for via their role.
|
|
394
|
+
if (!isSuperUser && requestJson.get_attributes && terms.SEARCH_WILDCARDS.includes(requestJson.get_attributes[0])) {
|
|
395
|
+
let finalGetAttrs = [];
|
|
396
|
+
const table_perms = fullRolePerms[operationSchema].tables[table];
|
|
397
|
+
if (table_perms[terms.PERMS_CRUD_ENUM.READ]) {
|
|
398
|
+
if (table_perms.attribute_permissions.length > 0) {
|
|
399
|
+
const tableAttrPerms = table_perms.attribute_permissions.filter((perm) => perm[terms.PERMS_CRUD_ENUM.READ]);
|
|
400
|
+
tableAttrPerms.forEach((perm) => {
|
|
401
|
+
finalGetAttrs.push(perm.attribute_name);
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
finalGetAttrs = global.hdb_schema[operationSchema][table].attributes.map((obj) => obj.attribute);
|
|
406
|
+
}
|
|
407
|
+
requestJson.get_attributes = finalGetAttrs;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
const recordAttrs = getRecordAttributes(requestJson);
|
|
411
|
+
const attrPermissions = getAttributePermissions(requestJson.hdb_user?.role?.permission, operationSchema, table);
|
|
412
|
+
checkAttributePerms(recordAttrs, attrPermissions, op, table, operationSchema, permsResponse, action);
|
|
413
|
+
//This result value will be null if no perms issues were found in checkAttributePerms
|
|
414
|
+
return permsResponse.getPermsResponse();
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Checks if the user's role has the required permissions for the operation specified.
|
|
418
|
+
* @param userObject - the hdb_user specified in the request body
|
|
419
|
+
* @param op - the name of the operation
|
|
420
|
+
* @param schemaTableMap - A map in the format [schemaKey, [tables]].
|
|
421
|
+
* @returns {PermissionResponseObject | null} - null value if permissions match, PermissionResponseObject if not.
|
|
422
|
+
*/
|
|
423
|
+
function hasPermissions(userObject, op, schemaTableMap, permsResponse, action) {
|
|
424
|
+
if (commonUtils.arrayHasEmptyValues([userObject, op, schemaTableMap])) {
|
|
425
|
+
harperLogger.info(`hasPermissions has an invalid parameter`);
|
|
426
|
+
throw handleHDBError(new Error());
|
|
427
|
+
}
|
|
428
|
+
// set to true if this operation affects a system table. Only su can read from system tables, but can't update/delete.
|
|
429
|
+
let isSuSystemOperation = schemaTableMap.has('system');
|
|
430
|
+
const userPerms = userObject.role.permission;
|
|
431
|
+
if (userPerms.super_user && (!isSuSystemOperation || requiredPermissions.get(op).requires_su)) {
|
|
432
|
+
//admins can do (almost) anything through the hole in sheet!
|
|
433
|
+
return null;
|
|
434
|
+
}
|
|
435
|
+
// still here after the su check above but this operation require su, so fail.
|
|
436
|
+
if (!requiredPermissions.get(op)) {
|
|
437
|
+
harperLogger.info(`operation ${op} not found.`);
|
|
438
|
+
//This is here to catch if an operation has not been added to the permissions map above
|
|
439
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.OP_NOT_FOUND(op), HTTP_STATUS_CODES.BAD_REQUEST);
|
|
440
|
+
}
|
|
441
|
+
if (requiredPermissions.get(op) && requiredPermissions.get(op).requires_su) {
|
|
442
|
+
harperLogger.info(`operation ${op} requires SU permissions.`);
|
|
443
|
+
return permsResponse.handleUnauthorizedItem(HDB_ERROR_MSGS.OP_IS_SU_ONLY(op));
|
|
444
|
+
}
|
|
445
|
+
const schemaTableKeys = schemaTableMap.keys();
|
|
446
|
+
for (let schemaTable of schemaTableKeys) {
|
|
447
|
+
//check if schema exists and, if so, if user has DESCRIBE perms
|
|
448
|
+
try {
|
|
449
|
+
if ((schemaTable && !userPerms[schemaTable]) || userPerms[schemaTable][DESCRIBE_PERM] === false) {
|
|
450
|
+
//add schema does not exist error message
|
|
451
|
+
permsResponse.addInvalidItem(HDB_ERROR_MSGS.SCHEMA_NOT_FOUND(schemaTable));
|
|
452
|
+
continue;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
catch {
|
|
456
|
+
//we should never get here b/c if statement above should catch any possible errors and log the issue to
|
|
457
|
+
// permsResponse but keeping this here just to be safe
|
|
458
|
+
permsResponse.addInvalidItem(HDB_ERROR_MSGS.SCHEMA_NOT_FOUND(schemaTable));
|
|
459
|
+
continue;
|
|
460
|
+
}
|
|
461
|
+
const schemaTableData = schemaTableMap.get(schemaTable);
|
|
462
|
+
for (let table of schemaTableData) {
|
|
463
|
+
const tablePermissions = userPerms[schemaTable].tables[table];
|
|
464
|
+
//if table perms don't exist or DESCRIBE perm set to false, we add an invalid item error to response
|
|
465
|
+
if (!tablePermissions || tablePermissions[DESCRIBE_PERM] === false) {
|
|
466
|
+
permsResponse.addInvalidItem(HDB_ERROR_MSGS.TABLE_NOT_FOUND(schemaTable, table));
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
try {
|
|
470
|
+
//Here we check all required permissions for the operation defined in the map with the values of the permissions in the role.
|
|
471
|
+
const requiredTablePerms = [];
|
|
472
|
+
let requiredPerms = requiredPermissions.get(op).perms;
|
|
473
|
+
//If an 'action' is included in the operation json, we want to only check permissions for that action
|
|
474
|
+
if (!commonUtils.isEmpty(action) && requiredPerms.includes(action)) {
|
|
475
|
+
requiredPerms = [action];
|
|
476
|
+
}
|
|
477
|
+
for (let i = 0; i < requiredPerms.length; i++) {
|
|
478
|
+
let perm = requiredPerms[i];
|
|
479
|
+
let userPermission = tablePermissions[perm];
|
|
480
|
+
if (userPermission === undefined || userPermission === null || userPermission === false) {
|
|
481
|
+
//need to check if any perm on table OR should return table not found
|
|
482
|
+
harperLogger.info(`Required ${perm} permission not found for ${op} ${action ? `${action} ` : ''}operation in role ${userObject.role.id}`);
|
|
483
|
+
requiredTablePerms.push(perm);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
if (requiredTablePerms.length > 0) {
|
|
487
|
+
permsResponse.addUnauthorizedTable(schemaTable, table, requiredTablePerms);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
catch (e) {
|
|
491
|
+
//if we hit an error here, we need to block operation and return error
|
|
492
|
+
const errMsg = HDB_ERROR_MSGS.UNKNOWN_OP_AUTH_ERROR(op, schemaTable, table);
|
|
493
|
+
harperLogger.error(errMsg);
|
|
494
|
+
harperLogger.error(e);
|
|
495
|
+
throw handleHDBError(hdbErrors.CHECK_LOGS_WRAPPER(errMsg));
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
//We need to check if there are multiple schemas in this operation (i.e. SQL cross schema select) and, if so,
|
|
501
|
+
// we continue to check specific attribute perms b/c there may be a mix of perms issues across schema
|
|
502
|
+
if (schemaTableMap.size < 2) {
|
|
503
|
+
return permsResponse.getPermsResponse();
|
|
504
|
+
}
|
|
505
|
+
return null;
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Compare the attributes specified in the call with the user's role. If there are permissions in the role,
|
|
509
|
+
* ensure that the permission required for the operation matches the permission in the role.
|
|
510
|
+
* @param recordAttributes - An array of the attributes specified in the operation
|
|
511
|
+
* @param roleAttributePermissions - A Map of each permission in the user role, specified as [tableName, [attribute_permissions]].
|
|
512
|
+
* @param operation
|
|
513
|
+
* @param tableName - name of the table being checked
|
|
514
|
+
* @param schemaName - name of schema being checked
|
|
515
|
+
* @param permsResponse - PermissionResponseObject instance being used to track permissions issues to return in response, if necessary
|
|
516
|
+
* @returns {} - this function does not return a value - it updates the permsResponse which is checked later
|
|
517
|
+
*/
|
|
518
|
+
function checkAttributePerms(recordAttributes, roleAttributePermissions, operation, tableName, schemaName, permsResponse, action) {
|
|
519
|
+
if (!recordAttributes || !roleAttributePermissions) {
|
|
520
|
+
harperLogger.info(`no attributes specified in checkAttributePerms.`);
|
|
521
|
+
throw handleHDBError(new Error());
|
|
522
|
+
}
|
|
523
|
+
// check each attribute with role permissions. Required perm should match the per in the operation
|
|
524
|
+
let neededPerms = requiredPermissions.get(operation).perms;
|
|
525
|
+
if (!neededPerms || neededPerms === '') {
|
|
526
|
+
// We should never get in here since all of our operations should have a perm, but just in case we should fail
|
|
527
|
+
// any operation that doesn't have perms.
|
|
528
|
+
harperLogger.info(`no permissions found for ${operation} in checkAttributePerms().`);
|
|
529
|
+
throw handleHDBError(new Error());
|
|
530
|
+
}
|
|
531
|
+
//Leave early if the role has no attribute permissions set
|
|
532
|
+
if (commonUtils.isEmptyOrZeroLength(roleAttributePermissions)) {
|
|
533
|
+
harperLogger.info(`No role permissions set (this is OK).`);
|
|
534
|
+
return null;
|
|
535
|
+
}
|
|
536
|
+
//If an 'action' is included in the operation json, we want to only check permissions for that action
|
|
537
|
+
if (action && neededPerms.includes(action)) {
|
|
538
|
+
neededPerms = [action];
|
|
539
|
+
}
|
|
540
|
+
let requiredAttrPerms = {};
|
|
541
|
+
// Check if each specified attribute in the call (recordAttributes) has a permission specified in the role. If there is
|
|
542
|
+
// a permission, check if the operation permission is false.
|
|
543
|
+
for (let element of recordAttributes) {
|
|
544
|
+
const permission = roleAttributePermissions.get(element);
|
|
545
|
+
if (permission) {
|
|
546
|
+
if (permission[DESCRIBE_PERM] === false) {
|
|
547
|
+
permsResponse.addInvalidItem(HDB_ERROR_MSGS.ATTR_NOT_FOUND(schemaName, tableName, element), schemaName, tableName);
|
|
548
|
+
continue;
|
|
549
|
+
}
|
|
550
|
+
if (neededPerms) {
|
|
551
|
+
for (let perm of neededPerms) {
|
|
552
|
+
if (terms.TIME_STAMP_NAMES.includes(permission.attribute_name) && perm !== READ_PERM) {
|
|
553
|
+
throw handleHDBError(new Error(), HDB_ERROR_MSGS.SYSTEM_TIMESTAMP_PERMS_ERR, HTTP_STATUS_CODES.FORBIDDEN);
|
|
554
|
+
}
|
|
555
|
+
if (permission[perm] === false) {
|
|
556
|
+
if (!requiredAttrPerms[permission.attribute_name]) {
|
|
557
|
+
requiredAttrPerms[permission.attribute_name] = [perm];
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
requiredAttrPerms[permission.attribute_name].push(perm);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
else {
|
|
567
|
+
//if we get here, it means that this is a new attribute and, because there are attr-level perms set, the role
|
|
568
|
+
// does not have permission to do anything with it b/c all perms will be set to FALSE by default
|
|
569
|
+
permsResponse.addInvalidItem(HDB_ERROR_MSGS.ATTR_NOT_FOUND(schemaName, tableName, element), schemaName, tableName);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
const unauthorizedTableAttributes = Object.keys(requiredAttrPerms);
|
|
573
|
+
if (unauthorizedTableAttributes.length > 0) {
|
|
574
|
+
permsResponse.addUnauthorizedAttributes(unauthorizedTableAttributes, schemaName, tableName, requiredAttrPerms);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Pull the table attributes specified in the statement. Will always return a Set, even if empty or on error.
|
|
579
|
+
* @param json - json containing the request
|
|
580
|
+
* @returns {Set} - all attributes affected by the request statement.
|
|
581
|
+
*/
|
|
582
|
+
function getRecordAttributes(json) {
|
|
583
|
+
let affectedAttributes = new Set();
|
|
584
|
+
try {
|
|
585
|
+
//Bulk load operations need to have attr-level permissions checked during the validateChunk step of the operation
|
|
586
|
+
// in the bulkLoad.js methods
|
|
587
|
+
if (json.action) {
|
|
588
|
+
return affectedAttributes;
|
|
589
|
+
}
|
|
590
|
+
if (json.operation === terms.OPERATIONS_ENUM.SEARCH_BY_CONDITIONS) {
|
|
591
|
+
json.conditions.forEach((condition) => {
|
|
592
|
+
let attribute = condition.attribute;
|
|
593
|
+
if (condition.search_attribute !== undefined) {
|
|
594
|
+
attribute = condition.search_attribute;
|
|
595
|
+
}
|
|
596
|
+
affectedAttributes.add(attribute);
|
|
597
|
+
});
|
|
598
|
+
}
|
|
599
|
+
if (json && (json.attribute || json.search_attribute)) {
|
|
600
|
+
let attribute = json.attribute;
|
|
601
|
+
if (json.search_attribute !== undefined) {
|
|
602
|
+
attribute = json.search_attribute;
|
|
603
|
+
}
|
|
604
|
+
affectedAttributes.add(attribute);
|
|
605
|
+
}
|
|
606
|
+
if (!json.records || json.records.length === 0) {
|
|
607
|
+
if (!json.get_attributes || json.get_attributes.length === 0) {
|
|
608
|
+
return affectedAttributes;
|
|
609
|
+
}
|
|
610
|
+
for (const attr of json.get_attributes) {
|
|
611
|
+
affectedAttributes.add(attr);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
else {
|
|
615
|
+
// get unique affectedAttributes
|
|
616
|
+
for (const record of json.records) {
|
|
617
|
+
let keys = Object.keys(record);
|
|
618
|
+
for (const key of keys) {
|
|
619
|
+
affectedAttributes.add(key);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
catch (err) {
|
|
625
|
+
harperLogger.info(err);
|
|
626
|
+
}
|
|
627
|
+
return affectedAttributes;
|
|
628
|
+
}
|
|
629
|
+
/**
|
|
630
|
+
* Pull the attribute permissions for the schema/table. Will always return a map, even empty or on error.
|
|
631
|
+
* @param jsonHdbUser - The hdb_user from the json request body
|
|
632
|
+
* @param operationSchema - The schema specified in the request
|
|
633
|
+
* @param table - The table specified.
|
|
634
|
+
* @returns {Map} A Map of attribute permissions of the form [attribute_name, attributePermission];
|
|
635
|
+
*/
|
|
636
|
+
function getAttributePermissions(rolePerms, operationSchema, table) {
|
|
637
|
+
let roleAttributePermissions = new Map();
|
|
638
|
+
if (commonUtils.isEmpty(rolePerms)) {
|
|
639
|
+
harperLogger.info(`no hdb_user specified in getAttributePermissions`);
|
|
640
|
+
return roleAttributePermissions;
|
|
641
|
+
}
|
|
642
|
+
if (rolePerms.super_user) {
|
|
643
|
+
return roleAttributePermissions;
|
|
644
|
+
}
|
|
645
|
+
//Some commands do not require a table to be specified. If there is no table, there is likely not
|
|
646
|
+
// anything attribute permissions needs to check.
|
|
647
|
+
if (!operationSchema || !table) {
|
|
648
|
+
return roleAttributePermissions;
|
|
649
|
+
}
|
|
650
|
+
try {
|
|
651
|
+
rolePerms[operationSchema].tables[table].attribute_permissions.forEach((perm) => {
|
|
652
|
+
if (!roleAttributePermissions.has(perm.attribute_name)) {
|
|
653
|
+
roleAttributePermissions.set(perm.attribute_name, perm);
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
catch {
|
|
658
|
+
harperLogger.info(`No attribute permissions found for schema ${operationSchema} and table ${table}.`);
|
|
659
|
+
}
|
|
660
|
+
return roleAttributePermissions;
|
|
661
|
+
}
|
|
662
|
+
function verifyBulkLoadAttributePerms(rolePerms, op, action, operationSchema, operationTable, attributes, permsResponse) {
|
|
663
|
+
const recordAttrs = new Set(attributes);
|
|
664
|
+
const attrPermissions = getAttributePermissions(rolePerms, operationSchema, operationTable);
|
|
665
|
+
checkAttributePerms(recordAttrs, attrPermissions, op, operationTable, operationSchema, permsResponse, action);
|
|
666
|
+
}
|
|
667
|
+
//# sourceMappingURL=operation_authorization.js.map
|