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
|
@@ -15,17 +15,20 @@ const db_1 = require("@n8n/db");
|
|
|
15
15
|
const di_1 = require("@n8n/di");
|
|
16
16
|
const collaboration_service_1 = require("../../collaboration/collaboration.service");
|
|
17
17
|
let WorkflowReviewAutoCloseService = class WorkflowReviewAutoCloseService {
|
|
18
|
-
constructor(logger, workflowReviewRequestRepository, dbLockService, collaborationService) {
|
|
18
|
+
constructor(logger, workflowReviewRequestRepository, activityRepository, dbLockService, collaborationService) {
|
|
19
19
|
this.logger = logger;
|
|
20
20
|
this.workflowReviewRequestRepository = workflowReviewRequestRepository;
|
|
21
|
+
this.activityRepository = activityRepository;
|
|
21
22
|
this.dbLockService = dbLockService;
|
|
22
23
|
this.collaborationService = collaborationService;
|
|
23
24
|
}
|
|
24
25
|
async afterWorkflowArchived(workflowId) {
|
|
25
26
|
await this.closeOpenRequestsForWorkflows([workflowId], 'workflow-archived');
|
|
27
|
+
await this.reconcileUnreviewableOpenRequests([workflowId]);
|
|
26
28
|
}
|
|
27
29
|
async afterWorkflowsTransferred(workflowIds) {
|
|
28
30
|
await this.closeOpenRequestsForWorkflows(workflowIds, 'workflow-moved');
|
|
31
|
+
await this.reconcileUnreviewableOpenRequests(workflowIds);
|
|
29
32
|
}
|
|
30
33
|
async beforeWorkflowDeleted(workflowId) {
|
|
31
34
|
await this.closeOpenRequestsForWorkflows([workflowId], 'workflow-deleted', {
|
|
@@ -33,21 +36,31 @@ let WorkflowReviewAutoCloseService = class WorkflowReviewAutoCloseService {
|
|
|
33
36
|
});
|
|
34
37
|
}
|
|
35
38
|
async afterWorkflowsDeleted(workflowIds) {
|
|
39
|
+
await this.reconcileUnreviewableOpenRequests(workflowIds);
|
|
40
|
+
}
|
|
41
|
+
async reconcileUnreviewableOpenRequests(workflowIds) {
|
|
36
42
|
try {
|
|
37
|
-
const
|
|
38
|
-
|
|
43
|
+
const closedRequests = await this.dbLockService.withLockContext(1004, async (ctx) => {
|
|
44
|
+
const requests = await this.workflowReviewRequestRepository.closeUnreviewableOpenRequests(ctx);
|
|
45
|
+
for (const { id, reason } of requests) {
|
|
46
|
+
await this.activityRepository.createActivity({
|
|
47
|
+
workflowReviewRequestId: id,
|
|
48
|
+
type: 'review.closed',
|
|
49
|
+
data: { reason },
|
|
50
|
+
createdById: null,
|
|
51
|
+
}, ctx);
|
|
52
|
+
}
|
|
53
|
+
return requests;
|
|
54
|
+
});
|
|
55
|
+
if (closedRequests.length === 0)
|
|
39
56
|
return;
|
|
40
|
-
this.logger.info('Closed workflow review request(s) left
|
|
41
|
-
reason: 'workflow-deleted',
|
|
57
|
+
this.logger.info('Closed open workflow review request(s) left on unreviewable workflows', {
|
|
42
58
|
workflowIds,
|
|
43
|
-
|
|
59
|
+
closedRequests,
|
|
44
60
|
});
|
|
45
61
|
}
|
|
46
62
|
catch (error) {
|
|
47
|
-
this.logger.error('Failed to close workflow review request(s) left
|
|
48
|
-
workflowIds,
|
|
49
|
-
error,
|
|
50
|
-
});
|
|
63
|
+
this.logger.error('Failed to close open workflow review request(s) left on unreviewable workflows', { workflowIds, error });
|
|
51
64
|
}
|
|
52
65
|
}
|
|
53
66
|
async closeOpenRequestsForWorkflows(workflowIds, reason, options = {}) {
|
|
@@ -59,6 +72,12 @@ let WorkflowReviewAutoCloseService = class WorkflowReviewAutoCloseService {
|
|
|
59
72
|
request.state = 'closed';
|
|
60
73
|
request.closedById = null;
|
|
61
74
|
await this.workflowReviewRequestRepository.saveRequest(request, ctx);
|
|
75
|
+
await this.activityRepository.createActivity({
|
|
76
|
+
workflowReviewRequestId: request.id,
|
|
77
|
+
type: 'review.closed',
|
|
78
|
+
data: { reason },
|
|
79
|
+
createdById: null,
|
|
80
|
+
}, ctx);
|
|
62
81
|
for (const linkedWorkflowId of linkedWorkflowIds)
|
|
63
82
|
affected.add(linkedWorkflowId);
|
|
64
83
|
}
|
|
@@ -90,6 +109,6 @@ let WorkflowReviewAutoCloseService = class WorkflowReviewAutoCloseService {
|
|
|
90
109
|
exports.WorkflowReviewAutoCloseService = WorkflowReviewAutoCloseService;
|
|
91
110
|
exports.WorkflowReviewAutoCloseService = WorkflowReviewAutoCloseService = __decorate([
|
|
92
111
|
(0, di_1.Service)(),
|
|
93
|
-
__metadata("design:paramtypes", [backend_common_1.Logger, db_1.WorkflowReviewRequestRepository, db_1.DbLockService, collaboration_service_1.CollaborationService])
|
|
112
|
+
__metadata("design:paramtypes", [backend_common_1.Logger, db_1.WorkflowReviewRequestRepository, db_1.WorkflowReviewActivityRepository, db_1.DbLockService, collaboration_service_1.CollaborationService])
|
|
94
113
|
], WorkflowReviewAutoCloseService);
|
|
95
114
|
//# sourceMappingURL=workflow-review-auto-close.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-review-auto-close.service.js","sourceRoot":"","sources":["../../../src/modules/workflow-reviews.ee/workflow-review-auto-close.service.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"workflow-review-auto-close.service.js","sourceRoot":"","sources":["../../../src/modules/workflow-reviews.ee/workflow-review-auto-close.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wDAA6C;AAC7C,gCAKiB;AACjB,gCAAkC;AAElC,iFAA6E;AAatE,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAC1C,YACkB,MAAc,EACd,+BAAgE,EAChE,kBAAoD,EACpD,aAA4B,EAC5B,oBAA0C;sBAJ1C,MAAM;+CACN,+BAA+B;kCAC/B,kBAAkB;6BAClB,aAAa;oCACb,oBAAoB;IACnC,CAAC;IAEJ,KAAK,CAAC,qBAAqB,CAAC,UAAkB;QAC7C,MAAM,IAAI,CAAC,6BAA6B,CAAC,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,iCAAiC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,WAAqB;QACpD,MAAM,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,UAAkB;QAG7C,MAAM,IAAI,CAAC,6BAA6B,CAAC,CAAC,UAAU,CAAC,EAAE,kBAAkB,EAAE;YAC1E,OAAO,EAAE,IAAI;SACb,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,WAAqB;QAChD,MAAM,IAAI,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAeO,KAAK,CAAC,iCAAiC,CAAC,WAAqB;QACpE,IAAI,CAAC;YACJ,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,OAE9D,KAAK,EAAE,GAAG,EAAE,EAAE;gBACb,MAAM,QAAQ,GACb,MAAM,IAAI,CAAC,+BAA+B,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;gBAO/E,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBACvC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAC3C;wBACC,uBAAuB,EAAE,EAAE;wBAC3B,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,EAAE,MAAM,EAAE;wBAChB,WAAW,EAAE,IAAI;qBACjB,EACD,GAAG,CACH,CAAC;gBACH,CAAC;gBAED,OAAO,QAAQ,CAAC;YACjB,CAAC,CACD,CAAC;YAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAExC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uEAAuE,EAAE;gBACzF,WAAW;gBACX,cAAc;aACd,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGhB,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,gFAAgF,EAChF,EAAE,WAAW,EAAE,KAAK,EAAE,CACtB,CAAC;QACH,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAC1C,WAAqB,EACrB,MAAkC,EAClC,OAAO,GAA0B,EAAE;QAEnC,IAAI,CAAC;YACJ,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,OAEnE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAGb,MAAM,YAAY,GACjB,MAAM,IAAI,CAAC,+BAA+B,CAAC,4BAA4B,CACtE,WAAW,EACX,GAAG,CACH,CAAC;gBAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;gBACnC,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,YAAY,EAAE,CAAC;oBACxE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;oBAEzB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC1B,MAAM,IAAI,CAAC,+BAA+B,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBAMrE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAC3C;wBACC,uBAAuB,EAAE,OAAO,CAAC,EAAE;wBACnC,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,EAAE,MAAM,EAAE;wBAChB,WAAW,EAAE,IAAI;qBACjB,EACD,GAAG,CACH,CAAC;oBAEF,KAAK,MAAM,gBAAgB,IAAI,iBAAiB;wBAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAClF,CAAC;gBAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;YACtB,CAAC,CACD,CAAC;YAEF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAE7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;gBAC1D,MAAM;gBACN,WAAW,EAAE,mBAAmB;aAChC,CAAC,CAAC;YAEH,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;gBAE9C,IAAI,CAAC,oBAAoB;qBACvB,mCAAmC,CAAC,UAAU,CAAC;qBAC/C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAClF,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE;gBACpE,MAAM;gBACN,WAAW;gBACX,KAAK;aACL,CAAC,CAAC;YAIH,IAAI,OAAO,CAAC,OAAO;gBAAE,MAAM,KAAK,CAAC;QAClC,CAAC;IACF,CAAC;CACD,CAAA;;yCAjKY,8BAA8B;IAD1C,IAAA,YAAO,GAAE;qCAGiB,uBAAM,EACmB,oCAA+B,EAC5C,qCAAgC,EACrC,kBAAa,EACN,4CAAoB;GANhD,8BAA8B,CAiK1C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { WorkflowReviewDecisionIneligibilityReason } from '@n8n/api-types';
|
|
2
|
+
import { ProjectRelationRepository, WorkflowReviewRequestAuthorRepository, WorkflowReviewRequestReviewerRepository, type User } from '@n8n/db';
|
|
3
|
+
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
|
|
4
|
+
import type { ReadableWorkflowReviewRequest } from './workflow-review-access.service';
|
|
5
|
+
export interface WorkflowReviewViewerEligibility {
|
|
6
|
+
canDecide: boolean;
|
|
7
|
+
decisionIneligibilityReason: WorkflowReviewDecisionIneligibilityReason | null;
|
|
8
|
+
canComment: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class WorkflowReviewEligibilityService {
|
|
11
|
+
private readonly workflowFinderService;
|
|
12
|
+
private readonly workflowReviewRequestAuthorRepository;
|
|
13
|
+
private readonly workflowReviewRequestReviewerRepository;
|
|
14
|
+
private readonly projectRelationRepository;
|
|
15
|
+
constructor(workflowFinderService: WorkflowFinderService, workflowReviewRequestAuthorRepository: WorkflowReviewRequestAuthorRepository, workflowReviewRequestReviewerRepository: WorkflowReviewRequestReviewerRepository, projectRelationRepository: ProjectRelationRepository);
|
|
16
|
+
hasAdminOverride(user: User, projectId: string): Promise<boolean>;
|
|
17
|
+
resolveViewerEligibility(user: User, access: Pick<ReadableWorkflowReviewRequest, 'request' | 'pinnedWorkflowId' | 'canReadPinnedWorkflow'>): Promise<WorkflowReviewViewerEligibility>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WorkflowReviewEligibilityService = void 0;
|
|
13
|
+
const db_1 = require("@n8n/db");
|
|
14
|
+
const di_1 = require("@n8n/di");
|
|
15
|
+
const permissions_1 = require("@n8n/permissions");
|
|
16
|
+
const workflow_finder_service_1 = require("../../workflows/workflow-finder.service");
|
|
17
|
+
let WorkflowReviewEligibilityService = class WorkflowReviewEligibilityService {
|
|
18
|
+
constructor(workflowFinderService, workflowReviewRequestAuthorRepository, workflowReviewRequestReviewerRepository, projectRelationRepository) {
|
|
19
|
+
this.workflowFinderService = workflowFinderService;
|
|
20
|
+
this.workflowReviewRequestAuthorRepository = workflowReviewRequestAuthorRepository;
|
|
21
|
+
this.workflowReviewRequestReviewerRepository = workflowReviewRequestReviewerRepository;
|
|
22
|
+
this.projectRelationRepository = projectRelationRepository;
|
|
23
|
+
}
|
|
24
|
+
async hasAdminOverride(user, projectId) {
|
|
25
|
+
if (user.role.slug === permissions_1.GLOBAL_ADMIN_ROLE_SLUG || user.role.slug === permissions_1.GLOBAL_OWNER_ROLE_SLUG) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
const adminProjectIds = await this.projectRelationRepository.getAccessibleProjectsByRoles(user.id, [permissions_1.PROJECT_ADMIN_ROLE_SLUG]);
|
|
29
|
+
return adminProjectIds.includes(projectId);
|
|
30
|
+
}
|
|
31
|
+
async resolveViewerEligibility(user, access) {
|
|
32
|
+
const { request, pinnedWorkflowId, canReadPinnedWorkflow } = access;
|
|
33
|
+
if (!pinnedWorkflowId) {
|
|
34
|
+
return {
|
|
35
|
+
canDecide: false,
|
|
36
|
+
decisionIneligibilityReason: 'missing_permission',
|
|
37
|
+
canComment: false,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const [workflow, isAuthor] = await Promise.all([
|
|
41
|
+
this.workflowFinderService.findWorkflowForUser(pinnedWorkflowId, user, ['workflow:read']),
|
|
42
|
+
this.workflowReviewRequestAuthorRepository.isAuthor({ workflowReviewRequestId: request.id, userId: user.id }, {}),
|
|
43
|
+
]);
|
|
44
|
+
if (!workflow) {
|
|
45
|
+
return {
|
|
46
|
+
canDecide: false,
|
|
47
|
+
decisionIneligibilityReason: 'missing_permission',
|
|
48
|
+
canComment: isAuthor ? canReadPinnedWorkflow : false,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (await this.hasAdminOverride(user, request.projectId)) {
|
|
52
|
+
return { canDecide: true, decisionIneligibilityReason: null, canComment: true };
|
|
53
|
+
}
|
|
54
|
+
if (isAuthor) {
|
|
55
|
+
return {
|
|
56
|
+
canDecide: false,
|
|
57
|
+
decisionIneligibilityReason: 'author',
|
|
58
|
+
canComment: canReadPinnedWorkflow,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const isAssignedReviewer = await this.workflowReviewRequestReviewerRepository.isReviewer({ workflowReviewRequestId: request.id, userId: user.id }, {});
|
|
62
|
+
if (!isAssignedReviewer) {
|
|
63
|
+
return {
|
|
64
|
+
canDecide: false,
|
|
65
|
+
decisionIneligibilityReason: 'missing_reviewer_permission',
|
|
66
|
+
canComment: false,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return { canDecide: true, decisionIneligibilityReason: null, canComment: true };
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.WorkflowReviewEligibilityService = WorkflowReviewEligibilityService;
|
|
73
|
+
exports.WorkflowReviewEligibilityService = WorkflowReviewEligibilityService = __decorate([
|
|
74
|
+
(0, di_1.Service)(),
|
|
75
|
+
__metadata("design:paramtypes", [workflow_finder_service_1.WorkflowFinderService, db_1.WorkflowReviewRequestAuthorRepository, db_1.WorkflowReviewRequestReviewerRepository, db_1.ProjectRelationRepository])
|
|
76
|
+
], WorkflowReviewEligibilityService);
|
|
77
|
+
//# sourceMappingURL=workflow-review-eligibility.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-review-eligibility.service.js","sourceRoot":"","sources":["../../../src/modules/workflow-reviews.ee/workflow-review-eligibility.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
import type { GetWorkflowReviewInboxSummaryResponse, ListWorkflowReviewInboxQueryDto, ListWorkflowReviewInboxResponse, WorkflowReviewRequestDetail } from '@n8n/api-types';
|
|
2
|
-
import { UserRepository, WorkflowPublishedVersionRepository, WorkflowReviewRequestRepository, WorkflowReviewRequestReviewerRepository, WorkflowReviewRequestWorkflowRepository, type User } from '@n8n/db';
|
|
3
|
-
import { ProjectService } from '../../services/project.service.ee';
|
|
4
|
-
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
|
|
2
|
+
import { UserRepository, WorkflowPublishedVersionRepository, WorkflowReviewRequestAuthorRepository, WorkflowReviewRequestRepository, WorkflowReviewRequestReviewerRepository, WorkflowReviewRequestWorkflowRepository, type User } from '@n8n/db';
|
|
5
3
|
import { WorkflowHistoryService } from '../../workflows/workflow-history/workflow-history.service';
|
|
6
|
-
import {
|
|
4
|
+
import { WorkflowReviewAccessService } from './workflow-review-access.service';
|
|
5
|
+
import { WorkflowReviewEligibilityService } from './workflow-review-eligibility.service';
|
|
7
6
|
import { WorkflowReviewFeatureGate } from './workflow-review-feature-gate.service';
|
|
8
7
|
export declare class WorkflowReviewInboxService {
|
|
9
8
|
private readonly featureGate;
|
|
10
|
-
private readonly
|
|
9
|
+
private readonly accessService;
|
|
11
10
|
private readonly workflowHistoryService;
|
|
12
11
|
private readonly workflowPublishedVersionRepository;
|
|
13
12
|
private readonly workflowReviewRequestRepository;
|
|
14
13
|
private readonly workflowReviewRequestWorkflowRepository;
|
|
15
14
|
private readonly workflowReviewRequestReviewerRepository;
|
|
15
|
+
private readonly workflowReviewRequestAuthorRepository;
|
|
16
16
|
private readonly userRepository;
|
|
17
|
-
private readonly
|
|
18
|
-
|
|
19
|
-
constructor(featureGate: WorkflowReviewFeatureGate, workflowFinderService: WorkflowFinderService, workflowHistoryService: WorkflowHistoryService, workflowPublishedVersionRepository: WorkflowPublishedVersionRepository, workflowReviewRequestRepository: WorkflowReviewRequestRepository, workflowReviewRequestWorkflowRepository: WorkflowReviewRequestWorkflowRepository, workflowReviewRequestReviewerRepository: WorkflowReviewRequestReviewerRepository, userRepository: UserRepository, projectService: ProjectService, decisionEligibilityService: WorkflowReviewDecisionEligibilityService);
|
|
17
|
+
private readonly eligibilityService;
|
|
18
|
+
constructor(featureGate: WorkflowReviewFeatureGate, accessService: WorkflowReviewAccessService, workflowHistoryService: WorkflowHistoryService, workflowPublishedVersionRepository: WorkflowPublishedVersionRepository, workflowReviewRequestRepository: WorkflowReviewRequestRepository, workflowReviewRequestWorkflowRepository: WorkflowReviewRequestWorkflowRepository, workflowReviewRequestReviewerRepository: WorkflowReviewRequestReviewerRepository, workflowReviewRequestAuthorRepository: WorkflowReviewRequestAuthorRepository, userRepository: UserRepository, eligibilityService: WorkflowReviewEligibilityService);
|
|
20
19
|
listForInbox(user: User, query: ListWorkflowReviewInboxQueryDto): Promise<ListWorkflowReviewInboxResponse>;
|
|
21
20
|
getInboxSummaryForUser(user: User): Promise<GetWorkflowReviewInboxSummaryResponse>;
|
|
22
21
|
getDetail(user: User, workflowReviewRequestId: string): Promise<WorkflowReviewRequestDetail>;
|
|
23
|
-
|
|
24
|
-
private canAccessRequest;
|
|
25
|
-
private filterReadableWorkflowRows;
|
|
22
|
+
private resolveParticipants;
|
|
26
23
|
private toWorkflowDetail;
|
|
27
24
|
private findVersionSnapshot;
|
|
28
25
|
private toVersionSnapshot;
|
|
@@ -12,36 +12,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.WorkflowReviewInboxService = void 0;
|
|
13
13
|
const db_1 = require("@n8n/db");
|
|
14
14
|
const di_1 = require("@n8n/di");
|
|
15
|
-
const permissions_1 = require("@n8n/permissions");
|
|
16
15
|
const bad_request_error_1 = require("../../errors/response-errors/bad-request.error");
|
|
17
|
-
const not_found_error_1 = require("../../errors/response-errors/not-found.error");
|
|
18
|
-
const project_service_ee_1 = require("../../services/project.service.ee");
|
|
19
|
-
const workflow_finder_service_1 = require("../../workflows/workflow-finder.service");
|
|
20
16
|
const workflow_history_service_1 = require("../../workflows/workflow-history/workflow-history.service");
|
|
21
|
-
const
|
|
17
|
+
const workflow_review_access_service_1 = require("./workflow-review-access.service");
|
|
18
|
+
const workflow_review_eligibility_service_1 = require("./workflow-review-eligibility.service");
|
|
22
19
|
const workflow_review_feature_gate_service_1 = require("./workflow-review-feature-gate.service");
|
|
23
20
|
const workflow_review_mapper_1 = require("./workflow-review.mapper");
|
|
24
21
|
let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
25
|
-
constructor(featureGate,
|
|
22
|
+
constructor(featureGate, accessService, workflowHistoryService, workflowPublishedVersionRepository, workflowReviewRequestRepository, workflowReviewRequestWorkflowRepository, workflowReviewRequestReviewerRepository, workflowReviewRequestAuthorRepository, userRepository, eligibilityService) {
|
|
26
23
|
this.featureGate = featureGate;
|
|
27
|
-
this.
|
|
24
|
+
this.accessService = accessService;
|
|
28
25
|
this.workflowHistoryService = workflowHistoryService;
|
|
29
26
|
this.workflowPublishedVersionRepository = workflowPublishedVersionRepository;
|
|
30
27
|
this.workflowReviewRequestRepository = workflowReviewRequestRepository;
|
|
31
28
|
this.workflowReviewRequestWorkflowRepository = workflowReviewRequestWorkflowRepository;
|
|
32
29
|
this.workflowReviewRequestReviewerRepository = workflowReviewRequestReviewerRepository;
|
|
30
|
+
this.workflowReviewRequestAuthorRepository = workflowReviewRequestAuthorRepository;
|
|
33
31
|
this.userRepository = userRepository;
|
|
34
|
-
this.
|
|
35
|
-
this.decisionEligibilityService = decisionEligibilityService;
|
|
32
|
+
this.eligibilityService = eligibilityService;
|
|
36
33
|
}
|
|
37
34
|
async listForInbox(user, query) {
|
|
38
35
|
await this.featureGate.assertAvailable();
|
|
39
|
-
const
|
|
36
|
+
const visibility = await this.accessService.resolveInboxVisibility(user);
|
|
40
37
|
const { limit } = query;
|
|
41
38
|
const rows = await this.workflowReviewRequestRepository.findManyForInbox({
|
|
42
|
-
|
|
43
|
-
requesterId: user.id,
|
|
39
|
+
visibility,
|
|
44
40
|
state: query.state ?? 'open',
|
|
41
|
+
category: query.category === undefined ? undefined : { userId: user.id, category: query.category },
|
|
45
42
|
limit: limit + 1,
|
|
46
43
|
cursor: query.cursor ? this.decodeInboxCursor(query.cursor) : undefined,
|
|
47
44
|
});
|
|
@@ -50,18 +47,20 @@ let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
|
50
47
|
const lastRow = data.at(-1);
|
|
51
48
|
const nextCursor = hasMore && lastRow ? this.encodeInboxCursor(lastRow) : null;
|
|
52
49
|
const requestIds = data.map((row) => row.id);
|
|
53
|
-
const [linkedWorkflowByRequestId, reviewerRows] = await Promise.all([
|
|
50
|
+
const [linkedWorkflowByRequestId, reviewerRows, authorRows] = await Promise.all([
|
|
54
51
|
this.workflowReviewRequestWorkflowRepository.findLinkedWorkflowsByRequestIds(requestIds),
|
|
55
52
|
this.workflowReviewRequestReviewerRepository.findByRequestIds(requestIds),
|
|
53
|
+
this.workflowReviewRequestAuthorRepository.findByRequestIds(requestIds),
|
|
56
54
|
]);
|
|
57
|
-
const participantsByRequestId = await this.hydrateParticipants(data, reviewerRows);
|
|
55
|
+
const participantsByRequestId = await this.hydrateParticipants(data, reviewerRows, authorRows);
|
|
58
56
|
return {
|
|
59
57
|
data: data.map((row) => {
|
|
60
|
-
const { requester, reviewers } = participantsByRequestId.get(row.id) ?? {
|
|
58
|
+
const { requester, authors, reviewers } = participantsByRequestId.get(row.id) ?? {
|
|
61
59
|
requester: null,
|
|
60
|
+
authors: [],
|
|
62
61
|
reviewers: [],
|
|
63
62
|
};
|
|
64
|
-
return this.toInboxItem(row, linkedWorkflowByRequestId.get(row.id) ?? null, requester, reviewers);
|
|
63
|
+
return this.toInboxItem(row, linkedWorkflowByRequestId.get(row.id) ?? null, requester, authors, reviewers);
|
|
65
64
|
}),
|
|
66
65
|
nextCursor,
|
|
67
66
|
hasMore,
|
|
@@ -69,63 +68,38 @@ let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
|
69
68
|
}
|
|
70
69
|
async getInboxSummaryForUser(user) {
|
|
71
70
|
await this.featureGate.assertAvailable();
|
|
72
|
-
const
|
|
73
|
-
return await this.workflowReviewRequestRepository.countByStateForInbox({
|
|
74
|
-
projectIds,
|
|
75
|
-
requesterId: user.id,
|
|
76
|
-
});
|
|
71
|
+
const visibility = await this.accessService.resolveInboxVisibility(user);
|
|
72
|
+
return await this.workflowReviewRequestRepository.countByStateForInbox({ visibility });
|
|
77
73
|
}
|
|
78
74
|
async getDetail(user, workflowReviewRequestId) {
|
|
79
75
|
await this.featureGate.assertAvailable();
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
throw new not_found_error_1.NotFoundError('Could not find review request');
|
|
83
|
-
}
|
|
84
|
-
const [workflowRows, reviewerRows] = await Promise.all([
|
|
85
|
-
this.workflowReviewRequestWorkflowRepository.findLinkedWorkflowDetailsByRequestId(request.id),
|
|
86
|
-
this.workflowReviewRequestReviewerRepository.findByRequestIds([request.id]),
|
|
87
|
-
]);
|
|
88
|
-
const readableRows = await this.filterReadableWorkflowRows(user, workflowRows);
|
|
89
|
-
if (request.createdById !== user.id && workflowRows.length > 0 && readableRows.length === 0) {
|
|
90
|
-
throw new not_found_error_1.NotFoundError('Could not find review request');
|
|
91
|
-
}
|
|
76
|
+
const access = await this.accessService.findReadableRequestOrFail(user, workflowReviewRequestId);
|
|
77
|
+
const { request, readableWorkflowRows } = access;
|
|
92
78
|
const [workflows, participantsByRequestId, eligibility] = await Promise.all([
|
|
93
|
-
Promise.all(
|
|
94
|
-
this.
|
|
95
|
-
this.
|
|
79
|
+
Promise.all(readableWorkflowRows.map(async (row) => await this.toWorkflowDetail(row))),
|
|
80
|
+
this.resolveParticipants(request),
|
|
81
|
+
this.eligibilityService.resolveViewerEligibility(user, access),
|
|
96
82
|
]);
|
|
97
|
-
const { requester, reviewers } = participantsByRequestId.get(request.id) ?? {
|
|
83
|
+
const { requester, authors, reviewers } = participantsByRequestId.get(request.id) ?? {
|
|
98
84
|
requester: null,
|
|
85
|
+
authors: [],
|
|
99
86
|
reviewers: [],
|
|
100
87
|
};
|
|
101
88
|
return {
|
|
102
|
-
...this.toInboxItem(request, workflows.at(0) ?? null, requester, reviewers),
|
|
89
|
+
...this.toInboxItem(request, workflows.at(0) ?? null, requester, authors, reviewers),
|
|
103
90
|
description: request.description,
|
|
104
91
|
workflows,
|
|
105
92
|
viewerCanDecide: eligibility.canDecide,
|
|
106
|
-
viewerDecisionIneligibilityReason: eligibility.
|
|
93
|
+
viewerDecisionIneligibilityReason: eligibility.decisionIneligibilityReason,
|
|
94
|
+
viewerCanComment: eligibility.canComment,
|
|
107
95
|
};
|
|
108
96
|
}
|
|
109
|
-
async
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
async canAccessRequest(user, request) {
|
|
116
|
-
if (request.createdById === user.id) {
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
const projectIds = await this.resolveAccessibleProjectIds(user);
|
|
120
|
-
return projectIds === null || projectIds.includes(request.projectId);
|
|
121
|
-
}
|
|
122
|
-
async filterReadableWorkflowRows(user, rows) {
|
|
123
|
-
const readable = await Promise.all(rows.map(async (row) => (await this.workflowFinderService.findWorkflowForUser(row.workflowId, user, [
|
|
124
|
-
'workflow:read',
|
|
125
|
-
]))
|
|
126
|
-
? row
|
|
127
|
-
: null));
|
|
128
|
-
return readable.filter((row) => row !== null);
|
|
97
|
+
async resolveParticipants(request) {
|
|
98
|
+
const [reviewerRows, authorRows] = await Promise.all([
|
|
99
|
+
this.workflowReviewRequestReviewerRepository.findByRequestIds([request.id]),
|
|
100
|
+
this.workflowReviewRequestAuthorRepository.findByRequestIds([request.id]),
|
|
101
|
+
]);
|
|
102
|
+
return await this.hydrateParticipants([request], reviewerRows, authorRows);
|
|
129
103
|
}
|
|
130
104
|
async toWorkflowDetail(row) {
|
|
131
105
|
const publishedVersionId = await this.workflowPublishedVersionRepository.getPublishedVersionId(row.workflowId);
|
|
@@ -158,16 +132,13 @@ let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
|
158
132
|
createdAt: version.createdAt.toISOString(),
|
|
159
133
|
};
|
|
160
134
|
}
|
|
161
|
-
async hydrateParticipants(rows, reviewerRows) {
|
|
162
|
-
const reviewerIdsByRequestId =
|
|
163
|
-
|
|
164
|
-
const ids = reviewerIdsByRequestId.get(workflowReviewRequestId) ?? [];
|
|
165
|
-
ids.push(userId);
|
|
166
|
-
reviewerIdsByRequestId.set(workflowReviewRequestId, ids);
|
|
167
|
-
}
|
|
135
|
+
async hydrateParticipants(rows, reviewerRows, authorRows) {
|
|
136
|
+
const reviewerIdsByRequestId = groupUserIdsByRequestId(reviewerRows);
|
|
137
|
+
const authorIdsByRequestId = groupUserIdsByRequestId(authorRows);
|
|
168
138
|
const userIds = new Set([
|
|
169
139
|
...rows.map((row) => row.createdById).filter((id) => id !== null),
|
|
170
140
|
...reviewerRows.map((row) => row.userId),
|
|
141
|
+
...authorRows.map((row) => row.userId),
|
|
171
142
|
]);
|
|
172
143
|
const usersById = new Map();
|
|
173
144
|
if (userIds.size > 0) {
|
|
@@ -175,13 +146,13 @@ let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
|
175
146
|
usersById.set(user.id, (0, workflow_review_mapper_1.toEligibleReviewer)(user));
|
|
176
147
|
}
|
|
177
148
|
}
|
|
149
|
+
const resolve = (userIdsForRequest) => userIdsForRequest.map((userId) => usersById.get(userId)).filter((user) => user !== undefined);
|
|
178
150
|
return new Map(rows.map((row) => [
|
|
179
151
|
row.id,
|
|
180
152
|
{
|
|
181
153
|
requester: row.createdById ? (usersById.get(row.createdById) ?? null) : null,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
.filter((reviewer) => reviewer !== undefined),
|
|
154
|
+
authors: resolve(authorIdsByRequestId.get(row.id) ?? []),
|
|
155
|
+
reviewers: resolve(reviewerIdsByRequestId.get(row.id) ?? []),
|
|
185
156
|
},
|
|
186
157
|
]));
|
|
187
158
|
}
|
|
@@ -201,7 +172,7 @@ let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
|
201
172
|
}
|
|
202
173
|
return { createdAt, id };
|
|
203
174
|
}
|
|
204
|
-
toInboxItem(entity, linkedWorkflow, requester, reviewers) {
|
|
175
|
+
toInboxItem(entity, linkedWorkflow, requester, authors, reviewers) {
|
|
205
176
|
return {
|
|
206
177
|
id: entity.id,
|
|
207
178
|
projectId: entity.projectId,
|
|
@@ -213,6 +184,7 @@ let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
|
213
184
|
createdAt: entity.createdAt.toISOString(),
|
|
214
185
|
updatedAt: entity.updatedAt.toISOString(),
|
|
215
186
|
requester,
|
|
187
|
+
authors,
|
|
216
188
|
reviewers,
|
|
217
189
|
};
|
|
218
190
|
}
|
|
@@ -220,6 +192,15 @@ let WorkflowReviewInboxService = class WorkflowReviewInboxService {
|
|
|
220
192
|
exports.WorkflowReviewInboxService = WorkflowReviewInboxService;
|
|
221
193
|
exports.WorkflowReviewInboxService = WorkflowReviewInboxService = __decorate([
|
|
222
194
|
(0, di_1.Service)(),
|
|
223
|
-
__metadata("design:paramtypes", [workflow_review_feature_gate_service_1.WorkflowReviewFeatureGate,
|
|
195
|
+
__metadata("design:paramtypes", [workflow_review_feature_gate_service_1.WorkflowReviewFeatureGate, workflow_review_access_service_1.WorkflowReviewAccessService, workflow_history_service_1.WorkflowHistoryService, db_1.WorkflowPublishedVersionRepository, db_1.WorkflowReviewRequestRepository, db_1.WorkflowReviewRequestWorkflowRepository, db_1.WorkflowReviewRequestReviewerRepository, db_1.WorkflowReviewRequestAuthorRepository, db_1.UserRepository, workflow_review_eligibility_service_1.WorkflowReviewEligibilityService])
|
|
224
196
|
], WorkflowReviewInboxService);
|
|
197
|
+
function groupUserIdsByRequestId(rows) {
|
|
198
|
+
const idsByRequestId = new Map();
|
|
199
|
+
for (const { workflowReviewRequestId, userId } of rows) {
|
|
200
|
+
const ids = idsByRequestId.get(workflowReviewRequestId) ?? [];
|
|
201
|
+
ids.push(userId);
|
|
202
|
+
idsByRequestId.set(workflowReviewRequestId, ids);
|
|
203
|
+
}
|
|
204
|
+
return idsByRequestId;
|
|
205
|
+
}
|
|
225
206
|
//# sourceMappingURL=workflow-review-inbox.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-review-inbox.service.js","sourceRoot":"","sources":["../../../src/modules/workflow-reviews.ee/workflow-review-inbox.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,
|
|
1
|
+
{"version":3,"file":"workflow-review-inbox.service.js","sourceRoot":"","sources":["../../../src/modules/workflow-reviews.ee/workflow-review-inbox.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,gCAeiB;AACjB,gCAAkC;AAElC,kFAA6E;AAC7E,oGAA+F;AAE/F,qFAA+E;AAC/E,+FAAyF;AACzF,iGAAmF;AACnF,qEAA8D;AASvD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACtC,YACkB,WAAsC,EACtC,aAA0C,EAC1C,sBAA8C,EAC9C,kCAAsE,EACtE,+BAAgE,EAChE,uCAAgF,EAChF,uCAAgF,EAChF,qCAA4E,EAC5E,cAA8B,EAC9B,kBAAoD;2BATpD,WAAW;6BACX,aAAa;sCACb,sBAAsB;kDACtB,kCAAkC;+CAClC,+BAA+B;uDAC/B,uCAAuC;uDACvC,uCAAuC;qDACvC,qCAAqC;8BACrC,cAAc;kCACd,kBAAkB;IACjC,CAAC;IAEJ,KAAK,CAAC,YAAY,CACjB,IAAU,EACV,KAAsC;QAEtC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAEzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,CAAC;YACxE,UAAU;YACV,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM;YAC5B,QAAQ,EACP,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;YACzF,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACvE,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,UAAU,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,yBAAyB,EAAE,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/E,IAAI,CAAC,uCAAuC,CAAC,+BAA+B,CAAC,UAAU,CAAC;YACxF,IAAI,CAAC,uCAAuC,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACzE,IAAI,CAAC,qCAAqC,CAAC,gBAAgB,CAAC,UAAU,CAAC;SACvE,CAAC,CAAC;QAEH,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAE/F,OAAO;YACN,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI;oBAChF,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE,EAAE;iBACb,CAAC;gBACF,OAAO,IAAI,CAAC,WAAW,CACtB,GAAG,EACH,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAC7C,SAAS,EACT,OAAO,EACP,SAAS,CACT,CAAC;YACH,CAAC,CAAC;YACF,UAAU;YACV,OAAO;SACP,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAU;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAEzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACzE,OAAO,MAAM,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,SAAS,CACd,IAAU,EACV,uBAA+B;QAE/B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAChE,IAAI,EACJ,uBAAuB,CACvB,CAAC;QACF,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;QAEjD,MAAM,CAAC,SAAS,EAAE,uBAAuB,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAGjC,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC;SAC9D,CAAC,CAAC;QAEH,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI;YACpF,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACb,CAAC;QACF,OAAO;YAEN,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;YACpF,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS;YACT,eAAe,EAAE,WAAW,CAAC,SAAS;YACtC,iCAAiC,EAAE,WAAW,CAAC,2BAA2B;YAC1E,gBAAgB,EAAE,WAAW,CAAC,UAAU;SACxC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAA8B;QAC/D,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpD,IAAI,CAAC,uCAAuC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,qCAAqC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IAMO,KAAK,CAAC,gBAAgB,CAC7B,GAA2C;QAE3C,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,kCAAkC,CAAC,qBAAqB,CAC7F,GAAG,CAAC,UAAU,CACd,CAAC;QAEF,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC;YAC/D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;SAC5D,CAAC,CAAC;QAEH,OAAO;YACN,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,aAAa;YACb,eAAe;SACf,CAAC;IACH,CAAC;IAGO,KAAK,CAAC,mBAAmB,CAChC,UAAkB,EAClB,SAAwB;QAExB,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrF,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAEO,iBAAiB,CAAC,OAAwB;QACjD,OAAO;YACN,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;SAC1C,CAAC;IACH,CAAC;IAQO,KAAK,CAAC,mBAAmB,CAChC,IAA6B,EAC7B,YAA6C,EAC7C,UAAyC;QAWzC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAEjE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;YACvB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;YACjE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;SACtC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0C,CAAC;QACpE,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;gBAC1E,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAA,2CAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,iBAA2B,EAAE,EAAE,CAC/C,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAE/F,OAAO,IAAI,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YACjB,GAAG,CAAC,EAAE;YACN;gBACC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC5E,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACxD,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;aAC5D;SACD,CAAC,CACF,CAAC;IACH,CAAC;IAOO,iBAAiB,CAAC,GAA0B;QACnD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9F,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7D,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,mCAAe,CAAC,2BAA2B,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC1B,CAAC;IAEO,WAAW,CAClB,MAA6B,EAC7B,cAA0D,EAC1D,SAAgD,EAChD,OAAyC,EACzC,SAA2C;QAE3C,OAAO;YACN,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,cAAc,EAAE,YAAY,IAAI,IAAI;YAClD,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,IAAI,IAAI;YAC5D,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;YACzC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;YACzC,SAAS;YACT,OAAO;YACP,SAAS;SACT,CAAC;IACH,CAAC;CACD,CAAA;;qCAtQY,0BAA0B;IADtC,IAAA,YAAO,GAAE;qCAGsB,gEAAyB,EACvB,4DAA2B,EAClB,iDAAsB,EACV,uCAAkC,EACrC,oCAA+B,EACvB,4CAAuC,EACvC,4CAAuC,EACzC,0CAAqC,EAC5D,mBAAc,EACV,sEAAgC;GAX1D,0BAA0B,CAsQtC;AAGD,SAAS,uBAAuB,CAC/B,IAAgE;IAEhE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;IACnD,KAAK,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjB,cAAc,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { CreateWorkflowReviewRequestDto, DecideWorkflowReviewRequestDto, DecideWorkflowReviewRequestResponse, GetWorkflowReviewEligibleReviewersQueryDto, ListWorkflowReviewRequestsQueryDto, UpdateWorkflowReviewRequestVersionDto, WorkflowReviewEligibleReviewersList, WorkflowReviewRequestList, WorkflowReviewRequestSummary } from '@n8n/api-types';
|
|
2
2
|
import { Logger } from '@n8n/backend-common';
|
|
3
|
-
import { DbLockService, SharedWorkflowRepository, UserRepository, WorkflowHistoryRepository, WorkflowPublishHistoryRepository, WorkflowReviewRequestAuthorRepository, WorkflowReviewRequestRepository, WorkflowRepository, WorkflowReviewRequestReviewerRepository, WorkflowReviewRequestWorkflowRepository, type User } from '@n8n/db';
|
|
3
|
+
import { DbLockService, SharedWorkflowRepository, UserRepository, WorkflowHistoryRepository, WorkflowPublishHistoryRepository, WorkflowReviewRequestAuthorRepository, WorkflowReviewRequestRepository, WorkflowRepository, WorkflowReviewActivityRepository, WorkflowReviewRequestReviewerRepository, WorkflowReviewRequestWorkflowRepository, type User } from '@n8n/db';
|
|
4
4
|
import { CollaborationService } from '../../collaboration/collaboration.service';
|
|
5
5
|
import { RoleService } from '../../services/role.service';
|
|
6
6
|
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
|
|
7
7
|
import { WorkflowHistoryService } from '../../workflows/workflow-history/workflow-history.service';
|
|
8
8
|
import { WorkflowService } from '../../workflows/workflow.service';
|
|
9
|
-
import {
|
|
9
|
+
import { WorkflowReviewEligibilityService } from './workflow-review-eligibility.service';
|
|
10
10
|
import { WorkflowReviewFeatureGate } from './workflow-review-feature-gate.service';
|
|
11
11
|
export declare class WorkflowReviewRequestService {
|
|
12
12
|
private readonly logger;
|
|
@@ -21,13 +21,14 @@ export declare class WorkflowReviewRequestService {
|
|
|
21
21
|
private readonly workflowReviewRequestWorkflowRepository;
|
|
22
22
|
private readonly workflowReviewRequestAuthorRepository;
|
|
23
23
|
private readonly workflowReviewRequestReviewerRepository;
|
|
24
|
+
private readonly activityRepository;
|
|
24
25
|
private readonly userRepository;
|
|
25
|
-
private readonly
|
|
26
|
+
private readonly eligibilityService;
|
|
26
27
|
private readonly roleService;
|
|
27
28
|
private readonly dbLockService;
|
|
28
29
|
private readonly collaborationService;
|
|
29
30
|
private readonly workflowService;
|
|
30
|
-
constructor(logger: Logger, featureGate: WorkflowReviewFeatureGate, workflowFinderService: WorkflowFinderService, workflowHistoryService: WorkflowHistoryService, workflowHistoryRepository: WorkflowHistoryRepository, workflowRepository: WorkflowRepository, sharedWorkflowRepository: SharedWorkflowRepository, workflowPublishHistoryRepository: WorkflowPublishHistoryRepository, workflowReviewRequestRepository: WorkflowReviewRequestRepository, workflowReviewRequestWorkflowRepository: WorkflowReviewRequestWorkflowRepository, workflowReviewRequestAuthorRepository: WorkflowReviewRequestAuthorRepository, workflowReviewRequestReviewerRepository: WorkflowReviewRequestReviewerRepository, userRepository: UserRepository,
|
|
31
|
+
constructor(logger: Logger, featureGate: WorkflowReviewFeatureGate, workflowFinderService: WorkflowFinderService, workflowHistoryService: WorkflowHistoryService, workflowHistoryRepository: WorkflowHistoryRepository, workflowRepository: WorkflowRepository, sharedWorkflowRepository: SharedWorkflowRepository, workflowPublishHistoryRepository: WorkflowPublishHistoryRepository, workflowReviewRequestRepository: WorkflowReviewRequestRepository, workflowReviewRequestWorkflowRepository: WorkflowReviewRequestWorkflowRepository, workflowReviewRequestAuthorRepository: WorkflowReviewRequestAuthorRepository, workflowReviewRequestReviewerRepository: WorkflowReviewRequestReviewerRepository, activityRepository: WorkflowReviewActivityRepository, userRepository: UserRepository, eligibilityService: WorkflowReviewEligibilityService, roleService: RoleService, dbLockService: DbLockService, collaborationService: CollaborationService, workflowService: WorkflowService);
|
|
31
32
|
private findEligibleReviewers;
|
|
32
33
|
list(user: User, query: ListWorkflowReviewRequestsQueryDto): Promise<WorkflowReviewRequestList>;
|
|
33
34
|
private toWorkflowScopedItems;
|
|
@@ -41,6 +42,7 @@ export declare class WorkflowReviewRequestService {
|
|
|
41
42
|
create(user: User, dto: CreateWorkflowReviewRequestDto): Promise<WorkflowReviewRequestSummary>;
|
|
42
43
|
updateVersion(user: User, workflowReviewRequestId: string, dto: UpdateWorkflowReviewRequestVersionDto): Promise<WorkflowReviewRequestSummary>;
|
|
43
44
|
decide(user: User, workflowReviewRequestId: string, dto: DecideWorkflowReviewRequestDto): Promise<DecideWorkflowReviewRequestResponse>;
|
|
45
|
+
private resolveRequesterPublishability;
|
|
44
46
|
private publishApprovedVersion;
|
|
45
47
|
private assertDecisionAllowed;
|
|
46
48
|
private broadcastReviewStateChanged;
|