n8n 2.27.3 → 2.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abstract-server.js +0 -4
- package/dist/abstract-server.js.map +1 -1
- package/dist/active-workflow-manager.js +4 -1
- package/dist/active-workflow-manager.js.map +1 -1
- package/dist/agent-library-bundle.js +7 -3
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/audit.js +6 -0
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/base-command.d.ts +1 -0
- package/dist/commands/base-command.js +36 -2
- package/dist/commands/base-command.js.map +1 -1
- package/dist/commands/start.js +18 -9
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/worker.js +2 -0
- package/dist/commands/worker.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +5 -1
- package/dist/constants.js.map +1 -1
- package/dist/controllers/api-keys.controller.d.ts +17 -0
- package/dist/controllers/api-keys.controller.js +19 -0
- package/dist/controllers/api-keys.controller.js.map +1 -1
- package/dist/controllers/e2e.controller.js +1 -0
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/telemetry.controller.d.ts +3 -1
- package/dist/controllers/telemetry.controller.js +17 -7
- package/dist/controllers/telemetry.controller.js.map +1 -1
- package/dist/controllers/users.controller.d.ts +1 -1
- package/dist/credentials/credentials.service.d.ts +5 -0
- package/dist/credentials/credentials.service.js +17 -3
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/evaluation.ee/evaluation-config.controller.d.ts +7 -1
- package/dist/evaluation.ee/evaluation-config.controller.js +30 -1
- package/dist/evaluation.ee/evaluation-config.controller.js.map +1 -1
- package/dist/evaluation.ee/evaluation-dataset.service.d.ts +24 -0
- package/dist/evaluation.ee/evaluation-dataset.service.js +185 -0
- package/dist/evaluation.ee/evaluation-dataset.service.js.map +1 -0
- package/dist/evaluation.ee/llm-judge-provider-registry.js +2 -2
- package/dist/evaluation.ee/llm-judge-provider-registry.js.map +1 -1
- package/dist/evaluation.ee/test-runner/test-runner.service.ee.js +6 -6
- package/dist/evaluation.ee/test-runner/test-runner.service.ee.js.map +1 -1
- package/dist/evaluation.ee/test-runner/workflow-compiler.service.d.ts +2 -0
- package/dist/evaluation.ee/test-runner/workflow-compiler.service.js +27 -0
- package/dist/evaluation.ee/test-runner/workflow-compiler.service.js.map +1 -1
- package/dist/eventbus/event-message-classes/index.d.ts +2 -2
- package/dist/eventbus/event-message-classes/index.js +2 -0
- package/dist/eventbus/event-message-classes/index.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/instance-ai.event-map.d.ts +15 -0
- package/dist/events/maps/instance-ai.event-map.js +3 -0
- package/dist/events/maps/instance-ai.event-map.js.map +1 -0
- package/dist/events/maps/relay.event-map.d.ts +8 -1
- package/dist/events/relays/log-streaming.event-relay.d.ts +2 -0
- package/dist/events/relays/log-streaming.event-relay.js +26 -0
- package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
- package/dist/events/relays/telemetry.event-relay.d.ts +1 -0
- package/dist/events/relays/telemetry.event-relay.js +11 -0
- package/dist/events/relays/telemetry.event-relay.js.map +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js +1 -0
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
- package/dist/execution-lifecycle/shared/shared-hook-functions.d.ts +2 -1
- package/dist/execution-lifecycle/shared/shared-hook-functions.js +8 -3
- package/dist/execution-lifecycle/shared/shared-hook-functions.js.map +1 -1
- package/dist/executions/execution-data/azure-store.ee.d.ts +15 -0
- package/dist/executions/execution-data/azure-store.ee.js +116 -0
- package/dist/executions/execution-data/azure-store.ee.js.map +1 -0
- package/dist/executions/execution-data/db-store.d.ts +7 -0
- package/dist/executions/execution-data/db-store.js +21 -0
- package/dist/executions/execution-data/db-store.js.map +1 -1
- package/dist/executions/execution-data/types.d.ts +3 -0
- package/dist/executions/execution-persistence.d.ts +17 -3
- package/dist/executions/execution-persistence.js +121 -18
- package/dist/executions/execution-persistence.js.map +1 -1
- package/dist/executions/execution.service.d.ts +3 -1
- package/dist/executions/execution.service.js +10 -4
- package/dist/executions/execution.service.js.map +1 -1
- package/dist/executions/sum-binary-data-bytes.d.ts +2 -0
- package/dist/executions/sum-binary-data-bytes.js +46 -0
- package/dist/executions/sum-binary-data-bytes.js.map +1 -0
- package/dist/interfaces.d.ts +22 -0
- package/dist/license/license.service.d.ts +3 -1
- package/dist/license/license.service.js +36 -51
- package/dist/license/license.service.js.map +1 -1
- package/dist/metrics/prometheus/execution-data-metrics.service.js +2 -1
- package/dist/metrics/prometheus/execution-data-metrics.service.js.map +1 -1
- package/dist/metrics/prometheus/instance-ai-metrics.service.d.ts +12 -0
- package/dist/metrics/prometheus/instance-ai-metrics.service.js +101 -0
- package/dist/metrics/prometheus/instance-ai-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/instance-role-metrics.service.js +2 -2
- package/dist/metrics/prometheus/instance-role-metrics.service.js.map +1 -1
- package/dist/metrics/prometheus/prometheus.service.d.ts +4 -1
- package/dist/metrics/prometheus/prometheus.service.js +11 -2
- package/dist/metrics/prometheus/prometheus.service.js.map +1 -1
- package/dist/metrics/prometheus/webhook-and-form-metrics.service.d.ts +23 -0
- package/dist/metrics/prometheus/webhook-and-form-metrics.service.js +72 -0
- package/dist/metrics/prometheus/webhook-and-form-metrics.service.js.map +1 -0
- package/dist/metrics/prometheus/workflow-info-metrics.service.d.ts +12 -0
- package/dist/metrics/prometheus/workflow-info-metrics.service.js +66 -0
- package/dist/metrics/prometheus/workflow-info-metrics.service.js.map +1 -0
- package/dist/middlewares/body-parser.js +2 -2
- package/dist/middlewares/body-parser.js.map +1 -1
- package/dist/middlewares/list-query/dtos/workflow.filter.dto.d.ts +2 -0
- package/dist/middlewares/list-query/dtos/workflow.filter.dto.js +12 -0
- package/dist/middlewares/list-query/dtos/workflow.filter.dto.js.map +1 -1
- package/dist/modules/agents/agent-execution.service.d.ts +8 -1
- package/dist/modules/agents/agent-execution.service.js +26 -2
- package/dist/modules/agents/agent-execution.service.js.map +1 -1
- package/dist/modules/agents/agent-knowledge-commands.d.ts +27 -0
- package/dist/modules/agents/agent-knowledge-commands.js +415 -0
- package/dist/modules/agents/agent-knowledge-commands.js.map +1 -0
- package/dist/modules/agents/agent-knowledge-gate.d.ts +2 -0
- package/dist/modules/agents/agent-knowledge-gate.js +9 -0
- package/dist/modules/agents/agent-knowledge-gate.js.map +1 -0
- package/dist/modules/agents/agent-knowledge-retrieval.d.ts +184 -0
- package/dist/modules/agents/agent-knowledge-retrieval.js +172 -0
- package/dist/modules/agents/agent-knowledge-retrieval.js.map +1 -0
- package/dist/modules/agents/agent-knowledge-sandbox.service.d.ts +40 -0
- package/dist/modules/agents/agent-knowledge-sandbox.service.js +591 -0
- package/dist/modules/agents/agent-knowledge-sandbox.service.js.map +1 -0
- package/dist/modules/agents/agent-knowledge-storage.d.ts +21 -0
- package/dist/modules/agents/agent-knowledge-storage.js +89 -0
- package/dist/modules/agents/agent-knowledge-storage.js.map +1 -0
- package/dist/modules/agents/agent-knowledge.service.d.ts +25 -5
- package/dist/modules/agents/agent-knowledge.service.js +230 -7
- package/dist/modules/agents/agent-knowledge.service.js.map +1 -1
- package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +8 -2
- package/dist/modules/agents/agent-runtime-reconstruction.service.js +49 -11
- package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
- package/dist/modules/agents/agent-sandbox.controller.d.ts +18 -0
- package/dist/modules/agents/agent-sandbox.controller.js +71 -0
- package/dist/modules/agents/agent-sandbox.controller.js.map +1 -0
- package/dist/modules/agents/agent-telemetry.d.ts +5 -0
- package/dist/modules/agents/agent-telemetry.js +60 -0
- package/dist/modules/agents/agent-telemetry.js.map +1 -0
- package/dist/modules/agents/agents.controller.d.ts +4 -4
- package/dist/modules/agents/agents.controller.js +24 -23
- 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 +7 -1
- package/dist/modules/agents/agents.module.js.map +1 -1
- package/dist/modules/agents/agents.service.d.ts +5 -2
- package/dist/modules/agents/agents.service.js +68 -15
- package/dist/modules/agents/agents.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-prompts.d.ts +1 -1
- package/dist/modules/agents/builder/agents-builder-prompts.js +7 -0
- package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-settings.service.d.ts +12 -6
- package/dist/modules/agents/builder/agents-builder-settings.service.js +29 -12
- package/dist/modules/agents/builder/agents-builder-settings.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-tools.service.d.ts +12 -4
- package/dist/modules/agents/builder/agents-builder-tools.service.js +118 -14
- package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder.service.d.ts +7 -0
- package/dist/modules/agents/builder/agents-builder.service.js +24 -6
- package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
- package/dist/modules/agents/builder/builder-tool-names.d.ts +1 -0
- package/dist/modules/agents/builder/builder-tool-names.js +1 -0
- package/dist/modules/agents/builder/builder-tool-names.js.map +1 -1
- package/dist/modules/agents/builder/from-ai-node-parameters.d.ts +7 -0
- package/dist/modules/agents/builder/from-ai-node-parameters.js +43 -0
- package/dist/modules/agents/builder/from-ai-node-parameters.js.map +1 -0
- package/dist/modules/agents/builder/get-resource-locator-options.tool.d.ts +10 -0
- package/dist/modules/agents/builder/get-resource-locator-options.tool.js +148 -0
- package/dist/modules/agents/builder/get-resource-locator-options.tool.js.map +1 -0
- package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
- package/dist/modules/agents/builder/prompts/tools.prompt.js +11 -0
- package/dist/modules/agents/builder/prompts/tools.prompt.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/resource-locators.skill.d.ts +2 -0
- package/dist/modules/agents/builder/skills/resource-locators.skill.js +107 -0
- package/dist/modules/agents/builder/skills/resource-locators.skill.js.map +1 -0
- package/dist/modules/agents/builder/verify-mcp-server.tool.d.ts +2 -0
- package/dist/modules/agents/builder/verify-mcp-server.tool.js +1 -1
- package/dist/modules/agents/builder/verify-mcp-server.tool.js.map +1 -1
- package/dist/modules/agents/entities/agent-file.entity.d.ts +11 -0
- package/dist/modules/agents/entities/agent-file.entity.js +50 -0
- package/dist/modules/agents/entities/agent-file.entity.js.map +1 -0
- package/dist/modules/agents/execution-recorder.js +4 -7
- package/dist/modules/agents/execution-recorder.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +1 -1
- package/dist/modules/agents/integrations/agent-chat-bridge.js +7 -9
- package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-integration.d.ts +7 -3
- package/dist/modules/agents/integrations/agent-chat-integration.js +5 -0
- package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
- package/dist/modules/agents/integrations/integration-action-executor.d.ts +704 -0
- package/dist/modules/agents/integrations/integration-action-executor.js +36 -22
- package/dist/modules/agents/integrations/integration-action-executor.js.map +1 -1
- package/dist/modules/agents/integrations/integration-context-query-executor.js +23 -4
- package/dist/modules/agents/integrations/integration-context-query-executor.js.map +1 -1
- package/dist/modules/agents/integrations/integration-helpers.d.ts +12 -1
- package/dist/modules/agents/integrations/integration-helpers.js +17 -8
- package/dist/modules/agents/integrations/integration-helpers.js.map +1 -1
- package/dist/modules/agents/integrations/integration-message-context.service.js +2 -4
- package/dist/modules/agents/integrations/integration-message-context.service.js.map +1 -1
- package/dist/modules/agents/integrations/integration-tools.d.ts +11 -3
- package/dist/modules/agents/integrations/integration-tools.js +19 -118
- package/dist/modules/agents/integrations/integration-tools.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/linear-integration.d.ts +3 -1
- package/dist/modules/agents/integrations/platforms/linear-integration.js +22 -6
- package/dist/modules/agents/integrations/platforms/linear-integration.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/linear-operations.js +19 -29
- package/dist/modules/agents/integrations/platforms/linear-operations.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/n8n-chat-integration.d.ts +20 -0
- package/dist/modules/agents/integrations/platforms/n8n-chat-integration.js +99 -0
- package/dist/modules/agents/integrations/platforms/n8n-chat-integration.js.map +1 -0
- package/dist/modules/agents/integrations/platforms/slack-integration.d.ts +2 -1
- package/dist/modules/agents/integrations/platforms/slack-integration.js +5 -0
- package/dist/modules/agents/integrations/platforms/slack-integration.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack-operations.js +3 -2
- package/dist/modules/agents/integrations/platforms/slack-operations.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/telegram-integration.d.ts +11 -2
- package/dist/modules/agents/integrations/platforms/telegram-integration.js +43 -14
- package/dist/modules/agents/integrations/platforms/telegram-integration.js.map +1 -1
- package/dist/modules/agents/integrations/slack-app-setup.service.d.ts +3 -1
- package/dist/modules/agents/integrations/slack-app-setup.service.js +19 -11
- package/dist/modules/agents/integrations/slack-app-setup.service.js.map +1 -1
- package/dist/modules/agents/json-config/from-json-config.d.ts +2 -1
- package/dist/modules/agents/json-config/from-json-config.js +11 -1
- package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
- package/dist/modules/agents/json-config/mcp-client-factory.d.ts +2 -0
- package/dist/modules/agents/json-config/mcp-client-factory.js +2 -2
- package/dist/modules/agents/json-config/mcp-client-factory.js.map +1 -1
- package/dist/modules/agents/repositories/agent-file.repository.d.ts +8 -0
- package/dist/modules/agents/repositories/agent-file.repository.js +38 -0
- package/dist/modules/agents/repositories/agent-file.repository.js.map +1 -0
- package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js +5 -0
- package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js.map +1 -1
- package/dist/modules/agents/tools/knowledge/search-knowledge.tool.d.ts +90 -0
- package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js +209 -0
- package/dist/modules/agents/tools/knowledge/search-knowledge.tool.js.map +1 -0
- package/dist/modules/agents/tools/workflow-tool-factory.js +6 -8
- package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
- package/dist/modules/agents/tracing/builder-telemetry.d.ts +6 -1
- package/dist/modules/agents/tracing/builder-telemetry.js +26 -5
- package/dist/modules/agents/tracing/builder-telemetry.js.map +1 -1
- package/dist/modules/agents/utils/agent-memory-scope.d.ts +1 -0
- package/dist/modules/agents/utils/agent-memory-scope.js +6 -1
- package/dist/modules/agents/utils/agent-memory-scope.js.map +1 -1
- package/dist/modules/agents/utils/execution-to-message-mapper.js +54 -5
- package/dist/modules/agents/utils/execution-to-message-mapper.js.map +1 -1
- package/dist/modules/agents/utils/messages-envelope.d.ts +7 -0
- package/dist/modules/agents/utils/messages-envelope.js +97 -0
- package/dist/modules/agents/utils/messages-envelope.js.map +1 -0
- package/dist/modules/community-packages/community-packages.service.d.ts +3 -1
- package/dist/modules/community-packages/community-packages.service.js +17 -9
- package/dist/modules/community-packages/community-packages.service.js.map +1 -1
- package/dist/modules/community-packages/npm-utils.js +13 -6
- package/dist/modules/community-packages/npm-utils.js.map +1 -1
- package/dist/modules/data-table/multer-upload-middleware.d.ts +8 -1
- package/dist/modules/data-table/multer-upload-middleware.js +79 -30
- package/dist/modules/data-table/multer-upload-middleware.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/index.d.ts +2 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/index.js +19 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/index.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/metadata.d.ts +20 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/metadata.js +12 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/metadata.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-extractor.d.ts +12 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-extractor.js +85 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-extractor.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-seeder.d.ts +10 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-seeder.js +78 -0
- package/dist/modules/dynamic-credentials.ee/context-establishment-hooks/n8n-oauth/n8n-oauth-seeder.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.d.ts +3 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js +17 -2
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.d.ts +4 -2
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js +20 -40
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-introspection-identifier.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.d.ts +21 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js +77 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.d.ts +3 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js +18 -39
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-userinfo-identifier.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.d.ts +4 -2
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +46 -2
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +3 -0
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.d.ts +14 -0
- package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.js +39 -0
- package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +7 -3
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +23 -21
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.d.ts +4 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +111 -63
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js +0 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/index.d.ts +1 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js +1 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.d.ts +3 -1
- package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js +4 -1
- package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/azure-key-vault/azure-key-vault.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/gcp-secrets-manager/gcp-secrets-manager.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/infisical.d.ts +4 -1
- package/dist/modules/external-secrets.ee/providers/infisical.js +45 -30
- package/dist/modules/external-secrets.ee/providers/infisical.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/one-password.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/vault.d.ts +5 -1
- package/dist/modules/external-secrets.ee/providers/vault.js +66 -61
- package/dist/modules/external-secrets.ee/providers/vault.js.map +1 -1
- package/dist/modules/insights/database/repositories/insights-by-period.repository.d.ts +2 -2
- package/dist/modules/insights/insights.service.d.ts +2 -2
- package/dist/modules/instance-ai/entities/index.d.ts +1 -0
- package/dist/modules/instance-ai/entities/index.js +3 -1
- package/dist/modules/instance-ai/entities/index.js.map +1 -1
- package/dist/modules/instance-ai/entities/instance-ai-thread-grant.entity.d.ts +9 -0
- package/dist/modules/instance-ai/entities/instance-ai-thread-grant.entity.js +45 -0
- package/dist/modules/instance-ai/entities/instance-ai-thread-grant.entity.js.map +1 -0
- package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.d.ts +3 -3
- package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js +2 -2
- package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js.map +1 -1
- package/dist/modules/instance-ai/eval/llm-wire-server.d.ts +2 -2
- package/dist/modules/instance-ai/eval/llm-wire-server.js +5 -5
- package/dist/modules/instance-ai/eval/llm-wire-server.js.map +1 -1
- package/dist/modules/instance-ai/eval/thread-credential-allowlist.service.d.ts +6 -0
- package/dist/modules/instance-ai/eval/thread-credential-allowlist.service.js +29 -0
- package/dist/modules/instance-ai/eval/thread-credential-allowlist.service.js.map +1 -0
- package/dist/modules/instance-ai/instance-ai-credit.service.d.ts +26 -0
- package/dist/modules/instance-ai/instance-ai-credit.service.js +210 -0
- package/dist/modules/instance-ai/instance-ai-credit.service.js.map +1 -0
- package/dist/modules/instance-ai/instance-ai-model.service.d.ts +20 -0
- package/dist/modules/instance-ai/instance-ai-model.service.js +135 -0
- package/dist/modules/instance-ai/instance-ai-model.service.js.map +1 -0
- package/dist/modules/instance-ai/instance-ai-run-probe.d.ts +5 -0
- package/dist/modules/instance-ai/instance-ai-run-probe.js +26 -0
- package/dist/modules/instance-ai/instance-ai-run-probe.js.map +1 -0
- package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +2 -0
- package/dist/modules/instance-ai/instance-ai-settings.service.js +12 -1
- package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-temporary-workflow.service.d.ts +15 -0
- package/dist/modules/instance-ai/instance-ai-temporary-workflow.service.js +140 -0
- package/dist/modules/instance-ai/instance-ai-temporary-workflow.service.js.map +1 -0
- package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +4 -2
- package/dist/modules/instance-ai/instance-ai.adapter.service.js +69 -10
- package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.controller.d.ts +20 -2
- package/dist/modules/instance-ai/instance-ai.controller.js +62 -4
- package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.module.d.ts +2 -1
- package/dist/modules/instance-ai/instance-ai.module.js +3 -0
- package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.service.d.ts +42 -22
- package/dist/modules/instance-ai/instance-ai.service.js +408 -379
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/internal-messages.d.ts +4 -0
- package/dist/modules/instance-ai/internal-messages.js +24 -3
- package/dist/modules/instance-ai/internal-messages.js.map +1 -1
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.d.ts +1 -1
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.js +2 -6
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-connection.controller.js.map +1 -1
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.d.ts +6 -1
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js +52 -2
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js.map +1 -1
- package/dist/modules/instance-ai/message-parser.js +2 -0
- package/dist/modules/instance-ai/message-parser.js.map +1 -1
- package/dist/modules/instance-ai/observability.d.ts +13 -0
- package/dist/modules/instance-ai/observability.js +23 -0
- package/dist/modules/instance-ai/observability.js.map +1 -0
- package/dist/modules/instance-ai/repositories/index.d.ts +1 -0
- package/dist/modules/instance-ai/repositories/index.js +3 -1
- package/dist/modules/instance-ai/repositories/index.js.map +1 -1
- package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.d.ts +7 -0
- package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js +40 -0
- package/dist/modules/instance-ai/repositories/instance-ai-thread-grant.repository.js.map +1 -0
- package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js +2 -1
- package/dist/modules/instance-ai/sandbox/instance-ai-sandbox.service.js.map +1 -1
- package/dist/modules/instance-ai/storage/typeorm-agent-memory.js +4 -6
- package/dist/modules/instance-ai/storage/typeorm-agent-memory.js.map +1 -1
- package/dist/modules/instance-ai/web-research/fetch-and-extract.d.ts +2 -3
- package/dist/modules/instance-ai/web-research/fetch-and-extract.js +34 -44
- package/dist/modules/instance-ai/web-research/fetch-and-extract.js.map +1 -1
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.d.ts +2 -1
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.js +2 -2
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-from-db.js.map +1 -1
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.d.ts +8 -8
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +43 -60
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js.map +1 -1
- package/dist/modules/log-streaming.ee/log-streaming-destination.service.d.ts +3 -1
- package/dist/modules/log-streaming.ee/log-streaming-destination.service.js +6 -3
- package/dist/modules/log-streaming.ee/log-streaming-destination.service.js.map +1 -1
- package/dist/modules/log-streaming.ee/log-streaming.controller.d.ts +3 -1
- package/dist/modules/log-streaming.ee/log-streaming.controller.js +6 -3
- package/dist/modules/log-streaming.ee/log-streaming.controller.js.map +1 -1
- package/dist/modules/mcp/dto/update-allowed-redirect-uris.dto.d.ts +9 -0
- package/dist/modules/mcp/dto/update-allowed-redirect-uris.dto.js +35 -0
- package/dist/modules/mcp/dto/update-allowed-redirect-uris.dto.js.map +1 -0
- package/dist/modules/mcp/mcp-protected-resource.d.ts +4 -1
- package/dist/modules/mcp/mcp-protected-resource.js +9 -3
- package/dist/modules/mcp/mcp-protected-resource.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +5 -2
- package/dist/modules/mcp/mcp.service.js +8 -3
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/mcp.settings.controller.d.ts +7 -0
- package/dist/modules/mcp/mcp.settings.controller.js +24 -0
- package/dist/modules/mcp/mcp.settings.controller.js.map +1 -1
- package/dist/modules/mcp/mcp.settings.service.d.ts +2 -0
- package/dist/modules/mcp/mcp.settings.service.js +15 -0
- package/dist/modules/mcp/mcp.settings.service.js.map +1 -1
- package/dist/modules/mcp/mcp.typeguards.d.ts +0 -1
- package/dist/modules/mcp/mcp.typeguards.js +9 -12
- package/dist/modules/mcp/mcp.typeguards.js.map +1 -1
- package/dist/modules/mcp/mcp.utils.js +2 -1
- package/dist/modules/mcp/mcp.utils.js.map +1 -1
- package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +10 -8
- package/dist/modules/mcp/tools/execute-workflow.tool.js +25 -13
- package/dist/modules/mcp/tools/execute-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/get-workflow-details.tool.js +2 -0
- package/dist/modules/mcp/tools/get-workflow-details.tool.js.map +1 -1
- package/dist/modules/mcp/tools/schemas.d.ts +128 -0
- package/dist/modules/mcp/tools/schemas.js +9 -0
- package/dist/modules/mcp/tools/schemas.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +15 -4
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/credential-validation.d.ts +13 -2
- package/dist/modules/mcp/tools/workflow-builder/credential-validation.js +144 -23
- package/dist/modules/mcp/tools/workflow-builder/credential-validation.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +23 -6
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/workflow-operations.d.ts +31 -1
- package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js +22 -0
- package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-pipeline.js +40 -19
- package/dist/modules/n8n-packages/engine/import-pipeline.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-importer.d.ts +8 -4
- package/dist/modules/n8n-packages/entities/credential/credential-importer.js +40 -6
- package/dist/modules/n8n-packages/entities/credential/credential-importer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.d.ts +7 -3
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.js +30 -5
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.d.ts +3 -0
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.js +17 -0
- package/dist/modules/n8n-packages/entities/credential/credential-missing-mode.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential.types.d.ts +10 -4
- package/dist/modules/n8n-packages/entities/credential/credential.types.js +2 -0
- package/dist/modules/n8n-packages/entities/credential/credential.types.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.d.ts +3 -4
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js +10 -11
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-import.types.d.ts +6 -6
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.d.ts +3 -3
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js +12 -10
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.d.ts +6 -2
- package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js +33 -11
- package/dist/modules/n8n-packages/entities/workflow/workflow-publisher.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-publishing-policy.types.d.ts +8 -0
- package/dist/modules/n8n-packages/n8n-packages.types.d.ts +23 -3
- package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
- package/dist/modules/oauth-jwe/oauth-jwe.schemas.d.ts +12 -12
- package/dist/modules/oauth-server/oauth-consent.controller.js +1 -0
- package/dist/modules/oauth-server/oauth-consent.controller.js.map +1 -1
- package/dist/modules/oauth-server/oauth-consent.service.d.ts +1 -0
- package/dist/modules/oauth-server/oauth-consent.service.js +2 -0
- package/dist/modules/oauth-server/oauth-consent.service.js.map +1 -1
- package/dist/modules/oauth-server/oauth-server.module.js +1 -1
- package/dist/modules/oauth-server/oauth-server.module.js.map +1 -1
- package/dist/modules/oauth-server/oauth-server.service.d.ts +2 -0
- package/dist/modules/oauth-server/oauth-server.service.js +48 -1
- package/dist/modules/oauth-server/oauth-server.service.js.map +1 -1
- package/dist/modules/oauth-server/oauth.controller.js +4 -1
- package/dist/modules/oauth-server/oauth.controller.js.map +1 -1
- package/dist/modules/otel/otel.service.d.ts +3 -1
- package/dist/modules/otel/otel.service.js +6 -3
- package/dist/modules/otel/otel.service.js.map +1 -1
- package/dist/modules/quick-connect/handlers/firecrawl.handler.d.ts +3 -0
- package/dist/modules/quick-connect/handlers/firecrawl.handler.js +20 -7
- package/dist/modules/quick-connect/handlers/firecrawl.handler.js.map +1 -1
- package/dist/modules/quick-connect/quick-connect.config.d.ts +17 -17
- package/dist/modules/quick-connect/quick-connect.module.d.ts +3 -3
- package/dist/modules/source-control.ee/source-control-import.service.ee.js +1 -1
- package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +4 -4
- package/dist/modules/source-control.ee/source-control.service.ee.d.ts +2 -2
- package/dist/modules/sso-oidc/oidc.service.ee.d.ts +3 -1
- package/dist/modules/sso-oidc/oidc.service.ee.js +15 -25
- package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
- package/dist/modules/sso-saml/saml.service.ee.d.ts +3 -1
- package/dist/modules/sso-saml/saml.service.ee.js +15 -15
- package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
- package/dist/modules/token-exchange/services/jwks-resolver.d.ts +3 -1
- package/dist/modules/token-exchange/services/jwks-resolver.js +11 -3
- package/dist/modules/token-exchange/services/jwks-resolver.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +8 -3
- package/dist/oauth/oauth.service.js +106 -47
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/oauth/types.js.map +1 -1
- package/dist/posthog/index.js +4 -3
- package/dist/posthog/index.js.map +1 -1
- package/dist/public-api/index.js +46 -3
- package/dist/public-api/index.js.map +1 -1
- package/dist/public-api/swagger-theme.css +14 -0
- package/dist/public-api/types.d.ts +2 -0
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js +4 -3
- package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/discover/discover.service.js +9 -11
- package/dist/public-api/v1/handlers/discover/discover.service.js.map +1 -1
- package/dist/public-api/v1/handlers/executions/executions.handler.js +8 -4
- package/dist/public-api/v1/handlers/executions/executions.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js +3 -1
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/workflows/workflows.service.d.ts +1 -2
- package/dist/public-api/v1/handlers/workflows/workflows.service.js +3 -2
- package/dist/public-api/v1/handlers/workflows/workflows.service.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +124 -2
- package/dist/response-helper.d.ts +2 -1
- package/dist/response-helper.js +2 -17
- package/dist/response-helper.js.map +1 -1
- package/dist/scaling/constants.d.ts +2 -2
- package/dist/scaling/constants.js +3 -0
- package/dist/scaling/constants.js.map +1 -1
- package/dist/scaling/execution-stop.service.d.ts +15 -0
- package/dist/scaling/execution-stop.service.js +59 -0
- package/dist/scaling/execution-stop.service.js.map +1 -0
- package/dist/scaling/job-processor.js +8 -2
- package/dist/scaling/job-processor.js.map +1 -1
- package/dist/scaling/multi-main-setup.ee.d.ts +1 -0
- package/dist/scaling/multi-main-setup.ee.js +6 -6
- package/dist/scaling/multi-main-setup.ee.js.map +1 -1
- package/dist/scaling/pubsub/pubsub.event-map.d.ts +4 -0
- package/dist/scaling/pubsub/pubsub.types.d.ts +3 -1
- package/dist/security-audit/risk-reporters/instance-risk-reporter.d.ts +3 -1
- package/dist/security-audit/risk-reporters/instance-risk-reporter.js +27 -20
- package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/services/ai-gateway.service.d.ts +5 -1
- package/dist/services/ai-gateway.service.js +53 -32
- package/dist/services/ai-gateway.service.js.map +1 -1
- package/dist/services/ai-workflow-builder.service.d.ts +4 -3
- package/dist/services/ai-workflow-builder.service.js +9 -5
- package/dist/services/ai-workflow-builder.service.js.map +1 -1
- package/dist/services/credentials-tester.service.js +16 -15
- package/dist/services/credentials-tester.service.js.map +1 -1
- package/dist/services/dynamic-templates.service.d.ts +3 -1
- package/dist/services/dynamic-templates.service.js +13 -9
- package/dist/services/dynamic-templates.service.js.map +1 -1
- package/dist/services/frontend.service.d.ts +6 -1
- package/dist/services/frontend.service.js +39 -2
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/node-resource-explorer.service.js +4 -22
- package/dist/services/node-resource-explorer.service.js.map +1 -1
- package/dist/services/project.service.ee.d.ts +3 -2
- package/dist/services/project.service.ee.js +14 -3
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/protected-resource.registry.d.ts +1 -0
- package/dist/services/protected-resource.registry.js.map +1 -1
- package/dist/services/public-api-key.service.d.ts +6 -2
- package/dist/services/public-api-key.service.js +56 -10
- package/dist/services/public-api-key.service.js.map +1 -1
- package/dist/services/role.service.d.ts +2 -2
- package/dist/services/role.service.js.map +1 -1
- package/dist/services/trigger-auth-identity-seeder-proxy.service.d.ts +10 -0
- package/dist/services/trigger-auth-identity-seeder-proxy.service.js +33 -0
- package/dist/services/trigger-auth-identity-seeder-proxy.service.js.map +1 -0
- package/dist/services/workflow-statistics.service.d.ts +3 -13
- package/dist/services/workflow-statistics.service.js +77 -64
- package/dist/services/workflow-statistics.service.js.map +1 -1
- package/dist/task-runners/task-broker/task-broker-server.js +2 -1
- package/dist/task-runners/task-broker/task-broker-server.js.map +1 -1
- package/dist/task-runners/task-runner-module.js +2 -0
- package/dist/task-runners/task-runner-module.js.map +1 -1
- package/dist/telemetry/index.d.ts +25 -2
- package/dist/telemetry/index.js +80 -12
- package/dist/telemetry/index.js.map +1 -1
- package/dist/utils/ai-proxy-fetch.d.ts +3 -0
- package/dist/utils/ai-proxy-fetch.js +27 -0
- package/dist/utils/ai-proxy-fetch.js.map +1 -0
- package/dist/utils/auth-fetch.d.ts +3 -1
- package/dist/utils/auth-fetch.js +3 -4
- package/dist/utils/auth-fetch.js.map +1 -1
- package/dist/utils/strapi-utils.d.ts +8 -4
- package/dist/utils/strapi-utils.js +25 -9
- package/dist/utils/strapi-utils.js.map +1 -1
- package/dist/webhooks/live-webhooks.js +1 -0
- package/dist/webhooks/live-webhooks.js.map +1 -1
- package/dist/webhooks/test-webhooks.controller.d.ts +8 -0
- package/dist/webhooks/test-webhooks.controller.js +39 -0
- package/dist/webhooks/test-webhooks.controller.js.map +1 -0
- package/dist/webhooks/webhook-form-data.js +9 -1
- package/dist/webhooks/webhook-form-data.js.map +1 -1
- package/dist/webhooks/webhook-helpers.js +16 -0
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/webhooks/webhook-request-handler.js +35 -0
- package/dist/webhooks/webhook-request-handler.js.map +1 -1
- package/dist/workflow-execute-additional-data.js +15 -0
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-helpers.d.ts +7 -2
- package/dist/workflow-helpers.js +50 -1
- package/dist/workflow-helpers.js.map +1 -1
- package/dist/workflows/publication/publication-result.d.ts +2 -0
- package/dist/workflows/publication/publication-status-reporter.d.ts +1 -0
- package/dist/workflows/publication/publication-status-reporter.js +22 -1
- package/dist/workflows/publication/publication-status-reporter.js.map +1 -1
- package/dist/workflows/publication/published-workflow-enqueuer.d.ts +13 -0
- package/dist/workflows/publication/published-workflow-enqueuer.js +53 -0
- package/dist/workflows/publication/published-workflow-enqueuer.js.map +1 -0
- package/dist/workflows/publication/published-workflow-trigger-deactivator.d.ts +16 -0
- package/dist/workflows/publication/published-workflow-trigger-deactivator.js +79 -0
- package/dist/workflows/publication/published-workflow-trigger-deactivator.js.map +1 -0
- package/dist/workflows/publication/workflow-publication-applier.d.ts +6 -1
- package/dist/workflows/publication/workflow-publication-applier.js +39 -3
- package/dist/workflows/publication/workflow-publication-applier.js.map +1 -1
- package/dist/workflows/publication/workflow-publication-lifecycle-lock.d.ts +13 -0
- package/dist/workflows/publication/workflow-publication-lifecycle-lock.js +104 -0
- package/dist/workflows/publication/workflow-publication-lifecycle-lock.js.map +1 -0
- package/dist/workflows/publication/workflow-publication-outbox-cleanup.service.d.ts +19 -0
- package/dist/workflows/publication/workflow-publication-outbox-cleanup.service.js +109 -0
- package/dist/workflows/publication/workflow-publication-outbox-cleanup.service.js.map +1 -0
- package/dist/workflows/publication/workflow-publication-outbox-consumer.d.ts +11 -4
- package/dist/workflows/publication/workflow-publication-outbox-consumer.js +105 -45
- package/dist/workflows/publication/workflow-publication-outbox-consumer.js.map +1 -1
- package/dist/workflows/triggers/non-webhook-trigger-registrar.d.ts +4 -5
- package/dist/workflows/triggers/non-webhook-trigger-registrar.js +30 -9
- package/dist/workflows/triggers/non-webhook-trigger-registrar.js.map +1 -1
- package/dist/workflows/triggers/trigger-activation-retry.d.ts +2 -0
- package/dist/workflows/triggers/trigger-activation-retry.js +23 -0
- package/dist/workflows/triggers/trigger-activation-retry.js.map +1 -0
- package/dist/workflows/triggers/webhook-trigger-registrar.d.ts +3 -2
- package/dist/workflows/triggers/webhook-trigger-registrar.js +60 -32
- package/dist/workflows/triggers/webhook-trigger-registrar.js.map +1 -1
- package/dist/workflows/triggers/workflow-trigger-activator.d.ts +6 -3
- package/dist/workflows/triggers/workflow-trigger-activator.js +126 -60
- package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
- package/dist/workflows/workflow-creation.service.d.ts +1 -0
- package/dist/workflows/workflow-creation.service.js +17 -8
- package/dist/workflows/workflow-creation.service.js.map +1 -1
- package/dist/workflows/workflow-entity-mapper.d.ts +5 -0
- package/dist/workflows/workflow-entity-mapper.js +22 -0
- package/dist/workflows/workflow-entity-mapper.js.map +1 -0
- package/dist/workflows/workflow-execution.service.d.ts +6 -2
- package/dist/workflows/workflow-execution.service.js +36 -13
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow-history/workflow-history.service.js +1 -0
- package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
- package/dist/workflows/workflow-published-data.service.d.ts +1 -3
- package/dist/workflows/workflow-published-data.service.js +2 -9
- package/dist/workflows/workflow-published-data.service.js.map +1 -1
- package/dist/workflows/workflow-validation.service.js +2 -1
- package/dist/workflows/workflow-validation.service.js.map +1 -1
- package/dist/workflows/workflow.service.d.ts +4 -3
- package/dist/workflows/workflow.service.js +72 -33
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflows.controller.d.ts +3 -2
- package/dist/workflows/workflows.controller.js +12 -23
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/package.json +55 -37
- package/templates/form-trigger.handlebars +8 -1
|
@@ -0,0 +1,116 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AzureStore = void 0;
|
|
16
|
+
const di_1 = require("@n8n/di");
|
|
17
|
+
const chunk_1 = __importDefault(require("lodash/chunk"));
|
|
18
|
+
const n8n_core_1 = require("n8n-core");
|
|
19
|
+
const azure_blob_service_ee_1 = require("n8n-core/dist/binary-data/azure-blob/azure-blob.service.ee");
|
|
20
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
21
|
+
const constants_1 = require("./constants");
|
|
22
|
+
const corrupted_execution_data_error_1 = require("./corrupted-execution-data.error");
|
|
23
|
+
const execution_data_write_error_1 = require("./execution-data-write.error");
|
|
24
|
+
const MAX_READ_CONCURRENCY = 50;
|
|
25
|
+
const MAX_DELETE_CONCURRENCY = 50;
|
|
26
|
+
let AzureStore = class AzureStore {
|
|
27
|
+
constructor(azureBlob, reporter) {
|
|
28
|
+
this.azureBlob = azureBlob;
|
|
29
|
+
this.reporter = reporter;
|
|
30
|
+
}
|
|
31
|
+
async write(ref, payload) {
|
|
32
|
+
const body = Buffer.from((0, n8n_workflow_1.jsonStringify)({ ...payload, version: constants_1.EXECUTION_DATA_BUNDLE_VERSION }), 'utf-8');
|
|
33
|
+
try {
|
|
34
|
+
await this.azureBlob.put(this.key(ref), body);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new execution_data_write_error_1.ExecutionDataWriteError(ref, error);
|
|
38
|
+
}
|
|
39
|
+
return body.length;
|
|
40
|
+
}
|
|
41
|
+
async read(ref) {
|
|
42
|
+
let content;
|
|
43
|
+
try {
|
|
44
|
+
const buffer = await this.azureBlob.get(this.key(ref));
|
|
45
|
+
content = buffer.toString('utf-8');
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
if (this.isNotFound(error))
|
|
49
|
+
return null;
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return (0, n8n_workflow_1.jsonParse)(content);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw new corrupted_execution_data_error_1.CorruptedExecutionDataError(ref, error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async readMany(refs) {
|
|
60
|
+
const bundles = new Map();
|
|
61
|
+
if (refs.length === 0)
|
|
62
|
+
return bundles;
|
|
63
|
+
for (const batch of (0, chunk_1.default)(refs, MAX_READ_CONCURRENCY)) {
|
|
64
|
+
const bundlesInBatch = await Promise.all(batch.map(async (ref) => await this.tryRead(ref)));
|
|
65
|
+
for (const [idx, bundle] of bundlesInBatch.entries()) {
|
|
66
|
+
if (bundle)
|
|
67
|
+
bundles.set(batch[idx].executionId, bundle);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return bundles;
|
|
71
|
+
}
|
|
72
|
+
async delete(ref) {
|
|
73
|
+
const refs = Array.isArray(ref) ? ref : [ref];
|
|
74
|
+
if (refs.length === 0)
|
|
75
|
+
return;
|
|
76
|
+
for (const batch of (0, chunk_1.default)(refs, MAX_DELETE_CONCURRENCY)) {
|
|
77
|
+
await Promise.all(batch.map((r) => this.azureBlob.delete(this.key(r))));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
key({ workflowId, executionId }) {
|
|
81
|
+
return [
|
|
82
|
+
'workflows',
|
|
83
|
+
workflowId,
|
|
84
|
+
'executions',
|
|
85
|
+
executionId,
|
|
86
|
+
'execution_data',
|
|
87
|
+
constants_1.EXECUTION_DATA_BUNDLE_FILENAME,
|
|
88
|
+
].join('/');
|
|
89
|
+
}
|
|
90
|
+
async tryRead(ref) {
|
|
91
|
+
try {
|
|
92
|
+
return await this.read(ref);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (error instanceof corrupted_execution_data_error_1.CorruptedExecutionDataError) {
|
|
96
|
+
this.reporter.error(error);
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
isNotFound(error) {
|
|
103
|
+
const original = (0, n8n_workflow_1.ensureError)(error).cause ?? error;
|
|
104
|
+
if (typeof original !== 'object' || original === null)
|
|
105
|
+
return false;
|
|
106
|
+
const code = 'code' in original ? original.code : undefined;
|
|
107
|
+
return code === 'BlobNotFound';
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
exports.AzureStore = AzureStore;
|
|
111
|
+
exports.AzureStore = AzureStore = __decorate([
|
|
112
|
+
(0, di_1.Service)(),
|
|
113
|
+
__metadata("design:paramtypes", [azure_blob_service_ee_1.AzureBlobService,
|
|
114
|
+
n8n_core_1.ErrorReporter])
|
|
115
|
+
], AzureStore);
|
|
116
|
+
//# sourceMappingURL=azure-store.ee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure-store.ee.js","sourceRoot":"","sources":["../../../src/executions/execution-data/azure-store.ee.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,13 @@ export declare class DbStore implements ExecutionDataStore {
|
|
|
8
8
|
overwrite(ref: ExecutionRef, payload: ExecutionDataPayload, tx?: EntityManager): Promise<number>;
|
|
9
9
|
private measureBundleBytes;
|
|
10
10
|
read({ executionId }: ExecutionRef, tx?: EntityManager): Promise<ExecutionDataBundle | null>;
|
|
11
|
+
readWorkflowData({ executionId }: ExecutionRef, tx?: EntityManager): Promise<{
|
|
12
|
+
workflowData: Omit<import("n8n-workflow").IWorkflowBase, "pinData"> & {
|
|
13
|
+
pinData?: import("@n8n/db").ISimplifiedPinData;
|
|
14
|
+
};
|
|
15
|
+
workflowVersionId: string | null;
|
|
16
|
+
} | null>;
|
|
17
|
+
getDataByteSize({ executionId }: ExecutionRef, tx?: EntityManager): Promise<number | null>;
|
|
11
18
|
readMany(refs: ExecutionRef[]): Promise<Map<string, ExecutionDataBundle>>;
|
|
12
19
|
delete(ref: ExecutionRef | ExecutionRef[]): Promise<void>;
|
|
13
20
|
private getRepository;
|
|
@@ -50,6 +50,27 @@ let DbStore = class DbStore {
|
|
|
50
50
|
return null;
|
|
51
51
|
return { ...result, version: constants_1.EXECUTION_DATA_BUNDLE_VERSION };
|
|
52
52
|
}
|
|
53
|
+
async readWorkflowData({ executionId }, tx) {
|
|
54
|
+
const repo = this.getRepository(tx);
|
|
55
|
+
const result = await repo.findOne({
|
|
56
|
+
where: { executionId },
|
|
57
|
+
select: ['workflowData', 'workflowVersionId'],
|
|
58
|
+
});
|
|
59
|
+
if (!result)
|
|
60
|
+
return null;
|
|
61
|
+
return { workflowData: result.workflowData, workflowVersionId: result.workflowVersionId };
|
|
62
|
+
}
|
|
63
|
+
async getDataByteSize({ executionId }, tx) {
|
|
64
|
+
const repo = this.getRepository(tx);
|
|
65
|
+
const row = await repo
|
|
66
|
+
.createQueryBuilder('d')
|
|
67
|
+
.select('LENGTH(d.data)', 'size')
|
|
68
|
+
.where('d.executionId = :executionId', { executionId })
|
|
69
|
+
.getRawOne();
|
|
70
|
+
if (!row || row.size === null)
|
|
71
|
+
return null;
|
|
72
|
+
return Number(row.size);
|
|
73
|
+
}
|
|
53
74
|
async readMany(refs) {
|
|
54
75
|
const bundles = new Map();
|
|
55
76
|
if (refs.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-store.js","sourceRoot":"","sources":["../../../src/executions/execution-data/db-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"db-store.js","sourceRoot":"","sources":["../../../src/executions/execution-data/db-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,13 @@ export type ExecutionDataPayload = {
|
|
|
14
14
|
export type ExecutionDataBundle = ExecutionDataPayload & {
|
|
15
15
|
version: 1;
|
|
16
16
|
};
|
|
17
|
+
export type BundleWorkflowSnapshot = Pick<ExecutionDataBundle, 'workflowData' | 'workflowVersionId'>;
|
|
17
18
|
export interface ExecutionDataStore {
|
|
18
19
|
init?(): Promise<void>;
|
|
19
20
|
write(ref: ExecutionRef, payload: ExecutionDataPayload, tx?: EntityManager): Promise<number>;
|
|
20
21
|
read(ref: ExecutionRef, tx?: EntityManager): Promise<ExecutionDataBundle | null>;
|
|
21
22
|
readMany(refs: ExecutionRef[]): Promise<Map<string, ExecutionDataBundle>>;
|
|
23
|
+
readWorkflowData?(ref: ExecutionRef, tx?: EntityManager): Promise<BundleWorkflowSnapshot | null>;
|
|
24
|
+
getDataByteSize?(ref: ExecutionRef, tx?: EntityManager): Promise<number | null>;
|
|
22
25
|
delete(ref: ExecutionRef | ExecutionRef[]): Promise<void>;
|
|
23
26
|
}
|
|
@@ -23,8 +23,10 @@ export declare class ExecutionPersistence {
|
|
|
23
23
|
private readonly eventService;
|
|
24
24
|
private readonly logger;
|
|
25
25
|
private s3Store;
|
|
26
|
+
private azStore;
|
|
26
27
|
constructor(executionRepository: ExecutionRepository, binaryDataService: BinaryDataService, fsStore: FsStore, dbStore: DbStore, storageConfig: StorageConfig, executionsConfig: ExecutionsConfig, databaseConfig: DatabaseConfig, errorReporter: ErrorReporter, eventService: EventService, logger: Logger);
|
|
27
28
|
setS3Store(store: ExecutionDataStore): void;
|
|
29
|
+
setAzStore(store: ExecutionDataStore): void;
|
|
28
30
|
create(payload: CreateExecutionPayload): Promise<string>;
|
|
29
31
|
updateExistingExecution(executionId: string, execution: Partial<IExecutionResponse>, conditions?: UpdateExecutionConditions): Promise<boolean>;
|
|
30
32
|
findSingleExecution(id: string, options?: {
|
|
@@ -32,6 +34,7 @@ export declare class ExecutionPersistence {
|
|
|
32
34
|
includeAnnotation?: boolean;
|
|
33
35
|
unflattenData: true;
|
|
34
36
|
where?: FindOptionsWhere<ExecutionEntity>;
|
|
37
|
+
maxDataSizeBytes?: number;
|
|
35
38
|
}): Promise<IExecutionResponse | undefined>;
|
|
36
39
|
findSingleExecution(id: string, options?: {
|
|
37
40
|
includeData: true;
|
|
@@ -44,10 +47,12 @@ export declare class ExecutionPersistence {
|
|
|
44
47
|
includeAnnotation?: boolean;
|
|
45
48
|
unflattenData?: boolean;
|
|
46
49
|
where?: FindOptionsWhere<ExecutionEntity>;
|
|
50
|
+
maxDataSizeBytes?: number;
|
|
47
51
|
}): Promise<IExecutionBase | undefined>;
|
|
48
52
|
findMultipleExecutions(queryParams: FindManyOptions<ExecutionEntity>, options?: {
|
|
49
53
|
unflattenData: true;
|
|
50
54
|
includeData?: true;
|
|
55
|
+
maxDataSizeBytes?: number;
|
|
51
56
|
}): Promise<IExecutionResponse[]>;
|
|
52
57
|
findMultipleExecutions(queryParams: FindManyOptions<ExecutionEntity>, options?: {
|
|
53
58
|
unflattenData?: false | undefined;
|
|
@@ -56,10 +61,11 @@ export declare class ExecutionPersistence {
|
|
|
56
61
|
findMultipleExecutions(queryParams: FindManyOptions<ExecutionEntity>, options?: {
|
|
57
62
|
unflattenData?: boolean;
|
|
58
63
|
includeData?: boolean;
|
|
64
|
+
maxDataSizeBytes?: number;
|
|
59
65
|
}): Promise<IExecutionBase[]>;
|
|
60
66
|
findWithUnflattenedData(executionId: string, accessibleWorkflowIds: string[]): Promise<IExecutionResponse | undefined>;
|
|
61
|
-
findIfSharedUnflatten(executionId: string, sharedWorkflowIds: string[]): Promise<IExecutionResponse | undefined>;
|
|
62
|
-
getExecutionInWorkflowsForPublicApi(id: string, workflowIds: string[], includeData?: boolean): Promise<IExecutionBase | undefined>;
|
|
67
|
+
findIfSharedUnflatten(executionId: string, sharedWorkflowIds: string[], maxDataSizeBytes?: number): Promise<IExecutionResponse | undefined>;
|
|
68
|
+
getExecutionInWorkflowsForPublicApi(id: string, workflowIds: string[], includeData?: boolean, maxDataSizeBytes?: number): Promise<IExecutionBase | undefined>;
|
|
63
69
|
getExecutionsForPublicApi(params: {
|
|
64
70
|
limit: number;
|
|
65
71
|
includeData?: boolean;
|
|
@@ -67,11 +73,13 @@ export declare class ExecutionPersistence {
|
|
|
67
73
|
workflowIds?: string[];
|
|
68
74
|
status?: ExecutionStatus;
|
|
69
75
|
excludedExecutionsIds?: string[];
|
|
70
|
-
}): Promise<IExecutionBase[]>;
|
|
76
|
+
}, maxDataSizeBytes?: number): Promise<IExecutionBase[]>;
|
|
71
77
|
deleteInFlightExecution(target: DeletionTarget): Promise<void>;
|
|
72
78
|
hardDelete(target: DeletionTarget | DeletionTarget[]): Promise<void>;
|
|
73
79
|
hardDeleteBy(criteria: ExecutionDeletionCriteria): Promise<void>;
|
|
80
|
+
private deleteFsData;
|
|
74
81
|
private deleteS3Data;
|
|
82
|
+
private deleteAzData;
|
|
75
83
|
private updateEntityOnly;
|
|
76
84
|
private applyDataUpdate;
|
|
77
85
|
private pickUpdatableEntityColumns;
|
|
@@ -81,6 +89,12 @@ export declare class ExecutionPersistence {
|
|
|
81
89
|
private getStoreFor;
|
|
82
90
|
private toWorkflowSnapshot;
|
|
83
91
|
private assembleExecution;
|
|
92
|
+
private maxDisplayDataSize;
|
|
93
|
+
private isKnownOversize;
|
|
94
|
+
private assembleSkippedExecution;
|
|
95
|
+
private assembleOversizedExecution;
|
|
96
|
+
private skipOversizedEntities;
|
|
97
|
+
private assembleReadExecution;
|
|
84
98
|
private parseExecutionData;
|
|
85
99
|
private serializeAnnotation;
|
|
86
100
|
private isDuplicateExecutionError;
|
|
@@ -22,6 +22,7 @@ const corrupted_execution_data_error_1 = require("./execution-data/corrupted-exe
|
|
|
22
22
|
const db_store_1 = require("./execution-data/db-store");
|
|
23
23
|
const fs_store_1 = require("./execution-data/fs-store");
|
|
24
24
|
const missing_execution_data_error_1 = require("./execution-data/missing-execution-data.error");
|
|
25
|
+
const sum_binary_data_bytes_1 = require("./sum-binary-data-bytes");
|
|
25
26
|
const duplicate_execution_error_1 = require("../errors/duplicate-execution.error");
|
|
26
27
|
const event_service_1 = require("../events/event.service");
|
|
27
28
|
let ExecutionPersistence = class ExecutionPersistence {
|
|
@@ -40,6 +41,9 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
40
41
|
setS3Store(store) {
|
|
41
42
|
this.s3Store = store;
|
|
42
43
|
}
|
|
44
|
+
setAzStore(store) {
|
|
45
|
+
this.azStore = store;
|
|
46
|
+
}
|
|
43
47
|
async create(payload) {
|
|
44
48
|
const { data: rawData, workflowData, ...rest } = payload;
|
|
45
49
|
const { connections, nodes, name, settings, id } = workflowData;
|
|
@@ -61,7 +65,8 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
61
65
|
};
|
|
62
66
|
return await store.write(ref, bundle, tx);
|
|
63
67
|
});
|
|
64
|
-
|
|
68
|
+
const binaryDataSizeBytes = (0, sum_binary_data_bytes_1.sumBinaryDataBytes)(rawData);
|
|
69
|
+
await tx.update(db_1.ExecutionEntity, { id: executionId }, { jsonSizeBytes, binaryDataSizeBytes });
|
|
65
70
|
return executionId;
|
|
66
71
|
});
|
|
67
72
|
}
|
|
@@ -100,8 +105,18 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
100
105
|
});
|
|
101
106
|
if (!entity)
|
|
102
107
|
return undefined;
|
|
108
|
+
const max = this.maxDisplayDataSize(options);
|
|
103
109
|
const store = this.getStoreFor(entity.storedAt);
|
|
104
110
|
const ref = { workflowId: entity.workflowId, executionId: entity.id };
|
|
111
|
+
if (this.isKnownOversize(entity, max)) {
|
|
112
|
+
return (await this.assembleSkippedExecution(entity, store, ref, options));
|
|
113
|
+
}
|
|
114
|
+
if (max > 0 && entity.jsonSizeBytes === 0) {
|
|
115
|
+
const size = await store.getDataByteSize?.(ref);
|
|
116
|
+
if (typeof size === 'number' && size > max) {
|
|
117
|
+
return (await this.assembleSkippedExecution(entity, store, ref, options));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
105
120
|
const start = Date.now();
|
|
106
121
|
let success = false;
|
|
107
122
|
let unreadableBundles = 0;
|
|
@@ -115,7 +130,7 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
115
130
|
}
|
|
116
131
|
throw new missing_execution_data_error_1.MissingExecutionDataError(ref);
|
|
117
132
|
}
|
|
118
|
-
const assembled = await this.
|
|
133
|
+
const assembled = await this.assembleReadExecution(entity, bundle, options, max);
|
|
119
134
|
success = true;
|
|
120
135
|
return assembled;
|
|
121
136
|
}
|
|
@@ -145,9 +160,11 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
145
160
|
else {
|
|
146
161
|
queryParams.relations.metadata = true;
|
|
147
162
|
}
|
|
163
|
+
const max = this.maxDisplayDataSize(options);
|
|
148
164
|
if (queryParams.select) {
|
|
165
|
+
const guardFields = max > 0 ? ['jsonSizeBytes', 'workflowVersionId'] : [];
|
|
149
166
|
if (Array.isArray(queryParams.select)) {
|
|
150
|
-
for (const field of ['id', 'workflowId', 'storedAt']) {
|
|
167
|
+
for (const field of ['id', 'workflowId', 'storedAt', ...guardFields]) {
|
|
151
168
|
if (!queryParams.select.includes(field))
|
|
152
169
|
queryParams.select.push(field);
|
|
153
170
|
}
|
|
@@ -156,18 +173,21 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
156
173
|
queryParams.select.id = true;
|
|
157
174
|
queryParams.select.workflowId = true;
|
|
158
175
|
queryParams.select.storedAt = true;
|
|
176
|
+
for (const field of guardFields)
|
|
177
|
+
queryParams.select[field] = true;
|
|
159
178
|
}
|
|
160
179
|
}
|
|
161
180
|
const entities = await this.executionRepository.find(queryParams);
|
|
162
181
|
if (entities.length === 0)
|
|
163
182
|
return [];
|
|
183
|
+
const assembledById = new Map();
|
|
184
|
+
const entitiesToRead = await this.skipOversizedEntities(entities, max, assembledById);
|
|
164
185
|
const entitiesByLocation = new Map();
|
|
165
|
-
for (const entity of
|
|
186
|
+
for (const entity of entitiesToRead) {
|
|
166
187
|
const group = entitiesByLocation.get(entity.storedAt) ?? [];
|
|
167
188
|
group.push(entity);
|
|
168
189
|
entitiesByLocation.set(entity.storedAt, group);
|
|
169
190
|
}
|
|
170
|
-
const assembledById = new Map();
|
|
171
191
|
await Promise.all([...entitiesByLocation].map(async ([location, group]) => {
|
|
172
192
|
const refs = group.map((e) => ({ workflowId: e.workflowId, executionId: e.id }));
|
|
173
193
|
const store = this.getStoreFor(location);
|
|
@@ -184,7 +204,7 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
184
204
|
const bundle = bundles.get(entity.id);
|
|
185
205
|
if (!bundle)
|
|
186
206
|
return;
|
|
187
|
-
assembledById.set(entity.id, await this.
|
|
207
|
+
assembledById.set(entity.id, await this.assembleReadExecution(entity, bundle, options, max));
|
|
188
208
|
}));
|
|
189
209
|
const corrupt = group.filter((_, i) => {
|
|
190
210
|
const outcome = settled[i];
|
|
@@ -222,22 +242,24 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
222
242
|
includeAnnotation: true,
|
|
223
243
|
});
|
|
224
244
|
}
|
|
225
|
-
async findIfSharedUnflatten(executionId, sharedWorkflowIds) {
|
|
245
|
+
async findIfSharedUnflatten(executionId, sharedWorkflowIds, maxDataSizeBytes) {
|
|
226
246
|
return await this.findSingleExecution(executionId, {
|
|
227
247
|
where: { workflowId: (0, db_1.In)(sharedWorkflowIds) },
|
|
228
248
|
includeData: true,
|
|
229
249
|
unflattenData: true,
|
|
230
250
|
includeAnnotation: true,
|
|
251
|
+
maxDataSizeBytes,
|
|
231
252
|
});
|
|
232
253
|
}
|
|
233
|
-
async getExecutionInWorkflowsForPublicApi(id, workflowIds, includeData) {
|
|
254
|
+
async getExecutionInWorkflowsForPublicApi(id, workflowIds, includeData, maxDataSizeBytes) {
|
|
234
255
|
return await this.findSingleExecution(id, {
|
|
235
256
|
where: { workflowId: (0, db_1.In)(workflowIds) },
|
|
236
257
|
includeData,
|
|
237
258
|
unflattenData: true,
|
|
259
|
+
maxDataSizeBytes,
|
|
238
260
|
});
|
|
239
261
|
}
|
|
240
|
-
async getExecutionsForPublicApi(params) {
|
|
262
|
+
async getExecutionsForPublicApi(params, maxDataSizeBytes) {
|
|
241
263
|
return await this.findMultipleExecutions({
|
|
242
264
|
select: [
|
|
243
265
|
'id',
|
|
@@ -254,7 +276,7 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
254
276
|
where: this.executionRepository.getFindExecutionsForPublicApiCondition(params),
|
|
255
277
|
order: { id: 'DESC' },
|
|
256
278
|
take: params.limit,
|
|
257
|
-
}, { includeData: params.includeData, unflattenData: true });
|
|
279
|
+
}, { includeData: params.includeData, unflattenData: true, maxDataSizeBytes });
|
|
258
280
|
}
|
|
259
281
|
async deleteInFlightExecution(target) {
|
|
260
282
|
if (this.executionsConfig.pruneData) {
|
|
@@ -270,20 +292,24 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
270
292
|
const targets = Array.isArray(target) ? target : [target];
|
|
271
293
|
if (targets.length === 0)
|
|
272
294
|
return;
|
|
273
|
-
const fsTargets = targets.filter((t) => t.storedAt === 'fs');
|
|
274
295
|
await Promise.all([
|
|
275
296
|
this.executionRepository.deleteByIds(targets.map((t) => t.executionId)),
|
|
276
297
|
this.binaryDataService.deleteMany(targets.map((t) => ({ type: 'execution', ...t }))),
|
|
277
|
-
|
|
298
|
+
this.deleteFsData(targets.filter((t) => t.storedAt === 'fs')),
|
|
278
299
|
this.deleteS3Data(targets.filter((t) => t.storedAt === 's3')),
|
|
300
|
+
this.deleteAzData(targets.filter((t) => t.storedAt === 'az')),
|
|
279
301
|
]);
|
|
280
302
|
}
|
|
281
303
|
async hardDeleteBy(criteria) {
|
|
282
304
|
const refs = await this.executionRepository.deleteExecutionsByFilter(criteria);
|
|
283
|
-
|
|
284
|
-
if (fsRefs.length > 0)
|
|
285
|
-
await this.fsStore.delete(fsRefs);
|
|
305
|
+
await this.deleteFsData(refs.filter((r) => r.storedAt === 'fs'));
|
|
286
306
|
await this.deleteS3Data(refs.filter((r) => r.storedAt === 's3'));
|
|
307
|
+
await this.deleteAzData(refs.filter((r) => r.storedAt === 'az'));
|
|
308
|
+
}
|
|
309
|
+
async deleteFsData(refs) {
|
|
310
|
+
if (refs.length === 0)
|
|
311
|
+
return;
|
|
312
|
+
await this.fsStore.delete(refs);
|
|
287
313
|
}
|
|
288
314
|
async deleteS3Data(refs) {
|
|
289
315
|
if (refs.length === 0)
|
|
@@ -296,6 +322,17 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
296
322
|
}
|
|
297
323
|
await this.s3Store.delete(refs);
|
|
298
324
|
}
|
|
325
|
+
async deleteAzData(refs) {
|
|
326
|
+
if (refs.length === 0)
|
|
327
|
+
return;
|
|
328
|
+
if (!this.azStore) {
|
|
329
|
+
this.logger.warn('Skipped deleting Azure execution data - Azure store is not initialized', {
|
|
330
|
+
executionIds: refs.map((r) => r.executionId),
|
|
331
|
+
});
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
await this.azStore.delete(refs);
|
|
335
|
+
}
|
|
299
336
|
async updateEntityOnly(executionId, execution, conditions) {
|
|
300
337
|
const updatableColumns = this.pickUpdatableEntityColumns(execution);
|
|
301
338
|
if (Object.keys(updatableColumns).length === 0)
|
|
@@ -329,6 +366,7 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
329
366
|
if (data !== undefined &&
|
|
330
367
|
workflowData !== undefined &&
|
|
331
368
|
(workflowVersionId !== null || store === this.dbStore)) {
|
|
369
|
+
const binaryDataSizeBytes = (0, sum_binary_data_bytes_1.sumBinaryDataBytes)(data);
|
|
332
370
|
const jsonSizeBytes = await this.trackWrite(mode, async () => {
|
|
333
371
|
const bundle = {
|
|
334
372
|
data: (0, flatted_1.stringify)(data),
|
|
@@ -339,7 +377,7 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
339
377
|
? await this.dbStore.overwrite(ref, bundle, tx)
|
|
340
378
|
: await store.write(ref, bundle, tx);
|
|
341
379
|
});
|
|
342
|
-
await tx.update(db_1.ExecutionEntity, { id: ref.executionId }, { jsonSizeBytes });
|
|
380
|
+
await tx.update(db_1.ExecutionEntity, { id: ref.executionId }, { jsonSizeBytes, binaryDataSizeBytes });
|
|
343
381
|
return true;
|
|
344
382
|
}
|
|
345
383
|
const existing = await this.trackRead(mode, async () => await store.read(ref, tx));
|
|
@@ -355,12 +393,15 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
355
393
|
};
|
|
356
394
|
return await store.write(ref, bundle, tx);
|
|
357
395
|
});
|
|
358
|
-
|
|
396
|
+
const sizeColumns = data !== undefined
|
|
397
|
+
? { jsonSizeBytes, binaryDataSizeBytes: (0, sum_binary_data_bytes_1.sumBinaryDataBytes)(data) }
|
|
398
|
+
: { jsonSizeBytes };
|
|
399
|
+
await tx.update(db_1.ExecutionEntity, { id: ref.executionId }, sizeColumns);
|
|
359
400
|
return true;
|
|
360
401
|
});
|
|
361
402
|
}
|
|
362
403
|
pickUpdatableEntityColumns(execution) {
|
|
363
|
-
const { id: _id, data: _data, workflowId: _workflowId, workflowData: _workflowData, workflowVersionId: _workflowVersionId, createdAt: _createdAt, startedAt: _startedAt, customData: _customData, jsonSizeBytes: _jsonSizeBytes, ...updatableColumns } = execution;
|
|
404
|
+
const { id: _id, data: _data, workflowId: _workflowId, workflowData: _workflowData, workflowVersionId: _workflowVersionId, createdAt: _createdAt, startedAt: _startedAt, customData: _customData, jsonSizeBytes: _jsonSizeBytes, binaryDataSizeBytes: _binaryDataSizeBytes, ...updatableColumns } = execution;
|
|
364
405
|
return updatableColumns;
|
|
365
406
|
}
|
|
366
407
|
buildEntityWhereCondition(executionId, conditions) {
|
|
@@ -430,6 +471,11 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
430
471
|
throw new n8n_workflow_1.UnexpectedError('Execution data is stored on S3 but the S3 store is not initialized. Check that S3 is configured.');
|
|
431
472
|
}
|
|
432
473
|
return this.s3Store;
|
|
474
|
+
case 'az':
|
|
475
|
+
if (!this.azStore) {
|
|
476
|
+
throw new n8n_workflow_1.UnexpectedError('Execution data is stored on Azure Blob Storage but the Azure store is not initialized. Check that Azure is configured.');
|
|
477
|
+
}
|
|
478
|
+
return this.azStore;
|
|
433
479
|
}
|
|
434
480
|
const _exhaustive = location;
|
|
435
481
|
throw new Error(`Unknown storage location: ${String(_exhaustive)}`);
|
|
@@ -459,6 +505,63 @@ let ExecutionPersistence = class ExecutionPersistence {
|
|
|
459
505
|
: {}),
|
|
460
506
|
};
|
|
461
507
|
}
|
|
508
|
+
maxDisplayDataSize(options) {
|
|
509
|
+
return options.unflattenData ? (options.maxDataSizeBytes ?? 0) : 0;
|
|
510
|
+
}
|
|
511
|
+
isKnownOversize(entity, max) {
|
|
512
|
+
return max > 0 && entity.jsonSizeBytes > 0 && entity.jsonSizeBytes > max;
|
|
513
|
+
}
|
|
514
|
+
async assembleSkippedExecution(entity, store, ref, options) {
|
|
515
|
+
const snapshot = (await store.readWorkflowData?.(ref)) ?? undefined;
|
|
516
|
+
return this.assembleOversizedExecution(entity, { includeAnnotation: options.includeAnnotation }, snapshot);
|
|
517
|
+
}
|
|
518
|
+
assembleOversizedExecution(entity, options, snapshot) {
|
|
519
|
+
const { metadata, annotation, ...rest } = entity;
|
|
520
|
+
const serializedAnnotation = this.serializeAnnotation(annotation);
|
|
521
|
+
const workflowData = snapshot?.workflowData ?? {
|
|
522
|
+
id: entity.workflowId,
|
|
523
|
+
name: '',
|
|
524
|
+
nodes: [],
|
|
525
|
+
connections: {},
|
|
526
|
+
settings: {},
|
|
527
|
+
};
|
|
528
|
+
return {
|
|
529
|
+
...rest,
|
|
530
|
+
data: (0, n8n_workflow_1.createEmptyRunExecutionData)(),
|
|
531
|
+
workflowData,
|
|
532
|
+
workflowVersionId: snapshot?.workflowVersionId ?? entity.workflowVersionId ?? null,
|
|
533
|
+
customData: Object.fromEntries(metadata.map((m) => [m.key, m.value])),
|
|
534
|
+
dataTooLargeToDisplay: true,
|
|
535
|
+
...(options.includeAnnotation && serializedAnnotation
|
|
536
|
+
? { annotation: serializedAnnotation }
|
|
537
|
+
: {}),
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
async skipOversizedEntities(entities, max, assembledById) {
|
|
541
|
+
if (max <= 0)
|
|
542
|
+
return entities;
|
|
543
|
+
const entitiesToRead = [];
|
|
544
|
+
const oversized = [];
|
|
545
|
+
for (const entity of entities) {
|
|
546
|
+
if (this.isKnownOversize(entity, max))
|
|
547
|
+
oversized.push(entity);
|
|
548
|
+
else
|
|
549
|
+
entitiesToRead.push(entity);
|
|
550
|
+
}
|
|
551
|
+
await Promise.all(oversized.map(async (entity) => {
|
|
552
|
+
const store = this.getStoreFor(entity.storedAt);
|
|
553
|
+
const ref = { workflowId: entity.workflowId, executionId: entity.id };
|
|
554
|
+
const snapshot = (await store.readWorkflowData?.(ref)) ?? undefined;
|
|
555
|
+
assembledById.set(entity.id, this.assembleOversizedExecution(entity, {}, snapshot));
|
|
556
|
+
}));
|
|
557
|
+
return entitiesToRead;
|
|
558
|
+
}
|
|
559
|
+
async assembleReadExecution(entity, bundle, options, max) {
|
|
560
|
+
if (max > 0 && entity.jsonSizeBytes === 0 && Buffer.byteLength(bundle.data, 'utf8') > max) {
|
|
561
|
+
return this.assembleOversizedExecution(entity, { includeAnnotation: options.includeAnnotation }, { workflowData: bundle.workflowData, workflowVersionId: bundle.workflowVersionId });
|
|
562
|
+
}
|
|
563
|
+
return await this.assembleExecution(entity, bundle, options);
|
|
564
|
+
}
|
|
462
565
|
async parseExecutionData(ref, data, options) {
|
|
463
566
|
if (!options.unflattenData)
|
|
464
567
|
return data;
|