@harperfast/harper 5.0.0-alpha.10 → 5.0.0-beta.1
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/bin/BinObjects.js +17 -0
- package/bin/cliOperations.js +157 -0
- package/bin/copyDb.ts +280 -0
- package/bin/harper.js +156 -0
- package/bin/install.js +15 -0
- package/bin/lite.js +5 -0
- package/bin/restart.js +201 -0
- package/bin/run.js +409 -0
- package/bin/status.js +65 -0
- package/bin/stop.js +22 -0
- package/bin/upgrade.js +134 -0
- package/components/Application.ts +646 -0
- package/components/ApplicationScope.ts +49 -0
- package/components/Component.ts +53 -0
- package/components/ComponentV1.ts +342 -0
- package/components/DEFAULT_CONFIG.ts +18 -0
- package/components/EntryHandler.ts +227 -0
- package/components/Logger.ts +14 -0
- package/components/OptionsWatcher.ts +354 -0
- package/components/PluginModule.ts +6 -0
- package/components/Scope.ts +329 -0
- package/components/componentLoader.ts +529 -0
- package/components/deriveCommonPatternBase.ts +31 -0
- package/components/deriveGlobOptions.ts +44 -0
- package/components/deriveURLPath.ts +57 -0
- package/components/operations.js +658 -0
- package/components/operationsValidation.js +246 -0
- package/components/packageComponent.ts +39 -0
- package/components/requestRestart.ts +26 -0
- package/components/resolveBaseURLPath.ts +38 -0
- package/components/status/ComponentStatus.ts +110 -0
- package/components/status/ComponentStatusRegistry.ts +251 -0
- package/components/status/api.ts +153 -0
- package/components/status/crossThread.ts +405 -0
- package/components/status/errors.ts +152 -0
- package/components/status/index.ts +44 -0
- package/components/status/internal.ts +65 -0
- package/components/status/registry.ts +12 -0
- package/components/status/types.ts +96 -0
- package/config/RootConfigWatcher.ts +59 -0
- package/config/configHelpers.ts +11 -0
- package/config/configUtils.js +967 -0
- package/config/harperConfigEnvVars.ts +641 -0
- package/dataLayer/CreateAttributeObject.js +25 -0
- package/dataLayer/CreateTableObject.js +11 -0
- package/dataLayer/DataLayerObjects.js +43 -0
- package/dataLayer/DeleteBeforeObject.js +22 -0
- package/dataLayer/DeleteObject.js +25 -0
- package/dataLayer/DropAttributeObject.js +11 -0
- package/dataLayer/GetBackupObject.js +22 -0
- package/dataLayer/InsertObject.js +24 -0
- package/dataLayer/ReadAuditLogObject.js +24 -0
- package/dataLayer/SQLSearch.js +1335 -0
- package/dataLayer/SearchByConditionsObject.js +61 -0
- package/dataLayer/SearchByHashObject.js +21 -0
- package/dataLayer/SearchObject.js +45 -0
- package/dataLayer/SqlSearchObject.js +14 -0
- package/dataLayer/UpdateObject.js +23 -0
- package/dataLayer/UpsertObject.js +23 -0
- package/dataLayer/bulkLoad.js +813 -0
- package/dataLayer/dataObjects/BulkLoadObjects.js +27 -0
- package/dataLayer/dataObjects/UpsertObject.js +23 -0
- package/dataLayer/delete.js +164 -0
- package/dataLayer/export.js +381 -0
- package/dataLayer/getBackup.js +40 -0
- package/dataLayer/harperBridge/BridgeMethods.js +81 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +633 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateReturnObj.js +28 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +88 -0
- package/dataLayer/harperBridge/harperBridge.js +21 -0
- package/dataLayer/harperBridge/lmdbBridge/LMDBBridge.js +119 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +19 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +112 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +67 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +31 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +94 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +98 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +89 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +109 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +107 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +137 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +35 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +111 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +28 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +29 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +207 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +156 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +21 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +30 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbTransaction.js +19 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +64 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +70 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +22 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBDeleteTransactionObject.js +23 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBInsertTransactionObject.js +22 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBTransactionObject.js +23 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpdateTransactionObject.js +24 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBUpsertTransactionObject.js +24 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/TableSizeObject.js +25 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +21 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +157 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +94 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +39 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +34 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +100 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +371 -0
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +109 -0
- package/dataLayer/hdbInfoController.js +254 -0
- package/dataLayer/insert.js +266 -0
- package/dataLayer/readAuditLog.js +59 -0
- package/dataLayer/schema.js +366 -0
- package/dataLayer/schemaDescribe.js +289 -0
- package/dataLayer/search.js +60 -0
- package/dataLayer/transaction.js +17 -0
- package/dataLayer/update.js +124 -0
- package/dist/components/Logger.d.ts +12 -0
- package/dist/components/Logger.js +3 -0
- package/dist/components/Logger.js.map +1 -0
- package/dist/components/Scope.d.ts +14 -4
- package/dist/components/Scope.js +18 -10
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/componentLoader.js +16 -9
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/operations.js +2 -2
- package/dist/components/operations.js.map +1 -1
- package/dist/config/configUtils.d.ts +1 -1
- package/dist/config/configUtils.js +1 -1
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/CreateTableObject.d.ts +2 -2
- package/dist/dataLayer/CreateTableObject.js +2 -2
- package/dist/dataLayer/CreateTableObject.js.map +1 -1
- package/dist/dataLayer/delete.d.ts +1 -1
- package/dist/dataLayer/schema.js +6 -5
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +1 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +1 -1
- package/dist/resources/IterableEventQueue.d.ts +1 -1
- package/dist/resources/LMDBTransaction.d.ts +5 -1
- package/dist/resources/Resource.d.ts +1 -1
- package/dist/resources/RocksIndexStore.d.ts +3 -3
- package/dist/resources/RocksTransactionLogStore.d.ts +6 -3
- package/dist/resources/Table.d.ts +15 -6
- package/dist/resources/Table.js +4 -1
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/read.js +32 -22
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/analytics/write.js +3 -6
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +3 -3
- package/dist/resources/blob.d.ts +25 -2
- package/dist/resources/databases.d.ts +12 -2
- package/dist/resources/databases.js +22 -19
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/search.js +11 -5
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/transaction.d.ts +2 -1
- package/dist/security/auth.js +1 -1
- package/dist/security/auth.js.map +1 -1
- package/dist/security/cryptoHash.d.ts +2 -2
- package/dist/security/jsLoader.js +243 -66
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.js +4 -5
- package/dist/security/keys.js.map +1 -1
- package/dist/security/user.js +3 -3
- package/dist/security/user.js.map +1 -1
- package/dist/server/REST.js +16 -2
- package/dist/server/REST.js.map +1 -1
- package/dist/server/Server.d.ts +2 -1
- package/dist/server/Server.js.map +1 -1
- package/dist/server/fastifyRoutes/plugins/hdbCore.d.ts +6 -1
- package/dist/server/fastifyRoutes.js +2 -0
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/http.js +12 -6
- package/dist/server/http.js.map +1 -1
- package/dist/server/jobs/JobObject.d.ts +3 -3
- package/dist/server/loadRootComponents.js +1 -0
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/operationsServer.js +3 -1
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.d.ts +3 -3
- package/dist/server/serverHelpers/Request.d.ts +5 -5
- package/dist/server/serverHelpers/requestTimePlugin.d.ts +1 -1
- package/dist/server/threads/manageThreads.d.ts +2 -2
- package/dist/server/threads/manageThreads.js +50 -35
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +1 -1
- package/dist/sqlTranslator/deleteTranslator.d.ts +1 -1
- package/dist/utility/AWS/AWSConnector.d.ts +3 -2
- package/dist/utility/common_utils.d.ts +3 -3
- package/dist/utility/environment/systemInformation.d.ts +1 -0
- package/dist/utility/functions/date/dateFunctions.d.ts +11 -11
- package/dist/utility/globalSchema.d.ts +1 -1
- package/dist/utility/hdbTerms.d.ts +3 -0
- package/dist/utility/hdbTerms.js +3 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/installation.d.ts +2 -4
- package/dist/utility/installation.js.map +1 -1
- package/dist/utility/lmdb/commonUtility.d.ts +1 -0
- package/dist/utility/lmdb/deleteUtility.d.ts +1 -0
- package/dist/utility/lmdb/environmentUtility.d.ts +1 -0
- package/dist/utility/lmdb/searchUtility.d.ts +2 -1
- package/dist/utility/lmdb/writeUtility.d.ts +1 -0
- package/dist/utility/logging/harper_logger.d.ts +6 -6
- package/dist/utility/processManagement/processManagement.d.ts +1 -1
- package/dist/utility/processManagement/servicesConfig.d.ts +12 -6
- package/dist/validation/common_validators.d.ts +4 -3
- package/dist/validation/configValidator.d.ts +3 -2
- package/index.d.ts +56 -0
- package/index.js +41 -0
- package/json/systemSchema.json +373 -0
- package/launchServiceScripts/launchHarperDB.js +3 -0
- package/launchServiceScripts/utility/checkNodeVersion.js +15 -0
- package/package.json +21 -3
- package/resources/DatabaseTransaction.ts +378 -0
- package/resources/ErrorResource.ts +57 -0
- package/resources/IterableEventQueue.ts +94 -0
- package/resources/LMDBTransaction.ts +349 -0
- package/resources/RecordEncoder.ts +702 -0
- package/resources/RequestTarget.ts +134 -0
- package/resources/Resource.ts +789 -0
- package/resources/ResourceInterface.ts +221 -0
- package/resources/ResourceInterfaceV2.ts +53 -0
- package/resources/ResourceV2.ts +67 -0
- package/resources/Resources.ts +162 -0
- package/resources/RocksIndexStore.ts +70 -0
- package/resources/RocksTransactionLogStore.ts +352 -0
- package/resources/Table.ts +4527 -0
- package/resources/analytics/hostnames.ts +72 -0
- package/resources/analytics/metadata.ts +10 -0
- package/resources/analytics/read.ts +252 -0
- package/resources/analytics/write.ts +803 -0
- package/resources/auditStore.ts +556 -0
- package/resources/blob.ts +1268 -0
- package/resources/crdt.ts +125 -0
- package/resources/dataLoader.ts +527 -0
- package/resources/databases.ts +1290 -0
- package/resources/graphql.ts +221 -0
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +638 -0
- package/resources/indexes/customIndexes.ts +7 -0
- package/resources/indexes/vector.ts +38 -0
- package/resources/jsResource.ts +86 -0
- package/resources/loadEnv.ts +22 -0
- package/resources/login.ts +18 -0
- package/resources/openApi.ts +409 -0
- package/resources/registrationDeprecated.ts +8 -0
- package/resources/replayLogs.ts +136 -0
- package/resources/roles.ts +98 -0
- package/resources/search.ts +1301 -0
- package/resources/tracked.ts +584 -0
- package/resources/transaction.ts +89 -0
- package/resources/transactionBroadcast.ts +258 -0
- package/security/auth.ts +376 -0
- package/security/certificateVerification/certificateVerificationSource.ts +84 -0
- package/security/certificateVerification/configValidation.ts +107 -0
- package/security/certificateVerification/crlVerification.ts +623 -0
- package/security/certificateVerification/index.ts +121 -0
- package/security/certificateVerification/ocspVerification.ts +148 -0
- package/security/certificateVerification/pkijs-ed25519-patch.ts +188 -0
- package/security/certificateVerification/types.ts +128 -0
- package/security/certificateVerification/verificationConfig.ts +138 -0
- package/security/certificateVerification/verificationUtils.ts +447 -0
- package/security/cryptoHash.js +42 -0
- package/security/data_objects/PermissionAttributeResponseObject.js +15 -0
- package/security/data_objects/PermissionResponseObject.js +115 -0
- package/security/data_objects/PermissionTableResponseObject.js +20 -0
- package/security/fastifyAuth.js +169 -0
- package/security/impersonation.ts +160 -0
- package/security/jsLoader.ts +716 -0
- package/security/keys.js +948 -0
- package/security/permissionsTranslator.js +300 -0
- package/security/role.js +218 -0
- package/security/tokenAuthentication.ts +228 -0
- package/security/user.ts +449 -0
- package/server/DurableSubscriptionsSession.ts +503 -0
- package/server/REST.ts +407 -0
- package/server/Server.ts +89 -0
- package/server/fastifyRoutes/helpers/getCORSOptions.js +36 -0
- package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +15 -0
- package/server/fastifyRoutes/helpers/getServerOptions.js +33 -0
- package/server/fastifyRoutes/plugins/hdbCore.js +39 -0
- package/server/fastifyRoutes.ts +205 -0
- package/server/graphqlQuerying.ts +700 -0
- package/server/http.ts +640 -0
- package/server/itc/serverHandlers.js +161 -0
- package/server/itc/utility/ITCEventObject.js +10 -0
- package/server/jobs/JobObject.js +24 -0
- package/server/jobs/jobProcess.js +69 -0
- package/server/jobs/jobRunner.js +162 -0
- package/server/jobs/jobs.js +304 -0
- package/server/loadRootComponents.js +44 -0
- package/server/mqtt.ts +485 -0
- package/server/nodeName.ts +75 -0
- package/server/operationsServer.ts +313 -0
- package/server/serverHelpers/Headers.ts +108 -0
- package/server/serverHelpers/JSONStream.ts +269 -0
- package/server/serverHelpers/OperationFunctionObject.ts +13 -0
- package/server/serverHelpers/Request.ts +158 -0
- package/server/serverHelpers/contentTypes.ts +637 -0
- package/server/serverHelpers/requestTimePlugin.js +57 -0
- package/server/serverHelpers/serverHandlers.js +148 -0
- package/server/serverHelpers/serverUtilities.ts +473 -0
- package/server/serverRegistry.ts +8 -0
- package/server/static.ts +187 -0
- package/server/status/definitions.ts +37 -0
- package/server/status/index.ts +125 -0
- package/server/storageReclamation.ts +93 -0
- package/server/threads/itc.js +89 -0
- package/server/threads/manageThreads.js +594 -0
- package/server/threads/socketRouter.ts +360 -0
- package/server/threads/threadServer.js +279 -0
- package/server/throttle.ts +73 -0
- package/sqlTranslator/SelectValidator.js +330 -0
- package/sqlTranslator/alasqlFunctionImporter.js +62 -0
- package/sqlTranslator/deleteTranslator.js +67 -0
- package/sqlTranslator/index.js +242 -0
- package/sqlTranslator/sql_statement_bucket.js +472 -0
- package/static/defaultConfig.yaml +3 -0
- package/studio/web/HDBDogOnly.svg +78 -0
- package/studio/web/assets/PPRadioGrotesk-Bold-DDaUYG8E.woff +0 -0
- package/studio/web/assets/fa-brands-400-CEJbCg16.woff +0 -0
- package/studio/web/assets/fa-brands-400-CSYNqBb_.ttf +0 -0
- package/studio/web/assets/fa-brands-400-DnkPfk3o.eot +0 -0
- package/studio/web/assets/fa-brands-400-UxlILjvJ.woff2 +0 -0
- package/studio/web/assets/fa-brands-400-cH1MgKbP.svg +3717 -0
- package/studio/web/assets/fa-regular-400-BhTwtT8w.eot +0 -0
- package/studio/web/assets/fa-regular-400-D1vz6WBx.ttf +0 -0
- package/studio/web/assets/fa-regular-400-DFnMcJPd.woff +0 -0
- package/studio/web/assets/fa-regular-400-DGzu1beS.woff2 +0 -0
- package/studio/web/assets/fa-regular-400-gwj8Pxq-.svg +801 -0
- package/studio/web/assets/fa-solid-900-B4ZZ7kfP.svg +5034 -0
- package/studio/web/assets/fa-solid-900-B6Axprfb.eot +0 -0
- package/studio/web/assets/fa-solid-900-BUswJgRo.woff2 +0 -0
- package/studio/web/assets/fa-solid-900-DOXgCApm.woff +0 -0
- package/studio/web/assets/fa-solid-900-mxuxnBEa.ttf +0 -0
- package/studio/web/assets/index-BTgXJX9d.js +235 -0
- package/studio/web/assets/index-BTgXJX9d.js.map +1 -0
- package/studio/web/assets/index-C-GXfcup.js +37 -0
- package/studio/web/assets/index-C-GXfcup.js.map +1 -0
- package/studio/web/assets/index-PFlNdimM.js +2 -0
- package/studio/web/assets/index-PFlNdimM.js.map +1 -0
- package/studio/web/assets/index-Y2g_iFpU.css +1 -0
- package/studio/web/assets/index-jiPwkrsB.css +1 -0
- package/studio/web/assets/index.lazy-C3TJZJ4o.js +266 -0
- package/studio/web/assets/index.lazy-C3TJZJ4o.js.map +1 -0
- package/studio/web/assets/profiler-DotzgiCJ.js +2 -0
- package/studio/web/assets/profiler-DotzgiCJ.js.map +1 -0
- package/studio/web/assets/react-redux-VxUEx_mU.js +6 -0
- package/studio/web/assets/react-redux-VxUEx_mU.js.map +1 -0
- package/studio/web/assets/startRecording-B_9J9Csd.js +3 -0
- package/studio/web/assets/startRecording-B_9J9Csd.js.map +1 -0
- package/studio/web/fabric-signup-background.webp +0 -0
- package/studio/web/fabric-signup-text.png +0 -0
- package/studio/web/favicon_purple.png +0 -0
- package/studio/web/github-icon.svg +15 -0
- package/studio/web/harper-fabric_black.png +0 -0
- package/studio/web/harper-fabric_white.png +0 -0
- package/studio/web/harper-studio_white.png +0 -0
- package/studio/web/index.html +16 -0
- package/studio/web/running.css +148 -0
- package/studio/web/running.html +147 -0
- package/studio/web/running.js +111 -0
- package/upgrade/UpgradeObjects.js +13 -0
- package/upgrade/directives/directivesController.js +90 -0
- package/upgrade/directivesManager.js +139 -0
- package/upgrade/upgradePrompt.js +124 -0
- package/upgrade/upgradeUtilities.js +28 -0
- package/utility/AWS/AWSConnector.js +29 -0
- package/utility/OperationFunctionCaller.js +63 -0
- package/utility/assignCmdEnvVariables.js +62 -0
- package/utility/common_utils.js +867 -0
- package/utility/environment/environmentManager.js +208 -0
- package/utility/environment/systemInformation.js +355 -0
- package/utility/errors/commonErrors.js +267 -0
- package/utility/errors/hdbError.js +146 -0
- package/utility/functions/date/dateFunctions.js +65 -0
- package/utility/functions/geo.js +355 -0
- package/utility/functions/sql/alaSQLExtension.js +104 -0
- package/utility/globalSchema.js +35 -0
- package/utility/hdbTerms.ts +819 -0
- package/utility/install/checkJWTTokensExist.js +62 -0
- package/utility/install/harperdb.conf +15 -0
- package/utility/install/harperdb.service +14 -0
- package/utility/install/installer.js +635 -0
- package/utility/installation.ts +30 -0
- package/utility/lmdb/DBIDefinition.js +20 -0
- package/utility/lmdb/DeleteRecordsResponseObject.js +25 -0
- package/utility/lmdb/InsertRecordsResponseObject.js +22 -0
- package/utility/lmdb/OpenDBIObject.js +31 -0
- package/utility/lmdb/OpenEnvironmentObject.js +41 -0
- package/utility/lmdb/UpdateRecordsResponseObject.js +25 -0
- package/utility/lmdb/UpsertRecordsResponseObject.js +22 -0
- package/utility/lmdb/cleanLMDBMap.js +65 -0
- package/utility/lmdb/commonUtility.js +119 -0
- package/utility/lmdb/deleteUtility.js +128 -0
- package/utility/lmdb/environmentUtility.js +477 -0
- package/utility/lmdb/searchCursorFunctions.js +187 -0
- package/utility/lmdb/searchUtility.js +918 -0
- package/utility/lmdb/terms.js +57 -0
- package/utility/lmdb/writeUtility.js +407 -0
- package/utility/logging/harper_logger.js +876 -0
- package/utility/logging/logRotator.js +157 -0
- package/utility/logging/logger.ts +24 -0
- package/utility/logging/readLog.js +355 -0
- package/utility/logging/transactionLog.js +57 -0
- package/utility/mount_hdb.js +59 -0
- package/utility/npmUtilities.js +102 -0
- package/utility/operationPermissions.ts +112 -0
- package/utility/operation_authorization.js +836 -0
- package/utility/packageUtils.js +55 -0
- package/utility/password.ts +99 -0
- package/utility/processManagement/processManagement.js +187 -0
- package/utility/processManagement/servicesConfig.js +56 -0
- package/utility/scripts/restartHdb.js +24 -0
- package/utility/scripts/user_data.sh +13 -0
- package/utility/signalling.js +36 -0
- package/utility/terms/certificates.js +81 -0
- package/utility/when.ts +20 -0
- package/v1.d.ts +39 -0
- package/v1.js +41 -0
- package/v2.d.ts +39 -0
- package/v2.js +41 -0
- package/validation/bulkDeleteValidator.js +24 -0
- package/validation/check_permissions.js +19 -0
- package/validation/common_validators.js +95 -0
- package/validation/configValidator.js +331 -0
- package/validation/deleteValidator.js +15 -0
- package/validation/fileLoadValidator.js +153 -0
- package/validation/insertValidator.js +40 -0
- package/validation/installValidator.js +37 -0
- package/validation/readLogValidator.js +64 -0
- package/validation/role_validation.js +320 -0
- package/validation/schemaMetadataValidator.js +42 -0
- package/validation/searchValidator.js +166 -0
- package/validation/statusValidator.ts +66 -0
- package/validation/transactionLogValidator.js +33 -0
- package/validation/user_validation.js +55 -0
- package/validation/validationWrapper.js +105 -0
- package/dist/resources/analytics/profile.d.ts +0 -2
- package/dist/resources/analytics/profile.js +0 -144
- package/dist/resources/analytics/profile.js.map +0 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const prompt = require('prompt');
|
|
4
|
+
const chalk = require('chalk');
|
|
5
|
+
const log = require('../utility/logging/harper_logger.js');
|
|
6
|
+
const os = require('os');
|
|
7
|
+
const assignCMDENVVariables = require('../utility/assignCmdEnvVariables.js');
|
|
8
|
+
|
|
9
|
+
const UPGRADE_PROCEED = ['yes', 'y'];
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Prompt the user that they need to run the upgrade scripts, typically after upgrading via a package manager.
|
|
13
|
+
* @param _upgradeObj - {UpgradeObject} Object includes the versions the data and current install are on
|
|
14
|
+
* @returns {Promise<boolean>}
|
|
15
|
+
*/
|
|
16
|
+
async function forceUpdatePrompt(_upgradeObj) {
|
|
17
|
+
let upgradeMessage =
|
|
18
|
+
`${os.EOL}` +
|
|
19
|
+
chalk.bold.green('Your current Harper version requires that we complete an update process.') +
|
|
20
|
+
`${os.EOL}` +
|
|
21
|
+
'If a backup of your data has not been created, we recommend you cancel this process and backup before proceeding.' +
|
|
22
|
+
`${os.EOL}${os.EOL}` +
|
|
23
|
+
'You can read more about the changes in this upgrade at https://harperdb.io/developers/release-notes/' +
|
|
24
|
+
`${os.EOL}`;
|
|
25
|
+
prompt.override = assignCMDENVVariables(['CONFIRM_UPGRADE']);
|
|
26
|
+
prompt.start();
|
|
27
|
+
prompt.message = upgradeMessage;
|
|
28
|
+
let upgradeConfirmation = {
|
|
29
|
+
properties: {
|
|
30
|
+
CONFIRM_UPGRADE: {
|
|
31
|
+
description: chalk.magenta(`${os.EOL}[CONFIRM_UPGRADE] Do you want to upgrade your HDB instance now? (yes/no)`),
|
|
32
|
+
pattern: /y(es)?$|n(o)?$/,
|
|
33
|
+
message: "Must respond 'yes' or 'no'",
|
|
34
|
+
default: 'no',
|
|
35
|
+
required: true,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
let response;
|
|
41
|
+
try {
|
|
42
|
+
response = await prompt.get([upgradeConfirmation]);
|
|
43
|
+
} catch (err) {
|
|
44
|
+
log.error('There was an error when prompting user about an upgrade.');
|
|
45
|
+
log.error(err);
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return UPGRADE_PROCEED.includes(response.CONFIRM_UPGRADE);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Prompt the user before proceeding with a minor version downgrade
|
|
54
|
+
* @param _upgradeObj - {UpgradeObject} Object includes the versions the data and current install are on
|
|
55
|
+
* @returns {Promise<boolean>}
|
|
56
|
+
*/
|
|
57
|
+
async function forceDowngradePrompt(_upgradeObj) {
|
|
58
|
+
let downgradeMessage =
|
|
59
|
+
`${os.EOL}` +
|
|
60
|
+
chalk.bold.green(
|
|
61
|
+
'Your installed Harper version is older than the version used to create your data.' +
|
|
62
|
+
' Downgrading is not recommended as it is not tested and guaranteed to work. However, if you need to' +
|
|
63
|
+
' downgrade, and a backup of your data has not been created, we recommend you cancel this process and' +
|
|
64
|
+
' backup before proceeding.' +
|
|
65
|
+
`${os.EOL}`
|
|
66
|
+
);
|
|
67
|
+
prompt.override = assignCMDENVVariables(['CONFIRM_DOWNGRADE']);
|
|
68
|
+
prompt.start();
|
|
69
|
+
prompt.message = downgradeMessage;
|
|
70
|
+
let downgradeConfirmation = {
|
|
71
|
+
properties: {
|
|
72
|
+
CONFIRM_DOWNGRADE: {
|
|
73
|
+
description: chalk.magenta(
|
|
74
|
+
`${os.EOL}[CONFIRM_DOWNGRADE] Do you want to proceed with using your downgraded HDB instance now? (yes/no)`
|
|
75
|
+
),
|
|
76
|
+
pattern: /y(es)?$|n(o)?$/,
|
|
77
|
+
message: "Must respond 'yes' or 'no'",
|
|
78
|
+
default: 'no',
|
|
79
|
+
required: true,
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
let response = await prompt.get([downgradeConfirmation]);
|
|
85
|
+
|
|
86
|
+
return UPGRADE_PROCEED.includes(response.CONFIRM_DOWNGRADE);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
async function upgradeCertsPrompt() {
|
|
90
|
+
const upgradeCertMessage =
|
|
91
|
+
`${os.EOL}` +
|
|
92
|
+
chalk.bold.green(
|
|
93
|
+
'We now require a Certifacte Authority certificate. Harper can generate all new certificates for you (your existing certificates will be backed up) ' +
|
|
94
|
+
'or you can keep any existing certificates and add your own CA certificate. To add your own CA certificate set the <certificateAuthority> ' +
|
|
95
|
+
'parameter in harperdb-config.yaml'
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
prompt.override = assignCMDENVVariables(['GENERATE_CERTS']);
|
|
99
|
+
prompt.start();
|
|
100
|
+
prompt.message = upgradeCertMessage;
|
|
101
|
+
let upgradeConfirmation = {
|
|
102
|
+
properties: {
|
|
103
|
+
GENERATE_CERTS: {
|
|
104
|
+
description: chalk.magenta(
|
|
105
|
+
`${os.EOL}[GENERATE_CERTS] Do you want Harper to generate all new certificates? (yes/no)`
|
|
106
|
+
),
|
|
107
|
+
pattern: /y(es)?$|n(o)?$/,
|
|
108
|
+
message: "Must respond 'yes' or 'no'",
|
|
109
|
+
default: 'yes',
|
|
110
|
+
required: true,
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
const response = await prompt.get([upgradeConfirmation]);
|
|
116
|
+
|
|
117
|
+
return UPGRADE_PROCEED.includes(response.GENERATE_CERTS);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
module.exports = {
|
|
121
|
+
forceUpdatePrompt,
|
|
122
|
+
forceDowngradePrompt,
|
|
123
|
+
upgradeCertsPrompt,
|
|
124
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const hdbUtil = require('../utility/common_utils.js');
|
|
4
|
+
const configUtils = require('../config/configUtils.js');
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
getOldPropsValue,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* We need to make sure we are setting empty string for values that are null/undefined/empty string - PropertiesReader
|
|
12
|
+
* castes values in some awkward ways and this covers those scenarios AND ensures we have default values set for new
|
|
13
|
+
* config values that may have been added in a previous version (between when user installed HDB and is now upgrading)
|
|
14
|
+
* @param propName
|
|
15
|
+
* @param oldHdbProps
|
|
16
|
+
* @param valueRequired
|
|
17
|
+
* @returns {string|*}
|
|
18
|
+
*/
|
|
19
|
+
function getOldPropsValue(propName, oldHdbProps, valueRequired = false) {
|
|
20
|
+
const oldVal = oldHdbProps.getRaw(propName);
|
|
21
|
+
if (hdbUtil.isNotEmptyAndHasValue(oldVal)) {
|
|
22
|
+
return oldVal;
|
|
23
|
+
}
|
|
24
|
+
if (valueRequired) {
|
|
25
|
+
return configUtils.getDefaultConfig(propName);
|
|
26
|
+
}
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { S3, GetObjectCommand } = require('@aws-sdk/client-s3');
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
getFileStreamFromS3,
|
|
7
|
+
getS3AuthObj,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
async function getFileStreamFromS3(jsonMessage) {
|
|
11
|
+
const { s3 } = jsonMessage;
|
|
12
|
+
const params = {
|
|
13
|
+
Bucket: s3.bucket,
|
|
14
|
+
Key: s3.key,
|
|
15
|
+
};
|
|
16
|
+
const authenticatedS3 = getS3AuthObj(s3.aws_access_key_id, s3.aws_secret_access_key, s3.region);
|
|
17
|
+
const item = await authenticatedS3.send(new GetObjectCommand(params));
|
|
18
|
+
return item.Body;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function getS3AuthObj(accessKeyId, secretKey, region) {
|
|
22
|
+
return new S3({
|
|
23
|
+
credentials: {
|
|
24
|
+
accessKeyId,
|
|
25
|
+
secretAccessKey: secretKey,
|
|
26
|
+
},
|
|
27
|
+
region,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const log = require('./logging/harper_logger.js');
|
|
4
|
+
const terms = require('./hdbTerms.ts');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Calls the operation function specified in the parameter with the input specified in the parameter. Once complete,
|
|
8
|
+
* calls the response function in the parameter with the operation result as the first parameter.
|
|
9
|
+
* @param promisifiedFunction - The operation which is in async/await format
|
|
10
|
+
* @param functionInput - The input needed for the operationFunctionAsCallback function.
|
|
11
|
+
* @param followupAsyncFunc - The response function that will be called with the operation function response as an input. The function is expected to be promisifed, callbacks not supported.
|
|
12
|
+
* @returns {Promise<{}>}
|
|
13
|
+
*/
|
|
14
|
+
async function callOperationFunctionAsAwait(promisifiedFunction, functionInput, followupAsyncFunc) {
|
|
15
|
+
if (!promisifiedFunction || typeof promisifiedFunction !== 'function') {
|
|
16
|
+
throw new Error('Invalid function parameter');
|
|
17
|
+
}
|
|
18
|
+
let result = undefined;
|
|
19
|
+
try {
|
|
20
|
+
result = await promisifiedFunction(functionInput);
|
|
21
|
+
|
|
22
|
+
if (followupAsyncFunc) {
|
|
23
|
+
//TODO: Passing result twice seems silly, why is this a thing?
|
|
24
|
+
await followupAsyncFunc(functionInput, result);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// The result from insert, update, or upsert contains a properties new_attributes/txnTime. It is used by postOperationHandler to propagate
|
|
28
|
+
// attribute metadata. After the property has been used we no longer need it and do not want the API returning it,
|
|
29
|
+
// therefore we delete it from the result.
|
|
30
|
+
if (
|
|
31
|
+
functionInput.operation === terms.OPERATIONS_ENUM.INSERT ||
|
|
32
|
+
functionInput.operation === terms.OPERATIONS_ENUM.UPDATE ||
|
|
33
|
+
functionInput.operation === terms.OPERATIONS_ENUM.UPSERT
|
|
34
|
+
) {
|
|
35
|
+
delete result.new_attributes;
|
|
36
|
+
delete result.txn_time;
|
|
37
|
+
} else if (functionInput.operation === terms.OPERATIONS_ENUM.DELETE) {
|
|
38
|
+
delete result.txn_time;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return result;
|
|
42
|
+
} catch (err) {
|
|
43
|
+
// This specific check was added to avoid an error message in the log which could make the error look worse than it
|
|
44
|
+
// seems when scanning a log. In reality a schema already existing isn't really an error, just a failure.
|
|
45
|
+
if (err.message && typeof err.message === 'string' && err.message.includes('already exists')) {
|
|
46
|
+
log.info(err.message);
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
// This check is here to make sure a new HdbError is logged correctly
|
|
50
|
+
if (err.http_resp_msg) {
|
|
51
|
+
log.error(`Error calling operation: ${promisifiedFunction.name}`);
|
|
52
|
+
log.error(err.http_resp_msg);
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
log.error(`Error calling operation: ${promisifiedFunction.name}`);
|
|
56
|
+
log.error(err);
|
|
57
|
+
throw err;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
module.exports = {
|
|
62
|
+
callOperationFunctionAsAwait,
|
|
63
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const minimist = require('minimist');
|
|
4
|
+
|
|
5
|
+
module.exports = assignCMDENVVariables;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This function receives a list of keys used to find if they exist in command line args &/or environment variables (command line always supercedes env vars).
|
|
9
|
+
* if found they key/value is assigned to the return object
|
|
10
|
+
* This is here and not common utils to avoid circular dependencies.
|
|
11
|
+
* @param keys - arrays of keys to search for and assign to the return object
|
|
12
|
+
* @param isConfigParam
|
|
13
|
+
* @returns {{}}
|
|
14
|
+
*/
|
|
15
|
+
function assignCMDENVVariables(keys = [], isConfigParam = false) {
|
|
16
|
+
if (!Array.isArray(keys)) {
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let envArgs;
|
|
21
|
+
let cmdArgs;
|
|
22
|
+
if (isConfigParam) {
|
|
23
|
+
// Lowercase keys to make mapping to config params work
|
|
24
|
+
envArgs = objKeysToLowerCase(process.env);
|
|
25
|
+
cmdArgs = objKeysToLowerCase(minimist(process.argv));
|
|
26
|
+
} else {
|
|
27
|
+
envArgs = process.env;
|
|
28
|
+
cmdArgs = minimist(process.argv);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
let hdbSettings = {};
|
|
32
|
+
for (let x = 0, length = keys.length; x < length; x++) {
|
|
33
|
+
let setting = keys[x];
|
|
34
|
+
|
|
35
|
+
//we set the env variable first which gets overridden by a command line arg (if present)
|
|
36
|
+
if (cmdArgs[setting] !== undefined) {
|
|
37
|
+
hdbSettings[setting] = cmdArgs[setting].toString().trim();
|
|
38
|
+
} else if (envArgs[setting] !== undefined) {
|
|
39
|
+
hdbSettings[setting] = envArgs[setting].toString().trim();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return hdbSettings;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Creates a new object where all its keys are lowercase
|
|
47
|
+
* @param obj
|
|
48
|
+
* @returns {{}}
|
|
49
|
+
*/
|
|
50
|
+
function objKeysToLowerCase(obj) {
|
|
51
|
+
let key,
|
|
52
|
+
keys = Object.keys(obj);
|
|
53
|
+
let i = keys.length;
|
|
54
|
+
const result = {};
|
|
55
|
+
|
|
56
|
+
while (i--) {
|
|
57
|
+
key = keys[i];
|
|
58
|
+
result[key.toLowerCase()] = obj[key];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return result;
|
|
62
|
+
}
|