hook-engine
Version:
Production-grade webhook engine with comprehensive adapter support, security, reliability, structured logging, and CLI tools.
119 lines (118 loc) • 3.42 kB
TypeScript
import { EventFilter, EventRoute, EventTransformation, EventDestination } from '../types/webhook';
import { ProcessingPipeline, TenantConfig } from '../core/event-processor';
import { MultiTenantConfig } from '../core/multi-tenant-handler';
/**
* Configuration templates for common webhook processing scenarios
*/
export declare const filterTemplates: {
/**
* CI/CD Pipeline Events
*/
cicd: EventFilter;
/**
* Critical Production Events
*/
production: EventFilter;
/**
* Security-Related Events
*/
security: EventFilter;
/**
* Development Events (Non-Critical)
*/
development: EventFilter;
/**
* Team Collaboration Events
*/
collaboration: EventFilter;
};
export declare const transformationTemplates: {
/**
* Slack Message Formatter
*/
slackFormatter: EventTransformation;
/**
* Email Formatter
*/
emailFormatter: EventTransformation;
/**
* Jira Issue Creator
*/
jiraFormatter: EventTransformation;
/**
* Metrics Extractor
*/
metricsExtractor: EventTransformation;
};
export declare const destinationTemplates: {
slack: (webhookUrl: string) => EventDestination;
discord: (webhookUrl: string) => EventDestination;
email: (smtpConfig: any) => EventDestination;
jira: (jiraConfig: any) => EventDestination;
database: (connectionString: string, table: string) => EventDestination;
queue: (queueUrl: string) => EventDestination;
};
export declare const pipelineTemplates: {
/**
* CI/CD Pipeline with Slack notifications
*/
cicdSlack: (slackWebhookUrl: string) => ProcessingPipeline;
/**
* Production monitoring with multiple channels
*/
productionMonitoring: (config: {
slackUrl: string;
emailConfig: any;
jiraConfig: any;
}) => ProcessingPipeline;
/**
* Security event pipeline
*/
securityPipeline: (config: {
slackUrl: string;
emailConfig: any;
}) => ProcessingPipeline;
/**
* Development team collaboration
*/
teamCollaboration: (slackWebhookUrl: string) => ProcessingPipeline;
};
export declare const tenantTemplates: {
/**
* Startup tenant (lower limits)
*/
startup: (tenantId: string, customPipelines?: ProcessingPipeline[]) => TenantConfig;
/**
* Enterprise tenant (higher limits)
*/
enterprise: (tenantId: string, customPipelines?: ProcessingPipeline[]) => TenantConfig;
/**
* Development tenant (relaxed limits for testing)
*/
development: (tenantId: string, customPipelines?: ProcessingPipeline[]) => TenantConfig;
};
export declare const multiTenantTemplates: {
/**
* Basic multi-tenant setup
*/
basic: () => MultiTenantConfig;
/**
* High-performance multi-tenant setup
*/
highPerformance: () => MultiTenantConfig;
/**
* Secure multi-tenant setup
*/
secure: () => MultiTenantConfig;
};
/**
* Create a custom pipeline from template
*/
export declare function createCustomPipeline(id: string, name: string, filters: EventFilter[], transformations: EventTransformation[], routes: EventRoute[], options?: {
enabled?: boolean;
priority?: number;
}): ProcessingPipeline;
/**
* Merge multiple filters with AND logic
*/
export declare function mergeFilters(...filters: EventFilter[]): EventFilter;