UNPKG

@openade/fe

Version:

Fatturazione Elettronica - Electronic Invoicing for Sistema di Interscambio (SDI)

78 lines 2.78 kB
export interface AuditConfig { logDir: string; maxLogSize?: number; retentionDays?: number; detailedLogging?: boolean; includeSensitiveData?: boolean; format?: 'json' | 'text'; compression?: boolean; } export interface AuditEvent { id: string; type: AuditEventType; timestamp: string; userId?: string; sessionId?: string; ipAddress?: string; userAgent?: string; description: string; details: Record<string, any>; success: boolean; error?: string; duration?: number; invoiceId?: string; archiveId?: string; batchId?: string; } export type AuditEventType = 'INVOICE_CREATED' | 'INVOICE_UPDATED' | 'INVOICE_DELETED' | 'INVOICE_SIGNED' | 'INVOICE_TIMESTAMPED' | 'INVOICE_TRANSMITTED' | 'INVOICE_RECEIVED' | 'INVOICE_ARCHIVED' | 'INVOICE_EXTRACTED' | 'BATCH_STARTED' | 'BATCH_COMPLETED' | 'BATCH_FAILED' | 'ARCHIVE_CREATED' | 'ARCHIVE_DELETED' | 'ARCHIVE_EXTRACTED' | 'USER_LOGIN' | 'USER_LOGOUT' | 'CONFIGURATION_CHANGED' | 'ERROR_OCCURRED' | 'SYSTEM_STARTUP' | 'SYSTEM_SHUTDOWN'; export interface AuditQuery { types?: AuditEventType[]; startDate?: string; endDate?: string; userId?: string; success?: boolean; invoiceId?: string; limit?: number; offset?: number; } export interface AuditStats { totalEvents: number; eventsByType: Record<AuditEventType, number>; eventsByUser: Record<string, number>; successRate: number; averageDuration: number; commonErrors: Array<{ error: string; count: number; }>; timeRange: { start: string; end: string; }; } export declare class AuditTrailManager { private config; private currentLogFile; constructor(config: AuditConfig); logEvent(event: Omit<AuditEvent, 'id' | 'timestamp'>): Promise<void>; queryEvents(query?: AuditQuery): Promise<AuditEvent[]>; getAuditStats(query?: AuditQuery): Promise<AuditStats>; exportEvents(query?: AuditQuery, format?: 'json' | 'csv'): Promise<string>; cleanupOldLogs(): Promise<number>; private generateEventId; private ensureLogDirectory; private getCurrentLogFile; private writeToLog; private formatLogEntry; private rotateLogIfNeeded; private getLogFiles; private readLogFile; private filterEvents; private calculateStats; private exportToCSV; private sanitizeSensitiveData; } export declare function createAuditTrailManager(config: AuditConfig): AuditTrailManager; export declare function logAuditEvent(event: Omit<AuditEvent, 'id' | 'timestamp'>, config: AuditConfig): Promise<void>; export declare function queryAuditEvents(query: AuditQuery | undefined, config: AuditConfig): Promise<AuditEvent[]>; //# sourceMappingURL=audit.manager.d.ts.map