import type { INodeType, INodeTypeDescription } from 'n8n-workflow'; import { auditFields, auditOperations } from './AuditDescription'; import { credentialFields, credentialOperations } from './CredentialDescription'; import { executionFields, executionOperations } from './ExecutionDescription'; import { workflowFields, workflowOperations } from './WorkflowDescription'; import { searchWorkflows } from './WorkflowLocator'; /** * The n8n node provides access to the n8n API. * * See: https://docs.n8n.io/api/api-reference/ */ export class N8n implements INodeType { description: INodeTypeDescription = { displayName: 'n8n', name: 'n8n', icon: 'file:n8n.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Consume n8n API', defaults: { name: 'n8n', }, inputs: ['main'], outputs: ['main'], credentials: [ { name: 'n8nApi', required: true, }, ], requestDefaults: { returnFullResponse: true, baseURL: '={{ $credentials.baseUrl.replace(new RegExp("/$"), "") }}', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, }, properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'Audit', value: 'audit', }, { name: 'Credential', value: 'credential', }, { name: 'Execution', value: 'execution', }, { name: 'Workflow', value: 'workflow', }, ], default: 'workflow', }, ...auditOperations, ...auditFields, ...credentialOperations, ...credentialFields, ...executionOperations, ...executionFields, ...workflowOperations, ...workflowFields, ], }; methods = { listSearch: { // Provide workflows search capability for the workflow resourceLocator searchWorkflows, }, }; }