UNPKG

@iota-big3/sdk-security

Version:

Advanced security features including zero trust, quantum-safe crypto, and ML threat detection

122 lines 3.47 kB
/** * @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