UNPKG

@gftdcojp/ksqldb-orm

Version:

ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions

108 lines 3.16 kB
/** * @fileoverview 監査ログ機能を管理 * @description データベース操作の監査ログを記録、管理します */ export interface AuditLogEntry { id: string; timestamp: Date; userId?: string; sessionId?: string; operation: string; tableName?: string; query?: string; success: boolean; errorMessage?: string; metadata?: Record<string, any>; ipAddress?: string; userAgent?: string; } export interface AuditLogOptions { enableConsoleOutput?: boolean; enableFileOutput?: boolean; logLevel?: 'info' | 'warn' | 'error'; retentionDays?: number; } /** * 監査ログマネージャー * ksqlDBの操作を追跡・記録するための機能を提供 */ export declare class AuditLogManager { private logs; private static instance; private options; private constructor(); /** * シングルトンインスタンスを取得 */ static getInstance(options?: AuditLogOptions): AuditLogManager; /** * 監査ログエントリを記録 */ logOperation(entry: Omit<AuditLogEntry, 'id' | 'timestamp'>): AuditLogEntry; /** * 成功した操作をログ */ logSuccess(operation: string, options?: Partial<AuditLogEntry>): AuditLogEntry; /** * 失敗した操作をログ */ logFailure(operation: string, errorMessage: string, options?: Partial<AuditLogEntry>): AuditLogEntry; /** * ユーザーの操作履歴を取得 */ getUserAuditLogs(userId: string, limit?: number): AuditLogEntry[]; /** * テーブルの操作履歴を取得 */ getTableAuditLogs(tableName: string, limit?: number): AuditLogEntry[]; /** * 期間内の監査ログを取得 */ getAuditLogsByDateRange(startDate: Date, endDate: Date): AuditLogEntry[]; /** * 失敗した操作のログを取得 */ getFailedOperations(limit?: number): AuditLogEntry[]; /** * 監査ログ統計情報を取得 */ getAuditStatistics(): { totalOperations: number; successfulOperations: number; failedOperations: number; successRate: number; operationsByType: Record<string, number>; operationsByUser: Record<string, number>; }; /** * 古いログをクリーンアップ */ private cleanupOldLogs; /** * 監査ログをクリア(開発用) */ clearAuditLogs(): void; /** * 監査ログをJSON形式でエクスポート */ exportAuditLogs(startDate?: Date, endDate?: Date): string; } /** * 便利関数のエクスポート */ export declare const auditLog: { /** * 成功操作をログ */ success: (operation: string, options?: Partial<AuditLogEntry>) => AuditLogEntry; /** * 失敗操作をログ */ failure: (operation: string, errorMessage: string, options?: Partial<AuditLogEntry>) => AuditLogEntry; /** * マネージャーインスタンスを取得 */ getManager: (options?: AuditLogOptions) => AuditLogManager; }; export default AuditLogManager; //# sourceMappingURL=audit-log.d.ts.map