@seckav/security-sdk
Version:
Lightweight API Security SDK for Enterprises - One-click protection with rate limiting, threat detection, security analytics, and real-time monitoring for Express.js and Next.js applications
173 lines • 4.96 kB
TypeScript
export interface ComplianceModuleConfig {
apiUrl: string;
timeout?: number;
onError?: (error: any) => void;
}
export interface ComplianceReport {
id: string;
organizationId: string;
reportType: 'gdpr' | 'dpdp' | 'cert_in';
status: 'pending' | 'completed' | 'failed';
overallScore: number;
complianceStatus: 'compliant' | 'non_compliant' | 'partial';
generatedAt: Date;
period: {
startDate: Date;
endDate: Date;
};
requirements: Array<{
requirement: string;
category: string;
status: 'compliant' | 'non_compliant' | 'partial';
score: number;
weight: number;
details: string;
evidence: string[];
}>;
recommendations: Array<{
priority: 'high' | 'medium' | 'low';
category: string;
title: string;
description: string;
impact: string;
effort: string;
}>;
standards: string[];
}
export interface ApiSecurityScan {
id: string;
organizationId: string;
fileName: string;
fileContent: string;
scanType: 'openapi' | 'swagger';
status: 'pending' | 'completed' | 'failed';
overallScore: number;
riskLevel: 'low' | 'medium' | 'high' | 'critical';
scanResults: {
authenticationSecurity: any;
inputValidation: any;
dataExposure: any;
securityVulnerabilities: any;
rateLimiting: any;
};
recommendations: Array<{
priority: 'high' | 'medium' | 'low';
category: string;
issue: string;
recommendation: string;
impact: string;
}>;
createdAt: Date;
updatedAt: Date;
}
export interface ComplianceDashboard {
organizationId: string;
overallCompliance: {
score: number;
status: 'compliant' | 'non_compliant' | 'partial';
trend: 'improving' | 'declining' | 'stable';
};
recentReports: ComplianceReport[];
complianceByStandard: Array<{
standard: string;
score: number;
status: string;
lastAssessed: Date;
}>;
criticalIssues: Array<{
category: string;
issue: string;
impact: string;
priority: string;
}>;
recommendations: Array<{
priority: string;
title: string;
description: string;
category: string;
}>;
}
/**
* Compliance Module - GDPR, DPDP, and CERT-IN compliance reporting
* Provides comprehensive compliance assessment and reporting capabilities
*/
export declare class ComplianceModule {
private config;
constructor(config: ComplianceModuleConfig);
/**
* Generate a new compliance report
*/
generateComplianceReport(token: string, reportType: 'gdpr' | 'dpdp' | 'cert_in', period: {
startDate: Date;
endDate: Date;
}): Promise<ComplianceReport>;
/**
* Get compliance reports with filtering options
*/
getComplianceReports(token: string, options?: {
reportType?: 'gdpr' | 'dpdp' | 'cert_in';
status?: 'pending' | 'completed' | 'failed';
page?: number;
limit?: number;
}): Promise<{
reports: ComplianceReport[];
pagination: {
page: number;
limit: number;
total: number;
pages: number;
};
}>;
/**
* Get a specific compliance report by ID
*/
getComplianceReport(token: string, reportId: string): Promise<ComplianceReport>;
/**
* Get compliance dashboard data
*/
getComplianceDashboard(token: string): Promise<ComplianceDashboard>;
/**
* Scan OpenAPI/Swagger specification for security issues
*/
scanApiSpecification(token: string, file: {
name: string;
content: string;
type: 'openapi' | 'swagger';
}): Promise<ApiSecurityScan>;
/**
* Get API security scans
*/
getApiSecurityScans(token: string, options?: {
scanType?: 'openapi' | 'swagger';
status?: 'pending' | 'completed' | 'failed';
page?: number;
limit?: number;
}): Promise<{
scans: ApiSecurityScan[];
pagination: {
page: number;
limit: number;
total: number;
pages: number;
};
}>;
/**
* Export compliance report in various formats
*/
exportComplianceReport(token: string, reportId: string, format?: 'pdf' | 'json' | 'csv'): Promise<{
downloadUrl: string;
fileName: string;
expiresAt: Date;
}>;
/**
* Get compliance status for specific standards
*/
getComplianceStatus(token: string, standards: Array<'gdpr' | 'dpdp' | 'cert_in'>): Promise<Array<{
standard: string;
status: 'compliant' | 'non_compliant' | 'partial' | 'pending';
score: number;
lastAssessed: Date | null;
nextAssessmentDue: Date | null;
}>>;
}
//# sourceMappingURL=Compliance.d.ts.map