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
|
@@ -23,6 +23,7 @@ const event_service_1 = require("../../events/event.service");
|
|
|
23
23
|
const publication_status_reporter_1 = require("../../workflows/publication/publication-status-reporter");
|
|
24
24
|
const workflow_publication_lifecycle_lock_1 = require("../../workflows/publication/workflow-publication-lifecycle-lock");
|
|
25
25
|
const workflow_publication_applier_1 = require("../../workflows/publication/workflow-publication-applier");
|
|
26
|
+
const workflow_publication_outbox_worker_pool_1 = require("../../workflows/publication/workflow-publication-outbox-worker-pool");
|
|
26
27
|
const TIMED_OUT = Symbol('timed-out');
|
|
27
28
|
const ABORT_AFTER_LEASE_FRACTION = 0.7;
|
|
28
29
|
const ABANDON_GRACE_MS = 10 * constants_1.Time.seconds.toMilliseconds;
|
|
@@ -41,8 +42,13 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
|
|
|
41
42
|
this.eventService = eventService;
|
|
42
43
|
this.isPolling = false;
|
|
43
44
|
this.isShuttingDown = false;
|
|
44
|
-
this.activeDrain = null;
|
|
45
45
|
this.logger = this.logger.scoped('workflow-publication');
|
|
46
|
+
this.pool = new workflow_publication_outbox_worker_pool_1.WorkflowPublicationOutboxWorkerPool({
|
|
47
|
+
runPass: async () => await this.runWorkerPass(),
|
|
48
|
+
shouldRun: () => this.shouldKeepPolling(),
|
|
49
|
+
concurrency: this.workflowsConfig.workflowPublicationConcurrency,
|
|
50
|
+
onWorkerError: (error) => this.errorReporter.error(error, { shouldBeLogged: true }),
|
|
51
|
+
});
|
|
46
52
|
}
|
|
47
53
|
async init() {
|
|
48
54
|
if (!this.instanceSettings.isLeader)
|
|
@@ -70,7 +76,7 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
|
|
|
70
76
|
async shutdown() {
|
|
71
77
|
this.isShuttingDown = true;
|
|
72
78
|
this.stopPolling();
|
|
73
|
-
await this.
|
|
79
|
+
await this.pool.awaitIdle();
|
|
74
80
|
}
|
|
75
81
|
async wakeUp() {
|
|
76
82
|
if (!this.workflowsConfig.useWorkflowPublicationService)
|
|
@@ -78,72 +84,62 @@ let WorkflowPublicationOutboxConsumer = class WorkflowPublicationOutboxConsumer
|
|
|
78
84
|
if (!this.instanceSettings.isLeader)
|
|
79
85
|
return;
|
|
80
86
|
this.startPolling();
|
|
81
|
-
|
|
87
|
+
try {
|
|
88
|
+
await this.drainPending();
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
this.logger.debug('Publication outbox drain triggered by a wake-up failed', {
|
|
92
|
+
error: (0, ensure_error_1.ensureError)(error).message,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
82
95
|
}
|
|
83
96
|
schedulePollCycle() {
|
|
84
97
|
clearTimeout(this.pollTimeout);
|
|
85
98
|
if (!this.shouldKeepPolling())
|
|
86
99
|
return;
|
|
87
|
-
this.pollTimeout = setTimeout(
|
|
88
|
-
|
|
89
|
-
await this.pollCycle();
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
this.errorReporter.error(error, { shouldBeLogged: true });
|
|
93
|
-
}
|
|
100
|
+
this.pollTimeout = setTimeout(() => {
|
|
101
|
+
this.pool.topUp();
|
|
94
102
|
if (this.shouldKeepPolling())
|
|
95
103
|
this.schedulePollCycle();
|
|
96
104
|
}, this.workflowsConfig.publicationOutboxPollIntervalMs);
|
|
97
105
|
}
|
|
98
|
-
async pollCycle() {
|
|
99
|
-
const processed = await this.drainPending();
|
|
100
|
-
if (processed > 1) {
|
|
101
|
-
this.logger.debug(`Processed ${processed} workflow publication outbox records in this cycle`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
106
|
async drainPending() {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
finally {
|
|
113
|
-
this.activeDrain = null;
|
|
107
|
+
this.pool.topUp();
|
|
108
|
+
const error = await this.pool.awaitIdle();
|
|
109
|
+
if (error) {
|
|
110
|
+
throw new n8n_workflow_1.OperationalError('Workflow publication outbox drain failed', {
|
|
111
|
+
cause: error,
|
|
112
|
+
level: 'warning',
|
|
113
|
+
});
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
async
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
async runWorkerPass() {
|
|
117
|
+
if (!this.shouldKeepPolling())
|
|
118
|
+
return;
|
|
119
|
+
const first = await this.outboxRepository.claimNextPendingRecord();
|
|
120
|
+
if (!first)
|
|
121
|
+
return;
|
|
122
|
+
await this.tracing.startSpan({
|
|
119
123
|
name: 'Publication outbox drain',
|
|
120
124
|
op: 'publication.outbox.drain',
|
|
121
|
-
attributes: {
|
|
125
|
+
attributes: {
|
|
126
|
+
'n8n.publication.consumer_concurrency': this.workflowsConfig.workflowPublicationConcurrency,
|
|
127
|
+
},
|
|
122
128
|
}, async (span) => {
|
|
123
129
|
let processed = 0;
|
|
124
|
-
let
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
await runWorker().catch((error) => {
|
|
136
|
-
workerFailed = true;
|
|
137
|
-
throw error;
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
const results = await Promise.allSettled(workerTasks);
|
|
141
|
-
const failure = results.find((r) => r.status === 'rejected');
|
|
142
|
-
if (failure?.status === 'rejected')
|
|
143
|
-
throw failure.reason;
|
|
130
|
+
let record = first;
|
|
131
|
+
while (record) {
|
|
132
|
+
if (await this.processRecordWithAbort(record))
|
|
133
|
+
processed++;
|
|
134
|
+
record = this.shouldKeepPolling()
|
|
135
|
+
? await this.outboxRepository.claimNextPendingRecord()
|
|
136
|
+
: null;
|
|
137
|
+
}
|
|
138
|
+
if (processed > 1) {
|
|
139
|
+
this.logger.debug(`Processed ${processed} workflow publication outbox records in this pass`);
|
|
140
|
+
}
|
|
144
141
|
span.setAttribute('n8n.publication.records_processed', processed);
|
|
145
142
|
span.setStatus({ code: 1 });
|
|
146
|
-
return processed;
|
|
147
143
|
});
|
|
148
144
|
}
|
|
149
145
|
shouldKeepPolling() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-publication-outbox-consumer.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-outbox-consumer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA6C;AAC7C,wCAA8C;AAC9C,8CAAsC;AACtC,gCAAyF;AACzF,gDAA8E;AAC9E,gCAAkC;AAClC,uCAAgF;AAChF,iEAA6D;AAC7D,+CAAiE;AAEjE,0DAAsD;AAMtD,qGAAgG;AAChG,qHAA+G;AAC/G,uGAAkG;
|
|
1
|
+
{"version":3,"file":"workflow-publication-outbox-consumer.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-outbox-consumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface OutboxWorkerPoolOptions {
|
|
2
|
+
runPass: () => Promise<void>;
|
|
3
|
+
shouldRun: () => boolean;
|
|
4
|
+
concurrency: number;
|
|
5
|
+
onWorkerError: (error: Error) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare class WorkflowPublicationOutboxWorkerPool {
|
|
8
|
+
private readonly options;
|
|
9
|
+
private readonly activeWorkers;
|
|
10
|
+
private wakeRequested;
|
|
11
|
+
constructor(options: OutboxWorkerPoolOptions);
|
|
12
|
+
topUp(): void;
|
|
13
|
+
awaitIdle(): Promise<Error | null>;
|
|
14
|
+
private spawnWorker;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkflowPublicationOutboxWorkerPool = void 0;
|
|
4
|
+
const ensure_error_1 = require("@n8n/utils/errors/ensure-error");
|
|
5
|
+
class WorkflowPublicationOutboxWorkerPool {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
this.activeWorkers = new Set();
|
|
9
|
+
this.wakeRequested = false;
|
|
10
|
+
}
|
|
11
|
+
topUp() {
|
|
12
|
+
if (!this.options.shouldRun())
|
|
13
|
+
return;
|
|
14
|
+
const { concurrency } = this.options;
|
|
15
|
+
if (this.activeWorkers.size >= concurrency) {
|
|
16
|
+
this.wakeRequested = true;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
while (this.activeWorkers.size < concurrency)
|
|
20
|
+
this.spawnWorker();
|
|
21
|
+
}
|
|
22
|
+
async awaitIdle() {
|
|
23
|
+
let error = null;
|
|
24
|
+
while (this.activeWorkers.size > 0) {
|
|
25
|
+
const outcomes = await Promise.all([...this.activeWorkers]);
|
|
26
|
+
error ??= outcomes.find((outcome) => outcome !== null) ?? null;
|
|
27
|
+
}
|
|
28
|
+
return error;
|
|
29
|
+
}
|
|
30
|
+
spawnWorker() {
|
|
31
|
+
const worker = this.options
|
|
32
|
+
.runPass()
|
|
33
|
+
.then(() => null, (error) => {
|
|
34
|
+
const failure = (0, ensure_error_1.ensureError)(error);
|
|
35
|
+
this.options.onWorkerError(failure);
|
|
36
|
+
return failure;
|
|
37
|
+
})
|
|
38
|
+
.finally(() => {
|
|
39
|
+
this.activeWorkers.delete(worker);
|
|
40
|
+
if (this.wakeRequested) {
|
|
41
|
+
this.wakeRequested = false;
|
|
42
|
+
if (this.options.shouldRun())
|
|
43
|
+
this.spawnWorker();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
this.activeWorkers.add(worker);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.WorkflowPublicationOutboxWorkerPool = WorkflowPublicationOutboxWorkerPool;
|
|
50
|
+
//# sourceMappingURL=workflow-publication-outbox-worker-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-publication-outbox-worker-pool.js","sourceRoot":"","sources":["../../../src/workflows/publication/workflow-publication-outbox-worker-pool.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAoB7D;IAWC,YAA6B,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;QAP5C,kBAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;QAK1D,kBAAa,GAAG,KAAK,CAAC;IAEkC,CAAC;IAOjE,KAAK;QACJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAAE,OAAO;QAEtC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACrC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;YAG5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO;QACR,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,WAAW;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IAKD,KAAK,CAAC,SAAS;QACd,IAAI,KAAK,GAAiB,IAAI,CAAC;QAG/B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5D,KAAK,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;QAChE,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,WAAW;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;aACzB,OAAO,EAAE;aACT,IAAI,CACJ,GAAG,EAAE,CAAC,IAAI,EACV,CAAC,KAAK,EAAE,EAAE;YACT,MAAM,OAAO,GAAG,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC;QAChB,CAAC,CACD;aACA,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;oBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YAClD,CAAC;QACF,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;CACD"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Logger } from '@n8n/backend-common';
|
|
2
|
+
import { PollerStateRepository, WorkflowRepository } from '@n8n/db';
|
|
3
|
+
import { NodeTypes } from '../../node-types';
|
|
4
|
+
import { Telemetry } from '../../telemetry';
|
|
5
|
+
import { WorkflowPublishedDataService } from '../workflow-published-data.service';
|
|
6
|
+
import { WorkflowValidationService } from '../workflow-validation.service';
|
|
7
|
+
export declare class DurablePollerGateService {
|
|
8
|
+
private readonly logger;
|
|
9
|
+
private readonly workflowRepository;
|
|
10
|
+
private readonly workflowPublishedDataService;
|
|
11
|
+
private readonly workflowValidationService;
|
|
12
|
+
private readonly nodeTypes;
|
|
13
|
+
private readonly pollerStateRepository;
|
|
14
|
+
private readonly telemetry;
|
|
15
|
+
private allowed_;
|
|
16
|
+
get allowed(): boolean;
|
|
17
|
+
constructor(logger: Logger, workflowRepository: WorkflowRepository, workflowPublishedDataService: WorkflowPublishedDataService, workflowValidationService: WorkflowValidationService, nodeTypes: NodeTypes, pollerStateRepository: PollerStateRepository, telemetry: Telemetry);
|
|
18
|
+
init(): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
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.DurablePollerGateService = void 0;
|
|
13
|
+
const backend_common_1 = require("@n8n/backend-common");
|
|
14
|
+
const db_1 = require("@n8n/db");
|
|
15
|
+
const di_1 = require("@n8n/di");
|
|
16
|
+
const telemetry_1 = require("@n8n/telemetry");
|
|
17
|
+
const ensure_error_1 = require("@n8n/utils/errors/ensure-error");
|
|
18
|
+
const node_types_1 = require("../../node-types");
|
|
19
|
+
const telemetry_2 = require("../../telemetry");
|
|
20
|
+
const workflow_published_data_service_1 = require("../workflow-published-data.service");
|
|
21
|
+
const workflow_validation_service_1 = require("../workflow-validation.service");
|
|
22
|
+
const enabled_trigger_nodes_1 = require("./enabled-trigger-nodes");
|
|
23
|
+
let DurablePollerGateService = class DurablePollerGateService {
|
|
24
|
+
get allowed() {
|
|
25
|
+
return this.allowed_;
|
|
26
|
+
}
|
|
27
|
+
constructor(logger, workflowRepository, workflowPublishedDataService, workflowValidationService, nodeTypes, pollerStateRepository, telemetry) {
|
|
28
|
+
this.logger = logger;
|
|
29
|
+
this.workflowRepository = workflowRepository;
|
|
30
|
+
this.workflowPublishedDataService = workflowPublishedDataService;
|
|
31
|
+
this.workflowValidationService = workflowValidationService;
|
|
32
|
+
this.nodeTypes = nodeTypes;
|
|
33
|
+
this.pollerStateRepository = pollerStateRepository;
|
|
34
|
+
this.telemetry = telemetry;
|
|
35
|
+
this.allowed_ = false;
|
|
36
|
+
this.logger = this.logger.scoped('poll-trigger');
|
|
37
|
+
}
|
|
38
|
+
async init() {
|
|
39
|
+
const ids = await this.workflowRepository.getActiveIds();
|
|
40
|
+
const offenders = [];
|
|
41
|
+
const unscannable = [];
|
|
42
|
+
for (const id of ids) {
|
|
43
|
+
try {
|
|
44
|
+
const data = await this.workflowPublishedDataService.getPublishedWorkflowData(id);
|
|
45
|
+
if (data === null) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const triggerNodes = (0, enabled_trigger_nodes_1.getEnabledTriggerNodes)(data.publishedVersion, this.nodeTypes);
|
|
49
|
+
const result = this.workflowValidationService.validateTriggerNodeIds(triggerNodes);
|
|
50
|
+
if (!result.isValid) {
|
|
51
|
+
offenders.push({ workflowId: id, detail: result.error ?? 'invalid trigger node ids' });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
unscannable.push({ workflowId: id, detail: (0, ensure_error_1.ensureError)(error).message });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
this.allowed_ = offenders.length === 0 && unscannable.length === 0;
|
|
59
|
+
if (unscannable.length > 0) {
|
|
60
|
+
this.logger.error(`Durable pollers are disabled on this instance: active workflows [${unscannable.map(({ workflowId }) => workflowId).join(', ')}] could not be scanned for duplicate trigger node ids. Fix the reported error, e.g. by installing the missing node package, then restart.`, { unscannable });
|
|
61
|
+
}
|
|
62
|
+
if (offenders.length > 0) {
|
|
63
|
+
const workflowIds = offenders.map(({ workflowId }) => workflowId);
|
|
64
|
+
const deletedCursorRows = await this.pollerStateRepository.deleteWorkflowCursors(workflowIds);
|
|
65
|
+
this.logger.error(`Durable pollers are disabled on this instance: active workflows [${workflowIds.join(', ')}] have duplicate or missing trigger node ids in their published version. Re-publish them after removing and re-adding the affected trigger nodes.`, { offenders, deletedCursorRows });
|
|
66
|
+
this.telemetry.track(telemetry_1.TELEMETRY_EVENT.INSTANCE.INSTANCE_REFUSED_DURABLE_POLLERS, {
|
|
67
|
+
workflow_ids: workflowIds,
|
|
68
|
+
deleted_cursor_rows: deletedCursorRows,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.DurablePollerGateService = DurablePollerGateService;
|
|
74
|
+
exports.DurablePollerGateService = DurablePollerGateService = __decorate([
|
|
75
|
+
(0, di_1.Service)(),
|
|
76
|
+
__metadata("design:paramtypes", [backend_common_1.Logger, db_1.WorkflowRepository, workflow_published_data_service_1.WorkflowPublishedDataService, workflow_validation_service_1.WorkflowValidationService, node_types_1.NodeTypes, db_1.PollerStateRepository, telemetry_2.Telemetry])
|
|
77
|
+
], DurablePollerGateService);
|
|
78
|
+
//# sourceMappingURL=durable-poller-gate.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-poller-gate.service.js","sourceRoot":"","sources":["../../../src/workflows/triggers/durable-poller-gate.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IConnections, INode, INodeTypes } from 'n8n-workflow';
|
|
2
|
+
export type WorkflowTriggerVersion = {
|
|
3
|
+
nodes: INode[];
|
|
4
|
+
connections: IConnections;
|
|
5
|
+
};
|
|
6
|
+
export declare function getEnabledTriggerNodes(version: WorkflowTriggerVersion | null, nodeTypes: INodeTypes): INode[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEnabledTriggerNodes = getEnabledTriggerNodes;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
function getEnabledTriggerNodes(version, nodeTypes) {
|
|
6
|
+
if (!version)
|
|
7
|
+
return [];
|
|
8
|
+
const workflow = new n8n_workflow_1.Workflow({
|
|
9
|
+
id: 'trigger-diff',
|
|
10
|
+
name: 'trigger-diff',
|
|
11
|
+
nodes: version.nodes,
|
|
12
|
+
connections: version.connections,
|
|
13
|
+
active: false,
|
|
14
|
+
nodeTypes,
|
|
15
|
+
});
|
|
16
|
+
return workflow.queryNodes((nodeType) => !!nodeType.trigger || !!nodeType.poll || !!nodeType.webhook);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=enabled-trigger-nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enabled-trigger-nodes.js","sourceRoot":"","sources":["../../../src/workflows/triggers/enabled-trigger-nodes.ts"],"names":[],"mappings":";;;AACA,+CAAwC;AAgBxC,gCACC,OAAsC,EACtC,SAAqB;IAErB,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,QAAQ,GAAG,IAAI,uBAAQ,CAAC;QAC7B,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,KAAK;QACb,SAAS;KACT,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,UAAU,CACzB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CACzE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PollerConfig } from '@n8n/config';
|
|
2
|
+
import type { CreateExecutionPayload, PollLeaseFence } from '@n8n/db';
|
|
3
|
+
import { PollerStateRepository, TransactionRunner } from '@n8n/db';
|
|
4
|
+
import type { PollCursor } from 'n8n-workflow';
|
|
5
|
+
import { EventService } from '../../events/event.service';
|
|
6
|
+
import { ExecutionPersistence } from '../../executions/execution-persistence';
|
|
7
|
+
import { DurablePollerGateService } from './durable-poller-gate.service';
|
|
8
|
+
export declare class PollCursorService {
|
|
9
|
+
private readonly pollerStateRepository;
|
|
10
|
+
private readonly transactionRunner;
|
|
11
|
+
private readonly executionPersistence;
|
|
12
|
+
private readonly pollerConfig;
|
|
13
|
+
private readonly durablePollerGateService;
|
|
14
|
+
private readonly eventService;
|
|
15
|
+
constructor(pollerStateRepository: PollerStateRepository, transactionRunner: TransactionRunner, executionPersistence: ExecutionPersistence, pollerConfig: PollerConfig, durablePollerGateService: DurablePollerGateService, eventService: EventService);
|
|
16
|
+
private measureCommit;
|
|
17
|
+
get enabled(): boolean;
|
|
18
|
+
resolveCursor(workflowId: string, nodeId: string, nodeStaticData: PollCursor): Promise<{
|
|
19
|
+
migrated: true;
|
|
20
|
+
cursor: PollCursor;
|
|
21
|
+
} | {
|
|
22
|
+
migrated: false;
|
|
23
|
+
}>;
|
|
24
|
+
commitWithExecution(args: {
|
|
25
|
+
workflowId: string;
|
|
26
|
+
nodeId: string;
|
|
27
|
+
cursor: PollCursor;
|
|
28
|
+
payload: CreateExecutionPayload;
|
|
29
|
+
fence?: PollLeaseFence;
|
|
30
|
+
}): Promise<{
|
|
31
|
+
executionId: string;
|
|
32
|
+
} | null>;
|
|
33
|
+
commitCursorOnly(args: {
|
|
34
|
+
workflowId: string;
|
|
35
|
+
nodeId: string;
|
|
36
|
+
cursor: PollCursor;
|
|
37
|
+
fence?: PollLeaseFence;
|
|
38
|
+
}): Promise<boolean>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
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.PollCursorService = void 0;
|
|
13
|
+
const config_1 = require("@n8n/config");
|
|
14
|
+
const db_1 = require("@n8n/db");
|
|
15
|
+
const di_1 = require("@n8n/di");
|
|
16
|
+
const event_service_1 = require("../../events/event.service");
|
|
17
|
+
const execution_persistence_1 = require("../../executions/execution-persistence");
|
|
18
|
+
const durable_poller_gate_service_1 = require("./durable-poller-gate.service");
|
|
19
|
+
const toPollCursor = (cursor) => cursor;
|
|
20
|
+
let PollCursorService = class PollCursorService {
|
|
21
|
+
constructor(pollerStateRepository, transactionRunner, executionPersistence, pollerConfig, durablePollerGateService, eventService) {
|
|
22
|
+
this.pollerStateRepository = pollerStateRepository;
|
|
23
|
+
this.transactionRunner = transactionRunner;
|
|
24
|
+
this.executionPersistence = executionPersistence;
|
|
25
|
+
this.pollerConfig = pollerConfig;
|
|
26
|
+
this.durablePollerGateService = durablePollerGateService;
|
|
27
|
+
this.eventService = eventService;
|
|
28
|
+
}
|
|
29
|
+
async measureCommit(operation, commit) {
|
|
30
|
+
const startedAt = performance.now();
|
|
31
|
+
const emitSettled = (result) => {
|
|
32
|
+
try {
|
|
33
|
+
this.eventService.emit('poll-cursor-commit-settled', {
|
|
34
|
+
operation,
|
|
35
|
+
result,
|
|
36
|
+
durationMs: performance.now() - startedAt,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
try {
|
|
43
|
+
const { value, advanced } = await commit();
|
|
44
|
+
emitSettled(advanced ? 'success' : 'fence_rejected');
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
emitSettled('failure');
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
get enabled() {
|
|
53
|
+
return this.pollerConfig.durableCursorsEnabled && this.durablePollerGateService.allowed;
|
|
54
|
+
}
|
|
55
|
+
async resolveCursor(workflowId, nodeId, nodeStaticData) {
|
|
56
|
+
if (!this.enabled) {
|
|
57
|
+
const existing = await this.pollerStateRepository.findCursor(workflowId, nodeId);
|
|
58
|
+
if (existing === null) {
|
|
59
|
+
return { migrated: false };
|
|
60
|
+
}
|
|
61
|
+
return { migrated: true, cursor: toPollCursor(existing) };
|
|
62
|
+
}
|
|
63
|
+
const stored = await this.transactionRunner.run({}, async (ctx) => await this.pollerStateRepository.getOrCreateCursor(workflowId, nodeId, nodeStaticData, ctx));
|
|
64
|
+
return { migrated: true, cursor: toPollCursor(stored) };
|
|
65
|
+
}
|
|
66
|
+
async commitWithExecution(args) {
|
|
67
|
+
const { workflowId, nodeId, cursor, payload, fence } = args;
|
|
68
|
+
return await this.measureCommit('with_execution', async () => {
|
|
69
|
+
if (this.enabled) {
|
|
70
|
+
return await this.transactionRunner.run({}, async (ctx) => {
|
|
71
|
+
const advanced = await this.pollerStateRepository.advanceCursor(workflowId, nodeId, cursor, ctx, fence);
|
|
72
|
+
if (advanced) {
|
|
73
|
+
const executionId = await this.executionPersistence.create(payload, ctx);
|
|
74
|
+
return { value: { executionId }, advanced };
|
|
75
|
+
}
|
|
76
|
+
return { value: null, advanced };
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const advanced = await this.pollerStateRepository.advanceCursor(workflowId, nodeId, cursor, {}, fence);
|
|
80
|
+
if (advanced) {
|
|
81
|
+
const executionId = await this.executionPersistence.create(payload, {});
|
|
82
|
+
return { value: { executionId }, advanced };
|
|
83
|
+
}
|
|
84
|
+
return { value: null, advanced };
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
async commitCursorOnly(args) {
|
|
88
|
+
const { workflowId, nodeId, cursor, fence } = args;
|
|
89
|
+
return await this.measureCommit('cursor_only', async () => {
|
|
90
|
+
const advanced = await this.pollerStateRepository.advanceCursor(workflowId, nodeId, cursor, {}, fence);
|
|
91
|
+
return { value: advanced, advanced };
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
exports.PollCursorService = PollCursorService;
|
|
96
|
+
exports.PollCursorService = PollCursorService = __decorate([
|
|
97
|
+
(0, di_1.Service)(),
|
|
98
|
+
__metadata("design:paramtypes", [db_1.PollerStateRepository, db_1.TransactionRunner, execution_persistence_1.ExecutionPersistence, config_1.PollerConfig, durable_poller_gate_service_1.DurablePollerGateService, event_service_1.EventService])
|
|
99
|
+
], PollCursorService);
|
|
100
|
+
//# sourceMappingURL=poll-cursor.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll-cursor.service.js","sourceRoot":"","sources":["../../../src/workflows/triggers/poll-cursor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Logger } from '@n8n/backend-common';
|
|
2
|
-
import type { IWorkflowDb } from '@n8n/db';
|
|
2
|
+
import type { IWorkflowDb, PollLeaseFence } from '@n8n/db';
|
|
3
3
|
import { ErrorReporter, StorageConfig, type IGetExecutePollFunctions, type IGetExecuteTriggerFunctions } from 'n8n-core';
|
|
4
4
|
import type { ExecutionError, INode, IPollFunctions, IWorkflowBase, IWorkflowExecuteAdditionalData, WorkflowActivateMode, WorkflowExecuteMode } from 'n8n-workflow';
|
|
5
5
|
import { Workflow } from 'n8n-workflow';
|
|
@@ -10,6 +10,7 @@ import { NodeTypes } from '../../node-types';
|
|
|
10
10
|
import type { ScheduleTriggerCollectionSession } from '../../scheduling/schedule-trigger-node/schedule-trigger-job-registrar';
|
|
11
11
|
import { ScheduleTriggerJobRegistrar } from '../../scheduling/schedule-trigger-node/schedule-trigger-job-registrar';
|
|
12
12
|
import { OwnershipService } from '../../services/ownership.service';
|
|
13
|
+
import { PollCursorService } from '../../workflows/triggers/poll-cursor.service';
|
|
13
14
|
import { WorkflowExecutionService } from '../../workflows/workflow-execution.service';
|
|
14
15
|
import { WorkflowPublishedDataService } from '../../workflows/workflow-published-data.service';
|
|
15
16
|
import { WorkflowStaticDataService } from '../../workflows/workflow-static-data.service';
|
|
@@ -33,13 +34,14 @@ export declare class TriggerExecutionContextFactory {
|
|
|
33
34
|
private readonly scheduleTriggerJobRegistrar;
|
|
34
35
|
private readonly ownershipService;
|
|
35
36
|
private readonly nodeTypes;
|
|
36
|
-
|
|
37
|
+
private readonly pollCursorService;
|
|
38
|
+
constructor(logger: Logger, errorReporter: ErrorReporter, activeExecutions: ActiveExecutions, eventService: EventService, executionService: ExecutionService, workflowStaticDataService: WorkflowStaticDataService, workflowExecutionService: WorkflowExecutionService, storageConfig: StorageConfig, workflowPublishedDataService: WorkflowPublishedDataService, scheduleTriggerJobRegistrar: ScheduleTriggerJobRegistrar, ownershipService: OwnershipService, nodeTypes: NodeTypes, pollCursorService: PollCursorService);
|
|
37
39
|
private settleDonePromise;
|
|
38
40
|
private logTriggerExecutionFailure;
|
|
39
41
|
private recordTriggerFailure;
|
|
40
42
|
getExecuteTriggerFunctions(workflowData: IWorkflowDb, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode, resolveWorkflowData: () => Promise<IWorkflowBase>, onTriggerFailure: TriggerFailureHandler, scheduleCollectionSession: ScheduleTriggerCollectionSession): IGetExecuteTriggerFunctions;
|
|
41
|
-
getExecutePollFunctions(workflowData: IWorkflowBase, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode, resolveWorkflowData: () => Promise<IWorkflowBase
|
|
42
|
-
createPollExecutionContext(workflowData: IWorkflowBase, node: INode): Promise<{
|
|
43
|
+
getExecutePollFunctions(workflowData: IWorkflowBase, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode, resolveWorkflowData: () => Promise<IWorkflowBase>, fence?: PollLeaseFence): IGetExecutePollFunctions;
|
|
44
|
+
createPollExecutionContext(workflowData: IWorkflowBase, node: INode, fence?: PollLeaseFence): Promise<{
|
|
43
45
|
workflow: Workflow;
|
|
44
46
|
pollFunctions: IPollFunctions;
|
|
45
47
|
}>;
|