n8n 2.35.4 → 2.36.2
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/build.tsbuildinfo +1 -1
- package/dist/commands/start.js +4 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/config/index.js +0 -1
- package/dist/config/index.js.map +1 -1
- package/dist/constants/oauth2-triggers.d.ts +0 -1
- package/dist/constants/oauth2-triggers.js +0 -4
- package/dist/constants/oauth2-triggers.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/controllers/ai.controller.d.ts +2 -5
- package/dist/controllers/ai.controller.js.map +1 -1
- package/dist/controllers/api-keys.controller.d.ts +1 -1
- package/dist/controllers/api-keys.controller.js +10 -10
- package/dist/controllers/api-keys.controller.js.map +1 -1
- package/dist/controllers/dynamic-node-parameters.controller.d.ts +6 -1
- package/dist/controllers/dynamic-node-parameters.controller.js +21 -2
- package/dist/controllers/dynamic-node-parameters.controller.js.map +1 -1
- package/dist/controllers/e2e.controller.d.ts +21 -2
- package/dist/controllers/e2e.controller.js +40 -2
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/role.controller.js +3 -5
- package/dist/controllers/role.controller.js.map +1 -1
- package/dist/credentials/credential-connection-status-provider.interface.d.ts +4 -1
- package/dist/credentials/credential-connection-status-proxy.d.ts +2 -2
- package/dist/credentials/credential-connection-status-proxy.js +3 -3
- package/dist/credentials/credential-connection-status-proxy.js.map +1 -1
- package/dist/credentials/credentials-finder.service.d.ts +2 -1
- package/dist/credentials/credentials-finder.service.js +2 -1
- package/dist/credentials/credentials-finder.service.js.map +1 -1
- package/dist/credentials/credentials.controller.d.ts +8 -6
- package/dist/credentials/credentials.controller.js +3 -12
- package/dist/credentials/credentials.controller.js.map +1 -1
- package/dist/credentials/credentials.service.d.ts +38 -30
- package/dist/credentials/credentials.service.ee.d.ts +6 -4
- package/dist/credentials/credentials.service.ee.js +2 -1
- package/dist/credentials/credentials.service.ee.js.map +1 -1
- package/dist/credentials/credentials.service.js +93 -45
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/credentials-overwrites.d.ts +1 -0
- package/dist/credentials-overwrites.js +17 -0
- package/dist/credentials-overwrites.js.map +1 -1
- package/dist/deprecation/deprecation.service.js +5 -0
- package/dist/deprecation/deprecation.service.js.map +1 -1
- package/dist/errors/http-error-classifier.d.ts +4 -1
- package/dist/errors/http-error-classifier.js +4 -1
- package/dist/errors/http-error-classifier.js.map +1 -1
- package/dist/evaluation.ee/evaluation-dataset.service.d.ts +3 -3
- package/dist/evaluation.ee/evaluation-dataset.service.js +5 -6
- package/dist/evaluation.ee/evaluation-dataset.service.js.map +1 -1
- package/dist/events/event.service.d.ts +2 -1
- package/dist/events/event.service.js.map +1 -1
- package/dist/events/maps/poll-trigger-metrics.event-map.d.ts +9 -0
- package/dist/events/maps/poll-trigger-metrics.event-map.js +3 -0
- package/dist/events/maps/poll-trigger-metrics.event-map.js.map +1 -0
- package/dist/executions/enqueued-execution-recovery.service.js +7 -1
- package/dist/executions/enqueued-execution-recovery.service.js.map +1 -1
- package/dist/executions/execution-persistence.d.ts +7 -2
- package/dist/executions/execution-persistence.js +27 -6
- package/dist/executions/execution-persistence.js.map +1 -1
- package/dist/executions/execution.service.d.ts +4 -1
- package/dist/executions/execution.service.js +2 -2
- package/dist/executions/execution.service.js.map +1 -1
- package/dist/load-nodes-and-credentials.d.ts +1 -0
- package/dist/load-nodes-and-credentials.js +31 -16
- package/dist/load-nodes-and-credentials.js.map +1 -1
- package/dist/metrics/prometheus/poll-trigger-metrics.service.d.ts +13 -0
- package/dist/metrics/prometheus/poll-trigger-metrics.service.js +81 -0
- package/dist/metrics/prometheus/poll-trigger-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/prometheus.service.d.ts +2 -1
- package/dist/metrics/prometheus/prometheus.service.js +4 -2
- package/dist/metrics/prometheus/prometheus.service.js.map +1 -1
- package/dist/metrics/prometheus/scheduler-metrics.service.d.ts +2 -0
- package/dist/metrics/prometheus/scheduler-metrics.service.js +10 -0
- package/dist/metrics/prometheus/scheduler-metrics.service.js.map +1 -1
- package/dist/modules/agent-evals/agent-eval-case-generation.service.d.ts +3 -3
- package/dist/modules/agent-evals/agent-eval-case-generation.service.js +5 -5
- package/dist/modules/agent-evals/agent-eval-case-generation.service.js.map +1 -1
- package/dist/modules/agent-evals/agent-eval-rating.service.js +5 -6
- package/dist/modules/agent-evals/agent-eval-rating.service.js.map +1 -1
- package/dist/modules/agents/adapters/agents-credential-provider.d.ts +1 -0
- package/dist/modules/agents/adapters/agents-credential-provider.js +11 -2
- package/dist/modules/agents/adapters/agents-credential-provider.js.map +1 -1
- package/dist/modules/agents/agent-config.service.js +9 -0
- package/dist/modules/agents/agent-config.service.js.map +1 -1
- package/dist/modules/agents/agent-default-model-resolver.service.d.ts +19 -0
- package/dist/modules/agents/agent-default-model-resolver.service.js +106 -0
- package/dist/modules/agents/agent-default-model-resolver.service.js.map +1 -0
- package/dist/modules/agents/agent-execution-orchestrator.service.d.ts +7 -1
- package/dist/modules/agents/agent-execution-orchestrator.service.js +200 -108
- package/dist/modules/agents/agent-execution-orchestrator.service.js.map +1 -1
- package/dist/modules/agents/agent-integration-management.service.d.ts +24 -6
- package/dist/modules/agents/agent-integration-management.service.js +175 -34
- package/dist/modules/agents/agent-integration-management.service.js.map +1 -1
- package/dist/modules/agents/agent-integration-persistence.service.d.ts +21 -6
- package/dist/modules/agents/agent-integration-persistence.service.js +61 -50
- package/dist/modules/agents/agent-integration-persistence.service.js.map +1 -1
- package/dist/modules/agents/agent-integrations.controller.d.ts +3 -5
- package/dist/modules/agents/agent-integrations.controller.js +11 -6
- package/dist/modules/agents/agent-integrations.controller.js.map +1 -1
- package/dist/modules/agents/agent-knowledge-commands.d.ts +3 -3
- package/dist/modules/agents/agent-knowledge-commands.js +16 -22
- package/dist/modules/agents/agent-knowledge-commands.js.map +1 -1
- package/dist/modules/agents/{agent-knowledge-sandbox.service.d.ts → agent-knowledge-mirror.service.d.ts} +6 -22
- package/dist/modules/agents/agent-knowledge-mirror.service.js +442 -0
- package/dist/modules/agents/agent-knowledge-mirror.service.js.map +1 -0
- package/dist/modules/agents/agent-knowledge-storage.d.ts +7 -3
- package/dist/modules/agents/agent-knowledge-storage.js +11 -4
- package/dist/modules/agents/agent-knowledge-storage.js.map +1 -1
- package/dist/modules/agents/agent-knowledge.controller.d.ts +3 -5
- package/dist/modules/agents/agent-knowledge.controller.js +5 -8
- package/dist/modules/agents/agent-knowledge.controller.js.map +1 -1
- package/dist/modules/agents/agent-knowledge.service.d.ts +8 -6
- package/dist/modules/agents/agent-knowledge.service.js +20 -14
- package/dist/modules/agents/agent-knowledge.service.js.map +1 -1
- package/dist/modules/agents/agent-model-catalog.service.d.ts +4 -1
- package/dist/modules/agents/agent-model-catalog.service.js +24 -13
- package/dist/modules/agents/agent-model-catalog.service.js.map +1 -1
- package/dist/modules/agents/agent-runtime-cache.service.d.ts +9 -1
- package/dist/modules/agents/agent-runtime-cache.service.js +50 -17
- package/dist/modules/agents/agent-runtime-cache.service.js.map +1 -1
- package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +11 -6
- package/dist/modules/agents/agent-runtime-reconstruction.service.js +35 -18
- package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
- package/dist/modules/agents/agent-sandbox-principal.d.ts +34 -0
- package/dist/modules/agents/agent-sandbox-principal.js +64 -0
- package/dist/modules/agents/agent-sandbox-principal.js.map +1 -0
- package/dist/modules/agents/agent-sandbox-runtime.service.d.ts +42 -0
- package/dist/modules/agents/agent-sandbox-runtime.service.js +290 -0
- package/dist/modules/agents/agent-sandbox-runtime.service.js.map +1 -0
- package/dist/modules/agents/agent-sandbox.controller.d.ts +3 -6
- package/dist/modules/agents/agent-sandbox.controller.js +6 -14
- package/dist/modules/agents/agent-sandbox.controller.js.map +1 -1
- package/dist/modules/agents/agent-session-langsmith-export.service.d.ts +27 -0
- package/dist/modules/agents/agent-session-langsmith-export.service.js +390 -0
- package/dist/modules/agents/agent-session-langsmith-export.service.js.map +1 -0
- package/dist/modules/agents/agent-skills.service.js +4 -0
- package/dist/modules/agents/agent-skills.service.js.map +1 -1
- package/dist/modules/agents/agent-slack-integrations.controller.d.ts +22 -2
- package/dist/modules/agents/agent-slack-integrations.controller.js +108 -9
- package/dist/modules/agents/agent-slack-integrations.controller.js.map +1 -1
- package/dist/modules/agents/agent-sse-stream.js +10 -3
- package/dist/modules/agents/agent-sse-stream.js.map +1 -1
- package/dist/modules/agents/agent-threads.controller.d.ts +8 -1
- package/dist/modules/agents/agent-threads.controller.js +20 -2
- package/dist/modules/agents/agent-threads.controller.js.map +1 -1
- package/dist/modules/agents/agent-validation.service.js +9 -0
- package/dist/modules/agents/agent-validation.service.js.map +1 -1
- package/dist/modules/agents/agent-workflow-execution.service.d.ts +8 -2
- package/dist/modules/agents/agent-workflow-execution.service.js +43 -7
- package/dist/modules/agents/agent-workflow-execution.service.js.map +1 -1
- package/dist/modules/agents/agent-workspace.service.d.ts +16 -0
- package/dist/modules/agents/agent-workspace.service.js +65 -0
- package/dist/modules/agents/agent-workspace.service.js.map +1 -0
- package/dist/modules/agents/agents.controller.d.ts +3 -1
- package/dist/modules/agents/agents.controller.js +6 -2
- package/dist/modules/agents/agents.controller.js.map +1 -1
- package/dist/modules/agents/agents.module.d.ts +1 -1
- package/dist/modules/agents/agents.module.js +6 -2
- package/dist/modules/agents/agents.module.js.map +1 -1
- package/dist/modules/agents/agents.service.d.ts +5 -1
- package/dist/modules/agents/agents.service.js +3 -2
- package/dist/modules/agents/agents.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-prompts.d.ts +3 -3
- package/dist/modules/agents/builder/agents-builder-prompts.js +23 -11
- package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-settings.service.d.ts +3 -1
- package/dist/modules/agents/builder/agents-builder-settings.service.js +38 -29
- package/dist/modules/agents/builder/agents-builder-settings.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-tools.service.js +209 -2
- package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder.service.js +5 -2
- package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
- package/dist/modules/agents/builder/builder-model-live-lookup.service.js +1 -1
- package/dist/modules/agents/builder/builder-model-live-lookup.service.js.map +1 -1
- package/dist/modules/agents/builder/builder-tool-names.d.ts +5 -0
- package/dist/modules/agents/builder/builder-tool-names.js +5 -0
- package/dist/modules/agents/builder/builder-tool-names.js.map +1 -1
- package/dist/modules/agents/builder/format-preview-context.js +3 -0
- package/dist/modules/agents/builder/format-preview-context.js.map +1 -1
- package/dist/modules/agents/builder/interactive/ask-credential.tool.d.ts +1 -0
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js +5 -2
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/finish-setup.tool.js +1 -0
- package/dist/modules/agents/builder/interactive/finish-setup.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/resolve-llm.tool.js +7 -3
- package/dist/modules/agents/builder/interactive/resolve-llm.tool.js.map +1 -1
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +1 -1
- package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
- package/dist/modules/agents/builder/prompts/tools.prompt.js +11 -7
- package/dist/modules/agents/builder/prompts/tools.prompt.js.map +1 -1
- package/dist/modules/agents/builder/resolve-integration.tool.js +1 -1
- package/dist/modules/agents/builder/resolve-integration.tool.js.map +1 -1
- package/dist/modules/agents/builder/skills/external-services.skill.js +13 -94
- package/dist/modules/agents/builder/skills/external-services.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/index.js +2 -0
- package/dist/modules/agents/builder/skills/index.js.map +1 -1
- package/dist/modules/agents/builder/skills/node-tools.skill.d.ts +2 -0
- package/dist/modules/agents/builder/skills/node-tools.skill.js +132 -0
- package/dist/modules/agents/builder/skills/node-tools.skill.js.map +1 -0
- package/dist/modules/agents/builder/skills/target-skills.skill.js +62 -21
- package/dist/modules/agents/builder/skills/target-skills.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/target-tasks.skill.js +34 -17
- package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -1
- package/dist/modules/agents/builder/task-objective-template.d.ts +2 -2
- package/dist/modules/agents/builder/task-objective-template.js +11 -9
- package/dist/modules/agents/builder/task-objective-template.js.map +1 -1
- package/dist/modules/agents/execution-recorder.d.ts +25 -0
- package/dist/modules/agents/execution-recorder.js +47 -0
- package/dist/modules/agents/execution-recorder.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +3 -1
- package/dist/modules/agents/integrations/agent-chat-bridge.js +10 -2
- package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-integration.d.ts +10 -1
- package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-suspension-cards.d.ts +0 -1
- package/dist/modules/agents/integrations/agent-chat-suspension-cards.js +0 -24
- package/dist/modules/agents/integrations/agent-chat-suspension-cards.js.map +1 -1
- package/dist/modules/agents/integrations/chat-integration.service.d.ts +0 -1
- package/dist/modules/agents/integrations/chat-integration.service.js +1 -4
- package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
- package/dist/modules/agents/integrations/integration-tool-descriptions.js +1 -0
- package/dist/modules/agents/integrations/integration-tool-descriptions.js.map +1 -1
- package/dist/modules/agents/integrations/n8n-checkpoint-storage.d.ts +3 -0
- package/dist/modules/agents/integrations/n8n-checkpoint-storage.js +26 -1
- package/dist/modules/agents/integrations/n8n-checkpoint-storage.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack/assets/n8n-bot-icon.png +0 -0
- package/dist/modules/agents/integrations/platforms/slack/slack-integration.d.ts +5 -4
- package/dist/modules/agents/integrations/platforms/slack/slack-integration.js +5 -3
- package/dist/modules/agents/integrations/platforms/slack/slack-integration.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack/slack-managed-setup.service.d.ts +78 -0
- package/dist/modules/agents/integrations/platforms/slack/slack-managed-setup.service.js +620 -0
- package/dist/modules/agents/integrations/platforms/slack/slack-managed-setup.service.js.map +1 -0
- package/dist/modules/agents/integrations/platforms/slack/slack-manual-setup.service.d.ts +6 -6
- package/dist/modules/agents/integrations/platforms/slack/slack-manual-setup.service.js +31 -24
- package/dist/modules/agents/integrations/platforms/slack/slack-manual-setup.service.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.d.ts +19 -10
- package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js +85 -54
- package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack/slack-setup.types.d.ts +16 -0
- package/dist/modules/agents/integrations/platforms/slack/slack-setup.types.js +36 -0
- package/dist/modules/agents/integrations/platforms/slack/slack-setup.types.js.map +1 -0
- package/dist/modules/agents/json-config/from-json-config.d.ts +2 -2
- package/dist/modules/agents/json-config/from-json-config.js +5 -0
- package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
- package/dist/modules/agents/json-config/mcp-client-factory.js +17 -12
- package/dist/modules/agents/json-config/mcp-client-factory.js.map +1 -1
- package/dist/modules/agents/llm-provider-defaults.js +8 -8
- package/dist/modules/agents/llm-provider-defaults.js.map +1 -1
- package/dist/modules/agents/register-favorite-resolver.d.ts +1 -0
- package/dist/modules/agents/register-favorite-resolver.js +18 -0
- package/dist/modules/agents/register-favorite-resolver.js.map +1 -0
- package/dist/modules/agents/repositories/agent-checkpoint.repository.d.ts +1 -0
- package/dist/modules/agents/repositories/agent-checkpoint.repository.js +7 -0
- package/dist/modules/agents/repositories/agent-checkpoint.repository.js.map +1 -1
- package/dist/modules/agents/repositories/agent-credential-dependency.repository.js +1 -1
- package/dist/modules/agents/repositories/agent-credential-dependency.repository.js.map +1 -1
- package/dist/modules/agents/repositories/agent-execution-thread.repository.d.ts +1 -0
- package/dist/modules/agents/repositories/agent-execution-thread.repository.js +6 -0
- package/dist/modules/agents/repositories/agent-execution-thread.repository.js.map +1 -1
- package/dist/modules/agents/repositories/agent.repository.d.ts +4 -1
- package/dist/modules/agents/repositories/agent.repository.js +14 -0
- package/dist/modules/agents/repositories/agent.repository.js.map +1 -1
- package/dist/modules/agents/runtime/agent-secure-runtime.d.ts +2 -0
- package/dist/modules/agents/runtime/agent-secure-runtime.js +72 -30
- package/dist/modules/agents/runtime/agent-secure-runtime.js.map +1 -1
- package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js +5 -0
- package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js.map +1 -1
- package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.d.ts +1 -0
- package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js +33 -0
- package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js.map +1 -1
- package/dist/modules/agents/tools/input-data-tool.js +2 -1
- package/dist/modules/agents/tools/input-data-tool.js.map +1 -1
- package/dist/modules/agents/tools/knowledge/search-knowledge.tool.d.ts +3 -3
- package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js +4 -4
- package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js.map +1 -1
- package/dist/modules/agents/tools/workflow-tool-factory.js +11 -70
- package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
- package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.d.ts +2 -6
- package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js +6 -25
- package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js.map +1 -1
- package/dist/modules/agents/utils/execution-to-message-mapper.js +9 -0
- package/dist/modules/agents/utils/execution-to-message-mapper.js.map +1 -1
- package/dist/modules/agents/utils/model-snapshot-alias.d.ts +2 -0
- package/dist/modules/agents/utils/model-snapshot-alias.js +9 -0
- package/dist/modules/agents/utils/model-snapshot-alias.js.map +1 -0
- package/dist/modules/agents/utils/node-tool-validation.d.ts +6 -0
- package/dist/modules/agents/utils/node-tool-validation.js +28 -0
- package/dist/modules/agents/utils/node-tool-validation.js.map +1 -1
- package/dist/modules/data-table/data-table-proxy.service.d.ts +3 -3
- package/dist/modules/data-table/data-table-proxy.service.js +5 -6
- package/dist/modules/data-table/data-table-proxy.service.js.map +1 -1
- package/dist/modules/data-table/data-table.controller.d.ts +3 -3
- package/dist/modules/data-table/data-table.controller.js +5 -6
- package/dist/modules/data-table/data-table.controller.js.map +1 -1
- package/dist/modules/data-table/data-table.module.js +2 -0
- package/dist/modules/data-table/data-table.module.js.map +1 -1
- package/dist/modules/data-table/data-table.repository.d.ts +1 -1
- package/dist/modules/data-table/data-table.repository.js +10 -6
- package/dist/modules/data-table/data-table.repository.js.map +1 -1
- package/dist/modules/data-table/middleware/branch-write-access-middleware.js +2 -3
- package/dist/modules/data-table/middleware/branch-write-access-middleware.js.map +1 -1
- package/dist/modules/data-table/register-favorite-resolver.d.ts +1 -0
- package/dist/modules/data-table/register-favorite-resolver.js +18 -0
- package/dist/modules/data-table/register-favorite-resolver.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.d.ts +52 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js +25 -7
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/errors/n8n-identity-not-supported.error.d.ts +4 -0
- package/dist/modules/dynamic-credentials.ee/errors/n8n-identity-not-supported.error.js +12 -0
- package/dist/modules/dynamic-credentials.ee/errors/n8n-identity-not-supported.error.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +8 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +49 -2
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.d.ts +8 -3
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +29 -6
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +3 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-web.service.d.ts +3 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-web.service.js +9 -12
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-web.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +11 -0
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -1
- package/dist/modules/favorites/favorite-resource-resolver.registry.d.ts +17 -0
- package/dist/modules/favorites/favorite-resource-resolver.registry.js +26 -0
- package/dist/modules/favorites/favorite-resource-resolver.registry.js.map +1 -0
- package/dist/modules/favorites/favorites.service.d.ts +4 -7
- package/dist/modules/favorites/favorites.service.js +18 -34
- package/dist/modules/favorites/favorites.service.js.map +1 -1
- package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +0 -1
- package/dist/modules/insights/database/repositories/insights-by-period.repository.js +1 -5
- package/dist/modules/insights/database/repositories/insights-by-period.repository.js.map +1 -1
- package/dist/modules/instance-ai/canvas-node-context-flag-gate.d.ts +7 -0
- package/dist/modules/instance-ai/canvas-node-context-flag-gate.js +35 -0
- package/dist/modules/instance-ai/canvas-node-context-flag-gate.js.map +1 -0
- package/dist/modules/instance-ai/drop-rejected-attachments.d.ts +18 -0
- package/dist/modules/instance-ai/drop-rejected-attachments.js +49 -0
- package/dist/modules/instance-ai/drop-rejected-attachments.js.map +1 -0
- package/dist/modules/instance-ai/eval/agent-execution.service.js +2 -1
- package/dist/modules/instance-ai/eval/agent-execution.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-error-reporter.service.d.ts +1 -0
- package/dist/modules/instance-ai/instance-ai-error-reporter.service.js +9 -0
- package/dist/modules/instance-ai/instance-ai-error-reporter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-model.service.d.ts +3 -3
- package/dist/modules/instance-ai/instance-ai-model.service.js +15 -21
- package/dist/modules/instance-ai/instance-ai-model.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +9 -4
- package/dist/modules/instance-ai/instance-ai-settings.service.js +119 -98
- package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.d.ts +4 -0
- package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js +11 -0
- package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +16 -14
- package/dist/modules/instance-ai/instance-ai.adapter.service.js +143 -79
- package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.controller.js +9 -0
- package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.module.js +3 -3
- package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.service.d.ts +19 -6
- package/dist/modules/instance-ai/instance-ai.service.js +288 -27
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/internal-messages.js +1 -1
- package/dist/modules/instance-ai/internal-messages.js.map +1 -1
- package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.d.ts +1 -0
- package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js +3 -0
- package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js.map +1 -1
- package/dist/modules/instance-ai/stream-transport-error.d.ts +1 -0
- package/dist/modules/instance-ai/stream-transport-error.js +9 -0
- package/dist/modules/instance-ai/stream-transport-error.js.map +1 -0
- package/dist/modules/instance-ai/workflow-verification-task-projector.js +4 -1
- package/dist/modules/instance-ai/workflow-verification-task-projector.js.map +1 -1
- package/dist/modules/mcp/dto/update-mcp-settings.dto.d.ts +32 -2
- package/dist/modules/mcp/dto/update-mcp-settings.dto.js +17 -3
- package/dist/modules/mcp/dto/update-mcp-settings.dto.js.map +1 -1
- package/dist/modules/mcp/mcp-protected-resource.d.ts +3 -2
- package/dist/modules/mcp/mcp-protected-resource.js +6 -3
- package/dist/modules/mcp/mcp-protected-resource.js.map +1 -1
- package/dist/modules/mcp/mcp-scopes.d.ts +1 -0
- package/dist/modules/mcp/mcp-scopes.js +12 -2
- package/dist/modules/mcp/mcp-scopes.js.map +1 -1
- package/dist/modules/mcp/mcp.controller.js +1 -1
- package/dist/modules/mcp/mcp.controller.js.map +1 -1
- package/dist/modules/mcp/mcp.module.d.ts +1 -0
- package/dist/modules/mcp/mcp.module.js +4 -2
- package/dist/modules/mcp/mcp.module.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +6 -3
- package/dist/modules/mcp/mcp.service.js +24 -5
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/mcp.settings.controller.d.ts +2 -0
- package/dist/modules/mcp/mcp.settings.controller.js +24 -10
- package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
- package/dist/modules/mcp/mcp.settings.service.d.ts +4 -3
- package/dist/modules/mcp/mcp.settings.service.js +20 -2
- package/dist/modules/mcp/mcp.settings.service.js.map +1 -1
- package/dist/modules/mcp/mcp.types.d.ts +4 -3
- package/dist/modules/mcp/mcp.utils.d.ts +4 -1
- package/dist/modules/mcp/mcp.utils.js +14 -4
- package/dist/modules/mcp/mcp.utils.js.map +1 -1
- package/dist/modules/mcp/tools/agents/agent-tools.service.js +10 -1
- package/dist/modules/mcp/tools/agents/agent-tools.service.js.map +1 -1
- package/dist/modules/mcp/tools/create-folder.tool.d.ts +13 -0
- package/dist/modules/mcp/tools/create-folder.tool.js +68 -0
- package/dist/modules/mcp/tools/create-folder.tool.js.map +1 -0
- package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js +1 -1
- package/dist/modules/mcp/tools/data-table/add-data-table-rows.tool.js.map +1 -1
- package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.d.ts +44 -0
- package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.js +134 -0
- package/dist/modules/mcp/tools/data-table/get-data-table-rows.tool.js.map +1 -0
- package/dist/modules/mcp/tools/data-table/index.d.ts +1 -0
- package/dist/modules/mcp/tools/data-table/index.js +3 -1
- package/dist/modules/mcp/tools/data-table/index.js.map +1 -1
- package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +11 -21
- package/dist/modules/mcp/tools/execute-workflow.tool.js +113 -76
- package/dist/modules/mcp/tools/execute-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/folder-error.utils.d.ts +13 -0
- package/dist/modules/mcp/tools/folder-error.utils.js +25 -0
- package/dist/modules/mcp/tools/folder-error.utils.js.map +1 -0
- 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/get-workflow-versions-diff.tool.d.ts +81 -0
- package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.js +218 -0
- package/dist/modules/mcp/tools/get-workflow-versions-diff.tool.js.map +1 -0
- package/dist/modules/mcp/tools/move-workflows-to-folder.tool.d.ts +13 -0
- package/dist/modules/mcp/tools/move-workflows-to-folder.tool.js +122 -0
- package/dist/modules/mcp/tools/move-workflows-to-folder.tool.js.map +1 -0
- package/dist/modules/mcp/tools/schemas.d.ts +7 -0
- package/dist/modules/mcp/tools/schemas.js +15 -1
- package/dist/modules/mcp/tools/schemas.js.map +1 -1
- package/dist/modules/mcp/tools/search-folders.tool.d.ts +3 -2
- package/dist/modules/mcp/tools/search-folders.tool.js +14 -8
- package/dist/modules/mcp/tools/search-folders.tool.js.map +1 -1
- package/dist/modules/mcp/tools/test-workflow.tool.js +10 -18
- package/dist/modules/mcp/tools/test-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/update-folder.tool.d.ts +14 -0
- package/dist/modules/mcp/tools/update-folder.tool.js +74 -0
- package/dist/modules/mcp/tools/update-folder.tool.js.map +1 -0
- package/dist/modules/mcp/tools/webhook-utils.js +6 -4
- package/dist/modules/mcp/tools/webhook-utils.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +18 -5
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +4 -4
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +467 -397
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-inputs.d.ts +111 -0
- package/dist/modules/mcp/tools/workflow-inputs.js +81 -0
- package/dist/modules/mcp/tools/workflow-inputs.js.map +1 -0
- package/dist/modules/mcp/tools/workflow-validation.utils.d.ts +2 -0
- package/dist/modules/mcp/tools/workflow-validation.utils.js +7 -6
- package/dist/modules/mcp/tools/workflow-validation.utils.js.map +1 -1
- package/dist/modules/mcp-registry/registry/mcp-registry.service.d.ts +1 -0
- package/dist/modules/mcp-registry/registry/mcp-registry.service.js +4 -0
- package/dist/modules/mcp-registry/registry/mcp-registry.service.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential.serializer.js +4 -2
- package/dist/modules/n8n-packages/entities/credential/credential.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js +13 -9
- package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/folder/folder.exporter.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/folder/folder.exporter.js +1 -0
- package/dist/modules/n8n-packages/entities/folder/folder.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/entities/folder/folder.serializer.js +4 -2
- package/dist/modules/n8n-packages/entities/folder/folder.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/package-serialization.types.d.ts +17 -0
- package/dist/modules/n8n-packages/entities/package-serialization.types.js +7 -0
- package/dist/modules/n8n-packages/entities/package-serialization.types.js.map +1 -0
- package/dist/modules/n8n-packages/entities/project/project.exporter.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/project/project.exporter.js +2 -0
- package/dist/modules/n8n-packages/entities/project/project.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/entities/project/project.serializer.js +4 -2
- package/dist/modules/n8n-packages/entities/project/project.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/tag/tag.exporter.js +3 -1
- package/dist/modules/n8n-packages/entities/tag/tag.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/entities/variable/variable.serializer.js +6 -3
- package/dist/modules/n8n-packages/entities/variable/variable.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js +21 -4
- package/dist/modules/n8n-packages/entities/workflow/auto-included-workflow-resolver.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.js +4 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-dependency-resolver.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.d.ts +4 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.js +48 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-version-policy.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +7 -2
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js +5 -3
- package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.service.js +6 -0
- package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.types.d.ts +8 -0
- 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/oauth-server/database/repositories/oauth-access-token.repository.d.ts +2 -2
- package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js +3 -3
- package/dist/modules/oauth-server/database/repositories/oauth-access-token.repository.js.map +1 -1
- package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.d.ts +2 -2
- package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js +3 -3
- package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js.map +1 -1
- package/dist/modules/oauth-server/oauth-consent.controller.js +2 -0
- package/dist/modules/oauth-server/oauth-consent.controller.js.map +1 -1
- package/dist/modules/oauth-server/oauth-consent.service.d.ts +8 -1
- package/dist/modules/oauth-server/oauth-consent.service.js +33 -0
- package/dist/modules/oauth-server/oauth-consent.service.js.map +1 -1
- package/dist/modules/oauth-server/oauth-server.service.d.ts +6 -1
- package/dist/modules/oauth-server/oauth-server.service.js +36 -4
- package/dist/modules/oauth-server/oauth-server.service.js.map +1 -1
- package/dist/modules/oauth-server/oauth-token.service.d.ts +6 -2
- package/dist/modules/oauth-server/oauth-token.service.js +19 -7
- package/dist/modules/oauth-server/oauth-token.service.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.d.ts +7 -3
- package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js +8 -7
- package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-resource.resolver.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.d.ts +6 -3
- package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js +8 -7
- package/dist/modules/oauth-server/protected-resource-resolvers/form-trigger-test-resource.resolver.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.d.ts +2 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.js +5 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.d.ts +4 -3
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js +7 -7
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-test-trigger-resource.resolver.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.d.ts +5 -3
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js +7 -7
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-mcp-trigger-resource.resolver.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-test-trigger-resource.resolver.js +7 -11
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-test-trigger-resource.resolver.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-trigger-resource.resolver.js +7 -11
- package/dist/modules/oauth-server/protected-resource-resolvers/workflow-webhook-trigger-resource.resolver.js.map +1 -1
- package/dist/modules/oauth-server/resource-gate.d.ts +6 -0
- package/dist/modules/oauth-server/resource-gate.js +17 -0
- package/dist/modules/oauth-server/resource-gate.js.map +1 -0
- package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js +1 -9
- package/dist/modules/provisioning.ee/role-mapping-rule.controller.ee.js.map +1 -1
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.d.ts +5 -2
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js +14 -4
- package/dist/modules/provisioning.ee/role-mapping-rule.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-preferences.service.ee.d.ts +3 -1
- package/dist/modules/source-control.ee/source-control-preferences.service.ee.js +5 -2
- package/dist/modules/source-control.ee/source-control-preferences.service.ee.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-access.service.d.ts +27 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js +108 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.d.ts +23 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js +99 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.d.ts +4 -2
- package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js +30 -11
- package/dist/modules/workflow-reviews.ee/workflow-review-auto-close.service.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.d.ts +18 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js +77 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.d.ts +8 -11
- package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js +52 -71
- package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-request.service.d.ts +6 -4
- package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js +157 -40
- package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.d.ts +6 -2
- package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js +30 -2
- package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review.mapper.d.ts +4 -2
- package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js +69 -0
- package/dist/modules/workflow-reviews.ee/workflow-review.mapper.js.map +1 -1
- package/dist/oauth/account-identifier.d.ts +2 -0
- package/dist/oauth/account-identifier.js +38 -0
- package/dist/oauth/account-identifier.js.map +1 -0
- package/dist/oauth/oauth.service.d.ts +0 -1
- package/dist/oauth/oauth.service.js +7 -39
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/posthog/index.js +3 -0
- package/dist/posthog/index.js.map +1 -1
- package/dist/public-api/index.d.ts +1 -1
- package/dist/public-api/index.js +8 -4
- package/dist/public-api/index.js.map +1 -1
- package/dist/public-api/types.d.ts +0 -16
- package/dist/public-api/v1/controllers/index.d.ts +1 -0
- package/dist/public-api/v1/controllers/index.js +1 -0
- package/dist/public-api/v1/controllers/index.js.map +1 -1
- package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.d.ts +11 -0
- package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js +61 -0
- package/dist/public-api/v1/controllers/role-mapping-rules.public.controller.js.map +1 -0
- package/dist/public-api/v1/controllers/roles.public.controller.d.ts +4 -1
- package/dist/public-api/v1/controllers/roles.public.controller.js +95 -10
- package/dist/public-api/v1/controllers/roles.public.controller.js.map +1 -1
- package/dist/public-api/v1/controllers/workflows.public.controller.d.ts +11 -2
- package/dist/public-api/v1/controllers/workflows.public.controller.js +159 -3
- package/dist/public-api/v1/controllers/workflows.public.controller.js.map +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js +111 -43
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.middleware.js +13 -6
- package/dist/public-api/v1/handlers/credentials/credentials.middleware.js.map +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.utils.d.ts +12 -0
- package/dist/public-api/v1/handlers/credentials/credentials.utils.js +182 -0
- package/dist/public-api/v1/handlers/credentials/credentials.utils.js.map +1 -0
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.d.ts +1 -0
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +1 -0
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +0 -3
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js +0 -76
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +678 -126
- package/dist/public-api/v1/public-api-error-response.d.ts +2 -1
- package/dist/public-api/v1/public-api-error-response.js +2 -2
- package/dist/public-api/v1/public-api-error-response.js.map +1 -1
- package/dist/scaling/constants.js +1 -0
- package/dist/scaling/constants.js.map +1 -1
- package/dist/scaling/job-processor.js +15 -11
- package/dist/scaling/job-processor.js.map +1 -1
- package/dist/scaling/scaling.types.d.ts +2 -1
- package/dist/scheduling/durable-job-provisioner.d.ts +3 -2
- package/dist/scheduling/durable-job-provisioner.js +42 -8
- package/dist/scheduling/durable-job-provisioner.js.map +1 -1
- package/dist/scheduling/durable-scheduler.js +5 -1
- package/dist/scheduling/durable-scheduler.js.map +1 -1
- package/dist/scheduling/owner-key.d.ts +14 -0
- package/dist/scheduling/owner-key.js +17 -0
- package/dist/scheduling/owner-key.js.map +1 -0
- package/dist/scheduling/poll-trigger-node/poll-job-provider.d.ts +3 -1
- package/dist/scheduling/poll-trigger-node/poll-job-provider.js +7 -3
- package/dist/scheduling/poll-trigger-node/poll-job-provider.js.map +1 -1
- package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.d.ts +5 -2
- package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js +60 -33
- package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js.map +1 -1
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js +35 -6
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-job-registrar.js.map +1 -1
- package/dist/security-audit/risk-reporters/instance-risk-reporter.js +1 -1
- package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
- package/dist/server.js +8 -9
- package/dist/server.js.map +1 -1
- package/dist/services/ai-gateway.service.d.ts +3 -7
- package/dist/services/ai-gateway.service.js +31 -8
- package/dist/services/ai-gateway.service.js.map +1 -1
- package/dist/services/api-key-auth.strategy.js +3 -0
- package/dist/services/api-key-auth.strategy.js.map +1 -1
- package/dist/services/dynamic-node-parameters.service.d.ts +4 -2
- package/dist/services/dynamic-node-parameters.service.js +17 -3
- package/dist/services/dynamic-node-parameters.service.js.map +1 -1
- package/dist/services/folder.service.d.ts +1 -1
- package/dist/services/folder.service.js.map +1 -1
- package/dist/services/frontend.service.js +2 -1
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/instance-write-access.service.d.ts +5 -0
- package/dist/services/instance-write-access.service.js +26 -0
- package/dist/services/instance-write-access.service.js.map +1 -0
- package/dist/services/oauth-token-verifier-proxy.service.d.ts +4 -2
- package/dist/services/oauth-token-verifier-proxy.service.js +2 -2
- package/dist/services/oauth-token-verifier-proxy.service.js.map +1 -1
- package/dist/services/ownership-transfer/ownership-transfer.manifest.json +1 -1
- package/dist/services/project.service.ee.js +12 -5
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/protected-resource.registry.d.ts +4 -0
- package/dist/services/protected-resource.registry.js.map +1 -1
- package/dist/services/pruning/workflow-history-compaction.service.js +9 -6
- package/dist/services/pruning/workflow-history-compaction.service.js.map +1 -1
- package/dist/services/role.service.d.ts +13 -3
- package/dist/services/role.service.js +13 -5
- package/dist/services/role.service.js.map +1 -1
- package/dist/services/sandbox-settings.service.d.ts +29 -0
- package/dist/services/sandbox-settings.service.js +144 -0
- package/dist/services/sandbox-settings.service.js.map +1 -0
- package/dist/services/session-cookie-auth.strategy.d.ts +11 -0
- package/dist/services/session-cookie-auth.strategy.js +61 -0
- package/dist/services/session-cookie-auth.strategy.js.map +1 -0
- package/dist/utils/ai-proxy-language-model.d.ts +13 -0
- package/dist/utils/ai-proxy-language-model.js +48 -0
- package/dist/utils/ai-proxy-language-model.js.map +1 -0
- package/dist/utils/ttl-map.d.ts +3 -1
- package/dist/utils/ttl-map.js +13 -17
- package/dist/utils/ttl-map.js.map +1 -1
- package/dist/webhooks/webhook-helpers.js +12 -2
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/workflow-execute-additional-data.js +17 -1
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-runner.d.ts +4 -1
- package/dist/workflow-runner.js +6 -1
- package/dist/workflow-runner.js.map +1 -1
- package/dist/workflows/publication/trigger-diff.js +10 -1
- package/dist/workflows/publication/trigger-diff.js.map +1 -1
- package/dist/workflows/publication/workflow-publication-outbox-consumer.d.ts +3 -4
- package/dist/workflows/publication/workflow-publication-outbox-consumer.js +46 -50
- package/dist/workflows/publication/workflow-publication-outbox-consumer.js.map +1 -1
- package/dist/workflows/publication/workflow-publication-outbox-worker-pool.d.ts +16 -0
- package/dist/workflows/publication/workflow-publication-outbox-worker-pool.js +50 -0
- package/dist/workflows/publication/workflow-publication-outbox-worker-pool.js.map +1 -0
- package/dist/workflows/triggers/durable-poller-gate.service.d.ts +19 -0
- package/dist/workflows/triggers/durable-poller-gate.service.js +78 -0
- package/dist/workflows/triggers/durable-poller-gate.service.js.map +1 -0
- package/dist/workflows/triggers/enabled-trigger-nodes.d.ts +6 -0
- package/dist/workflows/triggers/enabled-trigger-nodes.js +18 -0
- package/dist/workflows/triggers/enabled-trigger-nodes.js.map +1 -0
- package/dist/workflows/triggers/poll-cursor.service.d.ts +39 -0
- package/dist/workflows/triggers/poll-cursor.service.js +100 -0
- package/dist/workflows/triggers/poll-cursor.service.js.map +1 -0
- package/dist/workflows/triggers/trigger-execution-context.factory.d.ts +6 -4
- package/dist/workflows/triggers/trigger-execution-context.factory.js +56 -7
- package/dist/workflows/triggers/trigger-execution-context.factory.js.map +1 -1
- package/dist/workflows/triggers/workflow-trigger-activator.d.ts +3 -5
- package/dist/workflows/triggers/workflow-trigger-activator.js +2 -11
- package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
- package/dist/workflows/workflow-creation.service.d.ts +4 -1
- package/dist/workflows/workflow-creation.service.js +20 -2
- package/dist/workflows/workflow-creation.service.js.map +1 -1
- package/dist/workflows/workflow-entity-mapper.js.map +1 -1
- package/dist/workflows/workflow-execution.service.d.ts +9 -4
- package/dist/workflows/workflow-execution.service.js +93 -2
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow-finder.service.d.ts +1 -0
- package/dist/workflows/workflow-finder.service.js +5 -1
- package/dist/workflows/workflow-finder.service.js.map +1 -1
- package/dist/workflows/workflow-validation.service.d.ts +1 -0
- package/dist/workflows/workflow-validation.service.js +32 -11
- package/dist/workflows/workflow-validation.service.js.map +1 -1
- package/dist/workflows/workflow.service.d.ts +1 -0
- package/dist/workflows/workflow.service.js +18 -4
- package/dist/workflows/workflow.service.js.map +1 -1
- package/package.json +42 -41
- package/templates/form-shell.handlebars +155 -86
- package/templates/form-trigger.handlebars +97 -2
- package/dist/modules/agents/agent-knowledge-gate.d.ts +0 -2
- package/dist/modules/agents/agent-knowledge-gate.js +0 -7
- package/dist/modules/agents/agent-knowledge-gate.js.map +0 -1
- package/dist/modules/agents/agent-knowledge-sandbox.service.js +0 -693
- package/dist/modules/agents/agent-knowledge-sandbox.service.js.map +0 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-decision-eligibility.service.d.ts +0 -15
- package/dist/modules/workflow-reviews.ee/workflow-review-decision-eligibility.service.js +0 -52
- package/dist/modules/workflow-reviews.ee/workflow-review-decision-eligibility.service.js.map +0 -1
- package/dist/public-api/v1/handlers/credentials/credentials.service.d.ts +0 -36
- package/dist/public-api/v1/handlers/credentials/credentials.service.js +0 -330
- package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +0 -1
|
@@ -24,65 +24,69 @@ exports.formatExecutionError = formatExecutionError;
|
|
|
24
24
|
exports.truncateNodeOutput = truncateNodeOutput;
|
|
25
25
|
exports.extractNodeOutput = extractNodeOutput;
|
|
26
26
|
exports.extractExecutionDebugInfo = extractExecutionDebugInfo;
|
|
27
|
-
const node_crypto_1 = require("node:crypto");
|
|
28
|
-
const promises_1 = require("node:fs/promises");
|
|
29
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
30
27
|
const ai_utilities_1 = require("@n8n/ai-utilities");
|
|
31
|
-
const instance_ai_1 = require("@n8n/instance-ai");
|
|
32
28
|
const api_types_1 = require("@n8n/api-types");
|
|
29
|
+
const backend_common_1 = require("@n8n/backend-common");
|
|
30
|
+
const backend_network_1 = require("@n8n/backend-network");
|
|
33
31
|
const config_1 = require("@n8n/config");
|
|
34
32
|
const constants_1 = require("@n8n/constants");
|
|
35
|
-
const nanoid_1 = require("nanoid");
|
|
36
|
-
const extract_resolved_node_parameters_1 = require("./extract-resolved-node-parameters");
|
|
37
|
-
const instance_ai_settings_service_1 = require("./instance-ai-settings.service");
|
|
38
|
-
const mcp_1 = require("./mcp");
|
|
39
|
-
const workflow_templates_service_1 = require("./workflow-templates.service");
|
|
40
|
-
const instance_ai_run_pin_data_1 = require("./instance-ai-run-pin-data");
|
|
41
|
-
const node_definition_resolver_1 = require("./node-definition-resolver");
|
|
42
|
-
const web_research_1 = require("./web-research");
|
|
43
33
|
const db_1 = require("@n8n/db");
|
|
44
|
-
const backend_common_1 = require("@n8n/backend-common");
|
|
45
|
-
const backend_network_1 = require("@n8n/backend-network");
|
|
46
34
|
const di_1 = require("@n8n/di");
|
|
35
|
+
const instance_ai_1 = require("@n8n/instance-ai");
|
|
47
36
|
const permissions_1 = require("@n8n/permissions");
|
|
48
37
|
const typeorm_1 = require("@n8n/typeorm");
|
|
38
|
+
const n8n_core_1 = require("n8n-core");
|
|
49
39
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
40
|
+
const nanoid_1 = require("nanoid");
|
|
41
|
+
const node_crypto_1 = require("node:crypto");
|
|
42
|
+
const promises_1 = require("node:fs/promises");
|
|
43
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
50
44
|
const active_executions_1 = require("../../active-executions");
|
|
51
|
-
const
|
|
45
|
+
const collaboration_service_1 = require("../../collaboration/collaboration.service");
|
|
46
|
+
const credentials_overwrites_1 = require("../../credentials-overwrites");
|
|
52
47
|
const credentials_finder_service_1 = require("../../credentials/credentials-finder.service");
|
|
53
48
|
const credentials_service_1 = require("../../credentials/credentials.service");
|
|
49
|
+
const conflict_error_1 = require("../../errors/response-errors/conflict.error");
|
|
50
|
+
const locked_error_1 = require("../../errors/response-errors/locked.error");
|
|
51
|
+
const not_found_error_1 = require("../../errors/response-errors/not-found.error");
|
|
54
52
|
const evaluation_config_service_1 = require("../../evaluation.ee/evaluation-config.service");
|
|
55
53
|
const llm_judge_provider_registry_1 = require("../../evaluation.ee/llm-judge-provider-registry");
|
|
56
54
|
const event_service_1 = require("../../events/event.service");
|
|
57
55
|
const execution_persistence_1 = require("../../executions/execution-persistence");
|
|
58
56
|
const license_1 = require("../../license");
|
|
59
|
-
const posthog_1 = require("../../posthog");
|
|
60
57
|
const load_nodes_and_credentials_1 = require("../../load-nodes-and-credentials");
|
|
61
|
-
const node_types_1 = require("../../node-types");
|
|
62
58
|
const agents_credential_provider_1 = require("../../modules/agents/adapters/agents-credential-provider");
|
|
63
59
|
const instance_ai_builder_delegate_adapter_1 = require("../../modules/agents/instance-ai-builder-delegate.adapter");
|
|
64
|
-
const node_catalog_1 = require("../../node-catalog");
|
|
65
60
|
const data_table_repository_1 = require("../../modules/data-table/data-table.repository");
|
|
66
61
|
const data_table_service_1 = require("../../modules/data-table/data-table.service");
|
|
67
62
|
const node_description_transform_1 = require("../../modules/mcp-registry/node-description-transform");
|
|
68
63
|
const mcp_registry_service_1 = require("../../modules/mcp-registry/registry/mcp-registry.service");
|
|
69
|
-
const
|
|
64
|
+
const node_catalog_1 = require("../../node-catalog");
|
|
65
|
+
const node_types_1 = require("../../node-types");
|
|
70
66
|
const check_access_1 = require("../../permissions.ee/check-access");
|
|
71
|
-
const
|
|
67
|
+
const posthog_1 = require("../../posthog");
|
|
72
68
|
const ai_gateway_service_1 = require("../../services/ai-gateway.service");
|
|
73
69
|
const folder_service_1 = require("../../services/folder.service");
|
|
70
|
+
const instance_write_access_service_1 = require("../../services/instance-write-access.service");
|
|
74
71
|
const node_resource_explorer_service_1 = require("../../services/node-resource-explorer.service");
|
|
75
72
|
const project_service_ee_1 = require("../../services/project.service.ee");
|
|
76
73
|
const role_service_1 = require("../../services/role.service");
|
|
77
|
-
const n8n_core_1 = require("n8n-core");
|
|
78
74
|
const tag_service_1 = require("../../services/tag.service");
|
|
75
|
+
const telemetry_1 = require("../../telemetry");
|
|
76
|
+
const node_definition_dirs_1 = require("../../utils/node-definition-dirs");
|
|
77
|
+
const workflow_runner_1 = require("../../workflow-runner");
|
|
78
|
+
const utils_1 = require("../../workflows/utils");
|
|
79
79
|
const workflow_finder_service_1 = require("../../workflows/workflow-finder.service");
|
|
80
80
|
const workflow_history_service_1 = require("../../workflows/workflow-history/workflow-history.service");
|
|
81
81
|
const workflow_service_1 = require("../../workflows/workflow.service");
|
|
82
|
-
const utils_1 = require("../../workflows/utils");
|
|
83
82
|
const workflow_service_ee_1 = require("../../workflows/workflow.service.ee");
|
|
84
|
-
const
|
|
85
|
-
const
|
|
83
|
+
const extract_resolved_node_parameters_1 = require("./extract-resolved-node-parameters");
|
|
84
|
+
const instance_ai_run_pin_data_1 = require("./instance-ai-run-pin-data");
|
|
85
|
+
const instance_ai_settings_service_1 = require("./instance-ai-settings.service");
|
|
86
|
+
const mcp_1 = require("./mcp");
|
|
87
|
+
const node_definition_resolver_1 = require("./node-definition-resolver");
|
|
88
|
+
const web_research_1 = require("./web-research");
|
|
89
|
+
const workflow_templates_service_1 = require("./workflow-templates.service");
|
|
86
90
|
function resolveDisplayedDefaults(nodeProperties, parameters, nodeType, typeVersion, desc) {
|
|
87
91
|
const stubNode = {
|
|
88
92
|
id: '',
|
|
@@ -109,7 +113,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
109
113
|
});
|
|
110
114
|
return await promise;
|
|
111
115
|
}
|
|
112
|
-
constructor(logger, globalConfig, workflowService, workflowFinderService, workflowRepository, sharedWorkflowRepository, projectRepository, executionRepository, credentialsService, credentialsFinderService, activeExecutions, workflowRunner, loadNodesAndCredentials, nodeTypes, instanceSettings, dataTableService, dataTableRepository, nodeResourceExplorerService, folderService, projectService, tagService,
|
|
116
|
+
constructor(logger, globalConfig, workflowService, workflowFinderService, workflowRepository, sharedWorkflowRepository, projectRepository, executionRepository, credentialsService, credentialsFinderService, activeExecutions, workflowRunner, loadNodesAndCredentials, nodeTypes, instanceSettings, dataTableService, dataTableRepository, nodeResourceExplorerService, folderService, projectService, tagService, instanceWriteAccess, settingsService, workflowHistoryService, enterpriseWorkflowService, license, executionPersistence, eventService, roleService, telemetry, aiBuilderTemporaryWorkflowRepository, ssrfProtectionService, outboundHttp, aiGatewayService, workflowTemplatesService, collaborationService, nodeCatalogService, evaluationConfigService, llmJudgeProviderRegistry) {
|
|
113
117
|
this.globalConfig = globalConfig;
|
|
114
118
|
this.workflowService = workflowService;
|
|
115
119
|
this.workflowFinderService = workflowFinderService;
|
|
@@ -130,7 +134,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
130
134
|
this.folderService = folderService;
|
|
131
135
|
this.projectService = projectService;
|
|
132
136
|
this.tagService = tagService;
|
|
133
|
-
this.
|
|
137
|
+
this.instanceWriteAccess = instanceWriteAccess;
|
|
134
138
|
this.settingsService = settingsService;
|
|
135
139
|
this.workflowHistoryService = workflowHistoryService;
|
|
136
140
|
this.enterpriseWorkflowService = enterpriseWorkflowService;
|
|
@@ -144,6 +148,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
144
148
|
this.outboundHttp = outboundHttp;
|
|
145
149
|
this.aiGatewayService = aiGatewayService;
|
|
146
150
|
this.workflowTemplatesService = workflowTemplatesService;
|
|
151
|
+
this.collaborationService = collaborationService;
|
|
147
152
|
this.nodeCatalogService = nodeCatalogService;
|
|
148
153
|
this.evaluationConfigService = evaluationConfigService;
|
|
149
154
|
this.llmJudgeProviderRegistry = llmJudgeProviderRegistry;
|
|
@@ -236,35 +241,31 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
236
241
|
return (flags?.[api_types_1.INSTANCE_AI_MCP_CONNECTIONS_FLAG] === api_types_1.INSTANCE_AI_MCP_CONNECTIONS_ENABLED_VARIANT);
|
|
237
242
|
}
|
|
238
243
|
createMcpAdapter(user) {
|
|
244
|
+
const toSummaries = (servers) => servers.map((server) => ({
|
|
245
|
+
slug: server.slug,
|
|
246
|
+
title: server.title,
|
|
247
|
+
description: server.description,
|
|
248
|
+
credentialType: server.credentialType,
|
|
249
|
+
tools: server.tools.map((tool) => tool.name),
|
|
250
|
+
}));
|
|
239
251
|
return {
|
|
240
252
|
search: async (queries) => {
|
|
241
|
-
const [servers,
|
|
253
|
+
const [servers, connections] = await Promise.all([
|
|
242
254
|
di_1.Container.get(mcp_registry_service_1.McpRegistryService).search(queries),
|
|
243
|
-
this.
|
|
255
|
+
this.listMcpRegistryConnections(user),
|
|
244
256
|
]);
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
.map((server) => ({
|
|
248
|
-
slug: server.slug,
|
|
249
|
-
title: server.title,
|
|
250
|
-
description: server.description,
|
|
251
|
-
tools: server.tools.map((tool) => tool.name),
|
|
252
|
-
}));
|
|
257
|
+
const connected = new Set(connections.map((connection) => connection.slug));
|
|
258
|
+
return toSummaries(servers.filter((server) => !connected.has(server.slug)));
|
|
253
259
|
},
|
|
260
|
+
getServers: async (slugs) => toSummaries(await di_1.Container.get(mcp_registry_service_1.McpRegistryService).resolveBySlugs(slugs)),
|
|
261
|
+
listConnections: async () => await this.listMcpRegistryConnections(user),
|
|
254
262
|
};
|
|
255
263
|
}
|
|
256
|
-
async
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
catch (error) {
|
|
262
|
-
this.logger.warn('Failed to list connected MCP registry servers for registry search', {
|
|
263
|
-
userId: user.id,
|
|
264
|
-
error: error instanceof Error ? error.message : String(error),
|
|
265
|
-
});
|
|
266
|
-
return new Set();
|
|
267
|
-
}
|
|
264
|
+
async listMcpRegistryConnections(user) {
|
|
265
|
+
const connections = await di_1.Container.get(mcp_1.InstanceAiMcpRegistryService).listConnectionsForUser(user);
|
|
266
|
+
return [...new Set(connections.map((connection) => connection.serverSlug))].map((slug) => ({
|
|
267
|
+
slug,
|
|
268
|
+
}));
|
|
268
269
|
}
|
|
269
270
|
buildAiGatewayNodeMeta(config, nodeName) {
|
|
270
271
|
if (!config)
|
|
@@ -321,7 +322,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
321
322
|
});
|
|
322
323
|
}
|
|
323
324
|
assertInstanceNotReadOnly(resourceType) {
|
|
324
|
-
if (this.
|
|
325
|
+
if (this.instanceWriteAccess.isReadOnly()) {
|
|
325
326
|
throw new Error(`Cannot modify ${resourceType} on a protected instance. This instance is in read-only mode.`);
|
|
326
327
|
}
|
|
327
328
|
}
|
|
@@ -355,11 +356,33 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
355
356
|
return { getPersonalProjectId, assertProjectScope, resolveProjectId, resolveBoundProjectId };
|
|
356
357
|
}
|
|
357
358
|
createWorkflowAdapter(user, threadId, boundProjectId) {
|
|
358
|
-
const { workflowService, workflowFinderService, workflowRepository, sharedWorkflowRepository, aiBuilderTemporaryWorkflowRepository, workflowHistoryService, enterpriseWorkflowService, executionRepository, executionPersistence, license, allowSendingParameterValues, telemetry, } = this;
|
|
359
|
+
const { workflowService, workflowFinderService, workflowRepository, sharedWorkflowRepository, aiBuilderTemporaryWorkflowRepository, workflowHistoryService, enterpriseWorkflowService, executionRepository, executionPersistence, license, allowSendingParameterValues, telemetry, collaborationService, } = this;
|
|
359
360
|
const logger = this.logger;
|
|
360
361
|
const assertNotReadOnly = () => this.assertInstanceNotReadOnly('workflows');
|
|
361
362
|
const { resolveBoundProjectId } = this.createProjectScopeHelpers(user, boundProjectId);
|
|
362
363
|
const redactParameters = !allowSendingParameterValues;
|
|
364
|
+
const assertNotLockedByEditor = async (workflowId) => {
|
|
365
|
+
try {
|
|
366
|
+
await collaborationService.ensureWorkflowEditable(workflowId);
|
|
367
|
+
}
|
|
368
|
+
catch (error) {
|
|
369
|
+
if (error instanceof locked_error_1.LockedError)
|
|
370
|
+
throw new instance_ai_1.WorkflowEditorLockedError(workflowId);
|
|
371
|
+
throw error;
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
const notifyWorkflowUpdated = async (workflowId) => {
|
|
375
|
+
try {
|
|
376
|
+
await collaborationService.broadcastWorkflowUpdate(workflowId, user.id);
|
|
377
|
+
}
|
|
378
|
+
catch (error) {
|
|
379
|
+
logger.warn('Failed to notify open editors of an AI workflow update', {
|
|
380
|
+
threadId,
|
|
381
|
+
workflowId,
|
|
382
|
+
error: error instanceof Error ? error.message : String(error),
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
};
|
|
363
386
|
return {
|
|
364
387
|
async list(options) {
|
|
365
388
|
const filter = {
|
|
@@ -388,22 +411,24 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
388
411
|
'workflow:read',
|
|
389
412
|
]);
|
|
390
413
|
if (!workflow) {
|
|
391
|
-
throw new
|
|
414
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
392
415
|
}
|
|
393
416
|
return await toWorkflowDetailWithChecksum(workflow, { redactParameters });
|
|
394
417
|
},
|
|
395
418
|
async archive(workflowId) {
|
|
396
419
|
assertNotReadOnly();
|
|
420
|
+
await assertNotLockedByEditor(workflowId);
|
|
397
421
|
const result = await workflowService.archive(user, workflowId, { skipArchived: true });
|
|
398
422
|
if (!result) {
|
|
399
|
-
throw new
|
|
423
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
400
424
|
}
|
|
425
|
+
await notifyWorkflowUpdated(workflowId);
|
|
401
426
|
},
|
|
402
427
|
async unarchive(workflowId) {
|
|
403
428
|
assertNotReadOnly();
|
|
404
429
|
const result = await workflowService.unarchive(user, workflowId);
|
|
405
430
|
if (!result) {
|
|
406
|
-
throw new
|
|
431
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
407
432
|
}
|
|
408
433
|
},
|
|
409
434
|
async clearAiTemporary(workflowId) {
|
|
@@ -436,6 +461,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
436
461
|
return true;
|
|
437
462
|
},
|
|
438
463
|
async publish(workflowId, options) {
|
|
464
|
+
await assertNotLockedByEditor(workflowId);
|
|
439
465
|
const wf = await workflowService.activateWorkflow(user, workflowId, {
|
|
440
466
|
versionId: options?.versionId,
|
|
441
467
|
name: options?.name,
|
|
@@ -453,19 +479,22 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
453
479
|
executed_by: 'ai',
|
|
454
480
|
});
|
|
455
481
|
}
|
|
482
|
+
await notifyWorkflowUpdated(workflowId);
|
|
456
483
|
return { activeVersionId: wf.activeVersionId };
|
|
457
484
|
},
|
|
458
485
|
async unpublish(workflowId) {
|
|
486
|
+
await assertNotLockedByEditor(workflowId);
|
|
459
487
|
await workflowService.deactivateWorkflow(user, workflowId, {
|
|
460
488
|
source: 'n8n-ai',
|
|
461
489
|
});
|
|
490
|
+
await notifyWorkflowUpdated(workflowId);
|
|
462
491
|
},
|
|
463
492
|
async getAsWorkflowJSON(workflowId, versionId) {
|
|
464
493
|
const wf = await workflowFinderService.findWorkflowForUser(workflowId, user, [
|
|
465
494
|
'workflow:read',
|
|
466
495
|
]);
|
|
467
496
|
if (!wf)
|
|
468
|
-
throw new
|
|
497
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
469
498
|
if (!versionId)
|
|
470
499
|
return toWorkflowJSON(wf, { redactParameters });
|
|
471
500
|
const version = await workflowHistoryService.getVersion(user, workflowId, versionId);
|
|
@@ -476,7 +505,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
476
505
|
'workflow:read',
|
|
477
506
|
]);
|
|
478
507
|
if (!head)
|
|
479
|
-
throw new
|
|
508
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
480
509
|
return { versionId: head.versionId, updatedAt: head.updatedAt.getTime() };
|
|
481
510
|
},
|
|
482
511
|
async getWorkflowSnapshot(workflowId) {
|
|
@@ -484,7 +513,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
484
513
|
'workflow:read',
|
|
485
514
|
]);
|
|
486
515
|
if (!wf)
|
|
487
|
-
throw new
|
|
516
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
488
517
|
return {
|
|
489
518
|
json: toWorkflowJSON(wf, { redactParameters }),
|
|
490
519
|
versionId: wf.versionId,
|
|
@@ -593,6 +622,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
593
622
|
},
|
|
594
623
|
async updateFromWorkflowJSON(workflowId, json, options) {
|
|
595
624
|
assertNotReadOnly();
|
|
625
|
+
await assertNotLockedByEditor(workflowId);
|
|
596
626
|
const settings = (json.settings ?? {});
|
|
597
627
|
if (settings.redactionPolicy !== undefined) {
|
|
598
628
|
const [existingWorkflow, ownerProject] = await Promise.all([
|
|
@@ -632,6 +662,9 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
632
662
|
if (error instanceof conflict_error_1.ConflictError) {
|
|
633
663
|
throw new instance_ai_1.WorkflowSaveConflictError(workflowId);
|
|
634
664
|
}
|
|
665
|
+
if (error instanceof not_found_error_1.NotFoundError) {
|
|
666
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
667
|
+
}
|
|
635
668
|
logger.warn('AI-builder workflow save failed', {
|
|
636
669
|
threadId,
|
|
637
670
|
workflowId,
|
|
@@ -646,6 +679,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
646
679
|
workflow_id: workflowId,
|
|
647
680
|
});
|
|
648
681
|
}
|
|
682
|
+
await notifyWorkflowUpdated(workflowId);
|
|
649
683
|
return await toWorkflowDetailWithChecksum(updated, { redactParameters });
|
|
650
684
|
},
|
|
651
685
|
async listVersions(workflowId, options) {
|
|
@@ -695,6 +729,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
695
729
|
};
|
|
696
730
|
},
|
|
697
731
|
async restoreVersion(workflowId, versionId) {
|
|
732
|
+
await assertNotLockedByEditor(workflowId);
|
|
698
733
|
const version = await workflowHistoryService.getVersion(user, workflowId, versionId);
|
|
699
734
|
const updateData = workflowRepository.create({
|
|
700
735
|
nodes: version.nodes,
|
|
@@ -704,6 +739,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
704
739
|
await workflowService.update(user, updateData, workflowId, {
|
|
705
740
|
source: 'n8n-ai',
|
|
706
741
|
});
|
|
742
|
+
await notifyWorkflowUpdated(workflowId);
|
|
707
743
|
},
|
|
708
744
|
...(this.license.isLicensed('feat:namedVersions')
|
|
709
745
|
? {
|
|
@@ -772,11 +808,11 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
772
808
|
'workflow:execute',
|
|
773
809
|
]);
|
|
774
810
|
if (!workflow) {
|
|
775
|
-
throw new
|
|
811
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
776
812
|
}
|
|
777
813
|
const nodes = workflow.nodes ?? [];
|
|
778
814
|
const triggerNode = options?.triggerNodeName
|
|
779
|
-
? (nodes
|
|
815
|
+
? resolveRequestedTriggerNode(nodes, options.triggerNodeName)
|
|
780
816
|
: findTriggerNode(nodes);
|
|
781
817
|
const timeoutMs = Math.min(options?.timeout ?? DEFAULT_TIMEOUT_MS, MAX_TIMEOUT_MS);
|
|
782
818
|
const connections = options?.omitConnections?.length
|
|
@@ -1134,10 +1170,10 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1134
1170
|
try {
|
|
1135
1171
|
const loaded = loadNodesAndCredentials.getNode(nodeName);
|
|
1136
1172
|
const nodeInstance = loaded.type;
|
|
1137
|
-
const
|
|
1138
|
-
? Object.values(nodeInstance.nodeVersions).
|
|
1139
|
-
: nodeInstance.description;
|
|
1140
|
-
const hasTestedBy = nodeDesc?.credentials?.some((cred) => cred.name === credentialType && cred.testedBy);
|
|
1173
|
+
const nodeDescriptions = 'nodeVersions' in nodeInstance
|
|
1174
|
+
? Object.values(nodeInstance.nodeVersions).map((version) => version.description)
|
|
1175
|
+
: [nodeInstance.description];
|
|
1176
|
+
const hasTestedBy = nodeDescriptions.some((nodeDesc) => nodeDesc?.credentials?.some((cred) => cred.name === credentialType && cred.testedBy));
|
|
1141
1177
|
if (hasTestedBy)
|
|
1142
1178
|
return true;
|
|
1143
1179
|
}
|
|
@@ -1288,13 +1324,10 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1288
1324
|
}
|
|
1289
1325
|
}
|
|
1290
1326
|
const raw = await credentialsService.decrypt(credential, true);
|
|
1291
|
-
const
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
if (identifier) {
|
|
1296
|
-
return { accountIdentifier: mask(identifier) };
|
|
1297
|
-
}
|
|
1327
|
+
const { extractAccountIdentifierFromData } = await import('../../oauth/account-identifier.js');
|
|
1328
|
+
const identifier = extractAccountIdentifierFromData(raw);
|
|
1329
|
+
if (identifier) {
|
|
1330
|
+
return { accountIdentifier: mask(identifier) };
|
|
1298
1331
|
}
|
|
1299
1332
|
return { accountIdentifier: undefined };
|
|
1300
1333
|
}
|
|
@@ -1310,6 +1343,14 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1310
1343
|
const config = await getGatewayConfig();
|
|
1311
1344
|
return config?.credentialTypes ?? [];
|
|
1312
1345
|
},
|
|
1346
|
+
async isManagedOAuthCredentialType(credType) {
|
|
1347
|
+
try {
|
|
1348
|
+
return await Promise.resolve(di_1.Container.get(credentials_overwrites_1.CredentialsOverwrites).isManagedOAuthType(credType));
|
|
1349
|
+
}
|
|
1350
|
+
catch {
|
|
1351
|
+
return false;
|
|
1352
|
+
}
|
|
1353
|
+
},
|
|
1313
1354
|
};
|
|
1314
1355
|
if (!credentialIdAllowlist)
|
|
1315
1356
|
return adapter;
|
|
@@ -1325,7 +1366,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1325
1366
|
const findWorkflow = async (workflowId, scope) => {
|
|
1326
1367
|
const workflow = await workflowFinderService.findWorkflowForUser(workflowId, user, [scope]);
|
|
1327
1368
|
if (!workflow) {
|
|
1328
|
-
throw new
|
|
1369
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
1329
1370
|
}
|
|
1330
1371
|
return workflow;
|
|
1331
1372
|
};
|
|
@@ -1706,7 +1747,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1706
1747
|
if (n.builderHint) {
|
|
1707
1748
|
result.builderHint = {};
|
|
1708
1749
|
if (n.builderHint.searchHint) {
|
|
1709
|
-
result.builderHint.
|
|
1750
|
+
result.builderHint.searchHint = n.builderHint.searchHint;
|
|
1710
1751
|
}
|
|
1711
1752
|
if (n.builderHint.inputs) {
|
|
1712
1753
|
const inputs = {};
|
|
@@ -1978,7 +2019,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1978
2019
|
'workflow:update',
|
|
1979
2020
|
]);
|
|
1980
2021
|
if (!workflow) {
|
|
1981
|
-
throw new
|
|
2022
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
1982
2023
|
}
|
|
1983
2024
|
await workflowService.update(user, workflow, workflowId, {
|
|
1984
2025
|
parentFolderId: folderId,
|
|
@@ -1993,7 +2034,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1993
2034
|
'workflow:update',
|
|
1994
2035
|
]);
|
|
1995
2036
|
if (!workflow) {
|
|
1996
|
-
throw new
|
|
2037
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
1997
2038
|
}
|
|
1998
2039
|
if (!(0, permissions_1.hasGlobalScope)(user, 'tag:list')) {
|
|
1999
2040
|
throw new Error('User does not have permission to list tags');
|
|
@@ -2039,7 +2080,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
2039
2080
|
'workflow:execute',
|
|
2040
2081
|
]);
|
|
2041
2082
|
if (!workflow) {
|
|
2042
|
-
throw new
|
|
2083
|
+
throw new instance_ai_1.WorkflowNotFoundError(workflowId);
|
|
2043
2084
|
}
|
|
2044
2085
|
const olderThanHours = options?.olderThanHours ?? 1;
|
|
2045
2086
|
const cutoff = new Date(Date.now() - olderThanHours * 60 * 60 * 1000);
|
|
@@ -2080,7 +2121,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
2080
2121
|
exports.InstanceAiAdapterService = InstanceAiAdapterService;
|
|
2081
2122
|
exports.InstanceAiAdapterService = InstanceAiAdapterService = __decorate([
|
|
2082
2123
|
(0, di_1.Service)(),
|
|
2083
|
-
__metadata("design:paramtypes", [backend_common_1.Logger, config_1.GlobalConfig, workflow_service_1.WorkflowService, workflow_finder_service_1.WorkflowFinderService, db_1.WorkflowRepository, db_1.SharedWorkflowRepository, db_1.ProjectRepository, db_1.ExecutionRepository, credentials_service_1.CredentialsService, credentials_finder_service_1.CredentialsFinderService, active_executions_1.ActiveExecutions, workflow_runner_1.WorkflowRunner, load_nodes_and_credentials_1.LoadNodesAndCredentials, node_types_1.NodeTypes, n8n_core_1.InstanceSettings, data_table_service_1.DataTableService, data_table_repository_1.DataTableRepository, node_resource_explorer_service_1.NodeResourceExplorerService, folder_service_1.FolderService, project_service_ee_1.ProjectService, tag_service_1.TagService,
|
|
2124
|
+
__metadata("design:paramtypes", [backend_common_1.Logger, config_1.GlobalConfig, workflow_service_1.WorkflowService, workflow_finder_service_1.WorkflowFinderService, db_1.WorkflowRepository, db_1.SharedWorkflowRepository, db_1.ProjectRepository, db_1.ExecutionRepository, credentials_service_1.CredentialsService, credentials_finder_service_1.CredentialsFinderService, active_executions_1.ActiveExecutions, workflow_runner_1.WorkflowRunner, load_nodes_and_credentials_1.LoadNodesAndCredentials, node_types_1.NodeTypes, n8n_core_1.InstanceSettings, data_table_service_1.DataTableService, data_table_repository_1.DataTableRepository, node_resource_explorer_service_1.NodeResourceExplorerService, folder_service_1.FolderService, project_service_ee_1.ProjectService, tag_service_1.TagService, instance_write_access_service_1.InstanceWriteAccessService, instance_ai_settings_service_1.InstanceAiSettingsService, workflow_history_service_1.WorkflowHistoryService, workflow_service_ee_1.EnterpriseWorkflowService, license_1.License, execution_persistence_1.ExecutionPersistence, event_service_1.EventService, role_service_1.RoleService, telemetry_1.Telemetry, db_1.AiBuilderTemporaryWorkflowRepository, backend_network_1.SsrfProtectionService, backend_network_1.OutboundHttp, ai_gateway_service_1.AiGatewayService, workflow_templates_service_1.WorkflowTemplatesService, collaboration_service_1.CollaborationService, node_catalog_1.NodeCatalogService, evaluation_config_service_1.EvaluationConfigService, llm_judge_provider_registry_1.LlmJudgeProviderRegistry])
|
|
2084
2125
|
], InstanceAiAdapterService);
|
|
2085
2126
|
const MAX_RESULT_CHARS = 20_000;
|
|
2086
2127
|
const MAX_NODE_OUTPUT_CHARS = 1_000;
|
|
@@ -2416,10 +2457,33 @@ const KNOWN_TRIGGER_TYPES = new Set([
|
|
|
2416
2457
|
n8n_workflow_1.SCHEDULE_TRIGGER_NODE_TYPE,
|
|
2417
2458
|
]);
|
|
2418
2459
|
function findTriggerNode(nodes) {
|
|
2419
|
-
const
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2460
|
+
const byPreference = [
|
|
2461
|
+
(n) => KNOWN_TRIGGER_TYPES.has(n.type),
|
|
2462
|
+
(n) => (0, n8n_workflow_1.isTriggerNodeType)(n.type),
|
|
2463
|
+
];
|
|
2464
|
+
for (const isEligible of byPreference) {
|
|
2465
|
+
const enabled = nodes.find((n) => isEligible(n) && !n.disabled);
|
|
2466
|
+
if (enabled)
|
|
2467
|
+
return enabled;
|
|
2468
|
+
}
|
|
2469
|
+
for (const isEligible of byPreference) {
|
|
2470
|
+
const anyTrigger = nodes.find((n) => isEligible(n));
|
|
2471
|
+
if (anyTrigger)
|
|
2472
|
+
return anyTrigger;
|
|
2473
|
+
}
|
|
2474
|
+
return undefined;
|
|
2475
|
+
}
|
|
2476
|
+
function resolveRequestedTriggerNode(nodes, triggerNodeName) {
|
|
2477
|
+
const requested = nodes.find((n) => n.name === triggerNodeName);
|
|
2478
|
+
if (requested && (0, n8n_workflow_1.isTriggerNodeType)(requested.type))
|
|
2479
|
+
return requested;
|
|
2480
|
+
const available = nodes.filter((n) => (0, n8n_workflow_1.isTriggerNodeType)(n.type)).map((n) => `"${n.name}"`);
|
|
2481
|
+
const reason = requested
|
|
2482
|
+
? `"${triggerNodeName}" is not a trigger node`
|
|
2483
|
+
: `Trigger node "${triggerNodeName}" not found in the workflow`;
|
|
2484
|
+
throw new n8n_workflow_1.UserError(`${reason}. ${available.length > 0
|
|
2485
|
+
? `Available trigger nodes: ${available.join(', ')}.`
|
|
2486
|
+
: 'This workflow has no trigger nodes.'}`);
|
|
2423
2487
|
}
|
|
2424
2488
|
function omitWorkflowConnections(connections, omit) {
|
|
2425
2489
|
const omitted = new Set(omit.map((edge) => `${edge.source}→${edge.target}`));
|