anon-identity
Version:
Decentralized identity framework with DIDs, Verifiable Credentials, and privacy-preserving selective disclosure
146 lines • 4.42 kB
TypeScript
import { RevocationAuditEntry } from './cascading-revocation-manager';
import { ActivityLogger } from '../activity/activity-logger';
export interface AuditQuery {
agentDID?: string;
revokedBy?: string;
serviceDID?: string;
reason?: string;
status?: 'pending' | 'completed' | 'failed' | 'partial';
dateRange?: {
start: Date;
end: Date;
};
cascading?: boolean;
limit?: number;
offset?: number;
sortBy?: 'timestamp' | 'agentDID' | 'status';
sortOrder?: 'asc' | 'desc';
}
export interface AuditAnalytics {
totalRevocations: number;
revocationsByReason: Map<string, number>;
revocationsByService: Map<string, number>;
revocationsByUser: Map<string, number>;
revocationsByStatus: Map<string, number>;
cascadingPercentage: number;
averageChildRevocations: number;
peakRevocationHours: number[];
revocationTrends: {
daily: Map<string, number>;
weekly: Map<string, number>;
monthly: Map<string, number>;
};
complianceMetrics: {
auditCompleteness: number;
notificationSuccessRate: number;
avgProcessingTime: number;
};
}
export interface AuditAlert {
id: string;
type: 'high_volume' | 'cascade_failure' | 'notification_failure' | 'suspicious_pattern';
severity: 'low' | 'medium' | 'high' | 'critical';
message: string;
timestamp: Date;
affectedAgents: string[];
metadata: Record<string, any>;
acknowledged: boolean;
acknowledgedBy?: string;
acknowledgedAt?: Date;
}
/**
* Enhanced audit trail system for delegation revocations
* Provides advanced querying, analytics, and monitoring capabilities
*/
export declare class EnhancedAuditTrail {
private activityLogger;
private config;
private auditEntries;
private alertSubscribers;
private alerts;
private lastAnalyticsUpdate;
private cachedAnalytics;
constructor(activityLogger: ActivityLogger, config?: {
maxEntries: number;
alertThresholds: {
highVolumeMinutes: number;
highVolumeCount: number;
cascadeFailureThreshold: number;
notificationFailureThreshold: number;
};
retentionDays: number;
});
/**
* Adds a revocation audit entry to the trail
*/
addAuditEntry(entry: RevocationAuditEntry): Promise<void>;
/**
* Updates an existing audit entry
*/
updateAuditEntry(id: string, updates: Partial<RevocationAuditEntry>): Promise<boolean>;
/**
* Queries audit entries with advanced filtering
*/
queryAuditEntries(query?: AuditQuery): RevocationAuditEntry[];
/**
* Generates comprehensive analytics from audit data
*/
generateAnalytics(forceRefresh?: boolean): AuditAnalytics;
/**
* Subscribes to audit alerts
*/
subscribeToAlerts(subscriberId: string, callback: (alert: AuditAlert) => void): void;
/**
* Unsubscribes from audit alerts
*/
unsubscribeFromAlerts(subscriberId: string): void;
/**
* Gets all active alerts
*/
getActiveAlerts(): AuditAlert[];
/**
* Acknowledges an alert
*/
acknowledgeAlert(alertId: string, acknowledgedBy: string): Promise<boolean>;
/**
* Exports audit data in various formats
*/
exportAuditData(format: 'json' | 'csv' | 'xml', query?: AuditQuery): string;
/**
* Generates compliance report
*/
generateComplianceReport(period: {
start: Date;
end: Date;
}): {
summary: {
totalRevocations: number;
successfulRevocations: number;
failedRevocations: number;
partialRevocations: number;
complianceScore: number;
};
details: {
auditCompleteness: number;
notificationDelivery: number;
processingTime: number;
errorRate: number;
};
recommendations: string[];
violations: Array<{
type: string;
severity: 'low' | 'medium' | 'high';
description: string;
affectedEntries: string[];
}>;
};
private checkAlerts;
private createAlert;
private cleanupOldEntries;
private exportToCsv;
private exportToXml;
private escapeXml;
private getWeekKey;
private getWeekNumber;
}
//# sourceMappingURL=audit-trail.d.ts.map