mirror of
https://github.com/n8n-io/n8n.git
synced 2026-10-17 05:29:44 +02:00
refactor(core): Move published workflow data into backend services (#41086)
This commit is contained in:
parent
48edbef643
commit
338b0ca3fd
|
|
@ -68,3 +68,9 @@ export {
|
|||
API_KEY_PURPOSES,
|
||||
LEGACY_UNBOUND_PURPOSES,
|
||||
} from './services/token-purposes';
|
||||
|
||||
export {
|
||||
WorkflowPublishedDataService,
|
||||
type PublishedWorkflowData,
|
||||
type PublishedWorkflowDataForExecution,
|
||||
} from './workflows/workflow-published-data.service';
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ import type { Logger } from '@n8n/backend-common';
|
|||
import type { WorkflowPublishedVersionRepository, WorkflowPublishedVersion } from '@n8n/db';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
||||
import type { CacheService } from '@n8n/backend-services';
|
||||
import type { CacheService } from '../../services/cache/cache.service';
|
||||
import {
|
||||
WorkflowPublishedDataService,
|
||||
type PublishedWorkflowDataForExecution,
|
||||
} from '@/workflows/workflow-published-data.service';
|
||||
} from '../workflow-published-data.service';
|
||||
|
||||
describe('WorkflowPublishedDataService', () => {
|
||||
const logger = mock<Logger>();
|
||||
|
|
@ -8,7 +8,7 @@ import {
|
|||
import { Service } from '@n8n/di';
|
||||
import { ensureError } from '@n8n/utils/errors/ensure-error';
|
||||
|
||||
import { CacheService } from '@n8n/backend-services';
|
||||
import { CacheService } from '../services/cache/cache.service';
|
||||
|
||||
export type { PublishedWorkflowDataForExecution };
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { Logger, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { EventService, UrlService } from '@n8n/backend-services';
|
||||
import { EventService, UrlService, WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { ExecutionsConfig, GlobalConfig, type NodesConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import type { WorkflowEntity, Project, WorkflowHistory } from '@n8n/db';
|
||||
|
|
@ -64,7 +64,7 @@ import * as WorkflowHelpers from '@/workflow-helpers';
|
|||
import { WorkflowHookContextService } from '@/workflow-hook-context.service';
|
||||
import { DeprecatedNodesError } from '@/errors/response-errors/deprecated-nodes.error';
|
||||
import { DeprecatedNodesValidationService } from '@/workflows/deprecated-nodes-validation.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
|
||||
|
||||
const EXECUTION_ID = '123';
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import type { WorkflowsConfig } from '@n8n/config';
|
|||
import type { WorkflowEntity, WorkflowRepository } from '@n8n/db';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
||||
import type { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import type { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
import { WorkflowToolUnavailableError } from '../workflow-tool-unavailable-error';
|
||||
import { WorkflowToolWorkflowLoader } from '../workflow-tool-workflow-loader.service';
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { WorkflowsConfig } from '@n8n/config';
|
|||
import { type WorkflowEntity, WorkflowRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
import { WorkflowToolUnavailableError } from './workflow-tool-unavailable-error';
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import { McpService } from '@/modules/mcp/mcp.service';
|
|||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowRunner } from '@/workflow-runner';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
describe('execute-workflow MCP tool', () => {
|
||||
const user = Object.assign(new User(), { id: 'user-1' });
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
import { LicenseState, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { EventService, UrlService, RoleService, FolderFinderService } from '@n8n/backend-services';
|
||||
import {
|
||||
EventService,
|
||||
UrlService,
|
||||
RoleService,
|
||||
FolderFinderService,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@n8n/backend-services';
|
||||
import { mockInstance, mockLogger } from '@n8n/backend-test-utils';
|
||||
import { ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import { ExecutionRepository, ProjectRepository, SharedWorkflowRepository, User } from '@n8n/db';
|
||||
|
|
@ -28,7 +34,7 @@ import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
|||
import { ErrorWorkflowValidationService } from '@/workflows/error-workflow-validation.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { WorkflowHistoryService } from '@/workflows/workflow-history/workflow-history.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
import { McpPostSaveMetricsService } from '../mcp-post-save-metrics.service';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
import { INSTANCE_ACTIVITY_CONTEXT_FLAG } from '@n8n/api-types';
|
||||
import { LicenseState, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { EventService, UrlService, RoleService, FolderFinderService } from '@n8n/backend-services';
|
||||
import {
|
||||
EventService,
|
||||
UrlService,
|
||||
RoleService,
|
||||
FolderFinderService,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@n8n/backend-services';
|
||||
import { mockInstance, mockLogger } from '@n8n/backend-test-utils';
|
||||
import { EndpointsConfig, ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import {
|
||||
|
|
@ -56,7 +62,7 @@ import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
|||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { WorkflowHistoryService } from '@/workflows/workflow-history/workflow-history.service';
|
||||
import { ErrorWorkflowValidationService } from '@/workflows/error-workflow-validation.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
vi.mock('@n8n/mcp-apps/server', async (importOriginal) => ({
|
||||
|
|
|
|||
|
|
@ -9,7 +9,13 @@ import {
|
|||
INSTANCE_ACTIVITY_CONTEXT_FLAG,
|
||||
} from '@n8n/api-types';
|
||||
import { LicenseState, ModuleRegistry, type Logger } from '@n8n/backend-common';
|
||||
import { EventService, UrlService, RoleService, FolderFinderService } from '@n8n/backend-services';
|
||||
import {
|
||||
EventService,
|
||||
UrlService,
|
||||
RoleService,
|
||||
FolderFinderService,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@n8n/backend-services';
|
||||
import { mockInstance, mockLogger } from '@n8n/backend-test-utils';
|
||||
import { EndpointsConfig, ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import {
|
||||
|
|
@ -49,7 +55,7 @@ import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
|||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { WorkflowHistoryService } from '@/workflows/workflow-history/workflow-history.service';
|
||||
import { ErrorWorkflowValidationService } from '@/workflows/error-workflow-validation.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
import { registerWorkflowPreviewApp, WORKFLOW_PREVIEW_APP_URI } from '@n8n/mcp-apps/server';
|
||||
|
|
|
|||
|
|
@ -24,11 +24,11 @@ import { SubworkflowPolicyChecker } from '@/executions/pre-execution-checks/subw
|
|||
import { NodeTypes } from '@/node-types';
|
||||
import type { AiGatewayService } from '@/services/ai-gateway.service';
|
||||
import { TagService } from '@/services/tag.service';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { UrlService, WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { ErrorWorkflowValidationService } from '@/workflows/error-workflow-validation.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
import { shapeToStandardSchema } from '../tool-schema.util';
|
||||
|
|
|
|||
|
|
@ -7,7 +7,13 @@ import {
|
|||
INSTANCE_ACTIVITY_CONTEXT_FLAG,
|
||||
} from '@n8n/api-types';
|
||||
import { LicenseState, Logger, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { EventService, UrlService, RoleService, FolderFinderService } from '@n8n/backend-services';
|
||||
import {
|
||||
EventService,
|
||||
UrlService,
|
||||
RoleService,
|
||||
FolderFinderService,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@n8n/backend-services';
|
||||
import { ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import { ExecutionRepository, ProjectRepository, SharedWorkflowRepository, User } from '@n8n/db';
|
||||
import { Container, Service } from '@n8n/di';
|
||||
|
|
@ -47,7 +53,7 @@ import { ErrorWorkflowValidationService } from '@/workflows/error-workflow-valid
|
|||
import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { WorkflowHistoryService } from '@/workflows/workflow-history/workflow-history.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
import { McpPostSaveMetricsService } from './mcp-post-save-metrics.service';
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import type { McpService } from '@/modules/mcp/mcp.service';
|
|||
import type { Telemetry } from '@/telemetry';
|
||||
import type { WorkflowRunner } from '@/workflow-runner';
|
||||
import type { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import type { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import type { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
export { type FoundWorkflow };
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ import * as WebhookHelpers from '@/webhooks/webhook-helpers';
|
|||
import type { WebhookService } from '@/webhooks/webhook.service';
|
||||
import type { WebhookRequest } from '@/webhooks/webhook.types';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
import type { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import type { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
import type { WorkflowPublisherService } from '@/workflows/workflow-publisher.service';
|
||||
import type { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import { NodeTypes } from '@/node-types';
|
|||
import * as WebhookHelpers from '@/webhooks/webhook-helpers';
|
||||
import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
import { WorkflowPublisherService } from '@/workflows/workflow-publisher.service';
|
||||
import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
import type { PushMessage, PushType } from '@n8n/api-types';
|
||||
import { Logger, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { SsrfProtectionService } from '@n8n/backend-network';
|
||||
import { EventService, UrlService } from '@n8n/backend-services';
|
||||
import { EventService, UrlService, WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
import { ExecutionsConfig, GlobalConfig, SsrfProtectionConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import { ExecutionRepository, WorkflowRepository } from '@n8n/db';
|
||||
|
|
@ -79,7 +79,6 @@ import { objectToError } from '@/utils/object-to-error';
|
|||
import * as WorkflowHelpers from '@/workflow-helpers';
|
||||
import { DeprecatedNodesValidationService } from '@/workflows/deprecated-nodes-validation.service';
|
||||
import { getWorkflowProjectDetailsSafe } from '@/workflows/utils';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
export function getRunData(
|
||||
workflowData: IWorkflowBase,
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@ import {
|
|||
staticErrorWorkflowId,
|
||||
} from '@/workflows/error-workflow-validation.service';
|
||||
import type { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import type {
|
||||
PublishedWorkflowData,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@/workflows/workflow-published-data.service';
|
||||
import type { PublishedWorkflowData, WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
const ERROR_TRIGGER_TYPE = 'n8n-nodes-base.errorTrigger';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { EventService, InstanceWriteAccessService } from '@n8n/backend-services';
|
||||
import type {
|
||||
EventService,
|
||||
InstanceWriteAccessService,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@n8n/backend-services';
|
||||
import type { GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import type {
|
||||
CreateExecutionPayload,
|
||||
|
|
@ -42,7 +46,6 @@ import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-da
|
|||
import type { WorkflowRunner } from '@/workflow-runner';
|
||||
import type { PollCursorService } from '@/workflows/triggers/poll-cursor.service';
|
||||
import { WorkflowExecutionService } from '@/workflows/workflow-execution.service';
|
||||
import type { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
const webhookNode: INode = {
|
||||
name: 'Webhook',
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import type { IWorkflowSettings } from 'n8n-workflow';
|
|||
import { Workflow } from 'n8n-workflow';
|
||||
|
||||
import { WorkflowFinderService } from './workflow-finder.service';
|
||||
import { WorkflowPublishedDataService } from './workflow-published-data.service';
|
||||
import { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
import { SubworkflowPolicyDenialError } from '@/errors/subworkflow-policy-denial.error';
|
||||
import { SubworkflowPolicyChecker } from '@/executions/pre-execution-checks/subworkflow-policy-checker';
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import { WorkflowPublicationApplier } from '@/workflows/publication/workflow-pub
|
|||
import type { DurableJobProvisioner } from '@/scheduling/durable-job-provisioner';
|
||||
import type { WorkflowScheduledJobOwner } from '@/scheduling/workflow-scheduled-job-owner';
|
||||
import type { WorkflowTriggerActivator } from '@/workflows/triggers/workflow-trigger-activator';
|
||||
import type { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import type { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
import type { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
describe('WorkflowPublicationApplier', () => {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ import {
|
|||
type TriggerOperationAbort,
|
||||
type TriggerTeardownFailure,
|
||||
} from '@/workflows/triggers/workflow-trigger-activator';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
/** A node whose type this instance cannot load, with the loader's error. */
|
||||
type UnresolvableNode = { node: INode; error: Error };
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
/* eslint-disable @typescript-eslint/unbound-method */
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { EventService } from '@n8n/backend-services';
|
||||
import type {
|
||||
EventService,
|
||||
PublishedWorkflowDataForExecution,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@n8n/backend-services';
|
||||
import type { Project, WorkflowEntity } from '@n8n/db';
|
||||
import type { IDeferredPromise } from '@n8n/utils/promise/deferred-promise';
|
||||
import { createDeferredPromise } from '@n8n/utils/promise/deferred-promise';
|
||||
|
|
@ -42,10 +46,7 @@ import type { OwnershipService } from '@/services/ownership.service';
|
|||
import type { WorkflowPublisherService } from '@/workflows/workflow-publisher.service';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
import type { WorkflowExecutionService } from '@/workflows/workflow-execution.service';
|
||||
import type {
|
||||
PublishedWorkflowDataForExecution,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import type { EngineV2Dispatcher } from '@/services/engine-v2-dispatcher.service';
|
||||
import { EngineV2PayloadFiles } from '@/services/engine-v2-payload-files.service';
|
||||
import { EngineV2ActiveTriggers } from '@/workflows/triggers/engine-v2-active-triggers';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { EventService } from '@n8n/backend-services';
|
||||
import { EventService, WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type { IWorkflowDb, PollerCursor, PollLeaseFence } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
|
@ -46,7 +46,7 @@ import { EngineV2ActiveTriggers } from '@/workflows/triggers/engine-v2-active-tr
|
|||
import { PollCursorService } from '@/workflows/triggers/poll-cursor.service';
|
||||
import { getWorkflowProjectDetailsSafe } from '@/workflows/utils';
|
||||
import { WorkflowExecutionService } from '@/workflows/workflow-execution.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import { WorkflowPublisherService } from '@/workflows/workflow-publisher.service';
|
||||
import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { EventService, InstanceWriteAccessService } from '@n8n/backend-services';
|
||||
import {
|
||||
EventService,
|
||||
InstanceWriteAccessService,
|
||||
WorkflowPublishedDataService,
|
||||
} from '@n8n/backend-services';
|
||||
import { GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import type {
|
||||
Project,
|
||||
|
|
@ -55,7 +59,7 @@ import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-da
|
|||
import { WorkflowRunner } from '@/workflow-runner';
|
||||
import { PollCursorService } from '@/workflows/triggers/poll-cursor.service';
|
||||
import { getWorkflowProjectDetailsSafe } from '@/workflows/utils';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
||||
import type { WorkflowRequest } from '@/workflows/workflow.request';
|
||||
|
||||
@Service()
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { Container } from '@n8n/di';
|
|||
import type { INode } from 'n8n-workflow';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
import { WorkflowPublishedDataService } from '@n8n/backend-services';
|
||||
|
||||
import { createOwner } from '../shared/db/users';
|
||||
import { createWorkflowHistoryItem } from '../shared/db/workflow-history';
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user