anon-identity
Version:
Decentralized identity framework with DIDs, Verifiable Credentials, and privacy-preserving selective disclosure
149 lines • 4.41 kB
TypeScript
import { EnhancedAuditTrail, AuditAlert } from './audit-trail';
import { CascadingRevocationManager } from './cascading-revocation-manager';
import { AgentIdentityManager } from '../agent-identity';
import { ActivityLogger } from '../activity/activity-logger';
export interface DashboardConfig {
refreshInterval: number;
alertRetentionDays: number;
maxDisplayItems: number;
enableRealTimeUpdates: boolean;
alertNotifications: {
email?: string[];
webhook?: string;
slack?: string;
};
}
export interface DashboardMetrics {
realTime: {
activeAgents: number;
ongoingRevocations: number;
alertsInLast24h: number;
systemHealth: 'healthy' | 'warning' | 'critical';
};
historical: {
totalRevocations: number;
successRate: number;
avgProcessingTime: number;
peakRevocationTime: string;
};
trends: {
dailyRevocations: Array<{
date: string;
count: number;
}>;
revocationReasons: Array<{
reason: string;
count: number;
percentage: number;
}>;
serviceImpact: Array<{
service: string;
revocations: number;
agents: number;
}>;
};
alerts: {
active: AuditAlert[];
recent: AuditAlert[];
summary: {
critical: number;
high: number;
medium: number;
low: number;
};
};
}
export interface DashboardFilter {
timeRange: '1h' | '24h' | '7d' | '30d' | 'custom';
customRange?: {
start: Date;
end: Date;
};
services?: string[];
users?: string[];
statuses?: string[];
alertTypes?: string[];
}
/**
* Monitoring dashboard for revocation and delegation audit trail
* Provides real-time metrics, analytics, and alerting capabilities
*/
export declare class RevocationMonitoringDashboard {
private auditTrail;
private revocationManager;
private agentManager;
private activityLogger;
private config;
private metrics;
private lastUpdate;
private subscribers;
private refreshTimer;
constructor(auditTrail: EnhancedAuditTrail, revocationManager: CascadingRevocationManager, agentManager: AgentIdentityManager, activityLogger: ActivityLogger, config?: DashboardConfig);
/**
* Gets current dashboard metrics
*/
getMetrics(filter?: DashboardFilter): Promise<DashboardMetrics>;
/**
* Subscribes to real-time dashboard updates
*/
subscribe(subscriberId: string, callback: (metrics: DashboardMetrics) => void): void;
/**
* Unsubscribes from dashboard updates
*/
unsubscribe(subscriberId: string): void;
/**
* Forces a refresh of dashboard metrics
*/
refreshMetrics(filter?: DashboardFilter): Promise<DashboardMetrics>;
/**
* Gets revocation statistics for a specific time period
*/
getRevocationStats(filter: DashboardFilter): {
totalRevocations: number;
successfulRevocations: number;
failedRevocations: number;
averageProcessingTime: number;
topReasons: Array<{
reason: string;
count: number;
}>;
topServices: Array<{
service: string;
count: number;
}>;
};
/**
* Gets agent health overview
*/
getAgentHealthOverview(): {
totalAgents: number;
activeAgents: number;
revokedAgents: number;
agentsWithIssues: number;
delegationDepthDistribution: Map<number, number>;
recentlyCreated: number;
recentlyRevoked: number;
};
/**
* Generates dashboard report
*/
generateReport(filter: DashboardFilter, format?: 'json' | 'html' | 'pdf'): string;
/**
* Stops the dashboard and cleans up resources
*/
stop(): void;
private startAutoRefresh;
private subscribeToAlerts;
private handleNewAlert;
private shouldRefreshMetrics;
private calculateTimeRange;
private calculateRealTimeMetrics;
private calculateHistoricalMetrics;
private calculateTrends;
private calculateAlertSummary;
private getRecentAlerts;
private notifySubscribers;
private generateRecommendations;
private generateHtmlReport;
}
//# sourceMappingURL=monitoring-dashboard.d.ts.map