/** * 结构化审计日志模块 * * 功能特性: * - JSONL 格式(每行一个 JSON 对象),便于追加和解析 * - 原子写入模式(先写 tmp 文件,再 rename),防止崩溃导致数据损坏 * - 敏感字段自动脱敏(password、token、OPENCODE_SERVER_PASSWORD 等) * - 支持按日期滚动的文件命名 * - 完整的字段完整性保证 */ /** * 审计事件分类 */ export type AuditClassification = 'permission' | 'question' | 'config' | 'session' | 'security' | 'system' | 'error'; /** * 审计决策类型 */ export type AuditDecision = 'allow' | 'deny' | 'answer' | 'skip' | 'update' | 'create' | 'delete' | 'rollback'; /** * 审计结果状态 */ export type AuditResult = 'success' | 'failed' | 'rejected' | 'timeout' | 'error'; /** * 审计事件接口 */ export interface AuditEvent { /** 唯一事件 ID */ incidentId: string; /** 事件分类 */ classification: AuditClassification; /** 决策类型 */ decision: AuditDecision; /** 动作描述 */ action: string; /** 结果状态 */ result: AuditResult; /** ISO 8601 时间戳 */ timestamp: string; /** 可选元数据(会自动脱敏敏感字段) */ metadata?: Record; } /** * 生成唯一的 incident ID * @returns 格式:inc_(去掉连字符) */ export declare function generateIncidentId(): string; /** * 递归脱敏敏感字段 * @param data 原始数据对象 * @returns 脱敏后的新对象(不修改原对象) */ export declare function redactSensitiveFields>(data: T): T; /** * 审计日志记录器接口 */ export interface AuditLogger { /** * 记录审计事件 * @param event 审计事件 */ log(event: AuditEvent): Promise; } /** * 创建审计日志记录器 * @param logFilePath 日志文件路径 * @param useDateRotation 是否启用日期滚动(默认 false) * @returns 审计日志记录器 */ export declare function auditLogger(logFilePath: string, useDateRotation?: boolean): AuditLogger; /** * 验证审计事件字段完整性 * @param event 审计事件 * @returns 验证结果(包含错误信息) */ export declare function validateAuditEvent(event: Partial): { valid: boolean; errors: string[]; }; /** * 解析 JSONL 日志文件 * @param filePath 日志文件路径 * @returns 审计事件数组 */ export declare function parseAuditLogFile(filePath: string): Promise; declare const _default: { auditLogger: typeof auditLogger; generateIncidentId: typeof generateIncidentId; redactSensitiveFields: typeof redactSensitiveFields; validateAuditEvent: typeof validateAuditEvent; parseAuditLogFile: typeof parseAuditLogFile; }; export default _default; //# sourceMappingURL=audit-log.d.ts.map