@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
package/resources/databases.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
|
-
import { initSync, getHdbBasePath, get as envGet } from '../utility/environment/environmentManager.
|
|
3
|
-
import { INTERNAL_DBIS_NAME } from '../utility/lmdb/terms.
|
|
2
|
+
import { initSync, getHdbBasePath, get as envGet } from '../utility/environment/environmentManager.ts';
|
|
3
|
+
import { INTERNAL_DBIS_NAME } from '../utility/lmdb/terms.ts';
|
|
4
4
|
import { open, compareKeys, type Database, type RootDatabase } from 'lmdb';
|
|
5
5
|
import { join, extname, basename } from 'path';
|
|
6
6
|
import { existsSync, readdirSync, readFileSync, mkdirSync } from 'node:fs';
|
|
@@ -10,22 +10,22 @@ import {
|
|
|
10
10
|
getTransactionAuditStoreBasePath,
|
|
11
11
|
} from '../dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js';
|
|
12
12
|
import { makeTable } from './Table.ts';
|
|
13
|
-
import OpenEnvironmentObject from '../utility/lmdb/OpenEnvironmentObject.
|
|
13
|
+
import OpenEnvironmentObject from '../utility/lmdb/OpenEnvironmentObject.ts';
|
|
14
14
|
import { CONFIG_PARAMS, LEGACY_DATABASES_DIR_NAME, DATABASES_DIR_NAME } from '../utility/hdbTerms.ts';
|
|
15
15
|
import { getConfigPath } from '../config/configUtils.js';
|
|
16
16
|
import { _assignPackageExport } from '../globals.js';
|
|
17
|
-
import { getIndexedValues } from '../utility/lmdb/commonUtility.
|
|
18
|
-
import * as signalling from '../utility/signalling.
|
|
17
|
+
import { getIndexedValues } from '../utility/lmdb/commonUtility.ts';
|
|
18
|
+
import * as signalling from '../utility/signalling.ts';
|
|
19
19
|
import { SchemaEventMsg } from '../server/threads/itc.js';
|
|
20
20
|
import { workerData } from 'worker_threads';
|
|
21
|
-
import harperLogger from '../utility/logging/harper_logger.
|
|
21
|
+
import harperLogger from '../utility/logging/harper_logger.ts';
|
|
22
22
|
const { forComponent } = harperLogger;
|
|
23
23
|
import * as manageThreads from '../server/threads/manageThreads.js';
|
|
24
24
|
import { openAuditStore, readAuditEntry, createAuditEntry, type AuditRecord } from './auditStore.ts';
|
|
25
|
-
import { handleLocalTimeForGets
|
|
25
|
+
import { handleLocalTimeForGets } from './RecordEncoder.ts';
|
|
26
26
|
import { deleteRootBlobPathsForDB } from './blob.ts';
|
|
27
27
|
import { CUSTOM_INDEXES } from './indexes/customIndexes.ts';
|
|
28
|
-
import { OpenDBIObject } from '../utility/lmdb/OpenDBIObject.
|
|
28
|
+
import { OpenDBIObject } from '../utility/lmdb/OpenDBIObject.ts';
|
|
29
29
|
import { RocksDatabase, type RocksDatabaseOptions } from '@harperfast/rocksdb-js';
|
|
30
30
|
import { replayLogs } from './replayLogs.ts';
|
|
31
31
|
import { totalmem } from 'node:os';
|
|
@@ -33,6 +33,36 @@ import { RocksIndexStore } from './RocksIndexStore.ts';
|
|
|
33
33
|
import { when } from '../utility/when.ts';
|
|
34
34
|
import { isProcessRunning } from '../utility/processManagement/processManagement.js';
|
|
35
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Check if Harper is running in read-only mode.
|
|
38
|
+
* Read-only mode can be enabled via:
|
|
39
|
+
* - HARPER_READONLY environment variable (truthy value)
|
|
40
|
+
* - --readonly CLI flag
|
|
41
|
+
* - storage.readOnly config setting
|
|
42
|
+
*/
|
|
43
|
+
let _isReadOnlyMode: boolean | undefined;
|
|
44
|
+
export function isReadOnlyMode(): boolean {
|
|
45
|
+
if (_isReadOnlyMode !== undefined) return _isReadOnlyMode;
|
|
46
|
+
// Check environment variable
|
|
47
|
+
const envReadOnly = process.env.HARPER_READONLY;
|
|
48
|
+
if (envReadOnly && envReadOnly !== '0' && envReadOnly !== 'false') {
|
|
49
|
+
_isReadOnlyMode = true;
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
// Check CLI flag (simple argv check)
|
|
53
|
+
if (process.argv.includes('--readonly') || process.argv.includes('--read-only')) {
|
|
54
|
+
_isReadOnlyMode = true;
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
// Check config setting
|
|
58
|
+
if (envGet(CONFIG_PARAMS.STORAGE_READONLY)) {
|
|
59
|
+
_isReadOnlyMode = true;
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
_isReadOnlyMode = false;
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
|
|
36
66
|
function createOpenDBIObject(dupSort = false, isPrimary = false) {
|
|
37
67
|
return new OpenDBIObject(dupSort, isPrimary);
|
|
38
68
|
}
|
|
@@ -48,9 +78,11 @@ export const NON_REPLICATING_SYSTEM_TABLES = [
|
|
|
48
78
|
'hdb_temp',
|
|
49
79
|
'hdb_certificate',
|
|
50
80
|
'hdb_raw_analytics',
|
|
81
|
+
'hdb_model_calls',
|
|
51
82
|
'hdb_session_will',
|
|
52
83
|
'hdb_job',
|
|
53
84
|
'hdb_info',
|
|
85
|
+
'mcp_session',
|
|
54
86
|
];
|
|
55
87
|
|
|
56
88
|
export type Table = ReturnType<typeof makeTable> & {
|
|
@@ -80,6 +112,10 @@ interface LMDBRootDatabase extends RootDatabase {
|
|
|
80
112
|
needsDeletion?: boolean;
|
|
81
113
|
path?: string;
|
|
82
114
|
status?: 'open' | 'closed';
|
|
115
|
+
store: any;
|
|
116
|
+
retryRisk?: number;
|
|
117
|
+
flushed: Promise<boolean>;
|
|
118
|
+
rootStore?: LMDBRootDatabase;
|
|
83
119
|
}
|
|
84
120
|
|
|
85
121
|
interface RocksDatabaseEx extends RocksDatabase {
|
|
@@ -95,6 +131,10 @@ interface RocksRootDatabase extends RocksDatabaseEx {
|
|
|
95
131
|
auditStore?: RocksDatabaseEx;
|
|
96
132
|
databaseName?: string;
|
|
97
133
|
dbisDb?: RocksDatabaseEx;
|
|
134
|
+
store: any;
|
|
135
|
+
retryRisk?: number;
|
|
136
|
+
flushed: Promise<boolean>;
|
|
137
|
+
rootStore?: RocksRootDatabase;
|
|
98
138
|
}
|
|
99
139
|
|
|
100
140
|
export type RootDatabaseKind = LMDBRootDatabase | RocksRootDatabase;
|
|
@@ -112,6 +152,10 @@ export const databases: Databases = Object.create(null);
|
|
|
112
152
|
|
|
113
153
|
function openRocksDatabase(path: string, options: RocksDatabaseOptions & { dupSort?: boolean }) {
|
|
114
154
|
options.disableWAL ??= true;
|
|
155
|
+
// Apply read-only mode if enabled
|
|
156
|
+
if (isReadOnlyMode()) {
|
|
157
|
+
options.readOnly = true;
|
|
158
|
+
}
|
|
115
159
|
// Read RocksDB memory config lazily so env/CLI overrides applied after module load are
|
|
116
160
|
// respected. The block cache falls back to 25% of constrained (cgroup) memory when not
|
|
117
161
|
// configured; the WriteBufferManager is opt-in (0 disables).
|
|
@@ -139,25 +183,29 @@ function openRocksDatabase(path: string, options: RocksDatabaseOptions & { dupSo
|
|
|
139
183
|
...(typeof writeBufferManagerAllowStall === 'boolean' ? { writeBufferManagerAllowStall } : {}),
|
|
140
184
|
});
|
|
141
185
|
if (!existsSync(path)) {
|
|
186
|
+
// Don't create directories in read-only mode
|
|
187
|
+
if (isReadOnlyMode()) {
|
|
188
|
+
throw new Error(`Database cannot be created in read-only mode: ${path}`);
|
|
189
|
+
}
|
|
142
190
|
mkdirSync(path, { recursive: true });
|
|
143
191
|
}
|
|
144
192
|
let db: RocksRootDatabase;
|
|
145
193
|
if (options.dupSort) {
|
|
146
|
-
db = new RocksIndexStore(path, options).open() as
|
|
194
|
+
db = new RocksIndexStore(path, options).open() as any;
|
|
147
195
|
} else {
|
|
148
|
-
db = RocksDatabase.open(path, options) as
|
|
196
|
+
db = RocksDatabase.open(path, options) as any;
|
|
149
197
|
// the RocksDB put and remove return promises, which masks thrown errors in non-awaiting calls to put/remove,
|
|
150
198
|
// making them unsafe to replace LMDB methods, which will synchronously throw errors if there is a problem
|
|
151
|
-
db.put = db.putSync;
|
|
152
|
-
db.remove = db.removeSync;
|
|
153
|
-
db.encoder.name = options.name;
|
|
199
|
+
db.put = db.putSync as any;
|
|
200
|
+
db.remove = db.removeSync as any;
|
|
201
|
+
(db.encoder as any).name = options.name;
|
|
154
202
|
}
|
|
155
203
|
db.env = {};
|
|
156
204
|
return db;
|
|
157
205
|
}
|
|
158
206
|
|
|
159
207
|
const lmdbDatabaseEnvs = new Map<string, LMDBRootDatabase>();
|
|
160
|
-
const rocksdbDatabaseEnvs = new Map<string,
|
|
208
|
+
const rocksdbDatabaseEnvs = new Map<string, RocksRootDatabase>();
|
|
161
209
|
|
|
162
210
|
// set the following in both global and exports
|
|
163
211
|
_assignPackageExport('databases', databases);
|
|
@@ -206,9 +254,7 @@ export function getDatabases(): Databases {
|
|
|
206
254
|
process.env.STORAGE_PATH ||
|
|
207
255
|
getConfigPath(CONFIG_PARAMS.STORAGE_PATH) ||
|
|
208
256
|
(databasePath && (existsSync(databasePath) ? databasePath : join(getHdbBasePath(), LEGACY_DATABASES_DIR_NAME)));
|
|
209
|
-
if (
|
|
210
|
-
|
|
211
|
-
if (existsSync(databasePath)) {
|
|
257
|
+
if (databasePath && existsSync(databasePath)) {
|
|
212
258
|
// First load all the databases from our main database folder
|
|
213
259
|
// TODO: Load any databases defined with explicit storage paths from the config
|
|
214
260
|
for (const databaseEntry of readdirSync(databasePath, { withFileTypes: true })) {
|
|
@@ -359,13 +405,13 @@ export function readMetaDb(
|
|
|
359
405
|
auditPath?: string,
|
|
360
406
|
isLegacy?: boolean
|
|
361
407
|
) {
|
|
362
|
-
const envInit = new OpenEnvironmentObject(path,
|
|
408
|
+
const envInit = new OpenEnvironmentObject(path, isReadOnlyMode());
|
|
363
409
|
try {
|
|
364
410
|
let rootStore = lmdbDatabaseEnvs.get(path);
|
|
365
411
|
if (rootStore) {
|
|
366
412
|
rootStore.needsDeletion = false;
|
|
367
413
|
} else {
|
|
368
|
-
rootStore = open(envInit);
|
|
414
|
+
rootStore = open(envInit) as any;
|
|
369
415
|
lmdbDatabaseEnvs.set(path, rootStore);
|
|
370
416
|
}
|
|
371
417
|
|
|
@@ -387,14 +433,17 @@ function readRocksMetaDb(path: string, defaultTable?: string, databaseName: stri
|
|
|
387
433
|
}
|
|
388
434
|
}
|
|
389
435
|
|
|
390
|
-
let rootStore:
|
|
436
|
+
let rootStore: RocksRootDatabase | undefined = rocksdbDatabaseEnvs.get(path);
|
|
391
437
|
if (rootStore) {
|
|
392
438
|
initStores(path, rootStore, databaseName, defaultTable);
|
|
393
439
|
} else {
|
|
394
|
-
rootStore = openRocksDatabase(path, { disableWAL: false, enableStats: true }) as
|
|
440
|
+
rootStore = openRocksDatabase(path, { disableWAL: false, enableStats: true }) as any;
|
|
395
441
|
rocksdbDatabaseEnvs.set(path, rootStore);
|
|
396
442
|
initStores(path, rootStore, databaseName, defaultTable);
|
|
397
|
-
|
|
443
|
+
// Skip transaction log replay in read-only mode
|
|
444
|
+
if (!isReadOnlyMode()) {
|
|
445
|
+
replayLogs(rootStore, databases[databaseName]);
|
|
446
|
+
}
|
|
398
447
|
}
|
|
399
448
|
return rootStore;
|
|
400
449
|
} catch (error) {
|
|
@@ -411,7 +460,7 @@ function initStores(
|
|
|
411
460
|
auditPath?: string,
|
|
412
461
|
isLegacy?: boolean
|
|
413
462
|
) {
|
|
414
|
-
const envInit = new OpenEnvironmentObject(path,
|
|
463
|
+
const envInit = new OpenEnvironmentObject(path, isReadOnlyMode());
|
|
415
464
|
const internalDbiInit = createOpenDBIObject(false);
|
|
416
465
|
let attributesDbi = rootStore.dbisDb;
|
|
417
466
|
if (!attributesDbi) {
|
|
@@ -420,9 +469,9 @@ function initStores(
|
|
|
420
469
|
...internalDbiInit,
|
|
421
470
|
disableWAL: false,
|
|
422
471
|
name: INTERNAL_DBIS_NAME,
|
|
423
|
-
}) as RocksDatabaseEx;
|
|
472
|
+
} as any) as RocksDatabaseEx;
|
|
424
473
|
} else {
|
|
425
|
-
attributesDbi = rootStore.openDB(INTERNAL_DBIS_NAME, internalDbiInit);
|
|
474
|
+
attributesDbi = rootStore.openDB(INTERNAL_DBIS_NAME, internalDbiInit as any);
|
|
426
475
|
}
|
|
427
476
|
rootStore.dbisDb = attributesDbi;
|
|
428
477
|
}
|
|
@@ -441,7 +490,7 @@ function initStores(
|
|
|
441
490
|
encode: (auditRecord: AuditRecord) => createAuditEntry(auditRecord),
|
|
442
491
|
decode: (encoding: Buffer) => readAuditEntry(encoding),
|
|
443
492
|
},
|
|
444
|
-
});
|
|
493
|
+
}) as any;
|
|
445
494
|
}
|
|
446
495
|
auditStore.isLegacy = true;
|
|
447
496
|
}
|
|
@@ -452,7 +501,7 @@ function initStores(
|
|
|
452
501
|
|
|
453
502
|
const tables = ensureDB(databaseName);
|
|
454
503
|
const definedTables = tables[DEFINED_TABLES];
|
|
455
|
-
definedTables.rootStore = rootStore;
|
|
504
|
+
(definedTables as any).rootStore = rootStore;
|
|
456
505
|
const tablesToLoad = new Map<string, any>();
|
|
457
506
|
|
|
458
507
|
for (const result of attributesDbi.getRange({ start: false })) {
|
|
@@ -519,16 +568,16 @@ function initStores(
|
|
|
519
568
|
} else {
|
|
520
569
|
tableId = primaryAttribute.tableId;
|
|
521
570
|
if (tableId) {
|
|
522
|
-
if (tableId >= (attributesDbi.getSync(NEXT_TABLE_ID) || 0)) {
|
|
523
|
-
attributesDbi.putSync(NEXT_TABLE_ID, tableId + 1);
|
|
571
|
+
if (tableId >= ((attributesDbi as any).getSync(NEXT_TABLE_ID) || 0)) {
|
|
572
|
+
(attributesDbi as any).putSync(NEXT_TABLE_ID, tableId + 1);
|
|
524
573
|
logger.info(`Updating next table id (it was out of sync) to ${tableId + 1} for ${tableName}`);
|
|
525
574
|
}
|
|
526
575
|
} else {
|
|
527
|
-
primaryAttribute.tableId = tableId = attributesDbi.getSync(NEXT_TABLE_ID);
|
|
576
|
+
primaryAttribute.tableId = tableId = (attributesDbi as any).getSync(NEXT_TABLE_ID);
|
|
528
577
|
if (!tableId) tableId = 1;
|
|
529
578
|
logger.debug(`Table {tableName} missing an id, assigning {tableId}`);
|
|
530
|
-
attributesDbi.putSync(NEXT_TABLE_ID, tableId + 1);
|
|
531
|
-
attributesDbi.putSync(primaryAttribute.key, primaryAttribute);
|
|
579
|
+
(attributesDbi as any).putSync(NEXT_TABLE_ID, tableId + 1);
|
|
580
|
+
(attributesDbi as any).putSync(primaryAttribute.key, primaryAttribute);
|
|
532
581
|
}
|
|
533
582
|
const dbiInit = createOpenDBIObject(!primaryAttribute.isPrimaryKey, primaryAttribute.isPrimaryKey);
|
|
534
583
|
dbiInit.compression = primaryAttribute.compression;
|
|
@@ -537,13 +586,19 @@ function initStores(
|
|
|
537
586
|
envGet(CONFIG_PARAMS.STORAGE_COMPRESSION_THRESHOLD) || DEFAULT_COMPRESSION_THRESHOLD; // this is the only thing that can change;
|
|
538
587
|
dbiInit.compression.threshold = compressionThreshold;
|
|
539
588
|
}
|
|
589
|
+
// per-table override of the storage.randomAccessFields default (see OpenDBIObject)
|
|
590
|
+
if (typeof primaryAttribute.randomAccessFields === 'boolean')
|
|
591
|
+
dbiInit.randomAccessStructure = primaryAttribute.randomAccessFields;
|
|
540
592
|
if (rootStore instanceof RocksDatabase) {
|
|
541
593
|
primaryStore = handleLocalTimeForGets(
|
|
542
|
-
openRocksDatabase(rootStore.path, { ...dbiInit, name: primaryAttribute.key }),
|
|
594
|
+
openRocksDatabase(rootStore.path, { ...dbiInit, name: primaryAttribute.key } as any),
|
|
543
595
|
rootStore
|
|
544
596
|
);
|
|
545
597
|
} else {
|
|
546
|
-
primaryStore = handleLocalTimeForGets(
|
|
598
|
+
primaryStore = handleLocalTimeForGets(
|
|
599
|
+
(rootStore as any).openDB(primaryAttribute.key, dbiInit as any),
|
|
600
|
+
rootStore
|
|
601
|
+
);
|
|
547
602
|
}
|
|
548
603
|
rootStore.databaseName = databaseName;
|
|
549
604
|
primaryStore.tableId = tableId;
|
|
@@ -658,10 +713,14 @@ interface TableDefinition {
|
|
|
658
713
|
sealed?: boolean;
|
|
659
714
|
splitSegments?: boolean;
|
|
660
715
|
replicate?: boolean;
|
|
716
|
+
randomAccessFields?: boolean;
|
|
661
717
|
trackDeletes?: boolean;
|
|
662
718
|
attributes: any[];
|
|
663
719
|
schemaDefined?: boolean;
|
|
664
720
|
origin?: string;
|
|
721
|
+
description?: string;
|
|
722
|
+
properties?: Record<string, any>;
|
|
723
|
+
hidden?: boolean;
|
|
665
724
|
}
|
|
666
725
|
/**
|
|
667
726
|
* Ensure that we have this database object (that holds a set of tables) set up
|
|
@@ -712,8 +771,8 @@ export function database({ database: databaseName, table: tableName }) {
|
|
|
712
771
|
getDatabases();
|
|
713
772
|
ensureDB(databaseName);
|
|
714
773
|
const definedDatabase = definedDatabases.get(databaseName);
|
|
715
|
-
if (definedDatabase?.rootStore) {
|
|
716
|
-
return definedDatabase.rootStore;
|
|
774
|
+
if ((definedDatabase as any)?.rootStore) {
|
|
775
|
+
return (definedDatabase as any).rootStore;
|
|
717
776
|
}
|
|
718
777
|
const databaseConfig = envGet(CONFIG_PARAMS.DATABASES) || {};
|
|
719
778
|
if (process.env.SCHEMAS_DATA_PATH) {
|
|
@@ -728,9 +787,17 @@ export function database({ database: databaseName, table: tableName }) {
|
|
|
728
787
|
databaseConfig[databaseName]?.path ||
|
|
729
788
|
process.env.STORAGE_PATH ||
|
|
730
789
|
getConfigPath(CONFIG_PARAMS.STORAGE_PATH) ||
|
|
731
|
-
(existsSync(join(hdbBasePath, DATABASES_DIR_NAME))
|
|
790
|
+
(hdbBasePath && existsSync(join(hdbBasePath, DATABASES_DIR_NAME))
|
|
732
791
|
? join(hdbBasePath, DATABASES_DIR_NAME)
|
|
733
|
-
:
|
|
792
|
+
: hdbBasePath
|
|
793
|
+
? join(hdbBasePath, LEGACY_DATABASES_DIR_NAME)
|
|
794
|
+
: undefined);
|
|
795
|
+
|
|
796
|
+
if (!databasePath) {
|
|
797
|
+
throw new Error(
|
|
798
|
+
`Unable to determine database storage path. Ensure STORAGE_PATH, HDB_ROOT, or a valid config path is set.`
|
|
799
|
+
);
|
|
800
|
+
}
|
|
734
801
|
|
|
735
802
|
let rootStore: RootDatabaseKind;
|
|
736
803
|
const useRocksdb = (process.env.HARPER_STORAGE_ENGINE || envGet(CONFIG_PARAMS.STORAGE_ENGINE)) !== 'lmdb';
|
|
@@ -741,23 +808,23 @@ export function database({ database: databaseName, table: tableName }) {
|
|
|
741
808
|
rootStore = openRocksDatabase(path, {
|
|
742
809
|
disableWAL: false,
|
|
743
810
|
enableStats: true,
|
|
744
|
-
});
|
|
745
|
-
rocksdbDatabaseEnvs.set(path, rootStore);
|
|
811
|
+
}) as any;
|
|
812
|
+
rocksdbDatabaseEnvs.set(path, rootStore as any);
|
|
746
813
|
}
|
|
747
814
|
} else {
|
|
748
815
|
const path = join(databasePath, `${tablePath ? tableName : databaseName}.mdb`);
|
|
749
816
|
rootStore = lmdbDatabaseEnvs.get(path);
|
|
750
817
|
if (!rootStore || rootStore.status === 'closed') {
|
|
751
818
|
// TODO: validate database name
|
|
752
|
-
const envInit = new OpenEnvironmentObject(path,
|
|
753
|
-
rootStore = open(envInit);
|
|
754
|
-
lmdbDatabaseEnvs.set(path, rootStore);
|
|
819
|
+
const envInit = new OpenEnvironmentObject(path, isReadOnlyMode());
|
|
820
|
+
rootStore = open(envInit) as any;
|
|
821
|
+
lmdbDatabaseEnvs.set(path, rootStore as any);
|
|
755
822
|
}
|
|
756
823
|
}
|
|
757
824
|
if (!rootStore.auditStore) {
|
|
758
|
-
rootStore.auditStore = openAuditStore(rootStore);
|
|
825
|
+
rootStore.auditStore = openAuditStore(rootStore as any);
|
|
759
826
|
}
|
|
760
|
-
if (definedDatabase) definedDatabase.rootStore = rootStore;
|
|
827
|
+
if (definedDatabase) (definedDatabase as any).rootStore = rootStore;
|
|
761
828
|
return rootStore;
|
|
762
829
|
}
|
|
763
830
|
/**
|
|
@@ -818,11 +885,13 @@ function openIndex(dbiKey: string, rootStore: RootDatabaseKind, attribute: any)
|
|
|
818
885
|
const objectStorage =
|
|
819
886
|
attribute.isPrimaryKey || (attribute.indexed.type && CUSTOM_INDEXES[attribute.indexed.type]?.useObjectStore);
|
|
820
887
|
const dbiInit = createOpenDBIObject(!objectStorage, objectStorage);
|
|
821
|
-
// Custom-index object stores (e.g. HNSW vector graphs)
|
|
822
|
-
//
|
|
823
|
-
//
|
|
888
|
+
// Custom-index object stores (e.g. HNSW vector graphs) hold fixed-shape internal nodes —
|
|
889
|
+
// numeric-keyed per-level connection arrays and quantized bins — that rely on random-access
|
|
890
|
+
// struct encoding. Keep them in struct mode regardless of the table's storage.randomAccessFields
|
|
891
|
+
// setting: their node shapes are controlled, so the wide/variably-typed OOM + divergence risks
|
|
892
|
+
// that motivate the table-level default-off don't apply, and disabling structs corrupts the graph.
|
|
824
893
|
if (attribute.indexed?.type && CUSTOM_INDEXES[attribute.indexed.type]?.useObjectStore) {
|
|
825
|
-
dbiInit.
|
|
894
|
+
dbiInit.randomAccessStructure = true;
|
|
826
895
|
}
|
|
827
896
|
let dbi:
|
|
828
897
|
| LMDBDatabase
|
|
@@ -833,10 +902,10 @@ function openIndex(dbiKey: string, rootStore: RootDatabaseKind, attribute: any)
|
|
|
833
902
|
rootStore?: RocksRootDatabase;
|
|
834
903
|
});
|
|
835
904
|
if (rootStore instanceof RocksDatabase) {
|
|
836
|
-
dbi = openRocksDatabase(rootStore.path, { ...dbiInit, name: dbiKey });
|
|
837
|
-
dbi.rootStore = rootStore;
|
|
905
|
+
dbi = openRocksDatabase(rootStore.path, { ...dbiInit, name: dbiKey } as any) as any;
|
|
906
|
+
(dbi as any).rootStore = rootStore;
|
|
838
907
|
} else {
|
|
839
|
-
dbi = rootStore.openDB(dbiKey, dbiInit);
|
|
908
|
+
dbi = (rootStore as any).openDB(dbiKey, dbiInit as any);
|
|
840
909
|
}
|
|
841
910
|
if (attribute.indexed.type) {
|
|
842
911
|
const CustomIndex = CUSTOM_INDEXES[attribute.indexed.type];
|
|
@@ -875,9 +944,13 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
875
944
|
sealed,
|
|
876
945
|
splitSegments,
|
|
877
946
|
replicate,
|
|
947
|
+
randomAccessFields,
|
|
878
948
|
trackDeletes,
|
|
879
949
|
schemaDefined,
|
|
880
950
|
origin,
|
|
951
|
+
description,
|
|
952
|
+
properties,
|
|
953
|
+
hidden,
|
|
881
954
|
} = tableDefinition;
|
|
882
955
|
if (!databaseName) databaseName = DEFAULT_DATABASE_NAME;
|
|
883
956
|
const rootStore = database({ database: databaseName, table: tableName });
|
|
@@ -911,11 +984,16 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
911
984
|
// it table already exists, get the split segments setting
|
|
912
985
|
if (splitSegments == undefined) splitSegments = Table.splitSegments;
|
|
913
986
|
Table.attributes.splice(0, Table.attributes.length, ...attributes);
|
|
987
|
+
// Refresh class-level schema metadata to track docstring/directive changes across reloads.
|
|
988
|
+
Table.description = description;
|
|
989
|
+
Table.properties = properties;
|
|
990
|
+
Table.hidden = hidden;
|
|
914
991
|
} else {
|
|
915
992
|
const auditStore = rootStore.auditStore;
|
|
916
993
|
primaryKeyAttribute = attributes.find((attribute) => attribute.isPrimaryKey) || {};
|
|
917
994
|
primaryKey = primaryKeyAttribute.name;
|
|
918
995
|
primaryKeyAttribute.isPrimaryKey = true;
|
|
996
|
+
primaryKeyAttribute.is_hash_attribute = true; // backward-compat: harperdb@4.x reads this field to open the DBI with correct flags
|
|
919
997
|
primaryKeyAttribute.schemaDefined = schemaDefined;
|
|
920
998
|
// can't change compression after the fact (except threshold), so save only when we create the table
|
|
921
999
|
primaryKeyAttribute.compression = getDefaultCompression();
|
|
@@ -927,6 +1005,13 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
927
1005
|
primaryKeyAttribute.splitSegments = splitSegments; // always default to not splitting segments going forward
|
|
928
1006
|
if (typeof sealed === 'boolean') primaryKeyAttribute.sealed = sealed;
|
|
929
1007
|
if (typeof replicate === 'boolean') primaryKeyAttribute.replicate = replicate;
|
|
1008
|
+
// An explicit directive PINS this table's encoding: we persist the boolean, so later changes
|
|
1009
|
+
// to the global storage.randomAccessFields default never affect this table. Tables WITHOUT the
|
|
1010
|
+
// directive are intentionally not persisted here — they follow the current global default on
|
|
1011
|
+
// each open (a runtime lever to flip encoding fleet-wide). Switching either way is safe: the
|
|
1012
|
+
// struct READ hook always stays on and struct (0x20-0x3f) vs classic-record (0x40-0x7f) bytes
|
|
1013
|
+
// are disjoint, so already-written records still decode; only the encoding of NEW writes changes.
|
|
1014
|
+
if (typeof randomAccessFields === 'boolean') primaryKeyAttribute.randomAccessFields = randomAccessFields;
|
|
930
1015
|
if (origin) {
|
|
931
1016
|
if (!primaryKeyAttribute.origins) primaryKeyAttribute.origins = [origin];
|
|
932
1017
|
else if (!primaryKeyAttribute.origins.includes(origin)) primaryKeyAttribute.origins.push(origin);
|
|
@@ -934,20 +1019,23 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
934
1019
|
logger.trace(`${tableName} table loading, opening primary store`);
|
|
935
1020
|
const dbiInit = createOpenDBIObject(false, true);
|
|
936
1021
|
dbiInit.compression = primaryKeyAttribute.compression;
|
|
1022
|
+
// per-table override of the storage.randomAccessFields default (see OpenDBIObject)
|
|
1023
|
+
if (typeof primaryKeyAttribute.randomAccessFields === 'boolean')
|
|
1024
|
+
dbiInit.randomAccessStructure = primaryKeyAttribute.randomAccessFields;
|
|
937
1025
|
const dbiName = tableName + '/';
|
|
938
1026
|
|
|
939
1027
|
if (rootStore instanceof RocksDatabase) {
|
|
940
|
-
attributesDbi = rootStore.dbisDb = openRocksDatabase(rootStore.path, {
|
|
1028
|
+
attributesDbi = (rootStore as any).dbisDb = openRocksDatabase(rootStore.path, {
|
|
941
1029
|
...internalDbiInit,
|
|
942
1030
|
disableWAL: false,
|
|
943
1031
|
name: INTERNAL_DBIS_NAME,
|
|
944
|
-
});
|
|
1032
|
+
} as any);
|
|
945
1033
|
} else {
|
|
946
|
-
attributesDbi = rootStore.dbisDb = rootStore.openDB(INTERNAL_DBIS_NAME, internalDbiInit);
|
|
1034
|
+
attributesDbi = (rootStore as any).dbisDb = (rootStore as any).openDB(INTERNAL_DBIS_NAME, internalDbiInit as any);
|
|
947
1035
|
}
|
|
948
1036
|
|
|
949
1037
|
exclusiveLock(); // get an exclusive lock on the database so we can verify that we are the only thread creating the table (and assigning the table id)
|
|
950
|
-
if (attributesDbi.getSync(dbiName)) {
|
|
1038
|
+
if ((attributesDbi as any).getSync(dbiName)) {
|
|
951
1039
|
// table was created while we were setting up
|
|
952
1040
|
if (releaseExclusiveLock) releaseExclusiveLock();
|
|
953
1041
|
resetDatabases();
|
|
@@ -956,9 +1044,9 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
956
1044
|
|
|
957
1045
|
let primaryStore;
|
|
958
1046
|
if (rootStore instanceof RocksDatabase) {
|
|
959
|
-
primaryStore = openRocksDatabase(rootStore.path, { ...dbiInit, name: dbiName });
|
|
1047
|
+
primaryStore = openRocksDatabase(rootStore.path, { ...dbiInit, name: dbiName } as any);
|
|
960
1048
|
} else {
|
|
961
|
-
primaryStore = rootStore.openDB(dbiName, dbiInit);
|
|
1049
|
+
primaryStore = (rootStore as any).openDB(dbiName, dbiInit as any);
|
|
962
1050
|
}
|
|
963
1051
|
primaryStore = handleLocalTimeForGets(primaryStore, rootStore);
|
|
964
1052
|
rootStore.databaseName = databaseName;
|
|
@@ -990,6 +1078,9 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
990
1078
|
attributes,
|
|
991
1079
|
schemaDefined,
|
|
992
1080
|
dbisDB: attributesDbi,
|
|
1081
|
+
description,
|
|
1082
|
+
properties,
|
|
1083
|
+
hidden,
|
|
993
1084
|
})
|
|
994
1085
|
);
|
|
995
1086
|
Table.schemaVersion = 1;
|
|
@@ -1000,15 +1091,15 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
1000
1091
|
const indices = Table.indices;
|
|
1001
1092
|
if (!attributesDbi) {
|
|
1002
1093
|
if (rootStore instanceof RocksDatabase) {
|
|
1003
|
-
rootStore.dbisDb = openRocksDatabase(rootStore.path, {
|
|
1094
|
+
(rootStore as any).dbisDb = openRocksDatabase(rootStore.path, {
|
|
1004
1095
|
...internalDbiInit,
|
|
1005
1096
|
disableWAL: false,
|
|
1006
1097
|
name: INTERNAL_DBIS_NAME,
|
|
1007
|
-
});
|
|
1098
|
+
} as any);
|
|
1008
1099
|
} else {
|
|
1009
|
-
rootStore.dbisDb = rootStore.openDB(INTERNAL_DBIS_NAME, internalDbiInit);
|
|
1100
|
+
(rootStore as any).dbisDb = (rootStore as any).openDB(INTERNAL_DBIS_NAME, internalDbiInit as any);
|
|
1010
1101
|
}
|
|
1011
|
-
attributesDbi = rootStore.dbisDb;
|
|
1102
|
+
attributesDbi = (rootStore as any).dbisDb;
|
|
1012
1103
|
}
|
|
1013
1104
|
Table.dbisDB = attributesDbi;
|
|
1014
1105
|
const indicesToRemove = [];
|
|
@@ -1058,7 +1149,7 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
1058
1149
|
) {
|
|
1059
1150
|
const updatedPrimaryAttribute = { ...attributeDescriptor };
|
|
1060
1151
|
if (typeof audit === 'boolean') {
|
|
1061
|
-
if (audit) Table.enableAuditing(
|
|
1152
|
+
if (audit) Table.enableAuditing();
|
|
1062
1153
|
updatedPrimaryAttribute.audit = audit;
|
|
1063
1154
|
}
|
|
1064
1155
|
if (expiration) updatedPrimaryAttribute.expiration = +expiration;
|
|
@@ -1076,31 +1167,51 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
1076
1167
|
|
|
1077
1168
|
// note that non-indexed attributes do not need a dbi
|
|
1078
1169
|
if (attributeDescriptor?.attribute && !attributeDescriptor.name) attributeDescriptor.indexed = true; // legacy descriptor
|
|
1079
|
-
|
|
1170
|
+
// Some index options affect only search, not the stored structure (e.g. HNSW's
|
|
1171
|
+
// efConstructionSearch). Changing those should persist the new metadata but NOT trigger a
|
|
1172
|
+
// reindex. A custom index declares such keys via a static `searchOnlyOptions`.
|
|
1173
|
+
const indexType = attribute.indexed && typeof attribute.indexed === 'object' ? attribute.indexed.type : undefined;
|
|
1174
|
+
const searchOnlyOptions: string[] = (indexType && CUSTOM_INDEXES[indexType]?.searchOnlyOptions) || [];
|
|
1175
|
+
const stripSearchOnly = (indexed: any): any => {
|
|
1176
|
+
if (!indexed || typeof indexed !== 'object' || searchOnlyOptions.length === 0) return indexed;
|
|
1177
|
+
const copy = { ...indexed };
|
|
1178
|
+
for (const key of searchOnlyOptions) delete copy[key];
|
|
1179
|
+
return copy;
|
|
1180
|
+
};
|
|
1181
|
+
const commonChanged =
|
|
1080
1182
|
!attributeDescriptor ||
|
|
1081
1183
|
attributeDescriptor.type !== attribute.type ||
|
|
1082
|
-
JSON.stringify(attributeDescriptor.indexed) !== JSON.stringify(attribute.indexed) ||
|
|
1083
1184
|
attributeDescriptor.nullable !== attribute.nullable ||
|
|
1084
1185
|
attributeDescriptor.version !== attribute.version ||
|
|
1085
1186
|
attributeDescriptor.enumerable !== attribute.enumerable ||
|
|
1086
1187
|
JSON.stringify(attributeDescriptor.properties) !== JSON.stringify(attribute.properties) ||
|
|
1087
|
-
JSON.stringify(attributeDescriptor.elements) !== JSON.stringify(attribute.elements)
|
|
1188
|
+
JSON.stringify(attributeDescriptor.elements) !== JSON.stringify(attribute.elements) ||
|
|
1189
|
+
// Include `embed` so a source/model change refreshes the embed registry.
|
|
1190
|
+
JSON.stringify(attributeDescriptor.embed) !== JSON.stringify(attribute.embed);
|
|
1191
|
+
// any metadata difference (drives persistence)
|
|
1192
|
+
const changed =
|
|
1193
|
+
commonChanged || JSON.stringify(attributeDescriptor?.indexed) !== JSON.stringify(attribute.indexed);
|
|
1194
|
+
// structure-affecting difference (drives reindex) — ignores search-only option changes
|
|
1195
|
+
const structurallyChanged =
|
|
1196
|
+
commonChanged ||
|
|
1197
|
+
JSON.stringify(stripSearchOnly(attributeDescriptor?.indexed)) !==
|
|
1198
|
+
JSON.stringify(stripSearchOnly(attribute.indexed));
|
|
1088
1199
|
if (attribute.indexed) {
|
|
1089
1200
|
const dbi = openIndex(dbiKey, rootStore, attribute);
|
|
1090
1201
|
if (
|
|
1091
1202
|
changed ||
|
|
1092
|
-
attributeDescriptor
|
|
1093
|
-
(attributeDescriptor
|
|
1094
|
-
attributeDescriptor
|
|
1203
|
+
attributeDescriptor?.indexingFailed ||
|
|
1204
|
+
(attributeDescriptor?.indexingPID && attributeDescriptor?.indexingPID !== process.pid) ||
|
|
1205
|
+
attributeDescriptor?.restartNumber < workerData?.restartNumber
|
|
1095
1206
|
) {
|
|
1096
1207
|
hasChanges = true;
|
|
1097
1208
|
exclusiveLock();
|
|
1098
1209
|
attributeDescriptor = attributesDbi.getSync(dbiKey);
|
|
1099
1210
|
if (
|
|
1100
|
-
|
|
1101
|
-
attributeDescriptor
|
|
1102
|
-
(attributeDescriptor
|
|
1103
|
-
attributeDescriptor
|
|
1211
|
+
structurallyChanged ||
|
|
1212
|
+
attributeDescriptor?.indexingFailed ||
|
|
1213
|
+
(attributeDescriptor?.indexingPID && attributeDescriptor?.indexingPID !== process.pid) ||
|
|
1214
|
+
attributeDescriptor?.restartNumber < workerData?.restartNumber
|
|
1104
1215
|
) {
|
|
1105
1216
|
hasChanges = true;
|
|
1106
1217
|
if (attribute.indexNulls === undefined) attribute.indexNulls = true;
|
|
@@ -1118,6 +1229,14 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
1118
1229
|
// we only set indexing nulls to true if new or reindexing, we can't have partial indexing of null
|
|
1119
1230
|
attributesToIndex.push(attribute);
|
|
1120
1231
|
}
|
|
1232
|
+
} else if (attributeDescriptor.indexingPID) {
|
|
1233
|
+
// Metadata-only change (e.g. a search-only option like efConstructionSearch) while a
|
|
1234
|
+
// backfill is in progress: we did NOT re-trigger indexing, so carry over the in-progress
|
|
1235
|
+
// indexing state instead of persisting a descriptor that looks complete — otherwise other
|
|
1236
|
+
// workers / a reload would treat the still-partial index as ready and return incomplete results.
|
|
1237
|
+
attribute.indexingPID = attributeDescriptor.indexingPID;
|
|
1238
|
+
attribute.lastIndexedKey = attributeDescriptor.lastIndexedKey;
|
|
1239
|
+
if (attributeDescriptor.indexingFailed) attribute.indexingFailed = attributeDescriptor.indexingFailed;
|
|
1121
1240
|
}
|
|
1122
1241
|
attributesDbi.put(dbiKey, attribute);
|
|
1123
1242
|
}
|
|
@@ -1228,6 +1347,10 @@ async function runIndexing(Table, attributes, indicesToRemove) {
|
|
|
1228
1347
|
// TODO: Do we ever need to interrupt due to a schema change that was not a restart?
|
|
1229
1348
|
//if (Table.schemaVersion !== schemaVersion) return; // break out if there are any schema changes and let someone else pick it up
|
|
1230
1349
|
outstanding++;
|
|
1350
|
+
// Custom indexes (e.g. HNSW) index synchronously and never raise `outstanding`, so the
|
|
1351
|
+
// outstanding-based yield below never fires for them. Track that this row did synchronous
|
|
1352
|
+
// indexing work so we can still yield the event loop after it.
|
|
1353
|
+
let didSynchronousIndexing = false;
|
|
1231
1354
|
// every index operation needs to be guarded by the version still be the same. If it has already changed before
|
|
1232
1355
|
// we index, that's fine because indexing is idempotent, we can just put the same values again. If it changes
|
|
1233
1356
|
// during the indexing, the indexing here will fail. This is also fine because it means the other thread will have
|
|
@@ -1241,6 +1364,7 @@ async function runIndexing(Table, attributes, indicesToRemove) {
|
|
|
1241
1364
|
const value = record && (resolver ? resolver(record) : record[property]);
|
|
1242
1365
|
if (index.customIndex) {
|
|
1243
1366
|
index.customIndex.index(key, value);
|
|
1367
|
+
didSynchronousIndexing = true;
|
|
1244
1368
|
continue;
|
|
1245
1369
|
}
|
|
1246
1370
|
const values = getIndexedValues(value, index.indexNulls);
|
|
@@ -1279,7 +1403,9 @@ async function runIndexing(Table, attributes, indicesToRemove) {
|
|
|
1279
1403
|
if (interrupted) return;
|
|
1280
1404
|
}
|
|
1281
1405
|
if (outstanding > MAX_OUTSTANDING_INDEXING) await lastResolution;
|
|
1282
|
-
else if (outstanding > MIN_OUTSTANDING_INDEXING)
|
|
1406
|
+
else if (outstanding > MIN_OUTSTANDING_INDEXING)
|
|
1407
|
+
await new Promise((resolve) => setImmediate(resolve)); // yield event turn, don't want to use all computation
|
|
1408
|
+
else if (didSynchronousIndexing) await new Promise((resolve) => setImmediate(resolve)); // custom indexes (e.g. HNSW) index synchronously and never raise `outstanding`; without this yield a large backfill runs in a single event-loop turn, starving keepalive/replication and queries and never letting the isIndexing flag be observed
|
|
1283
1409
|
}
|
|
1284
1410
|
}
|
|
1285
1411
|
// Await the last pending put. If it rejects, that is also an indexing error.
|
|
@@ -1414,3 +1540,11 @@ export function getDefaultCompression() {
|
|
|
1414
1540
|
if (STORAGE_COMPRESSION_THRESHOLD) LMDB_COMPRESSION_OPTS['threshold'] = STORAGE_COMPRESSION_THRESHOLD;
|
|
1415
1541
|
return LMDB_COMPRESSION && LMDB_COMPRESSION_OPTS;
|
|
1416
1542
|
}
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* Force all RocksDB databases to flush to disk.
|
|
1546
|
+
*/
|
|
1547
|
+
export async function flushDatabases() {
|
|
1548
|
+
// flush all RocksDB databases
|
|
1549
|
+
return Promise.all(Array.from(rocksdbDatabaseEnvs.values()).map((db) => db.flush()));
|
|
1550
|
+
}
|