@bonginkan/maria
Version:
MARIA OS v5.9.5 – Self-Evolving Organizational Intelligence OS | Speed Improvement Phase 3: LLM Optimization + Command Refactoring | Performance Measurement + Run Evidence System | Zero ESLint/TypeScript Errors | 人とAIが役割を持ち、学び、進化し続けるための仕事のOS | GraphRAG ×
184 lines (183 loc) • 5.55 kB
TypeScript
/**
* MARIA Memory System - Phase 4: Enterprise Audit Logger
*
* Comprehensive audit logging for _compliance and security
* with tamper-proof _event recording and regulatory _compliance
*/
import { EventEmitter } from "node:events";
export interface _AuditEvent {
id: string;
timestamp: Date;
eventType: AuditEventType;
userId: string;
sessionId: string;
action: string;
resource: string;
result: "success" | "failure" | "partial";
metadata: AuditMetadata;
signature: string;
previousHash?: string;
_hash: string;
}
export type AuditEventType = "data_access" | "data_modification" | "data_deletion" | "permission_change" | "authentication" | "configuration_change" | "export_operation" | "import_operation" | "compliance_check" | "security_event";
export interface AuditMetadata {
ipAddress?: string;
userAgent?: string;
_location?: string;
deviceId?: string;
correlationId?: string;
riskScore?: number;
complianceFlags?: string[];
dataClassification?: DataClassification;
tags?: string[];
}
export type DataClassification = "public" | "internal" | "confidential" | "restricted" | "pii" | "phi" | "financial";
export interface ComplianceRequirement {
id: string;
name: string;
type: ComplianceType;
requirements: string[];
_retentionDays: number;
encryptionRequired: boolean;
geographicRestrictions?: string[];
}
export type ComplianceType = "GDPR" | "HIPAA" | "SOC2" | "ISO27001" | "PCI_DSS" | "CCPA" | "CUSTOM";
export interface AuditQuery {
startDate?: Date;
endDate?: Date;
userId?: string;
eventTypes?: AuditEventType[];
resources?: string[];
resultTypes?: string[];
complianceFlags?: string[];
minRiskScore?: number;
_limit?: number;
_offset?: number;
}
export interface AuditReport {
reportId: string;
generatedAt: Date;
period: {
start: Date;
end: Date;
};
_summary: AuditSummary;
_events: _AuditEvent[];
_compliance: ComplianceStatus[];
_recommendations: string[];
}
export interface AuditSummary {
totalEvents: number;
successfulEvents: number;
failedEvents: number;
_uniqueUsers: number;
riskEvents: number;
complianceViolations: number;
_eventsByType: Map<AuditEventType, number>;
_topResources: Array<{
resource: string;
count: number;
}>;
}
export interface ComplianceStatus {
requirement: ComplianceRequirement;
status: "compliant" | "non_compliant" | "partial" | "not_applicable";
_violations: string[];
lastChecked: Date;
}
export declare class EnterpriseAuditLogger extends EventEmitter {
private auditLog;
private hashChain;
private complianceRequirements;
private encryptionKey;
private retentionPolicies;
private immutableStorage;
private realTimeMonitors;
constructor(encryptionKey?: string);
/**
* Log an audit _event
*/
logEvent(eventType: AuditEventType, userId: string, action: string, resource: string, result: "success" | "failure" | "partial", metadata?: Partial<AuditMetadata>): Promise<_AuditEvent>;
logDataExport(details: {
userId: string;
sessionId: string;
recordCount: number;
format: string;
_classification: string;
success: boolean;
duration: number;
_error?: string;
}): Promise<void>;
logDataImport(details: {
userId: string;
sessionId: string;
recordCount: number;
format: string;
source: string;
success: boolean;
duration: number;
_error?: string;
}): Promise<void>;
/**
* Query audit _events
*/
query(query: AuditQuery): Promise<_AuditEvent[]>;
/**
* Generate _compliance report
*/
generateComplianceReport(startDate: Date, endDate: Date, complianceTypes?: ComplianceType[]): Promise<AuditReport>;
/**
* Verify audit log integrity
*/
verifyIntegrity(): Promise<{
valid: boolean;
errors: string[];
lastValidEvent?: string;
}>;
/**
* Export audit logs for _compliance
*/
exportForCompliance(_format: "json" | "csv" | "siem", query?: AuditQuery): Promise<string>;
/**
* Register _compliance requirement
*/
registerComplianceRequirement(requirement: ComplianceRequirement): void;
/**
* Add real-time monitor
*/
addRealTimeMonitor(_monitor: (_event: _AuditEvent) => void): void;
/**
* Remove real-time monitor
*/
removeRealTimeMonitor(_monitor: (_event: _AuditEvent) => void): void;
private initializeComplianceRequirements;
private enrichMetadata;
private signEvent;
private verifySignature;
private calculateHash;
private checkCompliance;
private checkRequirementViolations;
private isSecurityAlert;
private calculateSummary;
private assessCompliance;
private generateRecommendations;
private storeReport;
private exportToCSV;
private exportToSIEM;
private calculateSeverity;
private startRetentionManager;
private enforceRetentionPolicies;
private archiveEvents;
private notifyMonitors;
private generateEventId;
private generateSessionId;
private generateCorrelationId;
private generateReportId;
private getClientIP;
private getUserAgent;
private getLocation;
private getDeviceId;
private calculateRiskScore;
private isEventEncrypted;
private isLocationAllowed;
}