UNPKG

thrilled-be-core

Version:

Core Express backend package with middleware, logging, security, and base application setup

81 lines 2.45 kB
/** * Correlation ID Middleware for Request Tracking * * This middleware ensures that every request has a unique correlation ID * that can be used for tracking requests across the application, logs, * and external services. This is essential for distributed tracing and * debugging in microservices architectures. * * @package be-core * @since 1.0.0 */ import { Request, Response, NextFunction } from 'express'; import { Logger } from '../logging/Logger'; export interface CorrelationIdOptions { logger?: Logger; headerName?: string; propertyName?: string; generateId?: () => string; enforceHeader?: boolean; logRequests?: boolean; } export interface RequestWithCorrelationId extends Request { correlationId: string; requestId: string; [key: string]: any; } /** * Correlation ID Middleware for tracking requests across distributed systems */ export declare class CorrelationIdMiddleware { private logger; private options; constructor(options?: CorrelationIdOptions); /** * Main correlation ID middleware */ handle(): (req: Request, res: Response, next: NextFunction) => void; /** * Extract correlation ID from request or generate new one */ private extractOrGenerateCorrelationId; /** * Validate correlation ID format */ private isValidCorrelationId; /** * Log incoming request with correlation ID */ private logRequest; /** * Get correlation ID from request */ static getCorrelationId(req: Request): string | undefined; /** * Get correlation ID from request with fallback */ static getCorrelationIdSafe(req: Request): string; /** * Health check for correlation ID middleware */ healthCheck(): { name: string; status: "healthy"; timestamp: string; details: { headerName: string; propertyName: string; enforceHeader: boolean; logRequests: boolean; }; }; } /** * Factory function to create correlation ID middleware */ export declare function createCorrelationIdMiddleware(options?: CorrelationIdOptions): CorrelationIdMiddleware; /** * Express middleware function for correlation ID */ export declare function correlationId(options?: CorrelationIdOptions): (req: Request, res: Response, next: NextFunction) => void; //# sourceMappingURL=CorrelationIdMiddleware.d.ts.map