UNPKG

firewalla-mcp-server

Version:

Model Context Protocol (MCP) server for Firewalla MSP API - Provides real-time network monitoring, security analysis, and firewall management through 28 specialized tools compatible with any MCP client

108 lines 3.39 kB
/** * Security policy configuration for Firewalla MCP Server */ export interface SecurityPolicy { /** Enable RBAC enforcement */ enableRBAC: boolean; /** Enable audit logging */ enableAuditLogging: boolean; /** Enable input sanitization */ enableInputSanitization: boolean; /** Enable rate limiting */ enableRateLimit: boolean; /** Enable origin validation */ enableOriginValidation: boolean; /** Default box ID for convenience tools */ defaultBoxId?: string; /** Require explicit box ID (no defaults) */ requireExplicitBoxId: boolean; /** Maximum risk score for operations */ maxRiskScore: number; /** Enable security warnings for broad-scope operations */ enableScopeWarnings: boolean; /** Rate limit configuration */ rateLimits: { default: number; sensitive: number; admin: number; }; /** IP and domain validation settings */ validation: { /** Validate IP addresses */ validateIPs: boolean; /** Validate domain names */ validateDomains: boolean; /** Block private IP ranges in certain contexts */ blockPrivateIPs: boolean; /** Block localhost/loopback addresses */ blockLoopback: boolean; }; } export declare class SecurityManager { private static readonly ALLOWED_ORIGINS; private static readonly RATE_LIMITS; private requestCounts; private cleanupInterval; private securityPolicy; constructor(policy?: Partial<SecurityPolicy>); destroy(): void; validateInput(input: unknown): boolean; sanitizeString(input: string): string; checkRateLimit(clientId: string, operation?: string): boolean; private cleanupRateLimits; validateOrigin(origin?: string): boolean; hashSensitiveData(data: string): string; maskSensitiveData(data: string, showChars?: number): string; validateEnvironmentVars(): { valid: boolean; errors: string[]; warnings: string[]; }; createSecureHeaders(): Record<string, string>; logSecurityEvent(event: string, details: Record<string, unknown>): void; private sanitizeLogData; /** * Get current security policy */ getSecurityPolicy(): SecurityPolicy; /** * Update security policy */ updateSecurityPolicy(updates: Partial<SecurityPolicy>): void; /** * Validate IP address format and check against security policy */ validateIPAddress(ip: string): { valid: boolean; error?: string; warning?: string; }; /** * Validate domain name format and check against security policy */ validateDomainName(domain: string): { valid: boolean; error?: string; warning?: string; }; /** * Check if an operation is allowed based on security policy and risk score */ isOperationAllowed(riskScore: number): { allowed: boolean; reason?: string; }; /** * Generate security warning for broad-scope operations */ generateScopeWarning(scope: string, operation: string): string | null; /** * Get default box ID for convenience tools */ getDefaultBoxId(): string | undefined; /** * Check if explicit box ID is required */ requiresExplicitBoxId(): boolean; } //# sourceMappingURL=security.d.ts.map