@harperfast/harper 5.2.10 → 5.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/mcpTools.ts +1 -1
- package/agent/session.ts +25 -14
- package/bin/cliOperations.ts +46 -9
- package/bin/copyDb.ts +282 -59
- package/bin/deploySetup.ts +16 -5
- package/bin/harper.ts +1 -1
- package/bin/help.ts +4 -1
- package/bin/lite.ts +4 -1
- package/bin/restart.ts +59 -3
- package/bin/run.ts +6 -11
- package/bin/upgrade.js +7 -3
- package/bin/workloadIdentity.ts +119 -0
- package/components/Application.ts +2414 -242
- package/components/ApplicationScope.ts +8 -0
- package/components/EntryHandler.ts +59 -39
- package/components/OptionsWatcher.ts +150 -74
- package/components/RuntimeModuleTracker.ts +38 -7
- package/components/Scope.ts +37 -15
- package/components/awaitRestart.ts +84 -0
- package/components/componentLoader.ts +340 -30
- package/components/componentPreparationLock.ts +16 -5
- package/components/mcp/adapters/harperHttp.ts +4 -0
- package/components/mcp/listChanged.ts +4 -0
- package/components/mcp/toolRegistry.ts +2 -0
- package/components/mcp/tools/operations.ts +9 -0
- package/components/mcp/tools/schemas/operationDescriptions.ts +2 -2
- package/components/operations.js +270 -78
- package/components/operationsValidation.js +49 -1
- package/components/status/ComponentStatusRegistry.ts +59 -0
- package/config/RootConfigWatcher.ts +80 -34
- package/config/configUtils.ts +291 -34
- package/config/harperConfigEnvVars.ts +170 -27
- package/config-root.schema.json +29 -0
- package/dataLayer/blobBackup.ts +160 -50
- package/dataLayer/delete.ts +6 -1
- package/dataLayer/harperBridge/ResourceBridge.ts +52 -8
- package/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
- package/dataLayer/hdbInfoController.ts +34 -1
- package/dataLayer/insert.ts +44 -1
- package/dataLayer/rocksdbBackup.ts +53 -10
- package/dataLayer/schema.ts +11 -1
- package/dataLayer/schemaDescribe.ts +8 -1
- package/dist/agent/mcpTools.js +1 -1
- package/dist/agent/mcpTools.js.map +1 -1
- package/dist/agent/session.d.ts +22 -0
- package/dist/agent/session.js +26 -15
- package/dist/agent/session.js.map +1 -1
- package/dist/bin/cliOperations.js +48 -9
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.d.ts +12 -1
- package/dist/bin/copyDb.js +248 -60
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/deploySetup.d.ts +2 -0
- package/dist/bin/deploySetup.js +11 -3
- package/dist/bin/deploySetup.js.map +1 -1
- package/dist/bin/harper.js +1 -1
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/help.js +4 -1
- package/dist/bin/help.js.map +1 -1
- package/dist/bin/lite.js +4 -1
- package/dist/bin/lite.js.map +1 -1
- package/dist/bin/restart.js +54 -5
- package/dist/bin/restart.js.map +1 -1
- package/dist/bin/run.js +4 -10
- package/dist/bin/run.js.map +1 -1
- package/dist/bin/upgrade.js +4 -3
- package/dist/bin/upgrade.js.map +1 -1
- package/dist/bin/workloadIdentity.d.ts +18 -0
- package/dist/bin/workloadIdentity.js +100 -0
- package/dist/bin/workloadIdentity.js.map +1 -0
- package/dist/components/Application.d.ts +139 -16
- package/dist/components/Application.js +2215 -267
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +8 -0
- package/dist/components/ApplicationScope.js +7 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/EntryHandler.js +26 -10
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/OptionsWatcher.d.ts +1 -0
- package/dist/components/OptionsWatcher.js +141 -74
- package/dist/components/OptionsWatcher.js.map +1 -1
- package/dist/components/RuntimeModuleTracker.js +40 -6
- package/dist/components/RuntimeModuleTracker.js.map +1 -1
- package/dist/components/Scope.js +38 -13
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/awaitRestart.d.ts +33 -0
- package/dist/components/awaitRestart.js +61 -0
- package/dist/components/awaitRestart.js.map +1 -0
- package/dist/components/componentLoader.d.ts +38 -1
- package/dist/components/componentLoader.js +279 -22
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/componentPreparationLock.d.ts +5 -0
- package/dist/components/componentPreparationLock.js +14 -6
- package/dist/components/componentPreparationLock.js.map +1 -1
- package/dist/components/mcp/adapters/harperHttp.js +4 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
- package/dist/components/mcp/listChanged.js +5 -0
- package/dist/components/mcp/listChanged.js.map +1 -1
- package/dist/components/mcp/toolRegistry.d.ts +1 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -1
- package/dist/components/mcp/tools/operations.d.ts +5 -0
- package/dist/components/mcp/tools/operations.js +9 -0
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -2
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
- package/dist/components/operations.js +231 -77
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.js +49 -1
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/status/ComponentStatusRegistry.d.ts +0 -4
- package/dist/components/status/ComponentStatusRegistry.js +63 -0
- package/dist/components/status/ComponentStatusRegistry.js.map +1 -1
- package/dist/config/RootConfigWatcher.d.ts +7 -1
- package/dist/config/RootConfigWatcher.js +64 -27
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configUtils.d.ts +9 -1
- package/dist/config/configUtils.js +254 -33
- package/dist/config/configUtils.js.map +1 -1
- package/dist/config/harperConfigEnvVars.d.ts +16 -0
- package/dist/config/harperConfigEnvVars.js +162 -25
- package/dist/config/harperConfigEnvVars.js.map +1 -1
- package/dist/dataLayer/blobBackup.d.ts +49 -20
- package/dist/dataLayer/blobBackup.js +139 -50
- package/dist/dataLayer/blobBackup.js.map +1 -1
- package/dist/dataLayer/delete.js +1 -1
- package/dist/dataLayer/delete.js.map +1 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +14 -1
- package/dist/dataLayer/harperBridge/ResourceBridge.js +51 -10
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.d.ts +3 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js +3 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbMethods/DeleteAuditLogsBeforeResults.js.map +1 -1
- package/dist/dataLayer/hdbInfoController.d.ts +10 -0
- package/dist/dataLayer/hdbInfoController.js +30 -1
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/insert.d.ts +9 -1
- package/dist/dataLayer/insert.js +30 -0
- package/dist/dataLayer/insert.js.map +1 -1
- package/dist/dataLayer/rocksdbBackup.d.ts +2 -2
- package/dist/dataLayer/rocksdbBackup.js +45 -8
- package/dist/dataLayer/rocksdbBackup.js.map +1 -1
- package/dist/dataLayer/schema.js +8 -0
- package/dist/dataLayer/schema.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +8 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +52 -0
- package/dist/resources/DatabaseTransaction.d.ts +55 -3
- package/dist/resources/DatabaseTransaction.js +460 -134
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.js +22 -4
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
- package/dist/resources/PrimaryRocksDatabase.js +30 -2
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +20 -0
- package/dist/resources/RecordEncoder.js +94 -9
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +2 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.js +20 -11
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +20 -1
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/RocksIndexStore.d.ts +6 -1
- package/dist/resources/RocksIndexStore.js +24 -10
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +14 -1
- package/dist/resources/RocksTransactionLogStore.js +57 -17
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +112 -8
- package/dist/resources/Table.js +1071 -197
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/auditStore.d.ts +11 -2
- package/dist/resources/auditStore.js +183 -18
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/blob.d.ts +129 -9
- package/dist/resources/blob.js +992 -114
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/branchDatabase.d.ts +48 -0
- package/dist/resources/branchDatabase.js +892 -0
- package/dist/resources/branchDatabase.js.map +1 -0
- package/dist/resources/crdt.js +50 -12
- package/dist/resources/crdt.js.map +1 -1
- package/dist/resources/databases.d.ts +150 -9
- package/dist/resources/databases.js +1247 -525
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/defineTable.d.ts +10 -2
- package/dist/resources/defineTable.js +9 -1
- package/dist/resources/defineTable.js.map +1 -1
- package/dist/resources/graphql.d.ts +1 -1
- package/dist/resources/graphql.js +50 -15
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +1 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +6 -2
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/longLivedTransactions.d.ts +71 -0
- package/dist/resources/longLivedTransactions.js +358 -0
- package/dist/resources/longLivedTransactions.js.map +1 -0
- package/dist/resources/models/backendRegistry.d.ts +26 -0
- package/dist/resources/models/backendRegistry.js +60 -2
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/bootstrap.d.ts +33 -1
- package/dist/resources/models/bootstrap.js +416 -31
- package/dist/resources/models/bootstrap.js.map +1 -1
- package/dist/resources/recordLock.d.ts +80 -0
- package/dist/resources/recordLock.js +184 -0
- package/dist/resources/recordLock.js.map +1 -0
- package/dist/resources/replayLogs.d.ts +14 -1
- package/dist/resources/replayLogs.js +152 -24
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/replayLogsGuards.d.ts +94 -7
- package/dist/resources/replayLogsGuards.js +111 -7
- package/dist/resources/replayLogsGuards.js.map +1 -1
- package/dist/resources/search.js +158 -32
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/transactionBroadcast.d.ts +1 -1
- package/dist/resources/transactionBroadcast.js +2 -2
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/auth.js +61 -30
- package/dist/security/auth.js.map +1 -1
- package/dist/security/authn/oidc/claims.d.ts +22 -0
- package/dist/security/authn/oidc/claims.js +71 -0
- package/dist/security/authn/oidc/claims.js.map +1 -0
- package/dist/security/authn/oidc/identityToken.d.ts +27 -0
- package/dist/security/authn/oidc/identityToken.js +111 -0
- package/dist/security/authn/oidc/identityToken.js.map +1 -0
- package/dist/security/authn/oidc/jwks.d.ts +25 -0
- package/dist/security/authn/oidc/jwks.js +261 -0
- package/dist/security/authn/oidc/jwks.js.map +1 -0
- package/dist/security/authn/oidc/providers/generic.d.ts +13 -0
- package/dist/security/authn/oidc/providers/generic.js +34 -0
- package/dist/security/authn/oidc/providers/generic.js.map +1 -0
- package/dist/security/authn/oidc/providers/githubActions.d.ts +11 -0
- package/dist/security/authn/oidc/providers/githubActions.js +129 -0
- package/dist/security/authn/oidc/providers/githubActions.js.map +1 -0
- package/dist/security/authn/oidc/providers/index.d.ts +37 -0
- package/dist/security/authn/oidc/providers/index.js +24 -0
- package/dist/security/authn/oidc/providers/index.js.map +1 -0
- package/dist/security/authn/oidc/tokenExchange.d.ts +12 -0
- package/dist/security/authn/oidc/tokenExchange.js +306 -0
- package/dist/security/authn/oidc/tokenExchange.js.map +1 -0
- package/dist/security/authn/oidc/trustPolicyOperations.d.ts +49 -0
- package/dist/security/authn/oidc/trustPolicyOperations.js +358 -0
- package/dist/security/authn/oidc/trustPolicyOperations.js.map +1 -0
- package/dist/security/authn/oidc/types.d.ts +38 -0
- package/dist/security/authn/oidc/types.js +6 -0
- package/dist/security/authn/oidc/types.js.map +1 -0
- package/dist/security/certificateVerification/index.js +40 -11
- package/dist/security/certificateVerification/index.js.map +1 -1
- package/dist/security/certificateVerification/trustedIssuers.d.ts +24 -0
- package/dist/security/certificateVerification/trustedIssuers.js +79 -0
- package/dist/security/certificateVerification/trustedIssuers.js.map +1 -0
- package/dist/security/certificateVerification/types.d.ts +1 -0
- package/dist/security/credentialProvenance.d.ts +35 -0
- package/dist/security/credentialProvenance.js +51 -0
- package/dist/security/credentialProvenance.js.map +1 -0
- package/dist/security/credentialRejection.d.ts +4 -0
- package/dist/security/credentialRejection.js +24 -0
- package/dist/security/credentialRejection.js.map +1 -0
- package/dist/security/deferredAuthentication.d.ts +36 -0
- package/dist/security/deferredAuthentication.js +70 -0
- package/dist/security/deferredAuthentication.js.map +1 -0
- package/dist/security/impersonation.d.ts +21 -0
- package/dist/security/impersonation.js +108 -9
- package/dist/security/impersonation.js.map +1 -1
- package/dist/security/jsLoader.d.ts +6 -0
- package/dist/security/jsLoader.js +75 -15
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/keys.js +301 -71
- package/dist/security/keys.js.map +1 -1
- package/dist/security/operationScope.d.ts +21 -0
- package/dist/security/operationScope.js +36 -0
- package/dist/security/operationScope.js.map +1 -0
- package/dist/security/permissionsTranslator.js +21 -0
- package/dist/security/permissionsTranslator.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +19 -1
- package/dist/security/tokenAuthentication.js +191 -10
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.js +4 -3
- package/dist/security/user.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +2 -2
- package/dist/server/DurableSubscriptionsSession.js +67 -10
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.js +73 -0
- package/dist/server/REST.js.map +1 -1
- package/dist/server/graphqlQuerying.js +4 -0
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +11 -0
- package/dist/server/http.js +88 -15
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +8 -1
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +6 -2
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobs.js +4 -1
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/liveSubscriptionAuth.d.ts +26 -4
- package/dist/server/liveSubscriptionAuth.js +105 -39
- package/dist/server/liveSubscriptionAuth.js.map +1 -1
- package/dist/server/loadRootComponents.js +49 -10
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/mqtt.d.ts +2 -0
- package/dist/server/mqtt.js +165 -30
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/nodeName.d.ts +2 -0
- package/dist/server/nodeName.js +107 -23
- package/dist/server/nodeName.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +25 -0
- package/dist/server/serverHelpers/Headers.js +139 -1
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +9 -0
- package/dist/server/serverHelpers/contentTypes.js +32 -25
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/deployValidationState.d.ts +3 -0
- package/dist/server/serverHelpers/deployValidationState.js +9 -19
- package/dist/server/serverHelpers/deployValidationState.js.map +1 -1
- package/dist/server/serverHelpers/operationAuthorizationState.d.ts +12 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js +24 -2
- package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -1
- package/dist/server/serverHelpers/registeredOperations.d.ts +5 -4
- package/dist/server/serverHelpers/registeredOperations.js +74 -21
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
- package/dist/server/serverHelpers/requestSanitization.d.ts +11 -0
- package/dist/server/serverHelpers/requestSanitization.js +20 -0
- package/dist/server/serverHelpers/requestSanitization.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.js +6 -3
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +18 -0
- package/dist/server/serverHelpers/serverUtilities.js +90 -20
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/serverHelpers/sharedMessageEncoding.d.ts +67 -0
- package/dist/server/serverHelpers/sharedMessageEncoding.js +280 -0
- package/dist/server/serverHelpers/sharedMessageEncoding.js.map +1 -0
- package/dist/server/serverHelpers/uwsServer.js +19 -1
- package/dist/server/serverHelpers/uwsServer.js.map +1 -1
- package/dist/server/static.js +24 -28
- package/dist/server/static.js.map +1 -1
- package/dist/server/storageReclamation.d.ts +5 -0
- package/dist/server/storageReclamation.js +16 -0
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/itc.d.ts +7 -2
- package/dist/server/threads/itc.js +5 -1
- package/dist/server/threads/itc.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +26 -4
- package/dist/server/threads/manageThreads.js +517 -72
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.js +89 -26
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadHeapMemory.d.ts +2 -0
- package/dist/server/threads/threadHeapMemory.js +31 -0
- package/dist/server/threads/threadHeapMemory.js.map +1 -0
- package/dist/server/threads/threadServer.js +46 -15
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/sqlEngine/config.d.ts +1 -3
- package/dist/sqlEngine/config.js +19 -16
- package/dist/sqlEngine/config.js.map +1 -1
- package/dist/sqlTranslator/index.d.ts +1 -1
- package/dist/sqlTranslator/index.js +30 -7
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/upgrade/directives/5-3-0.d.ts +7 -0
- package/dist/upgrade/directives/5-3-0.js +148 -0
- package/dist/upgrade/directives/5-3-0.js.map +1 -0
- package/dist/upgrade/directives/directivesController.js +2 -1
- package/dist/upgrade/directives/directivesController.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.js +2 -1
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/common_utils.d.ts +16 -0
- package/dist/utility/common_utils.js +32 -6
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/componentNames.d.ts +8 -0
- package/dist/utility/componentNames.js +12 -1
- package/dist/utility/componentNames.js.map +1 -1
- package/dist/utility/environment/environmentManager.js +3 -6
- package/dist/utility/environment/environmentManager.js.map +1 -1
- package/dist/utility/environment/systemInformation.d.ts +1 -0
- package/dist/utility/environment/systemInformation.js +1 -0
- package/dist/utility/environment/systemInformation.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +2 -0
- package/dist/utility/errors/commonErrors.js +2 -0
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/errors/hdbError.d.ts +17 -0
- package/dist/utility/errors/hdbError.js +30 -1
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/globalSchema.d.ts +18 -0
- package/dist/utility/hdbTerms.d.ts +16 -0
- package/dist/utility/hdbTerms.js +18 -2
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +2 -0
- package/dist/utility/logging/harper_logger.js +91 -14
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.js +76 -49
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/nodeIdentity.d.ts +9 -0
- package/dist/utility/nodeIdentity.js +58 -0
- package/dist/utility/nodeIdentity.js.map +1 -0
- package/dist/utility/npmUtilities.js +9 -7
- package/dist/utility/npmUtilities.js.map +1 -1
- package/dist/utility/operationPermissions.d.ts +3 -1
- package/dist/utility/operationPermissions.js +16 -1
- package/dist/utility/operationPermissions.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +10 -7
- package/dist/utility/operation_authorization.js +212 -41
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/watchPath.d.ts +29 -0
- package/dist/utility/watchPath.js +68 -0
- package/dist/utility/watchPath.js.map +1 -0
- package/dist/utility/watcherFallback.d.ts +86 -0
- package/dist/utility/watcherFallback.js +278 -1
- package/dist/utility/watcherFallback.js.map +1 -1
- package/dist/validation/configValidator.d.ts +12 -0
- package/dist/validation/configValidator.js +199 -72
- package/dist/validation/configValidator.js.map +1 -1
- package/dist/validation/installValidator.js +12 -0
- package/dist/validation/installValidator.js.map +1 -1
- package/dist/validation/validationWrapper.d.ts +11 -0
- package/dist/validation/validationWrapper.js +16 -3
- package/dist/validation/validationWrapper.js.map +1 -1
- package/index.ts +2 -0
- package/json/systemSchema.json +52 -0
- package/npm-shrinkwrap.json +235 -233
- package/package.json +8 -7
- package/resources/DESIGN.md +114 -52
- package/resources/DatabaseTransaction.ts +522 -130
- package/resources/LMDBTransaction.ts +26 -4
- package/resources/PrimaryRocksDatabase.ts +29 -3
- package/resources/RecordEncoder.ts +103 -8
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +17 -9
- package/resources/ResourceInterface.ts +23 -0
- package/resources/RocksIndexStore.ts +30 -10
- package/resources/RocksTransactionLogStore.ts +78 -21
- package/resources/Table.ts +1107 -164
- package/resources/auditStore.ts +187 -21
- package/resources/blob.ts +1029 -110
- package/resources/branchDatabase.ts +941 -0
- package/resources/crdt.ts +76 -12
- package/resources/databases.ts +1354 -522
- package/resources/defineTable.ts +18 -2
- package/resources/graphql.ts +70 -16
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +6 -2
- package/resources/longLivedTransactions.ts +360 -0
- package/resources/models/backendRegistry.ts +84 -2
- package/resources/models/bootstrap.ts +473 -28
- package/resources/recordLock.ts +253 -0
- package/resources/replayLogs.ts +147 -26
- package/resources/replayLogsGuards.ts +171 -8
- package/resources/search.ts +154 -32
- package/resources/transactionBroadcast.ts +3 -3
- package/security/auth.ts +68 -29
- package/security/authn/oidc/claims.ts +72 -0
- package/security/authn/oidc/identityToken.ts +129 -0
- package/security/authn/oidc/jwks.ts +260 -0
- package/security/authn/oidc/providers/generic.ts +40 -0
- package/security/authn/oidc/providers/githubActions.ts +137 -0
- package/security/authn/oidc/providers/index.ts +52 -0
- package/security/authn/oidc/tokenExchange.ts +300 -0
- package/security/authn/oidc/trustPolicyOperations.ts +343 -0
- package/security/authn/oidc/types.ts +41 -0
- package/security/certificateVerification/index.ts +54 -13
- package/security/certificateVerification/trustedIssuers.ts +76 -0
- package/security/certificateVerification/types.ts +1 -0
- package/security/credentialProvenance.ts +47 -0
- package/security/credentialRejection.ts +22 -0
- package/security/deferredAuthentication.ts +71 -0
- package/security/impersonation.ts +117 -12
- package/security/jsLoader.ts +81 -18
- package/security/keys.ts +298 -72
- package/security/operationScope.ts +33 -0
- package/security/permissionsTranslator.js +23 -0
- package/security/tokenAuthentication.ts +233 -12
- package/security/user.ts +4 -3
- package/server/DESIGN.md +183 -16
- package/server/DurableSubscriptionsSession.ts +71 -11
- package/server/REST.ts +79 -1
- package/server/graphqlQuerying.ts +4 -0
- package/server/http.ts +99 -18
- package/server/itc/serverHandlers.js +8 -1
- package/server/jobs/jobProcess.ts +8 -2
- package/server/jobs/jobs.ts +4 -1
- package/server/liveSubscriptionAuth.ts +129 -46
- package/server/loadRootComponents.js +50 -8
- package/server/mqtt.ts +179 -38
- package/server/nodeName.ts +103 -21
- package/server/serverHelpers/Headers.ts +131 -0
- package/server/serverHelpers/contentTypes.ts +29 -21
- package/server/serverHelpers/deployValidationState.ts +24 -13
- package/server/serverHelpers/operationAuthorizationState.ts +34 -3
- package/server/serverHelpers/registeredOperations.ts +79 -22
- package/server/serverHelpers/requestSanitization.ts +15 -0
- package/server/serverHelpers/serverHandlers.js +6 -3
- package/server/serverHelpers/serverUtilities.ts +104 -31
- package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
- package/server/serverHelpers/uwsServer.ts +17 -2
- package/server/static.ts +23 -29
- package/server/storageReclamation.ts +13 -0
- package/server/threads/itc.js +11 -1
- package/server/threads/manageThreads.js +526 -63
- package/server/threads/socketRouter.ts +81 -26
- package/server/threads/threadHeapMemory.ts +26 -0
- package/server/threads/threadServer.js +43 -15
- package/sqlTranslator/index.ts +31 -8
- package/studio/web/assets/{Chat-Br06zdMA.js → Chat-BnCBegQz.js} +1 -1
- package/studio/web/assets/{FloatingChat-BWImX5fA.js → FloatingChat-CoDW1ySS.js} +3 -3
- package/studio/web/assets/{apiToken-DN0nmDsq.js → apiToken-Bwk5BLXW.js} +1 -1
- package/studio/web/assets/{applications-kSxVoyeU.js → applications-DHxGi7JH.js} +1 -1
- package/studio/web/assets/{cssMode-C1JeufH5.js → cssMode-s0cWI-_M.js} +1 -1
- package/studio/web/assets/{editor-qoo9CrGO.js → editor-DNcRHK54.js} +1 -1
- package/studio/web/assets/{html-Dt4IIy04.js → html-Bdssedlg.js} +1 -1
- package/studio/web/assets/{htmlMode-DXgKKr4C.js → htmlMode-CoDlJ3fw.js} +1 -1
- package/studio/web/assets/{index-6onkYFOG.js → index-D6sxmFLR.js} +5 -5
- package/studio/web/assets/{index.lazy-BrCFnpNJ.js → index.lazy-tmU5BS8s.js} +1 -1
- package/studio/web/assets/{javascript-DNCQGUBc.js → javascript-B8meVSTH.js} +1 -1
- package/studio/web/assets/{jsonMode-CR6HWruP.js → jsonMode-DpIPd35T.js} +1 -1
- package/studio/web/assets/{languageServices-BM4fI4rS.js → languageServices-C_5FMJzQ.js} +1 -1
- package/studio/web/assets/{lspLanguageFeatures-DSa1ttcD.js → lspLanguageFeatures-BIzNBzPK.js} +1 -1
- package/studio/web/assets/{notifications-BHXLnh6x.js → notifications-CQf18QKb.js} +1 -1
- package/studio/web/assets/{notifications-CUmtIA6z.js → notifications-CvZivSbh.js} +1 -1
- package/studio/web/assets/{profile-8BeFSF3j.js → profile-DdOwtntb.js} +1 -1
- package/studio/web/assets/{regions-C8qR0HhD.js → regions-n69fwagr.js} +1 -1
- package/studio/web/assets/{register-B4n5i0SD.js → register-PfWTCXWB.js} +2 -2
- package/studio/web/assets/{setComponentFile-g0_B0lgX.js → setComponentFile-Bg6O7X0S.js} +1 -1
- package/studio/web/assets/{setup-B0CTj_Q5.js → setup-CUx_aUDl.js} +2 -2
- package/studio/web/assets/{status-C6Yib7-K.js → status-D7BVKqX9.js} +1 -1
- package/studio/web/assets/{toggleHighContrast-Dgta7bVi.js → toggleHighContrast-DBSyXzMr.js} +1 -1
- package/studio/web/assets/{tsMode-CH_jHvU-.js → tsMode-BByKCjBS.js} +1 -1
- package/studio/web/assets/{typescript-Co9LCXd5.js → typescript-DDLnLpw9.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-wKC8NsC_.js → useEntityRestURL-31CHGaHk.js} +1 -1
- package/studio/web/assets/{workers-CWeLxCXA.js → workers-pR3jRY9D.js} +1 -1
- package/studio/web/assets/{xml-BadC-0Rk.js → xml-2iRnMhQO.js} +1 -1
- package/studio/web/assets/{yaml-BiUfxPbC.js → yaml-Bf92gJpd.js} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/directives/5-3-0.ts +132 -0
- package/upgrade/directives/directivesController.ts +2 -1
- package/utility/OperationFunctionCaller.ts +2 -1
- package/utility/common_utils.ts +30 -5
- package/utility/componentNames.ts +12 -0
- package/utility/environment/environmentManager.ts +3 -7
- package/utility/environment/systemInformation.ts +7 -0
- package/utility/errors/commonErrors.ts +4 -0
- package/utility/errors/hdbError.ts +29 -0
- package/utility/hdbTerms.ts +17 -0
- package/utility/logging/harper_logger.ts +87 -14
- package/utility/logging/logRotator.ts +72 -45
- package/utility/nodeIdentity.ts +45 -0
- package/utility/npmUtilities.ts +10 -8
- package/utility/operationPermissions.ts +18 -1
- package/utility/operation_authorization.ts +231 -42
- package/utility/watchPath.ts +63 -0
- package/utility/watcherFallback.ts +270 -0
- package/validation/configValidator.ts +209 -72
- package/validation/installValidator.ts +15 -0
- package/validation/validationWrapper.ts +18 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branchDatabase.js","sourceRoot":"","sources":["../../resources/branchDatabase.ts"],"names":[],"mappings":"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"}
|
package/dist/resources/crdt.js
CHANGED
|
@@ -135,21 +135,21 @@ function applyForward(record, update) {
|
|
|
135
135
|
* against, and everything newer than the delete is irrelevant to a `timestamp` that precedes it (a
|
|
136
136
|
* key that was deleted then re-inserted, see issue #1330).
|
|
137
137
|
*
|
|
138
|
-
* `
|
|
139
|
-
*
|
|
138
|
+
* `fromPosition` is the newest pre-delete audit position; the walk follows the previous links from
|
|
139
|
+
* there. Entries newer than `timestamp` are skipped (the cutoff may fall
|
|
140
140
|
* between entries). Returns null if the record did not exist at `timestamp` (the nearest in-range
|
|
141
141
|
* history boundary is a delete with no surviving writes, or there is no in-range history).
|
|
142
142
|
*/
|
|
143
|
-
function reconstructForward(auditStore, store, tableId, recordId,
|
|
143
|
+
function reconstructForward(auditStore, store, tableId, recordId, fromPosition, timestamp) {
|
|
144
144
|
// Collect the in-range entries (at or before `timestamp`) back to a base boundary, newest-first.
|
|
145
145
|
// The boundary is a full `put` (snapshot) or a `delete` (everything older is erased); a record
|
|
146
146
|
// whose first write was a `patch` has no put and bottoms out at the start of history. Only
|
|
147
147
|
// `put`/`patch` contribute to the value, matching the reverse walk's switch (other partial types
|
|
148
148
|
// such as `invalidate` are ignored).
|
|
149
149
|
const entries = [];
|
|
150
|
-
let auditTime =
|
|
150
|
+
let { txnLogKey: auditTime, nodeId: auditNodeId } = fromPosition;
|
|
151
151
|
while (auditTime > 0) {
|
|
152
|
-
const auditEntry = auditStore.get(auditTime, tableId, recordId);
|
|
152
|
+
const auditEntry = auditStore.get(auditTime, tableId, recordId, auditNodeId);
|
|
153
153
|
if (!auditEntry)
|
|
154
154
|
break;
|
|
155
155
|
if (auditEntry.type === 'delete') {
|
|
@@ -168,7 +168,9 @@ function reconstructForward(auditStore, store, tableId, recordId, fromVersion, t
|
|
|
168
168
|
entries.push(auditEntry);
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
|
|
171
|
+
const previousPosition = previousAuditPosition(auditStore, tableId, recordId, auditEntry);
|
|
172
|
+
auditTime = previousPosition.txnLogKey;
|
|
173
|
+
auditNodeId = previousPosition.nodeId;
|
|
172
174
|
}
|
|
173
175
|
if (entries.length === 0)
|
|
174
176
|
return null; // record did not exist at `timestamp`
|
|
@@ -190,6 +192,33 @@ function reconstructForward(auditStore, store, tableId, recordId, fromVersion, t
|
|
|
190
192
|
}
|
|
191
193
|
return record;
|
|
192
194
|
}
|
|
195
|
+
function resolveAuditPosition(auditStore, tableId, recordId, version, nodeId, refs) {
|
|
196
|
+
if (!refs?.length)
|
|
197
|
+
return { txnLogKey: version, nodeId };
|
|
198
|
+
const visited = new Set();
|
|
199
|
+
const pending = refs.slice().reverse();
|
|
200
|
+
while (pending.length > 0) {
|
|
201
|
+
const ref = pending.pop();
|
|
202
|
+
const identity = `${ref.nodeId ?? 0}:${ref.version}`;
|
|
203
|
+
if (visited.has(identity))
|
|
204
|
+
continue;
|
|
205
|
+
visited.add(identity);
|
|
206
|
+
const entry = auditStore.get(ref.version, tableId, recordId, ref.nodeId);
|
|
207
|
+
if (!entry)
|
|
208
|
+
continue;
|
|
209
|
+
if (entry.version === version && (nodeId == null || (entry.nodeId ?? 0) === nodeId))
|
|
210
|
+
return { txnLogKey: ref.version, nodeId: ref.nodeId };
|
|
211
|
+
const previousRefs = entry.previousAdditionalAuditRefs;
|
|
212
|
+
if (previousRefs) {
|
|
213
|
+
for (let index = previousRefs.length - 1; index >= 0; index--)
|
|
214
|
+
pending.push(previousRefs[index]);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return { txnLogKey: version, nodeId };
|
|
218
|
+
}
|
|
219
|
+
function previousAuditPosition(auditStore, tableId, recordId, auditEntry) {
|
|
220
|
+
return resolveAuditPosition(auditStore, tableId, recordId, auditEntry.previousVersion, auditEntry.previousNodeId, auditEntry.previousAdditionalAuditRefs);
|
|
221
|
+
}
|
|
193
222
|
/**
|
|
194
223
|
* Reconstruct the record state at a given timestamp by going back through the audit history and reversing any changes
|
|
195
224
|
* @param currentEntry
|
|
@@ -200,11 +229,18 @@ function reconstructForward(auditStore, store, tableId, recordId, fromVersion, t
|
|
|
200
229
|
function getRecordAtTime(currentEntry, timestamp, store, tableId, recordId) {
|
|
201
230
|
const auditStore = store.rootStore.auditStore;
|
|
202
231
|
let record = { ...currentEntry.value };
|
|
203
|
-
|
|
232
|
+
// `localTime` is the record's audit head on both engines: the audit-store key on LMDB, where it
|
|
233
|
+
// is a different clock than the record version, and the transaction-log key on RocksDB. Only a
|
|
234
|
+
// RocksDB record carrying `additionalAuditRefs` needs its head resolved from the version.
|
|
235
|
+
const initialPosition = currentEntry.additionalAuditRefs?.length
|
|
236
|
+
? resolveAuditPosition(auditStore, tableId, recordId, currentEntry.version, currentEntry.nodeId, currentEntry.additionalAuditRefs)
|
|
237
|
+
: { txnLogKey: currentEntry.localTime ?? currentEntry.version, nodeId: currentEntry.nodeId };
|
|
238
|
+
let auditTime = initialPosition.txnLogKey;
|
|
239
|
+
let auditNodeId = initialPosition.nodeId;
|
|
204
240
|
// Iterate in reverse through the record history, trying to reverse all changes
|
|
205
241
|
const unknowns = new Set();
|
|
206
242
|
while (auditTime > timestamp) {
|
|
207
|
-
const auditEntry = auditStore.get(auditTime, tableId, recordId);
|
|
243
|
+
const auditEntry = auditStore.get(auditTime, tableId, recordId, auditNodeId);
|
|
208
244
|
if (!auditEntry)
|
|
209
245
|
break;
|
|
210
246
|
switch (auditEntry.type) {
|
|
@@ -218,15 +254,17 @@ function getRecordAtTime(currentEntry, timestamp, store, tableId, recordId) {
|
|
|
218
254
|
// The reverse walk reached a delete that is newer than `timestamp`. There is no
|
|
219
255
|
// base record to keep reversing patches against, so reconstruct the pre-delete
|
|
220
256
|
// state forward instead (issue #1330: a key deleted then re-inserted).
|
|
221
|
-
return reconstructForward(auditStore, store, tableId, recordId, auditEntry
|
|
257
|
+
return reconstructForward(auditStore, store, tableId, recordId, previousAuditPosition(auditStore, tableId, recordId, auditEntry), timestamp);
|
|
222
258
|
}
|
|
223
|
-
|
|
259
|
+
const previousPosition = previousAuditPosition(auditStore, tableId, recordId, auditEntry);
|
|
260
|
+
auditTime = previousPosition.txnLogKey;
|
|
261
|
+
auditNodeId = previousPosition.nodeId;
|
|
224
262
|
}
|
|
225
263
|
// If the most recent entry at or before `timestamp` is a delete, the record did not exist then.
|
|
226
264
|
// (A delete reached as a boundary — rather than crossed, which returns via reconstructForward —
|
|
227
265
|
// is otherwise missed, leaving `record` holding a newer re-inserted value. See issue #1330.)
|
|
228
266
|
if (auditTime > 0) {
|
|
229
|
-
const boundaryEntry = auditStore.get(auditTime, tableId, recordId);
|
|
267
|
+
const boundaryEntry = auditStore.get(auditTime, tableId, recordId, auditNodeId);
|
|
230
268
|
if (boundaryEntry?.type === 'delete')
|
|
231
269
|
return null;
|
|
232
270
|
}
|
|
@@ -238,7 +276,7 @@ function getRecordAtTime(currentEntry, timestamp, store, tableId, recordId) {
|
|
|
238
276
|
// single delta rather than the folded value at `timestamp`. If the history needed to reconstruct a
|
|
239
277
|
// key is unavailable (pruned), the key keeps its live value (best effort, as before).
|
|
240
278
|
if (unknowns.size > 0 && auditTime > 0) {
|
|
241
|
-
const priorRecord = reconstructForward(auditStore, store, tableId, recordId, auditTime, timestamp);
|
|
279
|
+
const priorRecord = reconstructForward(auditStore, store, tableId, recordId, { txnLogKey: auditTime, nodeId: auditNodeId }, timestamp);
|
|
242
280
|
if (priorRecord) {
|
|
243
281
|
for (const key of unknowns) {
|
|
244
282
|
// Object.hasOwn, not `in`: an unknown field named like a prototype member (toString,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crdt.js","sourceRoot":"","sources":["../../resources/crdt.ts"],"names":[],"mappings":";;;AAIA,8BAQC;AACD,kBAEC;AAyBD,kDAmCC;AACD,oCAWC;AAID,oCAWC;
|
|
1
|
+
{"version":3,"file":"crdt.js","sourceRoot":"","sources":["../../resources/crdt.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,12 @@ import { makeTable } from './Table.ts';
|
|
|
4
4
|
import { RocksDatabase } from '@harperfast/rocksdb-js';
|
|
5
5
|
export declare function isReadOnlyMode(): boolean;
|
|
6
6
|
declare const DEFINED_TABLES: unique symbol;
|
|
7
|
+
type RelationshipHydration = {
|
|
8
|
+
table: any;
|
|
9
|
+
databaseName: string;
|
|
10
|
+
tableName: string;
|
|
11
|
+
definitions: unknown[];
|
|
12
|
+
};
|
|
7
13
|
export declare function getRocksCompression(): string | undefined;
|
|
8
14
|
/**
|
|
9
15
|
* Test-only: un-freezes the resolved codec. Production code never calls this — the freeze is the
|
|
@@ -102,6 +108,12 @@ export declare function getTables(): Tables;
|
|
|
102
108
|
* can span any tables in the database.
|
|
103
109
|
*/
|
|
104
110
|
export declare function getDatabases(): Databases;
|
|
111
|
+
/**
|
|
112
|
+
* Hydrate one branch's relationships, resolving each target against the application's own branches
|
|
113
|
+
* first and only then against the real databases: a target the application also branched must be its
|
|
114
|
+
* branch's table, and a target it did not branch is legitimately the shared one.
|
|
115
|
+
*/
|
|
116
|
+
export declare function hydrateBranchRelationships(branch: BranchDatabase, branches: Map<string, BranchDatabase>): void;
|
|
105
117
|
/**
|
|
106
118
|
* This is responsible for reading the internal dbi of a single database file to get a list of all the tables and
|
|
107
119
|
* their indexed or registered attributes
|
|
@@ -110,6 +122,128 @@ export declare function getDatabases(): Databases;
|
|
|
110
122
|
* @param databaseName
|
|
111
123
|
*/
|
|
112
124
|
export declare function readMetaDb(path: string, defaultTable?: string, databaseName?: string, auditPath?: string, isLegacy?: boolean): RootDatabaseKind;
|
|
125
|
+
/**
|
|
126
|
+
* Branch directories live beside the base database's own storage root, never under the HDB root: a
|
|
127
|
+
* database can be placed on its own volume, and `createCheckpoint` only hardlinks when source and
|
|
128
|
+
* target share a filesystem — off-volume it degrades to a full byte copy, which is the property the
|
|
129
|
+
* whole feature rests on.
|
|
130
|
+
*
|
|
131
|
+
* The backticks are what make the name reserved rather than merely conventional: `schemaRegex`
|
|
132
|
+
* (validation/common_validators.ts) excludes 0x60, so no database can ever be created under this
|
|
133
|
+
* name and shadow the branch root -- the same protection RESTORE_META_DIR uses.
|
|
134
|
+
*/
|
|
135
|
+
export declare const BRANCH_ROOT_DIR = "`branches`";
|
|
136
|
+
/**
|
|
137
|
+
* Where the branch of `baseName` belonging to `appName` lives. Derived only from those two names, so
|
|
138
|
+
* every node in a cluster resolves the same application's branch to the same place — the identity an
|
|
139
|
+
* application's data needs if it is to be addressed, and eventually replicated, cluster-wide.
|
|
140
|
+
*
|
|
141
|
+
* App and database are separate path segments: joining them (`<app>__<db>`) is not injective —
|
|
142
|
+
* `(a__b, c)` and `(a, b__c)` collide — so two declarations could otherwise open one directory.
|
|
143
|
+
*/
|
|
144
|
+
export declare function resolveBranchPath(baseName: string, appName: string): string;
|
|
145
|
+
/** A branch's private table graph plus the handle needed to tear it down. */
|
|
146
|
+
export interface BranchDatabase {
|
|
147
|
+
tables: Tables;
|
|
148
|
+
rootStore: RootDatabaseKind;
|
|
149
|
+
/** The realpath of the branch directory; what a schema-change signal names to address this branch. */
|
|
150
|
+
path: string;
|
|
151
|
+
/** The logical name the application uses (`data`); every Table class in `tables` carries it. */
|
|
152
|
+
databaseName: string;
|
|
153
|
+
/** The branch's own store identity, which its blob roots resolve from. */
|
|
154
|
+
storeName: string;
|
|
155
|
+
/**
|
|
156
|
+
* Every column-family wrapper opened on this store -- by the open, by a reload, or by a table
|
|
157
|
+
* declaration -- so `close()` can release them all. Recorded at acquisition rather than
|
|
158
|
+
* reconstructed from `tables` at close: a re-declaration displaces the index and catalog wrappers it
|
|
159
|
+
* replaces, and a failed declaration can leave one that no class ever held.
|
|
160
|
+
*/
|
|
161
|
+
openedStores: any[];
|
|
162
|
+
/**
|
|
163
|
+
* Relationships this branch's tables declared, still un-hydrated. They cannot be resolved at open
|
|
164
|
+
* time: a branch's definitions name the BASE database (its tables carry the base's logical names),
|
|
165
|
+
* so resolving them through the global map would point the application's relationship reads at the
|
|
166
|
+
* base. `hydrateBranchRelationships` finishes the job once the whole branch set is known.
|
|
167
|
+
*/
|
|
168
|
+
pendingRelationships: RelationshipHydration[];
|
|
169
|
+
/**
|
|
170
|
+
* The application's whole branch set, once `prepareBranches` has opened it, so a reload can hydrate
|
|
171
|
+
* a relationship whose target the application also branched against that branch.
|
|
172
|
+
*/
|
|
173
|
+
relatedBranches?: Map<string, BranchDatabase>;
|
|
174
|
+
close(): void;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Suffix of the sibling a branch is renamed to while being removed. A backtick, not a dot:
|
|
178
|
+
* `schemaRegex` excludes 0x60, so no database can be named such that `<db>` + this suffix is another
|
|
179
|
+
* branch's directory (with `.removing`, an application branching both `data` and `data.removing`, both
|
|
180
|
+
* legal names, would destroy one by opening the other).
|
|
181
|
+
*/
|
|
182
|
+
export declare const BRANCH_REMOVING_SUFFIX = "`removing`";
|
|
183
|
+
export declare function quarantineBranchIdentity(storeName: string): void;
|
|
184
|
+
/**
|
|
185
|
+
* Refuse a branch store identity that something else already answers to.
|
|
186
|
+
*
|
|
187
|
+
* `storeName` picks the branch's blob roots, and blob file ids restart from each store's own counter,
|
|
188
|
+
* so two holders of one identity write the same file paths and truncate each other. It must be
|
|
189
|
+
* checked BEFORE anything destructive runs: materialization removes and replaces the blob root that
|
|
190
|
+
* this name resolves to, and a real database may legally be called `5_myapp__data` -- `schemaRegex`
|
|
191
|
+
* permits digits, `_` and `.`. The `.staging` sibling materialization writes is covered too, since a
|
|
192
|
+
* database may legally carry that name as well.
|
|
193
|
+
*/
|
|
194
|
+
export declare function assertBranchIdentityAvailable(storeName: string): void;
|
|
195
|
+
/**
|
|
196
|
+
* Claim the identity as well as checking it, so the window between the check and the branch actually
|
|
197
|
+
* opening cannot be filled by a concurrent create or a second branch. `releaseBranchIdentity` hands
|
|
198
|
+
* it back if materialization never gets as far as opening.
|
|
199
|
+
*/
|
|
200
|
+
export declare function reserveBranchIdentity(storeName: string): void;
|
|
201
|
+
/**
|
|
202
|
+
* Take the pair back for an operation that owned it a statement ago -- cleanup, which has to keep
|
|
203
|
+
* holding the names through the deletions its `close()` just released them for. Deliberately without
|
|
204
|
+
* the availability check: nothing can have taken a name the caller held until now, and the check runs
|
|
205
|
+
* the database scan, which at that exact moment would find the branch directory unowned.
|
|
206
|
+
*/
|
|
207
|
+
export declare function retakeBranchIdentity(storeName: string): void;
|
|
208
|
+
export declare function releaseBranchIdentity(storeName: string): void;
|
|
209
|
+
/** Is this name spoken for by a branch? Database creation has to refuse it -- they share a blob root. */
|
|
210
|
+
export declare function isBranchIdentity(name: string): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* Open a RocksDB directory as a **scope-private** database: its Table classes are built into an
|
|
213
|
+
* object the caller owns and nothing is registered in the global `databases` map, so no enumerator
|
|
214
|
+
* of that map — analytics, `describe_all`, worker teardown, replication — can observe it.
|
|
215
|
+
*
|
|
216
|
+
* `databaseName` is the *logical* name the application knows (`data`), so its schema and code need
|
|
217
|
+
* no changes. `storeName` is the branch's own identity and is what `getRootBlobPathsForDB` resolves
|
|
218
|
+
* blob directories from, which is how a branch gets its own blob roots rather than writing into the
|
|
219
|
+
* base's.
|
|
220
|
+
*
|
|
221
|
+
* The caller owns the returned handle; the only thing that closes it on the caller's behalf is
|
|
222
|
+
* `closeBranchDatabases`, run by an exiting job worker (via `closeLoadedDatabases`) and by an HTTP
|
|
223
|
+
* worker's shutdown path, so a branch left open on an exiting worker does not linger in the
|
|
224
|
+
* process-global RocksDB registry.
|
|
225
|
+
*
|
|
226
|
+
* Schema changes reach a branch only through its own bound factory (`scopedTableFactory`): a
|
|
227
|
+
* declaration re-asserted against the branch's store. A branch's Table classes carry the base's
|
|
228
|
+
* logical name, so the Table statics (`dropTable()`, `addAttributes()`) — which resolve the global
|
|
229
|
+
* schema by that name and would act on the live base table — stay refused (`assertSchemaMutable`).
|
|
230
|
+
*
|
|
231
|
+
* A branch's blob roots are a hard-link clone of the base's, taken with the checkpoint, so a row
|
|
232
|
+
* whose blob predates the branch reads back normally and the branch allocates new file ids in its own
|
|
233
|
+
* directory (harper#644).
|
|
234
|
+
*
|
|
235
|
+
* A branch is the checkpoint's SST content plus its own transaction-log tail. This function opens
|
|
236
|
+
* only the stores; replaying the tail is `openOrCreate`'s job (branchDatabase.ts), where the
|
|
237
|
+
* cross-thread claim elects exactly one replayer and awaits it before any thread may open the
|
|
238
|
+
* branch — the same recovery contract a base database gets at boot, without which a process that
|
|
239
|
+
* died unflushed silently rewinds the branch to its last memtable flush (harper#643).
|
|
240
|
+
*
|
|
241
|
+
* Pass `blobRoots` to pin the handle to the roots the branch was published with; without it the
|
|
242
|
+
* store resolves them from current configuration, which is only right for a branch being created.
|
|
243
|
+
*/
|
|
244
|
+
export declare function openBranchDatabase(path: string, databaseName: string, storeName: string, blobRoots?: string[]): BranchDatabase;
|
|
245
|
+
/** Branches are process-local, so this is shutdown, not a data operation. */
|
|
246
|
+
export declare function closeBranchDatabases(): void;
|
|
113
247
|
export declare function resetDatabases(): Databases;
|
|
114
248
|
interface TableDefinition {
|
|
115
249
|
table: string;
|
|
@@ -126,6 +260,7 @@ interface TableDefinition {
|
|
|
126
260
|
trackDeletes?: boolean;
|
|
127
261
|
attributes: any[];
|
|
128
262
|
schemaDefined?: boolean;
|
|
263
|
+
schemaRelationshipsDefined?: boolean;
|
|
129
264
|
origin?: string;
|
|
130
265
|
description?: string;
|
|
131
266
|
properties?: Record<string, any>;
|
|
@@ -177,6 +312,9 @@ export declare function closeDatabase(databaseName: string): boolean;
|
|
|
177
312
|
* database is closed). The `system` database is intentionally left open: it is non-enumerable here
|
|
178
313
|
* (skipped by the loop), is never restored online, and the exiting worker may still touch the job
|
|
179
314
|
* table during teardown. Best-effort: closing failures are swallowed inside `closeDatabase`.
|
|
315
|
+
*
|
|
316
|
+
* Branches are invisible to the loop below but hold handles from the same registry, so this — the
|
|
317
|
+
* thread's one teardown entry point — closes them too.
|
|
180
318
|
*/
|
|
181
319
|
export declare function closeLoadedDatabases(): void;
|
|
182
320
|
/**
|
|
@@ -194,6 +332,18 @@ export declare function closeLoadedDatabases(): void;
|
|
|
194
332
|
* @param replicate
|
|
195
333
|
*/
|
|
196
334
|
export declare function table<TableResourceType>(tableDefinition: TableDefinition): TableResourceType;
|
|
335
|
+
/**
|
|
336
|
+
* The factory a branched application declares tables through: each declaration goes to the branch
|
|
337
|
+
* of the database it names, or to `table()` itself for a database the application did not branch.
|
|
338
|
+
* An unbranched application gets `table` by identity -- no wrapper, no per-call routing.
|
|
339
|
+
*/
|
|
340
|
+
export declare function scopedTableFactory(branches?: Map<string, BranchDatabase>): typeof table;
|
|
341
|
+
/**
|
|
342
|
+
* The receiving side of a branch's schema-change signal: a thread that holds this branch open reloads
|
|
343
|
+
* it, any other thread has nothing to do. Returns the branch's tables so the caller can address the
|
|
344
|
+
* table the signal named.
|
|
345
|
+
*/
|
|
346
|
+
export declare function reloadBranchAt(path: string): Tables | undefined;
|
|
197
347
|
/**
|
|
198
348
|
* Canonical form used ONLY for the structural (reindex-triggering) comparison of index options.
|
|
199
349
|
* `@indexed(...)` records options in source-argument order and as strings, while the operations API
|
|
@@ -207,15 +357,6 @@ export declare function table<TableResourceType>(tableDefinition: TableDefinitio
|
|
|
207
357
|
* descriptor self-heals toward this shape over time. harper#1357
|
|
208
358
|
*/
|
|
209
359
|
export declare function canonicalizeIndexOptions(value: any): any;
|
|
210
|
-
export declare function setIndexingCheckpointPeriod(ms: number, minRecords?: number): {
|
|
211
|
-
ms: number;
|
|
212
|
-
minRecords: number;
|
|
213
|
-
};
|
|
214
|
-
export declare function resumeStartKey(attributes: {
|
|
215
|
-
lastIndexedKey?: any;
|
|
216
|
-
}[]): any;
|
|
217
|
-
export declare const ABANDONED_MARK_LOCK_TIMEOUT = 10000;
|
|
218
|
-
export declare function tryAcquireUpdateAttributesLock(rootStore: RocksDatabase, timeout?: number): boolean;
|
|
219
360
|
export declare function dropTableMeta({ table: tableName, database: databaseName }: {
|
|
220
361
|
table: any;
|
|
221
362
|
database: any;
|