@gftdcojp/ksqldb-orm
Version:
ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions
108 lines • 3.16 kB
TypeScript
/**
* @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