@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
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canonicalizeWatchPath = canonicalizeWatchPath;
|
|
4
|
+
exports.resolveWatchTarget = resolveWatchTarget;
|
|
5
|
+
exports._resetForTests = _resetForTests;
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const harper_logger_ts_1 = require("./logging/harper_logger.js");
|
|
9
|
+
const watchPathLogger = (0, harper_logger_ts_1.loggerWithTag)('watcher');
|
|
10
|
+
let canonicalizationWarned = false;
|
|
11
|
+
/**
|
|
12
|
+
* Canonicalize an absolute path before it is handed to a native file watch (`fs.watch`, directly or
|
|
13
|
+
* through chokidar).
|
|
14
|
+
*
|
|
15
|
+
* libuv's Windows fs-event callback rebuilds each event's absolute path, expands it with
|
|
16
|
+
* `GetLongPathNameW`, and then asserts the expansion still starts with the directory it stored when
|
|
17
|
+
* the watch was armed. An 8.3 short directory (`C:\Users\RUNNER~1\...`) never survives that
|
|
18
|
+
* comparison, and the assertion aborts the process rather than failing the watch, so a short path
|
|
19
|
+
* reaching a native watch takes down the whole server (harper#2234).
|
|
20
|
+
*
|
|
21
|
+
* Every Windows path is resolved rather than only the ones that look short: `GetLongPathNameW`'s
|
|
22
|
+
* documentation is explicit that a short name need not contain a tilde, and NTFS allows an
|
|
23
|
+
* explicitly assigned one, so any spelling test would leave the abort reachable. `realpathSync` is
|
|
24
|
+
* not a substitute for the `.native` variant — it resolves symlinks but leaves 8.3 names intact.
|
|
25
|
+
*
|
|
26
|
+
* Returns `undefined` when the long form cannot be established, because a path we cannot prove is
|
|
27
|
+
* expanded is exactly the one that must never reach a native watch.
|
|
28
|
+
*/
|
|
29
|
+
function canonicalizeWatchPath(watchPath, platform = process.platform) {
|
|
30
|
+
if (platform !== 'win32')
|
|
31
|
+
return watchPath;
|
|
32
|
+
try {
|
|
33
|
+
return node_fs_1.realpathSync.native(watchPath);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
if (!error || typeof error !== 'object' || !('code' in error) || error.code !== 'ENOENT')
|
|
37
|
+
return undefined;
|
|
38
|
+
// libuv stores only the parent directory of a file target and compares only that prefix, so a
|
|
39
|
+
// leaf that does not exist yet — a config file whose watcher is armed during the install window
|
|
40
|
+
// — still yields a watch path that cannot trip the assertion.
|
|
41
|
+
try {
|
|
42
|
+
return (0, node_path_1.join)(node_fs_1.realpathSync.native((0, node_path_1.dirname)(watchPath)), (0, node_path_1.basename)(watchPath));
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Watch target for a chokidar/`fs.watch` call: the canonical path, or the original path with
|
|
51
|
+
* `mustPoll`, which callers turn into their polling options. Polling stats the file instead of
|
|
52
|
+
* arming a native watch, so it cannot reach the abort.
|
|
53
|
+
*/
|
|
54
|
+
function resolveWatchTarget(watchPath) {
|
|
55
|
+
const canonical = canonicalizeWatchPath(watchPath);
|
|
56
|
+
if (canonical !== undefined)
|
|
57
|
+
return { path: canonical, mustPoll: false };
|
|
58
|
+
if (!canonicalizationWarned) {
|
|
59
|
+
canonicalizationWarned = true;
|
|
60
|
+
watchPathLogger.warn?.(`Could not resolve the long-path form of ${watchPath}. Falling back to polling-based watching for ` +
|
|
61
|
+
'affected watchers, because handing a Windows 8.3 short path to a native watch aborts the process.');
|
|
62
|
+
}
|
|
63
|
+
return { path: watchPath, mustPoll: true };
|
|
64
|
+
}
|
|
65
|
+
function _resetForTests() {
|
|
66
|
+
canonicalizationWarned = false;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=watchPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchPath.js","sourceRoot":"","sources":["../../utility/watchPath.ts"],"names":[],"mappings":";;AAyBA,sDAeC;AAOD,gDAWC;AAED,wCAEC;AA9DD,qCAAuC;AACvC,yCAAoD;AACpD,iEAA2D;AAE3D,MAAM,eAAe,GAAG,IAAA,gCAAa,EAAC,SAAS,CAAC,CAAC;AACjD,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAEnC;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,qBAAqB,CAAC,SAAiB,EAAE,WAAmB,OAAO,CAAC,QAAQ;IAC3F,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,CAAC;QACJ,OAAO,sBAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC3G,8FAA8F;QAC9F,gGAAgG;QAChG,8DAA8D;QAC9D,IAAI,CAAC;YACJ,OAAO,IAAA,gBAAI,EAAC,sBAAY,CAAC,MAAM,CAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC,EAAE,IAAA,oBAAQ,EAAC,SAAS,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,SAAiB;IACnD,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7B,sBAAsB,GAAG,IAAI,CAAC;QAC9B,eAAe,CAAC,IAAI,EAAE,CACrB,2CAA2C,SAAS,+CAA+C;YAClG,mGAAmG,CACpG,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,SAAgB,cAAc;IAC7B,sBAAsB,GAAG,KAAK,CAAC;AAChC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ChokidarOptions, type FSWatcher } from 'chokidar';
|
|
1
2
|
/**
|
|
2
3
|
* Returns `true` if the chokidar error indicates the OS-level watcher pool is
|
|
3
4
|
* exhausted (inotify watches on Linux, open file descriptors on macOS/Linux).
|
|
@@ -34,3 +35,43 @@ export declare const DIRECTORY_POLLING_FALLBACK_OPTIONS: {
|
|
|
34
35
|
*/
|
|
35
36
|
export declare function warnWatcherFallback(watchedPath: string): void;
|
|
36
37
|
export declare function _resetForTests(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Returns `true` for the asynchronous "the watched path went away" error raised
|
|
40
|
+
* by Node's `fs.FSWatcher` — on Windows, `EPERM: operation not permitted, watch`
|
|
41
|
+
* (errno -4048) when a watched directory is removed or swapped out. Unlike
|
|
42
|
+
* {@link isWatcherExhaustionError} there is nothing to degrade to: polling a
|
|
43
|
+
* path that no longer exists only burns CPU.
|
|
44
|
+
*
|
|
45
|
+
* All three conditions are load-bearing, because whatever this claims is
|
|
46
|
+
* swallowed process-wide:
|
|
47
|
+
*
|
|
48
|
+
* - `syscall === 'watch'` is only ever set by fs watch handles.
|
|
49
|
+
* - `EPERM` only. An async `ENOENT` from a watch handle has never been
|
|
50
|
+
* observed, whereas a *synchronous* one is the ordinary "watch a path that
|
|
51
|
+
* isn't there" misconfiguration, which must stay fatal.
|
|
52
|
+
* - no `path`. Node populates `path` on the error it throws out of
|
|
53
|
+
* `fs.watch()` and leaves it absent on the one it delivers to the handle,
|
|
54
|
+
* so without this a raw `fs.watch(missingPath)` reaching the guard would be
|
|
55
|
+
* mistaken for a benign lost watch and swallowed.
|
|
56
|
+
*/
|
|
57
|
+
export declare function isLostNativeWatchError(error: unknown): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* If `error` is a lost native watch error, mark it handled, log it, and report
|
|
60
|
+
* that it has been claimed. Exported so the per-watcher error routes can give it
|
|
61
|
+
* the same benign treatment on the day chokidar does deliver it to the wrapper
|
|
62
|
+
* (its polling and `persistent: true` branches already would).
|
|
63
|
+
*/
|
|
64
|
+
export declare function claimLostNativeWatchError(error: unknown): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Idempotently install the process-level listener that supplies the 'error'
|
|
67
|
+
* handler chokidar omits for non-persistent watchers. Called by
|
|
68
|
+
* {@link guardedWatch} so no watcher call site can forget it.
|
|
69
|
+
*/
|
|
70
|
+
export declare function installLostNativeWatchGuard(): void;
|
|
71
|
+
/**
|
|
72
|
+
* `chokidar.watch()` with the lost-native-watch guard installed. Every Harper
|
|
73
|
+
* chokidar watcher must go through this — a raw `chokidar.watch(..., { persistent: false })`
|
|
74
|
+
* can take down the thread the first time its path is deleted.
|
|
75
|
+
*/
|
|
76
|
+
export declare function guardedWatch(paths: string | string[], options?: ChokidarOptions): FSWatcher;
|
|
77
|
+
export declare function _lostNativeWatchCountForTests(): number;
|
|
@@ -5,11 +5,20 @@
|
|
|
5
5
|
// (EMFILE), native chokidar watchers emit an error and stop firing change
|
|
6
6
|
// events. Polling-based watching doesn't consume inotify handles or per-watcher
|
|
7
7
|
// file descriptors, so we fall back to it once and warn — see harper#488.
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.DIRECTORY_POLLING_FALLBACK_OPTIONS = exports.POLLING_FALLBACK_OPTIONS = void 0;
|
|
10
13
|
exports.isWatcherExhaustionError = isWatcherExhaustionError;
|
|
11
14
|
exports.warnWatcherFallback = warnWatcherFallback;
|
|
12
15
|
exports._resetForTests = _resetForTests;
|
|
16
|
+
exports.isLostNativeWatchError = isLostNativeWatchError;
|
|
17
|
+
exports.claimLostNativeWatchError = claimLostNativeWatchError;
|
|
18
|
+
exports.installLostNativeWatchGuard = installLostNativeWatchGuard;
|
|
19
|
+
exports.guardedWatch = guardedWatch;
|
|
20
|
+
exports._lostNativeWatchCountForTests = _lostNativeWatchCountForTests;
|
|
21
|
+
const chokidar_1 = __importDefault(require("chokidar"));
|
|
13
22
|
const harper_logger_ts_1 = require("./logging/harper_logger.js");
|
|
14
23
|
// One-time process-wide warning so a thundering herd of failing watchers doesn't
|
|
15
24
|
// produce hundreds of identical log lines.
|
|
@@ -69,5 +78,149 @@ function warnWatcherFallback(watchedPath) {
|
|
|
69
78
|
// Test-only hook to reset the one-time warning gate between cases.
|
|
70
79
|
function _resetForTests() {
|
|
71
80
|
exhaustionWarned = false;
|
|
81
|
+
lostNativeWatchCount = 0;
|
|
82
|
+
lostNativeWatchWarnThreshold = 1;
|
|
83
|
+
// Also drop the process listener, so a case that installed the guard can't leave one
|
|
84
|
+
// attached to the test runner's process for every case that follows.
|
|
85
|
+
process.removeListener('uncaughtException', handleUncaughtException);
|
|
86
|
+
lostNativeWatchGuardInstalled = false;
|
|
87
|
+
}
|
|
88
|
+
// ---------------------------------------------------------------------------
|
|
89
|
+
// Lost native watch (predominantly Windows)
|
|
90
|
+
// ---------------------------------------------------------------------------
|
|
91
|
+
//
|
|
92
|
+
// Every Harper watcher runs `persistent: false`, which is the one chokidar
|
|
93
|
+
// branch that never attaches an 'error' listener to the underlying Node
|
|
94
|
+
// `fs.FSWatcher` (chokidar `handler.js`, `setFsWatchListener`; still so at
|
|
95
|
+
// 5.0.0). Its `errHandler` covers only a synchronous throw out of `fs.watch()`
|
|
96
|
+
// — the ENOSPC/EMFILE route above. An asynchronous failure is emitted on a
|
|
97
|
+
// handle with no listener, so Node makes it an uncaughtException without it
|
|
98
|
+
// ever reaching chokidar; `.on('error')` on the wrapper we hold cannot see it.
|
|
99
|
+
// The process is therefore the only place it is observable, which is what
|
|
100
|
+
// `installLostNativeWatchGuard()` uses.
|
|
101
|
+
/**
|
|
102
|
+
* Returns `true` for the asynchronous "the watched path went away" error raised
|
|
103
|
+
* by Node's `fs.FSWatcher` — on Windows, `EPERM: operation not permitted, watch`
|
|
104
|
+
* (errno -4048) when a watched directory is removed or swapped out. Unlike
|
|
105
|
+
* {@link isWatcherExhaustionError} there is nothing to degrade to: polling a
|
|
106
|
+
* path that no longer exists only burns CPU.
|
|
107
|
+
*
|
|
108
|
+
* All three conditions are load-bearing, because whatever this claims is
|
|
109
|
+
* swallowed process-wide:
|
|
110
|
+
*
|
|
111
|
+
* - `syscall === 'watch'` is only ever set by fs watch handles.
|
|
112
|
+
* - `EPERM` only. An async `ENOENT` from a watch handle has never been
|
|
113
|
+
* observed, whereas a *synchronous* one is the ordinary "watch a path that
|
|
114
|
+
* isn't there" misconfiguration, which must stay fatal.
|
|
115
|
+
* - no `path`. Node populates `path` on the error it throws out of
|
|
116
|
+
* `fs.watch()` and leaves it absent on the one it delivers to the handle,
|
|
117
|
+
* so without this a raw `fs.watch(missingPath)` reaching the guard would be
|
|
118
|
+
* mistaken for a benign lost watch and swallowed.
|
|
119
|
+
*/
|
|
120
|
+
function isLostNativeWatchError(error) {
|
|
121
|
+
if (typeof error !== 'object' || error === null)
|
|
122
|
+
return false;
|
|
123
|
+
const { code, syscall, path } = error;
|
|
124
|
+
return syscall === 'watch' && code === 'EPERM' && path == null;
|
|
125
|
+
}
|
|
126
|
+
let lostNativeWatchCount = 0;
|
|
127
|
+
let lostNativeWatchWarnThreshold = 1;
|
|
128
|
+
/**
|
|
129
|
+
* If `error` is a lost native watch error, mark it handled, log it, and report
|
|
130
|
+
* that it has been claimed. Exported so the per-watcher error routes can give it
|
|
131
|
+
* the same benign treatment on the day chokidar does deliver it to the wrapper
|
|
132
|
+
* (its polling and `persistent: true` branches already would).
|
|
133
|
+
*/
|
|
134
|
+
function claimLostNativeWatchError(error) {
|
|
135
|
+
if (!isLostNativeWatchError(error))
|
|
136
|
+
return false;
|
|
137
|
+
const claimed = error;
|
|
138
|
+
// Counting one instance twice would trip the warn threshold early.
|
|
139
|
+
if (claimed.isHandled)
|
|
140
|
+
return true;
|
|
141
|
+
lostNativeWatchCount++;
|
|
142
|
+
// The claim is the classification above; the bookkeeping that follows must not be able to
|
|
143
|
+
// undo it. A frozen error (`isHandled` unassignable) or a throwing logger would otherwise
|
|
144
|
+
// make a failure just classified as benign fatal — here, or in a caller's 'error' route.
|
|
145
|
+
try {
|
|
146
|
+
fallbackLogger.trace?.(`Lost native file watch handle (occurrence ${lostNativeWatchCount}):`, error);
|
|
147
|
+
// A subsystem that has silently stopped being watched is what an operator needs to see, and
|
|
148
|
+
// the default level is `warn`, so trace alone would hide every occurrence after the first.
|
|
149
|
+
// Warning at each decade keeps a delete storm bounded without ever going fully silent.
|
|
150
|
+
if (lostNativeWatchCount >= lostNativeWatchWarnThreshold) {
|
|
151
|
+
lostNativeWatchWarnThreshold *= 10;
|
|
152
|
+
fallbackLogger.warn?.(`A native file watch handle failed asynchronously (EPERM, syscall=watch) and was suppressed to ` +
|
|
153
|
+
`keep the thread alive; occurrence ${lostNativeWatchCount}. Node reports no path for this error, ` +
|
|
154
|
+
`so it cannot be attributed to a specific watcher — whatever was watching that path has stopped ` +
|
|
155
|
+
`reporting changes until it is re-established. On Windows this is usually a watched directory ` +
|
|
156
|
+
`being deleted or replaced (a component redeploy, a package install, a test teardown). If file ` +
|
|
157
|
+
`changes stop being picked up somewhere, this is why. Subsequent occurrences log at trace, with ` +
|
|
158
|
+
`a warning at each tenfold increase.`);
|
|
159
|
+
}
|
|
160
|
+
// Last: threadServer.js and socketRouter.ts skip errors already marked handled, so failing
|
|
161
|
+
// to mark one costs only a duplicate log line.
|
|
162
|
+
claimed.isHandled = true;
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Marked or not, logged or not, the error stays claimed.
|
|
166
|
+
}
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
let lostNativeWatchGuardInstalled = false;
|
|
170
|
+
function handleUncaughtException(error) {
|
|
171
|
+
let claimed = false;
|
|
172
|
+
try {
|
|
173
|
+
claimed = claimLostNativeWatchError(error);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// Classification is all that can still throw (a property getter that does), and a throw
|
|
177
|
+
// from inside an 'uncaughtException' listener would replace Node's report with it and
|
|
178
|
+
// exit 7. An error that cannot be classified is not ours to claim.
|
|
179
|
+
claimed = false;
|
|
180
|
+
}
|
|
181
|
+
if (claimed)
|
|
182
|
+
return;
|
|
183
|
+
// Node suppresses its default fatal handling as soon as *any* 'uncaughtException' listener
|
|
184
|
+
// exists, so being the only listener would turn unrelated crashes into silent hangs.
|
|
185
|
+
if (process.listenerCount('uncaughtException') > 1)
|
|
186
|
+
return;
|
|
187
|
+
process.removeListener('uncaughtException', handleUncaughtException);
|
|
188
|
+
// A process that somehow survives re-arms on its next guardedWatch() rather than running
|
|
189
|
+
// unguarded thereafter.
|
|
190
|
+
lostNativeWatchGuardInstalled = false;
|
|
191
|
+
// nextTick, not a throw from inside the handler: that keeps Node's report and exit code 1.
|
|
192
|
+
process.nextTick(() => {
|
|
193
|
+
throw error;
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Idempotently install the process-level listener that supplies the 'error'
|
|
198
|
+
* handler chokidar omits for non-persistent watchers. Called by
|
|
199
|
+
* {@link guardedWatch} so no watcher call site can forget it.
|
|
200
|
+
*/
|
|
201
|
+
function installLostNativeWatchGuard() {
|
|
202
|
+
if (lostNativeWatchGuardInstalled)
|
|
203
|
+
return;
|
|
204
|
+
lostNativeWatchGuardInstalled = true;
|
|
205
|
+
// prepend, not append: threadServer.js already has an 'uncaughtException'
|
|
206
|
+
// listener, and the `isHandled` mark above only suppresses its log line if
|
|
207
|
+
// this guard runs first.
|
|
208
|
+
process.prependListener('uncaughtException', handleUncaughtException);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* `chokidar.watch()` with the lost-native-watch guard installed. Every Harper
|
|
212
|
+
* chokidar watcher must go through this — a raw `chokidar.watch(..., { persistent: false })`
|
|
213
|
+
* can take down the thread the first time its path is deleted.
|
|
214
|
+
*/
|
|
215
|
+
function guardedWatch(paths, options) {
|
|
216
|
+
installLostNativeWatchGuard();
|
|
217
|
+
// Deliberately a property access on the default export rather than a named `watch` import:
|
|
218
|
+
// unitTests/server/threads/watchDirFallback.test.js drives the reopen-on-exhaustion chain by
|
|
219
|
+
// swapping `chokidar.default.watch`, and a named import binds past that seam.
|
|
220
|
+
return chokidar_1.default.watch(paths, options);
|
|
221
|
+
}
|
|
222
|
+
// Test-only: number of lost native watch errors claimed so far.
|
|
223
|
+
function _lostNativeWatchCountForTests() {
|
|
224
|
+
return lostNativeWatchCount;
|
|
72
225
|
}
|
|
73
226
|
//# sourceMappingURL=watcherFallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcherFallback.js","sourceRoot":"","sources":["../../utility/watcherFallback.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E
|
|
1
|
+
{"version":3,"file":"watcherFallback.js","sourceRoot":"","sources":["../../utility/watcherFallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import Joi from 'joi';
|
|
2
|
+
/**
|
|
3
|
+
* What `deploy_component` writes into a root-config entry, plus the deployment-level keys
|
|
4
|
+
* componentLoader reads off it — the shape of a `sql` application deployed before the name was
|
|
5
|
+
* reserved. Closed to new keys: nothing new may take this shape.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LEGACY_SQL_APPLICATION_KEYS: string[];
|
|
8
|
+
export declare function isLegacySqlApplicationEntry(value: unknown): boolean;
|
|
2
9
|
export declare const routeConstraints: Joi.AlternativesSchema<any>;
|
|
10
|
+
/**
|
|
11
|
+
* Validate a `models:` block on its own — the hot-reload path applies a watched file's block
|
|
12
|
+
* without the full boot validation, and must enforce the same schema boot does.
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateModelsBlock(models: any): Joi.ValidationResult<any>;
|
|
3
15
|
export declare function configValidator(configJson: any, skipFsValidation?: boolean): Joi.ValidationResult<any>;
|
|
4
16
|
export declare const UDS_PATH_MAX_BYTES: number;
|
|
5
17
|
/**
|