UNPKG

n8n

Version:

n8n Workflow Automation Tool

40 lines (39 loc) 1.86 kB
import type { BreakingChangeAffectedWorkflow, BreakingChangeRecommendation, BreakingChangeRuleSeverity, BreakingChangeVersion } from '@n8n/api-types'; import type { WorkflowEntity } from '@n8n/db'; import type { INode } from 'n8n-workflow'; import type { BatchWorkflowDetectionReport, InstanceDetectionReport, WorkflowDetectionReport } from './detection.types'; export declare const enum BreakingChangeCategory { workflow = "workflow", instance = "instance", environment = "environment", database = "database", infrastructure = "infrastructure" } export interface BreakingChangeRuleMetadata { version: BreakingChangeVersion; title: string; description: string; category: BreakingChangeCategory; severity: BreakingChangeRuleSeverity; documentationUrl?: string; } export interface IBreakingChangeInstanceRule { id: string; getMetadata(): BreakingChangeRuleMetadata; detect(): Promise<InstanceDetectionReport>; } export interface IBreakingChangeWorkflowRule { id: string; getMetadata(): BreakingChangeRuleMetadata; getRecommendations(workflowResults: BreakingChangeAffectedWorkflow[]): Promise<BreakingChangeRecommendation[]>; detectWorkflow(workflow: WorkflowEntity, nodesGroupedByType: Map<string, INode[]>): Promise<WorkflowDetectionReport>; } export interface IBreakingChangeBatchWorkflowRule { id: string; getMetadata(): BreakingChangeRuleMetadata; getRecommendations(workflowResults: BreakingChangeAffectedWorkflow[]): Promise<BreakingChangeRecommendation[]>; collectWorkflowData(workflow: WorkflowEntity, nodesGroupedByType: Map<string, INode[]>): Promise<void>; produceReport(): Promise<BatchWorkflowDetectionReport>; reset(): void; } export type IBreakingChangeRule = IBreakingChangeInstanceRule | IBreakingChangeWorkflowRule | IBreakingChangeBatchWorkflowRule;