UNPKG

recoder-security

Version:

Enterprise-grade security and compliance layer for CodeCraft CLI

110 lines 2.96 kB
/** * Simple Security System for Recoder.xyz * * Provides basic security features for AI-powered development */ import { EventEmitter } from 'events'; export interface SecurityConfig { enablePromptSanitization: boolean; enableSecretDetection: boolean; enableThreatDetection: boolean; enableAuditLogging: boolean; allowedDomains: string[]; blockedPatterns: string[]; } export interface SecurityAlert { id: string; type: 'secret_detected' | 'prompt_injection' | 'suspicious_activity' | 'policy_violation'; severity: 'low' | 'medium' | 'high' | 'critical'; title: string; description: string; source: string; timestamp: Date; resolved: boolean; metadata?: Record<string, any>; } export interface AuditLogEntry { id: string; userId: string; action: string; resource: string; timestamp: Date; success: boolean; details?: Record<string, any>; } export declare class SimpleSecurity extends EventEmitter { private config; private alerts; private auditLog; private secretPatterns; private promptInjectionPatterns; constructor(config?: Partial<SecurityConfig>); /** * Sanitize user input to prevent prompt injection attacks */ sanitizePrompt(input: string): { sanitized: string; threats: string[]; }; /** * Detect secrets in code or text */ detectSecrets(content: string, source?: string): string[]; /** * Scan for basic security vulnerabilities in code */ scanCode(code: string, language: string): { safe: boolean; issues: string[]; }; /** * Log user actions for audit trail */ logAction(userId: string, action: string, resource: string, success?: boolean, details?: Record<string, any>): void; /** * Basic threat detection based on user behavior */ private detectSuspiciousActivity; /** * Create a security alert */ private createAlert; /** * Get all security alerts */ getAlerts(unresolved?: boolean): SecurityAlert[]; /** * Resolve a security alert */ resolveAlert(id: string): boolean; /** * Get audit log entries */ getAuditLog(userId?: string): AuditLogEntry[]; /** * Generate security report */ generateSecurityReport(): { totalAlerts: number; unresolvedAlerts: number; alertsByType: Record<string, number>; alertsBySeverity: Record<string, number>; recentActivity: number; topUsers: { userId: string; actionCount: number; }[]; }; /** * Get system status */ getStatus(): { alerts: number; unresolvedAlerts: number; auditEntries: number; config: SecurityConfig; }; } export declare const security: SimpleSecurity; export default security; //# sourceMappingURL=simple-security.d.ts.map