refactor(core): Move workflow repository to @n8n/db (#15260)

Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
This commit is contained in:
Iván Ovejero
2025-05-13 14:21:59 +02:00
committed by GitHub
parent 069992524d
commit 52f27a76ac
77 changed files with 103 additions and 112 deletions

View File

@@ -31,4 +31,5 @@ export { WorkflowStatisticsRepository } from './workflow-statistics.repository';
export { WorkflowTagMappingRepository } from './workflow-tag-mapping.repository';
export { SharedWorkflowRepository } from './shared-workflow.repository';
export { SharedCredentialsRepository } from './shared-credentials.repository';
export { WorkflowRepository } from './workflow.repository';
export { WebhookRepository } from './webhook.repository';

View File

@@ -1,13 +1,4 @@
import { GlobalConfig } from '@n8n/config';
import type { ListQueryDb, Folder, FolderWithWorkflowAndSubFolderCount } from '@n8n/db';
import {
isStringArray,
WebhookEntity,
TagEntity,
WorkflowEntity,
WorkflowTagMapping,
FolderRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
import { DataSource, Repository, In, Like } from '@n8n/typeorm';
import type {
@@ -21,7 +12,15 @@ import type {
} from '@n8n/typeorm';
import { PROJECT_ROOT } from 'n8n-workflow';
import type { ListQuery } from '@/requests';
import { FolderRepository } from './folder.repository';
import type { Folder } from '../entities';
import { WebhookEntity, TagEntity, WorkflowEntity, WorkflowTagMapping } from '../entities';
import type {
ListQueryDb,
FolderWithWorkflowAndSubFolderCount,
ListQuery,
} from '../entities/types-db';
import { isStringArray } from '../utils/is-string-array';
type ResourceType = 'folder' | 'workflow';
@@ -192,6 +191,7 @@ export class WorkflowRepository extends Repository<WorkflowEntity> {
}
private buildUnionQuery(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
baseQuery: SelectQueryBuilder<any>,
options: {
sortByColumn: string;
@@ -213,7 +213,9 @@ export class WorkflowRepository extends Repository<WorkflowEntity> {
}
private applySortingToUnionQuery(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
query: SelectQueryBuilder<any>,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
baseQuery: SelectQueryBuilder<any>,
options: { sortByColumn: string; sortByDirection: 'ASC' | 'DESC' },
) {
@@ -237,6 +239,7 @@ export class WorkflowRepository extends Repository<WorkflowEntity> {
}
private applyPaginationToUnionQuery(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
query: SelectQueryBuilder<any>,
pagination: { take?: number; skip: number },
) {

View File

@@ -1,4 +1,5 @@
import type { WorkflowEntity } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import { mock } from 'jest-mock-extended';
import type { InstanceSettings } from 'n8n-core';
import type {
@@ -11,7 +12,6 @@ import type {
import { Workflow } from 'n8n-workflow';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { NodeTypes } from '@/node-types';
import { mockLogger } from '@test/mocking';

View File

@@ -1,4 +1,5 @@
import type { GlobalConfig } from '@n8n/config';
import type { WorkflowRepository } from '@n8n/db';
import type { CredentialsRepository, SettingsRepository } from '@n8n/db';
import { mock } from 'jest-mock-extended';
import type { ErrorReporter, Logger } from 'n8n-core';
@@ -6,7 +7,6 @@ import type { IWorkflowBase } from 'n8n-workflow';
import { UnexpectedError } from 'n8n-workflow';
import type { UserRepository } from '@/databases/repositories/user.repository';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { ExternalHooks } from '@/external-hooks';
describe('ExternalHooks', () => {

View File

@@ -1,6 +1,7 @@
import { GlobalConfig } from '@n8n/config';
import type { WorkflowEntity } from '@n8n/db';
import { ExecutionRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import type { IWorkflowBase } from 'n8n-workflow';
@@ -15,7 +16,6 @@ import type PCancelable from 'p-cancelable';
import { ActiveExecutions } from '@/active-executions';
import { CredentialsHelper } from '@/credentials-helper';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
import { EventService } from '@/events/event.service';
import {

View File

@@ -1,6 +1,7 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
import { WorkflowsConfig } from '@n8n/config';
import type { WorkflowEntity, IWorkflowDb } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { OnLeaderStepdown, OnLeaderTakeover, OnShutdown } from '@n8n/decorators';
import { Service } from '@n8n/di';
import { chunk } from 'lodash';
@@ -43,7 +44,6 @@ import {
WORKFLOW_REACTIVATE_INITIAL_TIMEOUT,
WORKFLOW_REACTIVATE_MAX_TIMEOUT,
} from '@/constants';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { executeErrorWorkflow } from '@/execution-lifecycle/execute-error-workflow';
import { ExecutionService } from '@/executions/execution.service';
import { ExternalHooks } from '@/external-hooks';

View File

@@ -1,5 +1,6 @@
import { GlobalConfig } from '@n8n/config';
import type { User, WorkflowEntity } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import type { SelectQueryBuilder } from '@n8n/typeorm';
import type { Config } from '@oclif/core';
@@ -8,7 +9,6 @@ import type { IRun } from 'n8n-workflow';
import { ActiveExecutions } from '@/active-executions';
import { DbConnection } from '@/databases/db-connection';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { DeprecationService } from '@/deprecation/deprecation.service';
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
import { TelemetryEventRelay } from '@/events/relays/telemetry.event-relay';

View File

@@ -1,5 +1,6 @@
import { GlobalConfig } from '@n8n/config';
import type { User, WorkflowEntity } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import type { Config } from '@oclif/core';
import { mock } from 'jest-mock-extended';
@@ -7,7 +8,6 @@ import type { IRun } from 'n8n-workflow';
import { ActiveExecutions } from '@/active-executions';
import { DbConnection } from '@/databases/db-connection';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { DeprecationService } from '@/deprecation/deprecation.service';
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
import { TelemetryEventRelay } from '@/events/relays/telemetry.event-relay';

View File

@@ -1,5 +1,6 @@
/* eslint-disable @typescript-eslint/no-loop-func */
import type { User } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { Flags } from '@oclif/core';
import fs from 'fs';
@@ -11,7 +12,6 @@ import os from 'os';
import { sep } from 'path';
import { ActiveExecutions } from '@/active-executions';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { OwnershipService } from '@/services/ownership.service';
import { findCliWorkflowStart } from '@/utils';
import { WorkflowRunner } from '@/workflow-runner';

View File

@@ -1,10 +1,10 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { Flags } from '@oclif/core';
import type { IWorkflowBase, IWorkflowExecutionDataProcess } from 'n8n-workflow';
import { ExecutionBaseError, UnexpectedError, UserError } from 'n8n-workflow';
import { ActiveExecutions } from '@/active-executions';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { OwnershipService } from '@/services/ownership.service';
import { findCliWorkflowStart, isWorkflowIdValid } from '@/utils';
import { WorkflowRunner } from '@/workflow-runner';

View File

@@ -1,11 +1,10 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { Flags } from '@oclif/core';
import fs from 'fs';
import { UserError } from 'n8n-workflow';
import path from 'path';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BaseCommand } from '../base-command';
export class ExportWorkflowsCommand extends BaseCommand {

View File

@@ -1,5 +1,10 @@
import type { WorkflowEntity } from '@n8n/db';
import { generateNanoId, ProjectRepository, SharedWorkflowRepository } from '@n8n/db';
import {
generateNanoId,
ProjectRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import { Container } from '@n8n/di';
import { Flags } from '@oclif/core';
import glob from 'fast-glob';
@@ -9,7 +14,6 @@ import { jsonParse, UserError } from 'n8n-workflow';
import { UM_FIX_INSTRUCTION } from '@/constants';
import { UserRepository } from '@/databases/repositories/user.repository';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { IWorkflowToImport } from '@/interfaces';
import { ImportService } from '@/services/import.service';

View File

@@ -1,8 +1,7 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { Flags } from '@oclif/core';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BaseCommand } from '../base-command';
export class ListWorkflowCommand extends BaseCommand {

View File

@@ -1,8 +1,7 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { Flags } from '@oclif/core';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BaseCommand } from '../base-command';
export class UpdateWorkflowCommand extends BaseCommand {

View File

@@ -1,8 +1,8 @@
import { WorkflowRepository } from '@n8n/db';
import { Get, RestController } from '@n8n/decorators';
import { InstanceSettings } from 'n8n-core';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { MultiMainSetup } from '@/scaling/multi-main-setup.ee';
@RestController('/debug')

View File

@@ -6,13 +6,12 @@ import type { TagRepository } from '@n8n/db';
import type { WorkflowTagMappingRepository } from '@n8n/db';
import type { SharedCredentialsRepository } from '@n8n/db';
import type { SharedWorkflowRepository } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock, captor } from 'jest-mock-extended';
import { Cipher, type InstanceSettings } from 'n8n-core';
import fsp from 'node:fs/promises';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { VariablesService } from '../../variables/variables.service.ee';
import { SourceControlExportService } from '../source-control-export.service.ee';

View File

@@ -1,12 +1,11 @@
import type { WorkflowEntity } from '@n8n/db';
import type { FolderRepository } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import * as fastGlob from 'fast-glob';
import { mock } from 'jest-mock-extended';
import { type InstanceSettings } from 'n8n-core';
import fsp from 'node:fs/promises';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { SourceControlImportService } from '../source-control-import.service.ee';
import type { ExportableFolder } from '../types/exportable-folders';

View File

@@ -6,6 +6,7 @@ import {
WorkflowTagMappingRepository,
SharedCredentialsRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
@@ -16,7 +17,6 @@ import { UnexpectedError, type ICredentialDataDecryptedObject } from 'n8n-workfl
import { writeFile as fsWriteFile, rm as fsRm } from 'node:fs/promises';
import path from 'path';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { formatWorkflow } from '@/workflows/workflow.formatter';
import {

View File

@@ -10,6 +10,7 @@ import {
WorkflowTagMappingRepository,
SharedCredentialsRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
@@ -23,7 +24,6 @@ import path from 'path';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { CredentialsService } from '@/credentials/credentials.service';
import { UserRepository } from '@/databases/repositories/user.repository';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { IWorkflowToImport } from '@/interfaces';
import { isUniqueConstraintError } from '@/response-helper';
import { TagService } from '@/services/tag.service';

View File

@@ -7,6 +7,7 @@ import type { ExecutionRepository } from '@n8n/db';
import type { TestCaseExecutionRepository } from '@n8n/db';
import type { TestMetricRepository } from '@n8n/db';
import type { TestRunRepository } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import type { SelectQueryBuilder } from '@n8n/typeorm';
import { stringify } from 'flatted';
import { readFileSync } from 'fs';
@@ -18,7 +19,6 @@ import path from 'path';
import type { ActiveExecutions } from '@/active-executions';
import config from '@/config';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
import { NodeTypes } from '@/node-types';
import type { Telemetry } from '@/telemetry';

View File

@@ -4,6 +4,7 @@ import {
TestCaseExecutionRepository,
TestMetricRepository,
TestRunRepository,
WorkflowRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
import { parse } from 'flatted';
@@ -23,7 +24,6 @@ import assert from 'node:assert';
import { ActiveExecutions } from '@/active-executions';
import config from '@/config';
import { EVALUATION_METRICS_NODE } from '@/constants';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { TestCaseExecutionError, TestRunError } from '@/evaluation.ee/test-runner/errors.ee';
import { NodeTypes } from '@/node-types';
import { Telemetry } from '@/telemetry';

View File

@@ -1,5 +1,5 @@
import { GlobalConfig } from '@n8n/config';
import { EventDestinationsRepository, ExecutionRepository } from '@n8n/db';
import { EventDestinationsRepository, ExecutionRepository, WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
import type { DeleteResult } from '@n8n/typeorm';
@@ -11,7 +11,6 @@ import { Logger } from 'n8n-core';
import type { MessageEventBusDestinationOptions } from 'n8n-workflow';
import config from '@/config';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { License } from '@/license';
import { Publisher } from '@/scaling/pubsub/publisher.service';

View File

@@ -5,13 +5,13 @@ import type { IWorkflowDb } from '@n8n/db';
import type { CredentialsRepository } from '@n8n/db';
import type { ProjectRelationRepository } from '@n8n/db';
import type { SharedWorkflowRepository } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import { mock } from 'jest-mock-extended';
import { type BinaryDataConfig, InstanceSettings } from 'n8n-core';
import type { INode, INodesGraphResult } from 'n8n-workflow';
import { NodeApiError, TelemetryHelpers, type IRun, type IWorkflowBase } from 'n8n-workflow';
import { N8N_VERSION } from '@/constants';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { EventService } from '@/events/event.service';
import type { RelayEventMap } from '@/events/maps/relay.event-map';
import { TelemetryEventRelay } from '@/events/relays/telemetry.event-relay';

View File

@@ -3,6 +3,7 @@ import {
CredentialsRepository,
ProjectRelationRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
import { snakeCase } from 'change-case';
@@ -14,7 +15,6 @@ import { get as pslGet } from 'psl';
import config from '@/config';
import { N8N_VERSION } from '@/constants';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { EventService } from '@/events/event.service';
import type { RelayEventMap } from '@/events/maps/relay.event-map';
import { determineFinalExecutionStatus } from '@/execution-lifecycle/shared/shared-hook-functions';

View File

@@ -1,7 +1,7 @@
import type { WorkflowWithSharingsAndCredentials, IExecutionResponse } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { IExecutionFlattedResponse } from '@/interfaces';
import { ExecutionService } from './execution.service';

View File

@@ -10,6 +10,7 @@ import {
ExecutionAnnotationRepository,
ExecutionRepository,
AnnotationTagMappingRepository,
WorkflowRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
import { validate as jsonSchemaValidate } from 'jsonschema';
@@ -34,7 +35,6 @@ import {
import { ActiveExecutions } from '@/active-executions';
import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service';
import config from '@/config';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { AbortedExecutionRetryError } from '@/errors/aborted-execution-retry.error';
import { MissingExecutionStopError } from '@/errors/missing-execution-stop.error';
import { QueuedExecutionRetryError } from '@/errors/queued-execution-retry.error';

View File

@@ -2,7 +2,7 @@ import type { FrontendSettings, UserUpdateRequestDto } from '@n8n/api-types';
import type { ClientOAuth2Options } from '@n8n/client-oauth2';
import { GlobalConfig } from '@n8n/config';
import type { TagEntity, User, ICredentialsDb, PublicUser } from '@n8n/db';
import { CredentialsRepository, SettingsRepository } from '@n8n/db';
import { CredentialsRepository, WorkflowRepository, SettingsRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { ErrorReporter, Logger } from 'n8n-core';
import type { IRun, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
@@ -12,7 +12,6 @@ import type clientOAuth1 from 'oauth-1.0a';
import type { AbstractServer } from '@/abstract-server';
import type { Config } from '@/config';
import { UserRepository } from '@/databases/repositories/user.repository';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
type Repositories = {
User: UserRepository;

View File

@@ -1,8 +1,8 @@
import type { WorkflowRepository } from '@n8n/db';
import type { TEntitlement } from '@n8n_io/license-sdk';
import axios, { AxiosError } from 'axios';
import { mock } from 'jest-mock-extended';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import type { EventService } from '@/events/event.service';
import type { License } from '@/license';

View File

@@ -1,10 +1,10 @@
import type { User } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import axios, { AxiosError } from 'axios';
import { Logger } from 'n8n-core';
import { ensureError } from 'n8n-workflow';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import { EventService } from '@/events/event.service';
import { License } from '@/license';

View File

@@ -1,7 +1,7 @@
import type { LicenseMetricsRepository } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import { mock } from 'jest-mock-extended';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { LicenseMetricsService } from '@/metrics/license-metrics.service';
describe('LicenseMetricsService', () => {

View File

@@ -1,4 +1,5 @@
import { GlobalConfig } from '@n8n/config';
import type { WorkflowRepository } from '@n8n/db';
import type express from 'express';
import promBundle from 'express-prom-bundle';
import { mock } from 'jest-mock-extended';
@@ -6,7 +7,6 @@ import type { InstanceSettings } from 'n8n-core';
import promClient from 'prom-client';
import config from '@/config';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
import type { EventService } from '@/events/event.service';
import { mockInstance } from '@test/mocking';

View File

@@ -1,10 +1,10 @@
import { GlobalConfig } from '@n8n/config';
import type { WorkflowRepository } from '@n8n/db';
import type express from 'express';
import { mock } from 'jest-mock-extended';
import type { InstanceSettings } from 'n8n-core';
import promClient from 'prom-client';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { EventMessageWorkflow } from '@/eventbus/event-message-classes/event-message-workflow';
import type { EventService } from '@/events/event.service';
import type { CacheService } from '@/services/cache/cache.service';

View File

@@ -1,8 +1,6 @@
import { LicenseMetricsRepository } from '@n8n/db';
import { LicenseMetricsRepository, WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
@Service()
export class LicenseMetricsService {
constructor(

View File

@@ -1,4 +1,5 @@
import { GlobalConfig } from '@n8n/config';
import { WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import type express from 'express';
import promBundle from 'express-prom-bundle';
@@ -9,7 +10,6 @@ import semverParse from 'semver/functions/parse';
import config from '@/config';
import { N8N_VERSION, Time } from '@/constants';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { EventMessageTypes } from '@/eventbus';
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
import { EventService } from '@/events/event.service';

View File

@@ -1,5 +1,5 @@
import { GlobalConfig } from '@n8n/config';
import { WorkflowEntity, ProjectRepository, TagRepository } from '@n8n/db';
import { WorkflowEntity, ProjectRepository, TagRepository, WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
import { In, Like, QueryFailedError } from '@n8n/typeorm';
@@ -10,7 +10,6 @@ import { v4 as uuid } from 'uuid';
import { z } from 'zod';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { EventService } from '@/events/event.service';
import { ExternalHooks } from '@/external-hooks';
import { addNodeIds, replaceInvalidCredentials } from '@/workflow-helpers';

View File

@@ -6,12 +6,12 @@ import {
SharedWorkflow,
TagRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import { Container } from '@n8n/di';
import type { Scope, WorkflowSharingRole } from '@n8n/permissions';
import type { WorkflowId } from 'n8n-workflow';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { License } from '@/license';
import { WorkflowSharingService } from '@/workflows/workflow-sharing.service';

View File

@@ -1,10 +1,10 @@
import type { WorkerStatus } from '@n8n/api-types';
import type { WorkflowRepository } from '@n8n/db';
import { mock } from 'jest-mock-extended';
import type { InstanceSettings } from 'n8n-core';
import type { IWorkflowBase, Workflow } from 'n8n-workflow';
import type { ActiveWorkflowManager } from '@/active-workflow-manager';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
import { EventService } from '@/events/event.service';
import type { ExternalSecretsManager } from '@/external-secrets.ee/external-secrets-manager.ee';

View File

@@ -1,5 +1,5 @@
import type { RunningJobSummary } from '@n8n/api-types';
import { ExecutionRepository } from '@n8n/db';
import { ExecutionRepository, WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import {
WorkflowHasIssuesError,
@@ -18,7 +18,6 @@ import { BINARY_ENCODING, Workflow, UnexpectedError } from 'n8n-workflow';
import type PCancelable from 'p-cancelable';
import config from '@/config';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { getLifecycleHooksForScalingWorker } from '@/execution-lifecycle/execution-lifecycle-hooks';
import { ManualExecutionService } from '@/manual-execution.service';
import { NodeTypes } from '@/node-types';

View File

@@ -1,9 +1,9 @@
import { WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { InstanceSettings } from 'n8n-core';
import { ensureError } from 'n8n-workflow';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
import { EventService } from '@/events/event.service';
import type { PubSubEventMap } from '@/events/maps/pub-sub.event-map';

View File

@@ -1,8 +1,8 @@
import { SecurityConfig } from '@n8n/config';
import { WorkflowRepository } from '@n8n/db';
import { Container, Service } from '@n8n/di';
import config from '@/config';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { RISK_CATEGORIES } from '@/security-audit/constants';
import type { Risk, RiskReporter } from '@/security-audit/types';
import { toReportTitle } from '@/security-audit/utils';

View File

@@ -1,10 +1,10 @@
import { WorkflowEntity } from '@n8n/db';
import type { User } from '@n8n/db';
import type { SharedWorkflowRepository } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import { mock } from 'jest-mock-extended';
import type { ActivationErrorsService } from '@/activation-errors.service';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import { ActiveWorkflowsService } from '@/services/active-workflows.service';
import type { WorkflowFinderService } from '@/workflows/workflow-finder.service';

View File

@@ -1,13 +1,13 @@
import type { AuthUser, SettingsRepository } from '@n8n/db';
import type { AuthUserRepository } from '@n8n/db';
import type { CredentialsRepository } from '@n8n/db';
import type { WorkflowRepository } from '@n8n/db';
import RudderStack from '@rudderstack/rudder-sdk-node';
import type { Response } from 'express';
import { mock } from 'jest-mock-extended';
import type { AuthService } from '@/auth/auth.service';
import type { UserRepository } from '@/databases/repositories/user.repository';
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { Invitation } from '@/interfaces';
import type { AuthenticatedRequest } from '@/requests';
import { HooksService } from '@/services/hooks.service';

View File

@@ -1,8 +1,8 @@
import type { CredentialsEntity } from '@n8n/db';
import type { WorkflowEntity } from '@n8n/db';
import { CredentialsRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { NamingService } from '@/services/naming.service';
import { mockInstance } from '@test/mocking';

View File

@@ -1,11 +1,10 @@
import type { User } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { SharedWorkflowRepository, WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { hasGlobalScope } from '@n8n/permissions';
import { Logger } from 'n8n-core';
import { ActivationErrorsService } from '@/activation-errors.service';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';

View File

@@ -1,11 +1,11 @@
import type { CreateFolderDto, DeleteFolderDto, UpdateFolderDto } from '@n8n/api-types';
import { Folder, FolderTagMappingRepository, FolderRepository, type User } from '@n8n/db';
import type { User } from '@n8n/db';
import { Folder, FolderTagMappingRepository, FolderRepository, WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
import type { EntityManager } from '@n8n/typeorm';
import { UserError, PROJECT_ROOT } from 'n8n-workflow';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { FolderNotFoundError } from '@/errors/folder-not-found.error';
import type { ListQuery } from '@/requests';
import { WorkflowService } from '@/workflows/workflow.service';

View File

@@ -1,5 +1,10 @@
import type { Settings, CredentialsEntity, User, WorkflowEntity, AuthUser } from '@n8n/db';
import { AuthUserRepository, CredentialsRepository, SettingsRepository } from '@n8n/db';
import {
AuthUserRepository,
CredentialsRepository,
WorkflowRepository,
SettingsRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
import type { FindManyOptions, FindOneOptions, FindOptionsWhere } from '@n8n/typeorm';
@@ -9,7 +14,6 @@ import type { NextFunction, Response } from 'express';
import { AuthService } from '@/auth/auth.service';
import { UserRepository } from '@/databases/repositories/user.repository';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { Invitation } from '@/interfaces';
import type { AuthenticatedRequest } from '@/requests';
import { UserService } from '@/services/user.service';

View File

@@ -1,8 +1,6 @@
import { CredentialsRepository } from '@n8n/db';
import { CredentialsRepository, WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
@Service()
export class NamingService {
constructor(

View File

@@ -1,8 +1,7 @@
import { WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { UnexpectedError, type IWorkflowBase, type IWorkflowLoader } from 'n8n-workflow';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
@Service()
export class WorkflowLoaderService implements IWorkflowLoader {
constructor(private readonly workflowRepository: WorkflowRepository) {}

View File

@@ -1,5 +1,5 @@
import { GlobalConfig } from '@n8n/config';
import { ProjectRelationRepository, ProjectRepository } from '@n8n/db';
import { ProjectRelationRepository, ProjectRepository, WorkflowRepository } from '@n8n/db';
import { OnShutdown } from '@n8n/decorators';
import { Container, Service } from '@n8n/di';
import type RudderStack from '@rudderstack/rudder-sdk-node';
@@ -9,7 +9,6 @@ import type { ITelemetryTrackProperties } from 'n8n-workflow';
import { LOWEST_SHUTDOWN_PRIORITY, N8N_VERSION } from '@/constants';
import { UserRepository } from '@/databases/repositories/user.repository';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { IExecutionTrackProperties } from '@/interfaces';
import { License } from '@/license';
import { PostHogClient } from '@/posthog';

View File

@@ -1,10 +1,10 @@
import { WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import type { Response } from 'express';
import { Logger } from 'n8n-core';
import { Workflow, CHAT_TRIGGER_NODE_TYPE } from 'n8n-workflow';
import type { INode, IWebhookData, IHttpRequestMethods } from 'n8n-workflow';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { NotFoundError } from '@/errors/response-errors/not-found.error';
import { WebhookNotFoundError } from '@/errors/response-errors/webhook-not-found.error';
import { NodeTypes } from '@/node-types';

View File

@@ -4,7 +4,7 @@
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
import type { PushMessage, PushType } from '@n8n/api-types';
import { GlobalConfig } from '@n8n/config';
import { ExecutionRepository } from '@n8n/db';
import { ExecutionRepository, WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { Logger, WorkflowExecute } from 'n8n-core';
import { UnexpectedError, Workflow } from 'n8n-workflow';
@@ -33,7 +33,6 @@ import type {
import { ActiveExecutions } from '@/active-executions';
import { CredentialsHelper } from '@/credentials-helper';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { EventService } from '@/events/event.service';
import type { AiEventMap, AiEventPayload } from '@/events/maps/ai.event-map';
import { getLifecycleHooksForSubExecutions } from '@/execution-lifecycle/execution-lifecycle-hooks';

View File

@@ -1,6 +1,6 @@
import { GlobalConfig } from '@n8n/config';
import type { Project, User, CreateExecutionPayload } from '@n8n/db';
import { ExecutionRepository } from '@n8n/db';
import { ExecutionRepository, WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { ErrorReporter, Logger } from 'n8n-core';
import type {
@@ -19,7 +19,6 @@ import type {
import { SubworkflowOperationError, Workflow } from 'n8n-workflow';
import config from '@/config';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { ExecutionDataService } from '@/executions/execution-data.service';
import { SubworkflowPolicyChecker } from '@/executions/pre-execution-checks';
import type { IWorkflowErrorData } from '@/interfaces';

View File

@@ -1,9 +1,9 @@
import { GlobalConfig } from '@n8n/config';
import { WorkflowRepository } from '@n8n/db';
import { Service } from '@n8n/di';
import { ErrorReporter, Logger } from 'n8n-core';
import type { IDataObject, Workflow } from 'n8n-workflow';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { isWorkflowIdValid } from '@/utils';
@Service()

View File

@@ -12,6 +12,7 @@ import {
CredentialsRepository,
FolderRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
@@ -25,7 +26,6 @@ import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { CredentialsFinderService } from '@/credentials/credentials-finder.service';
import { CredentialsService } from '@/credentials/credentials.service';
import { EnterpriseCredentialsService } from '@/credentials/credentials.service.ee';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import { NotFoundError } from '@/errors/response-errors/not-found.error';
import { TransferWorkflowError } from '@/errors/response-errors/transfer-workflow.error';

View File

@@ -1,11 +1,12 @@
import { GlobalConfig } from '@n8n/config';
import type { User, WorkflowEntity, ListQueryDb } from '@n8n/db';
import type { User, WorkflowEntity, ListQueryDb, WorkflowFolderUnionFull } from '@n8n/db';
import {
SharedWorkflow,
ExecutionRepository,
FolderRepository,
WorkflowTagMappingRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import { Service } from '@n8n/di';
import type { Scope } from '@n8n/permissions';
@@ -22,8 +23,6 @@ import { v4 as uuid } from 'uuid';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import config from '@/config';
import type { WorkflowFolderUnionFull } from '@/databases/repositories/workflow.repository';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { FolderNotFoundError } from '@/errors/folder-not-found.error';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import { NotFoundError } from '@/errors/response-errors/not-found.error';

View File

@@ -12,6 +12,7 @@ import {
ProjectRepository,
TagRepository,
SharedWorkflowRepository,
WorkflowRepository,
} from '@n8n/db';
import {
Body,
@@ -34,7 +35,6 @@ import { Logger } from 'n8n-core';
import { UnexpectedError } from 'n8n-workflow';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
import { InternalServerError } from '@/errors/response-errors/internal-server.error';

View File

@@ -1,4 +1,5 @@
import type { WebhookEntity } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { InstanceSettings } from 'n8n-core';
@@ -14,7 +15,6 @@ import type {
import { ActiveExecutions } from '@/active-executions';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { ExecutionService } from '@/executions/execution.service';
import { ExternalHooks } from '@/external-hooks';
import { NodeTypes } from '@/node-types';

View File

@@ -1,12 +1,12 @@
import { CredentialsRepository } from '@n8n/db';
import { SharedCredentialsRepository } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { EntityNotFoundError } from '@n8n/typeorm';
import { v4 as uuid } from 'uuid';
import { Reset } from '@/commands/ldap/reset';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { getLdapSynchronizations, saveLdapSynchronization } from '@/ldap.ee/helpers.ee';
import { LdapService } from '@/ldap.ee/ldap.service.ee';
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';

View File

@@ -1,7 +1,6 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import {
createWorkflowWithTrigger,
createWorkflow,

View File

@@ -1,10 +1,10 @@
import { generateNanoId } from '@n8n/db';
import type { WorkflowEntity } from '@n8n/db';
import { generateNanoId } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { InstanceSettings } from 'n8n-core';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { MultiMainSetup } from '@/scaling/multi-main-setup.ee';
import { createOwner } from './shared/db/users';

View File

@@ -1,10 +1,10 @@
import type { ExecutionSummaries } from '@n8n/db';
import { ExecutionMetadataRepository } from '@n8n/db';
import { ExecutionRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { ExecutionService } from '@/executions/execution.service';
import { createTeamProject } from '@test-integration/db/projects';

View File

@@ -3,12 +3,12 @@ import type { User } from '@n8n/db';
import { ProjectRepository } from '@n8n/db';
import { SharedCredentialsRepository } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import type { INode, IWorkflowBase } from 'n8n-workflow';
import { randomInt } from 'n8n-workflow';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { CredentialsPermissionChecker } from '@/executions/pre-execution-checks';
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
import { NodeTypes } from '@/node-types';

View File

@@ -2,12 +2,12 @@ import type { Project, ProjectRole } from '@n8n/db';
import type { User } from '@n8n/db';
import { FolderRepository } from '@n8n/db';
import { ProjectRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { DateTime } from 'luxon';
import { ApplicationError, PROJECT_ROOT } from 'n8n-workflow';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { mockInstance } from '@test/mocking';
import {
getCredentialSharings,

View File

@@ -4,12 +4,12 @@ import { TagEntity } from '@n8n/db';
import { CredentialsRepository } from '@n8n/db';
import { TagRepository } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import type { INode } from 'n8n-workflow';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { ImportService } from '@/services/import.service';
import { getPersonalProject } from './shared/db/projects';

View File

@@ -1,11 +1,11 @@
import { GlobalConfig } from '@n8n/config';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { parse as semverParse } from 'semver';
import request, { type Response } from 'supertest';
import config from '@/config';
import { N8N_VERSION } from '@/constants';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { EventService } from '@/events/event.service';
import { PrometheusMetricsService } from '@/metrics/prometheus-metrics.service';
import { CacheService } from '@/services/cache/cache.service';

View File

@@ -3,11 +3,11 @@ import { generateNanoId } from '@n8n/db';
import { CredentialsRepository } from '@n8n/db';
import { ExecutionDataRepository } from '@n8n/db';
import { ExecutionRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { CREDENTIALS_REPORT } from '@/security-audit/constants';
import { SecurityAuditService } from '@/security-audit/security-audit.service';

View File

@@ -1,9 +1,9 @@
import { generateNanoId } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import {
DATABASE_REPORT,
SQL_NODE_TYPES,

View File

@@ -1,8 +1,8 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { FILESYSTEM_INTERACTION_NODE_TYPES, FILESYSTEM_REPORT } from '@/security-audit/constants';
import { SecurityAuditService } from '@/security-audit/security-audit.service';

View File

@@ -1,11 +1,11 @@
import { GlobalConfig } from '@n8n/config';
import { generateNanoId } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { NodeConnectionTypes } from 'n8n-workflow';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { INSTANCE_REPORT, WEBHOOK_VALIDATOR_NODE_TYPES } from '@/security-audit/constants';
import { SecurityAuditService } from '@/security-audit/security-audit.service';
import { toReportTitle } from '@/security-audit/utils';

View File

@@ -1,8 +1,8 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
import { NodeTypes } from '@/node-types';
import { OFFICIAL_RISKY_NODE_TYPES, NODES_REPORT } from '@/security-audit/constants';

View File

@@ -1,12 +1,12 @@
import { GlobalConfig } from '@n8n/config';
import type { InstalledNodes } from '@n8n/db';
import type { InstalledPackages } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import nock from 'nock';
import { v4 as uuid } from 'uuid';
import * as constants from '@/constants';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import type { Risk } from '@/security-audit/types';
import { toReportTitle } from '@/security-audit/utils';

View File

@@ -1,7 +1,7 @@
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { Workflow } from 'n8n-workflow';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { NodeTypes } from '@/node-types';
import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
import { mockInstance } from '@test/mocking';

View File

@@ -4,6 +4,7 @@ import { Project } from '@n8n/db';
import { User } from '@n8n/db';
import { ProjectRepository } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import type { WorkflowSharingRole } from '@n8n/permissions';
import type { DeepPartial } from '@n8n/typeorm';
@@ -11,8 +12,6 @@ import type { IWorkflowBase } from 'n8n-workflow';
import { NodeConnectionTypes } from 'n8n-workflow';
import { v4 as uuid } from 'uuid';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
export async function createManyWorkflows(
amount: number,
attributes: Partial<IWorkflowDb> = {},

View File

@@ -1,10 +1,10 @@
import { CredentialsEntity } from '@n8n/db';
import { CredentialsRepository } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { Telemetry } from '@/telemetry';
import { EnterpriseWorkflowService } from '@/workflows/workflow.service.ee';
import { mockInstance } from '@test/mocking';

View File

@@ -1,9 +1,9 @@
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import { mock } from 'jest-mock-extended';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
import { Telemetry } from '@/telemetry';
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';

View File

@@ -4,6 +4,7 @@ import type { WorkflowWithSharingsMetaDataAndCredentials } from '@n8n/db';
import { ProjectRepository } from '@n8n/db';
import { WorkflowHistoryRepository } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import type { ProjectRole } from '@n8n/permissions';
import { ApplicationError, WorkflowActivationError, type INode } from 'n8n-workflow';
@@ -11,7 +12,6 @@ import { v4 as uuid } from 'uuid';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import config from '@/config';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { UserManagementMailer } from '@/user-management/email';
import { mockInstance } from '@test/mocking';
import { createFolder } from '@test-integration/db/folders';

View File

@@ -1,8 +1,10 @@
import type { User } from '@n8n/db';
import type { ListQueryDb } from '@n8n/db';
import type { WorkflowFolderUnionFull } from '@n8n/db';
import { ProjectRepository } from '@n8n/db';
import { WorkflowHistoryRepository } from '@n8n/db';
import { SharedWorkflowRepository } from '@n8n/db';
import { WorkflowRepository } from '@n8n/db';
import { Container } from '@n8n/di';
import type { Scope } from '@n8n/permissions';
import { DateTime } from 'luxon';
@@ -10,8 +12,6 @@ import { PROJECT_ROOT, type INode, type IPinData, type IWorkflowBase } from 'n8n
import { v4 as uuid } from 'uuid';
import { ActiveWorkflowManager } from '@/active-workflow-manager';
import type { WorkflowFolderUnionFull } from '@/databases/repositories/workflow.repository';
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
import { License } from '@/license';
import { ProjectService } from '@/services/project.service.ee';
import { EnterpriseWorkflowService } from '@/workflows/workflow.service.ee';