@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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import PermissionResponseObject from '../security/data_objects/PermissionResponseObject.ts';
|
|
1
2
|
/**
|
|
2
3
|
* Register an authorization entry for a dynamically-registered operation (via
|
|
3
4
|
* server.registerOperation), so it flows through verifyPerms and the role `operations`
|
|
@@ -15,14 +16,14 @@ export declare function registerOperationPermission(apiName: string, { requiresS
|
|
|
15
16
|
* register throwaway ops and must not leak them into the process-global registries.
|
|
16
17
|
*/
|
|
17
18
|
export declare function unregisterOperationPermission(apiName: string): void;
|
|
19
|
+
export declare function verifyPermsAST(ast: any, userObject: any, operation: any, apiOperation?: "sql"): any;
|
|
18
20
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* @returns {null | PermissionResponseObject} - null if permissions match, errors returned in the PermissionResponseObject
|
|
21
|
+
* Gate 1 of the role `operations` allowlist, callable from every authorization path. The SQL path
|
|
22
|
+
* (chooseOperation → checkASTPermissions) never reaches verifyPerms, so it must call this
|
|
23
|
+
* directly — otherwise an allowlisted role could reach unlisted operations through `sql`.
|
|
24
|
+
* Returns null when allowed (or no allowlist present), a PermissionResponseObject denial otherwise.
|
|
24
25
|
*/
|
|
25
|
-
export declare function
|
|
26
|
+
export declare function verifyOperationsAllowlist(requestJson: any, operationFunctionName: string): PermissionResponseObject;
|
|
26
27
|
/**
|
|
27
28
|
* Verifies permissions and restrictions for the NoSQL operation based on the user's assigned role.
|
|
28
29
|
*
|
|
@@ -30,7 +31,9 @@ export declare function verifyPermsAST(ast: any, userObject: any, operation: any
|
|
|
30
31
|
* @param operation - The name of the operation specified in the request.
|
|
31
32
|
* @returns { null | PermissionResponseObject } - null if permissions match, errors are consolidated into PermissionResponseObj.
|
|
32
33
|
*/
|
|
33
|
-
export declare function verifyPerms(requestJson: any, operation: any,
|
|
34
|
+
export declare function verifyPerms(requestJson: any, operation: any, options?: {
|
|
35
|
+
apiOperation?: string;
|
|
36
|
+
}): any;
|
|
34
37
|
/**
|
|
35
38
|
* Checks if the user's role has the required permissions for the operation specified.
|
|
36
39
|
* @param userObject - the hdb_user specified in the request body
|
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.registerOperationPermission = registerOperationPermission;
|
|
40
40
|
exports.unregisterOperationPermission = unregisterOperationPermission;
|
|
41
41
|
exports.verifyPermsAST = verifyPermsAST;
|
|
42
|
+
exports.verifyOperationsAllowlist = verifyOperationsAllowlist;
|
|
42
43
|
exports.verifyPerms = verifyPerms;
|
|
43
44
|
exports.hasPermissions = hasPermissions;
|
|
44
45
|
exports.checkAttributePerms = checkAttributePerms;
|
|
@@ -87,6 +88,8 @@ const hdbError_ts_1 = require("../utility/errors/hdbError.js");
|
|
|
87
88
|
const regDeprecated = __importStar(require("../resources/registrationDeprecated.js"));
|
|
88
89
|
const deploymentOperations = __importStar(require("../components/deploymentOperations.js"));
|
|
89
90
|
const secretOperations = __importStar(require("../components/secretOperations.js"));
|
|
91
|
+
const trustPolicyOperations = __importStar(require("../security/authn/oidc/trustPolicyOperations.js"));
|
|
92
|
+
const tokenExchange = __importStar(require("../security/authn/oidc/tokenExchange.js"));
|
|
90
93
|
const requiredPermissions = new Map();
|
|
91
94
|
const DELETE_PERM = 'delete';
|
|
92
95
|
const INSERT_PERM = 'insert';
|
|
@@ -124,6 +127,8 @@ const BULK_OPS = {
|
|
|
124
127
|
CSV_FILE_LOAD: 'csvFileLoad',
|
|
125
128
|
IMPORT_FROM_S3: 'importFromS3',
|
|
126
129
|
};
|
|
130
|
+
/** The same set, precomputed: `isBulkLoadOperation` runs on every operations authorization. */
|
|
131
|
+
const BULK_OP_NAMES = new Set(Object.values(BULK_OPS));
|
|
127
132
|
const STRUCTURE_USER_OPS = [
|
|
128
133
|
schema.createTable.name,
|
|
129
134
|
schema.createAttribute.name,
|
|
@@ -171,6 +176,10 @@ function unregisterOperationPermission(apiName) {
|
|
|
171
176
|
requiredPermissions.set(write.insert.name, new permission(false, [INSERT_PERM], terms.OPERATIONS_ENUM.INSERT));
|
|
172
177
|
requiredPermissions.set(write.update.name, new permission(false, [UPDATE_PERM], terms.OPERATIONS_ENUM.UPDATE));
|
|
173
178
|
requiredPermissions.set(write.upsert.name, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.UPSERT));
|
|
179
|
+
// Same grants as `upsert`, and the same as REST `PUT` enforces: creating needs insert, replacing an
|
|
180
|
+
// existing record needs update. A full replace can DROP attributes, which is why the
|
|
181
|
+
// attribute-scoped denial below applies to it.
|
|
182
|
+
requiredPermissions.set(write.put.name, new permission(false, [INSERT_PERM, UPDATE_PERM], terms.OPERATIONS_ENUM.PUT));
|
|
174
183
|
requiredPermissions.set(search.searchByConditions.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_CONDITIONS));
|
|
175
184
|
requiredPermissions.set(search.searchByHash.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_HASH));
|
|
176
185
|
requiredPermissions.set(search.searchByValue.name, new permission(false, [READ_PERM], terms.OPERATIONS_ENUM.SEARCH_BY_VALUE));
|
|
@@ -256,6 +265,15 @@ requiredPermissions.set(secretOperations.revokeSecret.name, new permission(true,
|
|
|
256
265
|
requiredPermissions.set(secretOperations.listSecrets.name, new permission(true, [], terms.OPERATIONS_ENUM.LIST_SECRETS));
|
|
257
266
|
requiredPermissions.set(secretOperations.deleteSecret.name, new permission(true, [], terms.OPERATIONS_ENUM.DELETE_SECRET));
|
|
258
267
|
requiredPermissions.set(secretOperations.getSecretsPublicKey.name, new permission(true, [], terms.OPERATIONS_ENUM.GET_SECRETS_PUBLIC_KEY));
|
|
268
|
+
// OIDC trust policies (#2171). A policy lets an external CI run authenticate as a Harper user, so
|
|
269
|
+
// these are SU-only; the handlers ALSO enforce super_user directly so they cannot be delegated
|
|
270
|
+
// through a role's `operations` allowlist (gate-2 bypass below).
|
|
271
|
+
requiredPermissions.set(trustPolicyOperations.addOidcTrust.name, new permission(true, [], terms.OPERATIONS_ENUM.ADD_OIDC_TRUST));
|
|
272
|
+
requiredPermissions.set(trustPolicyOperations.listOidcTrust.name, new permission(true, [], terms.OPERATIONS_ENUM.LIST_OIDC_TRUST));
|
|
273
|
+
requiredPermissions.set(trustPolicyOperations.dropOidcTrust.name, new permission(true, [], terms.OPERATIONS_ENUM.DROP_OIDC_TRUST));
|
|
274
|
+
// The exchange is unauthenticated by design — it authenticates its own caller against a trust
|
|
275
|
+
// policy, the way create_authentication_tokens does against a password.
|
|
276
|
+
requiredPermissions.set(tokenExchange.exchangeOidcToken.name, new permission(false, [], terms.OPERATIONS_ENUM.EXCHANGE_OIDC_TOKEN));
|
|
259
277
|
//Below are functions that are currently open to all roles
|
|
260
278
|
requiredPermissions.set(regDeprecated.getRegistrationInfo.name, new permission(false, []));
|
|
261
279
|
requiredPermissions.set(user.userInfo.name, new permission(false, [], terms.OPERATIONS_ENUM.USER_INFO));
|
|
@@ -279,6 +297,7 @@ requiredPermissions.set(terms.VALID_SQL_OPS_ENUM.UPDATE, new permission(false, [
|
|
|
279
297
|
module.exports = {
|
|
280
298
|
verifyPerms,
|
|
281
299
|
verifyPermsAST,
|
|
300
|
+
verifyOperationsAllowlist,
|
|
282
301
|
verifyBulkLoadAttributePerms,
|
|
283
302
|
registerOperationPermission,
|
|
284
303
|
unregisterOperationPermission,
|
|
@@ -290,7 +309,77 @@ module.exports = {
|
|
|
290
309
|
* @param operation - The operation specified in the call.
|
|
291
310
|
* @returns {null | PermissionResponseObject} - null if permissions match, errors returned in the PermissionResponseObject
|
|
292
311
|
*/
|
|
293
|
-
|
|
312
|
+
/**
|
|
313
|
+
* Token-scoped narrowing: a minted operation token may carry a subset of what its user's role allows,
|
|
314
|
+
* so one credential can be handed out with less authority than the user has (an OIDC trust policy
|
|
315
|
+
* uses this to scope a single workflow). Returns a denial, or undefined when the scope permits — or
|
|
316
|
+
* when there is no scope, which is every token minted before this existed.
|
|
317
|
+
*
|
|
318
|
+
* Shared by verifyPerms AND verifyPermsAST, and called first in both. Four ways this gets bypassed
|
|
319
|
+
* if it moves or is incomplete:
|
|
320
|
+
*
|
|
321
|
+
* 1. `sql` dispatches to verifyPermsAST, in a branch mutually exclusive with the verifyPerms call
|
|
322
|
+
* (server/serverHelpers/serverUtilities.ts). A gate in only one of them means a token scoped to
|
|
323
|
+
* `get_status` can still run arbitrary SQL against whatever its role can reach.
|
|
324
|
+
* 2. Both functions `return null` early for a super_user — the identity that most needs constraining.
|
|
325
|
+
* 3. verifyPerms' `operations` gate 2 also returns null, treating an explicit listing of an SU-only
|
|
326
|
+
* operation as a deliberate grant.
|
|
327
|
+
* 4. Operations that never reach verifyPerms at all: create_authentication_tokens (NO_AUTH),
|
|
328
|
+
* refresh_operation_token, and impersonation each PRODUCE a new credential or principal, so the
|
|
329
|
+
* scope has to be carried forward there too or a scoped token mints an unscoped one. That carry-
|
|
330
|
+
* forward lives in tokenAuthentication.ts and impersonation.ts, not here.
|
|
331
|
+
*
|
|
332
|
+
* It can only subtract. The scope is deliberately NOT merged into `permission.operations`, because
|
|
333
|
+
* that field is not purely narrowing (see gate 2) — merging into it could widen instead.
|
|
334
|
+
*
|
|
335
|
+
* `apiOperation` MUST be the snake_case API operation the caller actually invoked (`deploy_component`,
|
|
336
|
+
* `sql`, `export_local`, ...) — i.e. `requestJson.operation`, the same namespace the policy's scope is
|
|
337
|
+
* written in. It is emphatically NOT the handler function name: many handlers have no `api_name`
|
|
338
|
+
* mapping (deploy_component → `deployComponent`) and some are shared across operations
|
|
339
|
+
* (`search_by_id`/`search_by_hash`), so resolving the scope name from the handler both denies the
|
|
340
|
+
* feature's own headline op and conflates aliases. Callers pass the real operation.
|
|
341
|
+
*/
|
|
342
|
+
function tokenScopeDenial(userObject, apiOperation) {
|
|
343
|
+
// `!= null`, not `!== undefined`: an unscoped policy stores `operations: null`, and expanding a
|
|
344
|
+
// null would throw rather than fall through to the role.
|
|
345
|
+
const tokenOperations = userObject?.tokenOperations;
|
|
346
|
+
if (tokenOperations == null)
|
|
347
|
+
return undefined;
|
|
348
|
+
// `instanceof Set`, not just presence: this memo rides on hdb_user, and a job persists that user
|
|
349
|
+
// into hdb_job.request, where msgpackr round-trips a Set back as a plain Array. Trusting the
|
|
350
|
+
// memo's presence would then call .has() on an Array and throw a TypeError out of the auth gate
|
|
351
|
+
// — still fail-closed, but as a 500 rather than a denial, and only inside a job worker.
|
|
352
|
+
let scopedOps = userObject._expandedTokenOperations;
|
|
353
|
+
if (!(scopedOps instanceof Set)) {
|
|
354
|
+
scopedOps = userObject._expandedTokenOperations = (0, operationPermissions_ts_1.expandOperationsPerms)(tokenOperations);
|
|
355
|
+
}
|
|
356
|
+
if (scopedOps.has(apiOperation))
|
|
357
|
+
return undefined;
|
|
358
|
+
harper_logger_ts_1.default.info(`Operation '${apiOperation}' is outside the scope of the presented token`);
|
|
359
|
+
return new PermissionResponseObject_ts_1.default().handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.OP_NOT_IN_OPERATIONS(apiOperation));
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* A scope naming `sql` grants the SQL interface, not unrestricted DML through it.
|
|
363
|
+
*
|
|
364
|
+
* `read_only` expands to include `sql` — the group defers DML enforcement to table CRUD permissions
|
|
365
|
+
* (see its note in operationPermissions.ts) — but verifyPermsAST returns null outright for a
|
|
366
|
+
* super_user before any table check runs. Without this, a token scoped to `read_only` could DELETE,
|
|
367
|
+
* which is the one thing that name promises it cannot do.
|
|
368
|
+
*
|
|
369
|
+
* So a write statement additionally requires its matching data operation in scope. That is exactly
|
|
370
|
+
* what separates `read_only` (no insert/update/delete) from `standard_user` (all three), with no
|
|
371
|
+
* need to track which group admitted `sql`. A bare `['sql']` therefore admits SELECT only; name the
|
|
372
|
+
* write operations alongside it to allow more. Anything that is not a recognized SELECT falls
|
|
373
|
+
* through to the same check and is denied unless named, so an unfamiliar statement type fails closed.
|
|
374
|
+
*/
|
|
375
|
+
function sqlWriteScopeDenial(userObject, sqlVariant) {
|
|
376
|
+
if (userObject?.tokenOperations == null)
|
|
377
|
+
return undefined;
|
|
378
|
+
if (sqlVariant === terms.VALID_SQL_OPS_ENUM.SELECT)
|
|
379
|
+
return undefined;
|
|
380
|
+
return tokenScopeDenial(userObject, sqlVariant);
|
|
381
|
+
}
|
|
382
|
+
function verifyPermsAST(ast, userObject, operation, apiOperation = terms.OPERATIONS_ENUM.SQL) {
|
|
294
383
|
//TODO - update these validation checks to use validate.js
|
|
295
384
|
if (commonUtils.isEmptyOrZeroLength(ast)) {
|
|
296
385
|
harper_logger_ts_1.default.info('verify_perms_ast has an empty user parameter');
|
|
@@ -304,6 +393,14 @@ function verifyPermsAST(ast, userObject, operation) {
|
|
|
304
393
|
harper_logger_ts_1.default.info('verify_perms_ast has a null operation parameter');
|
|
305
394
|
throw (0, hdbError_ts_1.handleHDBError)(new Error());
|
|
306
395
|
}
|
|
396
|
+
// `operation` here is the SQL statement variant (select/insert/...), not the API operation. The
|
|
397
|
+
// scope is checked against `apiOperation` — the top-level operation the caller invoked, which is
|
|
398
|
+
// `sql` for a direct SQL call but `export_local`/`export_to_s3` for a job whose inner
|
|
399
|
+
// search_operation is SQL. Checking a hardcoded `sql` would let a token scoped only to `sql` start
|
|
400
|
+
// an export that its scope excludes. Ahead of the super_user bypass, as on the NoSQL path.
|
|
401
|
+
const scopeDenial = tokenScopeDenial(userObject, apiOperation) ?? sqlWriteScopeDenial(userObject, operation);
|
|
402
|
+
if (scopeDenial)
|
|
403
|
+
return scopeDenial;
|
|
307
404
|
try {
|
|
308
405
|
const bucketModule = require('../sqlTranslator/sql_statement_bucket');
|
|
309
406
|
const bucket = bucketModule.default || bucketModule;
|
|
@@ -371,6 +468,28 @@ function verifyPermsAST(ast, userObject, operation) {
|
|
|
371
468
|
throw (0, hdbError_ts_1.handleHDBError)(e);
|
|
372
469
|
}
|
|
373
470
|
}
|
|
471
|
+
/**
|
|
472
|
+
* Gate 1 of the role `operations` allowlist, callable from every authorization path. The SQL path
|
|
473
|
+
* (chooseOperation → checkASTPermissions) never reaches verifyPerms, so it must call this
|
|
474
|
+
* directly — otherwise an allowlisted role could reach unlisted operations through `sql`.
|
|
475
|
+
* Returns null when allowed (or no allowlist present), a PermissionResponseObject denial otherwise.
|
|
476
|
+
*/
|
|
477
|
+
function verifyOperationsAllowlist(requestJson, operationFunctionName) {
|
|
478
|
+
const rolePermission = requestJson.hdb_user?.role?.permission;
|
|
479
|
+
const allowedOperationsList = rolePermission?.operations;
|
|
480
|
+
if (allowedOperationsList == null)
|
|
481
|
+
return null;
|
|
482
|
+
// _expandedOperations is pre-built at cache-load time (O(1) lookup).
|
|
483
|
+
// Fall back to on-demand expansion for inline-asserted roles (e.g. impersonation via hdb_user in body).
|
|
484
|
+
const allowedOps = rolePermission._expandedOperations ?? (0, operationPermissions_ts_1.expandOperationsPerms)(allowedOperationsList);
|
|
485
|
+
// operationFunctionName is the internal camelCase function name; allowedOps contains snake_case
|
|
486
|
+
// API names. Resolve via the api_name stored on the permission entry (set at registration time).
|
|
487
|
+
const opApiName = requiredPermissions.get(operationFunctionName)?.api_name ?? operationFunctionName;
|
|
488
|
+
if (!allowedOps.has(opApiName)) {
|
|
489
|
+
return new PermissionResponseObject_ts_1.default().handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.OP_NOT_IN_OPERATIONS(opApiName));
|
|
490
|
+
}
|
|
491
|
+
return null;
|
|
492
|
+
}
|
|
374
493
|
/**
|
|
375
494
|
* Verifies permissions and restrictions for the NoSQL operation based on the user's assigned role.
|
|
376
495
|
*
|
|
@@ -378,7 +497,7 @@ function verifyPermsAST(ast, userObject, operation) {
|
|
|
378
497
|
* @param operation - The name of the operation specified in the request.
|
|
379
498
|
* @returns { null | PermissionResponseObject } - null if permissions match, errors are consolidated into PermissionResponseObj.
|
|
380
499
|
*/
|
|
381
|
-
function verifyPerms(requestJson, operation,
|
|
500
|
+
function verifyPerms(requestJson, operation, options) {
|
|
382
501
|
if (requestJson === null ||
|
|
383
502
|
operation === null ||
|
|
384
503
|
requestJson.hdb_user === undefined ||
|
|
@@ -395,19 +514,61 @@ function verifyPerms(requestJson, operation, _options) {
|
|
|
395
514
|
op = operation;
|
|
396
515
|
}
|
|
397
516
|
//we need to use the action value, if present, to ensure the correct permission is checked below
|
|
398
|
-
|
|
399
|
-
|
|
517
|
+
// `action` narrows the required permissions to just that one — `hasPermissions` does it for table
|
|
518
|
+
// permissions and `checkAttributePerms` for attribute permissions — because a bulk load carries
|
|
519
|
+
// `action: insert|update|upsert` and only needs the permission for what it will actually do.
|
|
520
|
+
//
|
|
521
|
+
// Honoured ONLY for a real bulk-load operation. `action` is an unknown-but-accepted key on the
|
|
522
|
+
// shared write validator, so taking it from any request let a caller pick which half of an
|
|
523
|
+
// operation's permissions to be checked against: `{operation:'put', action:'insert'}` from a role
|
|
524
|
+
// with `insert: true, update: false` replaced an existing record, and `action:'update'` created a
|
|
525
|
+
// missing one with no insert permission. `upsert` had the same shape before `put` existed.
|
|
526
|
+
//
|
|
527
|
+
// Both narrowing sites read this one variable, so gating it here covers both. The bulk path is
|
|
528
|
+
// unaffected: `verifyBulkLoadAttributePerms` receives the real action from
|
|
529
|
+
// `bulkLoad.validateChunk`, not from here.
|
|
530
|
+
let action = isBulkLoadOperation(op) ? requestJson.action : undefined;
|
|
531
|
+
// Resolved through the same helper the handlers use (`transformReq` delegates to it), because
|
|
532
|
+
// authorization runs BEFORE `transformReq` and any disagreement about the target means the
|
|
533
|
+
// permissions checked are not the permissions for the write that happens. This used to be a
|
|
534
|
+
// local `schema ?? database`, which diverged from the handlers in two separately exploitable
|
|
535
|
+
// ways: it kept a falsy-but-present `database: 0` instead of defaulting, and it preferred
|
|
536
|
+
// `schema` where the handlers prefer `database` — so a request could be authorized against one
|
|
537
|
+
// database and written to another. With no target resolved at all, `schemaTableMap` stayed empty
|
|
538
|
+
// and `hasPermissions` iterated nothing, authorizing by vacuous truth.
|
|
539
|
+
let operationSchema = commonUtils.resolveTargetDatabase(requestJson);
|
|
400
540
|
let table = requestJson.table;
|
|
401
541
|
let schemaTableMap = new Map();
|
|
402
|
-
|
|
542
|
+
// `table != undefined`, not truthy: `hdbTable` is `Joi.alternatives(Joi.string(), Joi.number())`
|
|
543
|
+
// (validation/common_validators.ts), so a table named `0` validates and a truthy test drops it
|
|
544
|
+
// from the map — leaving `hasPermissions` nothing to iterate, which authorizes by vacuous truth.
|
|
545
|
+
// The same falsy-vs-nullish distinction the database resolution above turns on.
|
|
546
|
+
if (operationSchema != undefined && table != undefined) {
|
|
403
547
|
schemaTableMap.set(operationSchema, [table]);
|
|
404
548
|
}
|
|
405
549
|
const permsResponse = new PermissionResponseObject_ts_1.default();
|
|
550
|
+
// The top-level API operation the caller invoked — the namespace the policy scope is written in.
|
|
551
|
+
// For a job (export_local/export_to_s3), the dispatcher passes the nested search_operation as
|
|
552
|
+
// requestJson, so requestJson.operation is the *inner* op (e.g. search_by_conditions); the caller
|
|
553
|
+
// threads the real top-level op through `options.apiOperation` so a read-scoped token cannot ride
|
|
554
|
+
// an export. Never `op` (the handler name), which would deny deploy_component and conflate aliases.
|
|
555
|
+
const scopeDenial = tokenScopeDenial(requestJson.hdb_user, options?.apiOperation ?? requestJson.operation);
|
|
556
|
+
if (scopeDenial)
|
|
557
|
+
return scopeDenial;
|
|
406
558
|
if (commonUtils.isEmptyOrZeroLength(requestJson.hdb_user?.role) ||
|
|
407
559
|
commonUtils.isEmptyOrZeroLength(requestJson.hdb_user?.role?.permission)) {
|
|
408
560
|
harper_logger_ts_1.default.info(`User ${requestJson.hdb_user?.username} has no role or permissions. Please assign the user a valid role.`);
|
|
409
561
|
return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.USER_HAS_NO_PERMS(requestJson.hdb_user?.username));
|
|
410
562
|
}
|
|
563
|
+
// Gate 1 of the optional `operations` allowlist: when present, only ops explicitly listed (or
|
|
564
|
+
// expanded from a group) are reachable. This must run before EVERY privilege early-return below
|
|
565
|
+
// (super_user, structure_user, system-table allowances) — otherwise a role combining one of
|
|
566
|
+
// those flags with a restrictive allowlist could reach ops outside its list. Gate 2 (the
|
|
567
|
+
// SU-only-op bypass for explicitly listed ops) stays below, after the ambient privilege checks.
|
|
568
|
+
const allowlistDenial = verifyOperationsAllowlist(requestJson, op);
|
|
569
|
+
if (allowlistDenial)
|
|
570
|
+
return allowlistDenial;
|
|
571
|
+
const allowedOperationsList = requestJson.hdb_user?.role?.permission?.operations;
|
|
411
572
|
const isSuperUser = !!requestJson.hdb_user?.role?.permission?.super_user;
|
|
412
573
|
const structureUser = requestJson.hdb_user?.role?.permission?.structure_user;
|
|
413
574
|
// set to true if this operation affects a system table. Only su can read from system tables, but can't update/delete.
|
|
@@ -445,36 +606,18 @@ function verifyPerms(requestJson, operation, _options) {
|
|
|
445
606
|
//if we get here then error out
|
|
446
607
|
return permsResponse.handleUnauthorizedItem(`User does not have access to perform '${requestJson.operation}' against schema '${operationSchema}'`);
|
|
447
608
|
}
|
|
448
|
-
//
|
|
449
|
-
//
|
|
450
|
-
//
|
|
451
|
-
//
|
|
452
|
-
//
|
|
453
|
-
//
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
// op is the internal camelCase function name; allowedOps contains snake_case API names.
|
|
461
|
-
// Resolve via the api_name stored on the permission entry (set at registration time).
|
|
462
|
-
const opApiName = requiredPermissions.get(op)?.api_name ?? op;
|
|
463
|
-
// Gate 1: op not in allowlist — deny regardless of table CRUD permissions.
|
|
464
|
-
if (!allowedOps.has(opApiName)) {
|
|
465
|
-
return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.OP_NOT_IN_OPERATIONS(opApiName));
|
|
466
|
-
}
|
|
467
|
-
// Gate 2: op is SU-only but was explicitly granted via operations — allow without super_user.
|
|
468
|
-
// Without this, the SU check further below would still deny it even though it passed gate 1.
|
|
469
|
-
// TODO: ops registered with both requires_su AND non-empty CRUD perms have their table-level
|
|
470
|
-
// CRUD check bypassed here. Should fall through for those instead of returning null
|
|
471
|
-
// unconditionally. The managed-backup ops share this shape but self-enforce super_user in their
|
|
472
|
-
// handlers/validators (dataLayer/rocksdbBackup.ts requireSuperUser), so they are not delegable
|
|
473
|
-
// regardless; get_backup remains the one that relies solely on this gate. Low risk today but
|
|
474
|
-
// worth tightening.
|
|
475
|
-
if (requiredPermissions.get(op)?.requires_su) {
|
|
476
|
-
return null;
|
|
477
|
-
}
|
|
609
|
+
// Gate 2 of the `operations` allowlist (gate 1 ran above, before the privilege early-returns):
|
|
610
|
+
// the op passed the allowlist, so if it is normally restricted to super_user, the explicit
|
|
611
|
+
// listing is treated as a deliberate admin grant and allowed immediately (return null).
|
|
612
|
+
// Non-SU ops that passed gate 1 fall through to the normal table CRUD checks below.
|
|
613
|
+
// TODO: ops registered with both requires_su AND non-empty CRUD perms have their table-level
|
|
614
|
+
// CRUD check bypassed here. Should fall through for those instead of returning null
|
|
615
|
+
// unconditionally. The managed-backup ops share this shape but self-enforce super_user in their
|
|
616
|
+
// handlers/validators (dataLayer/rocksdbBackup.ts requireSuperUser), so they are not delegable
|
|
617
|
+
// regardless; get_backup remains the one that relies solely on this gate. Low risk today but
|
|
618
|
+
// worth tightening.
|
|
619
|
+
if (allowedOperationsList !== undefined && requiredPermissions.get(op)?.requires_su) {
|
|
620
|
+
return null;
|
|
478
621
|
}
|
|
479
622
|
const fullRolePerms = permsTranslator.getRolePermissions(requestJson.hdb_user?.role);
|
|
480
623
|
if (requestJson.hdb_user?.role)
|
|
@@ -497,6 +640,15 @@ function verifyPerms(requestJson, operation, _options) {
|
|
|
497
640
|
}
|
|
498
641
|
}
|
|
499
642
|
}
|
|
643
|
+
// Fail closed on an unresolved target. `hasPermissions` iterates `schemaTableMap`, so an empty map
|
|
644
|
+
// authorizes by vacuous truth — the shape of this whole bug class, and of the SQL path's
|
|
645
|
+
// GHSA-5c29-q62v-jrwf, whose fix carries the same backstop. `resolveTargetDatabase` always
|
|
646
|
+
// returns a database, so a named table always populates the map and this is unreachable today; it
|
|
647
|
+
// is here so that a future change to target resolution fails safe instead of silently authorizing
|
|
648
|
+
// everything. That also means no test can cover it, which is the point rather than an omission.
|
|
649
|
+
if (table != undefined && schemaTableMap.size === 0) {
|
|
650
|
+
return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.UNKNOWN_OP_AUTH_ERROR(op, operationSchema, table));
|
|
651
|
+
}
|
|
500
652
|
let failedPermissions = hasPermissions(requestJson.hdb_user, op, schemaTableMap, permsResponse, action);
|
|
501
653
|
//check if failedTablePerms are back and return them B/C it will be an op-level permission issue
|
|
502
654
|
if (failedPermissions) {
|
|
@@ -523,8 +675,17 @@ function verifyPerms(requestJson, operation, _options) {
|
|
|
523
675
|
requestJson.get_attributes = finalGetAttrs;
|
|
524
676
|
}
|
|
525
677
|
}
|
|
526
|
-
const recordAttrs = getRecordAttributes(requestJson);
|
|
678
|
+
const recordAttrs = getRecordAttributes(requestJson, op);
|
|
527
679
|
const attrPermissions = getAttributePermissions(requestJson.hdb_user?.role?.permission, operationSchema, table);
|
|
680
|
+
// A `put` replaces the whole record, so it REMOVES every attribute the request omits — and
|
|
681
|
+
// `checkAttributePerms` below only sees the attributes a request SUPPLIES, so it cannot police
|
|
682
|
+
// those removals. An attribute-scoped role could otherwise erase an attribute it has no `update`
|
|
683
|
+
// permission for by leaving it out. REST closes the same gap in `Table.allowUpdate` by restoring
|
|
684
|
+
// such attributes from the stored record, which needs the stored record; this runs before anything
|
|
685
|
+
// is read, so it denies instead. Roles that scope no attribute are unaffected.
|
|
686
|
+
if (attrPermissions.size > 0 && op === write.put.name) {
|
|
687
|
+
return permsResponse.handleUnauthorizedItem(commonErrors_ts_1.HDB_ERROR_MSGS.PUT_WITH_ATTRIBUTE_PERMS(operationSchema, table));
|
|
688
|
+
}
|
|
528
689
|
checkAttributePerms(recordAttrs, attrPermissions, op, table, operationSchema, permsResponse, action);
|
|
529
690
|
//This result value will be null if no perms issues were found in checkAttributePerms
|
|
530
691
|
return permsResponse.getPermsResponse();
|
|
@@ -695,12 +856,19 @@ function checkAttributePerms(recordAttributes, roleAttributePermissions, operati
|
|
|
695
856
|
* @param json - json containing the request
|
|
696
857
|
* @returns {Set} - all attributes affected by the request statement.
|
|
697
858
|
*/
|
|
698
|
-
|
|
859
|
+
/** Whether the operation checks attribute permissions per chunk rather than from this request. */
|
|
860
|
+
function isBulkLoadOperation(operationName) {
|
|
861
|
+
return BULK_OP_NAMES.has(operationName);
|
|
862
|
+
}
|
|
863
|
+
function getRecordAttributes(json, operationName) {
|
|
699
864
|
let affectedAttributes = new Set();
|
|
700
865
|
try {
|
|
701
|
-
//Bulk load operations
|
|
702
|
-
//
|
|
703
|
-
|
|
866
|
+
// Bulk load operations have their attribute permissions checked per chunk instead, in
|
|
867
|
+
// `bulkLoad.validateChunk` — the records aren't in this request. That opt-out is keyed on the
|
|
868
|
+
// OPERATION, never on the caller-supplied `action` field: `action` is an unknown-but-accepted
|
|
869
|
+
// key on the insert/update/upsert validator, so inferring the opt-out from its presence let any
|
|
870
|
+
// direct request skip every attribute check by adding `action: "update"` to the body.
|
|
871
|
+
if (isBulkLoadOperation(operationName)) {
|
|
704
872
|
return affectedAttributes;
|
|
705
873
|
}
|
|
706
874
|
if (json.operation === terms.OPERATIONS_ENUM.SEARCH_BY_CONDITIONS) {
|
|
@@ -760,7 +928,10 @@ function getAttributePermissions(rolePerms, operationSchema, table) {
|
|
|
760
928
|
}
|
|
761
929
|
//Some commands do not require a table to be specified. If there is no table, there is likely not
|
|
762
930
|
// anything attribute permissions needs to check.
|
|
763
|
-
|
|
931
|
+
// Nullish rather than falsy for the same reason as the map guard in verifyPerms: a table named `0`
|
|
932
|
+
// validates (`hdbTable` accepts a number), and skipping it here means its attribute permissions
|
|
933
|
+
// go unchecked.
|
|
934
|
+
if (operationSchema == undefined || table == undefined) {
|
|
764
935
|
return roleAttributePermissions;
|
|
765
936
|
}
|
|
766
937
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation_authorization.js","sourceRoot":"","sources":["../../utility/operation_authorization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operation_authorization.js","sourceRoot":"","sources":["../../utility/operation_authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonicalize an absolute path before it is handed to a native file watch (`fs.watch`, directly or
|
|
3
|
+
* through chokidar).
|
|
4
|
+
*
|
|
5
|
+
* libuv's Windows fs-event callback rebuilds each event's absolute path, expands it with
|
|
6
|
+
* `GetLongPathNameW`, and then asserts the expansion still starts with the directory it stored when
|
|
7
|
+
* the watch was armed. An 8.3 short directory (`C:\Users\RUNNER~1\...`) never survives that
|
|
8
|
+
* comparison, and the assertion aborts the process rather than failing the watch, so a short path
|
|
9
|
+
* reaching a native watch takes down the whole server (harper#2234).
|
|
10
|
+
*
|
|
11
|
+
* Every Windows path is resolved rather than only the ones that look short: `GetLongPathNameW`'s
|
|
12
|
+
* documentation is explicit that a short name need not contain a tilde, and NTFS allows an
|
|
13
|
+
* explicitly assigned one, so any spelling test would leave the abort reachable. `realpathSync` is
|
|
14
|
+
* not a substitute for the `.native` variant — it resolves symlinks but leaves 8.3 names intact.
|
|
15
|
+
*
|
|
16
|
+
* Returns `undefined` when the long form cannot be established, because a path we cannot prove is
|
|
17
|
+
* expanded is exactly the one that must never reach a native watch.
|
|
18
|
+
*/
|
|
19
|
+
export declare function canonicalizeWatchPath(watchPath: string, platform?: string): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Watch target for a chokidar/`fs.watch` call: the canonical path, or the original path with
|
|
22
|
+
* `mustPoll`, which callers turn into their polling options. Polling stats the file instead of
|
|
23
|
+
* arming a native watch, so it cannot reach the abort.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveWatchTarget(watchPath: string): {
|
|
26
|
+
path: string;
|
|
27
|
+
mustPoll: boolean;
|
|
28
|
+
};
|
|
29
|
+
export declare function _resetForTests(): void;
|