UNPKG

@ahmedhegazee/nestjs-telescope

Version:

Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling

77 lines (76 loc) 2.72 kB
import { Observable } from "rxjs"; export interface SecurityVulnerability { id: string; severity: "low" | "medium" | "high" | "critical"; category: "authentication" | "authorization" | "data-protection" | "input-validation" | "encryption" | "logging"; title: string; description: string; impact: string; recommendation: string; detectedAt: Date; status: "open" | "investigating" | "mitigated" | "resolved"; cveId?: string; affectedComponent?: string; } export interface SecurityAuditResult { timestamp: Date; overallScore: number; riskLevel: "low" | "medium" | "high" | "critical"; vulnerabilities: SecurityVulnerability[]; complianceStatus: { gdpr: boolean; sox: boolean; hipaa: boolean; pci: boolean; }; recommendations: string[]; nextAuditDate: Date; } export interface SecurityMetrics { totalVulnerabilities: number; criticalVulnerabilities: number; highVulnerabilities: number; mediumVulnerabilities: number; lowVulnerabilities: number; resolvedVulnerabilities: number; averageResolutionTime: number; securityScore: number; lastAuditDate: Date; } export interface DataClassification { level: "public" | "internal" | "confidential" | "restricted"; description: string; encryptionRequired: boolean; retentionPolicy: string; accessControls: string[]; } export declare class SecurityAuditService { private readonly logger; private readonly vulnerabilities; private readonly securitySubject; private readonly vulnerabilitySubject; private readonly securityConfig; private readonly dataClassificationMatrix; constructor(); private startSecurityMonitoring; performSecurityAudit(): Promise<SecurityAuditResult>; private auditAuthenticationAndAuthorization; private auditDataProtection; private auditInputValidation; private auditEncryption; private auditLoggingAndMonitoring; private auditConfigurationSecurity; private calculateSecurityScore; private determineRiskLevel; private checkComplianceStatus; private generateSecurityRecommendations; private checkForNewVulnerabilities; getSecurityAuditStream(): Observable<SecurityAuditResult>; getVulnerabilitiesStream(): Observable<SecurityVulnerability[]>; getCurrentVulnerabilities(): SecurityVulnerability[]; getSecurityMetrics(): SecurityMetrics; updateVulnerabilityStatus(vulnerabilityId: string, status: SecurityVulnerability["status"]): boolean; getDataClassification(dataType: string): DataClassification | undefined; validateSecurityConfiguration(): boolean; generateSecurityReport(): string; }