@vqp/audit-memory
Version:
In-memory audit adapter for VQP
64 lines • 1.99 kB
TypeScript
/**
* Memory Audit Adapter - Implements AuditPort using in-memory storage
* This adapter stores audit events in memory for testing and lightweight deployments
*/
import { AuditPort, VQPQuery, VQPResponse, VQPError, AuditEntry } from '@vqp/core';
export interface MemoryAuditConfig {
maxEntries?: number;
includeFullQuery?: boolean;
includeFullResponse?: boolean;
autoCleanup?: boolean;
logLevel?: 'debug' | 'info' | 'warn' | 'error';
}
export declare class MemoryAuditAdapter implements AuditPort {
private entries;
private readonly maxEntries;
private readonly includeFullQuery;
private readonly includeFullResponse;
private readonly autoCleanup;
private readonly logLevel;
constructor(config?: MemoryAuditConfig);
logQuery(query: VQPQuery, response: VQPResponse): Promise<void>;
logError(error: VQPError, context: any): Promise<void>;
getAuditTrail(filters?: {
startTime?: string;
endTime?: string;
querier?: string;
event?: string;
}): Promise<AuditEntry[]>;
purgeOldEntries(olderThan: string): Promise<number>;
/**
* Get current number of stored entries
*/
getEntryCount(): number;
/**
* Clear all entries (useful for testing)
*/
clearAll(): void;
/**
* Get memory usage statistics
*/
getMemoryStats(): {
entryCount: number;
maxEntries: number;
memoryUsageBytes: number;
oldestEntry?: string;
newestEntry?: string;
};
private addEntry;
private sanitizeContext;
private estimateMemoryUsage;
/**
* Get entries by event type
*/
getEntriesByEvent(eventType: AuditEntry['event']): AuditEntry[];
/**
* Get recent entries (last N entries)
*/
getRecentEntries(count?: number): AuditEntry[];
/**
* Search entries by metadata
*/
searchEntries(searchTerm: string): AuditEntry[];
}
//# sourceMappingURL=memory-adapter.d.ts.map