recoder-security
Version:
Enterprise-grade security and compliance layer for CodeCraft CLI
110 lines • 2.96 kB
TypeScript
/**
* 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