@iota-big3/sdk-security
Version:
Advanced security features including zero trust, quantum-safe crypto, and ML threat detection
89 lines • 2.72 kB
TypeScript
/**
* @iota-big3/sdk-security - Compliance Automation
* Automated compliance assessment and reporting
*/
import { EventEmitter } from 'events';
import type { ComplianceConfig, ComplianceStandard } from './types';
export interface Evidence {
id: string;
type: string;
title: string;
description?: string;
url?: string;
collectedAt: Date;
collectedBy: string;
}
export interface ComplianceState {
security?: {
mfaEnabled?: boolean;
rbacEnabled?: boolean;
sessionTimeout?: number;
};
observability?: {
loggingEnabled?: boolean;
metricsEnabled?: boolean;
alertingEnabled?: boolean;
};
infrastructure?: {
disasterRecovery?: boolean;
backupsEnabled?: boolean;
};
metrics?: {
uptime?: number;
};
}
export interface ComplianceReport {
framework: ComplianceStandard;
assessmentDate: Date;
overallStatus: 'COMPLIANT' | 'PARTIALLY_COMPLIANT' | 'NON_COMPLIANT';
summary: {
complianceScore: number;
totalControls: number;
compliantControls: number;
nonCompliantControls: number;
notApplicableControls: number;
};
controls: ControlAssessment[];
evidence: Evidence[];
}
interface ControlAssessment {
controlId: string;
controlName: string;
status: 'COMPLIANT' | 'NON_COMPLIANT' | 'NOT_APPLICABLE';
evidence?: string[];
notes?: string;
}
type StateProvider = () => Promise<ComplianceState>;
export declare class ComplianceAutomation extends EventEmitter {
readonly isEnabled: boolean;
private config;
private logger;
private evidence;
private assessments;
private isInitialized;
private scheduledInterval?;
constructor(config: ComplianceConfig, logger: unknown);
initialize(): Promise<void>;
private initializeFrameworks;
addEvidence(evidence: Evidence): Promise<void>;
getEvidenceByType(type: string): Evidence[];
runAssessment(state: ComplianceState): Promise<Map<string, ComplianceReport>>;
private assessFramework;
private getControlsForFramework;
private assessControl;
private determineOverallStatus;
exportComplianceData(): Promise<unknown>;
generateReport(framework: string, format: 'pdf' | 'json'): Promise<Buffer | string>;
scheduleAssessment(schedule: string, stateProvider: StateProvider): void;
stopScheduledAssessment(): void;
getStats(): {
isInitialized: boolean;
evidenceCount: number;
assessmentsCount: number;
frameworks: ComplianceStandard[];
isEnabled: boolean;
};
shutdown(): Promise<void>;
}
export {};
//# sourceMappingURL=compliance-automation.d.ts.map