n8n 2.26.4 → 2.27.0
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/dist/active-workflow-manager.d.ts +9 -17
- package/dist/active-workflow-manager.js +48 -159
- package/dist/active-workflow-manager.js.map +1 -1
- package/dist/binary-data/database.manager.js +2 -1
- package/dist/binary-data/database.manager.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/audit.d.ts +1 -0
- package/dist/commands/audit.js +9 -0
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/base-command.d.ts +1 -0
- package/dist/commands/base-command.js +31 -10
- package/dist/commands/base-command.js.map +1 -1
- package/dist/commands/export/workflow.js +9 -0
- package/dist/commands/export/workflow.js.map +1 -1
- package/dist/commands/import/workflow.js +6 -0
- package/dist/commands/import/workflow.js.map +1 -1
- package/dist/commands/start.js +7 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/worker.js +6 -3
- package/dist/commands/worker.js.map +1 -1
- package/dist/concurrency/concurrency-queue.d.ts +1 -1
- package/dist/concurrency/concurrency-queue.js +2 -2
- package/dist/concurrency/concurrency-queue.js.map +1 -1
- package/dist/controllers/api-keys.controller.js +6 -2
- package/dist/controllers/api-keys.controller.js.map +1 -1
- package/dist/controllers/e2e.controller.js +1 -1
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/oauth/oauth2-credential.controller.js +7 -0
- package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
- package/dist/controllers/security-settings.controller.d.ts +3 -3
- package/dist/controllers/security-settings.controller.js +3 -8
- package/dist/controllers/security-settings.controller.js.map +1 -1
- package/dist/credentials-helper.js +3 -0
- package/dist/credentials-helper.js.map +1 -1
- package/dist/errors/http-error-serializers.js +2 -15
- package/dist/errors/http-error-serializers.js.map +1 -1
- package/dist/errors/response-errors/bad-request.error.d.ts +1 -1
- package/dist/errors/response-errors/bad-request.error.js +2 -2
- package/dist/errors/response-errors/bad-request.error.js.map +1 -1
- package/dist/errors/response-errors/unprocessable.error.d.ts +2 -1
- package/dist/errors/response-errors/unprocessable.error.js +2 -1
- package/dist/errors/response-errors/unprocessable.error.js.map +1 -1
- package/dist/events/event.service.d.ts +1 -1
- package/dist/events/event.service.js +2 -2
- package/dist/events/event.service.js.map +1 -1
- package/dist/events/maps/execution-data.event-map.d.ts +1 -0
- package/dist/events/maps/relay.event-map.d.ts +13 -0
- package/dist/events/relays/log-streaming.event-relay.js +2 -2
- package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
- package/dist/events/relays/telemetry.event-relay.d.ts +2 -0
- package/dist/events/relays/telemetry.event-relay.js +21 -2
- package/dist/events/relays/telemetry.event-relay.js.map +1 -1
- package/dist/executions/execution-data/db-store.d.ts +3 -1
- package/dist/executions/execution-data/db-store.js +14 -0
- package/dist/executions/execution-data/db-store.js.map +1 -1
- package/dist/executions/execution-data/fs-store.d.ts +1 -1
- package/dist/executions/execution-data/fs-store.js +3 -1
- package/dist/executions/execution-data/fs-store.js.map +1 -1
- package/dist/executions/execution-data/s3-store.ee.d.ts +15 -0
- package/dist/executions/execution-data/s3-store.ee.js +115 -0
- package/dist/executions/execution-data/s3-store.ee.js.map +1 -0
- package/dist/executions/execution-data/types.d.ts +1 -1
- package/dist/executions/execution-persistence.d.ts +16 -2
- package/dist/executions/execution-persistence.js +80 -22
- package/dist/executions/execution-persistence.js.map +1 -1
- package/dist/metrics/prometheus/active-workflow-metrics.service.d.ts +12 -0
- package/dist/metrics/prometheus/active-workflow-metrics.service.js +61 -0
- package/dist/metrics/prometheus/active-workflow-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/base.d.ts +5 -0
- package/dist/metrics/{types.js → prometheus/base.js} +1 -1
- package/dist/metrics/prometheus/base.js.map +1 -0
- package/dist/metrics/prometheus/cache-metrics.service.d.ts +11 -0
- package/dist/metrics/prometheus/cache-metrics.service.js +48 -0
- package/dist/metrics/prometheus/cache-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/constant.d.ts +2 -0
- package/dist/metrics/prometheus/constant.js +18 -0
- package/dist/metrics/prometheus/constant.js.map +1 -0
- package/dist/metrics/prometheus/default-metrics.service.d.ts +8 -0
- package/dist/metrics/prometheus/default-metrics.service.js +35 -0
- package/dist/metrics/prometheus/default-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/dns-cache-metrics.service.d.ts +12 -0
- package/dist/metrics/prometheus/dns-cache-metrics.service.js +58 -0
- package/dist/metrics/prometheus/dns-cache-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/event-bus-metrics.service.d.ts +15 -0
- package/dist/metrics/prometheus/event-bus-metrics.service.js +106 -0
- package/dist/metrics/prometheus/event-bus-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/execution-data-metrics.service.d.ts +12 -0
- package/dist/metrics/prometheus/execution-data-metrics.service.js +106 -0
- package/dist/metrics/prometheus/execution-data-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/index.d.ts +1 -0
- package/dist/metrics/prometheus/index.js +6 -0
- package/dist/metrics/prometheus/index.js.map +1 -0
- package/dist/metrics/prometheus/instance-role-metrics.service.d.ts +13 -0
- package/dist/metrics/prometheus/instance-role-metrics.service.js +61 -0
- package/dist/metrics/prometheus/instance-role-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/prometheus.service.d.ts +26 -0
- package/dist/metrics/prometheus/prometheus.service.js +105 -0
- package/dist/metrics/prometheus/prometheus.service.js.map +1 -0
- package/dist/metrics/prometheus/pss-metrics.service.d.ts +9 -0
- package/dist/metrics/prometheus/pss-metrics.service.js +59 -0
- package/dist/metrics/prometheus/pss-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/queue-metrics.service.d.ts +13 -0
- package/dist/metrics/prometheus/queue-metrics.service.js +71 -0
- package/dist/metrics/prometheus/queue-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/route-metrics.service.d.ts +11 -0
- package/dist/metrics/prometheus/route-metrics.service.js +69 -0
- package/dist/metrics/prometheus/route-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/ssrf-metrics.service.d.ts +11 -0
- package/dist/metrics/prometheus/ssrf-metrics.service.js +65 -0
- package/dist/metrics/prometheus/ssrf-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/token-exchange-metrics.service.d.ts +10 -0
- package/dist/metrics/prometheus/token-exchange-metrics.service.js +91 -0
- package/dist/metrics/prometheus/token-exchange-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/version-metrics.service.d.ts +8 -0
- package/dist/metrics/prometheus/version-metrics.service.js +46 -0
- package/dist/metrics/prometheus/version-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/workflow-execution-duration-metrics.service.d.ts +10 -0
- package/dist/metrics/prometheus/workflow-execution-duration-metrics.service.js +61 -0
- package/dist/metrics/prometheus/workflow-execution-duration-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/workflow-statistics-metrics.service.d.ts +17 -0
- package/dist/metrics/prometheus/workflow-statistics-metrics.service.js +130 -0
- package/dist/metrics/prometheus/workflow-statistics-metrics.service.js.map +1 -0
- package/dist/modules/agents/agent-knowledge.service.d.ts +3 -32
- package/dist/modules/agents/agent-knowledge.service.js +7 -248
- package/dist/modules/agents/agent-knowledge.service.js.map +1 -1
- package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +1 -6
- package/dist/modules/agents/agent-runtime-reconstruction.service.js +2 -28
- package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
- package/dist/modules/agents/agents-list.controller.d.ts +9 -0
- package/dist/modules/agents/agents-list.controller.js +39 -0
- package/dist/modules/agents/agents-list.controller.js.map +1 -0
- package/dist/modules/agents/agents.controller.d.ts +6 -6
- package/dist/modules/agents/agents.controller.js +12 -19
- package/dist/modules/agents/agents.controller.js.map +1 -1
- package/dist/modules/agents/agents.module.d.ts +3 -2
- package/dist/modules/agents/agents.module.js +4 -2
- package/dist/modules/agents/agents.module.js.map +1 -1
- package/dist/modules/agents/agents.service.d.ts +10 -2
- package/dist/modules/agents/agents.service.js +119 -82
- package/dist/modules/agents/agents.service.js.map +1 -1
- package/dist/modules/agents/entities/agent-chat-subscription.entity.d.ts +10 -0
- package/dist/modules/agents/entities/{agent-file.entity.js → agent-chat-subscription.entity.js} +34 -23
- package/dist/modules/agents/entities/agent-chat-subscription.entity.js.map +1 -0
- package/dist/modules/agents/execution-recorder.js +15 -2
- package/dist/modules/agents/execution-recorder.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-subscription-state.adapter.d.ts +43 -0
- package/dist/modules/agents/integrations/agent-chat-subscription-state.adapter.js +139 -0
- package/dist/modules/agents/integrations/agent-chat-subscription-state.adapter.js.map +1 -0
- package/dist/modules/agents/integrations/agent-chat-subscription-state.service.d.ts +26 -0
- package/dist/modules/agents/integrations/agent-chat-subscription-state.service.js +88 -0
- package/dist/modules/agents/integrations/agent-chat-subscription-state.service.js.map +1 -0
- package/dist/modules/agents/integrations/chat-integration.service.d.ts +3 -1
- package/dist/modules/agents/integrations/chat-integration.service.js +47 -18
- package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
- package/dist/modules/agents/integrations/component-mapper.js.map +1 -1
- package/dist/modules/agents/integrations/slack-app-setup.service.js +8 -8
- package/dist/modules/agents/integrations/slack-app-setup.service.js.map +1 -1
- package/dist/modules/agents/repositories/agent-chat-subscription.repository.d.ts +15 -0
- package/dist/modules/agents/repositories/agent-chat-subscription.repository.js +51 -0
- package/dist/modules/agents/repositories/agent-chat-subscription.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent.repository.d.ts +7 -0
- package/dist/modules/agents/repositories/agent.repository.js +28 -0
- package/dist/modules/agents/repositories/agent.repository.js.map +1 -1
- package/dist/modules/data-table/data-table.repository.js +1 -1
- package/dist/modules/data-table/data-table.repository.js.map +1 -1
- package/dist/modules/data-table/utils/sql-utils.js +16 -1
- package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +15 -7
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -1
- package/dist/modules/instance-ai/eval/execution.service.js +51 -32
- package/dist/modules/instance-ai/eval/execution.service.js.map +1 -1
- package/dist/modules/instance-ai/eval/mock-handler.js +77 -13
- package/dist/modules/instance-ai/eval/mock-handler.js.map +1 -1
- package/dist/modules/instance-ai/eval/mock-quirks.js +8 -1
- package/dist/modules/instance-ai/eval/mock-quirks.js.map +1 -1
- package/dist/modules/instance-ai/eval/workflow-analysis.js +2 -0
- package/dist/modules/instance-ai/eval/workflow-analysis.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +5 -4
- package/dist/modules/instance-ai/instance-ai.adapter.service.js +7 -121
- package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.controller.js +1 -1
- package/dist/modules/instance-ai/instance-ai.service.d.ts +5 -28
- package/dist/modules/instance-ai/instance-ai.service.js +58 -471
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/output-redaction-config.d.ts +3 -0
- package/dist/modules/instance-ai/output-redaction-config.js +19 -0
- package/dist/modules/instance-ai/output-redaction-config.js.map +1 -0
- package/dist/modules/instance-ai/sandbox/index.d.ts +1 -0
- package/dist/modules/instance-ai/sandbox/index.js +6 -0
- package/dist/modules/instance-ai/sandbox/index.js.map +1 -0
- package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.d.ts +77 -0
- package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js +297 -0
- package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js.map +1 -0
- package/dist/modules/instance-ai/suspended-run-restorer.service.d.ts +62 -0
- package/dist/modules/instance-ai/suspended-run-restorer.service.js +116 -0
- package/dist/modules/instance-ai/suspended-run-restorer.service.js.map +1 -0
- package/dist/modules/instance-ai/suspended-thread-persistence.service.d.ts +51 -0
- package/dist/modules/instance-ai/suspended-thread-persistence.service.js +106 -0
- package/dist/modules/instance-ai/suspended-thread-persistence.service.js.map +1 -0
- package/dist/modules/instance-ai/web-research/fetch-and-extract.d.ts +1 -1
- package/dist/modules/mcp/mcp-api-key.service.d.ts +3 -7
- package/dist/modules/mcp/mcp-api-key.service.js +1 -22
- package/dist/modules/mcp/mcp-api-key.service.js.map +1 -1
- package/dist/modules/mcp/mcp-protected-resource.d.ts +13 -0
- package/dist/modules/mcp/mcp-protected-resource.js +39 -0
- package/dist/modules/mcp/mcp-protected-resource.js.map +1 -0
- package/dist/modules/mcp/mcp-server-middleware.service.d.ts +5 -4
- package/dist/modules/mcp/mcp-server-middleware.service.js +9 -6
- package/dist/modules/mcp/mcp-server-middleware.service.js.map +1 -1
- package/dist/modules/mcp/mcp.errors.d.ts +0 -13
- package/dist/modules/mcp/mcp.errors.js +1 -27
- package/dist/modules/mcp/mcp.errors.js.map +1 -1
- package/dist/modules/mcp/mcp.module.d.ts +0 -1
- package/dist/modules/mcp/mcp.module.js +3 -11
- package/dist/modules/mcp/mcp.module.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +5 -1
- package/dist/modules/mcp/mcp.service.js +16 -2
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/mcp.types.d.ts +6 -14
- package/dist/modules/mcp/mcp.types.js.map +1 -1
- package/dist/modules/mcp/tools/get-workflow-details.tool.js +1 -1
- package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
- package/dist/modules/mcp/tools/list-tags.tool.d.ts +26 -0
- package/dist/modules/mcp/tools/list-tags.tool.js +91 -0
- package/dist/modules/mcp/tools/list-tags.tool.js.map +1 -0
- package/dist/modules/mcp/tools/schemas.d.ts +7 -0
- package/dist/modules/mcp/tools/schemas.js +3 -1
- package/dist/modules/mcp/tools/schemas.js.map +1 -1
- package/dist/modules/mcp/tools/search-workflows.tool.d.ts +2 -1
- package/dist/modules/mcp/tools/search-workflows.tool.js +14 -4
- package/dist/modules/mcp/tools/search-workflows.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/constants.d.ts +1 -1
- package/dist/modules/mcp/tools/workflow-builder/constants.js +2 -1
- package/dist/modules/mcp/tools/workflow-builder/constants.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +24 -6
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/explore-node-resources.tool.d.ts +18 -0
- package/dist/modules/mcp/tools/workflow-builder/explore-node-resources.tool.js +119 -0
- package/dist/modules/mcp/tools/workflow-builder/explore-node-resources.tool.js.map +1 -0
- package/dist/modules/mcp/tools/workflow-builder/get-workflow-node-types.tool.d.ts +2 -2
- package/dist/modules/mcp/tools/workflow-builder/get-workflow-node-types.tool.js +4 -4
- package/dist/modules/mcp/tools/workflow-builder/get-workflow-node-types.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js +8 -6
- package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/search-workflow-nodes.tool.js +1 -1
- package/dist/modules/mcp/tools/workflow-builder/search-workflow-nodes.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +4 -294
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +137 -16
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/workflow-operations.d.ts +23 -1
- package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js +54 -2
- package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-validation.utils.d.ts +1 -0
- package/dist/modules/mcp/tools/workflow-validation.utils.js +1 -0
- package/dist/modules/mcp/tools/workflow-validation.utils.js.map +1 -1
- package/dist/modules/mcp-registry/node-description-transform.js +6 -0
- package/dist/modules/mcp-registry/node-description-transform.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-blocked.error.d.ts +4 -0
- package/dist/modules/n8n-packages/engine/import-blocked.error.js +14 -0
- package/dist/modules/n8n-packages/engine/import-blocked.error.js.map +1 -0
- package/dist/modules/n8n-packages/engine/import-pipeline.d.ts +9 -7
- package/dist/modules/n8n-packages/engine/import-pipeline.js +57 -113
- package/dist/modules/n8n-packages/engine/import-pipeline.js.map +1 -1
- package/dist/modules/n8n-packages/engine/n8n-package-parser.d.ts +11 -0
- package/dist/modules/n8n-packages/engine/n8n-package-parser.js +114 -0
- package/dist/modules/n8n-packages/engine/n8n-package-parser.js.map +1 -0
- package/dist/modules/n8n-packages/entities/credential/credential-importer.d.ts +4 -5
- package/dist/modules/n8n-packages/entities/credential/credential-importer.js +9 -12
- package/dist/modules/n8n-packages/entities/credential/credential-importer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.d.ts +1 -0
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.js +27 -2
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.d.ts +3 -7
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.js +6 -13
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential.types.d.ts +3 -10
- package/dist/modules/n8n-packages/entities/credential/credential.types.js +0 -4
- package/dist/modules/n8n-packages/entities/credential/credential.types.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js +11 -6
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.d.ts +4 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.js +12 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-id-policy.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-id-policy.js +12 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-id-policy.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-import-match.service.d.ts +15 -2
- package/dist/modules/n8n-packages/entities/workflow/workflow-import-match.service.js +18 -2
- package/dist/modules/n8n-packages/entities/workflow/workflow-import-match.service.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-import.types.d.ts +47 -0
- package/dist/modules/n8n-packages/entities/workflow/{workflow-conflict-policy.types.js → workflow-import.types.js} +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-import.types.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.d.ts +14 -6
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js +136 -19
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.d.ts +16 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js +87 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.js +28 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.types.d.ts +14 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.types.js +10 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.types.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/io/tar/tar-package-reader.d.ts +10 -3
- package/dist/modules/n8n-packages/io/tar/tar-package-reader.js +103 -20
- package/dist/modules/n8n-packages/io/tar/tar-package-reader.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.config.d.ts +6 -0
- package/dist/modules/n8n-packages/n8n-packages.config.js +43 -0
- package/dist/modules/n8n-packages/n8n-packages.config.js.map +1 -0
- package/dist/modules/n8n-packages/n8n-packages.controller.js +0 -1
- package/dist/modules/n8n-packages/n8n-packages.controller.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.module.js +0 -2
- package/dist/modules/n8n-packages/n8n-packages.module.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.types.d.ts +41 -7
- package/dist/modules/n8n-packages/n8n-packages.types.js +7 -1
- package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
- package/dist/modules/n8n-packages/spec/serialized/workflow.schema.d.ts +3 -3
- package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js +1 -1
- package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js.map +1 -1
- package/dist/modules/n8n-packages/utils/import-package-upload.js +2 -2
- package/dist/modules/n8n-packages/utils/import-package-upload.js.map +1 -1
- package/dist/modules/oauth-server/database/entities/oauth-access-token.entity.js.map +1 -0
- package/dist/modules/oauth-server/database/entities/oauth-authorization-code.entity.js.map +1 -0
- package/dist/modules/oauth-server/database/entities/oauth-client.entity.js.map +1 -0
- package/dist/modules/oauth-server/database/entities/oauth-refresh-token.entity.js.map +1 -0
- package/dist/modules/oauth-server/database/entities/oauth-user-consent.entity.js.map +1 -0
- package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js.map +1 -0
- package/dist/modules/oauth-server/database/repositories/oauth-authorization-code.repository.js.map +1 -0
- package/dist/modules/oauth-server/database/repositories/oauth-client.repository.js.map +1 -0
- package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js.map +1 -0
- package/dist/modules/oauth-server/database/repositories/oauth-user-consent.repository.js.map +1 -0
- package/dist/modules/oauth-server/dto/approve-consent-request.dto.js.map +1 -0
- package/dist/modules/{mcp/mcp-oauth-authorization-code.service.d.ts → oauth-server/oauth-authorization-code.service.d.ts} +1 -1
- package/dist/modules/{mcp/mcp-oauth-authorization-code.service.js → oauth-server/oauth-authorization-code.service.js} +12 -12
- package/dist/modules/oauth-server/oauth-authorization-code.service.js.map +1 -0
- package/dist/modules/{mcp/mcp.oauth-clients.controller.d.ts → oauth-server/oauth-clients.controller.d.ts} +4 -4
- package/dist/modules/{mcp/mcp.oauth-clients.controller.js → oauth-server/oauth-clients.controller.js} +16 -16
- package/dist/modules/oauth-server/oauth-clients.controller.js.map +1 -0
- package/dist/modules/{mcp/mcp.auth.consent.controller.d.ts → oauth-server/oauth-consent.controller.d.ts} +3 -3
- package/dist/modules/{mcp/mcp.auth.consent.controller.js → oauth-server/oauth-consent.controller.js} +16 -10
- package/dist/modules/oauth-server/oauth-consent.controller.js.map +1 -0
- package/dist/modules/{mcp/mcp-oauth-consent.service.d.ts → oauth-server/oauth-consent.service.d.ts} +16 -7
- package/dist/modules/{mcp/mcp-oauth-consent.service.js → oauth-server/oauth-consent.service.js} +28 -12
- package/dist/modules/oauth-server/oauth-consent.service.js.map +1 -0
- package/dist/modules/oauth-server/oauth-server.module.d.ts +5 -0
- package/dist/modules/oauth-server/oauth-server.module.js +75 -0
- package/dist/modules/oauth-server/oauth-server.module.js.map +1 -0
- package/dist/modules/{mcp/mcp-oauth-service.d.ts → oauth-server/oauth-server.service.d.ts} +6 -6
- package/dist/modules/{mcp/mcp-oauth-service.js → oauth-server/oauth-server.service.js} +33 -30
- package/dist/modules/oauth-server/oauth-server.service.js.map +1 -0
- package/dist/modules/oauth-server/oauth-session.service.js.map +1 -0
- package/dist/modules/{mcp/mcp-oauth-token.service.d.ts → oauth-server/oauth-token.service.d.ts} +5 -8
- package/dist/modules/{mcp/mcp-oauth-token.service.js → oauth-server/oauth-token.service.js} +29 -30
- package/dist/modules/oauth-server/oauth-token.service.js.map +1 -0
- package/dist/modules/{mcp/mcp.oauth.controller.d.ts → oauth-server/oauth.controller.d.ts} +5 -3
- package/dist/modules/{mcp/mcp.oauth.controller.js → oauth-server/oauth.controller.js} +79 -68
- package/dist/modules/oauth-server/oauth.controller.js.map +1 -0
- package/dist/modules/oauth-server/oauth.errors.d.ts +13 -0
- package/dist/modules/oauth-server/oauth.errors.js +30 -0
- package/dist/modules/oauth-server/oauth.errors.js.map +1 -0
- package/dist/modules/{mcp/mcp-oauth.helpers.d.ts → oauth-server/oauth.helpers.d.ts} +1 -1
- package/dist/modules/{mcp/mcp-oauth.helpers.js → oauth-server/oauth.helpers.js} +4 -4
- package/dist/modules/oauth-server/oauth.helpers.js.map +1 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.d.ts +4 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.js +41 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.js.map +1 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.d.ts +28 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js +78 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js.map +1 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.d.ts +30 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js +95 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js.map +1 -0
- package/dist/modules/otel/execution-level-tracer.d.ts +5 -4
- package/dist/modules/otel/execution-level-tracer.js +8 -5
- package/dist/modules/otel/execution-level-tracer.js.map +1 -1
- package/dist/modules/otel/otel-lifecycle-handler.d.ts +8 -4
- package/dist/modules/otel/otel-lifecycle-handler.js +32 -15
- package/dist/modules/otel/otel-lifecycle-handler.js.map +1 -1
- package/dist/modules/otel/otel-settings.controller.d.ts +18 -0
- package/dist/modules/otel/otel-settings.controller.js +79 -0
- package/dist/modules/otel/otel-settings.controller.js.map +1 -0
- package/dist/modules/otel/otel-settings.service.d.ts +21 -0
- package/dist/modules/otel/otel-settings.service.js +89 -0
- package/dist/modules/otel/otel-settings.service.js.map +1 -0
- package/dist/modules/otel/otel.config.js +11 -10
- package/dist/modules/otel/otel.config.js.map +1 -1
- package/dist/modules/otel/otel.constants.d.ts +14 -0
- package/dist/modules/otel/otel.constants.js +15 -1
- package/dist/modules/otel/otel.constants.js.map +1 -1
- package/dist/modules/otel/otel.module.js +9 -17
- package/dist/modules/otel/otel.module.js.map +1 -1
- package/dist/modules/otel/otel.service.d.ts +15 -4
- package/dist/modules/otel/otel.service.js +73 -17
- package/dist/modules/otel/otel.service.js.map +1 -1
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +1 -0
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +46 -19
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
- package/dist/modules/redaction/instance-redaction-enforcement.service.js +0 -6
- package/dist/modules/redaction/instance-redaction-enforcement.service.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-git.service.ee.js +2 -5
- package/dist/modules/source-control.ee/source-control-git.service.ee.js.map +1 -1
- package/dist/modules/sso-saml/saml.service.ee.js +3 -2
- package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
- package/dist/modules/workflow-index/workflow-dependency-query.service.js +39 -20
- package/dist/modules/workflow-index/workflow-dependency-query.service.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +14 -0
- package/dist/oauth/oauth.service.js +220 -102
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/oauth/types.d.ts +1 -0
- package/dist/oauth/types.js.map +1 -1
- package/dist/public-api/index.js +8 -8
- package/dist/public-api/index.js.map +1 -1
- package/dist/public-api/types.d.ts +1 -6
- package/dist/public-api/v1/handlers/credentials/credentials.service.js +7 -8
- package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
- package/dist/public-api/v1/handlers/executions/executions.handler.js +1 -1
- package/dist/public-api/v1/handlers/executions/executions.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +3 -3
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +208 -51
- package/dist/push/abstract.push.d.ts +1 -2
- package/dist/push/abstract.push.js +1 -2
- package/dist/push/abstract.push.js.map +1 -1
- package/dist/push/index.d.ts +1 -2
- package/dist/push/index.js +3 -4
- package/dist/push/index.js.map +1 -1
- package/dist/scaling/constants.d.ts +2 -2
- package/dist/scaling/constants.js +1 -0
- package/dist/scaling/constants.js.map +1 -1
- package/dist/scaling/job-processor.d.ts +0 -1
- package/dist/scaling/job-processor.js +1 -23
- package/dist/scaling/job-processor.js.map +1 -1
- package/dist/scaling/multi-main-setup.ee.d.ts +1 -2
- package/dist/scaling/multi-main-setup.ee.js +1 -2
- package/dist/scaling/multi-main-setup.ee.js.map +1 -1
- package/dist/scaling/pubsub/pubsub.event-map.d.ts +7 -0
- package/dist/scaling/pubsub/pubsub.eventbus.d.ts +1 -1
- package/dist/scaling/pubsub/pubsub.eventbus.js +2 -2
- package/dist/scaling/pubsub/pubsub.eventbus.js.map +1 -1
- package/dist/scaling/pubsub/pubsub.types.d.ts +3 -1
- package/dist/scaling/worker-server.d.ts +1 -1
- package/dist/scaling/worker-server.js +5 -5
- package/dist/scaling/worker-server.js.map +1 -1
- package/dist/server.js +4 -3
- package/dist/server.js.map +1 -1
- package/dist/services/ai-workflow-builder.service.d.ts +2 -1
- package/dist/services/ai-workflow-builder.service.js +2 -1
- package/dist/services/ai-workflow-builder.service.js.map +1 -1
- package/dist/services/cache/cache.service.d.ts +1 -1
- package/dist/services/cache/cache.service.js +2 -2
- package/dist/services/cache/cache.service.js.map +1 -1
- package/dist/services/node-resource-explorer.service.d.ts +16 -0
- package/dist/services/node-resource-explorer.service.js +154 -0
- package/dist/services/node-resource-explorer.service.js.map +1 -0
- package/dist/services/oauth-token-verifier-proxy.service.d.ts +22 -0
- package/dist/services/oauth-token-verifier-proxy.service.js +36 -0
- package/dist/services/oauth-token-verifier-proxy.service.js.map +1 -0
- package/dist/services/protected-resource.registry.d.ts +31 -0
- package/dist/services/protected-resource.registry.js +115 -0
- package/dist/services/protected-resource.registry.js.map +1 -0
- package/dist/services/public-api-key.service.d.ts +8 -2
- package/dist/services/public-api-key.service.js +29 -6
- package/dist/services/public-api-key.service.js.map +1 -1
- package/dist/services/redis-client.service.d.ts +2 -2
- package/dist/services/redis-client.service.js +6 -4
- package/dist/services/redis-client.service.js.map +1 -1
- package/dist/services/tag.service.d.ts +10 -0
- package/dist/services/tag.service.js +84 -4
- package/dist/services/tag.service.js.map +1 -1
- package/dist/services/workflow-statistics.service.d.ts +1 -2
- package/dist/services/workflow-statistics.service.js +1 -2
- package/dist/services/workflow-statistics.service.js.map +1 -1
- package/dist/task-runners/sliding-window-signal.d.ts +1 -1
- package/dist/task-runners/task-runner-lifecycle-events.d.ts +1 -1
- package/dist/task-runners/task-runner-lifecycle-events.js +2 -2
- package/dist/task-runners/task-runner-lifecycle-events.js.map +1 -1
- package/dist/task-runners/task-runner-process-base.d.ts +1 -2
- package/dist/task-runners/task-runner-process-base.js +1 -2
- package/dist/task-runners/task-runner-process-base.js.map +1 -1
- package/dist/task-runners/task-runner-process-restart-loop-detector.d.ts +1 -1
- package/dist/task-runners/task-runner-process-restart-loop-detector.js +2 -2
- package/dist/task-runners/task-runner-process-restart-loop-detector.js.map +1 -1
- package/dist/user-management/email/templates/api-key-revoked.handlebars +196 -0
- package/dist/user-management/email/user-management-mailer.d.ts +6 -2
- package/dist/user-management/email/user-management-mailer.js +32 -0
- package/dist/user-management/email/user-management-mailer.js.map +1 -1
- package/dist/wait-tracker.d.ts +1 -1
- package/dist/wait-tracker.js +3 -3
- package/dist/wait-tracker.js.map +1 -1
- package/dist/webhooks/webhook-helpers.js +30 -1
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/webhooks/webhook-server.js +2 -2
- package/dist/webhooks/webhook-server.js.map +1 -1
- package/dist/webhooks/webhook.service.d.ts +4 -1
- package/dist/webhooks/webhook.service.js +19 -4
- package/dist/webhooks/webhook.service.js.map +1 -1
- package/dist/workflow-execute-additional-data.d.ts +1 -1
- package/dist/workflow-execute-additional-data.js +4 -1
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-helpers.d.ts +1 -1
- package/dist/workflow-helpers.js +13 -3
- package/dist/workflow-helpers.js.map +1 -1
- package/dist/workflow-runner.js +0 -2
- package/dist/workflow-runner.js.map +1 -1
- package/dist/workflows/publication/publication-result.d.ts +17 -0
- package/dist/workflows/publication/publication-result.js +3 -0
- package/dist/workflows/publication/publication-result.js.map +1 -0
- package/dist/workflows/publication/publication-status-reporter.d.ts +19 -0
- package/dist/workflows/publication/publication-status-reporter.js +110 -0
- package/dist/workflows/publication/publication-status-reporter.js.map +1 -0
- package/dist/workflows/publication/trigger-diff.d.ts +6 -0
- package/dist/workflows/publication/trigger-diff.js +27 -0
- package/dist/workflows/publication/trigger-diff.js.map +1 -0
- package/dist/workflows/publication/workflow-publication-applier.d.ts +14 -0
- package/dist/workflows/publication/workflow-publication-applier.js +96 -0
- package/dist/workflows/publication/workflow-publication-applier.js.map +1 -0
- package/dist/workflows/{workflow-publication-outbox-consumer.d.ts → publication/workflow-publication-outbox-consumer.d.ts} +9 -13
- package/dist/workflows/{workflow-publication-outbox-consumer.js → publication/workflow-publication-outbox-consumer.js} +25 -93
- package/dist/workflows/publication/workflow-publication-outbox-consumer.js.map +1 -0
- package/dist/workflows/triggers/non-webhook-trigger-registrar.d.ts +39 -0
- package/dist/workflows/triggers/non-webhook-trigger-registrar.js +58 -0
- package/dist/workflows/triggers/non-webhook-trigger-registrar.js.map +1 -0
- package/dist/workflows/triggers/trigger-count.service.d.ts +5 -0
- package/dist/workflows/triggers/trigger-count.service.js +65 -0
- package/dist/workflows/triggers/trigger-count.service.js.map +1 -0
- package/dist/workflows/triggers/trigger-execution-context.factory.d.ts +33 -0
- package/dist/workflows/triggers/trigger-execution-context.factory.js +171 -0
- package/dist/workflows/triggers/trigger-execution-context.factory.js.map +1 -0
- package/dist/workflows/triggers/webhook-trigger-registrar.d.ts +29 -0
- package/dist/workflows/triggers/webhook-trigger-registrar.js +143 -0
- package/dist/workflows/triggers/webhook-trigger-registrar.js.map +1 -0
- package/dist/workflows/triggers/workflow-trigger-activator.d.ts +56 -0
- package/dist/workflows/triggers/workflow-trigger-activator.js +313 -0
- package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -0
- package/dist/workflows/workflow-validation.service.d.ts +3 -0
- package/dist/workflows/workflow-validation.service.js +63 -37
- package/dist/workflows/workflow-validation.service.js.map +1 -1
- package/dist/workflows/workflow.service.d.ts +5 -3
- package/dist/workflows/workflow.service.js +91 -28
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflows.controller.d.ts +3 -3
- package/dist/workflows/workflows.controller.js +3 -3
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/package.json +34 -33
- package/templates/oauth-callback.handlebars +3 -0
- package/templates/oauth-error-callback.handlebars +3 -0
- package/dist/metrics/prometheus-metrics.service.d.ts +0 -54
- package/dist/metrics/prometheus-metrics.service.js +0 -607
- package/dist/metrics/prometheus-metrics.service.js.map +0 -1
- package/dist/metrics/types.d.ts +0 -6
- package/dist/metrics/types.js.map +0 -1
- package/dist/modules/agents/agent-knowledge-command.service.d.ts +0 -40
- package/dist/modules/agents/agent-knowledge-command.service.js +0 -221
- package/dist/modules/agents/agent-knowledge-command.service.js.map +0 -1
- package/dist/modules/agents/entities/agent-file.entity.d.ts +0 -11
- package/dist/modules/agents/entities/agent-file.entity.js.map +0 -1
- package/dist/modules/agents/repositories/agent-file.repository.d.ts +0 -7
- package/dist/modules/agents/repositories/agent-file.repository.js +0 -35
- package/dist/modules/agents/repositories/agent-file.repository.js.map +0 -1
- package/dist/modules/agents/tools/knowledge/csv-helpers.d.ts +0 -73
- package/dist/modules/agents/tools/knowledge/csv-helpers.js +0 -341
- package/dist/modules/agents/tools/knowledge/csv-helpers.js.map +0 -1
- package/dist/modules/agents/tools/knowledge/csv.operation.d.ts +0 -61
- package/dist/modules/agents/tools/knowledge/csv.operation.js +0 -207
- package/dist/modules/agents/tools/knowledge/csv.operation.js.map +0 -1
- package/dist/modules/agents/tools/knowledge/file-references.d.ts +0 -16
- package/dist/modules/agents/tools/knowledge/file-references.js +0 -35
- package/dist/modules/agents/tools/knowledge/file-references.js.map +0 -1
- package/dist/modules/agents/tools/knowledge/read.operation.d.ts +0 -8
- package/dist/modules/agents/tools/knowledge/read.operation.js +0 -38
- package/dist/modules/agents/tools/knowledge/read.operation.js.map +0 -1
- package/dist/modules/agents/tools/knowledge/schemas.d.ts +0 -1505
- package/dist/modules/agents/tools/knowledge/schemas.js +0 -441
- package/dist/modules/agents/tools/knowledge/schemas.js.map +0 -1
- package/dist/modules/agents/tools/knowledge/search.operation.d.ts +0 -9
- package/dist/modules/agents/tools/knowledge/search.operation.js +0 -332
- package/dist/modules/agents/tools/knowledge/search.operation.js.map +0 -1
- package/dist/modules/agents/tools/knowledge/tool.d.ts +0 -8
- package/dist/modules/agents/tools/knowledge/tool.js +0 -121
- package/dist/modules/agents/tools/knowledge/tool.js.map +0 -1
- package/dist/modules/mcp/database/entities/oauth-access-token.entity.js.map +0 -1
- package/dist/modules/mcp/database/entities/oauth-authorization-code.entity.js.map +0 -1
- package/dist/modules/mcp/database/entities/oauth-client.entity.js.map +0 -1
- package/dist/modules/mcp/database/entities/oauth-refresh-token.entity.js.map +0 -1
- package/dist/modules/mcp/database/entities/oauth-user-consent.entity.js.map +0 -1
- package/dist/modules/mcp/database/repositories/oauth-access-token.repository.js.map +0 -1
- package/dist/modules/mcp/database/repositories/oauth-authorization-code.repository.js.map +0 -1
- package/dist/modules/mcp/database/repositories/oauth-client.repository.js.map +0 -1
- package/dist/modules/mcp/database/repositories/oauth-refresh-token.repository.js.map +0 -1
- package/dist/modules/mcp/database/repositories/oauth-user-consent.repository.js.map +0 -1
- package/dist/modules/mcp/dto/approve-consent-request.dto.js.map +0 -1
- package/dist/modules/mcp/mcp-oauth-authorization-code.service.js.map +0 -1
- package/dist/modules/mcp/mcp-oauth-consent.service.js.map +0 -1
- package/dist/modules/mcp/mcp-oauth-service.js.map +0 -1
- package/dist/modules/mcp/mcp-oauth-token.service.js.map +0 -1
- package/dist/modules/mcp/mcp-oauth.helpers.js.map +0 -1
- package/dist/modules/mcp/mcp.auth.consent.controller.js.map +0 -1
- package/dist/modules/mcp/mcp.oauth-clients.controller.js.map +0 -1
- package/dist/modules/mcp/mcp.oauth.controller.js.map +0 -1
- package/dist/modules/mcp/oauth-session.service.js.map +0 -1
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode-factory.d.ts +0 -7
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode-factory.js +0 -35
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode-factory.js.map +0 -1
- package/dist/modules/n8n-packages/entities/credential/credential-resolution-error.d.ts +0 -3
- package/dist/modules/n8n-packages/entities/credential/credential-resolution-error.js +0 -14
- package/dist/modules/n8n-packages/entities/credential/credential-resolution-error.js.map +0 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-fail.handler.d.ts +0 -9
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-fail.handler.js +0 -41
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-fail.handler.js.map +0 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-handler.d.ts +0 -10
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-handler.js +0 -20
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-handler.js.map +0 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-new-version.handler.d.ts +0 -11
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-new-version.handler.js +0 -42
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-new-version.handler.js.map +0 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-skip.handler.d.ts +0 -9
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-skip.handler.js +0 -33
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy-skip.handler.js.map +0 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.factory.d.ts +0 -10
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.factory.js +0 -37
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.factory.js.map +0 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.types.d.ts +0 -20
- package/dist/modules/n8n-packages/entities/workflow/workflow-conflict-policy.types.js.map +0 -1
- package/dist/modules/redaction/redaction-enforcement.feature-flag.d.ts +0 -2
- package/dist/modules/redaction/redaction-enforcement.feature-flag.js +0 -9
- package/dist/modules/redaction/redaction-enforcement.feature-flag.js.map +0 -1
- package/dist/typed-emitter.d.ts +0 -14
- package/dist/typed-emitter.js +0 -29
- package/dist/typed-emitter.js.map +0 -1
- package/dist/workflows/workflow-publication-outbox-consumer.js.map +0 -1
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-access-token.entity.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-access-token.entity.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-authorization-code.entity.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-authorization-code.entity.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-client.entity.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-client.entity.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-refresh-token.entity.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-refresh-token.entity.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-user-consent.entity.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/entities/oauth-user-consent.entity.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-access-token.repository.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-access-token.repository.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-authorization-code.repository.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-authorization-code.repository.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-client.repository.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-client.repository.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-refresh-token.repository.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-refresh-token.repository.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-user-consent.repository.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/database/repositories/oauth-user-consent.repository.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/dto/approve-consent-request.dto.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/dto/approve-consent-request.dto.js +0 -0
- /package/dist/modules/{mcp → oauth-server}/oauth-session.service.d.ts +0 -0
- /package/dist/modules/{mcp → oauth-server}/oauth-session.service.js +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Logger } from '@n8n/backend-common';
|
|
2
|
+
import type { InstanceAiConfig } from '@n8n/config';
|
|
3
|
+
import type { AgentDbMessage } from '@n8n/instance-ai';
|
|
4
|
+
import type { DeepPartial } from '@n8n/typeorm';
|
|
5
|
+
import type { InstanceAiPendingConfirmation } from './entities/instance-ai-pending-confirmation.entity';
|
|
6
|
+
export interface PendingConfirmationStore {
|
|
7
|
+
create(entityLike: DeepPartial<InstanceAiPendingConfirmation>): InstanceAiPendingConfirmation;
|
|
8
|
+
save(entity: InstanceAiPendingConfirmation): Promise<InstanceAiPendingConfirmation>;
|
|
9
|
+
deleteByRequestId(requestId: string): Promise<number>;
|
|
10
|
+
deleteByThreadId(threadId: string): Promise<number>;
|
|
11
|
+
deleteExpired(now: Date): Promise<number>;
|
|
12
|
+
}
|
|
13
|
+
export interface UserMessageStore {
|
|
14
|
+
saveMessages(args: {
|
|
15
|
+
threadId: string;
|
|
16
|
+
resourceId: string;
|
|
17
|
+
messages: AgentDbMessage[];
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export interface SuspendedThreadPersistenceServiceOptions {
|
|
21
|
+
logger: Logger;
|
|
22
|
+
config: Pick<InstanceAiConfig, 'confirmationTimeout'>;
|
|
23
|
+
pendingConfirmationRepo: PendingConfirmationStore;
|
|
24
|
+
agentMemory: UserMessageStore;
|
|
25
|
+
}
|
|
26
|
+
export declare class SuspendedThreadPersistenceService {
|
|
27
|
+
private readonly logger;
|
|
28
|
+
private readonly config;
|
|
29
|
+
private readonly pendingConfirmationRepo;
|
|
30
|
+
private readonly agentMemory;
|
|
31
|
+
constructor(options: SuspendedThreadPersistenceServiceOptions);
|
|
32
|
+
pruneStalePendingConfirmations(now: number): Promise<void>;
|
|
33
|
+
private computePendingConfirmationExpiresAt;
|
|
34
|
+
persistPendingConfirmation(params: {
|
|
35
|
+
requestId: string;
|
|
36
|
+
threadId: string;
|
|
37
|
+
userId: string;
|
|
38
|
+
runId: string;
|
|
39
|
+
messageGroupId?: string;
|
|
40
|
+
kind: 'inline' | 'suspended';
|
|
41
|
+
toolCallId?: string;
|
|
42
|
+
checkpointKey?: string;
|
|
43
|
+
checkpointTaskId?: string;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
dropPendingConfirmation(requestId: string): Promise<void>;
|
|
46
|
+
dropPendingConfirmationsForThread(threadId: string): Promise<void>;
|
|
47
|
+
persistUserMessageOnSuspend(threadId: string, userId: string, message: {
|
|
48
|
+
id: string;
|
|
49
|
+
text: string;
|
|
50
|
+
}): Promise<boolean>;
|
|
51
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuspendedThreadPersistenceService = void 0;
|
|
4
|
+
function getErrorMessage(error) {
|
|
5
|
+
return error instanceof Error ? error.message : String(error);
|
|
6
|
+
}
|
|
7
|
+
class SuspendedThreadPersistenceService {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.logger = options.logger;
|
|
10
|
+
this.config = options.config;
|
|
11
|
+
this.pendingConfirmationRepo = options.pendingConfirmationRepo;
|
|
12
|
+
this.agentMemory = options.agentMemory;
|
|
13
|
+
}
|
|
14
|
+
async pruneStalePendingConfirmations(now) {
|
|
15
|
+
try {
|
|
16
|
+
const count = await this.pendingConfirmationRepo.deleteExpired(new Date(now));
|
|
17
|
+
if (count === 0) {
|
|
18
|
+
this.logger.debug('No stale Instance AI pending confirmations to drop');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.logger.info('Dropped stale Instance AI pending confirmations', { count });
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
this.logger.warn('Failed to drop stale Instance AI pending confirmations', {
|
|
25
|
+
error: getErrorMessage(error),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
computePendingConfirmationExpiresAt() {
|
|
30
|
+
const timeoutMs = this.config.confirmationTimeout;
|
|
31
|
+
return timeoutMs > 0 ? new Date(Date.now() + timeoutMs) : null;
|
|
32
|
+
}
|
|
33
|
+
async persistPendingConfirmation(params) {
|
|
34
|
+
try {
|
|
35
|
+
await this.pendingConfirmationRepo.save(this.pendingConfirmationRepo.create({
|
|
36
|
+
requestId: params.requestId,
|
|
37
|
+
threadId: params.threadId,
|
|
38
|
+
userId: params.userId,
|
|
39
|
+
kind: params.kind,
|
|
40
|
+
runId: params.runId,
|
|
41
|
+
messageGroupId: params.messageGroupId ?? null,
|
|
42
|
+
toolCallId: params.toolCallId ?? null,
|
|
43
|
+
checkpointKey: params.checkpointKey ?? null,
|
|
44
|
+
checkpointTaskId: params.checkpointTaskId ?? null,
|
|
45
|
+
expiresAt: this.computePendingConfirmationExpiresAt(),
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
this.logger.warn('Failed to persist pending confirmation', {
|
|
50
|
+
requestId: params.requestId,
|
|
51
|
+
threadId: params.threadId,
|
|
52
|
+
kind: params.kind,
|
|
53
|
+
error: getErrorMessage(error),
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async dropPendingConfirmation(requestId) {
|
|
58
|
+
try {
|
|
59
|
+
await this.pendingConfirmationRepo.deleteByRequestId(requestId);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
this.logger.warn('Failed to drop pending confirmation', {
|
|
63
|
+
requestId,
|
|
64
|
+
error: getErrorMessage(error),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async dropPendingConfirmationsForThread(threadId) {
|
|
69
|
+
try {
|
|
70
|
+
await this.pendingConfirmationRepo.deleteByThreadId(threadId);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
this.logger.warn('Failed to drop pending confirmations for thread', {
|
|
74
|
+
threadId,
|
|
75
|
+
error: getErrorMessage(error),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async persistUserMessageOnSuspend(threadId, userId, message) {
|
|
80
|
+
try {
|
|
81
|
+
await this.agentMemory.saveMessages({
|
|
82
|
+
threadId,
|
|
83
|
+
resourceId: userId,
|
|
84
|
+
messages: [
|
|
85
|
+
{
|
|
86
|
+
id: message.id,
|
|
87
|
+
role: 'user',
|
|
88
|
+
content: [{ type: 'text', text: message.text }],
|
|
89
|
+
createdAt: new Date(),
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
});
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
this.logger.warn('Failed to persist user message on HITL suspend', {
|
|
97
|
+
threadId,
|
|
98
|
+
userId,
|
|
99
|
+
error: getErrorMessage(error),
|
|
100
|
+
});
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.SuspendedThreadPersistenceService = SuspendedThreadPersistenceService;
|
|
106
|
+
//# sourceMappingURL=suspended-thread-persistence.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suspended-thread-persistence.service.js","sourceRoot":"","sources":["../../../src/modules/instance-ai/suspended-thread-persistence.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import { ApiKey, ApiKeyRepository, User
|
|
1
|
+
import { ApiKey, ApiKeyRepository, User } from '@n8n/db';
|
|
2
2
|
import { EntityManager } from '@n8n/typeorm';
|
|
3
3
|
import { AuthStrategyRegistry } from '../../services/auth-strategy.registry';
|
|
4
4
|
import { JwtService } from '../../services/jwt.service';
|
|
5
|
-
import {
|
|
6
|
-
import { UserWithContext } from './mcp.types';
|
|
5
|
+
import { UserWithContext } from '../../services/oauth-token-verifier-proxy.service';
|
|
7
6
|
export declare class McpServerApiKeyService {
|
|
8
7
|
private readonly apiKeyRepository;
|
|
9
8
|
private readonly jwtService;
|
|
10
|
-
private readonly userRepository;
|
|
11
|
-
private readonly accessTokenRepository;
|
|
12
9
|
private readonly authStrategyRegistry;
|
|
13
|
-
constructor(apiKeyRepository: ApiKeyRepository, jwtService: JwtService,
|
|
10
|
+
constructor(apiKeyRepository: ApiKeyRepository, jwtService: JwtService, authStrategyRegistry: AuthStrategyRegistry);
|
|
14
11
|
createMcpServerApiKey(user: User, trx?: EntityManager): Promise<ApiKey>;
|
|
15
12
|
findServerApiKeyForUser(user: User, { redact }?: {
|
|
16
13
|
redact?: boolean | undefined;
|
|
17
14
|
}): Promise<ApiKey | null>;
|
|
18
15
|
verifyApiKey(apiKey: string): Promise<UserWithContext>;
|
|
19
|
-
getUserForAccessToken(token: string): Promise<User | null>;
|
|
20
16
|
deleteAllMcpApiKeysForUser(user: User, trx?: EntityManager): Promise<void>;
|
|
21
17
|
private redactApiKey;
|
|
22
18
|
getOrCreateApiKey(user: User): Promise<ApiKey>;
|
|
@@ -16,7 +16,6 @@ const crypto_1 = require("crypto");
|
|
|
16
16
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
17
17
|
const auth_strategy_registry_1 = require("../../services/auth-strategy.registry");
|
|
18
18
|
const jwt_service_1 = require("../../services/jwt.service");
|
|
19
|
-
const oauth_access_token_repository_1 = require("./database/repositories/oauth-access-token.repository");
|
|
20
19
|
const API_KEY_AUDIENCE = 'mcp-server-api';
|
|
21
20
|
const API_KEY_ISSUER = 'n8n';
|
|
22
21
|
const REDACT_API_KEY_REVEAL_COUNT = 4;
|
|
@@ -24,11 +23,9 @@ const REDACT_API_KEY_MAX_LENGTH = 10;
|
|
|
24
23
|
const API_KEY_LABEL = 'MCP Server API Key';
|
|
25
24
|
const REDACT_API_KEY_MIN_HIDDEN_CHARS = 6;
|
|
26
25
|
let McpServerApiKeyService = class McpServerApiKeyService {
|
|
27
|
-
constructor(apiKeyRepository, jwtService,
|
|
26
|
+
constructor(apiKeyRepository, jwtService, authStrategyRegistry) {
|
|
28
27
|
this.apiKeyRepository = apiKeyRepository;
|
|
29
28
|
this.jwtService = jwtService;
|
|
30
|
-
this.userRepository = userRepository;
|
|
31
|
-
this.accessTokenRepository = accessTokenRepository;
|
|
32
29
|
this.authStrategyRegistry = authStrategyRegistry;
|
|
33
30
|
}
|
|
34
31
|
async createMcpServerApiKey(user, trx) {
|
|
@@ -93,22 +90,6 @@ let McpServerApiKeyService = class McpServerApiKeyService {
|
|
|
93
90
|
};
|
|
94
91
|
}
|
|
95
92
|
}
|
|
96
|
-
async getUserForAccessToken(token) {
|
|
97
|
-
const accessToken = await this.accessTokenRepository.findOne({
|
|
98
|
-
where: {
|
|
99
|
-
token,
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
if (!accessToken) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
return await this.userRepository.findOne({
|
|
106
|
-
where: {
|
|
107
|
-
id: accessToken.userId,
|
|
108
|
-
},
|
|
109
|
-
relations: ['role'],
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
93
|
async deleteAllMcpApiKeysForUser(user, trx) {
|
|
113
94
|
const manager = trx ?? this.apiKeyRepository.manager;
|
|
114
95
|
await manager.delete(db_1.ApiKey, {
|
|
@@ -149,8 +130,6 @@ exports.McpServerApiKeyService = McpServerApiKeyService = __decorate([
|
|
|
149
130
|
(0, di_1.Service)(),
|
|
150
131
|
__metadata("design:paramtypes", [db_1.ApiKeyRepository,
|
|
151
132
|
jwt_service_1.JwtService,
|
|
152
|
-
db_1.UserRepository,
|
|
153
|
-
oauth_access_token_repository_1.AccessTokenRepository,
|
|
154
133
|
auth_strategy_registry_1.AuthStrategyRegistry])
|
|
155
134
|
], McpServerApiKeyService);
|
|
156
135
|
//# sourceMappingURL=mcp-api-key.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-api-key.service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp-api-key.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"mcp-api-key.service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp-api-key.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ProtectedResource } from '../../services/protected-resource.registry';
|
|
2
|
+
import { UrlService } from '../../services/url.service';
|
|
3
|
+
export declare const INSTANCE_MCP_RESOURCE_ID = "instance-mcp";
|
|
4
|
+
export declare const SUPPORTED_SCOPES: string[];
|
|
5
|
+
export declare class McpProtectedResource implements ProtectedResource {
|
|
6
|
+
private readonly urlService;
|
|
7
|
+
readonly id = "instance-mcp";
|
|
8
|
+
readonly scopes: string[];
|
|
9
|
+
readonly isDefault = true;
|
|
10
|
+
constructor(urlService: UrlService);
|
|
11
|
+
getResourceUrl(): string;
|
|
12
|
+
getAudiences(): string[];
|
|
13
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.McpProtectedResource = exports.SUPPORTED_SCOPES = exports.INSTANCE_MCP_RESOURCE_ID = void 0;
|
|
13
|
+
const di_1 = require("@n8n/di");
|
|
14
|
+
const url_service_1 = require("../../services/url.service");
|
|
15
|
+
exports.INSTANCE_MCP_RESOURCE_ID = 'instance-mcp';
|
|
16
|
+
exports.SUPPORTED_SCOPES = ['tool:listWorkflows', 'tool:getWorkflowDetails'];
|
|
17
|
+
const MCP_RESOURCE_PATH = '/mcp-server/http';
|
|
18
|
+
const LEGACY_MCP_AUDIENCE = 'mcp-server-api';
|
|
19
|
+
let McpProtectedResource = class McpProtectedResource {
|
|
20
|
+
constructor(urlService) {
|
|
21
|
+
this.urlService = urlService;
|
|
22
|
+
this.id = exports.INSTANCE_MCP_RESOURCE_ID;
|
|
23
|
+
this.scopes = exports.SUPPORTED_SCOPES;
|
|
24
|
+
this.isDefault = true;
|
|
25
|
+
}
|
|
26
|
+
getResourceUrl() {
|
|
27
|
+
const baseUrl = this.urlService.getInstanceBaseUrl().replace(/\/$/, '');
|
|
28
|
+
return `${baseUrl}${MCP_RESOURCE_PATH}`;
|
|
29
|
+
}
|
|
30
|
+
getAudiences() {
|
|
31
|
+
return [this.getResourceUrl(), LEGACY_MCP_AUDIENCE];
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.McpProtectedResource = McpProtectedResource;
|
|
35
|
+
exports.McpProtectedResource = McpProtectedResource = __decorate([
|
|
36
|
+
(0, di_1.Service)(),
|
|
37
|
+
__metadata("design:paramtypes", [url_service_1.UrlService])
|
|
38
|
+
], McpProtectedResource);
|
|
39
|
+
//# sourceMappingURL=mcp-protected-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-protected-resource.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp-protected-resource.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAGlC,wDAAoD;AAEvC,QAAA,wBAAwB,GAAG,cAAc,CAAC;AAG1C,QAAA,gBAAgB,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;AAElF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAI7C,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAYtC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAYhC,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAX1C,OAAE,GAAG,gCAAwB,CAAC;QAE9B,WAAM,GAAG,wBAAgB,CAAC;QAO1B,cAAS,GAAG,IAAI,CAAC;IAE4B,CAAC;IAEvD,cAAc;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACzC,CAAC;IAED,YAAY;QAGX,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACrD,CAAC;CACD,CAAA;AAxBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,YAAO,GAAE;qCAagC,wBAAU;GAZvC,oBAAoB,CAwBhC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { NextFunction, Response, Request } from 'express';
|
|
2
2
|
import { JwtService } from '../../services/jwt.service';
|
|
3
|
+
import { OAuthTokenVerifierProxy, type UserWithContext } from '../../services/oauth-token-verifier-proxy.service';
|
|
3
4
|
import { Telemetry } from '../../telemetry';
|
|
4
5
|
import { McpServerApiKeyService } from './mcp-api-key.service';
|
|
5
|
-
import {
|
|
6
|
-
import type { UserWithContext } from './mcp.types';
|
|
6
|
+
import { McpProtectedResource } from './mcp-protected-resource';
|
|
7
7
|
export declare class McpServerMiddlewareService {
|
|
8
8
|
private readonly mcpServerApiKeyService;
|
|
9
|
-
private readonly
|
|
9
|
+
private readonly oauthTokenVerifier;
|
|
10
|
+
private readonly mcpProtectedResource;
|
|
10
11
|
private readonly jwtService;
|
|
11
12
|
private readonly telemetry;
|
|
12
|
-
constructor(mcpServerApiKeyService: McpServerApiKeyService,
|
|
13
|
+
constructor(mcpServerApiKeyService: McpServerApiKeyService, oauthTokenVerifier: OAuthTokenVerifierProxy, mcpProtectedResource: McpProtectedResource, jwtService: JwtService, telemetry: Telemetry);
|
|
13
14
|
getUserForToken(token: string): Promise<UserWithContext>;
|
|
14
15
|
getAuthMiddleware(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
15
16
|
private extractBearerToken;
|
|
@@ -14,15 +14,17 @@ const di_1 = require("@n8n/di");
|
|
|
14
14
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
15
15
|
const auth_error_1 = require("../../errors/response-errors/auth.error");
|
|
16
16
|
const jwt_service_1 = require("../../services/jwt.service");
|
|
17
|
+
const oauth_token_verifier_proxy_service_1 = require("../../services/oauth-token-verifier-proxy.service");
|
|
17
18
|
const telemetry_1 = require("../../telemetry");
|
|
18
19
|
const mcp_api_key_service_1 = require("./mcp-api-key.service");
|
|
19
|
-
const
|
|
20
|
+
const mcp_protected_resource_1 = require("./mcp-protected-resource");
|
|
20
21
|
const mcp_constants_1 = require("./mcp.constants");
|
|
21
22
|
const mcp_utils_1 = require("./mcp.utils");
|
|
22
23
|
let McpServerMiddlewareService = class McpServerMiddlewareService {
|
|
23
|
-
constructor(mcpServerApiKeyService,
|
|
24
|
+
constructor(mcpServerApiKeyService, oauthTokenVerifier, mcpProtectedResource, jwtService, telemetry) {
|
|
24
25
|
this.mcpServerApiKeyService = mcpServerApiKeyService;
|
|
25
|
-
this.
|
|
26
|
+
this.oauthTokenVerifier = oauthTokenVerifier;
|
|
27
|
+
this.mcpProtectedResource = mcpProtectedResource;
|
|
26
28
|
this.jwtService = jwtService;
|
|
27
29
|
this.telemetry = telemetry;
|
|
28
30
|
}
|
|
@@ -42,8 +44,8 @@ let McpServerMiddlewareService = class McpServerMiddlewareService {
|
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
46
|
if (decoded?.meta?.isOAuth === true) {
|
|
45
|
-
const expectedAudience = this.
|
|
46
|
-
return await this.
|
|
47
|
+
const expectedAudience = this.mcpProtectedResource.getResourceUrl();
|
|
48
|
+
return await this.oauthTokenVerifier.verifyOAuthAccessToken(token, expectedAudience);
|
|
47
49
|
}
|
|
48
50
|
return await this.mcpServerApiKeyService.verifyApiKey(token);
|
|
49
51
|
}
|
|
@@ -116,7 +118,8 @@ exports.McpServerMiddlewareService = McpServerMiddlewareService;
|
|
|
116
118
|
exports.McpServerMiddlewareService = McpServerMiddlewareService = __decorate([
|
|
117
119
|
(0, di_1.Service)(),
|
|
118
120
|
__metadata("design:paramtypes", [mcp_api_key_service_1.McpServerApiKeyService,
|
|
119
|
-
|
|
121
|
+
oauth_token_verifier_proxy_service_1.OAuthTokenVerifierProxy,
|
|
122
|
+
mcp_protected_resource_1.McpProtectedResource,
|
|
120
123
|
jwt_service_1.JwtService,
|
|
121
124
|
telemetry_1.Telemetry])
|
|
122
125
|
], McpServerMiddlewareService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-middleware.service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp-server-middleware.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gCAAkC;AAElC,+CAA2C;AAE3C,oEAAgE;AAChE,wDAAoD;AACpD,2CAAwC;AAExC,+DAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"mcp-server-middleware.service.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp-server-middleware.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
import { ServerError } from '@modelcontextprotocol/sdk/server/auth/errors.js';
|
|
2
1
|
import { UserError } from 'n8n-workflow';
|
|
3
|
-
import { AuthError } from '../../errors/response-errors/auth.error';
|
|
4
2
|
import type { WorkflowNotFoundReason } from './mcp.types';
|
|
5
|
-
export declare const buildMcpClientLimitReachedMessage: (limit: number) => string;
|
|
6
|
-
export declare class McpClientLimitReachedError extends ServerError {
|
|
7
|
-
readonly limit: number;
|
|
8
|
-
constructor(limit: number);
|
|
9
|
-
}
|
|
10
3
|
export declare class McpExecutionTimeoutError extends UserError {
|
|
11
4
|
executionId: string | null;
|
|
12
5
|
timeoutMs: number;
|
|
13
6
|
constructor(executionId: string | null, timeoutMs: number);
|
|
14
7
|
}
|
|
15
|
-
export declare class JWTVerificationError extends AuthError {
|
|
16
|
-
constructor();
|
|
17
|
-
}
|
|
18
|
-
export declare class AccessTokenNotFoundError extends AuthError {
|
|
19
|
-
constructor();
|
|
20
|
-
}
|
|
21
8
|
export declare class WorkflowAccessError extends UserError {
|
|
22
9
|
readonly reason: WorkflowNotFoundReason;
|
|
23
10
|
constructor(message: string, reason: WorkflowNotFoundReason);
|
|
@@ -1,20 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkflowAccessError = exports.
|
|
4
|
-
const errors_js_1 = require("@modelcontextprotocol/sdk/server/auth/errors.js");
|
|
3
|
+
exports.WorkflowAccessError = exports.McpExecutionTimeoutError = void 0;
|
|
5
4
|
const constants_1 = require("@n8n/constants");
|
|
6
5
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
|
-
const auth_error_1 = require("../../errors/response-errors/auth.error");
|
|
8
|
-
const buildMcpClientLimitReachedMessage = (limit) => `This n8n instance has reached its maximum of ${limit} registered MCP clients. Ask an administrator to revoke unused clients or raise N8N_MCP_MAX_REGISTERED_CLIENTS.`;
|
|
9
|
-
exports.buildMcpClientLimitReachedMessage = buildMcpClientLimitReachedMessage;
|
|
10
|
-
class McpClientLimitReachedError extends errors_js_1.ServerError {
|
|
11
|
-
constructor(limit) {
|
|
12
|
-
super((0, exports.buildMcpClientLimitReachedMessage)(limit));
|
|
13
|
-
this.name = 'McpClientLimitReachedError';
|
|
14
|
-
this.limit = limit;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.McpClientLimitReachedError = McpClientLimitReachedError;
|
|
18
6
|
class McpExecutionTimeoutError extends n8n_workflow_1.UserError {
|
|
19
7
|
constructor(executionId, timeoutMs) {
|
|
20
8
|
const timeoutSeconds = timeoutMs * constants_1.Time.milliseconds.toSeconds;
|
|
@@ -25,20 +13,6 @@ class McpExecutionTimeoutError extends n8n_workflow_1.UserError {
|
|
|
25
13
|
}
|
|
26
14
|
}
|
|
27
15
|
exports.McpExecutionTimeoutError = McpExecutionTimeoutError;
|
|
28
|
-
class JWTVerificationError extends auth_error_1.AuthError {
|
|
29
|
-
constructor() {
|
|
30
|
-
super('JWT Verification Failed');
|
|
31
|
-
this.name = 'JWTVerificationError';
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
exports.JWTVerificationError = JWTVerificationError;
|
|
35
|
-
class AccessTokenNotFoundError extends auth_error_1.AuthError {
|
|
36
|
-
constructor() {
|
|
37
|
-
super('Access Token Not Found in Database');
|
|
38
|
-
this.name = 'AccessTokenNotFoundError';
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.AccessTokenNotFoundError = AccessTokenNotFoundError;
|
|
42
16
|
class WorkflowAccessError extends n8n_workflow_1.UserError {
|
|
43
17
|
constructor(message, reason) {
|
|
44
18
|
super(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.errors.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.errors.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"mcp.errors.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.errors.ts"],"names":[],"mappings":";;;AAAA,8CAAsC;AACtC,+CAAyC;AAOzC,MAAa,wBAAyB,SAAQ,wBAAS;IAItD,YAAY,WAA0B,EAAE,SAAiB;QACxD,MAAM,cAAc,GAAG,SAAS,GAAG,gBAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC/D,KAAK,CAAC,sCAAsC,cAAc,UAAU,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;CACD;AAZD,4DAYC;AAMD,MAAa,mBAAoB,SAAQ,wBAAS;IAGjD,YAAY,OAAe,EAAE,MAA8B;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD;AARD,kDAQC"}
|
|
@@ -50,9 +50,9 @@ let McpModule = class McpModule {
|
|
|
50
50
|
async init() {
|
|
51
51
|
await Promise.resolve().then(() => __importStar(require('./mcp.controller')));
|
|
52
52
|
await Promise.resolve().then(() => __importStar(require('./mcp.settings.controller')));
|
|
53
|
-
await Promise.resolve().then(() => __importStar(require('
|
|
54
|
-
await Promise.resolve().then(() => __importStar(require('./mcp
|
|
55
|
-
|
|
53
|
+
const { ProtectedResourceRegistry } = await Promise.resolve().then(() => __importStar(require('../../services/protected-resource.registry')));
|
|
54
|
+
const { McpProtectedResource } = await Promise.resolve().then(() => __importStar(require('./mcp-protected-resource')));
|
|
55
|
+
di_1.Container.get(ProtectedResourceRegistry).register(di_1.Container.get(McpProtectedResource));
|
|
56
56
|
}
|
|
57
57
|
async settings() {
|
|
58
58
|
const { McpSettingsService } = await Promise.resolve().then(() => __importStar(require('./mcp.settings.service')));
|
|
@@ -60,14 +60,6 @@ let McpModule = class McpModule {
|
|
|
60
60
|
const { mcpManagedByEnv } = di_1.Container.get(config_1.InstanceSettingsLoaderConfig);
|
|
61
61
|
return { mcpAccessEnabled, mcpManagedByEnv };
|
|
62
62
|
}
|
|
63
|
-
async entities() {
|
|
64
|
-
const { OAuthClient } = await Promise.resolve().then(() => __importStar(require('./database/entities/oauth-client.entity')));
|
|
65
|
-
const { AuthorizationCode } = await Promise.resolve().then(() => __importStar(require('./database/entities/oauth-authorization-code.entity')));
|
|
66
|
-
const { AccessToken } = await Promise.resolve().then(() => __importStar(require('./database/entities/oauth-access-token.entity')));
|
|
67
|
-
const { RefreshToken } = await Promise.resolve().then(() => __importStar(require('./database/entities/oauth-refresh-token.entity')));
|
|
68
|
-
const { UserConsent } = await Promise.resolve().then(() => __importStar(require('./database/entities/oauth-user-consent.entity')));
|
|
69
|
-
return [OAuthClient, AuthorizationCode, AccessToken, RefreshToken, UserConsent];
|
|
70
|
-
}
|
|
71
63
|
async shutdown() { }
|
|
72
64
|
};
|
|
73
65
|
exports.McpModule = McpModule;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA2D;AAE3D,gDAA4D;AAC5D,gCAAoC;
|
|
1
|
+
{"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA2D;AAE3D,gDAA4D;AAC5D,gCAAoC;AAS7B,IAAM,SAAS,GAAf,MAAM,SAAS;IACrB,KAAK,CAAC,IAAI;QACT,wDAAa,kBAAkB,GAAC,CAAC;QACjC,wDAAa,2BAA2B,GAAC,CAAC;QAK1C,MAAM,EAAE,yBAAyB,EAAE,GAAG,wDAAa,wCAAwC,GAAC,CAAC;QAC7F,MAAM,EAAE,oBAAoB,EAAE,GAAG,wDAAa,0BAA0B,GAAC,CAAC;QAC1E,cAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,cAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACxF,CAAC;IAOD,KAAK,CAAC,QAAQ;QACb,MAAM,EAAE,kBAAkB,EAAE,GAAG,wDAAa,wBAAwB,GAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,MAAM,cAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9E,MAAM,EAAE,eAAe,EAAE,GAAG,cAAS,CAAC,GAAG,CAAC,qCAA4B,CAAC,CAAC;QACxE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAC9C,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,KAAI,CAAC;CACnB,CAAA;AA3BY,8BAAS;AA0Bf;IADL,IAAA,uBAAU,GAAE;;;;yCACM;oBA1BP,SAAS;IADrB,IAAA,0BAAa,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;GAC3C,SAAS,CA2BrB"}
|
|
@@ -11,8 +11,10 @@ import { CredentialsService } from '../../credentials/credentials.service';
|
|
|
11
11
|
import { DataTableProxyService } from '../../modules/data-table/data-table-proxy.service';
|
|
12
12
|
import { NodeTypes } from '../../node-types';
|
|
13
13
|
import { PostHogClient } from '../../posthog';
|
|
14
|
+
import { NodeResourceExplorerService } from '../../services/node-resource-explorer.service';
|
|
14
15
|
import { ProjectService } from '../../services/project.service.ee';
|
|
15
16
|
import { RoleService } from '../../services/role.service';
|
|
17
|
+
import { TagService } from '../../services/tag.service';
|
|
16
18
|
import { UrlService } from '../../services/url.service';
|
|
17
19
|
import { Telemetry } from '../../telemetry';
|
|
18
20
|
import { WorkflowRunner } from '../../workflow-runner';
|
|
@@ -49,10 +51,12 @@ export declare class McpService {
|
|
|
49
51
|
private readonly executionService;
|
|
50
52
|
private readonly dataTableProxyService;
|
|
51
53
|
private readonly collaborationService;
|
|
54
|
+
private readonly nodeResourceExplorerService;
|
|
55
|
+
private readonly tagService;
|
|
52
56
|
private readonly licenseState;
|
|
53
57
|
private readonly postHogClient;
|
|
54
58
|
private readonly pendingResponses;
|
|
55
|
-
constructor(logger: Logger, executionsConfig: ExecutionsConfig, instanceSettings: InstanceSettings, workflowFinderService: WorkflowFinderService, workflowService: WorkflowService, urlService: UrlService, credentialsService: CredentialsService, activeExecutions: ActiveExecutions, globalConfig: GlobalConfig, telemetry: Telemetry, workflowRunner: WorkflowRunner, roleService: RoleService, projectService: ProjectService, nodeCatalogService: NodeCatalogService, workflowCreationService: WorkflowCreationService, nodeTypes: NodeTypes, projectRepository: ProjectRepository, folderRepository: FolderRepository, sharedWorkflowRepository: SharedWorkflowRepository, executionRepository: ExecutionRepository, executionService: ExecutionService, dataTableProxyService: DataTableProxyService, collaborationService: CollaborationService, licenseState: LicenseState, postHogClient: PostHogClient);
|
|
59
|
+
constructor(logger: Logger, executionsConfig: ExecutionsConfig, instanceSettings: InstanceSettings, workflowFinderService: WorkflowFinderService, workflowService: WorkflowService, urlService: UrlService, credentialsService: CredentialsService, activeExecutions: ActiveExecutions, globalConfig: GlobalConfig, telemetry: Telemetry, workflowRunner: WorkflowRunner, roleService: RoleService, projectService: ProjectService, nodeCatalogService: NodeCatalogService, workflowCreationService: WorkflowCreationService, nodeTypes: NodeTypes, projectRepository: ProjectRepository, folderRepository: FolderRepository, sharedWorkflowRepository: SharedWorkflowRepository, executionRepository: ExecutionRepository, executionService: ExecutionService, dataTableProxyService: DataTableProxyService, collaborationService: CollaborationService, nodeResourceExplorerService: NodeResourceExplorerService, tagService: TagService, licenseState: LicenseState, postHogClient: PostHogClient);
|
|
56
60
|
resolveMcpAppsVariant(user: User): Promise<McpAppsResolution>;
|
|
57
61
|
private buildMcpAppTelemetryConfig;
|
|
58
62
|
getServer(user: User, mcpAppsEnabled: boolean, clientInfo?: McpClientInfo): Promise<McpServer>;
|