nestjs-security-cli
Version: 
Advanced IP blocking, role-based security, and attack detection for NestJS applications
27 lines (26 loc) • 1.1 kB
TypeScript
import { Model } from 'mongoose';
import type { Cache } from 'cache-manager';
import { BlacklistedIp } from '../schemas/blacklisted-ip.schema';
import { SecurityConfigInterface } from '../interfaces/security-config.interface';
export declare class SecurityService {
    private readonly cache;
    private readonly blacklistedIpModel?;
    private readonly config?;
    constructor(cache: Cache, blacklistedIpModel?: Model<BlacklistedIp>, config?: SecurityConfigInterface);
    blacklistIp(ip: string, durationHours?: number, reason?: string, blockedBy?: string, attackDetails?: {
        userAgent?: string;
        requestUrl?: string;
        attackPattern?: string;
    }): Promise<void>;
    isBlacklisted(ip: string): Promise<boolean>;
    cleanupExpiredBlocks(): Promise<void>;
    removeFromBlacklist(ip: string): Promise<void>;
    getBlacklistedIps(options?: {
        active?: boolean;
        limit?: number;
        skip?: number;
        sortBy?: 'createdAt' | 'expiresAt';
        sortOrder?: 'asc' | 'desc';
    }): Promise<any[]>;
    getSecurityAnalytics(days?: number): Promise<any>;
}