okta-mcp-server
Version:
Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching
89 lines • 2.4 kB
TypeScript
/**
* SQLite-based audit logger with tamper resistance and high performance
*/
import { EventBus } from '../../core/event-bus.js';
import { PIIMasker } from './pii-masker.js';
import { AuditEntry, AuditQueryOptions, AuditStatistics, AuditRetentionPolicy, AuditIntegrityCheck, AuditExportOptions } from './types.js';
export interface AuditLoggerOptions {
dbPath?: string;
inMemory?: boolean;
eventBus?: EventBus;
retentionPolicy?: AuditRetentionPolicy;
piiMasker?: PIIMasker;
enableIntegrityChecks?: boolean;
performanceTracking?: boolean;
batchSize?: number;
flushInterval?: number;
}
export declare class AuditLogger {
private db;
private eventBus?;
private piiMasker;
private retentionPolicy;
private readonly enableIntegrityChecks;
private readonly performanceTracking;
private readonly batchSize;
private pendingEntries;
private flushTimer?;
private preparedStatements;
constructor(options?: AuditLoggerOptions);
private initializeSchema;
private prepareStatements;
/**
* Log an audit entry
*/
log(entry: Omit<AuditEntry, 'id' | 'hash'>): Promise<void>;
/**
* Flush pending entries to database
*/
flush(): Promise<void>;
/**
* Query audit logs
*/
query(options?: AuditQueryOptions): Promise<AuditEntry[]>;
/**
* Get audit statistics
*/
getStatistics(startTime: Date, endTime: Date): Promise<AuditStatistics>;
/**
* Export audit logs
*/
export(options: AuditExportOptions): Promise<string>;
/**
* Check integrity of audit logs
*/
checkIntegrity(hoursBack?: number): Promise<AuditIntegrityCheck>;
/**
* Clean up old entries based on retention policy
*/
private cleanupOldEntries;
/**
* Calculate hash for an audit entry
*/
private calculateEntryHash;
/**
* Calculate hash from database row
*/
private calculateHashFromRow;
/**
* Convert database row to AuditEntry
*/
private rowToAuditEntry;
/**
* Export to CSV format
*/
private exportToCSV;
/**
* Export to SIEM format (CEF)
*/
private exportToSIEM;
/**
* Close the database connection
*/
close(): void;
/**
* Optimize the database
*/
optimize(): Promise<void>;
}
//# sourceMappingURL=audit-logger.d.ts.map