/** * Visus-MCP Audit Log Schema * EU AI Act Art. 13 (Transparency) / Art. 9 (Risk Management) * GDPR Art. 5(2) (Accountability) / Art. 30 (Records of Processing) */ import type { ComplianceMetadata } from '../types.js'; /** * GDPR Art. 6 lawful basis options */ export type LawfulBasis = 'consent' | 'contract' | 'legal_obligation' | 'vital_interests' | 'public_task' | 'legitimate_interests' | 'not_applicable'; /** * GDPR Art. 30: Record of what was redacted and why. * AI Act Art. 9: Evidence of risk management measure applied. */ export interface RedactionRecord { redaction_id: string; category: string; pattern_matched: string; original_length: number; replacement_token: string; ai_act_article: string; gdpr_article: string; risk_level: 'low' | 'medium' | 'high' | 'critical'; } /** * GDPR Art. 30(1)(d): Description of categories of data and recipients. * Records the data transformation chain for this request. */ export interface DataFlowRecord { source_type: string; source_domain: string; input_byte_size: number; output_byte_size: number; forwarded_to: string; personal_data_categories: string[]; lawful_basis: LawfulBasis; lawful_basis_notes: string; data_retained: boolean; retention_seconds: number; } /** * The cryptographically-linkable proof that sanitization ran for this request. * AI Act Art. 9 + Art. 15: Evidence that risk management and robustness controls executed. * GDPR Art. 32(1)(d): Evidence of regular testing and evaluation. * * The proof_hash is SHA-256(request_id + patterns_triggered_sorted + timestamp). * This allows audit verification without storing the original content. */ export interface SanitizationProof { proof_id: string; request_id: string; timestamp_utc: string; patterns_evaluated: number; patterns_triggered: number; injection_detected: boolean; sanitization_applied: boolean; input_hash: string; output_hash: string; proof_hash: string; pipeline_version: string; processing_duration_ms: number; compliance_metadata?: ComplianceMetadata; } /** * Master audit log record. One per MCP tool call. * * Regulatory basis: * - EU AI Act Art. 9: Risk Management System — documents that controls ran * - EU AI Act Art. 13: Transparency — machine-readable record of AI processing * - EU AI Act Art. 15: Robustness — proves sanitization executed before AI received content * - GDPR Art. 5(2): Accountability — controller can demonstrate compliance * - GDPR Art. 30: Records of Processing Activities * - GDPR Art. 32: Security of Processing — evidence of technical measures */ export interface AuditLogRecord { record_id: string; request_id: string; created_at: string; ttl: number; tool_name: string; tool_version: string; mcp_server_version: string; user_id?: string; success: boolean; error_type?: string; sanitization_proof?: SanitizationProof; data_flow?: DataFlowRecord; redactions: RedactionRecord[]; ai_act_controls_applied: string[]; gdpr_articles_applicable: string[]; } /** * Flat dict for PDF/CSV export. Safe for external disclosure. */ export interface ComplianceReportRow { 'Request ID': string; 'Timestamp (UTC)': string; 'Tool': string; 'Injection Detected': string; 'Patterns Triggered': string; 'Redactions Applied': string; 'Input Size (bytes)': string; 'Output Size (bytes)': string; 'Data Retained': string; 'Lawful Basis': string; 'AI Act Controls': string; 'GDPR Articles': string; 'Proof Hash': string; } /** * Create a new RedactionRecord with sensible defaults */ export declare function createRedactionRecord(category: string, pattern_matched: string, original_length: number, replacement_token: string, risk_level?: 'low' | 'medium' | 'high' | 'critical', ai_act_article?: string, gdpr_article?: string): RedactionRecord; /** * Create a new DataFlowRecord with sensible defaults */ export declare function createDataFlowRecord(source_domain: string, input_byte_size: number, output_byte_size: number, personal_data_categories?: string[], lawful_basis?: LawfulBasis): DataFlowRecord; /** * Create a new SanitizationProof with sensible defaults */ export declare function createSanitizationProof(request_id: string, patterns_evaluated: number, patterns_triggered: number, injection_detected: boolean, sanitization_applied: boolean, input_hash: string, output_hash: string, proof_hash: string, processing_duration_ms: number, pipeline_version?: string): SanitizationProof; /** * Create a new AuditLogRecord with sensible defaults */ export declare function createAuditLogRecord(request_id: string, tool_name: string, tool_version: string, mcp_server_version?: string): AuditLogRecord; /** * Convert AuditLogRecord to compliance report row (safe for external disclosure) */ export declare function toComplianceReportRow(record: AuditLogRecord): ComplianceReportRow; //# sourceMappingURL=schema.d.ts.map