start the path to rust
This commit is contained in:
140
dist_ts/security/classes.securitylogger.d.ts
vendored
Normal file
140
dist_ts/security/classes.securitylogger.d.ts
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
/**
|
||||
* Log level for security events
|
||||
*/
|
||||
export declare enum SecurityLogLevel {
|
||||
INFO = "info",
|
||||
WARN = "warn",
|
||||
ERROR = "error",
|
||||
CRITICAL = "critical"
|
||||
}
|
||||
/**
|
||||
* Security event types for categorization
|
||||
*/
|
||||
export declare enum SecurityEventType {
|
||||
AUTHENTICATION = "authentication",
|
||||
ACCESS_CONTROL = "access_control",
|
||||
EMAIL_VALIDATION = "email_validation",
|
||||
EMAIL_PROCESSING = "email_processing",
|
||||
EMAIL_FORWARDING = "email_forwarding",
|
||||
EMAIL_DELIVERY = "email_delivery",
|
||||
DKIM = "dkim",
|
||||
SPF = "spf",
|
||||
DMARC = "dmarc",
|
||||
RATE_LIMIT = "rate_limit",
|
||||
RATE_LIMITING = "rate_limiting",
|
||||
SPAM = "spam",
|
||||
MALWARE = "malware",
|
||||
CONNECTION = "connection",
|
||||
DATA_EXPOSURE = "data_exposure",
|
||||
CONFIGURATION = "configuration",
|
||||
IP_REPUTATION = "ip_reputation",
|
||||
REJECTED_CONNECTION = "rejected_connection"
|
||||
}
|
||||
/**
|
||||
* Security event interface
|
||||
*/
|
||||
export interface ISecurityEvent {
|
||||
timestamp: number;
|
||||
level: SecurityLogLevel;
|
||||
type: SecurityEventType;
|
||||
message: string;
|
||||
details?: any;
|
||||
ipAddress?: string;
|
||||
userId?: string;
|
||||
sessionId?: string;
|
||||
emailId?: string;
|
||||
domain?: string;
|
||||
action?: string;
|
||||
result?: string;
|
||||
success?: boolean;
|
||||
}
|
||||
/**
|
||||
* Security logger for enhanced security monitoring
|
||||
*/
|
||||
export declare class SecurityLogger {
|
||||
private static instance;
|
||||
private securityEvents;
|
||||
private maxEventHistory;
|
||||
private enableNotifications;
|
||||
private constructor();
|
||||
/**
|
||||
* Get singleton instance
|
||||
*/
|
||||
static getInstance(options?: {
|
||||
maxEventHistory?: number;
|
||||
enableNotifications?: boolean;
|
||||
}): SecurityLogger;
|
||||
/**
|
||||
* Log a security event
|
||||
* @param event The security event to log
|
||||
*/
|
||||
logEvent(event: Omit<ISecurityEvent, 'timestamp'>): void;
|
||||
/**
|
||||
* Get recent security events
|
||||
* @param limit Maximum number of events to return
|
||||
* @param filter Filter for specific event types
|
||||
* @returns Recent security events
|
||||
*/
|
||||
getRecentEvents(limit?: number, filter?: {
|
||||
level?: SecurityLogLevel;
|
||||
type?: SecurityEventType;
|
||||
fromTimestamp?: number;
|
||||
toTimestamp?: number;
|
||||
}): ISecurityEvent[];
|
||||
/**
|
||||
* Get events by security level
|
||||
* @param level The security level to filter by
|
||||
* @param limit Maximum number of events to return
|
||||
* @returns Security events matching the level
|
||||
*/
|
||||
getEventsByLevel(level: SecurityLogLevel, limit?: number): ISecurityEvent[];
|
||||
/**
|
||||
* Get events by security type
|
||||
* @param type The event type to filter by
|
||||
* @param limit Maximum number of events to return
|
||||
* @returns Security events matching the type
|
||||
*/
|
||||
getEventsByType(type: SecurityEventType, limit?: number): ISecurityEvent[];
|
||||
/**
|
||||
* Get security events for a specific IP address
|
||||
* @param ipAddress The IP address to filter by
|
||||
* @param limit Maximum number of events to return
|
||||
* @returns Security events for the IP address
|
||||
*/
|
||||
getEventsByIP(ipAddress: string, limit?: number): ISecurityEvent[];
|
||||
/**
|
||||
* Get security events for a specific domain
|
||||
* @param domain The domain to filter by
|
||||
* @param limit Maximum number of events to return
|
||||
* @returns Security events for the domain
|
||||
*/
|
||||
getEventsByDomain(domain: string, limit?: number): ISecurityEvent[];
|
||||
/**
|
||||
* Send a notification for critical security events
|
||||
* @param event The security event to notify about
|
||||
* @private
|
||||
*/
|
||||
private sendNotification;
|
||||
/**
|
||||
* Clear event history
|
||||
*/
|
||||
clearEvents(): void;
|
||||
/**
|
||||
* Get statistical summary of security events
|
||||
* @param timeWindow Optional time window in milliseconds
|
||||
* @returns Summary of security events
|
||||
*/
|
||||
getEventsSummary(timeWindow?: number): {
|
||||
total: number;
|
||||
byLevel: Record<SecurityLogLevel, number>;
|
||||
byType: Record<SecurityEventType, number>;
|
||||
topIPs: Array<{
|
||||
ip: string;
|
||||
count: number;
|
||||
}>;
|
||||
topDomains: Array<{
|
||||
domain: string;
|
||||
count: number;
|
||||
}>;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user