@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
TypeScript
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;
}