UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

127 lines (126 loc) 3.74 kB
import type { AuditStore } from './AuditStore.js'; /** Minimal EventBus shape for optional audit event emission */ interface AuditEventBus { emit(event: string, data: unknown): void; } /** AuditLogger - 审计日志记录器 */ export declare class AuditLogger { #private; auditStore: AuditStore; logger: import('winston').Logger; constructor(auditStore: AuditStore, eventBus?: AuditEventBus | null); /** * 记录审计日志 * 兼容两种传入格式: * Gateway 风格: { actor, action, resource, result, data, duration } * Service 风格: { actor, action, resourceType, resourceId, details, timestamp } */ log(entry: { requestId?: string; actor: string; action: string; resource?: string; resourceType?: string; resourceId?: string; data?: Record<string, unknown>; details?: unknown; context?: Record<string, unknown>; result?: string; error?: string; duration?: number; }): Promise<void>; /** 生成 ID */ generateId(): string; /** 格式化资源 */ formatResource(resource: unknown): string; /** 查询审计日志 */ query(filters: { actor?: string; action?: string; result?: string; startDate?: number; endDate?: number; limit?: number; }): Promise<{ id: string; timestamp: number; actor: string; actorContext: string | null; action: string; resource: string | null; operationData: string | null; result: string; errorMessage: string | null; duration: number | null; }[]>; /** 获取特定请求的日志 */ getByRequestId(requestId: string): Promise<{ id: string; timestamp: number; actor: string; actorContext: string | null; action: string; resource: string | null; operationData: string | null; result: string; errorMessage: string | null; duration: number | null; } | undefined>; /** 获取特定角色的日志 */ getByActor(actor: string, limit?: number): Promise<{ id: string; timestamp: number; actor: string; actorContext: string | null; action: string; resource: string | null; operationData: string | null; result: string; errorMessage: string | null; duration: number | null; }[]>; /** 获取特定操作的日志 */ getByAction(action: string, limit?: number): Promise<{ id: string; timestamp: number; actor: string; actorContext: string | null; action: string; resource: string | null; operationData: string | null; result: string; errorMessage: string | null; duration: number | null; }[]>; /** 获取失败的操作日志 */ getFailures(limit?: number): Promise<{ id: string; timestamp: number; actor: string; actorContext: string | null; action: string; resource: string | null; operationData: string | null; result: string; errorMessage: string | null; duration: number | null; }[]>; /** 统计审计数据 */ getStats(timeRange: string): Promise<{ timeRange: string; total: number; success: number; failure: number; successRate: string; avgDuration: string; byActor: { actor: string; count: number; }[]; byAction: { action: string; count: number; }[]; }>; } export default AuditLogger;