@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
|
@@ -39,7 +39,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
};
|
|
40
40
|
})();
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.RecordEncoder = exports.lastMetadata = exports.lastValueEncoding = exports.RecordObject = exports.entryMap = exports.HAS_ADDITIONAL_AUDIT_REFS = exports.HAS_STRUCTURE_UPDATE = exports.PENDING_LOCAL_TIME = exports.HAS_NODE_ID = exports.HAS_RESIDENCY_ID = exports.HAS_EXPIRATION = exports.TIMESTAMP_RECORD_PREVIOUS = exports.TIMESTAMP_ASSIGN_PREVIOUS = exports.TIMESTAMP_ASSIGN_LAST = exports.TIMESTAMP_ASSIGN_NEW = exports.NO_TIMESTAMP = exports.ENTRY = exports.METADATA = exports.LOCAL_TIMESTAMP = exports.NEW_TIMESTAMP_PLACEHOLDER = exports.PREVIOUS_TIMESTAMP_PLACEHOLDER = exports.LAST_TIMESTAMP_PLACEHOLDER = exports.TIMESTAMP_PLACEHOLDER = void 0;
|
|
42
|
+
exports.RecordEncoder = exports.lastMetadata = exports.lastValueEncoding = exports.RecordObject = exports.entryMap = exports.VERSION_REUSED = exports.HAS_ADDITIONAL_AUDIT_REFS = exports.HAS_STRUCTURE_UPDATE = exports.PENDING_LOCAL_TIME = exports.HAS_NODE_ID = exports.HAS_RESIDENCY_ID = exports.HAS_EXPIRATION = exports.TIMESTAMP_RECORD_PREVIOUS = exports.TIMESTAMP_ASSIGN_PREVIOUS = exports.TIMESTAMP_ASSIGN_LAST = exports.TIMESTAMP_ASSIGN_NEW = exports.NO_TIMESTAMP = exports.ENTRY = exports.METADATA = exports.LOCAL_TIMESTAMP = exports.NEW_TIMESTAMP_PLACEHOLDER = exports.PREVIOUS_TIMESTAMP_PLACEHOLDER = exports.LAST_TIMESTAMP_PLACEHOLDER = exports.TIMESTAMP_PLACEHOLDER = exports.DEFAULT_MAX_TYPED_STRUCTURES = void 0;
|
|
43
43
|
exports.isMissingStructureError = isMissingStructureError;
|
|
44
44
|
exports.storedFieldsOnly = storedFieldsOnly;
|
|
45
45
|
exports.assignStoredFields = assignStoredFields;
|
|
@@ -69,6 +69,26 @@ const StructonEncoder = (0, structon_1.createStructon)(msgpackr_1.Encoder);
|
|
|
69
69
|
// missing on this node (see HarperFast/harper#1163). Surfaces the otherwise-silent condition in
|
|
70
70
|
// monitoring; the store name is passed as the metric path.
|
|
71
71
|
const MISSING_STRUCTURE_METRIC = 'decode-missing-structure';
|
|
72
|
+
// Reaching this bound is not an error: novel shapes fall back to plain msgpackr encoding, which
|
|
73
|
+
// round-trips correctly but gives up random-access field reads.
|
|
74
|
+
exports.DEFAULT_MAX_TYPED_STRUCTURES = 256;
|
|
75
|
+
// Mirrors structon's onLoadedStructures over the four durable payload shapes it accepts. The
|
|
76
|
+
// bare-array and cbor-x forms carry named structures only; structon keeps the encoder's own typed
|
|
77
|
+
// dictionary for them, and they are written by the capped fallback path (msgpackr's base save
|
|
78
|
+
// overwriting the combined payload, before structon's best-effort re-save). That window is by
|
|
79
|
+
// definition a saturated store, so reporting zero there would show an empty dictionary at the one
|
|
80
|
+
// moment the count matters most.
|
|
81
|
+
function countDurableStructures(sharedData, localTyped) {
|
|
82
|
+
if (!sharedData)
|
|
83
|
+
return { typed: 0, classic: 0 };
|
|
84
|
+
if (sharedData instanceof Map)
|
|
85
|
+
return { typed: sharedData.get('typed')?.length ?? 0, classic: sharedData.get('named')?.length ?? 0 };
|
|
86
|
+
if (Array.isArray(sharedData))
|
|
87
|
+
return { typed: localTyped, classic: sharedData.length };
|
|
88
|
+
if (!sharedData.named && !sharedData.typed && Array.isArray(sharedData.structures))
|
|
89
|
+
return { typed: localTyped, classic: sharedData.structures.length };
|
|
90
|
+
return { typed: sharedData.typed?.length ?? 0, classic: sharedData.named?.length ?? 0 };
|
|
91
|
+
}
|
|
72
92
|
// Terminal error messages msgpackr/structon throw when a record references a shared structure that
|
|
73
93
|
// is not in this node's structures buffer. Both the typed (random-access) path (structon's
|
|
74
94
|
// readStruct) and the classic path (msgpackr's createSecondByteReader) reload the structures from
|
|
@@ -86,6 +106,8 @@ function isMissingStructureError(error) {
|
|
|
86
106
|
exports.TIMESTAMP_PLACEHOLDER = new Uint8Array([1, 1, 1, 1, 4, 0x40, 0, 0]);
|
|
87
107
|
// the first byte here indicates that we use the last timestamp
|
|
88
108
|
exports.LAST_TIMESTAMP_PLACEHOLDER = new Uint8Array([1, 1, 1, 1, 1, 0, 0, 0]);
|
|
109
|
+
// Never write this into an audit entry value: the substitution resolves to 2.0 when no previous time
|
|
110
|
+
// was recorded, and the audit format reads a leading byte other than 0x42 as "no field here". See harper#2247.
|
|
89
111
|
exports.PREVIOUS_TIMESTAMP_PLACEHOLDER = new Uint8Array([1, 1, 1, 1, 3, 0x40, 0, 0]);
|
|
90
112
|
exports.NEW_TIMESTAMP_PLACEHOLDER = new Uint8Array([1, 1, 1, 1, 0, 0x40, 0, 0]);
|
|
91
113
|
exports.LOCAL_TIMESTAMP = Symbol('local-timestamp');
|
|
@@ -104,6 +126,22 @@ exports.HAS_NODE_ID = 64;
|
|
|
104
126
|
exports.PENDING_LOCAL_TIME = 1;
|
|
105
127
|
exports.HAS_STRUCTURE_UPDATE = 0x100;
|
|
106
128
|
exports.HAS_ADDITIONAL_AUDIT_REFS = 0x80;
|
|
129
|
+
// A resequenced write keeps the (newer) version it merged onto, so one version identifies two
|
|
130
|
+
// different stored values and version equality proves nothing. The metadata word this is set in is
|
|
131
|
+
// the same header word the VerificationTable reads at value offset 8 — ACTION_32_BIT is the tag
|
|
132
|
+
// byte its predicate requires — so the bit is what stops the native layer vouching for the version.
|
|
133
|
+
exports.VERSION_REUSED = rocksdb_js_1.constants.VERSION_NOT_UNIQUE_FLAG;
|
|
134
|
+
// The bit is persisted in every resequenced record, so a rocksdb-js that moved it down onto one of
|
|
135
|
+
// the flags above (or up into the tag byte) would silently change what records already on disk
|
|
136
|
+
// mean: it must stay a single bit strictly between them.
|
|
137
|
+
if (typeof exports.VERSION_REUSED !== 'number' ||
|
|
138
|
+
(exports.VERSION_REUSED & (exports.VERSION_REUSED - 1)) !== 0 ||
|
|
139
|
+
exports.VERSION_REUSED < 0x10000 ||
|
|
140
|
+
exports.VERSION_REUSED > 0x800000)
|
|
141
|
+
throw new Error(`rocksdb-js VERSION_NOT_UNIQUE_FLAG (${exports.VERSION_REUSED}) is not a single bit in the range Harper record metadata reserves for it — requires @harperfast/rocksdb-js >= 2.8.0`);
|
|
142
|
+
function versionIsReused(newVersion, existingEntry) {
|
|
143
|
+
return existingEntry?.version != null && newVersion <= existingEntry.version;
|
|
144
|
+
}
|
|
107
145
|
const TRACKED_WRITE_TYPES = new Set(['put', 'patch', 'delete', 'message', 'publish']);
|
|
108
146
|
// For now we use this as the private property mechanism for mapping records to entries.
|
|
109
147
|
// WeakMaps are definitely not the fastest form of private properties, but they are the only
|
|
@@ -203,6 +241,7 @@ function assignStoredFields(target, source, encoder) {
|
|
|
203
241
|
}
|
|
204
242
|
class RecordEncoder extends StructonEncoder {
|
|
205
243
|
rootStore;
|
|
244
|
+
randomAccessStructure = false;
|
|
206
245
|
structureUpdate;
|
|
207
246
|
// Set by TableResource.updatedAttributes. Undefined for a store with no resolved attributes, which
|
|
208
247
|
// is what keeps the projection off that store's writes entirely.
|
|
@@ -223,7 +262,7 @@ class RecordEncoder extends StructonEncoder {
|
|
|
223
262
|
// Bound the per-encoder typed-structure dictionary. It is append-only and pinned on the
|
|
224
263
|
// long-lived primary store, so a wide/sparse schema (whose records vary by per-field value
|
|
225
264
|
// width) can grow it unbounded and exhaust memory. Caller-overridable; default caps it.
|
|
226
|
-
options.maxOwnStructures ??=
|
|
265
|
+
options.maxOwnStructures ??= exports.DEFAULT_MAX_TYPED_STRUCTURES;
|
|
227
266
|
/**
|
|
228
267
|
* The base class for records that provides the read-only methods for accessing
|
|
229
268
|
* metadata and will be assigned computed property getters. On its own, these instances
|
|
@@ -239,6 +278,7 @@ class RecordEncoder extends StructonEncoder {
|
|
|
239
278
|
// (e.g. __dbis__, useVersions=false) must not — see the encode hook + harper#1307. Default to
|
|
240
279
|
// true when unspecified so an option that doesn't propagate can't silently strip prefixes.
|
|
241
280
|
this.useVersions = options.useVersions !== false;
|
|
281
|
+
this.randomAccessStructure = options.randomAccessStructure === true;
|
|
242
282
|
// structon (the StructonEncoder base) always installs the struct write hook. For DBIs
|
|
243
283
|
// that don't opt into struct mode (non-primary, e.g. __dbis__), force it to bail (return
|
|
244
284
|
// 0) so objects are written in plain msgpackr records mode — decodable by readers without
|
|
@@ -424,6 +464,7 @@ class RecordEncoder extends StructonEncoder {
|
|
|
424
464
|
// HAS_STRUCTURE_UPDATE in the audit log for a structure that was never persisted.
|
|
425
465
|
if (committed === true) {
|
|
426
466
|
this.structureUpdate = structures;
|
|
467
|
+
this.checkStructureCapacity();
|
|
427
468
|
return true;
|
|
428
469
|
}
|
|
429
470
|
return false;
|
|
@@ -431,6 +472,8 @@ class RecordEncoder extends StructonEncoder {
|
|
|
431
472
|
else {
|
|
432
473
|
const result = superSaveStructures.call(this, structures, isCompatible);
|
|
433
474
|
this.structureUpdate = structures;
|
|
475
|
+
if (result !== false)
|
|
476
|
+
this.checkStructureCapacity();
|
|
434
477
|
return result;
|
|
435
478
|
}
|
|
436
479
|
};
|
|
@@ -441,10 +484,52 @@ class RecordEncoder extends StructonEncoder {
|
|
|
441
484
|
return buffer ? this.decode(buffer) : undefined;
|
|
442
485
|
}
|
|
443
486
|
else {
|
|
444
|
-
|
|
487
|
+
// msgpackr only defines getStructures when the option was supplied; a store with no
|
|
488
|
+
// shared-structures mechanism has no durable dictionary to report.
|
|
489
|
+
return superGetStructures?.call(this);
|
|
445
490
|
}
|
|
446
491
|
};
|
|
447
492
|
}
|
|
493
|
+
/**
|
|
494
|
+
* Sizes of this store's record-structure dictionaries. Read from the durable payload, not this
|
|
495
|
+
* encoder's arrays: each worker owns an encoder and loads lazily, so a worker that never encoded
|
|
496
|
+
* for this store holds empty arrays for a store whose dictionary is full.
|
|
497
|
+
*/
|
|
498
|
+
getStructureCounts() {
|
|
499
|
+
const { typed, classic } = countDurableStructures(this.getStructures(), this.typedStructs?.length ?? 0);
|
|
500
|
+
return {
|
|
501
|
+
typed,
|
|
502
|
+
classic,
|
|
503
|
+
typedLimit: this.maxOwnStructures ?? exports.DEFAULT_MAX_TYPED_STRUCTURES,
|
|
504
|
+
typedEnabled: this.randomAccessStructure,
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Warn once per encoder when its typed dictionary is at the bound. Fires from the post-save path,
|
|
509
|
+
* so it needs some structure save to happen -- any save, including a classic one -- and it needs
|
|
510
|
+
* this encoder to have loaded the dictionary. Several workers can therefore each warn for one
|
|
511
|
+
* table, and a worker that never saves after loading a full dictionary stays silent. The counts
|
|
512
|
+
* above are the reliable signal; this is the heads-up. It must not escape into the save's return
|
|
513
|
+
* value -- the structures are committed.
|
|
514
|
+
*/
|
|
515
|
+
#reportedStructureSaturation = false;
|
|
516
|
+
checkStructureCapacity() {
|
|
517
|
+
if (this.#reportedStructureSaturation)
|
|
518
|
+
return;
|
|
519
|
+
const typedLimit = this.maxOwnStructures ?? exports.DEFAULT_MAX_TYPED_STRUCTURES;
|
|
520
|
+
if ((this.typedStructs?.length ?? 0) < typedLimit)
|
|
521
|
+
return;
|
|
522
|
+
this.#reportedStructureSaturation = true;
|
|
523
|
+
try {
|
|
524
|
+
harperLogger.warn(`Typed-structure dictionary for store ${this.name ?? this.rootStore?.name ?? '(unnamed)'} reached its limit of ` +
|
|
525
|
+
`${typedLimit} structures; new record shapes will be stored without random-access field ` +
|
|
526
|
+
'encoding. Dictionary size follows the variety of shapes written -- field set, key order, ' +
|
|
527
|
+
'and per-field value width -- not column count (see HarperFast/harper#2220).');
|
|
528
|
+
}
|
|
529
|
+
catch {
|
|
530
|
+
// the structures are already committed; a failing sink must not fail the write
|
|
531
|
+
}
|
|
532
|
+
}
|
|
448
533
|
decode(buffer, options) {
|
|
449
534
|
exports.lastMetadata = null;
|
|
450
535
|
const start = options?.start || 0;
|
|
@@ -800,6 +885,10 @@ function recordUpdater(store, tableId, auditStore) {
|
|
|
800
885
|
assignMetadata |= exports.HAS_EXPIRATION;
|
|
801
886
|
metadataInNextEncoding = assignMetadata;
|
|
802
887
|
expiresAtNextEncoding = expiresAt;
|
|
888
|
+
// Math.max normalizes the -1 "no metadata word" sentinel to 0 first: OR-ing the flag into
|
|
889
|
+
// -1 directly would stay -1 and silently drop the metadata word (and the flag with it).
|
|
890
|
+
if (isRocksDB && record !== undefined && versionIsReused(newVersion, existingEntry))
|
|
891
|
+
metadataInNextEncoding = Math.max(metadataInNextEncoding, 0) | exports.VERSION_REUSED;
|
|
803
892
|
const putOptions = {
|
|
804
893
|
version: newVersion,
|
|
805
894
|
instructedWrite: timestampNextEncoding > 0,
|
|
@@ -817,9 +906,9 @@ function recordUpdater(store, tableId, auditStore) {
|
|
|
817
906
|
}
|
|
818
907
|
else
|
|
819
908
|
residencyIdAtNextEncoding = 0;
|
|
820
|
-
const
|
|
821
|
-
if (
|
|
822
|
-
nodeIdAtNextEncoding =
|
|
909
|
+
const recordNodeId = options?.recordNodeId ?? options?.nodeId ?? (audit ? (0, nodeIdMapping_ts_1.getThisNodeId)(auditStore) : undefined);
|
|
910
|
+
if (recordNodeId >= 0) {
|
|
911
|
+
nodeIdAtNextEncoding = recordNodeId;
|
|
823
912
|
metadataInNextEncoding |= exports.HAS_NODE_ID;
|
|
824
913
|
}
|
|
825
914
|
else
|
|
@@ -898,8 +987,20 @@ function recordUpdater(store, tableId, auditStore) {
|
|
|
898
987
|
const nodeId = options?.nodeId ?? (0, nodeIdMapping_ts_1.getThisNodeId)(auditStore) ?? 0;
|
|
899
988
|
const viaNodeId = options?.viaNodeId ?? nodeId;
|
|
900
989
|
if (resolveRecord && existingEntry?.localTime) {
|
|
901
|
-
|
|
902
|
-
|
|
990
|
+
let replacingId = existingEntry.localTime;
|
|
991
|
+
let replacingEntry;
|
|
992
|
+
if (isRocksDB && existingEntry.additionalAuditRefs) {
|
|
993
|
+
for (const ref of existingEntry.additionalAuditRefs) {
|
|
994
|
+
const candidate = auditStore.get(ref.version, tableId, id, ref.nodeId);
|
|
995
|
+
if (candidate?.version === existingEntry.version &&
|
|
996
|
+
(candidate.nodeId ?? 0) === (existingEntry.nodeId ?? 0)) {
|
|
997
|
+
replacingId = ref.version;
|
|
998
|
+
replacingEntry = candidate;
|
|
999
|
+
break;
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
replacingEntry ??= auditStore.get(replacingId, tableId, id, existingEntry.nodeId);
|
|
903
1004
|
if (replacingEntry) {
|
|
904
1005
|
const previousVersion = replacingEntry.previousVersion;
|
|
905
1006
|
result = auditStore[isRocksDB ? 'putSync' : 'put'](replacingId, {
|
|
@@ -922,7 +1023,7 @@ function recordUpdater(store, tableId, auditStore) {
|
|
|
922
1023
|
}
|
|
923
1024
|
}
|
|
924
1025
|
result = auditStore[isRocksDB ? 'putSync' : 'put'](record === undefined ? exports.NEW_TIMESTAMP_PLACEHOLDER : exports.LAST_TIMESTAMP_PLACEHOLDER, {
|
|
925
|
-
version: newVersion,
|
|
1026
|
+
version: options?.recordVersion ?? newVersion,
|
|
926
1027
|
tableId,
|
|
927
1028
|
recordId: id,
|
|
928
1029
|
previousVersion: isRocksDB ? existingEntry?.version : existingEntry?.localTime,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordEncoder.js","sourceRoot":"","sources":["../../resources/RecordEncoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RecordEncoder.js","sourceRoot":"","sources":["../../resources/RecordEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,8 @@ export declare class RequestTarget extends URLSearchParams {
|
|
|
28
28
|
select?: Select;
|
|
29
29
|
/** Return an explanation of the query order */
|
|
30
30
|
explain?: boolean;
|
|
31
|
+
/** Request a total count of matching records for pagination (REST `Prefer: count=exact|estimated`). */
|
|
32
|
+
count?: 'exact' | 'estimated';
|
|
31
33
|
/** Force the query to be executed in the order of conditions */
|
|
32
34
|
enforceExecutionOrder?: boolean;
|
|
33
35
|
lazy?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestTarget.js","sourceRoot":"","sources":["../../resources/RequestTarget.ts"],"names":[],"mappings":";;;AAEA,2CAAyC;AAEzC,MAAa,aAAc,SAAQ,eAAe;IACjD,OAAO,CAAU;IACjB,QAAQ,CAAS;IACjB,MAAM,CAAU;IAChB,gEAAgE;IAChE,EAAE,CAAM;IAUR,0EAA0E;IAC1E,YAAY,CAAW;IAWvB,+CAA+C;IAC/C,yDAAyD;IACzD,IAAI,GAAU,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"RequestTarget.js","sourceRoot":"","sources":["../../resources/RequestTarget.ts"],"names":[],"mappings":"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"}
|
|
@@ -123,21 +123,53 @@ class Resource {
|
|
|
123
123
|
*/
|
|
124
124
|
static put = transactional(function (resource, query, request, data) {
|
|
125
125
|
if (Array.isArray(data) && resource.#isCollection && resource.constructor.loadAsInstance !== false) {
|
|
126
|
+
const resourceClass = resource.constructor;
|
|
127
|
+
const primaryKey = resourceClass.primaryKey;
|
|
128
|
+
// Before dispatching anything: a malformed body must not race a sibling's write, and a bare
|
|
129
|
+
// dereference below would reach the client as a 500 carrying V8's wording. A primitive is
|
|
130
|
+
// malformed for the same reason — only a Table's own key validation rejects one later, so a
|
|
131
|
+
// plain Resource's override would otherwise be handed it.
|
|
132
|
+
for (let index = 0; index < data.length; index++) {
|
|
133
|
+
const element = data[index];
|
|
134
|
+
if (element == null || typeof element !== 'object')
|
|
135
|
+
throw new hdbError_ts_1.ClientError(`Array element at index ${index} is ${element === null ? 'null' : typeof element}, expected a record`);
|
|
136
|
+
}
|
|
137
|
+
const elementTarget = elementTargetFactory(query);
|
|
126
138
|
const results = [];
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
139
|
+
try {
|
|
140
|
+
for (let index = 0; index < data.length; index++) {
|
|
141
|
+
const element = data[index];
|
|
142
|
+
const target = elementTarget(element[primaryKey]);
|
|
143
|
+
const elementResource = resourceClass.getResource(target, request, {
|
|
144
|
+
async: true,
|
|
145
|
+
});
|
|
146
|
+
// `target`, not `request`: this is the target slot, and Table's back-compat shift only
|
|
147
|
+
// recognizes a RequestTarget there — a context is taken for the record.
|
|
148
|
+
// `missingMethod` rather than an unguarded call, so a resource without `put` answers 405
|
|
149
|
+
// here exactly as it does on the single-record path below.
|
|
150
|
+
if (typeof elementResource.then === 'function')
|
|
151
|
+
results.push(elementResource.then((resource) => resource.put ? resource.put(element, target) : missingMethod(resource, 'put')));
|
|
152
|
+
else if (elementResource.put)
|
|
153
|
+
results.push(elementResource.put(element, target));
|
|
154
|
+
else
|
|
155
|
+
missingMethod(elementResource, 'put');
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
// Settle the already-dispatched elements or a rejection among them goes unhandled. Then
|
|
160
|
+
// report the earliest-index failure, the same rule `settleElements` applies: every sibling
|
|
161
|
+
// already dispatched precedes the element that threw, so the batch reports the same failure
|
|
162
|
+
// whether that element's dispatch resolved synchronously or asynchronously.
|
|
163
|
+
return Promise.allSettled(results).then((settled) => {
|
|
164
|
+
const failed = settled.find((sibling) => sibling.status === 'rejected');
|
|
165
|
+
if (!failed)
|
|
166
|
+
throw error;
|
|
167
|
+
throw failed.reason;
|
|
134
168
|
});
|
|
135
|
-
if (typeof elementResource.then === 'function')
|
|
136
|
-
results.push(elementResource.then((resource) => resource.put(element, request)));
|
|
137
|
-
else
|
|
138
|
-
results.push(elementResource.put(element, query));
|
|
139
169
|
}
|
|
140
|
-
|
|
170
|
+
// Not `Promise.all`: settling the batch while a slower element is still resolving lets that
|
|
171
|
+
// element commit outside the failed batch — a partially applied array PUT.
|
|
172
|
+
return settleElements(results);
|
|
141
173
|
}
|
|
142
174
|
return resource.put
|
|
143
175
|
? resource.constructor.loadAsInstance === false
|
|
@@ -454,6 +486,55 @@ function snakeCase(camelCase) {
|
|
|
454
486
|
return (camelCase[0].toLowerCase() +
|
|
455
487
|
camelCase.slice(1).replace(/[a-z][A-Z][a-z]/g, (letters) => letters[0] + '_' + letters.slice(1)));
|
|
456
488
|
}
|
|
489
|
+
/**
|
|
490
|
+
* Mint per-element targets for a fanned-out batch write. Each element needs its own object — its id
|
|
491
|
+
* must not be visible to a sibling whose dispatch resolves later — but it also needs the request's
|
|
492
|
+
* query and route metadata, which a `put()` override can read. The request's contribution is
|
|
493
|
+
* therefore resolved once here rather than deep-cloned per element, and nested metadata is shared
|
|
494
|
+
* rather than copied. `checkPermission` never carries: the collection receiver's single verdict is
|
|
495
|
+
* authoritative and per-element dispatch must not re-arm it.
|
|
496
|
+
*/
|
|
497
|
+
function elementTargetFactory(query) {
|
|
498
|
+
const base = cloneRequestTarget(query);
|
|
499
|
+
const search = base.toString();
|
|
500
|
+
// Only what the element target would not otherwise have. `RequestTarget` declares `pathname`,
|
|
501
|
+
// `search` and `sort` without `declare`, so they are own properties on every instance and would
|
|
502
|
+
// otherwise always be "carried" — overwriting what this element's own construction just derived,
|
|
503
|
+
// and making the skip below dead. A nullish own value carries no metadata either.
|
|
504
|
+
const carried = {};
|
|
505
|
+
for (const key of Object.keys(base)) {
|
|
506
|
+
if (key === 'id' || key === 'isCollection' || key === 'pathname' || key === 'search')
|
|
507
|
+
continue;
|
|
508
|
+
const value = base[key];
|
|
509
|
+
if (value != null)
|
|
510
|
+
carried[key] = value;
|
|
511
|
+
}
|
|
512
|
+
const hasCarried = Object.keys(carried).length > 0;
|
|
513
|
+
return (id) => {
|
|
514
|
+
const target = search ? new RequestTarget_ts_1.RequestTarget(search) : new RequestTarget_ts_1.RequestTarget();
|
|
515
|
+
if (hasCarried)
|
|
516
|
+
Object.assign(target, carried);
|
|
517
|
+
target.id = id;
|
|
518
|
+
target.isCollection = false;
|
|
519
|
+
return target;
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Report a fanned-out batch write's outcome only once every element has staged or failed its own
|
|
524
|
+
* write, so the enclosing transaction cannot unwind under one. Rejects with the first failure.
|
|
525
|
+
*/
|
|
526
|
+
function settleElements(results) {
|
|
527
|
+
return Promise.allSettled(results).then((settled) => {
|
|
528
|
+
const values = new Array(settled.length);
|
|
529
|
+
for (let index = 0; index < settled.length; index++) {
|
|
530
|
+
const element = settled[index];
|
|
531
|
+
if (element.status === 'rejected')
|
|
532
|
+
throw element.reason;
|
|
533
|
+
values[index] = element.value;
|
|
534
|
+
}
|
|
535
|
+
return values;
|
|
536
|
+
});
|
|
537
|
+
}
|
|
457
538
|
/**
|
|
458
539
|
* This is responsible for arranging arguments in the main static methods and creating the appropriate context and default transaction wrapping
|
|
459
540
|
* @param action
|
|
@@ -625,7 +706,10 @@ function transactional(action, options) {
|
|
|
625
706
|
if (!query) {
|
|
626
707
|
query = new RequestTarget_ts_1.RequestTarget();
|
|
627
708
|
query.id = id;
|
|
628
|
-
|
|
709
|
+
// The collection inferred from the batch's null id has to survive onto the synthesized target,
|
|
710
|
+
// or the array is dispatched as one record update against a null primary key. Array-only:
|
|
711
|
+
// a null id on non-array data means auto-generate, not collection.
|
|
712
|
+
if (isCollection && options.method === 'put' && Array.isArray(data))
|
|
629
713
|
query.isCollection = true;
|
|
630
714
|
}
|
|
631
715
|
if (options.method === 'query' && data && typeof data === 'object') {
|
|
@@ -870,17 +954,26 @@ function registerLiveSubscriptionForContext(subscription, resource, admittedTarg
|
|
|
870
954
|
// JWT exp of the bearer credential (set by the auth layer); undefined for password/mTLS/session.
|
|
871
955
|
authExpiresAt: user.authExpiresAt,
|
|
872
956
|
recheck: async () => {
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
957
|
+
let fresh;
|
|
958
|
+
if (user._scopedToken) {
|
|
959
|
+
// A scoped token's identity IS its embedded role — never re-resolve its attribution
|
|
960
|
+
// username against hdb_user (it may not exist, or may name an unrelated principal
|
|
961
|
+
// created later). Expiry (authExpiresAt above) is its only revocation.
|
|
962
|
+
fresh = user;
|
|
963
|
+
}
|
|
964
|
+
else {
|
|
965
|
+
// Re-fetch current user state — the user/role cache is rebuilt on mutations — so a dropped or
|
|
966
|
+
// role-stripped user no longer authorizes.
|
|
967
|
+
const { findAndValidateUser } = require('../security/user');
|
|
968
|
+
fresh = await findAndValidateUser(username, undefined, false);
|
|
969
|
+
if (!fresh?.role)
|
|
970
|
+
return false;
|
|
971
|
+
// Advance the subscription's context to the fresh user so downstream checks — context.user
|
|
972
|
+
// and getCurrentUser() (which reads the resource's context) — evaluate against current state,
|
|
973
|
+
// not the stale user captured at subscribe time.
|
|
974
|
+
if (context)
|
|
975
|
+
context.user = fresh;
|
|
976
|
+
}
|
|
884
977
|
// Re-run the same operation-level allowRead that granted the subscription.
|
|
885
978
|
const reTarget = cloneRequestTarget(admittedTarget);
|
|
886
979
|
reTarget.checkPermission = fresh.role?.permission;
|