@iota-big3/sdk-security
Version:
Advanced security features including zero trust, quantum-safe crypto, and ML threat detection
122 lines • 3.47 kB
TypeScript
/**
* @iota-big3/sdk-security - Chaos Engineering Framework
* Production readiness through controlled failure injection
*/
import { EventEmitter } from 'events';
export interface ChaosConfig {
enabled: boolean;
probability: number;
targets: ChaosTarget[];
schedule?: string;
maxDuration?: number;
safeguards: ChaosSafeguard[];
}
export interface ChaosTarget {
component: string;
method?: string;
failureTypes: FailureType[];
weight?: number;
}
export interface ChaosSafeguard {
name: string;
condition: () => boolean | Promise<boolean>;
action: 'abort' | 'pause' | 'notify';
}
export type FailureType = 'latency' | 'error' | 'timeout' | 'resource_exhaustion' | 'network_partition' | 'certificate_expiry' | 'permission_denied' | 'data_corruption';
export interface ChaosEvent {
id: string;
timestamp: number;
target: string;
failureType: FailureType;
duration?: number;
error?: Error;
recovered: boolean;
}
export interface ChaosMetrics {
totalFailures: number;
failuresByType: Record<FailureType, number>;
failuresByComponent: Record<string, number>;
averageRecoveryTime: number;
systemAvailability: number;
lastFailureTime: number;
}
export declare class ChaosEngine extends EventEmitter {
private config;
private isActive;
private failures;
private metrics;
private activeFailures;
private originalMethods;
constructor(config: ChaosConfig);
private initializeMetrics;
start(): Promise<void>;
private checkSafeguards;
private startChaosInjection;
private injectRandomFailure;
private selectRandomTarget;
private selectRandomFailureType;
private applyFailure;
private injectLatency;
private injectError;
private injectTimeout;
private injectResourceExhaustion;
private injectNetworkPartition;
private injectCertificateExpiry;
private injectPermissionDenied;
private injectDataCorruption;
private wrapMethod;
recoverFailure(eventId: string): Promise<void>;
pause(): Promise<void>;
resume(): Promise<void>;
stop(): Promise<void>;
private updateMetrics;
private updateRecoveryMetrics;
private calculateAvailability;
getMetrics(): ChaosMetrics;
getFailureHistory(limit?: number): ChaosEvent[];
getActiveFailures(): ChaosEvent[];
private generateId;
}
export declare const CHAOS_SCENARIOS: {
AUTHENTICATION_STORM: {
targets: {
component: string;
method: string;
failureTypes: string[];
weight: number;
}[];
probability: number;
maxDuration: number;
};
CERTIFICATE_ROTATION: {
targets: {
component: string;
method: string;
failureTypes: string[];
weight: number;
}[];
probability: number;
maxDuration: number;
};
COMPLIANCE_DRIFT: {
targets: {
component: string;
method: string;
failureTypes: string[];
weight: number;
}[];
probability: number;
maxDuration: number;
};
SECURITY_SCAN_OVERLOAD: {
targets: {
component: string;
method: string;
failureTypes: string[];
weight: number;
}[];
probability: number;
maxDuration: number;
};
};
//# sourceMappingURL=chaos-engine.d.ts.map