@harperfast/harper 5.1.20 → 5.2.0-alpha.5
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/operations.ts +13 -16
- package/components/Application.ts +188 -7
- package/components/ApplicationScope.ts +3 -0
- package/components/Scope.ts +12 -0
- package/components/anthropic/index.ts +9 -2
- package/components/bedrock/index.ts +25 -2
- package/components/componentLoader.ts +56 -7
- package/components/componentSecrets.ts +451 -0
- package/components/deploymentRecorder.ts +7 -1
- package/components/mcp/adapters/fastify.ts +3 -0
- package/components/mcp/adapters/harperHttp.ts +3 -0
- package/components/mcp/audit.ts +21 -6
- package/components/mcp/customResourceRegistry.ts +17 -38
- package/components/mcp/listChanged.ts +37 -20
- package/components/mcp/quota.ts +145 -0
- package/components/mcp/rateLimit.ts +152 -14
- package/components/mcp/resources.ts +2 -4
- package/components/mcp/toolRegistry.ts +73 -4
- package/components/mcp/tools/application.ts +77 -8
- package/components/mcp/tools/operations.ts +106 -36
- package/components/mcp/tools/schemas/operationDescriptions.ts +4 -4
- package/components/mcp/tools/schemas/operations.ts +5 -0
- package/components/mcp/transport.ts +55 -4
- package/components/ollama/index.ts +6 -2
- package/components/openai/index.ts +9 -2
- package/components/operations.js +204 -10
- package/components/operationsValidation.js +173 -0
- package/components/secretOperations.ts +498 -0
- package/config/configUtils.ts +25 -1
- package/config-app.schema.json +81 -0
- package/config-root.schema.json +8 -1
- package/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
- package/dataLayer/readAuditLog.ts +14 -0
- package/dataLayer/schemaDescribe.ts +1 -0
- package/dist/agent/operations.d.ts +7 -4
- package/dist/agent/operations.js +13 -15
- package/dist/agent/operations.js.map +1 -1
- package/dist/components/Application.d.ts +25 -2
- package/dist/components/Application.js +166 -7
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +2 -0
- package/dist/components/ApplicationScope.js +3 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/Scope.d.ts +8 -0
- package/dist/components/Scope.js +11 -0
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/anthropic/index.d.ts +4 -1
- package/dist/components/anthropic/index.js +4 -2
- package/dist/components/anthropic/index.js.map +1 -1
- package/dist/components/bedrock/index.d.ts +4 -1
- package/dist/components/bedrock/index.js +22 -2
- package/dist/components/bedrock/index.js.map +1 -1
- package/dist/components/componentLoader.d.ts +2 -0
- package/dist/components/componentLoader.js +52 -10
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/componentSecrets.d.ts +63 -0
- package/dist/components/componentSecrets.js +405 -0
- package/dist/components/componentSecrets.js.map +1 -0
- package/dist/components/deploymentRecorder.d.ts +3 -0
- package/dist/components/deploymentRecorder.js +4 -3
- package/dist/components/deploymentRecorder.js.map +1 -1
- package/dist/components/mcp/adapters/fastify.d.ts +2 -0
- package/dist/components/mcp/adapters/fastify.js +1 -0
- package/dist/components/mcp/adapters/fastify.js.map +1 -1
- package/dist/components/mcp/adapters/harperHttp.d.ts +2 -0
- package/dist/components/mcp/adapters/harperHttp.js +1 -0
- package/dist/components/mcp/adapters/harperHttp.js.map +1 -1
- package/dist/components/mcp/audit.d.ts +2 -2
- package/dist/components/mcp/audit.js +20 -5
- package/dist/components/mcp/audit.js.map +1 -1
- package/dist/components/mcp/customResourceRegistry.d.ts +5 -12
- package/dist/components/mcp/customResourceRegistry.js +15 -30
- package/dist/components/mcp/customResourceRegistry.js.map +1 -1
- package/dist/components/mcp/listChanged.d.ts +7 -2
- package/dist/components/mcp/listChanged.js +28 -0
- package/dist/components/mcp/listChanged.js.map +1 -1
- package/dist/components/mcp/quota.d.ts +31 -0
- package/dist/components/mcp/quota.js +155 -0
- package/dist/components/mcp/quota.js.map +1 -0
- package/dist/components/mcp/rateLimit.d.ts +19 -3
- package/dist/components/mcp/rateLimit.js +129 -13
- package/dist/components/mcp/rateLimit.js.map +1 -1
- package/dist/components/mcp/resources.js.map +1 -1
- package/dist/components/mcp/toolRegistry.d.ts +39 -1
- package/dist/components/mcp/toolRegistry.js +60 -5
- package/dist/components/mcp/toolRegistry.js.map +1 -1
- package/dist/components/mcp/tools/application.d.ts +8 -1
- package/dist/components/mcp/tools/application.js +65 -5
- package/dist/components/mcp/tools/application.js.map +1 -1
- package/dist/components/mcp/tools/operations.d.ts +15 -3
- package/dist/components/mcp/tools/operations.js +99 -38
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +4 -4
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operations.js +4 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
- package/dist/components/mcp/transport.d.ts +6 -0
- package/dist/components/mcp/transport.js +47 -3
- package/dist/components/mcp/transport.js.map +1 -1
- package/dist/components/ollama/index.d.ts +4 -1
- package/dist/components/ollama/index.js +4 -2
- package/dist/components/ollama/index.js.map +1 -1
- package/dist/components/openai/index.d.ts +4 -1
- package/dist/components/openai/index.js +4 -2
- package/dist/components/openai/index.js.map +1 -1
- package/dist/components/operations.d.ts +39 -0
- package/dist/components/operations.js +194 -2
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.d.ts +38 -0
- package/dist/components/operationsValidation.js +155 -0
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/secretOperations.d.ts +113 -0
- package/dist/components/secretOperations.js +475 -0
- package/dist/components/secretOperations.js.map +1 -0
- package/dist/config/configUtils.d.ts +4 -1
- package/dist/config/configUtils.js +18 -1
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js +4 -3
- package/dist/dataLayer/harperBridge/lmdbBridge/lmdbUtility/initializePaths.js.map +1 -1
- package/dist/dataLayer/readAuditLog.js +11 -0
- package/dist/dataLayer/readAuditLog.js.map +1 -1
- package/dist/dataLayer/schemaDescribe.js +2 -0
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/globals.d.ts +1 -1
- package/dist/globals.js +1 -0
- package/dist/globals.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +38 -0
- package/dist/resources/DatabaseTransaction.d.ts +31 -3
- package/dist/resources/DatabaseTransaction.js +190 -29
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +1 -1
- package/dist/resources/LMDBTransaction.js +43 -5
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/PrimaryRocksDatabase.d.ts +51 -0
- package/dist/resources/PrimaryRocksDatabase.js +194 -0
- package/dist/resources/PrimaryRocksDatabase.js.map +1 -0
- package/dist/resources/RecordEncoder.d.ts +1 -0
- package/dist/resources/RecordEncoder.js +81 -75
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/RequestTarget.d.ts +19 -0
- package/dist/resources/RequestTarget.js.map +1 -1
- package/dist/resources/Resource.d.ts +0 -1
- package/dist/resources/Resource.js +103 -16
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +6 -2
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -4
- package/dist/resources/Table.js +247 -24
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/read.js +25 -28
- package/dist/resources/analytics/read.js.map +1 -1
- package/dist/resources/blob.js +165 -22
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/crdt.d.ts +2 -0
- package/dist/resources/crdt.js +45 -36
- package/dist/resources/crdt.js.map +1 -1
- package/dist/resources/databases.d.ts +1 -0
- package/dist/resources/databases.js +134 -7
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/graphql.js +8 -0
- package/dist/resources/graphql.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +35 -5
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +239 -14
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/jsResource.js +6 -0
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/loadEnv.js +30 -3
- package/dist/resources/loadEnv.js.map +1 -1
- package/dist/resources/login.js +2 -2
- package/dist/resources/login.js.map +1 -1
- package/dist/resources/models/Models.js +14 -3
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/embedHook.js +10 -2
- package/dist/resources/models/embedHook.js.map +1 -1
- package/dist/resources/models/openaiStream.d.ts +56 -0
- package/dist/resources/models/openaiStream.js +94 -0
- package/dist/resources/models/openaiStream.js.map +1 -0
- package/dist/resources/replayLogs.js +4 -3
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/search.d.ts +1 -1
- package/dist/resources/search.js +104 -11
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/secretDecryptor.d.ts +54 -0
- package/dist/resources/secretDecryptor.js +131 -0
- package/dist/resources/secretDecryptor.js.map +1 -0
- package/dist/resources/tracked.js +15 -5
- package/dist/resources/tracked.js.map +1 -1
- package/dist/security/auth.js +71 -8
- package/dist/security/auth.js.map +1 -1
- package/dist/security/jsLoader.js +11 -0
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/tokenAuthentication.d.ts +9 -1
- package/dist/security/tokenAuthentication.js +31 -1
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/server/DurableSubscriptionsSession.d.ts +1 -1
- package/dist/server/DurableSubscriptionsSession.js +8 -4
- package/dist/server/DurableSubscriptionsSession.js.map +1 -1
- package/dist/server/REST.js +28 -9
- package/dist/server/REST.js.map +1 -1
- package/dist/server/fastifyRoutes.js +11 -1
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/graphqlQuerying.js +4 -3
- package/dist/server/graphqlQuerying.js.map +1 -1
- package/dist/server/http.d.ts +40 -2
- package/dist/server/http.js +560 -77
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +64 -0
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/liveSubscriptionAuth.d.ts +12 -0
- package/dist/server/liveSubscriptionAuth.js +140 -0
- package/dist/server/liveSubscriptionAuth.js.map +1 -0
- package/dist/server/loadRootComponents.js +2 -1
- package/dist/server/loadRootComponents.js.map +1 -1
- package/dist/server/middlewareChain.d.ts +44 -1
- package/dist/server/middlewareChain.js +86 -10
- package/dist/server/middlewareChain.js.map +1 -1
- package/dist/server/mqtt.js +2 -1
- package/dist/server/mqtt.js.map +1 -1
- package/dist/server/operationsServer.js +1 -1
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/Headers.d.ts +9 -0
- package/dist/server/serverHelpers/Headers.js +22 -0
- package/dist/server/serverHelpers/Headers.js.map +1 -1
- package/dist/server/serverHelpers/JSONStream.js +3 -3
- package/dist/server/serverHelpers/JSONStream.js.map +1 -1
- package/dist/server/serverHelpers/Request.d.ts +52 -1
- package/dist/server/serverHelpers/Request.js +122 -1
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.js +3 -8
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/progressEmitter.d.ts +19 -0
- package/dist/server/serverHelpers/progressEmitter.js +52 -4
- package/dist/server/serverHelpers/progressEmitter.js.map +1 -1
- package/dist/server/serverHelpers/registeredOperations.d.ts +40 -0
- package/dist/server/serverHelpers/registeredOperations.js +286 -0
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -0
- package/dist/server/serverHelpers/serverHandlers.js +11 -5
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +1 -0
- package/dist/server/serverHelpers/serverUtilities.js +67 -5
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/serverHelpers/uwsServer.d.ts +80 -0
- package/dist/server/serverHelpers/uwsServer.js +433 -0
- package/dist/server/serverHelpers/uwsServer.js.map +1 -0
- package/dist/server/static.d.ts +0 -15
- package/dist/server/static.js +161 -2
- package/dist/server/static.js.map +1 -1
- package/dist/server/status/index.d.ts +4 -1
- package/dist/server/status/index.js +64 -4
- package/dist/server/status/index.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +10 -0
- package/dist/server/threads/manageThreads.js +107 -4
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/socketRouter.js +5 -1
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.js +92 -14
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/upgrade/directives/5-2-0.d.ts +7 -0
- package/dist/upgrade/directives/5-2-0.js +108 -0
- package/dist/upgrade/directives/5-2-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/common_utils.js +5 -0
- package/dist/utility/common_utils.js.map +1 -1
- package/dist/utility/envFile.d.ts +41 -0
- package/dist/utility/envFile.js +221 -0
- package/dist/utility/envFile.js.map +1 -0
- package/dist/utility/globalSchema.d.ts +9 -0
- package/dist/utility/hdbTerms.d.ts +25 -0
- package/dist/utility/hdbTerms.js +31 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +21 -0
- package/dist/utility/logging/harper_logger.js +160 -8
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/logging/logRotator.js +29 -17
- package/dist/utility/logging/logRotator.js.map +1 -1
- package/dist/utility/logging/readLog.d.ts +1 -1
- package/dist/utility/logging/readLog.js +305 -2
- package/dist/utility/logging/readLog.js.map +1 -1
- package/dist/utility/operationPermissions.d.ts +18 -0
- package/dist/utility/operationPermissions.js +35 -1
- package/dist/utility/operationPermissions.js.map +1 -1
- package/dist/utility/operation_authorization.d.ts +17 -0
- package/dist/utility/operation_authorization.js +38 -0
- package/dist/utility/operation_authorization.js.map +1 -1
- package/dist/utility/secretEnvelope.d.ts +30 -0
- package/dist/utility/secretEnvelope.js +94 -0
- package/dist/utility/secretEnvelope.js.map +1 -0
- package/dist/utility/signalling.d.ts +7 -0
- package/dist/utility/signalling.js +16 -0
- package/dist/utility/signalling.js.map +1 -1
- package/dist/validation/configValidator.js +70 -24
- package/dist/validation/configValidator.js.map +1 -1
- package/index.ts +4 -0
- package/json/systemSchema.json +38 -0
- package/npm-shrinkwrap.json +15066 -9347
- package/package.json +14 -9
- package/resources/DESIGN.md +15 -12
- package/resources/DatabaseTransaction.ts +206 -37
- package/resources/LMDBTransaction.ts +43 -9
- package/resources/PrimaryRocksDatabase.ts +201 -0
- package/resources/RecordEncoder.ts +81 -69
- package/resources/RequestTarget.ts +21 -0
- package/resources/Resource.ts +109 -25
- package/resources/ResourceInterface.ts +6 -2
- package/resources/Resources.ts +1 -3
- package/resources/Table.ts +238 -29
- package/resources/analytics/read.ts +25 -30
- package/resources/blob.ts +159 -23
- package/resources/crdt.ts +37 -31
- package/resources/databases.ts +143 -6
- package/resources/graphql.ts +8 -0
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +251 -17
- package/resources/jsResource.ts +6 -0
- package/resources/loadEnv.ts +34 -3
- package/resources/login.ts +2 -2
- package/resources/models/Models.ts +19 -3
- package/resources/models/embedHook.ts +13 -2
- package/resources/models/openaiStream.ts +133 -0
- package/resources/replayLogs.ts +4 -3
- package/resources/search.ts +113 -11
- package/resources/secretDecryptor.ts +159 -0
- package/resources/tracked.ts +24 -17
- package/security/auth.ts +70 -10
- package/security/jsLoader.ts +12 -0
- package/security/tokenAuthentication.ts +42 -1
- package/server/DESIGN.md +10 -0
- package/server/DurableSubscriptionsSession.ts +8 -4
- package/server/REST.ts +26 -9
- package/server/fastifyRoutes.ts +10 -1
- package/server/graphqlQuerying.ts +4 -3
- package/server/http.ts +563 -77
- package/server/itc/serverHandlers.js +70 -0
- package/server/liveSubscriptionAuth.ts +152 -0
- package/server/loadRootComponents.js +2 -1
- package/server/middlewareChain.ts +107 -17
- package/server/mqtt.ts +2 -1
- package/server/operationsServer.ts +2 -2
- package/server/serverHelpers/Headers.ts +24 -0
- package/server/serverHelpers/JSONStream.ts +3 -3
- package/server/serverHelpers/Request.ts +127 -0
- package/server/serverHelpers/contentTypes.ts +3 -8
- package/server/serverHelpers/progressEmitter.ts +55 -5
- package/server/serverHelpers/registeredOperations.ts +259 -0
- package/server/serverHelpers/serverHandlers.js +11 -5
- package/server/serverHelpers/serverUtilities.ts +88 -5
- package/server/serverHelpers/uwsServer.ts +488 -0
- package/server/static.ts +180 -2
- package/server/status/index.ts +72 -4
- package/server/threads/manageThreads.js +102 -4
- package/server/threads/socketRouter.ts +5 -1
- package/server/threads/threadServer.js +93 -10
- package/studio/web/assets/{Chat-SdD1EZca.js → Chat-Cv_2paZE.js} +2 -2
- package/studio/web/assets/{Chat-SdD1EZca.js.map → Chat-Cv_2paZE.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-GMq6tHK9.js → FloatingChat-CPyPIcVR.js} +4 -4
- package/studio/web/assets/{FloatingChat-GMq6tHK9.js.map → FloatingChat-CPyPIcVR.js.map} +1 -1
- package/studio/web/assets/{applications-B5hhv7uA.js → applications-C0jT2vdZ.js} +2 -2
- package/studio/web/assets/{applications-B5hhv7uA.js.map → applications-C0jT2vdZ.js.map} +1 -1
- package/studio/web/assets/{index-VFcpNWgq.js → index-D_GKOkhn.js} +6 -6
- package/studio/web/assets/index-D_GKOkhn.js.map +1 -0
- package/studio/web/assets/{index.lazy-DgcJojIA.js → index.lazy-CAmCIA65.js} +4 -4
- package/studio/web/assets/{index.lazy-DgcJojIA.js.map → index.lazy-CAmCIA65.js.map} +1 -1
- package/studio/web/assets/{profile-BqN-8vzm.js → profile-CaF-4aZe.js} +2 -2
- package/studio/web/assets/{profile-BqN-8vzm.js.map → profile-CaF-4aZe.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-CHFvFq9u.js → setComponentFile-DLW1DHCt.js} +2 -2
- package/studio/web/assets/{setComponentFile-CHFvFq9u.js.map → setComponentFile-DLW1DHCt.js.map} +1 -1
- package/studio/web/assets/{setup-CQ3vWJSr.js → setup-TGCErIhq.js} +2 -2
- package/studio/web/assets/{setup-CQ3vWJSr.js.map → setup-TGCErIhq.js.map} +1 -1
- package/studio/web/assets/{status-BsW5fjuh.js → status-DG0Maoao.js} +2 -2
- package/studio/web/assets/{status-BsW5fjuh.js.map → status-DG0Maoao.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-DITdeB9-.js → swagger-ui-react-8T4SgQ1m.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-DITdeB9-.js.map → swagger-ui-react-8T4SgQ1m.js.map} +1 -1
- package/studio/web/assets/{tsMode-Dyph-OUs.js → tsMode-DJ6Sl24Q.js} +2 -2
- package/studio/web/assets/{tsMode-Dyph-OUs.js.map → tsMode-DJ6Sl24Q.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-D0QTUqex.js → useEntityRestURL-JO2mfWTQ.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-D0QTUqex.js.map → useEntityRestURL-JO2mfWTQ.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/directives/5-2-0.ts +82 -0
- package/upgrade/directives/directivesController.ts +2 -1
- package/utility/common_utils.ts +5 -0
- package/utility/envFile.ts +218 -0
- package/utility/hdbTerms.ts +31 -0
- package/utility/logging/harper_logger.ts +156 -8
- package/utility/logging/logRotator.ts +24 -14
- package/utility/logging/readLog.ts +323 -2
- package/utility/operationPermissions.ts +35 -1
- package/utility/operation_authorization.ts +74 -1
- package/utility/secretEnvelope.ts +113 -0
- package/utility/signalling.ts +15 -0
- package/validation/configValidator.ts +78 -25
- package/studio/web/assets/index-VFcpNWgq.js.map +0 -1
|
@@ -8,8 +8,12 @@ const hdbLogger = require("../utility/logging/harper_logger.js");
|
|
|
8
8
|
const configUtils = require("../config/configUtils.js");
|
|
9
9
|
const { hdbErrors } = require("../utility/errors/hdbError.js");
|
|
10
10
|
const { HDB_ERROR_MSGS } = hdbErrors;
|
|
11
|
+
const { ENV_ENCRYPTED_PREFIX } = require("../utility/envFile.js");
|
|
11
12
|
// File name can only be alphanumeric, dash and underscores
|
|
12
13
|
const PROJECT_FILE_NAME_REGEX = /^[a-zA-Z0-9-_]+$/;
|
|
14
|
+
// dotenv's accepted key character set. Restricting keys to this prevents a crafted key (e.g. one
|
|
15
|
+
// containing `=` or a newline) from injecting extra assignments into a .env file.
|
|
16
|
+
const ENV_KEY_REGEX = /^[\w.-]+$/;
|
|
13
17
|
module.exports = {
|
|
14
18
|
getDropCustomFunctionValidator,
|
|
15
19
|
setCustomFunctionValidator,
|
|
@@ -20,6 +24,12 @@ module.exports = {
|
|
|
20
24
|
setComponentFileValidator,
|
|
21
25
|
getComponentFileValidator,
|
|
22
26
|
dropComponentFileValidator,
|
|
27
|
+
getEnvKeysValidator,
|
|
28
|
+
setEnvValueValidator,
|
|
29
|
+
deleteEnvValueValidator,
|
|
30
|
+
setSecretValidator,
|
|
31
|
+
grantSecretValidator,
|
|
32
|
+
deleteSecretValidator,
|
|
23
33
|
};
|
|
24
34
|
/**
|
|
25
35
|
* Check to see if a project dir exists in the custom functions dir.
|
|
@@ -150,6 +160,126 @@ function getComponentFileValidator(req) {
|
|
|
150
160
|
});
|
|
151
161
|
return validator.validateBySchema(req, getCompSchema);
|
|
152
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Validate get_env_keys requests. `file` is optional and defaults to `.env` in the handler.
|
|
165
|
+
* @param req
|
|
166
|
+
* @returns {*}
|
|
167
|
+
*/
|
|
168
|
+
function getEnvKeysValidator(req) {
|
|
169
|
+
const schema = Joi.object({
|
|
170
|
+
// Patterned like the env writers (not the looser getComponentFile) so a `project` containing
|
|
171
|
+
// `..` can't traverse out of the components root when joined in resolveEnvFilePath.
|
|
172
|
+
project: Joi.string()
|
|
173
|
+
.pattern(PROJECT_FILE_NAME_REGEX)
|
|
174
|
+
.required()
|
|
175
|
+
.messages({ 'string.pattern.base': HDB_ERROR_MSGS.BAD_PROJECT_NAME }),
|
|
176
|
+
file: Joi.string().custom(checkFilePath).optional(),
|
|
177
|
+
});
|
|
178
|
+
return validator.validateBySchema(req, schema);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Validate set_env_value requests: exactly one of (`key` + `value`) or `values` (a key→value map).
|
|
182
|
+
* @param req
|
|
183
|
+
* @returns {*}
|
|
184
|
+
*/
|
|
185
|
+
function setEnvValueValidator(req) {
|
|
186
|
+
const schema = Joi.object({
|
|
187
|
+
project: Joi.string()
|
|
188
|
+
.pattern(PROJECT_FILE_NAME_REGEX)
|
|
189
|
+
.required()
|
|
190
|
+
.messages({ 'string.pattern.base': HDB_ERROR_MSGS.BAD_PROJECT_NAME }),
|
|
191
|
+
file: Joi.string().custom(checkFilePath).optional(),
|
|
192
|
+
key: Joi.string().pattern(ENV_KEY_REGEX),
|
|
193
|
+
value: Joi.string().allow(''),
|
|
194
|
+
// `.unknown(false)` rejects keys that don't match ENV_KEY_REGEX. Without it the schema-wide
|
|
195
|
+
// `allowUnknown: true` (see validateBySchema) would let an invalid key (e.g. with a space or
|
|
196
|
+
// newline) pass through unvalidated and corrupt the file.
|
|
197
|
+
values: Joi.object().pattern(ENV_KEY_REGEX, Joi.string().allow('')).unknown(false),
|
|
198
|
+
})
|
|
199
|
+
.with('key', 'value')
|
|
200
|
+
.with('value', 'key')
|
|
201
|
+
.xor('key', 'values');
|
|
202
|
+
return validator.validateBySchema(req, schema);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Validate delete_env_value requests: exactly one of `key` or `keys` (an array of key names).
|
|
206
|
+
* @param req
|
|
207
|
+
* @returns {*}
|
|
208
|
+
*/
|
|
209
|
+
function deleteEnvValueValidator(req) {
|
|
210
|
+
const schema = Joi.object({
|
|
211
|
+
project: Joi.string()
|
|
212
|
+
.pattern(PROJECT_FILE_NAME_REGEX)
|
|
213
|
+
.required()
|
|
214
|
+
.messages({ 'string.pattern.base': HDB_ERROR_MSGS.BAD_PROJECT_NAME }),
|
|
215
|
+
file: Joi.string().custom(checkFilePath).optional(),
|
|
216
|
+
key: Joi.string().pattern(ENV_KEY_REGEX),
|
|
217
|
+
keys: Joi.array().items(Joi.string().pattern(ENV_KEY_REGEX)).min(1),
|
|
218
|
+
}).xor('key', 'keys');
|
|
219
|
+
return validator.validateBySchema(req, schema);
|
|
220
|
+
}
|
|
221
|
+
// A secret name doubles as an env key when materialized, so it is held to the same character set.
|
|
222
|
+
const SECRET_NAME = Joi.string()
|
|
223
|
+
.pattern(ENV_KEY_REGEX)
|
|
224
|
+
.required()
|
|
225
|
+
.messages({ 'string.pattern.base': `'name' must only contain word characters, dots and dashes` });
|
|
226
|
+
// The encrypted-value marker followed by a base64url envelope body (structural validation of the
|
|
227
|
+
// decoded JSON happens in the handler via parseEnvelopeFields). Derived from the shared prefix
|
|
228
|
+
// constant so validator and handler can't drift; the prefix contains no regex metacharacters.
|
|
229
|
+
// Trailing `=` padding is tolerated — some browser encoders emit padded base64url, and Node's
|
|
230
|
+
// base64url decoder accepts either form.
|
|
231
|
+
const SECRET_ENVELOPE_REGEX = new RegExp(`^${ENV_ENCRYPTED_PREFIX}[A-Za-z0-9_-]+={0,2}$`);
|
|
232
|
+
// Size cap for secret values and envelopes: rows live forever in a replicated, audited system
|
|
233
|
+
// table, so unbounded payloads are a storage/replication hazard, not a feature.
|
|
234
|
+
const SECRET_MAX_LENGTH = 256 * 1024;
|
|
235
|
+
/**
|
|
236
|
+
* Validate set_secret requests: `name` plus exactly one of `value` (plaintext) or `envelope`
|
|
237
|
+
* (`enc:v1:` ciphertext), with optional `metadata`, and a tier of either `processEnv` or `grants`
|
|
238
|
+
* (the handler rejects the two together — a processEnv secret is global, so scoping it is meaningless).
|
|
239
|
+
* @param req
|
|
240
|
+
* @returns {*}
|
|
241
|
+
*/
|
|
242
|
+
function setSecretValidator(req) {
|
|
243
|
+
const schema = Joi.object({
|
|
244
|
+
name: SECRET_NAME,
|
|
245
|
+
value: Joi.string().allow('').max(SECRET_MAX_LENGTH),
|
|
246
|
+
envelope: Joi.string()
|
|
247
|
+
.max(SECRET_MAX_LENGTH)
|
|
248
|
+
.pattern(SECRET_ENVELOPE_REGEX)
|
|
249
|
+
.messages({ 'string.pattern.base': `'envelope' must be an '${ENV_ENCRYPTED_PREFIX}' base64url envelope` }),
|
|
250
|
+
// Modest structural caps: metadata is a small free-form label object, not a payload store,
|
|
251
|
+
// and grants is a set (explicit duplicates rejected here; write paths also dedupe dirty state).
|
|
252
|
+
metadata: Joi.object().max(100),
|
|
253
|
+
grants: Joi.array().items(Joi.string().min(1)).max(100).unique(),
|
|
254
|
+
// process.env delivery tier; mutually exclusive with grants (enforced in the handler so the
|
|
255
|
+
// check also covers a grants add against an already-processEnv stored row).
|
|
256
|
+
processEnv: Joi.boolean(),
|
|
257
|
+
}).xor('value', 'envelope');
|
|
258
|
+
return validator.validateBySchema(req, schema);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Validate grant_secret / revoke_secret requests (same shape: `name` + `component`).
|
|
262
|
+
* @param req
|
|
263
|
+
* @returns {*}
|
|
264
|
+
*/
|
|
265
|
+
function grantSecretValidator(req) {
|
|
266
|
+
const schema = Joi.object({
|
|
267
|
+
name: SECRET_NAME,
|
|
268
|
+
component: Joi.string().min(1).required(),
|
|
269
|
+
});
|
|
270
|
+
return validator.validateBySchema(req, schema);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Validate delete_secret requests.
|
|
274
|
+
* @param req
|
|
275
|
+
* @returns {*}
|
|
276
|
+
*/
|
|
277
|
+
function deleteSecretValidator(req) {
|
|
278
|
+
const schema = Joi.object({
|
|
279
|
+
name: SECRET_NAME,
|
|
280
|
+
});
|
|
281
|
+
return validator.validateBySchema(req, schema);
|
|
282
|
+
}
|
|
153
283
|
/**
|
|
154
284
|
* Validate addCustomFunctionProject requests.
|
|
155
285
|
* @param req
|
|
@@ -228,6 +358,31 @@ function deployComponentValidator(req) {
|
|
|
228
358
|
})
|
|
229
359
|
.optional()
|
|
230
360
|
.messages({ 'any.invalid': 'urlPath must not contain ".."' }),
|
|
361
|
+
// Private-registry auth. Each entry supplies its credential exactly one of two ways:
|
|
362
|
+
// - `token`: a literal token, used only for this node's npm pack/install and never
|
|
363
|
+
// persisted or replicated (stripped from req before replicateOperation).
|
|
364
|
+
// - `secret`: the name of an hdb_secret row (#1550); the token is resolved by decrypting
|
|
365
|
+
// that row on this node at deploy time, so the credential lives in the secrets store
|
|
366
|
+
// (reference, not embed) instead of travelling in the operation body.
|
|
367
|
+
registryAuth: Joi.array()
|
|
368
|
+
.items(Joi.object({
|
|
369
|
+
// registry and token are written verbatim into the transient .npmrc, which is
|
|
370
|
+
// line-based; forbid CR/LF so a super_user can't inject extra npm config lines.
|
|
371
|
+
// (registry also accepts bare hosts and //host/ forms, so a strict URI validator
|
|
372
|
+
// would reject supported inputs — the newline guard is the right scope here.)
|
|
373
|
+
registry: Joi.string()
|
|
374
|
+
.pattern(/^[^\r\n]+$/)
|
|
375
|
+
.required(),
|
|
376
|
+
token: Joi.string().pattern(/^[^\r\n]+$/),
|
|
377
|
+
// A reference into the hdb_secret store; same name grammar as set_secret's `name`.
|
|
378
|
+
secret: Joi.string()
|
|
379
|
+
.pattern(ENV_KEY_REGEX)
|
|
380
|
+
.messages({ 'string.pattern.base': `'secret' must only contain word characters, dots and dashes` }),
|
|
381
|
+
scope: Joi.string()
|
|
382
|
+
.pattern(/^@[a-z0-9-_.]+$/)
|
|
383
|
+
.optional(),
|
|
384
|
+
}).xor('token', 'secret'))
|
|
385
|
+
.optional(),
|
|
231
386
|
}).with('urlPath', 'package');
|
|
232
387
|
return validator.validateBySchema(req, deployProjSchema);
|
|
233
388
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operationsValidation.js","sourceRoot":"","sources":["../../components/operationsValidation.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operationsValidation.js","sourceRoot":"","sources":["../../components/operationsValidation.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upsert a secret. Exactly one of `value` (plaintext, encrypted immediately — requires custody)
|
|
3
|
+
* or `envelope` (`enc:v1:...` ciphertext, encrypted client-side against get_secrets_public_key).
|
|
4
|
+
* `kid` is derived from the envelope server-side; a client-supplied kid field is never trusted.
|
|
5
|
+
* Never returns or logs plaintext.
|
|
6
|
+
*
|
|
7
|
+
* The delivery tier is explicit and mutually exclusive (a process-env secret is already global, so
|
|
8
|
+
* scoping it is meaningless):
|
|
9
|
+
* - `processEnv: true` — materialized into the real `process.env` at component load, inherited by
|
|
10
|
+
* child processes (`.env` semantics). No isolation promise.
|
|
11
|
+
* - `grants: [...]` — scoped: never in `process.env`, exposed only to the listed components via the
|
|
12
|
+
* `secrets` accessor.
|
|
13
|
+
* Both default to the stored row so a value rotation preserves the tier without re-specifying it.
|
|
14
|
+
*/
|
|
15
|
+
export declare function setSecret(req: any): Promise<{
|
|
16
|
+
name: any;
|
|
17
|
+
kid: string;
|
|
18
|
+
created: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
/** Add a component to a secret's grants list (idempotent). */
|
|
21
|
+
export declare function grantSecret(req: any): Promise<{
|
|
22
|
+
name: any;
|
|
23
|
+
grants: string[];
|
|
24
|
+
changed: boolean;
|
|
25
|
+
}>;
|
|
26
|
+
/** Remove a component from a secret's grants list (idempotent). */
|
|
27
|
+
export declare function revokeSecret(req: any): Promise<{
|
|
28
|
+
name: any;
|
|
29
|
+
grants: string[];
|
|
30
|
+
changed: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* List secret metadata: never envelopes, never values. Includes the node's current custody
|
|
34
|
+
* fingerprint (null when custody is absent) and a per-row kid_matches_custody flag so stale rows
|
|
35
|
+
* on a cloned/rekeyed node are immediately visible.
|
|
36
|
+
*/
|
|
37
|
+
export declare function listSecrets(req: any): Promise<{
|
|
38
|
+
secrets: any[];
|
|
39
|
+
custody_fingerprint: string;
|
|
40
|
+
}>;
|
|
41
|
+
/** Delete a secret row. Not cryptographic erasure — audit/txn logs and backups retain envelopes. */
|
|
42
|
+
export declare function deleteSecret(req: any): Promise<{
|
|
43
|
+
message: string;
|
|
44
|
+
}>;
|
|
45
|
+
/** The cluster secrets public key, for client-side envelope encryption. */
|
|
46
|
+
export declare function getSecretsPublicKey(req: any): {
|
|
47
|
+
public_key: string;
|
|
48
|
+
fingerprint: string;
|
|
49
|
+
};
|
|
50
|
+
/** A resolved registry-auth entry as consumed by the transient .npmrc writer. */
|
|
51
|
+
export interface ResolvedRegistryAuthEntry {
|
|
52
|
+
registry: string;
|
|
53
|
+
token: string;
|
|
54
|
+
scope?: string;
|
|
55
|
+
}
|
|
56
|
+
/** A registry-auth entry after ingestion: a reference into hdb_secret, never a token. */
|
|
57
|
+
export interface RegistryAuthReference {
|
|
58
|
+
registry: string;
|
|
59
|
+
secret: string;
|
|
60
|
+
scope?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Deterministic name for the auto-minted secret backing a literal registry token: keyed by the
|
|
64
|
+
* deploying component and the registry, so re-supplying (or rotating) the token on a later deploy
|
|
65
|
+
* overwrites the same row rather than accumulating one per deploy. Sanitized to the set_secret name
|
|
66
|
+
* grammar (`\w.-`), since a registry can carry a scheme, port, or path.
|
|
67
|
+
*/
|
|
68
|
+
export declare function deriveRegistrySecretName(component: string, registry: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* Ingest deploy_component `registryAuth` into the secrets store so a provided registry token lives
|
|
71
|
+
* as ciphertext in the replicated, audited `hdb_secret` store (reference, not embed) rather than
|
|
72
|
+
* travelling in the operation body. Returns the entries in reference form (`{ registry, secret }`).
|
|
73
|
+
*
|
|
74
|
+
* - A literal `{ registry, token }` entry is encrypted (via `set_secret`, custody required) under a
|
|
75
|
+
* derived name granted to `component`, and returned as a reference. Overwrites an existing
|
|
76
|
+
* derived row so token rotation is idempotent.
|
|
77
|
+
* - An already-reference `{ registry, secret }` entry passes through unchanged (peers re-running a
|
|
78
|
+
* replicated deploy already carry references — they never re-ingest).
|
|
79
|
+
* - With no custody on this node (OSS core, or key not held here), literal tokens CANNOT be sealed;
|
|
80
|
+
* they pass through untouched so the caller can fall back to the transient, this-node-only path.
|
|
81
|
+
* The reference-form result therefore contains only entries the caller may persist and replicate.
|
|
82
|
+
*
|
|
83
|
+
* Runs on the deploying main thread where custody is registered.
|
|
84
|
+
*/
|
|
85
|
+
export declare function ingestRegistryAuth(req: any, registryAuth: any[] | undefined, component: string): Promise<any[]>;
|
|
86
|
+
/**
|
|
87
|
+
* Resolve deploy_component `registryAuth` entries that reference a stored secret
|
|
88
|
+
* (`{ registry, secret }`) into concrete token entries (`{ registry, token }`) by decrypting the
|
|
89
|
+
* named hdb_secret row on this thread. Entries that already carry a literal `token` pass through
|
|
90
|
+
* unchanged, so this is a no-op for the token-only fallback form.
|
|
91
|
+
*
|
|
92
|
+
* This is intentionally NOT a `get_secret` operation — the store never returns plaintext across the
|
|
93
|
+
* API boundary. The resolved token is handed back to the install path in-memory, fed to the
|
|
94
|
+
* transient .npmrc, and never written back to the request body, replicated, or logged.
|
|
95
|
+
*
|
|
96
|
+
* Authority mirrors the accessor model (#1550): the referenced secret must be usable by the
|
|
97
|
+
* component being deployed — either a `processEnv` (global) secret or a scoped secret granted to
|
|
98
|
+
* `component`. Without that, the deploy path would let a super_user pull an arbitrary scoped secret
|
|
99
|
+
* into an .npmrc, sidestepping the grant that is the store's authority. A missing row, missing
|
|
100
|
+
* grant, absent custody, or decrypt failure throws a ClientError naming the precise reason.
|
|
101
|
+
*
|
|
102
|
+
* `options.waitMs` gives a bounded grace period for a referenced row to replicate in (used on the
|
|
103
|
+
* peer side of a replicated deploy, where the deploy op can arrive just ahead of the hdb_secret
|
|
104
|
+
* row); it defaults to 0 (the origin wrote the row before it resolves, so no wait is needed).
|
|
105
|
+
*
|
|
106
|
+
* Runs on the main thread, where the operations API dispatches deploys and the Pro secrets
|
|
107
|
+
* component registers custody — the same place set_secret decrypts. On a node without custody
|
|
108
|
+
* (OSS core, or a custody key not held here) a referenced secret cannot be resolved and the deploy
|
|
109
|
+
* fails loudly rather than silently installing without auth.
|
|
110
|
+
*/
|
|
111
|
+
export declare function resolveRegistryAuth(registryAuth: any[] | undefined, component: string, options?: {
|
|
112
|
+
waitMs?: number;
|
|
113
|
+
}): Promise<ResolvedRegistryAuthEntry[] | undefined>;
|