@harperfast/harper 5.2.13 → 5.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/mcpTools.ts +1 -1
- package/agent/session.ts +25 -14
- package/bin/cliOperations.ts +58 -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 +120 -4
- package/bin/run.ts +6 -11
- package/bin/upgrade.js +7 -3
- package/bin/workloadIdentity.ts +119 -0
- package/components/Application.ts +3436 -242
- package/components/ApplicationScope.ts +8 -0
- package/components/EntryHandler.ts +59 -39
- package/components/OptionsWatcher.ts +440 -98
- package/components/RuntimeModuleTracker.ts +38 -7
- package/components/Scope.ts +56 -15
- package/components/awaitRestart.ts +84 -0
- package/components/componentLoader.ts +381 -32
- package/components/componentPreparationLock.ts +16 -5
- package/components/deploymentOperations.ts +4 -1
- package/components/deploymentRecorder.ts +9 -2
- 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 +537 -113
- package/components/operationsValidation.js +98 -3
- package/components/packageComponent.ts +25 -1
- package/components/requestRestart.ts +11 -0
- package/components/status/ComponentStatusRegistry.ts +59 -0
- package/config/RootConfigWatcher.ts +240 -40
- package/config/configReadRetry.ts +62 -0
- package/config/configUtils.ts +357 -48
- package/config/harperConfigEnvVars.ts +170 -27
- package/config/parseConfigFile.ts +34 -0
- package/config/readConfigFileSync.ts +44 -0
- package/config/watcherArming.ts +59 -0
- package/config-root.schema.json +33 -0
- package/dataLayer/blobBackup.ts +160 -50
- package/dataLayer/delete.ts +6 -1
- package/dataLayer/harperBridge/ResourceBridge.ts +80 -10
- 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 +61 -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 +91 -6
- 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 +235 -17
- package/dist/components/Application.js +3038 -238
- 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 +4 -0
- package/dist/components/OptionsWatcher.js +440 -99
- 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 +52 -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 +313 -24
- 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/deploymentOperations.js +4 -1
- package/dist/components/deploymentOperations.js.map +1 -1
- package/dist/components/deploymentRecorder.d.ts +4 -2
- package/dist/components/deploymentRecorder.js +1 -0
- package/dist/components/deploymentRecorder.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.d.ts +28 -0
- package/dist/components/operations.js +476 -113
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.js +97 -3
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/packageComponent.js +24 -0
- package/dist/components/packageComponent.js.map +1 -1
- package/dist/components/requestRestart.d.ts +1 -0
- package/dist/components/requestRestart.js +7 -0
- package/dist/components/requestRestart.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 +9 -1
- package/dist/config/RootConfigWatcher.js +228 -37
- package/dist/config/RootConfigWatcher.js.map +1 -1
- package/dist/config/configReadRetry.d.ts +8 -0
- package/dist/config/configReadRetry.js +62 -0
- package/dist/config/configReadRetry.js.map +1 -0
- package/dist/config/configUtils.d.ts +11 -2
- package/dist/config/configUtils.js +304 -47
- 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/config/parseConfigFile.d.ts +4 -0
- package/dist/config/parseConfigFile.js +35 -0
- package/dist/config/parseConfigFile.js.map +1 -0
- package/dist/config/readConfigFileSync.d.ts +1 -0
- package/dist/config/readConfigFileSync.js +47 -0
- package/dist/config/readConfigFileSync.js.map +1 -0
- package/dist/config/watcherArming.d.ts +15 -0
- package/dist/config/watcherArming.js +59 -0
- package/dist/config/watcherArming.js.map +1 -0
- 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 +72 -12
- 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 +2 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +55 -0
- package/dist/resources/DatabaseTransaction.d.ts +77 -0
- package/dist/resources/DatabaseTransaction.js +586 -54
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +2 -1
- package/dist/resources/LMDBTransaction.js +43 -6
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.d.ts +1 -0
- package/dist/resources/PrimaryRocksDatabase.js +49 -5
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -1
- package/dist/resources/RecordEncoder.d.ts +20 -0
- package/dist/resources/RecordEncoder.js +110 -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 +117 -24
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +28 -1
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/RocksIndexStore.d.ts +6 -1
- package/dist/resources/RocksIndexStore.js +24 -9
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/RocksTransactionLogStore.d.ts +24 -1
- package/dist/resources/RocksTransactionLogStore.js +160 -49
- package/dist/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/resources/Table.d.ts +165 -10
- package/dist/resources/Table.js +1805 -303
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +10 -3
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +181 -2
- package/dist/resources/auditStore.js +640 -29
- 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/dataLoader.js +3 -4
- package/dist/resources/dataLoader.js.map +1 -1
- package/dist/resources/databases.d.ts +157 -14
- package/dist/resources/databases.js +1462 -325
- 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/derivedIndexRegistry.d.ts +5 -0
- package/dist/resources/derivedIndexRegistry.js +68 -0
- package/dist/resources/derivedIndexRegistry.js.map +1 -0
- package/dist/resources/derivedIndexRuntime.d.ts +215 -0
- package/dist/resources/derivedIndexRuntime.js +2027 -0
- package/dist/resources/derivedIndexRuntime.js.map +1 -0
- package/dist/resources/graphql.d.ts +1 -1
- package/dist/resources/graphql.js +52 -16
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +103 -9
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +854 -41
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/indexes/hnswDerivedIndex.d.ts +67 -0
- package/dist/resources/indexes/hnswDerivedIndex.js +464 -0
- package/dist/resources/indexes/hnswDerivedIndex.js.map +1 -0
- package/dist/resources/indexes/hnswPlaneBinding.d.ts +65 -0
- package/dist/resources/indexes/hnswPlaneBinding.js +91 -0
- package/dist/resources/indexes/hnswPlaneBinding.js.map +1 -0
- 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/nodeIdMapping.d.ts +5 -0
- package/dist/resources/nodeIdMapping.js +49 -0
- package/dist/resources/nodeIdMapping.js.map +1 -1
- package/dist/resources/recordLock.d.ts +123 -0
- package/dist/resources/recordLock.js +315 -0
- package/dist/resources/recordLock.js.map +1 -0
- package/dist/resources/recordLockCoordinator.d.ts +557 -0
- package/dist/resources/recordLockCoordinator.js +2565 -0
- package/dist/resources/recordLockCoordinator.js.map +1 -0
- package/dist/resources/replayLogs.d.ts +14 -1
- package/dist/resources/replayLogs.js +157 -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/replicatedApplyFailure.d.ts +16 -0
- package/dist/resources/replicatedApplyFailure.js +63 -0
- package/dist/resources/replicatedApplyFailure.js.map +1 -0
- package/dist/resources/scheduler/scheduler.js +3 -3
- package/dist/resources/scheduler/scheduler.js.map +1 -1
- package/dist/resources/search.d.ts +10 -4
- package/dist/resources/search.js +283 -37
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/tracked.d.ts +5 -1
- package/dist/resources/tracked.js +74 -23
- package/dist/resources/tracked.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 +77 -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 +106 -2
- 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 +16 -1
- package/dist/server/http.js +122 -17
- 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 +27 -0
- package/dist/server/serverHelpers/Headers.js +145 -1
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/NodeAdapterResponse.d.ts +48 -0
- package/dist/server/serverHelpers/NodeAdapterResponse.js +220 -0
- package/dist/server/serverHelpers/NodeAdapterResponse.js.map +1 -0
- package/dist/server/serverHelpers/Request.d.ts +5 -10
- package/dist/server/serverHelpers/Request.js +38 -136
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.d.ts +11 -0
- package/dist/server/serverHelpers/contentTypes.js +221 -40
- 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 +178 -29
- 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 +17 -1
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/isolatedApplications.d.ts +47 -0
- package/dist/server/threads/isolatedApplications.js +171 -0
- package/dist/server/threads/isolatedApplications.js.map +1 -0
- 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/logRotationTransport.d.ts +1 -0
- package/dist/server/threads/logRotationTransport.js +33 -0
- package/dist/server/threads/logRotationTransport.js.map +1 -0
- package/dist/server/threads/manageThreads.d.ts +83 -3
- package/dist/server/threads/manageThreads.js +769 -75
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.d.ts +1 -0
- package/dist/server/threads/socketRouter.js +277 -31
- 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 +76 -22
- 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 +33 -0
- package/dist/utility/errors/hdbError.js +58 -1
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/globalSchema.d.ts +18 -0
- package/dist/utility/hdbTerms.d.ts +18 -0
- package/dist/utility/hdbTerms.js +20 -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 +286 -30
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logGenerationCoordinator.d.ts +35 -0
- package/dist/utility/logging/logGenerationCoordinator.js +184 -0
- package/dist/utility/logging/logGenerationCoordinator.js.map +1 -0
- package/dist/utility/logging/logRotation.d.ts +46 -0
- package/dist/utility/logging/logRotation.js +365 -0
- package/dist/utility/logging/logRotation.js.map +1 -0
- package/dist/utility/logging/logRotator.d.ts +1 -1
- package/dist/utility/logging/logRotator.js +192 -85
- 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 +11 -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 +41 -0
- package/dist/utility/watcherFallback.js +153 -0
- package/dist/utility/watcherFallback.js.map +1 -1
- package/dist/validation/configValidator.d.ts +12 -0
- package/dist/validation/configValidator.js +205 -75
- 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 +8 -0
- package/json/systemSchema.json +55 -0
- package/npm-shrinkwrap.json +286 -194
- package/package.json +15 -7
- package/resources/DESIGN.md +219 -52
- package/resources/DatabaseTransaction.ts +657 -52
- package/resources/LMDBTransaction.ts +46 -6
- package/resources/PrimaryRocksDatabase.ts +46 -7
- package/resources/RecordEncoder.ts +124 -9
- package/resources/RequestTarget.ts +2 -0
- package/resources/Resource.ts +114 -22
- package/resources/ResourceInterface.ts +31 -0
- package/resources/RocksIndexStore.ts +30 -9
- package/resources/RocksTransactionLogStore.ts +188 -51
- package/resources/Table.ts +1960 -301
- package/resources/analytics/write.ts +10 -3
- package/resources/auditStore.ts +647 -32
- package/resources/blob.ts +1029 -110
- package/resources/branchDatabase.ts +941 -0
- package/resources/crdt.ts +76 -12
- package/resources/dataLoader.ts +3 -4
- package/resources/databases.ts +1584 -320
- package/resources/defineTable.ts +18 -2
- package/resources/derivedIndexRegistry.ts +56 -0
- package/resources/derivedIndexRuntime.ts +2292 -0
- package/resources/graphql.ts +72 -17
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +911 -48
- package/resources/indexes/hnswDerivedIndex.ts +531 -0
- package/resources/indexes/hnswPlaneBinding.ts +174 -0
- package/resources/longLivedTransactions.ts +360 -0
- package/resources/models/backendRegistry.ts +84 -2
- package/resources/models/bootstrap.ts +473 -28
- package/resources/nodeIdMapping.ts +50 -0
- package/resources/recordLock.ts +419 -0
- package/resources/recordLockCoordinator.ts +3043 -0
- package/resources/replayLogs.ts +152 -26
- package/resources/replayLogsGuards.ts +171 -8
- package/resources/replicatedApplyFailure.ts +77 -0
- package/resources/scheduler/scheduler.ts +4 -4
- package/resources/search.ts +288 -46
- package/resources/tracked.ts +73 -22
- 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 +83 -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 +194 -16
- package/server/DurableSubscriptionsSession.ts +71 -11
- package/server/REST.ts +115 -4
- package/server/graphqlQuerying.ts +4 -0
- package/server/http.ts +133 -20
- 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 +135 -0
- package/server/serverHelpers/NodeAdapterResponse.ts +221 -0
- package/server/serverHelpers/Request.ts +33 -131
- package/server/serverHelpers/contentTypes.ts +217 -36
- 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 +232 -40
- package/server/serverHelpers/sharedMessageEncoding.ts +307 -0
- package/server/serverHelpers/uwsServer.ts +17 -2
- package/server/static.ts +23 -29
- package/server/storageReclamation.ts +15 -2
- package/server/threads/isolatedApplications.ts +157 -0
- package/server/threads/itc.js +11 -1
- package/server/threads/logRotationTransport.ts +40 -0
- package/server/threads/manageThreads.js +771 -66
- package/server/threads/socketRouter.ts +291 -30
- package/server/threads/threadHeapMemory.ts +26 -0
- package/server/threads/threadServer.js +73 -22
- package/sqlTranslator/index.ts +31 -8
- package/studio/web/assets/{Chat-4RrB5134.js → Chat-D3j-1yY1.js} +1 -1
- package/studio/web/assets/{FloatingChat-omlNMDcJ.js → FloatingChat-BxJGYcfB.js} +3 -3
- package/studio/web/assets/{apiToken-Bke3wvfZ.js → apiToken-CT55oWOe.js} +1 -1
- package/studio/web/assets/{applications-DvFDYJgK.js → applications-D9Ct9_vm.js} +1 -1
- package/studio/web/assets/{cssMode-C1vRa7zh.js → cssMode-DV8H7VwA.js} +1 -1
- package/studio/web/assets/{editor-3XRWEDWX.js → editor-uatc0unt.js} +1 -1
- package/studio/web/assets/{html-CTY5tdMr.js → html-Bm6D6paN.js} +1 -1
- package/studio/web/assets/{htmlMode-CG1vSD9t.js → htmlMode-CEn7tpLG.js} +1 -1
- package/studio/web/assets/{index-Dfpeofdu.js → index-BIXW6Pu4.js} +5 -5
- package/studio/web/assets/{index.lazy-B1VOIv-t.js → index.lazy-UI7L-Vrk.js} +1 -1
- package/studio/web/assets/{javascript-CJeJzGnI.js → javascript-CJ0G3AFZ.js} +1 -1
- package/studio/web/assets/{jsonMode-CYPBwM82.js → jsonMode-DQADAYEa.js} +1 -1
- package/studio/web/assets/{languageServices-IKH4GUHl.js → languageServices-CAQJXWcI.js} +1 -1
- package/studio/web/assets/{lspLanguageFeatures-BC8_gxKG.js → lspLanguageFeatures-CCQ8P5sY.js} +1 -1
- package/studio/web/assets/{notifications-BfKBpYcq.js → notifications-BbxTU6Aw.js} +1 -1
- package/studio/web/assets/{notifications-DFbArTfC.js → notifications-Cvb3P1lB.js} +1 -1
- package/studio/web/assets/{profile-Q4-T6c-S.js → profile-Yyb7gsvL.js} +1 -1
- package/studio/web/assets/{regions-CtkV0xje.js → regions-OgjGHlU5.js} +1 -1
- package/studio/web/assets/{register-1ZZuMsiA.js → register-6qwNEOY3.js} +2 -2
- package/studio/web/assets/{setComponentFile-ZWLcWv5X.js → setComponentFile-BilDMtgB.js} +1 -1
- package/studio/web/assets/{setup-DWprJyJy.js → setup-J6qJ7OIU.js} +2 -2
- package/studio/web/assets/{status--aNm8isn.js → status-0RWGcfyD.js} +1 -1
- package/studio/web/assets/{toggleHighContrast-Cq_lt3XD.js → toggleHighContrast-BIn-vErT.js} +1 -1
- package/studio/web/assets/{tsMode-pjgytARx.js → tsMode-DgUXku4d.js} +1 -1
- package/studio/web/assets/{typescript-Cdg0mqUh.js → typescript-C9orXcsM.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-RZhaY8Rn.js → useEntityRestURL-BEoXXbUB.js} +1 -1
- package/studio/web/assets/{workers-BgoXIqQe.js → workers-JVzSDmgx.js} +1 -1
- package/studio/web/assets/{xml-BwSeDMiP.js → xml-Cq-S8S4X.js} +1 -1
- package/studio/web/assets/{yaml-DotCUG5l.js → yaml-sfoRdh1M.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 +57 -0
- package/utility/hdbTerms.ts +19 -0
- package/utility/logging/harper_logger.ts +278 -26
- package/utility/logging/logGenerationCoordinator.ts +196 -0
- package/utility/logging/logRotation.ts +367 -0
- package/utility/logging/logRotator.ts +213 -81
- package/utility/nodeIdentity.ts +45 -0
- package/utility/npmUtilities.ts +12 -8
- package/utility/operationPermissions.ts +18 -1
- package/utility/operation_authorization.ts +231 -42
- package/utility/watchPath.ts +63 -0
- package/utility/watcherFallback.ts +148 -0
- package/validation/configValidator.ts +215 -75
- package/validation/installValidator.ts +15 -0
- package/validation/validationWrapper.ts +18 -4
|
@@ -6,10 +6,14 @@
|
|
|
6
6
|
import { type Database } from 'lmdb';
|
|
7
7
|
import type { ResourceInterface, SubscriptionRequest, Id, Context, Sort, SubSelect, RequestTargetOrId } from './ResourceInterface.ts';
|
|
8
8
|
import type { User } from '../security/user.ts';
|
|
9
|
+
import { type WriteGeneration } from './DatabaseTransaction.ts';
|
|
10
|
+
import { type RecordLockHandle, type RecordLockOptions } from './recordLock.ts';
|
|
11
|
+
import { ASSERT_TRACKED_WRITABLE, GET_TRACKED_WRITE_GENERATION } from './tracked.ts';
|
|
12
|
+
import { LockCoordinator, type LockControlEntry } from './recordLockCoordinator.ts';
|
|
9
13
|
import { type EmbedAttribute, type Embedder } from './models/embedHook.ts';
|
|
10
|
-
import { RecordObject, type Entry } from './RecordEncoder.ts';
|
|
14
|
+
import { RecordObject, type Entry, type StructureCounts } from './RecordEncoder.ts';
|
|
11
15
|
import { RequestTarget } from './RequestTarget.ts';
|
|
12
|
-
import { Transaction as RocksTransaction } from '@harperfast/rocksdb-js';
|
|
16
|
+
import { RocksDatabase, Transaction as RocksTransaction } from '@harperfast/rocksdb-js';
|
|
13
17
|
import { type JsonSchemaFragment } from './jsonSchemaTypes.ts';
|
|
14
18
|
export type Attribute = {
|
|
15
19
|
name: string;
|
|
@@ -40,6 +44,12 @@ export type Attribute = {
|
|
|
40
44
|
select?: any;
|
|
41
45
|
};
|
|
42
46
|
type MaybePromise<T> = T | Promise<T>;
|
|
47
|
+
export declare const UPDATE_ATTRIBUTES_LOCK_TIMEOUT = 10000;
|
|
48
|
+
export declare const UPDATE_ATTRIBUTES_LOCK_SLOW_WAIT = 1000;
|
|
49
|
+
/** The wait blocks the event loop, so the locked section must stay synchronous. */
|
|
50
|
+
export declare function acquireUpdateAttributesLock(rootStore: RocksDatabase, scopeDescription: string, timeout?: number): void;
|
|
51
|
+
export declare function releaseUpdateAttributesLock(rootStore: RocksDatabase): void;
|
|
52
|
+
export declare function withUpdateAttributesLock<Callback extends () => unknown>(rootStore: RocksDatabase, scopeDescription: string, callback: Callback & (ReturnType<Callback> extends PromiseLike<unknown> ? never : unknown)): ReturnType<Callback>;
|
|
43
53
|
export declare function ignoreAlreadyDropped(error: any): void;
|
|
44
54
|
export declare function freezeRecord(value: any): void;
|
|
45
55
|
export declare function frozenRecordView(record: any): any;
|
|
@@ -73,7 +83,17 @@ export declare function makeTable(options: any): {
|
|
|
73
83
|
"__#private@#version"?: number;
|
|
74
84
|
"__#private@#entry"?: Entry;
|
|
75
85
|
"__#private@#savingOperation"?: any;
|
|
86
|
+
"__#private@#lockHandle"?: RecordLockHandle;
|
|
87
|
+
"__#private@#lockWritable"?: boolean;
|
|
88
|
+
"__#private@#writeGeneration"?: WriteGeneration;
|
|
76
89
|
getProperty: (name: string) => any;
|
|
90
|
+
/**
|
|
91
|
+
* Shared guard: if this instance is lock-writable but the handle is gone (expired or
|
|
92
|
+
* released), throw 409 before staging any write. Covers update/invalidate/relocate/delete
|
|
93
|
+
* in addition to the save() path. Every lock-writable instance carries its own handle in
|
|
94
|
+
* #lockHandle (scoped and hold alike), so we never need to search the registry here.
|
|
95
|
+
*/
|
|
96
|
+
"__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
|
|
77
97
|
_loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
|
|
78
98
|
/**
|
|
79
99
|
* This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
|
|
@@ -118,6 +138,7 @@ export declare function makeTable(options: any): {
|
|
|
118
138
|
*/
|
|
119
139
|
save(): any;
|
|
120
140
|
"__#private@#saveOperation"(operation: any): any;
|
|
141
|
+
"__#private@#closeWriteChain"(operation: any): void;
|
|
121
142
|
addTo(property: any, value: any): void;
|
|
122
143
|
subtractFrom(property: any, value: any): void;
|
|
123
144
|
getMetadata(): Entry;
|
|
@@ -129,9 +150,25 @@ export declare function makeTable(options: any): {
|
|
|
129
150
|
_writeInvalidate(id: Id, partialRecord?: any, options?: any): void;
|
|
130
151
|
_writeRelocate(id: Id, options: any): void;
|
|
131
152
|
/**
|
|
132
|
-
*
|
|
153
|
+
* Acquire an exclusive lock on this record (or on `target`'s) and return it ready for updates
|
|
154
|
+
* (harper#483, Phase 0: exclusive across every worker thread of this node). The lock is held
|
|
155
|
+
* in process memory only — no durable writes. Phase 0 contract: lock() is mutually exclusive
|
|
156
|
+
* with other lock() calls on the same key; plain writes (put/patch/delete/create) are never
|
|
157
|
+
* gated or blocked. The generation expires after `lease` if it is never released.
|
|
158
|
+
*
|
|
159
|
+
* Transaction-scoped (default): write through the returned record (or the table's static verbs
|
|
160
|
+
* in the same transaction), and the commit or abort releases it. `{ hold: true }`: the lock
|
|
161
|
+
* outlives the transaction; write through the returned record and release with `unlock()`, or
|
|
162
|
+
* let the lease expire.
|
|
163
|
+
*/
|
|
164
|
+
lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions): Promise<any>;
|
|
165
|
+
"__#private@#reloadLocked"(id: Id, holdHandle?: RecordLockHandle | null, preserveChanges?: boolean): any;
|
|
166
|
+
/**
|
|
167
|
+
* Release the lock this instance holds. Resolves true when this call cleared the native key lock.
|
|
168
|
+
* Works for both held (`{ hold: true }`) and transaction-scoped locks. After unlock() the
|
|
169
|
+
* instance is no longer lock-writable; writes through it require a fresh lock.
|
|
133
170
|
*/
|
|
134
|
-
|
|
171
|
+
unlock(): Promise<boolean>;
|
|
135
172
|
/**
|
|
136
173
|
* Store the provided record data into the current resource. This is not written
|
|
137
174
|
* until the corresponding transaction is committed.
|
|
@@ -156,6 +193,8 @@ export declare function makeTable(options: any): {
|
|
|
156
193
|
_writePublish(id: Id, message: any, options?: any): void;
|
|
157
194
|
validate(record: any, patch?: boolean): void;
|
|
158
195
|
getUpdatedTime(): number;
|
|
196
|
+
[ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
|
|
197
|
+
[GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
|
|
159
198
|
readonly "__#private@#id": Id;
|
|
160
199
|
readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
|
|
161
200
|
"__#private@#isCollection": boolean;
|
|
@@ -173,6 +212,15 @@ export declare function makeTable(options: any): {
|
|
|
173
212
|
tableName: any;
|
|
174
213
|
tableId: any;
|
|
175
214
|
indices: any;
|
|
215
|
+
derivedIndexRuntime: {
|
|
216
|
+
close(dropping?: boolean): Promise<void>;
|
|
217
|
+
restoreAfterFailedDrop?(): {
|
|
218
|
+
close(dropping?: boolean): Promise<void>;
|
|
219
|
+
restoreAfterFailedDrop?(): /*elided*/ any;
|
|
220
|
+
completeDrop?(dropped?: boolean): void;
|
|
221
|
+
};
|
|
222
|
+
completeDrop?(dropped?: boolean): void;
|
|
223
|
+
} | undefined;
|
|
176
224
|
audit: any;
|
|
177
225
|
databasePath: any;
|
|
178
226
|
databaseName: any;
|
|
@@ -237,7 +285,17 @@ export declare function makeTable(options: any): {
|
|
|
237
285
|
"__#private@#version"?: number;
|
|
238
286
|
"__#private@#entry"?: Entry;
|
|
239
287
|
"__#private@#savingOperation"?: any;
|
|
288
|
+
"__#private@#lockHandle"?: RecordLockHandle;
|
|
289
|
+
"__#private@#lockWritable"?: boolean;
|
|
290
|
+
"__#private@#writeGeneration"?: WriteGeneration;
|
|
240
291
|
getProperty: (name: string) => any;
|
|
292
|
+
/**
|
|
293
|
+
* Shared guard: if this instance is lock-writable but the handle is gone (expired or
|
|
294
|
+
* released), throw 409 before staging any write. Covers update/invalidate/relocate/delete
|
|
295
|
+
* in addition to the save() path. Every lock-writable instance carries its own handle in
|
|
296
|
+
* #lockHandle (scoped and hold alike), so we never need to search the registry here.
|
|
297
|
+
*/
|
|
298
|
+
"__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
|
|
241
299
|
_loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
|
|
242
300
|
/**
|
|
243
301
|
* This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
|
|
@@ -282,6 +340,7 @@ export declare function makeTable(options: any): {
|
|
|
282
340
|
*/
|
|
283
341
|
save(): any;
|
|
284
342
|
"__#private@#saveOperation"(operation: any): any;
|
|
343
|
+
"__#private@#closeWriteChain"(operation: any): void;
|
|
285
344
|
addTo(property: any, value: any): void;
|
|
286
345
|
subtractFrom(property: any, value: any): void;
|
|
287
346
|
getMetadata(): Entry;
|
|
@@ -293,9 +352,25 @@ export declare function makeTable(options: any): {
|
|
|
293
352
|
_writeInvalidate(id: Id, partialRecord?: any, options?: any): void;
|
|
294
353
|
_writeRelocate(id: Id, options: any): void;
|
|
295
354
|
/**
|
|
296
|
-
*
|
|
355
|
+
* Acquire an exclusive lock on this record (or on `target`'s) and return it ready for updates
|
|
356
|
+
* (harper#483, Phase 0: exclusive across every worker thread of this node). The lock is held
|
|
357
|
+
* in process memory only — no durable writes. Phase 0 contract: lock() is mutually exclusive
|
|
358
|
+
* with other lock() calls on the same key; plain writes (put/patch/delete/create) are never
|
|
359
|
+
* gated or blocked. The generation expires after `lease` if it is never released.
|
|
360
|
+
*
|
|
361
|
+
* Transaction-scoped (default): write through the returned record (or the table's static verbs
|
|
362
|
+
* in the same transaction), and the commit or abort releases it. `{ hold: true }`: the lock
|
|
363
|
+
* outlives the transaction; write through the returned record and release with `unlock()`, or
|
|
364
|
+
* let the lease expire.
|
|
365
|
+
*/
|
|
366
|
+
lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions): Promise<any>;
|
|
367
|
+
"__#private@#reloadLocked"(id: Id, holdHandle?: RecordLockHandle | null, preserveChanges?: boolean): any;
|
|
368
|
+
/**
|
|
369
|
+
* Release the lock this instance holds. Resolves true when this call cleared the native key lock.
|
|
370
|
+
* Works for both held (`{ hold: true }`) and transaction-scoped locks. After unlock() the
|
|
371
|
+
* instance is no longer lock-writable; writes through it require a fresh lock.
|
|
297
372
|
*/
|
|
298
|
-
|
|
373
|
+
unlock(): Promise<boolean>;
|
|
299
374
|
/**
|
|
300
375
|
* Store the provided record data into the current resource. This is not written
|
|
301
376
|
* until the corresponding transaction is committed.
|
|
@@ -320,6 +395,8 @@ export declare function makeTable(options: any): {
|
|
|
320
395
|
_writePublish(id: Id, message: any, options?: any): void;
|
|
321
396
|
validate(record: any, patch?: boolean): void;
|
|
322
397
|
getUpdatedTime(): number;
|
|
398
|
+
[ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
|
|
399
|
+
[GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
|
|
323
400
|
readonly "__#private@#id": Id;
|
|
324
401
|
readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
|
|
325
402
|
"__#private@#isCollection": boolean;
|
|
@@ -335,7 +412,17 @@ export declare function makeTable(options: any): {
|
|
|
335
412
|
"__#private@#version"?: number;
|
|
336
413
|
"__#private@#entry"?: Entry;
|
|
337
414
|
"__#private@#savingOperation"?: any;
|
|
415
|
+
"__#private@#lockHandle"?: RecordLockHandle;
|
|
416
|
+
"__#private@#lockWritable"?: boolean;
|
|
417
|
+
"__#private@#writeGeneration"?: WriteGeneration;
|
|
338
418
|
getProperty: (name: string) => any;
|
|
419
|
+
/**
|
|
420
|
+
* Shared guard: if this instance is lock-writable but the handle is gone (expired or
|
|
421
|
+
* released), throw 409 before staging any write. Covers update/invalidate/relocate/delete
|
|
422
|
+
* in addition to the save() path. Every lock-writable instance carries its own handle in
|
|
423
|
+
* #lockHandle (scoped and hold alike), so we never need to search the registry here.
|
|
424
|
+
*/
|
|
425
|
+
"__#private@#assertLiveHandle"(id: Id, allowClosed?: boolean): void;
|
|
339
426
|
_loadRecord(target: RequestTarget, request: Context, resourceOptions?: any): MaybePromise</*elided*/ any>;
|
|
340
427
|
/**
|
|
341
428
|
* This is a request to explicitly ensure that the record is loaded from source, rather than only using the local record.
|
|
@@ -380,6 +467,7 @@ export declare function makeTable(options: any): {
|
|
|
380
467
|
*/
|
|
381
468
|
save(): any;
|
|
382
469
|
"__#private@#saveOperation"(operation: any): any;
|
|
470
|
+
"__#private@#closeWriteChain"(operation: any): void;
|
|
383
471
|
addTo(property: any, value: any): void;
|
|
384
472
|
subtractFrom(property: any, value: any): void;
|
|
385
473
|
getMetadata(): Entry;
|
|
@@ -391,9 +479,25 @@ export declare function makeTable(options: any): {
|
|
|
391
479
|
_writeInvalidate(id: Id, partialRecord?: any, options?: any): void;
|
|
392
480
|
_writeRelocate(id: Id, options: any): void;
|
|
393
481
|
/**
|
|
394
|
-
*
|
|
482
|
+
* Acquire an exclusive lock on this record (or on `target`'s) and return it ready for updates
|
|
483
|
+
* (harper#483, Phase 0: exclusive across every worker thread of this node). The lock is held
|
|
484
|
+
* in process memory only — no durable writes. Phase 0 contract: lock() is mutually exclusive
|
|
485
|
+
* with other lock() calls on the same key; plain writes (put/patch/delete/create) are never
|
|
486
|
+
* gated or blocked. The generation expires after `lease` if it is never released.
|
|
487
|
+
*
|
|
488
|
+
* Transaction-scoped (default): write through the returned record (or the table's static verbs
|
|
489
|
+
* in the same transaction), and the commit or abort releases it. `{ hold: true }`: the lock
|
|
490
|
+
* outlives the transaction; write through the returned record and release with `unlock()`, or
|
|
491
|
+
* let the lease expire.
|
|
395
492
|
*/
|
|
396
|
-
lock():
|
|
493
|
+
lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions): Promise<any>;
|
|
494
|
+
"__#private@#reloadLocked"(id: Id, holdHandle?: RecordLockHandle | null, preserveChanges?: boolean): any;
|
|
495
|
+
/**
|
|
496
|
+
* Release the lock this instance holds. Resolves true when this call cleared the native key lock.
|
|
497
|
+
* Works for both held (`{ hold: true }`) and transaction-scoped locks. After unlock() the
|
|
498
|
+
* instance is no longer lock-writable; writes through it require a fresh lock.
|
|
499
|
+
*/
|
|
500
|
+
unlock(): Promise<boolean>;
|
|
397
501
|
/**
|
|
398
502
|
* Store the provided record data into the current resource. This is not written
|
|
399
503
|
* until the corresponding transaction is committed.
|
|
@@ -418,6 +522,8 @@ export declare function makeTable(options: any): {
|
|
|
418
522
|
_writePublish(id: Id, message: any, options?: any): void;
|
|
419
523
|
validate(record: any, patch?: boolean): void;
|
|
420
524
|
getUpdatedTime(): number;
|
|
525
|
+
[ASSERT_TRACKED_WRITABLE](generation?: WriteGeneration): void;
|
|
526
|
+
[GET_TRACKED_WRITE_GENERATION](): WriteGeneration;
|
|
421
527
|
readonly "__#private@#id": Id;
|
|
422
528
|
readonly "__#private@#context": Context | import("./ResourceInterface.ts").SourceContext;
|
|
423
529
|
"__#private@#isCollection": boolean;
|
|
@@ -435,12 +541,15 @@ export declare function makeTable(options: any): {
|
|
|
435
541
|
* This also informs the scheduling for record eviction.
|
|
436
542
|
* @param opts Time in seconds until records expire, or an options object with `expiration`, `eviction`,
|
|
437
543
|
* and `scanInterval` (all in seconds, all optional). Number form preserves any previously configured
|
|
438
|
-
* eviction/scanInterval; object form replaces all three.
|
|
544
|
+
* eviction/scanInterval; object form replaces all three. An internal schema ownership-only call with
|
|
545
|
+
* none of those values preserves the settings already loaded from the catalog.
|
|
439
546
|
*/
|
|
440
547
|
setTTLExpiration(opts: number | {
|
|
441
548
|
expiration?: number;
|
|
442
549
|
eviction?: number;
|
|
443
550
|
scanInterval?: number;
|
|
551
|
+
fromSchema?: boolean;
|
|
552
|
+
isolatedApplicationOwner?: boolean;
|
|
444
553
|
}): void;
|
|
445
554
|
getResidencyRecord(id: Id): any;
|
|
446
555
|
setResidency(getResidency?: (record: object, context: Context) => ResidencyDefinition): void;
|
|
@@ -456,6 +565,14 @@ export declare function makeTable(options: any): {
|
|
|
456
565
|
* @returns
|
|
457
566
|
*/
|
|
458
567
|
coerceId(id: string): number | string;
|
|
568
|
+
/**
|
|
569
|
+
* A branch's Table classes deliberately carry the BASE's logical database name so an
|
|
570
|
+
* application's schema and code resolve unchanged (harper#643). That makes every schema
|
|
571
|
+
* mutation resolve against the global catalog — a `dropTable()` through a branch would delete
|
|
572
|
+
* the live base table. Reads and writes are per-branch and unaffected; DDL is refused until a
|
|
573
|
+
* branch owns a schema identity of its own.
|
|
574
|
+
*/
|
|
575
|
+
assertSchemaMutable(operation: string): void;
|
|
459
576
|
dropTable(): Promise<void>;
|
|
460
577
|
/**
|
|
461
578
|
* Record the relocation of an entry (when a record is moved to a different node), return true if it is now located locally
|
|
@@ -467,6 +584,17 @@ export declare function makeTable(options: any): {
|
|
|
467
584
|
* Evicting a record will remove it from a caching table. This is not considered a canonical data change, and it is assumed that retrieving this record from the source will still yield the same record, this is only removing the local copy of the record.
|
|
468
585
|
*/
|
|
469
586
|
evict(id: any, existingRecord: any, existingVersion: any): any;
|
|
587
|
+
/**
|
|
588
|
+
* Static entry point: `Table.lock(id, options?, context?)` — creates an instance in the given,
|
|
589
|
+
* ambient, or a fresh context and delegates to the instance lock(). This shadows Resource.static
|
|
590
|
+
* lock so that both callers share the same transaction link (required for cross-instance upgrade
|
|
591
|
+
* detection). lock() is an in-process API with no authorization hook of its own; it is not
|
|
592
|
+
* protocol-dispatched, so no allowUpdate/allowCreate check runs on acquisition.
|
|
593
|
+
*
|
|
594
|
+
* Dropping the trailing `context` leaks the key: the bare `{}` fallback is an
|
|
595
|
+
* ImmediateTransaction, which releases no record locks.
|
|
596
|
+
*/
|
|
597
|
+
lock(target?: RequestTargetOrId | RecordLockOptions, options?: RecordLockOptions, context?: any): Promise<any>;
|
|
470
598
|
operation(operation: any, context: any): any;
|
|
471
599
|
/**
|
|
472
600
|
* This is responsible for ordering and select()ing the attributes/properties from returned entries
|
|
@@ -511,6 +639,30 @@ export declare function makeTable(options: any): {
|
|
|
511
639
|
* the table when it (re)subscribes.
|
|
512
640
|
*/
|
|
513
641
|
writeReloadMarker(context?: any): void;
|
|
642
|
+
/**
|
|
643
|
+
* Write one cluster record-lock control entry (harper#483 Phase 1). Not local-only: replicating
|
|
644
|
+
* it IS the send.
|
|
645
|
+
*
|
|
646
|
+
* `recordId` must stay null. An entry carrying the locked key would share
|
|
647
|
+
* `(version, tableId, recordId, nodeId)` with the holder's own first write, which is stamped at
|
|
648
|
+
* exactly `ts_R`, and `RocksTransactionLogStore.getSync` answers with the FIRST entry at a
|
|
649
|
+
* timestamp and key — so `_writeUpdate`'s keyed dedup would find this one and drop that write.
|
|
650
|
+
* The payload goes in as bytes rather than through `recordUpdater`, which would run it through
|
|
651
|
+
* schema projection and the table's shared structure dictionary.
|
|
652
|
+
*/
|
|
653
|
+
writeLockControlEntry(entry: LockControlEntry): Promise<number | undefined>;
|
|
654
|
+
/**
|
|
655
|
+
* The coordinator that holds this node's admissions, transport or not. Releasing and registering
|
|
656
|
+
* go here rather than through `lockCoordinator`, which answers undefined while a transport is
|
|
657
|
+
* momentarily unregistered — and a release dropped on that answer leaves the key's home holding
|
|
658
|
+
* its grant until the delegation's own deadline.
|
|
659
|
+
*/
|
|
660
|
+
get admittingCoordinator(): LockCoordinator | undefined;
|
|
661
|
+
/**
|
|
662
|
+
* This table's cluster lock coordinator, created on first use and only while a transport is
|
|
663
|
+
* registered for the database. Nothing is allocated on the Phase 0 path.
|
|
664
|
+
*/
|
|
665
|
+
get lockCoordinator(): LockCoordinator | undefined;
|
|
514
666
|
addAttributes(attributesToAdd: Attribute[]): Promise<any>;
|
|
515
667
|
removeAttributes(names: string[]): Promise<any>;
|
|
516
668
|
/**
|
|
@@ -518,6 +670,8 @@ export declare function makeTable(options: any): {
|
|
|
518
670
|
* @param options
|
|
519
671
|
*/
|
|
520
672
|
getSize(): number;
|
|
673
|
+
/** Sizes of this table's durable record-structure dictionaries. */
|
|
674
|
+
getStructureCounts(): StructureCounts | undefined;
|
|
521
675
|
getAuditSize(): number;
|
|
522
676
|
/**
|
|
523
677
|
* Get available/free/size storage stats for the table's underlying volume. Async because
|
|
@@ -556,8 +710,9 @@ export declare function makeTable(options: any): {
|
|
|
556
710
|
}, void, unknown>;
|
|
557
711
|
getHistoryOfRecord(id: any): Promise<any[]>;
|
|
558
712
|
clear(): Promise<any[]>;
|
|
713
|
+
/** Release everything makeTable() registered process-wide; the class must not be used afterwards. */
|
|
559
714
|
cleanup(): void;
|
|
560
|
-
_readTxnForContext(context: any): (
|
|
715
|
+
_readTxnForContext(context: any): (import("lmdb").Transaction | RocksTransaction) & {
|
|
561
716
|
openTimer?: number;
|
|
562
717
|
retryRisk?: number;
|
|
563
718
|
isDone?: boolean;
|