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
|
@@ -29,136 +29,158 @@
|
|
|
29
29
|
--color-icon-text: #6a5bdd;
|
|
30
30
|
--border-radius-card: 8px;
|
|
31
31
|
--border-radius-input: 6px;
|
|
32
|
-
--container-width
|
|
32
|
+
/* Matches the form card's own --container-width so the panel and the card
|
|
33
|
+
line up edge to edge; the narrow-viewport rule below mirrors the form's. */
|
|
34
|
+
--container-width: 448px;
|
|
33
35
|
--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);
|
|
34
36
|
--box-shadow-dialog: 0px 12px 48px rgba(0, 0, 0, 0.18);
|
|
35
37
|
}
|
|
36
38
|
*, ::before, ::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
37
39
|
body { font-family: var(--font-family); background: var(--color-background); min-height: 100vh; }
|
|
38
40
|
.shell { width: 100%; padding-top: 24px; }
|
|
39
|
-
|
|
40
|
-
.req-card, .req-strip { width: var(--container-width); max-width: calc(100vw - 32px); margin: 0 auto 16px; }
|
|
41
|
+
.req-card, .req-summary { width: var(--container-width); margin: 0 auto 16px; }
|
|
41
42
|
|
|
42
|
-
/* ---
|
|
43
|
+
/* --- Single-account panel: the credential row connects directly --- */
|
|
43
44
|
.req-card {
|
|
44
45
|
background: var(--color-card-bg);
|
|
45
46
|
border: 1px solid var(--color-card-border);
|
|
46
47
|
border-radius: var(--border-radius-card);
|
|
47
48
|
box-shadow: var(--box-shadow-card);
|
|
48
|
-
padding: 20px;
|
|
49
|
+
padding: 8px 20px;
|
|
49
50
|
}
|
|
50
|
-
.req-title { font-size: 15px; font-weight: 600; color: var(--color-header); }
|
|
51
|
-
.req-sub { font-size: 13px; color: var(--color-muted); margin-top: 4px; margin-bottom: 14px; }
|
|
52
51
|
|
|
53
|
-
/* ---
|
|
54
|
-
.req-
|
|
52
|
+
/* --- Summary line (two or more accounts, details behind the dialog) --- */
|
|
53
|
+
.req-summary {
|
|
55
54
|
display: flex;
|
|
56
55
|
align-items: center;
|
|
57
|
-
gap:
|
|
56
|
+
gap: 12px;
|
|
58
57
|
background: var(--color-card-bg);
|
|
59
58
|
border: 1px solid var(--color-card-border);
|
|
60
59
|
border-radius: var(--border-radius-card);
|
|
61
60
|
box-shadow: var(--box-shadow-card);
|
|
62
|
-
padding:
|
|
61
|
+
padding: 14px 18px;
|
|
63
62
|
}
|
|
64
|
-
.
|
|
65
|
-
.
|
|
66
|
-
.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
.strip-meta { flex: 1; min-width: 0; }
|
|
72
|
-
.strip-title { font-size: 14px; font-weight: 600; color: var(--color-header); }
|
|
73
|
-
.strip-count { font-size: 13px; color: var(--color-muted); margin-top: 2px; }
|
|
63
|
+
.summary-icon { display: flex; flex-shrink: 0; color: var(--color-muted); }
|
|
64
|
+
.summary-icon svg { display: block; }
|
|
65
|
+
.summary-icon .icon-ok, .req-summary.all-connected .summary-icon .icon-pending { display: none; }
|
|
66
|
+
.req-summary.all-connected .summary-icon { color: var(--color-ok); }
|
|
67
|
+
.req-summary.all-connected .summary-icon .icon-ok { display: block; }
|
|
68
|
+
.summary-text { flex: 1; min-width: 0; font-size: 13px; color: var(--color-header); }
|
|
74
69
|
|
|
75
|
-
/* --- Credential row (shared by
|
|
70
|
+
/* --- Credential row (shared by the single-account panel + dialog) --- */
|
|
76
71
|
.cred-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; }
|
|
77
|
-
.req-card .cred-row + .cred-row,
|
|
78
|
-
.dialog .cred-row + .cred-row { border-top: 1px solid #f0f1f4; }
|
|
79
72
|
.cred-icon {
|
|
80
73
|
width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
|
|
81
74
|
background: var(--color-icon-bg); color: var(--color-icon-text);
|
|
82
75
|
font-size: 13px; font-weight: 600; display: flex; align-items: center; justify-content: center;
|
|
83
76
|
}
|
|
77
|
+
/* Provider icon, served unauthenticated from /icons/** on this same origin. */
|
|
78
|
+
img.cred-icon { background: none; object-fit: contain; }
|
|
84
79
|
.cred-meta { flex: 1; min-width: 0; }
|
|
85
80
|
.cred-name { display: block; font-size: 14px; font-weight: 600; color: var(--color-label); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
81
|
+
/* Stays muted when connected — the green lives on the row's control, not the copy. */
|
|
86
82
|
.cred-sub { display: block; font-size: 12px; color: var(--color-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
87
|
-
.cred-sub.connected { color: var(--color-ok); }
|
|
88
83
|
|
|
89
84
|
/* --- Buttons --- */
|
|
90
85
|
.btn {
|
|
91
86
|
font-family: var(--font-family); font-size: 13px; font-weight: 600;
|
|
92
87
|
padding: 8px 16px; border-radius: var(--border-radius-input); border: 1px solid transparent; cursor: pointer;
|
|
88
|
+
flex-shrink: 0;
|
|
93
89
|
}
|
|
94
90
|
.btn-primary { background: var(--color-primary); color: var(--color-primary-text); }
|
|
95
91
|
.btn-primary:hover { opacity: 0.88; }
|
|
96
92
|
.btn-secondary { background: var(--color-card-bg); color: var(--color-label); border-color: var(--color-card-border); }
|
|
97
93
|
.btn-secondary:hover { border-color: var(--color-muted); }
|
|
94
|
+
/* Connect (primary) while accounts are outstanding; Manage (quiet) once they're all in. */
|
|
95
|
+
#open-dialog { display: inline-flex; align-items: center; gap: 6px; }
|
|
96
|
+
#open-dialog .dot { display: none; width: 7px; height: 7px; border-radius: 50%; background: var(--color-ok); }
|
|
97
|
+
.req-summary.all-connected #open-dialog { background: var(--color-card-bg); color: var(--color-label); border-color: var(--color-card-border); }
|
|
98
|
+
.req-summary.all-connected #open-dialog:hover { opacity: 1; border-color: var(--color-muted); }
|
|
99
|
+
.req-summary.all-connected #open-dialog .dot { display: block; }
|
|
98
100
|
.cred-connected { position: relative; }
|
|
99
|
-
|
|
101
|
+
/* Bordered like the Connect button it replaces, so the row's control keeps its shape. */
|
|
102
|
+
.btn-connected {
|
|
103
|
+
display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
|
|
104
|
+
background: var(--color-card-bg); border: 1px solid var(--color-card-border); border-radius: var(--border-radius-input);
|
|
105
|
+
color: var(--color-label); font-family: var(--font-family); font-size: 13px; font-weight: 600; padding: 8px 12px;
|
|
106
|
+
}
|
|
107
|
+
.btn-connected:hover { border-color: var(--color-muted); }
|
|
108
|
+
.btn-connected .caret { color: var(--color-muted); }
|
|
100
109
|
.btn-connected .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-ok); }
|
|
101
110
|
/* Fixed so the menu escapes the dialog's overflow clipping; positioned by JS. */
|
|
102
111
|
.cred-menu { display: none; position: fixed; min-width: 150px; background: var(--color-card-bg); border: 1px solid var(--color-card-border); border-radius: 6px; box-shadow: var(--box-shadow-dialog); z-index: 30; }
|
|
103
112
|
.cred-menu.open { display: block; }
|
|
104
113
|
.btn-disconnect { display: block; width: 100%; text-align: left; white-space: nowrap; background: none; border: 0; padding: 8px 14px; font-family: var(--font-family); font-size: 13px; color: #a02f28; cursor: pointer; }
|
|
105
114
|
.btn-disconnect:hover { background: #fdeceb; }
|
|
106
|
-
.cred-status-ok { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--color-ok); white-space: nowrap; }
|
|
107
|
-
.cred-status-ok .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--color-ok); }
|
|
108
115
|
.cred-blocked { font-size: 13px; color: var(--color-muted); }
|
|
109
116
|
|
|
110
117
|
/* --- Dialog --- */
|
|
111
118
|
.overlay { display: none; position: fixed; inset: 0; background: rgba(20, 20, 30, 0.28); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); align-items: center; justify-content: center; z-index: 10; padding: 16px; }
|
|
112
119
|
.overlay.open { display: flex; }
|
|
113
|
-
.dialog { width:
|
|
120
|
+
.dialog { width: 448px; max-width: 100%; max-height: calc(100vh - 48px); display: flex; flex-direction: column; background: var(--color-card-bg); border-radius: 12px; box-shadow: var(--box-shadow-dialog); overflow: hidden; }
|
|
114
121
|
.dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px 8px; }
|
|
115
122
|
.dialog-title { font-size: 16px; font-weight: 600; color: var(--color-header); }
|
|
116
123
|
.dialog-close { background: none; border: 0; font-size: 20px; line-height: 1; color: var(--color-muted); cursor: pointer; }
|
|
117
|
-
.dialog-sub { padding: 0 20px
|
|
124
|
+
.dialog-sub { padding: 0 20px 16px; font-size: 13px; color: var(--color-muted); }
|
|
118
125
|
.dialog-list { padding: 0 20px; overflow-y: auto; }
|
|
119
126
|
.dialog-foot { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-top: 1px solid #f0f1f4; }
|
|
120
127
|
.dialog-count { font-size: 13px; color: var(--color-muted); }
|
|
121
128
|
|
|
122
129
|
/* --- The form itself, unchanged, in a null-origin sandboxed iframe --- */
|
|
123
130
|
#form-frame { display: block; width: 100%; height: calc(100vh - 40px); border: 0; background: transparent; }
|
|
131
|
+
|
|
132
|
+
/* Mirrors the form card's own narrow-viewport width so the edges stay aligned. */
|
|
133
|
+
@media only screen and (max-width: 500px) {
|
|
134
|
+
.req-card, .req-summary { width: 95%; }
|
|
135
|
+
}
|
|
124
136
|
</style>
|
|
125
137
|
</head>
|
|
126
138
|
|
|
127
139
|
<body>
|
|
140
|
+
{{#*inline "credRow"}}
|
|
141
|
+
<div
|
|
142
|
+
class='cred-row'
|
|
143
|
+
data-cred-id='{{id}}'
|
|
144
|
+
data-status='{{status}}'
|
|
145
|
+
data-resolver-id='{{resolverId}}'
|
|
146
|
+
data-not-connected-text='{{notConnectedText}}'
|
|
147
|
+
{{#if connected}} data-connected='true'{{/if}}
|
|
148
|
+
{{#if revokeUrl}} data-revoke-url='{{revokeUrl}}'{{/if}}
|
|
149
|
+
>
|
|
150
|
+
{{!-- The provider icon when it resolved server-side, else the letter tile. --}}
|
|
151
|
+
{{#if iconUrl}}
|
|
152
|
+
<img class='cred-icon cred-icon-img' src='{{iconUrl}}' alt='' data-initial='{{initial}}' />
|
|
153
|
+
{{else}}
|
|
154
|
+
<span class='cred-icon'>{{initial}}</span>
|
|
155
|
+
{{/if}}
|
|
156
|
+
<span class='cred-meta'>
|
|
157
|
+
<span class='cred-name'>{{name}}</span>
|
|
158
|
+
<span class='cred-sub'>{{#if connected}}{{#if account}}Connected as {{account}}{{else}}Connected{{/if}}{{else}}{{notConnectedText}}{{/if}}{{#if usedBy}} · used by {{usedBy}}{{/if}}</span>
|
|
159
|
+
</span>
|
|
160
|
+
{{#if connected}}
|
|
161
|
+
<span class='cred-connected'><button type='button' class='btn-connected'><span class='dot'></span> Connected <span class='caret'>▾</span></button><div class='cred-menu'><button type='button' class='btn-disconnect'>Disconnect</button></div></span>
|
|
162
|
+
{{else if authorizationUrl}}
|
|
163
|
+
<button class='btn btn-secondary connect' data-url='{{authorizationUrl}}'>{{#if (eq status 'expired')}}Reconnect{{else}}Connect{{/if}}</button>
|
|
164
|
+
{{else}}
|
|
165
|
+
<span class='cred-blocked'>Ask the form owner</span>
|
|
166
|
+
{{/if}}
|
|
167
|
+
</div>
|
|
168
|
+
{{/inline}}
|
|
169
|
+
|
|
128
170
|
<div class='shell' data-submitter-email='{{submitterEmail}}'>
|
|
129
171
|
{{#if useDialog}}
|
|
130
|
-
<div class='req-
|
|
131
|
-
<
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
</
|
|
137
|
-
<div class='strip-meta'>
|
|
138
|
-
<div class='strip-title'>Required credentials</div>
|
|
139
|
-
<div class='strip-count'>{{connectedCount}} of {{total}} credentials connected</div>
|
|
140
|
-
</div>
|
|
141
|
-
<button class='btn btn-primary' id='open-dialog'>Connect</button>
|
|
172
|
+
<div class='req-summary{{#if allConnected}} all-connected{{/if}}' id='req-summary'>
|
|
173
|
+
<span class='summary-icon'>
|
|
174
|
+
<svg class='icon-pending' width='17' height='17' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.3' aria-hidden='true'><circle cx='8' cy='8' r='6.7' /><path d='M8 7.3v3.5' stroke-linecap='round' /><circle cx='8' cy='5.1' r='.8' fill='currentColor' stroke='none' /></svg>
|
|
175
|
+
<svg class='icon-ok' width='17' height='17' viewBox='0 0 16 16' fill='none' stroke='currentColor' stroke-width='1.3' aria-hidden='true'><circle cx='8' cy='8' r='6.7' /><path d='m5.2 8.2 1.9 1.9 3.7-4' stroke-linecap='round' stroke-linejoin='round' /></svg>
|
|
176
|
+
</span>
|
|
177
|
+
<span class='summary-text' id='summary-text'>{{summaryText}}</span>
|
|
178
|
+
<button class='btn btn-primary' id='open-dialog'><span class='dot'></span><span class='label'>{{#if allConnected}}Manage{{else}}Connect{{/if}}</span></button>
|
|
142
179
|
</div>
|
|
143
180
|
{{else}}
|
|
144
181
|
<div class='req-card'>
|
|
145
|
-
<div class='req-title'>Required credentials</div>
|
|
146
|
-
<div class='req-sub'>Connect required credentials to run this form using your data.</div>
|
|
147
182
|
{{#each credentials}}
|
|
148
|
-
|
|
149
|
-
<span class='cred-icon'>{{initial}}</span>
|
|
150
|
-
<span class='cred-meta'>
|
|
151
|
-
<span class='cred-name'>{{name}}</span>
|
|
152
|
-
<span class='cred-sub {{#if connected}}connected{{/if}}'>{{#if connected}}{{#if account}}Connected as {{account}}{{else}}Connected{{/if}}{{else}}Not connected{{/if}}{{#if usedBy}} · used by {{usedBy}}{{/if}}</span>
|
|
153
|
-
</span>
|
|
154
|
-
{{#if connected}}
|
|
155
|
-
<span class='cred-connected'><button type='button' class='btn-connected'><span class='dot'></span> Connected <span class='caret'>▾</span></button><div class='cred-menu'><button type='button' class='btn-disconnect'>Disconnect</button></div></span>
|
|
156
|
-
{{else if authorizationUrl}}
|
|
157
|
-
<button class='btn btn-secondary connect' data-url='{{authorizationUrl}}'>{{#if (eq status 'expired')}}Reconnect{{else}}Connect{{/if}}</button>
|
|
158
|
-
{{else}}
|
|
159
|
-
<span class='cred-blocked'>Ask the form owner</span>
|
|
160
|
-
{{/if}}
|
|
161
|
-
</div>
|
|
183
|
+
{{> credRow notConnectedText='Not connected · needed to submit this form'}}
|
|
162
184
|
{{/each}}
|
|
163
185
|
</div>
|
|
164
186
|
{{/if}}
|
|
@@ -174,30 +196,17 @@
|
|
|
174
196
|
<div class='overlay' id='overlay'>
|
|
175
197
|
<div class='dialog' role='dialog' aria-modal='true' aria-labelledby='dialog-title'>
|
|
176
198
|
<div class='dialog-head'>
|
|
177
|
-
<span class='dialog-title' id='dialog-title'>
|
|
199
|
+
<span class='dialog-title' id='dialog-title'>Connect your accounts</span>
|
|
178
200
|
<button class='dialog-close' id='close-dialog' aria-label='Close'>×</button>
|
|
179
201
|
</div>
|
|
180
|
-
<div class='dialog-sub'>
|
|
202
|
+
<div class='dialog-sub'>Submitting this form uses these accounts on your behalf.</div>
|
|
181
203
|
<div class='dialog-list'>
|
|
182
204
|
{{#each credentials}}
|
|
183
|
-
|
|
184
|
-
<span class='cred-icon'>{{initial}}</span>
|
|
185
|
-
<span class='cred-meta'>
|
|
186
|
-
<span class='cred-name'>{{name}}</span>
|
|
187
|
-
<span class='cred-sub {{#if connected}}connected{{/if}}'>{{#if connected}}{{#if account}}Connected as {{account}}{{else}}Connected{{/if}}{{else}}Not connected{{/if}}{{#if usedBy}} · used by {{usedBy}}{{/if}}</span>
|
|
188
|
-
</span>
|
|
189
|
-
{{#if connected}}
|
|
190
|
-
<span class='cred-connected'><button type='button' class='btn-connected'><span class='dot'></span> Connected <span class='caret'>▾</span></button><div class='cred-menu'><button type='button' class='btn-disconnect'>Disconnect</button></div></span>
|
|
191
|
-
{{else if authorizationUrl}}
|
|
192
|
-
<button class='btn btn-secondary connect' data-url='{{authorizationUrl}}'>{{#if (eq status 'expired')}}Reconnect{{else}}Connect{{/if}}</button>
|
|
193
|
-
{{else}}
|
|
194
|
-
<span class='cred-blocked'>Ask the form owner</span>
|
|
195
|
-
{{/if}}
|
|
196
|
-
</div>
|
|
205
|
+
{{> credRow notConnectedText='Not connected'}}
|
|
197
206
|
{{/each}}
|
|
198
207
|
</div>
|
|
199
208
|
<div class='dialog-foot'>
|
|
200
|
-
<span class='dialog-count'>{{
|
|
209
|
+
<span class='dialog-count' id='dialog-count'>{{footerText}}</span>
|
|
201
210
|
<button class='btn btn-primary' id='done-dialog'>Done</button>
|
|
202
211
|
</div>
|
|
203
212
|
</div>
|
|
@@ -217,37 +226,72 @@
|
|
|
217
226
|
});
|
|
218
227
|
var total = Object.keys(ids).length;
|
|
219
228
|
|
|
229
|
+
function accountsLabel(count) { return count === 1 ? 'account' : 'accounts'; }
|
|
230
|
+
|
|
231
|
+
// Mirrors `formShellSummaryText` in nodes-base/nodes/Form/utils/utils.ts,
|
|
232
|
+
// which renders the same line server-side and is what the unit tests cover.
|
|
233
|
+
function summaryText(count) {
|
|
234
|
+
var remaining = total - count;
|
|
235
|
+
if (remaining <= 0) return 'All ' + total + ' accounts connected · ready to submit';
|
|
236
|
+
if (count === 0) return total + ' accounts needed to submit this form';
|
|
237
|
+
return remaining + ' more ' + accountsLabel(remaining) + ' needed to submit this form';
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
var summaryEl = document.getElementById('summary-text');
|
|
241
|
+
var summaryRow = document.getElementById('req-summary');
|
|
242
|
+
var countEl = document.getElementById('dialog-count');
|
|
243
|
+
var openBtnLabel = document.querySelector('#open-dialog .label');
|
|
244
|
+
|
|
220
245
|
function refresh() {
|
|
221
246
|
var count = Object.keys(connected).length;
|
|
222
|
-
var
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
247
|
+
var allConnected = count >= total;
|
|
248
|
+
if (summaryEl) summaryEl.textContent = summaryText(count);
|
|
249
|
+
if (summaryRow) summaryRow.classList.toggle('all-connected', allConnected);
|
|
250
|
+
if (openBtnLabel) openBtnLabel.textContent = allConnected ? 'Manage' : 'Connect';
|
|
251
|
+
if (countEl) countEl.textContent = count + ' of ' + total + ' ' + accountsLabel(total) + ' connected';
|
|
226
252
|
// UX-only signal to the form iframe; the server-side POST gate is the guarantee.
|
|
227
253
|
if (frame && frame.contentWindow) {
|
|
228
254
|
frame.contentWindow.postMessage(
|
|
229
|
-
{ type:
|
|
255
|
+
{ type: allConnected ? 'n8n-shell-credentials-ready' : 'n8n-shell-credentials-not-ready' },
|
|
230
256
|
'*',
|
|
231
257
|
);
|
|
232
258
|
}
|
|
233
259
|
}
|
|
234
260
|
|
|
261
|
+
if (frame) frame.addEventListener('load', refresh);
|
|
262
|
+
|
|
235
263
|
var shellEl = document.querySelector('.shell');
|
|
236
264
|
var SUBMITTER_EMAIL = shellEl ? shellEl.getAttribute('data-submitter-email') || '' : '';
|
|
237
265
|
var CONNECTED_MENU_HTML =
|
|
238
266
|
'<button type="button" class="btn-connected"><span class="dot"></span> Connected <span class="caret">▾</span></button>' +
|
|
239
267
|
'<div class="cred-menu"><button type="button" class="btn-disconnect">Disconnect</button></div>';
|
|
240
268
|
|
|
269
|
+
// A provider icon that 404s (renamed node package, stale path) falls back to
|
|
270
|
+
// the letter tile the row also carries.
|
|
271
|
+
function fallBackToLetterTile(img) {
|
|
272
|
+
if (!img || !img.classList || !img.classList.contains('cred-icon-img')) return;
|
|
273
|
+
var tile = document.createElement('span');
|
|
274
|
+
tile.className = 'cred-icon';
|
|
275
|
+
tile.textContent = img.getAttribute('data-initial') || '?';
|
|
276
|
+
img.replaceWith(tile);
|
|
277
|
+
}
|
|
278
|
+
// Capture phase because `error` doesn't bubble.
|
|
279
|
+
document.addEventListener('error', function (e) { fallBackToLetterTile(e.target); }, true);
|
|
280
|
+
// Images load in parallel with this script, so some may have already failed
|
|
281
|
+
// by the time the listener above attaches — sweep those up.
|
|
282
|
+
document.querySelectorAll('.cred-icon-img').forEach(function (img) {
|
|
283
|
+
if (img.complete && img.naturalWidth === 0) fallBackToLetterTile(img);
|
|
284
|
+
});
|
|
285
|
+
|
|
241
286
|
function markConnected(id) {
|
|
242
287
|
if (!id || connected[id]) return;
|
|
243
288
|
connected[id] = true;
|
|
244
|
-
//
|
|
289
|
+
// The single-account panel and the dialog share the same data-cred-id.
|
|
245
290
|
document.querySelectorAll('.cred-row[data-cred-id="' + id + '"]').forEach(function (row) {
|
|
246
291
|
row.setAttribute('data-connected', 'true');
|
|
247
292
|
var sub = row.querySelector('.cred-sub');
|
|
248
293
|
if (sub) {
|
|
249
294
|
sub.textContent = SUBMITTER_EMAIL ? 'Connected as ' + SUBMITTER_EMAIL : 'Connected';
|
|
250
|
-
sub.classList.add('connected');
|
|
251
295
|
}
|
|
252
296
|
var btn = row.querySelector('.connect');
|
|
253
297
|
if (btn) {
|
|
@@ -284,8 +328,13 @@
|
|
|
284
328
|
});
|
|
285
329
|
} catch (e) {}
|
|
286
330
|
window.addEventListener('message', function (event) {
|
|
287
|
-
//
|
|
288
|
-
|
|
331
|
+
// The sandboxed form iframe can't spoof a connect: its only accepted message is
|
|
332
|
+
// the POST gate's rejection, which carries ids and moves rows one way only, so
|
|
333
|
+
// the worst author script can do is degrade its own form's UX.
|
|
334
|
+
if (frame && event.source === frame.contentWindow) {
|
|
335
|
+
handleGateRejection(event.data);
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
289
338
|
if (event.data === 'success') onSuccessSignal();
|
|
290
339
|
});
|
|
291
340
|
|
|
@@ -302,7 +351,11 @@
|
|
|
302
351
|
document.querySelectorAll('.cred-row[data-cred-id="' + id + '"]').forEach(function (row) {
|
|
303
352
|
row.removeAttribute('data-connected');
|
|
304
353
|
var sub = row.querySelector('.cred-sub');
|
|
305
|
-
if (sub) {
|
|
354
|
+
if (sub) {
|
|
355
|
+
// The single-account row spells out why the account is needed; the
|
|
356
|
+
// dialog's rows sit under copy that already says it.
|
|
357
|
+
sub.textContent = row.getAttribute('data-not-connected-text') || 'Not connected';
|
|
358
|
+
}
|
|
306
359
|
var wrap = row.querySelector('.cred-connected');
|
|
307
360
|
if (wrap) {
|
|
308
361
|
var btn = document.createElement('button');
|
|
@@ -402,7 +455,7 @@
|
|
|
402
455
|
document.querySelectorAll('.cred-menu.open').forEach(function (m) { m.classList.remove('open'); });
|
|
403
456
|
});
|
|
404
457
|
|
|
405
|
-
// Dialog (
|
|
458
|
+
// Dialog (two or more accounts)
|
|
406
459
|
var overlay = document.getElementById('overlay');
|
|
407
460
|
var open = document.getElementById('open-dialog');
|
|
408
461
|
if (open && overlay) {
|
|
@@ -411,6 +464,22 @@
|
|
|
411
464
|
document.getElementById('done-dialog').addEventListener('click', function () { overlay.classList.remove('open'); });
|
|
412
465
|
overlay.addEventListener('click', function (e) { if (e.target === overlay) overlay.classList.remove('open'); });
|
|
413
466
|
}
|
|
467
|
+
|
|
468
|
+
// The form's POST was refused by the server-side gate. Rows rendered at page load
|
|
469
|
+
// can be stale (revoked since, or disconnected in another tab), so flip the ones
|
|
470
|
+
// the server no longer considers connected and surface the panel — the 2+ layout
|
|
471
|
+
// otherwise keeps every row behind the summary line. Declared after the dialog
|
|
472
|
+
// wiring so `overlay` is assigned; hoisting keeps it callable from the listener
|
|
473
|
+
// above.
|
|
474
|
+
function handleGateRejection(data) {
|
|
475
|
+
if (!data || data.type !== 'n8n-form-credentials-rejected' || !Array.isArray(data.ids)) return;
|
|
476
|
+
data.ids.forEach(function (id) {
|
|
477
|
+
// Only rows the server actually rendered, so a crafted key can't walk the
|
|
478
|
+
// prototype chain. Never markConnected from here — one direction only.
|
|
479
|
+
if (typeof id === 'string' && Object.prototype.hasOwnProperty.call(ids, id)) markDisconnected(id);
|
|
480
|
+
});
|
|
481
|
+
if (overlay) overlay.classList.add('open');
|
|
482
|
+
}
|
|
414
483
|
})();
|
|
415
484
|
</script>
|
|
416
485
|
</body>
|
|
@@ -261,6 +261,12 @@
|
|
|
261
261
|
cursor: not-allowed;
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
+
#submit-hint {
|
|
265
|
+
margin-top: 8px;
|
|
266
|
+
font-size: var(--font-size-link);
|
|
267
|
+
color: var(--color-link);
|
|
268
|
+
}
|
|
269
|
+
|
|
264
270
|
#submit-btn:disabled:hover {
|
|
265
271
|
opacity: 1;
|
|
266
272
|
}
|
|
@@ -281,6 +287,23 @@
|
|
|
281
287
|
visibility: visible;
|
|
282
288
|
}
|
|
283
289
|
|
|
290
|
+
{{#if hasAuthenticatedSubmitter}}
|
|
291
|
+
/* Form-level error above Submit. Unlike .error-hidden it must not reserve
|
|
292
|
+
space while empty, or every form gets a permanent gap above Submit. */
|
|
293
|
+
#submit-error {
|
|
294
|
+
display: none;
|
|
295
|
+
color: var(--color-error);
|
|
296
|
+
text-align: left;
|
|
297
|
+
font-size: var(--font-size-error);
|
|
298
|
+
padding-top: 6px;
|
|
299
|
+
padding-bottom: 9px;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
#submit-error.error-show {
|
|
303
|
+
display: block;
|
|
304
|
+
}
|
|
305
|
+
{{/if}}
|
|
306
|
+
|
|
284
307
|
/* multiselect ----------------------------------- */
|
|
285
308
|
.multiselect {
|
|
286
309
|
padding-left: 6px;
|
|
@@ -631,7 +654,9 @@
|
|
|
631
654
|
{{/each}}
|
|
632
655
|
</div>
|
|
633
656
|
|
|
634
|
-
|
|
657
|
+
{{#if hasAuthenticatedSubmitter}}<p id='submit-error'></p>{{/if}}
|
|
658
|
+
|
|
659
|
+
<button id='submit-btn' type='submit' {{#if shellInner}}disabled title='Connect the required accounts first'{{/if}}>
|
|
635
660
|
<span><svg
|
|
636
661
|
xmlns='http://www.w3.org/2000/svg'
|
|
637
662
|
height='18px'
|
|
@@ -643,6 +668,11 @@
|
|
|
643
668
|
</svg></span>
|
|
644
669
|
{{ buttonLabel }}
|
|
645
670
|
</button>
|
|
671
|
+
|
|
672
|
+
{{#if shellInner}}
|
|
673
|
+
{{!-- Only inside the hosting shell, where the connect panel above supplies the accounts. --}}
|
|
674
|
+
<p id='submit-hint'>This form will run using your connected accounts.</p>
|
|
675
|
+
{{/if}}
|
|
646
676
|
</form>
|
|
647
677
|
|
|
648
678
|
<div class='card' id='submitted-form' style='display: none;'>
|
|
@@ -715,6 +745,47 @@
|
|
|
715
745
|
}
|
|
716
746
|
}
|
|
717
747
|
|
|
748
|
+
{{#if hasAuthenticatedSubmitter}}
|
|
749
|
+
// True when this form is the inner frame of the hosting shell, which owns the
|
|
750
|
+
// connect panel and the submit button's enabled state.
|
|
751
|
+
const isShellInner = {{#if shellInner}}true{{else}}false{{/if}};
|
|
752
|
+
|
|
753
|
+
// The submit-time credential gate refused this submission. Explain it and hand the
|
|
754
|
+
// form back with the answers intact. The panel names the accounts, so the banner
|
|
755
|
+
// only has to say what to do next.
|
|
756
|
+
function handleCredentialGate(credentials) {
|
|
757
|
+
updateError(
|
|
758
|
+
document.querySelector('#submit-error'),
|
|
759
|
+
'add',
|
|
760
|
+
'Not all required accounts are connected. ' +
|
|
761
|
+
(isShellInner
|
|
762
|
+
? 'Connect them above, then submit again.'
|
|
763
|
+
: 'Open this form in a new tab to connect them, then come back here and submit again.'),
|
|
764
|
+
);
|
|
765
|
+
|
|
766
|
+
const btn = document.querySelector('#submit-btn');
|
|
767
|
+
btn.style.cursor = '';
|
|
768
|
+
btn.querySelector('span').style.display = '';
|
|
769
|
+
|
|
770
|
+
if (isShellInner) {
|
|
771
|
+
// The shell owns the disabled state, so hand it the rows it still shows as
|
|
772
|
+
// connected and let its readiness signal re-disable Submit. Ids only: it must
|
|
773
|
+
// not have to trust a name or a URL from this frame. targetOrigin '*' because
|
|
774
|
+
// the frame is sandboxed without allow-same-origin and can't know the parent's.
|
|
775
|
+
window.parent.postMessage(
|
|
776
|
+
{
|
|
777
|
+
type: 'n8n-form-credentials-rejected',
|
|
778
|
+
// The body lists every required credential, connected ones included.
|
|
779
|
+
ids: credentials.filter((c) => c.credentialStatus !== 'configured').map((c) => c.credentialId),
|
|
780
|
+
},
|
|
781
|
+
'*',
|
|
782
|
+
);
|
|
783
|
+
} else {
|
|
784
|
+
btn.disabled = false;
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
{{/if}}
|
|
788
|
+
|
|
718
789
|
function validateInput(input, errorElement) {
|
|
719
790
|
const value = input.value.trim();
|
|
720
791
|
const type = input.type;
|
|
@@ -1010,6 +1081,7 @@
|
|
|
1010
1081
|
const selectedValues = getSelectedValues(multiselect);
|
|
1011
1082
|
formData.append(multiselect.id, JSON.stringify(selectedValues));
|
|
1012
1083
|
});
|
|
1084
|
+
{{#if hasAuthenticatedSubmitter}}updateError(document.querySelector('#submit-error'), 'remove');{{/if}}
|
|
1013
1085
|
document.querySelector('#submit-btn').disabled = true;
|
|
1014
1086
|
document.querySelector('#submit-btn').style.cursor = 'not-allowed';
|
|
1015
1087
|
document.querySelector('#submit-btn span').style.display = 'inline-block';
|
|
@@ -1034,6 +1106,22 @@
|
|
|
1034
1106
|
headers,
|
|
1035
1107
|
})
|
|
1036
1108
|
.then(async function (response) {
|
|
1109
|
+
{{#if hasAuthenticatedSubmitter}}
|
|
1110
|
+
// A credential-gate rejection keeps the submitter on the page with their
|
|
1111
|
+
// answers, so handle it before the useResponseData branch below paints the
|
|
1112
|
+
// response body over the whole document.
|
|
1113
|
+
if (response.status === 428) {
|
|
1114
|
+
// Clone: that branch reads the body too, and a body can only be read once.
|
|
1115
|
+
// Any other 428 — the webhook trigger's gate has no `status` — falls
|
|
1116
|
+
// through untouched.
|
|
1117
|
+
const gate = await response.clone().json().catch(() => null);
|
|
1118
|
+
if (gate && gate.status === 'credential_connections_required') {
|
|
1119
|
+
handleCredentialGate(gate.credentials);
|
|
1120
|
+
return;
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
{{/if}}
|
|
1124
|
+
|
|
1037
1125
|
const useResponseData = document.getElementById("useResponseData").value;
|
|
1038
1126
|
|
|
1039
1127
|
if (useResponseData === "true") {
|
|
@@ -1132,9 +1220,16 @@
|
|
|
1132
1220
|
if (event.data.type === 'n8n-shell-credentials-ready') {
|
|
1133
1221
|
btn.disabled = false;
|
|
1134
1222
|
btn.removeAttribute('title');
|
|
1223
|
+
{{#if hasAuthenticatedSubmitter}}
|
|
1224
|
+
// A rejection banner asking for the credentials is stale once the panel
|
|
1225
|
+
// reports them connected. Guarded because shellInner comes from a query
|
|
1226
|
+
// param, so a form with no submitter identity — and so no banner in the
|
|
1227
|
+
// markup — can still render this listener.
|
|
1228
|
+
updateError(document.querySelector('#submit-error'), 'remove');
|
|
1229
|
+
{{/if}}
|
|
1135
1230
|
} else if (event.data.type === 'n8n-shell-credentials-not-ready') {
|
|
1136
1231
|
btn.disabled = true;
|
|
1137
|
-
btn.setAttribute('title', 'Connect the required
|
|
1232
|
+
btn.setAttribute('title', 'Connect the required accounts first');
|
|
1138
1233
|
}
|
|
1139
1234
|
});
|
|
1140
1235
|
</script>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAgentKnowledgeBaseEnabled = isAgentKnowledgeBaseEnabled;
|
|
4
|
-
function isAgentKnowledgeBaseEnabled(config, aiAssistantAvailable) {
|
|
5
|
-
return aiAssistantAvailable || (config.sandboxEnabled && config.sandboxProvider === 'daytona');
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=agent-knowledge-gate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-knowledge-gate.js","sourceRoot":"","sources":["../../../src/modules/agents/agent-knowledge-gate.ts"],"names":[],"mappings":";;;AAEA,qCACC,MAAgE,EAChE,oBAA6B;IAE7B,OAAO,oBAAoB,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;AAChG,CAAC"}
|