n8n
Version:
n8n Workflow Automation Tool
313 lines (312 loc) • 14.4 kB
TypeScript
import { ActivateWorkflowDto, ArchiveWorkflowDto, CreateWorkflowDto, DeactivateWorkflowDto, ImportWorkflowFromUrlDto, TransferWorkflowBodyDto, UpdateWorkflowDto } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { GlobalConfig, SsrfProtectionConfig } from '@n8n/config';
import { SharedWorkflow, ProjectRelationRepository, ProjectRepository, WorkflowRepository, AuthenticatedRequest } from '@n8n/db';
import express from 'express';
import { CollaborationService } from '../collaboration/collaboration.service';
import { WorkflowCreationService } from './workflow-creation.service';
import { WorkflowExecutionService } from './workflow-execution.service';
import { WorkflowFinderService } from './workflow-finder.service';
import { WorkflowRequest } from './workflow.request';
import { WorkflowService } from './workflow.service';
import { EnterpriseWorkflowService } from './workflow.service.ee';
import { EventService } from '../events/event.service';
import { ExecutionService } from '../executions/execution.service';
import type { IWorkflowResponse } from '../interfaces';
import { License } from '../license';
import { NamingService } from '../services/naming.service';
import { ProjectService } from '../services/project.service.ee';
import { SsrfProtectionService } from '../services/ssrf/ssrf-protection.service';
import { UserManagementMailer } from '../user-management/email';
export declare class WorkflowsController {
private readonly logger;
private readonly enterpriseWorkflowService;
private readonly namingService;
private readonly workflowRepository;
private readonly workflowService;
private readonly workflowCreationService;
private readonly workflowExecutionService;
private readonly license;
private readonly mailer;
private readonly projectRepository;
private readonly projectService;
private readonly projectRelationRepository;
private readonly eventService;
private readonly globalConfig;
private readonly workflowFinderService;
private readonly executionService;
private readonly collaborationService;
private readonly ssrfConfig;
private readonly ssrfProtectionService;
constructor(logger: Logger, enterpriseWorkflowService: EnterpriseWorkflowService, namingService: NamingService, workflowRepository: WorkflowRepository, workflowService: WorkflowService, workflowCreationService: WorkflowCreationService, workflowExecutionService: WorkflowExecutionService, license: License, mailer: UserManagementMailer, projectRepository: ProjectRepository, projectService: ProjectService, projectRelationRepository: ProjectRelationRepository, eventService: EventService, globalConfig: GlobalConfig, workflowFinderService: WorkflowFinderService, executionService: ExecutionService, collaborationService: CollaborationService, ssrfConfig: SsrfProtectionConfig, ssrfProtectionService: SsrfProtectionService);
create(req: AuthenticatedRequest, _res: unknown, body: CreateWorkflowDto): Promise<{
scopes: import("@n8n/permissions").Scope[];
checksum: string;
homeProject?: import("@n8n/db").SlimProject | null;
sharedWithProjects: import("@n8n/db").SlimProject[];
usedCredentials?: import("@n8n/db").CredentialUsedByWorkflow[];
description: string | null;
tags?: import("@n8n/db").TagEntity[] | undefined;
id: string;
name: string;
active: boolean;
versionId: string;
activeVersionId: string | null;
createdAt: Date;
updatedAt: Date;
generateId: () => void;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
setUpdateDate: () => void;
meta?: import("n8n-workflow").WorkflowFEMeta | undefined;
isArchived: boolean;
parentFolder: import("@n8n/db").Folder | null;
settings?: import("n8n-workflow").IWorkflowSettings | undefined;
staticData?: import("n8n-workflow").IDataObject | undefined;
pinData?: import("@n8n/db").ISimplifiedPinData | undefined;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
tagMappings: import("@n8n/db").WorkflowTagMapping[];
testRuns: import("@n8n/db").TestRun[];
}>;
getAll(req: WorkflowRequest.GetMany, res: express.Response): Promise<void>;
getNewName(req: WorkflowRequest.NewName): Promise<{
name: string;
}>;
getFromUrl(req: AuthenticatedRequest, _res: express.Response, query: ImportWorkflowFromUrlDto): Promise<IWorkflowResponse>;
getWorkflow(req: WorkflowRequest.Get): Promise<{
scopes: import("@n8n/permissions").Scope[];
checksum: string;
homeProject?: import("@n8n/db").SlimProject | null;
sharedWithProjects: import("@n8n/db").SlimProject[];
usedCredentials?: import("@n8n/db").CredentialUsedByWorkflow[];
description: string | null;
tags?: import("@n8n/db").TagEntity[] | undefined;
id: string;
name: string;
active: boolean;
versionId: string;
activeVersionId: string | null;
createdAt: Date;
updatedAt: Date;
generateId: () => void;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
setUpdateDate: () => void;
meta?: import("n8n-workflow").WorkflowFEMeta | undefined;
isArchived: boolean;
parentFolder: import("@n8n/db").Folder | null;
settings?: import("n8n-workflow").IWorkflowSettings | undefined;
staticData?: import("n8n-workflow").IDataObject | undefined;
pinData?: import("@n8n/db").ISimplifiedPinData | undefined;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
tagMappings: import("@n8n/db").WorkflowTagMapping[];
testRuns: import("@n8n/db").TestRun[];
} | {
scopes: import("@n8n/permissions").Scope[];
checksum: string;
name: string;
description: string | null;
active: boolean;
isArchived: boolean;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
settings?: import("n8n-workflow").IWorkflowSettings;
staticData?: import("n8n-workflow").IDataObject;
meta?: import("n8n-workflow").WorkflowFEMeta;
tags?: import("@n8n/db").TagEntity[];
tagMappings: import("@n8n/db").WorkflowTagMapping[];
shared: SharedWorkflow[];
pinData?: import("@n8n/db").ISimplifiedPinData;
versionId: string;
activeVersionId: string | null;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
parentFolder: import("@n8n/db").Folder | null;
testRuns: import("@n8n/db").TestRun[];
id: string;
generateId(): void;
createdAt: Date;
updatedAt: Date;
setUpdateDate(): void;
}>;
exists(req: WorkflowRequest.Get): Promise<{
exists: boolean;
}>;
update(req: WorkflowRequest.Update, _res: unknown, workflowId: string, body: UpdateWorkflowDto): Promise<{
scopes: import("@n8n/permissions").Scope[];
checksum: string;
name: string;
description: string | null;
active: boolean;
isArchived: boolean;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
settings?: import("n8n-workflow").IWorkflowSettings;
staticData?: import("n8n-workflow").IDataObject;
meta?: import("n8n-workflow").WorkflowFEMeta;
tags?: import("@n8n/db").TagEntity[];
tagMappings: import("@n8n/db").WorkflowTagMapping[];
shared: SharedWorkflow[];
pinData?: import("@n8n/db").ISimplifiedPinData;
versionId: string;
activeVersionId: string | null;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
parentFolder: import("@n8n/db").Folder | null;
testRuns: import("@n8n/db").TestRun[];
id: string;
generateId(): void;
createdAt: Date;
updatedAt: Date;
setUpdateDate(): void;
}>;
getWriteLock(req: AuthenticatedRequest, _res: Response, workflowId: string): Promise<{
clientId: string;
userId: string;
} | null>;
delete(req: AuthenticatedRequest, _res: Response, workflowId: string): Promise<boolean>;
archive(req: AuthenticatedRequest, _res: Response, workflowId: string, body: ArchiveWorkflowDto): Promise<{
checksum: string;
name: string;
description: string | null;
active: boolean;
isArchived: boolean;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
settings?: import("n8n-workflow").IWorkflowSettings;
staticData?: import("n8n-workflow").IDataObject;
meta?: import("n8n-workflow").WorkflowFEMeta;
tags?: import("@n8n/db").TagEntity[];
tagMappings: import("@n8n/db").WorkflowTagMapping[];
shared: SharedWorkflow[];
pinData?: import("@n8n/db").ISimplifiedPinData;
versionId: string;
activeVersionId: string | null;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
parentFolder: import("@n8n/db").Folder | null;
testRuns: import("@n8n/db").TestRun[];
id: string;
generateId(): void;
createdAt: Date;
updatedAt: Date;
setUpdateDate(): void;
}>;
unarchive(req: AuthenticatedRequest, _res: Response, workflowId: string): Promise<{
checksum: string;
name: string;
description: string | null;
active: boolean;
isArchived: boolean;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
settings?: import("n8n-workflow").IWorkflowSettings;
staticData?: import("n8n-workflow").IDataObject;
meta?: import("n8n-workflow").WorkflowFEMeta;
tags?: import("@n8n/db").TagEntity[];
tagMappings: import("@n8n/db").WorkflowTagMapping[];
shared: SharedWorkflow[];
pinData?: import("@n8n/db").ISimplifiedPinData;
versionId: string;
activeVersionId: string | null;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
parentFolder: import("@n8n/db").Folder | null;
testRuns: import("@n8n/db").TestRun[];
id: string;
generateId(): void;
createdAt: Date;
updatedAt: Date;
setUpdateDate(): void;
}>;
activate(req: WorkflowRequest.Activate, _res: unknown, workflowId: string, body: ActivateWorkflowDto): Promise<{
scopes: import("@n8n/permissions").Scope[];
checksum: string;
name: string;
description: string | null;
active: boolean;
isArchived: boolean;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
settings?: import("n8n-workflow").IWorkflowSettings;
staticData?: import("n8n-workflow").IDataObject;
meta?: import("n8n-workflow").WorkflowFEMeta;
tags?: import("@n8n/db").TagEntity[];
tagMappings: import("@n8n/db").WorkflowTagMapping[];
shared: SharedWorkflow[];
pinData?: import("@n8n/db").ISimplifiedPinData;
versionId: string;
activeVersionId: string | null;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
parentFolder: import("@n8n/db").Folder | null;
testRuns: import("@n8n/db").TestRun[];
id: string;
generateId(): void;
createdAt: Date;
updatedAt: Date;
setUpdateDate(): void;
}>;
deactivate(req: WorkflowRequest.Deactivate, _res: unknown, workflowId: string, body: DeactivateWorkflowDto): Promise<{
scopes: import("@n8n/permissions").Scope[];
checksum: string;
name: string;
description: string | null;
active: boolean;
isArchived: boolean;
nodes: import("n8n-workflow").INode[];
connections: import("n8n-workflow").IConnections;
settings?: import("n8n-workflow").IWorkflowSettings;
staticData?: import("n8n-workflow").IDataObject;
meta?: import("n8n-workflow").WorkflowFEMeta;
tags?: import("@n8n/db").TagEntity[];
tagMappings: import("@n8n/db").WorkflowTagMapping[];
shared: SharedWorkflow[];
pinData?: import("@n8n/db").ISimplifiedPinData;
versionId: string;
activeVersionId: string | null;
activeVersion: import("@n8n/db").WorkflowHistory | null;
versionCounter: number;
triggerCount: number;
parentFolder: import("@n8n/db").Folder | null;
testRuns: import("@n8n/db").TestRun[];
id: string;
generateId(): void;
createdAt: Date;
updatedAt: Date;
setUpdateDate(): void;
}>;
runManually(req: WorkflowRequest.ManualRun, _res: unknown): Promise<{
executionId: string;
} | {
waitingForWebhook: boolean;
}>;
share(req: WorkflowRequest.Share): Promise<void>;
transfer(req: AuthenticatedRequest, _res: unknown, workflowId: string, body: TransferWorkflowBodyDto): Promise<{
error: {
message: string;
lineNumber: number | undefined;
timestamp: number;
name: string;
description: string | null | undefined;
context: import("n8n-workflow").IDataObject;
cause: Error | undefined;
} | {
name: string;
message: string;
};
} | undefined>;
getLastSuccessfulExecution(req: AuthenticatedRequest, _res: unknown, workflowId: string): Promise<import("@n8n/db").IExecutionResponse | null>;
getWorkflowsWithNodesIncluded(req: AuthenticatedRequest, res: express.Response): Promise<void>;
private fetchWorkflowFromUrl;
private findSsrfBlockedError;
}