@harperfast/harper 5.0.30 → 5.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -10
- package/agent/agent.ts +203 -0
- package/agent/loop.ts +205 -0
- package/agent/operations.ts +148 -0
- package/agent/session.ts +187 -0
- package/agent/tools/fsTools.ts +276 -0
- package/agent/tools/httpFetchTool.ts +112 -0
- package/agent/tools/scheduleTool.ts +68 -0
- package/agent/toolset.ts +43 -0
- package/agent/types.ts +85 -0
- package/bin/{BinObjects.js → BinObjects.ts} +4 -5
- package/bin/cliCredentials.ts +133 -0
- package/bin/cliOperations.ts +339 -0
- package/bin/copyDb.ts +10 -10
- package/bin/deployRenderer.ts +196 -0
- package/bin/{harper.js → harper.ts} +43 -19
- package/bin/{install.js → install.ts} +3 -3
- package/bin/lite.ts +2 -0
- package/bin/login.ts +134 -0
- package/bin/logout.ts +11 -0
- package/bin/mcp/client.ts +407 -0
- package/bin/mcp/doctor.ts +189 -0
- package/bin/mcp/index.ts +80 -0
- package/bin/mcp/options.ts +122 -0
- package/bin/mcp/printConfig.ts +89 -0
- package/bin/multipartBuilder.ts +74 -0
- package/bin/{restart.js → restart.ts} +27 -28
- package/bin/{run.js → run.ts} +41 -30
- package/bin/sseConsumer.ts +126 -0
- package/bin/{status.js → status.ts} +10 -10
- package/bin/{stop.js → stop.ts} +5 -5
- package/bin/upgrade.js +17 -24
- package/components/Application.ts +144 -18
- package/components/ApplicationScope.ts +2 -2
- package/components/ComponentV1.ts +2 -2
- package/components/EntryHandler.ts +159 -9
- package/components/OptionsWatcher.ts +75 -11
- package/components/Scope.ts +132 -18
- package/components/anthropic/index.ts +547 -0
- package/components/bedrock/index.ts +823 -0
- package/components/componentLoader.ts +64 -32
- package/components/deployLifecycle.ts +161 -0
- package/components/deploymentOperations.ts +173 -0
- package/components/deploymentRecorder.ts +427 -0
- package/components/deriveURLPath.ts +4 -4
- package/components/mcp/adapters/fastify.ts +87 -0
- package/components/mcp/adapters/harperHttp.ts +103 -0
- package/components/mcp/audit.ts +75 -0
- package/components/mcp/index.ts +134 -0
- package/components/mcp/jsonrpc.ts +134 -0
- package/components/mcp/lifecycle.ts +105 -0
- package/components/mcp/listChanged.ts +270 -0
- package/components/mcp/rateLimit.ts +217 -0
- package/components/mcp/resources.ts +607 -0
- package/components/mcp/session.ts +151 -0
- package/components/mcp/sessionRegistry.ts +140 -0
- package/components/mcp/toolRegistry.ts +294 -0
- package/components/mcp/tools/application.ts +761 -0
- package/components/mcp/tools/operations.ts +311 -0
- package/components/mcp/tools/schemas/derive.ts +356 -0
- package/components/mcp/tools/schemas/operationDescriptions.ts +241 -0
- package/components/mcp/tools/schemas/operations.ts +301 -0
- package/components/mcp/transport.ts +517 -0
- package/components/ollama/index.ts +316 -0
- package/components/openai/index.ts +563 -0
- package/components/operations.js +217 -60
- package/components/operationsValidation.js +12 -4
- package/components/packageComponent.ts +97 -29
- package/components/requestRestart.ts +17 -2
- package/components/status/crossThread.ts +14 -5
- package/components/status/errors.ts +1 -1
- package/config/RootConfigWatcher.ts +56 -2
- package/config/configUtils.js +29 -8
- package/config/harperConfigEnvVars.ts +1 -1
- package/config-root.schema.json +78 -4
- package/dataLayer/{CreateAttributeObject.js → CreateAttributeObject.ts} +4 -3
- package/dataLayer/{CreateTableObject.js → CreateTableObject.ts} +2 -1
- package/dataLayer/{DataLayerObjects.js → DataLayerObjects.ts} +17 -9
- package/dataLayer/{DeleteBeforeObject.js → DeleteBeforeObject.ts} +2 -1
- package/dataLayer/{DeleteObject.js → DeleteObject.ts} +3 -2
- package/dataLayer/{DropAttributeObject.js → DropAttributeObject.ts} +2 -1
- package/dataLayer/{GetBackupObject.js → GetBackupObject.ts} +3 -2
- package/dataLayer/{InsertObject.js → InsertObject.ts} +3 -2
- package/dataLayer/{ReadAuditLogObject.js → ReadAuditLogObject.ts} +3 -2
- package/dataLayer/{SQLSearch.js → SQLSearch.ts} +97 -43
- package/dataLayer/{SearchByConditionsObject.js → SearchByConditionsObject.ts} +5 -6
- package/dataLayer/{SearchByHashObject.js → SearchByHashObject.ts} +2 -1
- package/dataLayer/{SearchObject.js → SearchObject.ts} +2 -1
- package/dataLayer/{SqlSearchObject.js → SqlSearchObject.ts} +2 -1
- package/dataLayer/{UpdateObject.js → UpdateObject.ts} +3 -2
- package/dataLayer/{UpsertObject.js → UpsertObject.ts} +3 -2
- package/dataLayer/{bulkLoad.js → bulkLoad.ts} +40 -49
- package/dataLayer/{delete.js → delete.ts} +21 -26
- package/dataLayer/{export.js → export.ts} +22 -26
- package/dataLayer/{getBackup.js → getBackup.ts} +7 -9
- package/dataLayer/harperBridge/BridgeMethods.ts +102 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +27 -26
- package/dataLayer/harperBridge/TableSizeObject.ts +1 -0
- package/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dataLayer/harperBridge/{harperBridge.js → harperBridge.ts} +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +8 -6
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +6 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +10 -8
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +4 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +6 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +2 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +3 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +5 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +6 -3
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.ts +1 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dataLayer/{hdbInfoController.js → hdbInfoController.ts} +20 -26
- package/dataLayer/{insert.js → insert.ts} +24 -24
- package/dataLayer/{readAuditLog.js → readAuditLog.ts} +8 -10
- package/dataLayer/{schema.js → schema.ts} +32 -44
- package/dataLayer/{schemaDescribe.js → schemaDescribe.ts} +23 -26
- package/dataLayer/{search.js → search.ts} +9 -15
- package/dataLayer/{transaction.js → transaction.ts} +2 -5
- package/dataLayer/{update.js → update.ts} +19 -22
- package/dist/agent/agent.d.ts +35 -0
- package/dist/agent/agent.js +175 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/loop.d.ts +34 -0
- package/dist/agent/loop.js +176 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/operations.d.ts +17 -0
- package/dist/agent/operations.js +137 -0
- package/dist/agent/operations.js.map +1 -0
- package/dist/agent/session.d.ts +36 -0
- package/dist/agent/session.js +182 -0
- package/dist/agent/session.js.map +1 -0
- package/dist/agent/tools/fsTools.d.ts +19 -0
- package/dist/agent/tools/fsTools.js +286 -0
- package/dist/agent/tools/fsTools.js.map +1 -0
- package/dist/agent/tools/httpFetchTool.d.ts +9 -0
- package/dist/agent/tools/httpFetchTool.js +116 -0
- package/dist/agent/tools/httpFetchTool.js.map +1 -0
- package/dist/agent/tools/scheduleTool.d.ts +22 -0
- package/dist/agent/tools/scheduleTool.js +54 -0
- package/dist/agent/tools/scheduleTool.js.map +1 -0
- package/dist/agent/toolset.d.ts +24 -0
- package/dist/agent/toolset.js +33 -0
- package/dist/agent/toolset.js.map +1 -0
- package/dist/agent/types.d.ts +75 -0
- package/dist/agent/types.js +10 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/bin/BinObjects.d.ts +2 -2
- package/dist/bin/BinObjects.js +6 -3
- package/dist/bin/BinObjects.js.map +1 -1
- package/dist/bin/cliCredentials.d.ts +27 -0
- package/dist/bin/cliCredentials.js +130 -0
- package/dist/bin/cliCredentials.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +7 -7
- package/dist/bin/cliOperations.js +251 -37
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.js +16 -16
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/deployRenderer.d.ts +47 -0
- package/dist/bin/deployRenderer.js +185 -0
- package/dist/bin/deployRenderer.js.map +1 -0
- package/dist/bin/harper.d.ts +2 -1
- package/dist/bin/harper.js +87 -26
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/install.d.ts +1 -1
- package/dist/bin/install.js +41 -4
- package/dist/bin/install.js.map +1 -1
- package/dist/bin/lite.js +3 -4
- package/dist/bin/lite.js.map +1 -1
- package/dist/bin/login.d.ts +4 -0
- package/dist/bin/login.js +123 -0
- package/dist/bin/login.js.map +1 -0
- package/dist/bin/logout.d.ts +4 -0
- package/dist/bin/logout.js +16 -0
- package/dist/bin/logout.js.map +1 -0
- package/dist/bin/mcp/client.d.ts +34 -0
- package/dist/bin/mcp/client.js +395 -0
- package/dist/bin/mcp/client.js.map +1 -0
- package/dist/bin/mcp/doctor.d.ts +11 -0
- package/dist/bin/mcp/doctor.js +193 -0
- package/dist/bin/mcp/doctor.js.map +1 -0
- package/dist/bin/mcp/index.d.ts +10 -0
- package/dist/bin/mcp/index.js +81 -0
- package/dist/bin/mcp/index.js.map +1 -0
- package/dist/bin/mcp/options.d.ts +33 -0
- package/dist/bin/mcp/options.js +113 -0
- package/dist/bin/mcp/options.js.map +1 -0
- package/dist/bin/mcp/printConfig.d.ts +14 -0
- package/dist/bin/mcp/printConfig.js +85 -0
- package/dist/bin/mcp/printConfig.js.map +1 -0
- package/dist/bin/multipartBuilder.d.ts +26 -0
- package/dist/bin/multipartBuilder.js +55 -0
- package/dist/bin/multipartBuilder.js.map +1 -0
- package/dist/bin/restart.d.ts +3 -2
- package/dist/bin/restart.js +82 -45
- package/dist/bin/restart.js.map +1 -1
- package/dist/bin/run.d.ts +13 -9
- package/dist/bin/run.js +111 -65
- package/dist/bin/run.js.map +1 -1
- package/dist/bin/sseConsumer.d.ts +24 -0
- package/dist/bin/sseConsumer.js +127 -0
- package/dist/bin/sseConsumer.js.map +1 -0
- package/dist/bin/status.d.ts +1 -1
- package/dist/bin/status.js +48 -11
- package/dist/bin/status.js.map +1 -1
- package/dist/bin/stop.d.ts +1 -1
- package/dist/bin/stop.js +43 -6
- package/dist/bin/stop.js.map +1 -1
- package/dist/bin/upgrade.js +14 -22
- package/dist/bin/upgrade.js.map +1 -1
- package/dist/components/Application.d.ts +29 -17
- package/dist/components/Application.js +134 -28
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.js +2 -2
- package/dist/components/ComponentV1.d.ts +1 -1
- package/dist/components/ComponentV1.js +5 -5
- package/dist/components/ComponentV1.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +26 -3
- package/dist/components/EntryHandler.js +153 -13
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/OptionsWatcher.d.ts +7 -2
- package/dist/components/OptionsWatcher.js +72 -10
- package/dist/components/OptionsWatcher.js.map +1 -1
- package/dist/components/Scope.d.ts +11 -6
- package/dist/components/Scope.js +112 -12
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +40 -0
- package/dist/components/anthropic/index.js +428 -0
- package/dist/components/anthropic/index.js.map +1 -0
- package/dist/components/bedrock/index.d.ts +79 -0
- package/dist/components/bedrock/index.js +734 -0
- package/dist/components/bedrock/index.js.map +1 -0
- package/dist/components/componentLoader.d.ts +29 -0
- package/dist/components/componentLoader.js +65 -38
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +39 -0
- package/dist/components/deployLifecycle.js +156 -0
- package/dist/components/deployLifecycle.js.map +1 -0
- package/dist/components/deploymentOperations.d.ts +19 -0
- package/dist/components/deploymentOperations.js +185 -0
- package/dist/components/deploymentOperations.js.map +1 -0
- package/dist/components/deploymentRecorder.d.ts +97 -0
- package/dist/components/deploymentRecorder.js +425 -0
- package/dist/components/deploymentRecorder.js.map +1 -0
- package/dist/components/deriveURLPath.d.ts +2 -2
- package/dist/components/deriveURLPath.js +2 -2
- package/dist/components/deriveURLPath.js.map +1 -1
- package/dist/components/mcp/adapters/fastify.d.ts +35 -0
- package/dist/components/mcp/adapters/fastify.js +66 -0
- package/dist/components/mcp/adapters/fastify.js.map +1 -0
- package/dist/components/mcp/adapters/harperHttp.d.ts +38 -0
- package/dist/components/mcp/adapters/harperHttp.js +78 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -0
- package/dist/components/mcp/audit.d.ts +27 -0
- package/dist/components/mcp/audit.js +73 -0
- package/dist/components/mcp/audit.js.map +1 -0
- package/dist/components/mcp/index.d.ts +47 -0
- package/dist/components/mcp/index.js +109 -0
- package/dist/components/mcp/index.js.map +1 -0
- package/dist/components/mcp/jsonrpc.d.ts +71 -0
- package/dist/components/mcp/jsonrpc.js +93 -0
- package/dist/components/mcp/jsonrpc.js.map +1 -0
- package/dist/components/mcp/lifecycle.d.ts +69 -0
- package/dist/components/mcp/lifecycle.js +79 -0
- package/dist/components/mcp/lifecycle.js.map +1 -0
- package/dist/components/mcp/listChanged.d.ts +24 -0
- package/dist/components/mcp/listChanged.js +257 -0
- package/dist/components/mcp/listChanged.js.map +1 -0
- package/dist/components/mcp/rateLimit.d.ts +25 -0
- package/dist/components/mcp/rateLimit.js +226 -0
- package/dist/components/mcp/rateLimit.js.map +1 -0
- package/dist/components/mcp/resources.d.ts +90 -0
- package/dist/components/mcp/resources.js +526 -0
- package/dist/components/mcp/resources.js.map +1 -0
- package/dist/components/mcp/session.d.ts +36 -0
- package/dist/components/mcp/session.js +170 -0
- package/dist/components/mcp/session.js.map +1 -0
- package/dist/components/mcp/sessionRegistry.d.ts +63 -0
- package/dist/components/mcp/sessionRegistry.js +124 -0
- package/dist/components/mcp/sessionRegistry.js.map +1 -0
- package/dist/components/mcp/toolRegistry.d.ts +151 -0
- package/dist/components/mcp/toolRegistry.js +177 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -0
- package/dist/components/mcp/tools/application.d.ts +72 -0
- package/dist/components/mcp/tools/application.js +660 -0
- package/dist/components/mcp/tools/application.js.map +1 -0
- package/dist/components/mcp/tools/operations.d.ts +23 -0
- package/dist/components/mcp/tools/operations.js +331 -0
- package/dist/components/mcp/tools/operations.js.map +1 -0
- package/dist/components/mcp/tools/schemas/derive.d.ts +50 -0
- package/dist/components/mcp/tools/schemas/derive.js +291 -0
- package/dist/components/mcp/tools/schemas/derive.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.d.ts +32 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +179 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -0
- package/dist/components/mcp/tools/schemas/operations.d.ts +27 -0
- package/dist/components/mcp/tools/schemas/operations.js +299 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -0
- package/dist/components/mcp/transport.d.ts +38 -0
- package/dist/components/mcp/transport.js +467 -0
- package/dist/components/mcp/transport.js.map +1 -0
- package/dist/components/ollama/index.d.ts +46 -0
- package/dist/components/ollama/index.js +239 -0
- package/dist/components/ollama/index.js.map +1 -0
- package/dist/components/openai/index.d.ts +51 -0
- package/dist/components/openai/index.js +475 -0
- package/dist/components/openai/index.js.map +1 -0
- package/dist/components/operations.d.ts +6 -6
- package/dist/components/operations.js +205 -52
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +2 -2
- package/dist/components/operationsValidation.js +13 -4
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/packageComponent.d.ts +28 -6
- package/dist/components/packageComponent.js +87 -26
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/components/requestRestart.d.ts +1 -0
- package/dist/components/requestRestart.js +12 -1
- package/dist/components/requestRestart.js.map +1 -1
- package/dist/components/status/crossThread.d.ts +5 -1
- package/dist/components/status/crossThread.js +12 -5
- package/dist/components/status/crossThread.js.map +1 -1
- package/dist/components/status/errors.js +7 -7
- package/dist/config/RootConfigWatcher.d.ts +3 -0
- package/dist/config/RootConfigWatcher.js +52 -1
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configUtils.js +31 -8
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.js +1 -1
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/CreateAttributeObject.d.ts +3 -7
- package/dist/dataLayer/CreateAttributeObject.js +4 -3
- package/dist/dataLayer/CreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/CreateTableObject.d.ts +2 -4
- package/dist/dataLayer/CreateTableObject.js +2 -1
- package/dist/dataLayer/CreateTableObject.js.map +1 -1
- package/dist/dataLayer/DataLayerObjects.d.ts +17 -16
- package/dist/dataLayer/DataLayerObjects.js +19 -5
- package/dist/dataLayer/DataLayerObjects.js.map +1 -1
- package/dist/dataLayer/DeleteBeforeObject.d.ts +3 -5
- package/dist/dataLayer/DeleteBeforeObject.js +2 -1
- package/dist/dataLayer/DeleteBeforeObject.js.map +1 -1
- package/dist/dataLayer/DeleteObject.d.ts +3 -7
- package/dist/dataLayer/DeleteObject.js +4 -3
- package/dist/dataLayer/DeleteObject.js.map +1 -1
- package/dist/dataLayer/DropAttributeObject.d.ts +2 -4
- package/dist/dataLayer/DropAttributeObject.js +2 -1
- package/dist/dataLayer/DropAttributeObject.js.map +1 -1
- package/dist/dataLayer/GetBackupObject.d.ts +3 -5
- package/dist/dataLayer/GetBackupObject.js +4 -3
- package/dist/dataLayer/GetBackupObject.js.map +1 -1
- package/dist/dataLayer/InsertObject.d.ts +3 -8
- package/dist/dataLayer/InsertObject.js +4 -3
- package/dist/dataLayer/InsertObject.js.map +1 -1
- package/dist/dataLayer/ReadAuditLogObject.d.ts +3 -7
- package/dist/dataLayer/ReadAuditLogObject.js +4 -3
- package/dist/dataLayer/ReadAuditLogObject.js.map +1 -1
- package/dist/dataLayer/SQLSearch.d.ts +68 -38
- package/dist/dataLayer/SQLSearch.js +140 -78
- package/dist/dataLayer/SQLSearch.js.map +1 -1
- package/dist/dataLayer/SearchByConditionsObject.d.ts +10 -58
- package/dist/dataLayer/SearchByConditionsObject.js +5 -7
- package/dist/dataLayer/SearchByConditionsObject.js.map +1 -1
- package/dist/dataLayer/SearchByHashObject.d.ts +3 -6
- package/dist/dataLayer/SearchByHashObject.js +2 -1
- package/dist/dataLayer/SearchByHashObject.js.map +1 -1
- package/dist/dataLayer/SearchObject.d.ts +3 -12
- package/dist/dataLayer/SearchObject.js +2 -1
- package/dist/dataLayer/SearchObject.js.map +1 -1
- package/dist/dataLayer/SqlSearchObject.d.ts +2 -4
- package/dist/dataLayer/SqlSearchObject.js +2 -1
- package/dist/dataLayer/SqlSearchObject.js.map +1 -1
- package/dist/dataLayer/UpdateObject.d.ts +3 -7
- package/dist/dataLayer/UpdateObject.js +4 -3
- package/dist/dataLayer/UpdateObject.js.map +1 -1
- package/dist/dataLayer/UpsertObject.d.ts +3 -7
- package/dist/dataLayer/UpsertObject.js +4 -3
- package/dist/dataLayer/UpsertObject.js.map +1 -1
- package/dist/dataLayer/bulkLoad.d.ts +4 -4
- package/dist/dataLayer/bulkLoad.js +122 -88
- package/dist/dataLayer/bulkLoad.js.map +1 -1
- package/dist/dataLayer/delete.d.ts +10 -11
- package/dist/dataLayer/delete.js +74 -39
- package/dist/dataLayer/delete.js.map +1 -1
- package/dist/dataLayer/export.d.ts +8 -8
- package/dist/dataLayer/export.js +90 -55
- package/dist/dataLayer/export.js.map +1 -1
- package/dist/dataLayer/getBackup.d.ts +4 -3
- package/dist/dataLayer/getBackup.js +43 -11
- package/dist/dataLayer/getBackup.js.map +1 -1
- package/dist/dataLayer/harperBridge/BridgeMethods.d.ts +39 -21
- package/dist/dataLayer/harperBridge/BridgeMethods.js +41 -20
- package/dist/dataLayer/harperBridge/BridgeMethods.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +2 -2
- package/dist/dataLayer/harperBridge/ResourceBridge.js +26 -25
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/TableSizeObject.d.ts +1 -0
- package/dist/dataLayer/harperBridge/TableSizeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.d.ts +4 -4
- package/dist/dataLayer/harperBridge/bridgeUtility/insertUpdateValidate.js +4 -4
- package/dist/dataLayer/harperBridge/harperBridge.d.ts +2 -3
- package/dist/dataLayer/harperBridge/harperBridge.js +38 -4
- package/dist/dataLayer/harperBridge/harperBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js +7 -6
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js +5 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbCreateTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteAuditLogsBefore.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDeleteRecords.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropAttribute.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropSchema.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbDropTable.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbFlush.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetBackup.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbGetDataByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbReadAuditLog.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js +8 -8
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByConditions.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.d.ts +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByHash.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbSearchByValue.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpdateRecords.js +3 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/lmdbUpsertRecords.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/LMDBCreateAttributeObject.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializeHashSearch.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCheckForNewAttributes.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js +5 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbCreateTransactionsAuditEnvironment.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbGetTableSize.js +2 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.d.ts +1 -2
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js +4 -4
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbProcessRows.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbSearch.js +5 -5
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/lmdbWriteTransaction.js +4 -4
- package/dist/dataLayer/hdbInfoController.d.ts +4 -8
- package/dist/dataLayer/hdbInfoController.js +66 -31
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/insert.d.ts +14 -26
- package/dist/dataLayer/insert.js +63 -28
- package/dist/dataLayer/insert.js.map +1 -1
- package/dist/dataLayer/readAuditLog.d.ts +1 -3
- package/dist/dataLayer/readAuditLog.js +45 -13
- package/dist/dataLayer/readAuditLog.js.map +1 -1
- package/dist/dataLayer/schema.d.ts +10 -10
- package/dist/dataLayer/schema.js +124 -89
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.d.ts +4 -4
- package/dist/dataLayer/schemaDescribe.js +78 -41
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/dataLayer/search.d.ts +4 -4
- package/dist/dataLayer/search.js +12 -13
- package/dist/dataLayer/search.js.map +1 -1
- package/dist/dataLayer/transaction.d.ts +1 -1
- package/dist/dataLayer/transaction.js +3 -4
- package/dist/dataLayer/transaction.js.map +1 -1
- package/dist/dataLayer/update.d.ts +2 -8
- package/dist/dataLayer/update.js +53 -18
- package/dist/dataLayer/update.js.map +1 -1
- package/dist/globals.d.ts +1 -1
- package/dist/globals.js +1 -0
- package/dist/globals.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +65 -0
- package/dist/launchServiceScripts/launchHarperDB.d.ts +1 -0
- package/dist/launchServiceScripts/launchHarperDB.js +3 -0
- package/dist/launchServiceScripts/launchHarperDB.js.map +1 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js +3 -0
- package/dist/launchServiceScripts/utility/checkNodeVersion.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +14 -6
- package/dist/resources/DatabaseTransaction.js +39 -15
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ErrorResource.d.ts +1 -1
- package/dist/resources/ErrorResource.js +3 -1
- package/dist/resources/ErrorResource.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +10 -13
- package/dist/resources/LMDBTransaction.js +18 -7
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +10 -12
- package/dist/resources/RecordEncoder.js +38 -38
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +1 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.d.ts +25 -5
- package/dist/resources/Resource.js +43 -10
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +24 -5
- package/dist/resources/ResourceInterface.js +20 -0
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.d.ts +3 -4
- package/dist/resources/Resources.js +7 -6
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/RocksIndexStore.js +3 -0
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +1 -1
- package/dist/resources/RocksTransactionLogStore.js +10 -3
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +76 -329
- package/dist/resources/Table.js +306 -116
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/metadata.d.ts +1 -0
- package/dist/resources/analytics/metadata.js +1 -0
- package/dist/resources/analytics/metadata.js.map +1 -1
- package/dist/resources/analytics/read.d.ts +8 -1
- package/dist/resources/analytics/read.js +69 -8
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/analytics/write.d.ts +28 -0
- package/dist/resources/analytics/write.js +232 -20
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +18 -13
- package/dist/resources/auditStore.js +16 -8
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/blob.d.ts +16 -27
- package/dist/resources/blob.js +8 -8
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/dataLoader.d.ts +1 -1
- package/dist/resources/dataLoader.js +13 -13
- package/dist/resources/databases.d.ts +17 -0
- package/dist/resources/databases.js +175 -59
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.d.ts +1 -7
- package/dist/resources/graphql.js +267 -173
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +17 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +327 -59
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/indexes/vector.d.ts +1 -0
- package/dist/resources/indexes/vector.js +14 -0
- package/dist/resources/indexes/vector.js.map +1 -1
- package/dist/resources/jsonSchemaTypes.d.ts +60 -0
- package/dist/resources/jsonSchemaTypes.js +78 -0
- package/dist/resources/jsonSchemaTypes.js.map +1 -0
- package/dist/resources/loadEnv.d.ts +2 -5
- package/dist/resources/loadEnv.js +21 -18
- package/dist/resources/loadEnv.js.map +1 -1
- package/dist/resources/login.d.ts +2 -3
- package/dist/resources/login.js +5 -4
- package/dist/resources/login.js.map +1 -1
- package/dist/resources/models/Models.d.ts +45 -0
- package/dist/resources/models/Models.js +265 -0
- package/dist/resources/models/Models.js.map +1 -0
- package/dist/resources/models/TestBackend.d.ts +15 -0
- package/dist/resources/models/TestBackend.js +71 -0
- package/dist/resources/models/TestBackend.js.map +1 -0
- package/dist/resources/models/agentLoop.d.ts +125 -0
- package/dist/resources/models/agentLoop.js +746 -0
- package/dist/resources/models/agentLoop.js.map +1 -0
- package/dist/resources/models/analyticsTable.d.ts +65 -0
- package/dist/resources/models/analyticsTable.js +166 -0
- package/dist/resources/models/analyticsTable.js.map +1 -0
- package/dist/resources/models/backendHelpers.d.ts +57 -0
- package/dist/resources/models/backendHelpers.js +109 -0
- package/dist/resources/models/backendHelpers.js.map +1 -0
- package/dist/resources/models/backendRegistry.d.ts +36 -0
- package/dist/resources/models/backendRegistry.js +54 -0
- package/dist/resources/models/backendRegistry.js.map +1 -0
- package/dist/resources/models/bootstrap.d.ts +24 -0
- package/dist/resources/models/bootstrap.js +112 -0
- package/dist/resources/models/bootstrap.js.map +1 -0
- package/dist/resources/models/embedHook.d.ts +33 -0
- package/dist/resources/models/embedHook.js +127 -0
- package/dist/resources/models/embedHook.js.map +1 -0
- package/dist/resources/models/types.d.ts +301 -0
- package/dist/resources/models/types.js +11 -0
- package/dist/resources/models/types.js.map +1 -0
- package/dist/resources/openApi.js +74 -34
- package/dist/resources/openApi.js.map +1 -1
- package/dist/resources/replayLogs.js +7 -1
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/replayLogsGuards.d.ts +9 -0
- package/dist/resources/replayLogsGuards.js +47 -0
- package/dist/resources/replayLogsGuards.js.map +1 -1
- package/dist/resources/roles.d.ts +1 -7
- package/dist/resources/roles.js +67 -71
- package/dist/resources/roles.js.map +1 -1
- package/dist/resources/search.d.ts +18 -1
- package/dist/resources/search.js +349 -140
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/tracked.d.ts +1 -1
- package/dist/resources/tracked.js +23 -15
- package/dist/resources/tracked.js.map +1 -1
- package/dist/resources/transaction.d.ts +1 -1
- package/dist/resources/transaction.js +1 -1
- package/dist/resources/transaction.js.map +1 -1
- package/dist/resources/transactionBroadcast.d.ts +1 -1
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/auth.d.ts +1 -5
- package/dist/security/auth.js +34 -25
- package/dist/security/auth.js.map +1 -1
- package/dist/security/certificateVerification/crlVerification.js +7 -1
- package/dist/security/certificateVerification/crlVerification.js.map +1 -1
- package/dist/security/cryptoHash.d.ts +2 -2
- package/dist/security/cryptoHash.js +37 -5
- package/dist/security/cryptoHash.js.map +1 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.d.ts +3 -4
- package/dist/security/data_objects/PermissionAttributeResponseObject.js +4 -1
- package/dist/security/data_objects/PermissionAttributeResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionResponseObject.d.ts +9 -9
- package/dist/security/data_objects/PermissionResponseObject.js +15 -8
- package/dist/security/data_objects/PermissionResponseObject.js.map +1 -1
- package/dist/security/data_objects/PermissionTableResponseObject.d.ts +5 -6
- package/dist/security/data_objects/PermissionTableResponseObject.js +6 -1
- package/dist/security/data_objects/PermissionTableResponseObject.js.map +1 -1
- package/dist/security/fastifyAuth.d.ts +2 -2
- package/dist/security/fastifyAuth.js +131 -22
- package/dist/security/fastifyAuth.js.map +1 -1
- package/dist/security/impersonation.js +15 -15
- package/dist/security/jsLoader.js +18 -5
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.d.ts +45 -48
- package/dist/security/keys.js +160 -114
- package/dist/security/keys.js.map +1 -1
- package/dist/security/permissionsTranslator.js +2 -2
- package/dist/security/role.d.ts +5 -5
- package/dist/security/role.js +70 -35
- package/dist/security/role.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +13 -0
- package/dist/security/tokenAuthentication.js +57 -27
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.js +74 -38
- package/dist/security/user.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +4 -2
- package/dist/server/DurableSubscriptionsSession.js +71 -55
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.d.ts +1 -8
- package/dist/server/REST.js +17 -16
- package/dist/server/REST.js.map +1 -1
- package/dist/server/Server.d.ts +23 -4
- package/dist/server/Server.js +1 -1
- package/dist/server/Server.js.map +1 -1
- package/dist/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/dist/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/dist/server/fastifyRoutes.d.ts +1 -4
- package/dist/server/fastifyRoutes.js +34 -30
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/graphqlQuerying.d.ts +1 -1
- package/dist/server/graphqlQuerying.js +8 -7
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +9 -4
- package/dist/server/http.js +523 -47
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +66 -15
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/JobObject.d.ts +3 -3
- package/dist/server/jobs/JobObject.js +53 -7
- package/dist/server/jobs/JobObject.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +64 -24
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobRunner.d.ts +7 -6
- package/dist/server/jobs/jobRunner.js +68 -30
- package/dist/server/jobs/jobRunner.js.map +1 -1
- package/dist/server/jobs/jobs.d.ts +18 -7
- package/dist/server/jobs/jobs.js +93 -61
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/loadRootComponents.js +1 -1
- package/dist/server/middlewareChain.d.ts +80 -0
- package/dist/server/middlewareChain.js +252 -0
- package/dist/server/middlewareChain.js.map +1 -0
- package/dist/server/mqtt.d.ts +1 -8
- package/dist/server/mqtt.js +22 -17
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/nodeName.js +46 -13
- package/dist/server/nodeName.js.map +1 -1
- package/dist/server/operationsServer.d.ts +2 -2
- package/dist/server/operationsServer.js +106 -33
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +4 -4
- package/dist/server/serverHelpers/Headers.js +2 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.d.ts +7 -1
- package/dist/server/serverHelpers/JSONStream.js +12 -3
- package/dist/server/serverHelpers/JSONStream.js.map +1 -1
- package/dist/server/serverHelpers/Request.d.ts +106 -8
- package/dist/server/serverHelpers/Request.js +370 -9
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +1 -1
- package/dist/server/serverHelpers/contentTypes.js +36 -7
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.d.ts +21 -0
- package/dist/server/serverHelpers/multipartParser.js +142 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -0
- package/dist/server/serverHelpers/progressEmitter.d.ts +25 -0
- package/dist/server/serverHelpers/progressEmitter.js +103 -0
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.d.ts +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +38 -7
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +4 -2
- package/dist/server/serverHelpers/serverUtilities.js +97 -93
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +8 -5
- package/dist/server/static.js.map +1 -1
- package/dist/server/status/index.js +3 -3
- package/dist/server/storageReclamation.d.ts +10 -0
- package/dist/server/storageReclamation.js +68 -9
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/itc.js +7 -4
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +1 -1
- package/dist/server/threads/manageThreads.js +110 -26
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +0 -1
- package/dist/server/threads/socketRouter.js +8 -271
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.d.ts +1 -0
- package/dist/server/threads/threadServer.js +360 -118
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/server/threads/workerProcessGuard.d.ts +42 -0
- package/dist/server/threads/workerProcessGuard.js +114 -0
- package/dist/server/threads/workerProcessGuard.js.map +1 -0
- package/dist/server/throttle.js +17 -0
- package/dist/server/throttle.js.map +1 -1
- package/dist/sqlTranslator/SelectValidator.d.ts +21 -24
- package/dist/sqlTranslator/SelectValidator.js +86 -47
- package/dist/sqlTranslator/SelectValidator.js.map +1 -1
- package/dist/sqlTranslator/alasqlFunctionImporter.d.ts +6 -2
- package/dist/sqlTranslator/alasqlFunctionImporter.js +40 -3
- package/dist/sqlTranslator/alasqlFunctionImporter.js.map +1 -1
- package/dist/sqlTranslator/deleteTranslator.d.ts +4 -7
- package/dist/sqlTranslator/deleteTranslator.js +48 -14
- package/dist/sqlTranslator/deleteTranslator.js.map +1 -1
- package/dist/sqlTranslator/index.d.ts +10 -9
- package/dist/sqlTranslator/index.js +69 -30
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/sqlTranslator/sql_statement_bucket.d.ts +10 -10
- package/dist/sqlTranslator/sql_statement_bucket.js +55 -13
- package/dist/sqlTranslator/sql_statement_bucket.js.map +1 -1
- package/dist/upgrade/UpgradeObjects.d.ts +2 -3
- package/dist/upgrade/UpgradeObjects.js +37 -4
- package/dist/upgrade/UpgradeObjects.js.map +1 -1
- package/dist/upgrade/directives/5-1-0.d.ts +6 -0
- package/dist/upgrade/directives/5-1-0.js +114 -0
- package/dist/upgrade/directives/5-1-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.d.ts +10 -10
- package/dist/upgrade/directives/directivesController.js +52 -11
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/upgrade/directivesManager.d.ts +1 -1
- package/dist/upgrade/directivesManager.js +53 -18
- package/dist/upgrade/directivesManager.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +2 -8
- package/dist/upgrade/upgradePrompt.js +55 -60
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/upgrade/upgradeUtilities.d.ts +1 -1
- package/dist/upgrade/upgradeUtilities.js +37 -5
- package/dist/upgrade/upgradeUtilities.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.d.ts +1 -1
- package/dist/utility/OperationFunctionCaller.js +45 -10
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/assignCmdEnvVariables.d.ts +1 -2
- package/dist/utility/assignCmdEnvVariables.js +8 -4
- package/dist/utility/assignCmdEnvVariables.js.map +1 -1
- package/dist/utility/common_utils.d.ts +80 -77
- package/dist/utility/common_utils.js +140 -79
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/environment/environmentManager.d.ts +12 -11
- package/dist/utility/environment/environmentManager.js +75 -29
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/environment/systemInformation.d.ts +4 -0
- package/dist/utility/environment/systemInformation.js +27 -16
- package/dist/utility/environment/systemInformation.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +192 -168
- package/dist/utility/errors/commonErrors.js +49 -18
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/errors/hdbError.d.ts +37 -51
- package/dist/utility/errors/hdbError.js +65 -26
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/expandEnvVar.d.ts +61 -0
- package/dist/utility/expandEnvVar.js +113 -0
- package/dist/utility/expandEnvVar.js.map +1 -0
- package/dist/utility/functions/geo.js +2 -2
- package/dist/utility/functions/sql/alaSQLExtension.js +1 -1
- package/dist/utility/globalSchema.d.ts +13 -4
- package/dist/utility/globalSchema.js +14 -11
- package/dist/utility/globalSchema.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +54 -1
- package/dist/utility/hdbTerms.js +54 -1
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/checkJWTTokensExist.js +1 -1
- package/dist/utility/install/installer.d.ts +9 -12
- package/dist/utility/install/installer.js +117 -54
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/installation.js +3 -3
- package/dist/utility/lmdb/DBIDefinition.d.ts +4 -4
- package/dist/utility/lmdb/DBIDefinition.js +5 -1
- package/dist/utility/lmdb/DBIDefinition.js.map +1 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/DeleteRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/InsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/InsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/OpenDBIObject.d.ts +12 -15
- package/dist/utility/lmdb/OpenDBIObject.js +68 -6
- package/dist/utility/lmdb/OpenDBIObject.js.map +1 -1
- package/dist/utility/lmdb/OpenEnvironmentObject.d.ts +5 -8
- package/dist/utility/lmdb/OpenEnvironmentObject.js +52 -4
- package/dist/utility/lmdb/OpenEnvironmentObject.js.map +1 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.d.ts +3 -6
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpdateRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.d.ts +3 -5
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js +2 -1
- package/dist/utility/lmdb/UpsertRecordsResponseObject.js.map +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.d.ts +1 -1
- package/dist/utility/lmdb/cleanLMDBMap.js +44 -7
- package/dist/utility/lmdb/cleanLMDBMap.js.map +1 -1
- package/dist/utility/lmdb/commonUtility.d.ts +8 -9
- package/dist/utility/lmdb/commonUtility.js +46 -17
- package/dist/utility/lmdb/commonUtility.js.map +1 -1
- package/dist/utility/lmdb/deleteUtility.d.ts +2 -3
- package/dist/utility/lmdb/deleteUtility.js +51 -16
- package/dist/utility/lmdb/deleteUtility.js.map +1 -1
- package/dist/utility/lmdb/environmentUtility.d.ts +69 -36
- package/dist/utility/lmdb/environmentUtility.js +91 -51
- package/dist/utility/lmdb/environmentUtility.js.map +1 -1
- package/dist/utility/lmdb/searchCursorFunctions.d.ts +19 -19
- package/dist/utility/lmdb/searchCursorFunctions.js +46 -14
- package/dist/utility/lmdb/searchCursorFunctions.js.map +1 -1
- package/dist/utility/lmdb/searchUtility.d.ts +142 -73
- package/dist/utility/lmdb/searchUtility.js +91 -55
- package/dist/utility/lmdb/searchUtility.js.map +1 -1
- package/dist/utility/lmdb/terms.d.ts +34 -34
- package/dist/utility/lmdb/terms.js +12 -22
- package/dist/utility/lmdb/terms.js.map +1 -1
- package/dist/utility/lmdb/writeUtility.d.ts +3 -6
- package/dist/utility/lmdb/writeUtility.js +61 -28
- package/dist/utility/lmdb/writeUtility.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +87 -103
- package/dist/utility/logging/harper_logger.js +177 -82
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.d.ts +2 -10
- package/dist/utility/logging/logRotator.js +67 -32
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/logging/logger.js +4 -4
- package/dist/utility/logging/readLog.d.ts +1 -1
- package/dist/utility/logging/readLog.js +54 -17
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/logging/transactionLog.d.ts +2 -2
- package/dist/utility/logging/transactionLog.js +51 -16
- package/dist/utility/logging/transactionLog.js.map +1 -1
- package/dist/utility/mount_hdb.d.ts +1 -2
- package/dist/utility/mount_hdb.js +54 -17
- package/dist/utility/mount_hdb.js.map +1 -1
- package/dist/utility/npmUtilities.d.ts +1 -1
- package/dist/utility/npmUtilities.js +54 -19
- package/dist/utility/npmUtilities.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +36 -9
- package/dist/utility/operation_authorization.js +135 -86
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/packageUtils.d.ts +0 -2
- package/dist/utility/packageUtils.js +7 -17
- package/dist/utility/packageUtils.js.map +1 -1
- package/dist/utility/password.js +2 -2
- package/dist/utility/processManagement/processManagement.js +2 -2
- package/dist/utility/processManagement/servicesConfig.js +1 -1
- package/dist/utility/signalling.d.ts +2 -2
- package/dist/utility/signalling.js +51 -16
- package/dist/utility/signalling.js.map +1 -1
- package/dist/utility/watcherFallback.d.ts +36 -0
- package/dist/utility/watcherFallback.js +73 -0
- package/dist/utility/watcherFallback.js.map +1 -0
- package/dist/validation/analyticsValidator.d.ts +1 -0
- package/dist/validation/analyticsValidator.js +80 -0
- package/dist/validation/analyticsValidator.js.map +1 -0
- package/dist/validation/bulkDeleteValidator.d.ts +1 -2
- package/dist/validation/bulkDeleteValidator.js +49 -11
- package/dist/validation/bulkDeleteValidator.js.map +1 -1
- package/dist/validation/check_permissions.d.ts +1 -2
- package/dist/validation/check_permissions.js +38 -3
- package/dist/validation/check_permissions.js.map +1 -1
- package/dist/validation/common_validators.d.ts +20 -20
- package/dist/validation/common_validators.js +62 -31
- package/dist/validation/common_validators.js.map +1 -1
- package/dist/validation/configValidator.d.ts +4 -4
- package/dist/validation/configValidator.js +189 -54
- package/dist/validation/configValidator.js.map +1 -1
- package/dist/validation/deleteValidator.d.ts +1 -2
- package/dist/validation/deleteValidator.js +49 -11
- package/dist/validation/deleteValidator.js.map +1 -1
- package/dist/validation/fileLoadValidator.d.ts +4 -4
- package/dist/validation/fileLoadValidator.js +67 -32
- package/dist/validation/fileLoadValidator.js.map +1 -1
- package/dist/validation/insertValidator.d.ts +1 -2
- package/dist/validation/insertValidator.js +48 -10
- package/dist/validation/insertValidator.js.map +1 -1
- package/dist/validation/installValidator.d.ts +2 -2
- package/dist/validation/installValidator.js +47 -10
- package/dist/validation/installValidator.js.map +1 -1
- package/dist/validation/readLogValidator.d.ts +1 -2
- package/dist/validation/readLogValidator.js +60 -22
- package/dist/validation/readLogValidator.js.map +1 -1
- package/dist/validation/role_validation.d.ts +3 -3
- package/dist/validation/role_validation.js +55 -19
- package/dist/validation/role_validation.js.map +1 -1
- package/dist/validation/schemaMetadataValidator.d.ts +3 -4
- package/dist/validation/schemaMetadataValidator.js +11 -12
- package/dist/validation/schemaMetadataValidator.js.map +1 -1
- package/dist/validation/searchValidator.d.ts +1 -2
- package/dist/validation/searchValidator.js +82 -43
- package/dist/validation/searchValidator.js.map +1 -1
- package/dist/validation/statusValidator.d.ts +1 -1
- package/dist/validation/transactionLogValidator.d.ts +3 -3
- package/dist/validation/transactionLogValidator.js +52 -17
- package/dist/validation/transactionLogValidator.js.map +1 -1
- package/dist/validation/user_validation.d.ts +3 -3
- package/dist/validation/user_validation.js +38 -6
- package/dist/validation/user_validation.js.map +1 -1
- package/dist/validation/validationWrapper.d.ts +3 -3
- package/dist/validation/validationWrapper.js +4 -5
- package/dist/validation/validationWrapper.js.map +1 -1
- package/index.ts +5 -0
- package/json/systemSchema.json +65 -0
- package/launchServiceScripts/utility/checkNodeVersion.js +2 -0
- package/package.json +38 -24
- package/resources/DESIGN.md +98 -0
- package/resources/DatabaseTransaction.ts +58 -30
- package/resources/ErrorResource.ts +2 -1
- package/resources/LMDBTransaction.ts +38 -29
- package/resources/RecordEncoder.ts +41 -39
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +96 -56
- package/resources/ResourceInterface.ts +44 -21
- package/resources/Resources.ts +8 -8
- package/resources/RocksIndexStore.ts +3 -0
- package/resources/RocksTransactionLogStore.ts +13 -4
- package/resources/Table.ts +440 -223
- package/resources/analytics/metadata.ts +1 -0
- package/resources/analytics/read.ts +99 -10
- package/resources/analytics/write.ts +240 -17
- package/resources/auditStore.ts +30 -19
- package/resources/blob.ts +53 -53
- package/resources/dataLoader.ts +4 -4
- package/resources/databases.ts +208 -74
- package/resources/graphql.ts +267 -165
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +310 -65
- package/resources/indexes/vector.ts +17 -0
- package/resources/jsonSchemaTypes.ts +102 -0
- package/resources/loadEnv.ts +21 -17
- package/resources/login.ts +5 -3
- package/resources/models/Models.ts +304 -0
- package/resources/models/TestBackend.ts +83 -0
- package/resources/models/agentLoop.ts +895 -0
- package/resources/models/analyticsTable.ts +199 -0
- package/resources/models/backendHelpers.ts +116 -0
- package/resources/models/backendRegistry.ts +66 -0
- package/resources/models/bootstrap.ts +135 -0
- package/resources/models/embedHook.ts +138 -0
- package/resources/models/types.ts +296 -0
- package/resources/openApi.ts +65 -31
- package/resources/replayLogs.ts +20 -9
- package/resources/replayLogsGuards.ts +45 -0
- package/resources/roles.ts +62 -67
- package/resources/search.ts +355 -135
- package/resources/tracked.ts +18 -9
- package/resources/transaction.ts +8 -8
- package/resources/transactionBroadcast.ts +3 -3
- package/schema.graphql +7 -0
- package/security/auth.ts +35 -26
- package/security/certificateVerification/crlVerification.ts +11 -4
- package/security/{cryptoHash.js → cryptoHash.ts} +3 -8
- package/security/data_objects/{PermissionAttributeResponseObject.js → PermissionAttributeResponseObject.ts} +4 -4
- package/security/data_objects/{PermissionResponseObject.js → PermissionResponseObject.ts} +12 -11
- package/security/data_objects/{PermissionTableResponseObject.js → PermissionTableResponseObject.ts} +6 -4
- package/security/{fastifyAuth.js → fastifyAuth.ts} +93 -20
- package/security/impersonation.ts +3 -3
- package/security/jsLoader.ts +22 -8
- package/security/{keys.js → keys.ts} +113 -121
- package/security/permissionsTranslator.js +2 -2
- package/security/{role.js → role.ts} +26 -33
- package/security/tokenAuthentication.ts +34 -7
- package/security/user.ts +26 -22
- package/server/DESIGN.md +139 -0
- package/server/DurableSubscriptionsSession.ts +67 -50
- package/server/REST.ts +120 -107
- package/server/Server.ts +31 -12
- package/server/fastifyRoutes/helpers/getCORSOptions.js +1 -1
- package/server/fastifyRoutes/helpers/getHeaderTimeoutConfig.js +1 -1
- package/server/fastifyRoutes/helpers/getServerOptions.js +1 -1
- package/server/fastifyRoutes.ts +37 -33
- package/server/graphqlQuerying.ts +6 -5
- package/server/http.ts +517 -26
- package/server/itc/serverHandlers.js +75 -14
- package/server/jobs/{JobObject.js → JobObject.ts} +13 -6
- package/server/jobs/{jobProcess.js → jobProcess.ts} +20 -16
- package/server/jobs/{jobRunner.js → jobRunner.ts} +20 -21
- package/server/jobs/{jobs.js → jobs.ts} +41 -44
- package/server/loadRootComponents.js +1 -1
- package/server/middlewareChain.ts +270 -0
- package/server/mqtt.ts +35 -26
- package/server/nodeName.ts +3 -1
- package/server/operationsServer.ts +85 -10
- package/server/serverHelpers/Headers.ts +10 -8
- package/server/serverHelpers/JSONStream.ts +15 -5
- package/server/serverHelpers/Request.ts +370 -13
- package/server/serverHelpers/contentTypes.ts +42 -11
- package/server/serverHelpers/multipartParser.ts +152 -0
- package/server/serverHelpers/progressEmitter.ts +110 -0
- package/server/serverHelpers/serverHandlers.js +43 -7
- package/server/serverHelpers/serverUtilities.ts +40 -30
- package/server/static.ts +9 -6
- package/server/status/index.ts +2 -2
- package/server/storageReclamation.ts +39 -2
- package/server/threads/itc.js +7 -4
- package/server/threads/manageThreads.js +100 -26
- package/server/threads/socketRouter.ts +12 -275
- package/server/threads/threadServer.js +345 -105
- package/server/threads/workerProcessGuard.ts +93 -0
- package/server/throttle.ts +18 -0
- package/sqlTranslator/{SelectValidator.js → SelectValidator.ts} +41 -49
- package/sqlTranslator/{alasqlFunctionImporter.js → alasqlFunctionImporter.ts} +5 -5
- package/sqlTranslator/{deleteTranslator.js → deleteTranslator.ts} +13 -18
- package/sqlTranslator/{index.js → index.ts} +30 -33
- package/sqlTranslator/{sql_statement_bucket.js → sql_statement_bucket.ts} +49 -20
- package/static/README.md +10 -9
- package/static/defaultConfig.yaml +0 -1
- package/studio/web/assets/{index-CybLScHg.js → index-Dqr9oVhe.js} +5 -5
- package/studio/web/assets/index-Dqr9oVhe.js.map +1 -0
- package/studio/web/assets/{index.lazy-DKx5-iXF.js → index.lazy-CpKcKb7M.js} +2 -2
- package/studio/web/assets/{index.lazy-DKx5-iXF.js.map → index.lazy-CpKcKb7M.js.map} +1 -1
- package/studio/web/assets/{profile-BOjes0Wl.js → profile-C1cujdsg.js} +2 -2
- package/studio/web/assets/{profile-BOjes0Wl.js.map → profile-C1cujdsg.js.map} +1 -1
- package/studio/web/assets/{status-EWKUIrjT.js → status-CTiIIQlY.js} +2 -2
- package/studio/web/assets/{status-EWKUIrjT.js.map → status-CTiIIQlY.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/{UpgradeObjects.js → UpgradeObjects.ts} +3 -6
- package/upgrade/directives/5-1-0.ts +89 -0
- package/upgrade/directives/{directivesController.js → directivesController.ts} +16 -16
- package/upgrade/{directivesManager.js → directivesManager.ts} +7 -11
- package/upgrade/{upgradePrompt.js → upgradePrompt.ts} +6 -54
- package/upgrade/{upgradeUtilities.js → upgradeUtilities.ts} +3 -7
- package/utility/{OperationFunctionCaller.js → OperationFunctionCaller.ts} +7 -7
- package/utility/{assignCmdEnvVariables.js → assignCmdEnvVariables.ts} +6 -8
- package/utility/{common_utils.js → common_utils.ts} +113 -139
- package/utility/environment/{environmentManager.js → environmentManager.ts} +34 -33
- package/utility/environment/systemInformation.ts +18 -4
- package/utility/errors/{commonErrors.js → commonErrors.ts} +9 -9
- package/utility/errors/{hdbError.js → hdbError.ts} +39 -45
- package/utility/expandEnvVar.ts +110 -0
- package/utility/functions/geo.js +2 -2
- package/utility/functions/sql/alaSQLExtension.js +1 -1
- package/utility/globalSchema.ts +30 -0
- package/utility/hdbTerms.ts +54 -1
- package/utility/install/checkJWTTokensExist.js +1 -1
- package/utility/install/{installer.js → installer.ts} +66 -42
- package/utility/installation.ts +2 -2
- package/utility/lmdb/{DBIDefinition.js → DBIDefinition.ts} +4 -1
- package/utility/lmdb/{DeleteRecordsResponseObject.js → DeleteRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{InsertRecordsResponseObject.js → InsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/OpenDBIObject.ts +57 -0
- package/utility/lmdb/{OpenEnvironmentObject.js → OpenEnvironmentObject.ts} +19 -6
- package/utility/lmdb/{UpdateRecordsResponseObject.js → UpdateRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{UpsertRecordsResponseObject.js → UpsertRecordsResponseObject.ts} +2 -1
- package/utility/lmdb/{cleanLMDBMap.js → cleanLMDBMap.ts} +5 -5
- package/utility/lmdb/{commonUtility.js → commonUtility.ts} +13 -21
- package/utility/lmdb/{deleteUtility.js → deleteUtility.ts} +8 -12
- package/utility/lmdb/{environmentUtility.js → environmentUtility.ts} +43 -52
- package/utility/lmdb/{searchCursorFunctions.js → searchCursorFunctions.ts} +12 -26
- package/utility/lmdb/{searchUtility.js → searchUtility.ts} +75 -64
- package/utility/lmdb/{terms.js → terms.ts} +10 -23
- package/utility/lmdb/{writeUtility.js → writeUtility.ts} +37 -22
- package/utility/logging/{harper_logger.js → harper_logger.ts} +137 -90
- package/utility/logging/{logRotator.js → logRotator.ts} +15 -18
- package/utility/logging/logger.ts +1 -1
- package/utility/logging/{readLog.js → readLog.ts} +19 -19
- package/utility/logging/{transactionLog.js → transactionLog.ts} +10 -14
- package/utility/{mount_hdb.js → mount_hdb.ts} +15 -16
- package/utility/{npmUtilities.js → npmUtilities.ts} +14 -17
- package/utility/{operation_authorization.js → operation_authorization.ts} +173 -124
- package/utility/packageUtils.js +7 -16
- package/utility/password.ts +1 -1
- package/utility/processManagement/processManagement.js +2 -2
- package/utility/processManagement/servicesConfig.js +1 -1
- package/utility/{signalling.js → signalling.ts} +6 -11
- package/utility/watcherFallback.ts +74 -0
- package/validation/analyticsValidator.ts +44 -0
- package/validation/{bulkDeleteValidator.js → bulkDeleteValidator.ts} +5 -5
- package/validation/{check_permissions.js → check_permissions.ts} +3 -3
- package/validation/{common_validators.js → common_validators.ts} +12 -24
- package/validation/{configValidator.js → configValidator.ts} +114 -18
- package/validation/{deleteValidator.js → deleteValidator.ts} +5 -5
- package/validation/{fileLoadValidator.js → fileLoadValidator.ts} +12 -19
- package/validation/{insertValidator.js → insertValidator.ts} +5 -5
- package/validation/{installValidator.js → installValidator.ts} +8 -8
- package/validation/{readLogValidator.js → readLogValidator.ts} +10 -10
- package/validation/{role_validation.js → role_validation.ts} +26 -32
- package/validation/{schemaMetadataValidator.js → schemaMetadataValidator.ts} +5 -11
- package/validation/{searchValidator.js → searchValidator.ts} +12 -11
- package/validation/statusValidator.ts +1 -1
- package/validation/{transactionLogValidator.js → transactionLogValidator.ts} +4 -9
- package/validation/{user_validation.js → user_validation.ts} +4 -10
- package/validation/{validationWrapper.js → validationWrapper.ts} +3 -9
- package/bin/cliOperations.js +0 -159
- package/bin/lite.js +0 -5
- package/dataLayer/harperBridge/BridgeMethods.js +0 -85
- package/studio/web/assets/index-CybLScHg.js.map +0 -1
- package/utility/globalSchema.js +0 -35
- package/utility/lmdb/OpenDBIObject.js +0 -31
|
@@ -6,5 +6,6 @@ export declare const METRIC: {
|
|
|
6
6
|
readonly RESOURCE_USAGE: "resource-usage";
|
|
7
7
|
readonly UTILIZATION: "utilization";
|
|
8
8
|
readonly NODE_STORAGE: "node-storage";
|
|
9
|
+
readonly ROCKSDB_STATS: "rocksdb-stats";
|
|
9
10
|
};
|
|
10
11
|
export type BuiltInMetricName = (typeof METRIC)[keyof typeof METRIC];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../resources/analytics/metadata.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACrB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,uBAAuB,EAAE,yBAAyB;IAClD,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../resources/analytics/metadata.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACrB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,uBAAuB,EAAE,yBAAyB;IAClD,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;CACrB,CAAC"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import type { Metric } from './write.ts';
|
|
2
2
|
import type { Conditions } from '../ResourceInterface.ts';
|
|
3
3
|
interface GetAnalyticsRequest {
|
|
4
|
+
operation?: string;
|
|
4
5
|
metric: string;
|
|
5
6
|
start_time?: number;
|
|
6
7
|
end_time?: number;
|
|
7
8
|
get_attributes?: string[];
|
|
8
9
|
coalesce_time?: boolean;
|
|
9
10
|
conditions?: Conditions;
|
|
11
|
+
replicated?: boolean;
|
|
10
12
|
}
|
|
11
|
-
type GetAnalyticsResponse = Metric[];
|
|
13
|
+
type GetAnalyticsResponse = AsyncIterable<Metric> | Metric[];
|
|
14
|
+
/**
|
|
15
|
+
* Validates the `get_analytics` request and returns the analytics results.
|
|
16
|
+
* @param req
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
12
19
|
export declare function getOp(req: GetAnalyticsRequest): Promise<GetAnalyticsResponse>;
|
|
13
20
|
interface GetAnalyticsOpts {
|
|
14
21
|
getAttributes?: string[];
|
|
@@ -9,15 +9,19 @@ exports.listMetricsOp = listMetricsOp;
|
|
|
9
9
|
exports.listMetrics = listMetrics;
|
|
10
10
|
exports.describeMetricOp = describeMetricOp;
|
|
11
11
|
exports.describeMetric = describeMetric;
|
|
12
|
-
const
|
|
13
|
-
const { forComponent } =
|
|
12
|
+
const harper_logger_ts_1 = __importDefault(require("../../utility/logging/harper_logger.js"));
|
|
13
|
+
const { forComponent } = harper_logger_ts_1.default;
|
|
14
14
|
const hostnames_ts_1 = require("./hostnames.js");
|
|
15
15
|
const metadata_ts_1 = require("./metadata.js");
|
|
16
16
|
const hdbTerms_ts_1 = require("../../utility/hdbTerms.js");
|
|
17
|
-
const
|
|
17
|
+
const environmentManager_ts_1 = require("../../utility/environment/environmentManager.js");
|
|
18
|
+
const analyticsValidator_ts_1 = require("../../validation/analyticsValidator.js");
|
|
19
|
+
const hdbError_ts_1 = require("../../utility/errors/hdbError.js");
|
|
20
|
+
const nodeName_ts_1 = require("../../server/nodeName.js");
|
|
18
21
|
// default to one week time window for finding custom metrics
|
|
19
22
|
const defaultCustomMetricWindow = 1000 * 60 * 60 * 24 * 7;
|
|
20
|
-
const
|
|
23
|
+
const logger = forComponent('analytics');
|
|
24
|
+
const log = logger.conditional;
|
|
21
25
|
async function lookupHostname(nodeId) {
|
|
22
26
|
const result = await (0, hostnames_ts_1.getAnalyticsHostnameTable)().get(nodeId);
|
|
23
27
|
if (result?.hostname)
|
|
@@ -29,15 +33,72 @@ async function lookupHostname(nodeId) {
|
|
|
29
33
|
function isSelected(querySelect, attr) {
|
|
30
34
|
return querySelect.length === 0 || querySelect.includes(attr);
|
|
31
35
|
}
|
|
32
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Validates the `get_analytics` request and returns the analytics results.
|
|
38
|
+
* @param req
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
async function getOp(req) {
|
|
33
42
|
log.trace?.('get_analytics request:', req);
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
const validationError = (0, analyticsValidator_ts_1.validateGetAnalytics)(req);
|
|
44
|
+
if (validationError) {
|
|
45
|
+
throw (0, hdbError_ts_1.handleHDBError)(validationError, validationError.message, hdbError_ts_1.hdbErrors.HTTP_STATUS_CODES.BAD_REQUEST, undefined, undefined, true);
|
|
46
|
+
}
|
|
47
|
+
// `replicated` fans the query out to every peer node and merges each node's
|
|
48
|
+
// analytics into one cluster-wide result set. Fan-out is skipped when:
|
|
49
|
+
// - the request did not ask for it;
|
|
50
|
+
// - this is standalone core, which has no `server.nodes` (harper-pro populates it);
|
|
51
|
+
// - `hdb_analytics` already replicates across the cluster, in which case a local
|
|
52
|
+
// query already holds every node's rows and fanning out would double-count.
|
|
53
|
+
// The DB layer marks the table `replicate === false` only when it is *not*
|
|
54
|
+
// replicated (`analytics_replicate: false`), which is exactly when fan-out helps.
|
|
55
|
+
const analyticsReplicatedByDb = databases.system.hdb_analytics.replicate !== false;
|
|
56
|
+
const peers = req.replicated && !analyticsReplicatedByDb && server.nodes?.length ? server.nodes : undefined;
|
|
57
|
+
// When merging across the cluster, make sure every row keeps its origin `node`
|
|
58
|
+
// attribute so callers can tell the nodes apart. An empty/absent `get_attributes`
|
|
59
|
+
// already selects everything (including `node`), so only an explicit list needs it.
|
|
60
|
+
let getAttributes = req.get_attributes;
|
|
61
|
+
if (peers && getAttributes?.length && !getAttributes.includes('node')) {
|
|
62
|
+
getAttributes = [...getAttributes, 'node'];
|
|
63
|
+
}
|
|
64
|
+
const localResults = await get(req.metric, {
|
|
65
|
+
getAttributes,
|
|
36
66
|
startTime: req.start_time,
|
|
37
67
|
endTime: req.end_time,
|
|
38
68
|
coalesceTime: req.coalesce_time,
|
|
39
69
|
additionalConditions: req.conditions,
|
|
40
70
|
});
|
|
71
|
+
if (!peers)
|
|
72
|
+
return localResults;
|
|
73
|
+
return mergeAnalyticsFromPeers(localResults, { ...req, get_attributes: getAttributes }, peers);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Streams the local analytics, then appends each peer node's analytics. The same
|
|
77
|
+
* query is forwarded to every peer with `replicated` cleared so each returns only
|
|
78
|
+
* its own local metrics (no recursive fan-out). Best-effort: a peer that fails is
|
|
79
|
+
* logged and omitted rather than failing the whole query.
|
|
80
|
+
*/
|
|
81
|
+
async function* mergeAnalyticsFromPeers(localResults, req, peers) {
|
|
82
|
+
const thisNode = (0, nodeName_ts_1.getThisNodeName)();
|
|
83
|
+
const peerReq = { ...req, replicated: false };
|
|
84
|
+
// `sendOperationToNode` is typed for a node name string, but the replication
|
|
85
|
+
// implementation expects the full node object (the stub-vs-impl mismatch that
|
|
86
|
+
// `restart` works around the same way).
|
|
87
|
+
const sendOperationToNode = server.replication.sendOperationToNode;
|
|
88
|
+
const peerResults = peers
|
|
89
|
+
.filter((node) => node.name !== thisNode)
|
|
90
|
+
.map((node) => sendOperationToNode(node, peerReq).then(
|
|
91
|
+
// an array response is wrapped as `{ results }` over the replication channel;
|
|
92
|
+
// fall back to an empty list for any other (malformed) shape so a bad peer
|
|
93
|
+
// can't break the merge
|
|
94
|
+
(response) => Array.isArray(response) ? response : Array.isArray(response?.results) ? response.results : [], (error) => {
|
|
95
|
+
logger.warn(`get_analytics replication to node '${node.name}' failed; omitting its results`, error);
|
|
96
|
+
return [];
|
|
97
|
+
}));
|
|
98
|
+
yield* localResults;
|
|
99
|
+
for (const peerResult of peerResults) {
|
|
100
|
+
yield* await peerResult;
|
|
101
|
+
}
|
|
41
102
|
}
|
|
42
103
|
function conformCondition(condition) {
|
|
43
104
|
if ('conditions' in condition) {
|
|
@@ -124,7 +185,7 @@ async function get(metric, opts) {
|
|
|
124
185
|
});
|
|
125
186
|
if (opts?.coalesceTime) {
|
|
126
187
|
// coalescing window is the aggregate period converted to milliseconds
|
|
127
|
-
const window = (0,
|
|
188
|
+
const window = (0, environmentManager_ts_1.get)(hdbTerms_ts_1.CONFIG_PARAMS.ANALYTICS_AGGREGATEPERIOD) * 1000;
|
|
128
189
|
results = coalesceResults(results, window);
|
|
129
190
|
}
|
|
130
191
|
return results;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../resources/analytics/read.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../resources/analytics/read.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,34 @@ export declare function calculateCPUUtilization(resourceUsage: ResourceUsage, pe
|
|
|
48
48
|
* new values for this time period.
|
|
49
49
|
*/
|
|
50
50
|
export declare function diffResourceUsage(lastResourceUsage: ResourceUsage, resourceUsage: ResourceUsage): ResourceUsage;
|
|
51
|
+
export declare function toRocksDBCamelCase(key: string): string;
|
|
52
|
+
export declare function diffRocksDBCounter(curr: number, last: number | undefined): number;
|
|
53
|
+
/**
|
|
54
|
+
* Filter a raw RocksDB stats record to numeric scalar entries, camelCasing the keys.
|
|
55
|
+
* Histogram entries (objects) are dropped — they don't fit the flat analytics row model.
|
|
56
|
+
* @param raw - The raw RocksDB stats record to normalize.
|
|
57
|
+
* @returns The normalized RocksDB stats record.
|
|
58
|
+
*/
|
|
59
|
+
export declare function normalizeRocksDBStats(raw: Record<string, unknown>): Record<string, number>;
|
|
60
|
+
/**
|
|
61
|
+
* Gathers metrics for a RocksDB database.
|
|
62
|
+
* @param dbName - The name of the database.
|
|
63
|
+
* @param stats - The stats to build the metric from.
|
|
64
|
+
* @param lastStats - The last stats to diff the stats from.
|
|
65
|
+
* @param now - The current time.
|
|
66
|
+
* @param period - The period to store the metrics for.
|
|
67
|
+
*/
|
|
68
|
+
export declare function buildRocksDBDbMetric(dbName: string, stats: Record<string, number>, lastStats: Record<string, number> | undefined, now: number, period: number | undefined): Record<string, unknown>;
|
|
69
|
+
/**
|
|
70
|
+
* Gathers metrics for a RocksDB table. Only gauges are reported per-table; ticker counters
|
|
71
|
+
* are DB-wide (see ROCKSDB_DB_COUNTERS comment) and live on the DB-level metric.
|
|
72
|
+
* @param dbName - The name of the database.
|
|
73
|
+
* @param tableName - The name of the table.
|
|
74
|
+
* @param stats - The stats to build the metric from.
|
|
75
|
+
* @param now - The current time.
|
|
76
|
+
* @param period - The period to store the metrics for.
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildRocksDBTableMetric(dbName: string, tableName: string, stats: Record<string, number>, now: number, period: number | undefined): Record<string, unknown>;
|
|
51
79
|
export declare function getDirectorySizeAsync(dirPath: string): Promise<number>;
|
|
52
80
|
export declare function onAnalyticsAggregate(callback: any): void;
|
|
53
81
|
export {};
|
|
@@ -44,18 +44,23 @@ exports.addAnalyticsListener = addAnalyticsListener;
|
|
|
44
44
|
exports.recordHostname = recordHostname;
|
|
45
45
|
exports.calculateCPUUtilization = calculateCPUUtilization;
|
|
46
46
|
exports.diffResourceUsage = diffResourceUsage;
|
|
47
|
+
exports.toRocksDBCamelCase = toRocksDBCamelCase;
|
|
48
|
+
exports.diffRocksDBCounter = diffRocksDBCounter;
|
|
49
|
+
exports.normalizeRocksDBStats = normalizeRocksDBStats;
|
|
50
|
+
exports.buildRocksDBDbMetric = buildRocksDBDbMetric;
|
|
51
|
+
exports.buildRocksDBTableMetric = buildRocksDBTableMetric;
|
|
47
52
|
exports.getDirectorySizeAsync = getDirectorySizeAsync;
|
|
48
53
|
exports.onAnalyticsAggregate = onAnalyticsAggregate;
|
|
49
54
|
const worker_threads_1 = require("worker_threads");
|
|
50
55
|
const manageThreads_js_1 = require("../../server/threads/manageThreads.js");
|
|
51
56
|
const databases_ts_1 = require("../databases.js");
|
|
52
|
-
const
|
|
57
|
+
const harper_logger_ts_1 = __importDefault(require("../../utility/logging/harper_logger.js"));
|
|
53
58
|
const promises_1 = require("node:fs/promises");
|
|
54
|
-
const { getLogFilePath, forComponent } =
|
|
59
|
+
const { getLogFilePath, forComponent } = harper_logger_ts_1.default;
|
|
55
60
|
const path_1 = require("path");
|
|
56
61
|
const promises_2 = require("fs/promises");
|
|
57
|
-
const
|
|
58
|
-
const
|
|
62
|
+
const commonUtility_ts_1 = require("../../utility/lmdb/commonUtility.js");
|
|
63
|
+
const environmentManager_ts_1 = require("../../utility/environment/environmentManager.js");
|
|
59
64
|
const hdbTerms_ts_1 = require("../../utility/hdbTerms.js");
|
|
60
65
|
const Server_ts_1 = require("../../server/Server.js");
|
|
61
66
|
const fs = __importStar(require("node:fs"));
|
|
@@ -63,10 +68,22 @@ const hostnames_ts_1 = require("./hostnames.js");
|
|
|
63
68
|
const metadata_ts_1 = require("./metadata.js");
|
|
64
69
|
const rocksdb_js_1 = require("@harperfast/rocksdb-js");
|
|
65
70
|
const log = forComponent('analytics').conditional;
|
|
66
|
-
|
|
71
|
+
const isBun = typeof globalThis.Bun !== 'undefined';
|
|
72
|
+
(0, environmentManager_ts_1.initSync)();
|
|
67
73
|
let activeActions = new Map();
|
|
68
|
-
let analyticsEnabled = (0,
|
|
74
|
+
let analyticsEnabled = (0, environmentManager_ts_1.get)(hdbTerms_ts_1.CONFIG_PARAMS.ANALYTICS_AGGREGATEPERIOD) > -1;
|
|
75
|
+
let analyticsReadOnlyChecked = false;
|
|
69
76
|
let sendAnalyticsTimeout;
|
|
77
|
+
// Check read-only mode lazily to avoid circular dependency at module load time
|
|
78
|
+
function checkAnalyticsEnabled() {
|
|
79
|
+
if (!analyticsReadOnlyChecked) {
|
|
80
|
+
analyticsReadOnlyChecked = true;
|
|
81
|
+
if ((0, databases_ts_1.isReadOnlyMode)()) {
|
|
82
|
+
analyticsEnabled = false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return analyticsEnabled;
|
|
86
|
+
}
|
|
70
87
|
function setAnalyticsEnabled(enabled) {
|
|
71
88
|
analyticsEnabled = enabled;
|
|
72
89
|
clearTimeout(sendAnalyticsTimeout); // reset this
|
|
@@ -134,7 +151,7 @@ function recordNewAction(key, value, metric, path, method, type) {
|
|
|
134
151
|
* @param type
|
|
135
152
|
*/
|
|
136
153
|
function recordAction(value, metric, path, method, type) {
|
|
137
|
-
if (!
|
|
154
|
+
if (!checkAnalyticsEnabled())
|
|
138
155
|
return;
|
|
139
156
|
// TODO: May want to consider nested paths, as they may yield faster hashing of (fixed) strings that hashing concatenated strings
|
|
140
157
|
let key = metric + (path ? '-' + path : '');
|
|
@@ -247,6 +264,9 @@ function sendAnalytics() {
|
|
|
247
264
|
}, exports.analyticsDelay).unref();
|
|
248
265
|
}
|
|
249
266
|
async function recordHostname() {
|
|
267
|
+
// Skip writes in read-only mode
|
|
268
|
+
if ((0, databases_ts_1.isReadOnlyMode)())
|
|
269
|
+
return;
|
|
250
270
|
const hostname = Server_ts_1.server.hostname;
|
|
251
271
|
log.trace?.('recordHostname server.hostname:', hostname);
|
|
252
272
|
const nodeId = (0, hostnames_ts_1.stableNodeId)(hostname);
|
|
@@ -271,9 +291,12 @@ function getHostNodeId(hostname) {
|
|
|
271
291
|
return nodeId;
|
|
272
292
|
}
|
|
273
293
|
function storeMetric(table, metric) {
|
|
294
|
+
// Skip writes in read-only mode
|
|
295
|
+
if ((0, databases_ts_1.isReadOnlyMode)())
|
|
296
|
+
return;
|
|
274
297
|
const nodeId = getHostNodeId(Server_ts_1.server.hostname);
|
|
275
298
|
const metricValue = {
|
|
276
|
-
id: [(0,
|
|
299
|
+
id: [(0, commonUtility_ts_1.getNextMonotonicTime)(), nodeId],
|
|
277
300
|
...metric,
|
|
278
301
|
};
|
|
279
302
|
log.trace?.(`storing metric ${JSON.stringify(metricValue)}`);
|
|
@@ -393,6 +416,176 @@ function storeVolumeMetrics(analyticsTable, databases) {
|
|
|
393
416
|
}
|
|
394
417
|
}
|
|
395
418
|
}
|
|
419
|
+
// RocksDB stat names are kebab-case with a "rocksdb." prefix (e.g. "rocksdb.block.cache.hit");
|
|
420
|
+
// camelCase them to match the field shape used throughout systemInformation.
|
|
421
|
+
function toRocksDBCamelCase(key) {
|
|
422
|
+
return key.replace(/^rocksdb\./, '').replace(/[-.]([a-z])/g, (_, c) => c.toUpperCase());
|
|
423
|
+
}
|
|
424
|
+
// Every column family on the same physical RocksDB shares one Statistics object, so all ticker
|
|
425
|
+
// counters returned by getStats() — including memtableHit/memtableMiss — are DB-wide, not per-CF.
|
|
426
|
+
// Listing them as DB-level avoids emitting the same delta on every table row.
|
|
427
|
+
const ROCKSDB_DB_COUNTERS = [
|
|
428
|
+
'bytesRead',
|
|
429
|
+
'bytesWritten',
|
|
430
|
+
'numberKeysRead',
|
|
431
|
+
'numberKeysWritten',
|
|
432
|
+
'blockCacheHit',
|
|
433
|
+
'blockCacheMiss',
|
|
434
|
+
'blockCacheDataHit',
|
|
435
|
+
'blockCacheDataMiss',
|
|
436
|
+
'blockCacheIndexHit',
|
|
437
|
+
'blockCacheIndexMiss',
|
|
438
|
+
'blockCacheFilterHit',
|
|
439
|
+
'blockCacheFilterMiss',
|
|
440
|
+
'stallMicros',
|
|
441
|
+
'memtableHit',
|
|
442
|
+
'memtableMiss',
|
|
443
|
+
];
|
|
444
|
+
// Gauges are scalar values that are not cumulative. They go up and down over time.
|
|
445
|
+
const ROCKSDB_DB_GAUGES = ['blockCacheUsage', 'blockCacheCapacity', 'numRunningFlushes'];
|
|
446
|
+
const ROCKSDB_TABLE_GAUGES = ['numRunningCompactions', 'compactionPending'];
|
|
447
|
+
const lastRocksDBDbStats = new Map();
|
|
448
|
+
let lastRocksDBStatsTime = 0;
|
|
449
|
+
function diffRocksDBCounter(curr, last) {
|
|
450
|
+
// A negative delta means RocksDB itself reset the counter mid-process (e.g. an internal
|
|
451
|
+
// statistics reset). Process restarts are handled separately because the module-level
|
|
452
|
+
// last-stats maps are reinitialized, which takes the no-prior-reading path below.
|
|
453
|
+
if (last === undefined || curr < last)
|
|
454
|
+
return curr;
|
|
455
|
+
return curr - last;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Filter a raw RocksDB stats record to numeric scalar entries, camelCasing the keys.
|
|
459
|
+
* Histogram entries (objects) are dropped — they don't fit the flat analytics row model.
|
|
460
|
+
* @param raw - The raw RocksDB stats record to normalize.
|
|
461
|
+
* @returns The normalized RocksDB stats record.
|
|
462
|
+
*/
|
|
463
|
+
function normalizeRocksDBStats(raw) {
|
|
464
|
+
const out = {};
|
|
465
|
+
if (!raw)
|
|
466
|
+
return out;
|
|
467
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
468
|
+
if (typeof value === 'number')
|
|
469
|
+
out[toRocksDBCamelCase(key)] = value;
|
|
470
|
+
}
|
|
471
|
+
return out;
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Gathers metrics for a RocksDB database.
|
|
475
|
+
* @param dbName - The name of the database.
|
|
476
|
+
* @param stats - The stats to build the metric from.
|
|
477
|
+
* @param lastStats - The last stats to diff the stats from.
|
|
478
|
+
* @param now - The current time.
|
|
479
|
+
* @param period - The period to store the metrics for.
|
|
480
|
+
*/
|
|
481
|
+
function buildRocksDBDbMetric(dbName, stats, lastStats, now, period) {
|
|
482
|
+
const metric = {
|
|
483
|
+
metric: metadata_ts_1.METRIC.ROCKSDB_STATS,
|
|
484
|
+
database: dbName,
|
|
485
|
+
time: now,
|
|
486
|
+
};
|
|
487
|
+
if (period !== undefined)
|
|
488
|
+
metric.period = period;
|
|
489
|
+
for (const field of ROCKSDB_DB_COUNTERS) {
|
|
490
|
+
metric[field] = diffRocksDBCounter(stats[field] ?? 0, lastStats?.[field]);
|
|
491
|
+
}
|
|
492
|
+
for (const field of ROCKSDB_DB_GAUGES) {
|
|
493
|
+
metric[field] = stats[field] ?? 0;
|
|
494
|
+
}
|
|
495
|
+
return metric;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Gathers metrics for a RocksDB table. Only gauges are reported per-table; ticker counters
|
|
499
|
+
* are DB-wide (see ROCKSDB_DB_COUNTERS comment) and live on the DB-level metric.
|
|
500
|
+
* @param dbName - The name of the database.
|
|
501
|
+
* @param tableName - The name of the table.
|
|
502
|
+
* @param stats - The stats to build the metric from.
|
|
503
|
+
* @param now - The current time.
|
|
504
|
+
* @param period - The period to store the metrics for.
|
|
505
|
+
*/
|
|
506
|
+
function buildRocksDBTableMetric(dbName, tableName, stats, now, period) {
|
|
507
|
+
const metric = {
|
|
508
|
+
metric: metadata_ts_1.METRIC.ROCKSDB_STATS,
|
|
509
|
+
database: dbName,
|
|
510
|
+
table: tableName,
|
|
511
|
+
time: now,
|
|
512
|
+
};
|
|
513
|
+
if (period !== undefined)
|
|
514
|
+
metric.period = period;
|
|
515
|
+
for (const field of ROCKSDB_TABLE_GAUGES) {
|
|
516
|
+
metric[field] = stats[field] ?? 0;
|
|
517
|
+
}
|
|
518
|
+
return metric;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Stores the RocksDB stats metrics for the given databases.
|
|
522
|
+
* @param analyticsTable - The analytics table to store the metrics in.
|
|
523
|
+
* @param databases - The databases to store the metrics for.
|
|
524
|
+
* @param now - The current time.
|
|
525
|
+
* @param period - The period to store the metrics for.
|
|
526
|
+
*/
|
|
527
|
+
function storeRocksDBStatsMetrics(analyticsTable, databases, now, period) {
|
|
528
|
+
for (const [db, tables] of Object.entries(databases)) {
|
|
529
|
+
if (!tables)
|
|
530
|
+
continue; // no tables or not loaded/initialized yet
|
|
531
|
+
const tableEntries = Object.entries(tables);
|
|
532
|
+
const [, firstTable] = tableEntries[0] ?? [];
|
|
533
|
+
if (!(firstTable?.primaryStore instanceof rocksdb_js_1.RocksDatabase))
|
|
534
|
+
continue;
|
|
535
|
+
let firstNormalizedStats;
|
|
536
|
+
for (const [tableName, tbl] of tableEntries) {
|
|
537
|
+
try {
|
|
538
|
+
const tableStats = normalizeRocksDBStats(tbl.primaryStore.getStats());
|
|
539
|
+
if (!firstNormalizedStats)
|
|
540
|
+
firstNormalizedStats = tableStats;
|
|
541
|
+
const tableMetric = buildRocksDBTableMetric(db, tableName, tableStats, now, period);
|
|
542
|
+
storeMetric(analyticsTable, tableMetric);
|
|
543
|
+
}
|
|
544
|
+
catch (error) {
|
|
545
|
+
// A table may be removed mid-collection — keep iterating siblings.
|
|
546
|
+
log.warn?.(`Error getting RocksDB stats for table ${db}.${tableName}`, error);
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
if (firstNormalizedStats) {
|
|
550
|
+
// Any table's getStats() returns the same DB-wide counters; reuse the first one's.
|
|
551
|
+
const lastDbStats = lastRocksDBDbStats.get(db);
|
|
552
|
+
// Skip the first sample for a db — counters are cumulative since process start,
|
|
553
|
+
// so reporting them as a delta would produce a misleading spike.
|
|
554
|
+
if (lastDbStats !== undefined) {
|
|
555
|
+
const dbMetric = buildRocksDBDbMetric(db, firstNormalizedStats, lastDbStats, now, period);
|
|
556
|
+
storeMetric(analyticsTable, dbMetric);
|
|
557
|
+
log.trace?.(`db ${db} rocksdb stats metric: ${JSON.stringify(dbMetric)}`);
|
|
558
|
+
}
|
|
559
|
+
lastRocksDBDbStats.set(db, firstNormalizedStats);
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Drop cached counter readings for databases that no longer exist, to bound memory
|
|
565
|
+
* growth across drop/recreate cycles and prevent stale baselines from producing wrong diffs.
|
|
566
|
+
* @param databases - The databases to prune the stats cache for.
|
|
567
|
+
*/
|
|
568
|
+
function pruneRocksDBStatsCache(databases) {
|
|
569
|
+
const activeDbs = new Set(Object.keys(databases));
|
|
570
|
+
for (const key of lastRocksDBDbStats.keys()) {
|
|
571
|
+
if (!activeDbs.has(key))
|
|
572
|
+
lastRocksDBDbStats.delete(key);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Returns a Databases view that includes the `system` database as an enumerable property.
|
|
577
|
+
* getDatabases() marks `system` non-enumerable so general consumers skip it; analytics
|
|
578
|
+
* needs to iterate over it like any other database.
|
|
579
|
+
*/
|
|
580
|
+
function getDatabasesIncludingSystem() {
|
|
581
|
+
const databases = (0, databases_ts_1.getDatabases)();
|
|
582
|
+
if (!databases.system)
|
|
583
|
+
return databases;
|
|
584
|
+
const all = Object.create(null);
|
|
585
|
+
Object.assign(all, databases);
|
|
586
|
+
all.system = databases.system;
|
|
587
|
+
return all;
|
|
588
|
+
}
|
|
396
589
|
async function getDirectorySizeAsync(dirPath) {
|
|
397
590
|
try {
|
|
398
591
|
const entries = await (0, promises_1.readdir)(dirPath, { withFileTypes: true });
|
|
@@ -421,7 +614,7 @@ async function storeNodeStorageMetric(analyticsTable) {
|
|
|
421
614
|
if (nodeStorageInterval <= 0 || ++nodeStorageCycleCount % nodeStorageInterval !== 1)
|
|
422
615
|
return;
|
|
423
616
|
try {
|
|
424
|
-
const size = await getDirectorySizeAsync((0,
|
|
617
|
+
const size = await getDirectorySizeAsync((0, environmentManager_ts_1.getHdbBasePath)());
|
|
425
618
|
storeMetric(analyticsTable, {
|
|
426
619
|
metric: metadata_ts_1.METRIC.NODE_STORAGE,
|
|
427
620
|
size,
|
|
@@ -440,7 +633,7 @@ async function aggregation(fromPeriod, toPeriod = 60000) {
|
|
|
440
633
|
await (0, promises_1.stat)(getLogFilePath());
|
|
441
634
|
const delay = performance.now() - start;
|
|
442
635
|
if (delay > 5000) {
|
|
443
|
-
log.warn?.('Unusually high task queue latency on the main thread of ' + Math.round(
|
|
636
|
+
log.warn?.('Unusually high task queue latency on the main thread of ' + Math.round(delay) + 'ms');
|
|
444
637
|
}
|
|
445
638
|
return delay;
|
|
446
639
|
})();
|
|
@@ -596,7 +789,9 @@ async function aggregation(fromPeriod, toPeriod = 60000) {
|
|
|
596
789
|
}
|
|
597
790
|
}
|
|
598
791
|
const now = Date.now();
|
|
599
|
-
const { idle, active } =
|
|
792
|
+
const { idle, active } = globalThis.Bun
|
|
793
|
+
? { idle: 0, active: 0 }
|
|
794
|
+
: performance.eventLoopUtilization();
|
|
600
795
|
// don't record boring entries
|
|
601
796
|
if (hasUpdates || active * 10 > idle) {
|
|
602
797
|
const value = {
|
|
@@ -629,13 +824,18 @@ async function aggregation(fromPeriod, toPeriod = 60000) {
|
|
|
629
824
|
};
|
|
630
825
|
storeMetric(analyticsTable, cruMetric);
|
|
631
826
|
lastResourceUsage = resourceUsage;
|
|
827
|
+
// `system` is set as non-enumerable on the object returned by getDatabases() so most
|
|
828
|
+
// callers skip it; for analytics we want it included, so build a view where it's enumerable.
|
|
829
|
+
const databases = getDatabasesIncludingSystem();
|
|
632
830
|
// database-size & table-size metrics
|
|
633
|
-
const databases = (0, databases_ts_1.getDatabases)();
|
|
634
831
|
storeDBSizeMetrics(analyticsTable, databases);
|
|
635
|
-
storeDBSizeMetrics(analyticsTable, { system: databases.system });
|
|
636
832
|
// database storage volume metrics
|
|
637
833
|
storeVolumeMetrics(analyticsTable, databases);
|
|
638
|
-
|
|
834
|
+
// rocksdb engine stats (only for RocksDB-backed databases)
|
|
835
|
+
const rocksDBPeriod = lastRocksDBStatsTime ? now - lastRocksDBStatsTime : undefined;
|
|
836
|
+
storeRocksDBStatsMetrics(analyticsTable, databases, now, rocksDBPeriod);
|
|
837
|
+
pruneRocksDBStatsCache(databases);
|
|
838
|
+
lastRocksDBStatsTime = now;
|
|
639
839
|
// node storage metric (total HDB directory size)
|
|
640
840
|
await storeNodeStorageMetric(analyticsTable);
|
|
641
841
|
}
|
|
@@ -647,6 +847,9 @@ let lastResourceUsage = {
|
|
|
647
847
|
};
|
|
648
848
|
const rest = () => new Promise(setImmediate);
|
|
649
849
|
async function cleanup(AnalyticsTable, expiration) {
|
|
850
|
+
// Skip writes in read-only mode
|
|
851
|
+
if ((0, databases_ts_1.isReadOnlyMode)())
|
|
852
|
+
return;
|
|
650
853
|
const end = Date.now() - expiration;
|
|
651
854
|
for (const key of AnalyticsTable.primaryStore.getKeys({ start: false, end })) {
|
|
652
855
|
AnalyticsTable.primaryStore.remove(key);
|
|
@@ -709,13 +912,19 @@ if (!worker_threads_1.parentPort)
|
|
|
709
912
|
let scheduledTasksRunning;
|
|
710
913
|
function startScheduledTasks() {
|
|
711
914
|
scheduledTasksRunning = true;
|
|
712
|
-
nodeStorageInterval = (0,
|
|
713
|
-
const AGGREGATE_PERIOD = (0,
|
|
915
|
+
nodeStorageInterval = (0, environmentManager_ts_1.get)(hdbTerms_ts_1.CONFIG_PARAMS.ANALYTICS_STORAGEINTERVAL) ?? DEFAULT_STORAGE_INTERVAL;
|
|
916
|
+
const AGGREGATE_PERIOD = (0, environmentManager_ts_1.get)(hdbTerms_ts_1.CONFIG_PARAMS.ANALYTICS_AGGREGATEPERIOD) * 1000;
|
|
714
917
|
if (AGGREGATE_PERIOD) {
|
|
918
|
+
// Clamp raw retention to at least one full aggregation period so raw records
|
|
919
|
+
// are never deleted before they can be rolled up.
|
|
920
|
+
const rawRetentionMs = Math.max((0, environmentManager_ts_1.get)(hdbTerms_ts_1.CONFIG_PARAMS.ANALYTICS_RAWRETENTIONMS) ?? RAW_EXPIRATION, AGGREGATE_PERIOD);
|
|
921
|
+
const aggregateRetentionMs = (0, environmentManager_ts_1.get)(hdbTerms_ts_1.CONFIG_PARAMS.ANALYTICS_AGGREGATERETENTIONMS) ?? AGGREGATE_EXPIRATION;
|
|
715
922
|
setInterval(async () => {
|
|
716
923
|
await aggregation(exports.analyticsDelay, AGGREGATE_PERIOD);
|
|
717
|
-
await cleanup(getRawAnalyticsTable(),
|
|
718
|
-
|
|
924
|
+
await cleanup(getRawAnalyticsTable(), rawRetentionMs);
|
|
925
|
+
// 0 means "keep forever" — skip aggregate cleanup, matching storageInterval: 0 convention
|
|
926
|
+
if (aggregateRetentionMs)
|
|
927
|
+
await cleanup(getAnalyticsTable(), aggregateRetentionMs);
|
|
719
928
|
}, Math.min(AGGREGATE_PERIOD / 2, 0x7fffffff)).unref();
|
|
720
929
|
}
|
|
721
930
|
}
|
|
@@ -723,6 +932,9 @@ let totalBytesProcessed = 0;
|
|
|
723
932
|
const lastUtilizations = new Map();
|
|
724
933
|
const LOG_ANALYTICS = false; // TODO: Make this a config option if we really want this
|
|
725
934
|
function recordAnalytics(message, worker) {
|
|
935
|
+
// Skip writes in read-only mode
|
|
936
|
+
if ((0, databases_ts_1.isReadOnlyMode)())
|
|
937
|
+
return;
|
|
726
938
|
const report = message.report;
|
|
727
939
|
report.threadId = worker?.threadId || worker_threads_1.threadId;
|
|
728
940
|
// Add system information stats as well
|
|
@@ -732,14 +944,14 @@ function recordAnalytics(message, worker) {
|
|
|
732
944
|
}
|
|
733
945
|
}
|
|
734
946
|
report.totalBytesProcessed = totalBytesProcessed;
|
|
735
|
-
if (worker) {
|
|
947
|
+
if (worker && !isBun) {
|
|
736
948
|
report.metrics.push({
|
|
737
949
|
metric: metadata_ts_1.METRIC.UTILIZATION,
|
|
738
950
|
...worker.performance.eventLoopUtilization(lastUtilizations.get(worker)),
|
|
739
951
|
});
|
|
740
952
|
lastUtilizations.set(worker, worker.performance.eventLoopUtilization());
|
|
741
953
|
}
|
|
742
|
-
report.id = (0,
|
|
954
|
+
report.id = (0, commonUtility_ts_1.getNextMonotonicTime)();
|
|
743
955
|
getRawAnalyticsTable().primaryStore.put(report.id, report);
|
|
744
956
|
if (!scheduledTasksRunning)
|
|
745
957
|
startScheduledTasks();
|