n8n
Version:
n8n Workflow Automation Tool
48 lines (47 loc) • 2.33 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import type { IExecutionResponse } from '@n8n/db';
import { ExecutionRepository } from '@n8n/db';
import type express from 'express';
import { InstanceSettings } from 'n8n-core';
import { type IWorkflowBase, Workflow } from 'n8n-workflow';
import { WebhookService } from './webhook.service';
import type { IWebhookManager, IWebhookResponseCallbackData, WaitingWebhookRequest } from './webhook.types';
import { EventService } from '../events/event.service';
import { NodeTypes } from '../node-types';
export declare class WaitingWebhooks implements IWebhookManager {
protected readonly logger: Logger;
protected readonly nodeTypes: NodeTypes;
private readonly executionRepository;
private readonly webhookService;
protected readonly instanceSettings: InstanceSettings;
private readonly eventService;
protected includeForms: boolean;
constructor(logger: Logger, nodeTypes: NodeTypes, executionRepository: ExecutionRepository, webhookService: WebhookService, instanceSettings: InstanceSettings, eventService: EventService);
findAccessControlOptions(): Promise<{
allowedOrigins: string;
}>;
protected logReceivedWebhook(method: string, executionId: string): void;
protected disableNode(execution: IExecutionResponse, _method?: string): void;
private isSendAndWaitRequest;
protected createWorkflow(workflowData: IWorkflowBase): Workflow;
protected getExecution(executionId: string): Promise<IExecutionResponse | undefined>;
private parseSignatureParam;
protected validateToken(req: express.Request, execution: IExecutionResponse): {
valid: boolean;
webhookPath?: string;
};
protected validateSignature(req: express.Request): {
valid: boolean;
webhookPath?: string;
};
executeWebhook(req: WaitingWebhookRequest, res: express.Response): Promise<IWebhookResponseCallbackData>;
private emitExecutionResumedEvent;
protected getWebhookExecutionData({ execution, req, res, lastNodeExecuted, executionId, suffix, }: {
execution: IExecutionResponse;
req: WaitingWebhookRequest;
res: express.Response;
lastNodeExecuted: string;
executionId: string;
suffix?: string;
}): Promise<IWebhookResponseCallbackData>;
}