{"repo": "ahmedarafa994/chimera", "files": {"backend-api/.env.example": {"8c4a5b8600aaacd4ee92b184c4d4f7c768c8d6dc": {"t": 1785747095.9231422, "n": 14178, "h": "0a9387f1bcf4e9f3", "c": "# =============================================================================\n# Project Chimera Backend Environment Variables\n# =============================================================================\n# Copy this file to .env and fill in the values for your environment.\n# Never commit .env to version control.\n# =============================================================================\n\n# -----------------------------------------------------------------------------\n# Server Configuration\n# -----------------------------------------------------------------------------\n\n# Server host (optional)\n# Default: 0.0.0.0\nHOST=0.0.0.0\n\n# Server port (optional)\n# Default: 8000\nPORT=8000\n\n# Environment mode (optional)\n# Options: development, staging, production\n# Default: development\nENVIRONMENT=development\n\n# Debug mode (optional)\n# Default: false in production\nDEBUG=true\n\n# Log level (optional)\n# Options: DEBUG, INFO, WARNING, ERROR, CRITICAL\n# Default: INFO\nLOG_LEVEL=INFO\n\n# -----------------------------------------------------------------------------\n# Security Configuration\n# -----------------------------------------------------------------------------\n\n# Admin API key for protected endpoints (required)\n# Used for admin dashboard authentication\nCHIMERA_API_KEY=your-secure-api-key-here\n\n# Secret key for JWT/session signing (required)\n# Generate with: python -c \"import secrets; print(secrets.token_hex(32))\"\nSECRET_KEY=your-secret-key-here\n\n# CORS allowed origins (optional)\n# Comma-separated list of allowed origins\n# Default: http://localhost:3001\nCORS_ORIGINS=http://localhost:3001,http://localhost:3001\n\n# Rate limiting (optional)\n# Requests per minute per IP\n# Default: 60\nRATE_LIMIT_PER_MINUTE=60\n\n# -----------------------------------------------------------------------------\n# Database Configuration\n# -----------------------------------------------------------------------------\n\n# Database URL (required for persistence)\n# SQLite: sqlite:///./chimera.db\n# PostgreSQL: postgresql://user:password@localhost:5432/chimera\n# MySQL: mysql://user:password@localhost:3306/chimera\nDATABASE_URL=sqlite:///./chimera.db\n\n# Database pool size (optional)\n# Default: 5\nDATABASE_POOL_SIZE=5\n\n# Database max overflow (optional)\n# Default: 10\nDATABASE_MAX_OVERFLOW=10\n\n# -----------------------------------------------------------------------------\n# Redis Configuration (for Celery and caching)\n# -----------------------------------------------------------------------------\n\n# Redis URL (required for async tasks and caching)\n# Default: redis://localhost:6379/0\nREDIS_URL=redis://localhost:6379/0\n\n# Redis password (optional)\n# REDIS_PASSWORD=\n\n# Cache TTL in seconds (optional)\n# Default: 3600 (1 hour)\nCACHE_TTL=3600\n\n# -----------------------------------------------------------------------------\n# Celery Configuration (for async tasks)\n# -----------------------------------------------------------------------------\n\n# Celery broker URL (required for async tasks)\n# Default: redis://localhost:6379/0\nCELERY_BROKER_URL=redis://localhost:6379/0\n\n# Celery result backend (optional)\n# Default: redis://localhost:6379/0\nCELERY_RESULT_BACKEND=redis://localhost:6379/0\n\n# Celery task time limit in seconds (optional)\n# Default: 3600 (1 hour)\nCELERY_TASK_TIME_LIMIT=3600\n\n# -----------------------------------------------------------------------------\n# LLM Provider Configuration\n# -----------------------------------------------------------------------------\n\n# OpenAI Configuration\nOPENAI_API_KEY=your-openai-api-key\nOPENAI_ORG_ID=your-org-id\nOPENAI_MODEL=gpt-4o\n\n# Anthropic Configuration\nANTHROPIC_API_KEY=your-anthropic-api-key\nANTHROPIC_MODEL=claude-3-5-sonnet-20241022\n\n# Google AI Configuration\nGOOGLE_API_KEY=your-google-api-key\nGOOGLE_MODEL=gemini-3-pro-preview\n\n# DeepSeek Configuration\n# IMPORTANT: Only 'deepseek-chat' and 'deepseek-reasoner' are valid models\n# 'deepseek-coder' is NOT available and will cause \"Model Not Exist\" errors\nDEEPSEEK_API_KEY=your-deepseek-api-key\nDEEPSEEK_MODEL=deepseek-chat\n\n# Azure OpenAI Configuration\nAZURE_OPENAI_API_KEY=your-azure-api-key\nAZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/\nAZURE_OPENAI_API_VERSION=2024-02-15-preview\nAZURE_OPENAI_DEPLOYMENT_NAME=your-deployment-name\n\n# Ollama Configuration (local models)\nOLLAMA_BASE_URL=http://localhost:11434\nOLLAMA_DEFAULT_MODEL=llama2\n\n# HuggingFace Configuration\nHUGGINGFACE_API_KEY=your-huggingface-api-key\nHUGGINGFACE_DEFAULT_MODEL=meta-llama/Llama-2-7b-chat-hf\n\n# -----------------------------------------------------------------------------\n# Provider Management\n# -----------------------------------------------------------------------------\n\n# Default provider (optional)\n# Options: deepseek, google, openai, anthropic, azure, ollama, huggingface\n# Default: deepseek\nDEFAULT_PROVIDER=deepseek\n\n# AI Provider Selection (deepseek or gemini)\nAI_PROVIDER=deepseek\n\n# Enable provider fallback (optional)\n# Default: true\nENABLE_PROVIDER_FALLBACK=true\n\n# Provider fallback order (optional)\n# Comma-separated list of provider IDs\nPROVIDER_FALLBACK_ORDER=deepseek,google,openai,anthropic\n\n# Provider health check interval in seconds (optional)\n# Default: 60\nPROVIDER_HEALTH_CHECK_INTERVAL=60\n\n# -----------------------------------------------------------------------------\n# API Connection Mode Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# API Connection Mode - direct or proxy via AIClient-2-API Server\n# Options: direct, proxy\n# Default: direct\nAPI_CONNECTION_MODE=direct\n\n# -----------------------------------------------------------------------------\n# Proxy Mode Configuration (AIClient-2-API Server)\n# -----------------------------------------------------------------------------\n\n# Proxy server endpoint (used when API_CONNECTION_MODE=proxy)\n# Default: http://localhost:8080\nPROXY_MODE_ENDPOINT=http://localhost:8080\n\n# Enable proxy mode\n# Default: false\nPROXY_MODE_ENABLED=false\n\n# Enable health check for proxy endpoint\n# Default: true\nPROXY_MODE_HEALTH_CHECK=true\n\n# Timeout for proxy requests in seconds (5-120)\n# Default: 30\nPROXY_MODE_TIMEOUT=30\n\n# Fallback to direct mode if proxy is unavailable\n# Default: true\nPROXY_MODE_FALLBACK_TO_DIRECT=true\n\n# Health check interval for proxy endpoint in seconds (10-300)\n# Default: 30\nPROXY_MODE_HEALTH_CHECK_INTERVAL=30\n\n# -----------------------------------------------------------------------------\n# Direct Mode Base URLs (override defaults if needed)\n# -----------------------------------------------------------------------------\n\n# OpenAI direct endpoint\n# Default: https://api.openai.com/v1\n# DIRECT_OPENAI_BASE_URL=https://api.openai.com/v1\n\n# Anthropic direct endpoint\n# Default: https://api.anthropic.com/v1\n# DIRECT_ANTHROPIC_BASE_URL=https://api.anthropic.com/v1\n\n# Google/Gemini direct endpoint\n# Default: https://generativelanguage.googleapis.com/v1beta\n# DIRECT_GOOGLE_BASE_URL=https://generativelanguage.googleapis.com/v1beta\n\n# DeepSeek direct endpoint (must include /v1 for OpenAI SDK compatibility)\n# Default: https://api.deepseek.com/v1\n# DIRECT_DEEPSEEK_BASE_URL=https://api.deepseek.com/v1\n\n# Qwen direct endpoint\n# Default: https://dashscope.aliyuncs.com/api/v1\n# DIRECT_QWEN_BASE_URL=https://dashscope.aliyuncs.com/api/v1\n\n# -----------------------------------------------------------------------------\n# API Key Encryption Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable encryption for API keys at rest\n# Default: true\nENCRYPT_API_KEYS_AT_REST=true\n\n# Encryption key for API keys (base64-encoded 32-byte key)\n# Generate with: python -c \"import secrets, base64; print(base64.urlsafe_b64encode(secrets.token_bytes(32)).decode())\"\n# If not provided, a key will be derived from CHIMERA_ENCRYPTION_PASSWORD\n# CHIMERA_ENCRYPTION_KEY=\n\n# Encryption password (used if CHIMERA_ENCRYPTION_KEY not provided)\n# Default: chimera-default-key-2025 (CHANGE IN PRODUCTION!)\n# CHIMERA_ENCRYPTION_PASSWORD=your-secure-password-here\n\n# -----------------------------------------------------------------------------\n# Configuration Hot-Reload (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable configuration hot-reload without restart\n# Default: true\nENABLE_CONFIG_HOT_RELOAD=true\n\n# -----------------------------------------------------------------------------\n# Rate Limiting Configuration\n# -----------------------------------------------------------------------------\n\n# Enable rate limiting (optional)\n# Default: true\nENABLE_RATE_LIMITING=true\n\n# Rate limit window in seconds (optional)\n# Default: 60\nRATE_LIMIT_WINDOW=60\n\n# Rate limit per model (optional)\n# Format: model_id:limit,model_id:limit\n# Example: gpt-4:10,gpt-3.5-turbo:30\nMODEL_RATE_LIMITS=gpt-4:10,gpt-3.5-turbo:30,claude-3-opus:10\n\n# -----------------------------------------------------------------------------\n# AutoDAN Configuration\n# -----------------------------------------------------------------------------\n\n# AutoDAN max iterations (optional)\n# Default: 100\nAUTODAN_MAX_ITERATIONS=100\n\n# AutoDAN timeout in seconds (optional)\n# Default: 600 (10 minutes)\nAUTODAN_TIMEOUT=600\n\n# AutoDAN batch size (optional)\n# Default: 16\nAUTODAN_BATCH_SIZE=16\n\n# -----------------------------------------------------------------------------\n# Evasion Task Configuration\n# -----------------------------------------------------------------------------\n\n# Evasion task timeout in seconds (optional)\n# Default: 1800 (30 minutes)\nEVASION_TASK_TIMEOUT=1800\n\n# Evasion max concurrent tasks (optional)\n# Default: 5\nEVASION_MAX_CONCURRENT_TASKS=5\n\n# Evasion result retention days (optional)\n# Default: 30\nEVASION_RESULT_RETENTION_DAYS=30\n\n# -----------------------------------------------------------------------------\n# Lifelong Learning Configuration\n# -----------------------------------------------------------------------------\n\n# Enable lifelong learning (optional)\n# Default: false\nENABLE_LIFELONG_LEARNING=false\n\n# Lifelong learning model path (optional)\n# LIFELONG_MODEL_PATH=./models/lifelong\n\n# Lifelong learning update interval in hours (optional)\n# Default: 24\nLIFELONG_UPDATE_INTERVAL=24\n\n# -----------------------------------------------------------------------------\n# Feature Flags\n# -----------------------------------------------------------------------------\n\n# Enable AutoDAN feature (optional)\n# Default: true\nFEATURE_AUTODAN=true\n\n# Enable AutoAdv feature (optional)\n# Default: true\nFEATURE_AUTOADV=true\n\n# Enable Evasion Tasks feature (optional)\n# Default: true\nFEATURE_EVASION=true\n\n# Enable Chat feature (optional)\n# Default: true\nFEATURE_CHAT=true\n\n# Enable Admin endpoints (optional)\n# Default: true\nFEATURE_ADMIN=true\n\n# Enable Provider Management (optional)\n# Default: true\nFEATURE_PROVIDER_MANAGEMENT=true\n\n# Enable Lifelong Learning (optional)\n# Default: false\nFEATURE_LIFELONG_LEARNING=false\n\n# -----------------------------------------------------------------------------\n# Monitoring & Logging\n# -----------------------------------------------------------------------------\n\n# Enable request logging (optional)\n# Default: true\nENABLE_REQUEST_LOGGING=true\n\n# Enable metrics collection (optional)\n# Default: false\nENABLE_METRICS=false\n\n# Metrics endpoint (optional)\n# METRICS_ENDPOINT=\n\n# Enable tracing (optional)\n# Default: false\nENABLE_TRACING=false\n\n# Tracing endpoint (optional)\n# TRACING_ENDPOINT=\n\n# Sentry DSN for error tracking (optional)\n# SENTRY_DSN=\n\n# -----------------------------------------------------------------------------\n# Storage Configuration\n# -----------------------------------------------------------------------------\n\n# File storage path (optional)\n# Default: ./storage\nSTORAGE_PATH=./storage\n\n# Max upload size in bytes (optional)\n# Default: 10485760 (10MB)\nMAX_UPLOAD_SIZE=10485760\n\n# Enable S3 storage (optional)\n# Default: false\nENABLE_S3_STORAGE=false\n\n# S3 Configuration (if enabled)\n# S3_BUCKET_NAME=\n# S3_ACCESS_KEY=\n# S3_SECRET_KEY=\n# S3_REGION=\n# S3_ENDPOINT_URL=\n\n# -----------------------------------------------------------------------------\n# Email/SMTP Configuration (Multi-User Authentication)\n# -----------------------------------------------------------------------------\n\n# SMTP server hostname (required for email delivery)\n# Default: localhost\nSMTP_HOST=localhost\n\n# SMTP server port (required)\n# Common ports: 25 (plain), 587 (STARTTLS), 465 (SSL/TLS)\n# Default: 587\nSMTP_PORT=587\n\n# SMTP authentication username (optional)\n# Leave empty for servers that don't require auth\n# SMTP_USERNAME=\n\n# SMTP authentication password (optional)\n# SMTP_PASSWORD=\n\n# SMTP security mode (optional)\n# Options: none, starttls, ssl_tls\n# Default: starttls\nSMTP_SECURITY=starttls\n\n# Default sender email address (required)\n# Default: noreply@chimera.local\nSMTP_FROM_EMAIL=noreply@chimera.local\n\n# Default sender display name (optional)\n# Default: Chimera\nSMTP_FROM_NAME=Chimera\n\n# SMTP connection timeout in seconds (optional)\n# Default: 30\nSMTP_TIMEOUT=30\n\n# Development mode for emails (optional)\n# When true, emails are logged instead of sent\n# Default: true in development, false in production\nEMAIL_DEV_MODE=true\n\n# Email verification URL (frontend endpoint)\n# Default: http://localhost:3001/verify-email\nEMAIL_VERIFICATION_URL=http://localhost:3001/verify-email\n\n# Password reset URL (frontend endpoint)\n# Default: http://localhost:3001/reset-password\nEMAIL_PASSWORD_RESET_URL=http://localhost:3001/reset-password\n\n# Frontend application URL (used in email templates)\n# Default: http://localhost:3001\nEMAIL_FRONTEND_URL=http://localhost:3001\n\n# -----------------------------------------------------------------------------\n# JWT Authentication Configuration\n# -----------------------------------------------------------------------------\n\n# JWT secret key for token signing (required)\n# Generate with: python -c \"import secrets; print(secrets.token_hex(32))\"\nJWT_SECRET=your-jwt-secret-key-here\n\n# JWT access token expiry in minutes (optional)\n# Default: 30\nJWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\n\n# JWT refresh token expiry in days (optional)\n# Default: 7\nJWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n"}, "5fc7d77016b21d08245ff8a7f4c9ae6b472fae97": {"t": 1785770385.38484, "n": 14178, "h": "0a9387f1bcf4e9f3", "c": "# =============================================================================\n# Project Chimera Backend Environment Variables\n# =============================================================================\n# Copy this file to .env and fill in the values for your environment.\n# Never commit .env to version control.\n# =============================================================================\n\n# -----------------------------------------------------------------------------\n# Server Configuration\n# -----------------------------------------------------------------------------\n\n# Server host (optional)\n# Default: 0.0.0.0\nHOST=0.0.0.0\n\n# Server port (optional)\n# Default: 8000\nPORT=8000\n\n# Environment mode (optional)\n# Options: development, staging, production\n# Default: development\nENVIRONMENT=development\n\n# Debug mode (optional)\n# Default: false in production\nDEBUG=true\n\n# Log level (optional)\n# Options: DEBUG, INFO, WARNING, ERROR, CRITICAL\n# Default: INFO\nLOG_LEVEL=INFO\n\n# -----------------------------------------------------------------------------\n# Security Configuration\n# -----------------------------------------------------------------------------\n\n# Admin API key for protected endpoints (required)\n# Used for admin dashboard authentication\nCHIMERA_API_KEY=your-secure-api-key-here\n\n# Secret key for JWT/session signing (required)\n# Generate with: python -c \"import secrets; print(secrets.token_hex(32))\"\nSECRET_KEY=your-secret-key-here\n\n# CORS allowed origins (optional)\n# Comma-separated list of allowed origins\n# Default: http://localhost:3001\nCORS_ORIGINS=http://localhost:3001,http://localhost:3001\n\n# Rate limiting (optional)\n# Requests per minute per IP\n# Default: 60\nRATE_LIMIT_PER_MINUTE=60\n\n# -----------------------------------------------------------------------------\n# Database Configuration\n# -----------------------------------------------------------------------------\n\n# Database URL (required for persistence)\n# SQLite: sqlite:///./chimera.db\n# PostgreSQL: postgresql://user:password@localhost:5432/chimera\n# MySQL: mysql://user:password@localhost:3306/chimera\nDATABASE_URL=sqlite:///./chimera.db\n\n# Database pool size (optional)\n# Default: 5\nDATABASE_POOL_SIZE=5\n\n# Database max overflow (optional)\n# Default: 10\nDATABASE_MAX_OVERFLOW=10\n\n# -----------------------------------------------------------------------------\n# Redis Configuration (for Celery and caching)\n# -----------------------------------------------------------------------------\n\n# Redis URL (required for async tasks and caching)\n# Default: redis://localhost:6379/0\nREDIS_URL=redis://localhost:6379/0\n\n# Redis password (optional)\n# REDIS_PASSWORD=\n\n# Cache TTL in seconds (optional)\n# Default: 3600 (1 hour)\nCACHE_TTL=3600\n\n# -----------------------------------------------------------------------------\n# Celery Configuration (for async tasks)\n# -----------------------------------------------------------------------------\n\n# Celery broker URL (required for async tasks)\n# Default: redis://localhost:6379/0\nCELERY_BROKER_URL=redis://localhost:6379/0\n\n# Celery result backend (optional)\n# Default: redis://localhost:6379/0\nCELERY_RESULT_BACKEND=redis://localhost:6379/0\n\n# Celery task time limit in seconds (optional)\n# Default: 3600 (1 hour)\nCELERY_TASK_TIME_LIMIT=3600\n\n# -----------------------------------------------------------------------------\n# LLM Provider Configuration\n# -----------------------------------------------------------------------------\n\n# OpenAI Configuration\nOPENAI_API_KEY=your-openai-api-key\nOPENAI_ORG_ID=your-org-id\nOPENAI_MODEL=gpt-4o\n\n# Anthropic Configuration\nANTHROPIC_API_KEY=your-anthropic-api-key\nANTHROPIC_MODEL=claude-3-5-sonnet-20241022\n\n# Google AI Configuration\nGOOGLE_API_KEY=your-google-api-key\nGOOGLE_MODEL=gemini-3-pro-preview\n\n# DeepSeek Configuration\n# IMPORTANT: Only 'deepseek-chat' and 'deepseek-reasoner' are valid models\n# 'deepseek-coder' is NOT available and will cause \"Model Not Exist\" errors\nDEEPSEEK_API_KEY=your-deepseek-api-key\nDEEPSEEK_MODEL=deepseek-chat\n\n# Azure OpenAI Configuration\nAZURE_OPENAI_API_KEY=your-azure-api-key\nAZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/\nAZURE_OPENAI_API_VERSION=2024-02-15-preview\nAZURE_OPENAI_DEPLOYMENT_NAME=your-deployment-name\n\n# Ollama Configuration (local models)\nOLLAMA_BASE_URL=http://localhost:11434\nOLLAMA_DEFAULT_MODEL=llama2\n\n# HuggingFace Configuration\nHUGGINGFACE_API_KEY=your-huggingface-api-key\nHUGGINGFACE_DEFAULT_MODEL=meta-llama/Llama-2-7b-chat-hf\n\n# -----------------------------------------------------------------------------\n# Provider Management\n# -----------------------------------------------------------------------------\n\n# Default provider (optional)\n# Options: deepseek, google, openai, anthropic, azure, ollama, huggingface\n# Default: deepseek\nDEFAULT_PROVIDER=deepseek\n\n# AI Provider Selection (deepseek or gemini)\nAI_PROVIDER=deepseek\n\n# Enable provider fallback (optional)\n# Default: true\nENABLE_PROVIDER_FALLBACK=true\n\n# Provider fallback order (optional)\n# Comma-separated list of provider IDs\nPROVIDER_FALLBACK_ORDER=deepseek,google,openai,anthropic\n\n# Provider health check interval in seconds (optional)\n# Default: 60\nPROVIDER_HEALTH_CHECK_INTERVAL=60\n\n# -----------------------------------------------------------------------------\n# API Connection Mode Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# API Connection Mode - direct or proxy via AIClient-2-API Server\n# Options: direct, proxy\n# Default: direct\nAPI_CONNECTION_MODE=direct\n\n# -----------------------------------------------------------------------------\n# Proxy Mode Configuration (AIClient-2-API Server)\n# -----------------------------------------------------------------------------\n\n# Proxy server endpoint (used when API_CONNECTION_MODE=proxy)\n# Default: http://localhost:8080\nPROXY_MODE_ENDPOINT=http://localhost:8080\n\n# Enable proxy mode\n# Default: false\nPROXY_MODE_ENABLED=false\n\n# Enable health check for proxy endpoint\n# Default: true\nPROXY_MODE_HEALTH_CHECK=true\n\n# Timeout for proxy requests in seconds (5-120)\n# Default: 30\nPROXY_MODE_TIMEOUT=30\n\n# Fallback to direct mode if proxy is unavailable\n# Default: true\nPROXY_MODE_FALLBACK_TO_DIRECT=true\n\n# Health check interval for proxy endpoint in seconds (10-300)\n# Default: 30\nPROXY_MODE_HEALTH_CHECK_INTERVAL=30\n\n# -----------------------------------------------------------------------------\n# Direct Mode Base URLs (override defaults if needed)\n# -----------------------------------------------------------------------------\n\n# OpenAI direct endpoint\n# Default: https://api.openai.com/v1\n# DIRECT_OPENAI_BASE_URL=https://api.openai.com/v1\n\n# Anthropic direct endpoint\n# Default: https://api.anthropic.com/v1\n# DIRECT_ANTHROPIC_BASE_URL=https://api.anthropic.com/v1\n\n# Google/Gemini direct endpoint\n# Default: https://generativelanguage.googleapis.com/v1beta\n# DIRECT_GOOGLE_BASE_URL=https://generativelanguage.googleapis.com/v1beta\n\n# DeepSeek direct endpoint (must include /v1 for OpenAI SDK compatibility)\n# Default: https://api.deepseek.com/v1\n# DIRECT_DEEPSEEK_BASE_URL=https://api.deepseek.com/v1\n\n# Qwen direct endpoint\n# Default: https://dashscope.aliyuncs.com/api/v1\n# DIRECT_QWEN_BASE_URL=https://dashscope.aliyuncs.com/api/v1\n\n# -----------------------------------------------------------------------------\n# API Key Encryption Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable encryption for API keys at rest\n# Default: true\nENCRYPT_API_KEYS_AT_REST=true\n\n# Encryption key for API keys (base64-encoded 32-byte key)\n# Generate with: python -c \"import secrets, base64; print(base64.urlsafe_b64encode(secrets.token_bytes(32)).decode())\"\n# If not provided, a key will be derived from CHIMERA_ENCRYPTION_PASSWORD\n# CHIMERA_ENCRYPTION_KEY=\n\n# Encryption password (used if CHIMERA_ENCRYPTION_KEY not provided)\n# Default: chimera-default-key-2025 (CHANGE IN PRODUCTION!)\n# CHIMERA_ENCRYPTION_PASSWORD=your-secure-password-here\n\n# -----------------------------------------------------------------------------\n# Configuration Hot-Reload (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable configuration hot-reload without restart\n# Default: true\nENABLE_CONFIG_HOT_RELOAD=true\n\n# -----------------------------------------------------------------------------\n# Rate Limiting Configuration\n# -----------------------------------------------------------------------------\n\n# Enable rate limiting (optional)\n# Default: true\nENABLE_RATE_LIMITING=true\n\n# Rate limit window in seconds (optional)\n# Default: 60\nRATE_LIMIT_WINDOW=60\n\n# Rate limit per model (optional)\n# Format: model_id:limit,model_id:limit\n# Example: gpt-4:10,gpt-3.5-turbo:30\nMODEL_RATE_LIMITS=gpt-4:10,gpt-3.5-turbo:30,claude-3-opus:10\n\n# -----------------------------------------------------------------------------\n# AutoDAN Configuration\n# -----------------------------------------------------------------------------\n\n# AutoDAN max iterations (optional)\n# Default: 100\nAUTODAN_MAX_ITERATIONS=100\n\n# AutoDAN timeout in seconds (optional)\n# Default: 600 (10 minutes)\nAUTODAN_TIMEOUT=600\n\n# AutoDAN batch size (optional)\n# Default: 16\nAUTODAN_BATCH_SIZE=16\n\n# -----------------------------------------------------------------------------\n# Evasion Task Configuration\n# -----------------------------------------------------------------------------\n\n# Evasion task timeout in seconds (optional)\n# Default: 1800 (30 minutes)\nEVASION_TASK_TIMEOUT=1800\n\n# Evasion max concurrent tasks (optional)\n# Default: 5\nEVASION_MAX_CONCURRENT_TASKS=5\n\n# Evasion result retention days (optional)\n# Default: 30\nEVASION_RESULT_RETENTION_DAYS=30\n\n# -----------------------------------------------------------------------------\n# Lifelong Learning Configuration\n# -----------------------------------------------------------------------------\n\n# Enable lifelong learning (optional)\n# Default: false\nENABLE_LIFELONG_LEARNING=false\n\n# Lifelong learning model path (optional)\n# LIFELONG_MODEL_PATH=./models/lifelong\n\n# Lifelong learning update interval in hours (optional)\n# Default: 24\nLIFELONG_UPDATE_INTERVAL=24\n\n# -----------------------------------------------------------------------------\n# Feature Flags\n# -----------------------------------------------------------------------------\n\n# Enable AutoDAN feature (optional)\n# Default: true\nFEATURE_AUTODAN=true\n\n# Enable AutoAdv feature (optional)\n# Default: true\nFEATURE_AUTOADV=true\n\n# Enable Evasion Tasks feature (optional)\n# Default: true\nFEATURE_EVASION=true\n\n# Enable Chat feature (optional)\n# Default: true\nFEATURE_CHAT=true\n\n# Enable Admin endpoints (optional)\n# Default: true\nFEATURE_ADMIN=true\n\n# Enable Provider Management (optional)\n# Default: true\nFEATURE_PROVIDER_MANAGEMENT=true\n\n# Enable Lifelong Learning (optional)\n# Default: false\nFEATURE_LIFELONG_LEARNING=false\n\n# -----------------------------------------------------------------------------\n# Monitoring & Logging\n# -----------------------------------------------------------------------------\n\n# Enable request logging (optional)\n# Default: true\nENABLE_REQUEST_LOGGING=true\n\n# Enable metrics collection (optional)\n# Default: false\nENABLE_METRICS=false\n\n# Metrics endpoint (optional)\n# METRICS_ENDPOINT=\n\n# Enable tracing (optional)\n# Default: false\nENABLE_TRACING=false\n\n# Tracing endpoint (optional)\n# TRACING_ENDPOINT=\n\n# Sentry DSN for error tracking (optional)\n# SENTRY_DSN=\n\n# -----------------------------------------------------------------------------\n# Storage Configuration\n# -----------------------------------------------------------------------------\n\n# File storage path (optional)\n# Default: ./storage\nSTORAGE_PATH=./storage\n\n# Max upload size in bytes (optional)\n# Default: 10485760 (10MB)\nMAX_UPLOAD_SIZE=10485760\n\n# Enable S3 storage (optional)\n# Default: false\nENABLE_S3_STORAGE=false\n\n# S3 Configuration (if enabled)\n# S3_BUCKET_NAME=\n# S3_ACCESS_KEY=\n# S3_SECRET_KEY=\n# S3_REGION=\n# S3_ENDPOINT_URL=\n\n# -----------------------------------------------------------------------------\n# Email/SMTP Configuration (Multi-User Authentication)\n# -----------------------------------------------------------------------------\n\n# SMTP server hostname (required for email delivery)\n# Default: localhost\nSMTP_HOST=localhost\n\n# SMTP server port (required)\n# Common ports: 25 (plain), 587 (STARTTLS), 465 (SSL/TLS)\n# Default: 587\nSMTP_PORT=587\n\n# SMTP authentication username (optional)\n# Leave empty for servers that don't require auth\n# SMTP_USERNAME=\n\n# SMTP authentication password (optional)\n# SMTP_PASSWORD=\n\n# SMTP security mode (optional)\n# Options: none, starttls, ssl_tls\n# Default: starttls\nSMTP_SECURITY=starttls\n\n# Default sender email address (required)\n# Default: noreply@chimera.local\nSMTP_FROM_EMAIL=noreply@chimera.local\n\n# Default sender display name (optional)\n# Default: Chimera\nSMTP_FROM_NAME=Chimera\n\n# SMTP connection timeout in seconds (optional)\n# Default: 30\nSMTP_TIMEOUT=30\n\n# Development mode for emails (optional)\n# When true, emails are logged instead of sent\n# Default: true in development, false in production\nEMAIL_DEV_MODE=true\n\n# Email verification URL (frontend endpoint)\n# Default: http://localhost:3001/verify-email\nEMAIL_VERIFICATION_URL=http://localhost:3001/verify-email\n\n# Password reset URL (frontend endpoint)\n# Default: http://localhost:3001/reset-password\nEMAIL_PASSWORD_RESET_URL=http://localhost:3001/reset-password\n\n# Frontend application URL (used in email templates)\n# Default: http://localhost:3001\nEMAIL_FRONTEND_URL=http://localhost:3001\n\n# -----------------------------------------------------------------------------\n# JWT Authentication Configuration\n# -----------------------------------------------------------------------------\n\n# JWT secret key for token signing (required)\n# Generate with: python -c \"import secrets; print(secrets.token_hex(32))\"\nJWT_SECRET=your-jwt-secret-key-here\n\n# JWT access token expiry in minutes (optional)\n# Default: 30\nJWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\n\n# JWT refresh token expiry in days (optional)\n# Default: 7\nJWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n"}, "3491c42f9f61560b7e8394b382805d568c76da7b": {"t": 1785770386.7691069, "n": 14178, "h": "88dedd57bc6ef20e", "c": "# =============================================================================\n# Project Chimera Backend Environment Variables\n# =============================================================================\n# Copy this file to .env and fill in the values for your environment.\n# Never commit .env to version control.\n# =============================================================================\n\n# -----------------------------------------------------------------------------\n# Server Configuration\n# -----------------------------------------------------------------------------\n\n# Server host (optional)\n# Default: 0.0.0.0\nHOST=0.0.0.0\n\n# Server port (optional)\n# Default: 8000\nPORT=8000\n\n# Environment mode (optional)\n# Options: development, staging, production\n# Default: development\nENVIRONMENT=development\n\n# Debug mode (optional)\n# Default: false in production\nDEBUG=true\n\n# Log level (optional)\n# Options: DEBUG, INFO, WARNING, ERROR, CRITICAL\n# Default: INFO\nLOG_LEVEL=INFO\n\n# -----------------------------------------------------------------------------\n# Security Configuration\n# -----------------------------------------------------------------------------\n\n# Admin API key for protected endpoints (required)\n# Used for admin dashboard authentication\nCHIMERA_API_KEY=your-secure-api-key-here\n\n# Secret key for JWT/session signing (required)\n# Generate with: python -c \"import secrets; print(secrets.token_hex(32))\"\nSECRET_KEY=your-secret-key-here\n\n# CORS allowed origins (optional)\n# Comma-separated list of allowed origins\n# Default: http://localhost:3000\nCORS_ORIGINS=http://localhost:3000,http://localhost:3001\n\n# Rate limiting (optional)\n# Requests per minute per IP\n# Default: 60\nRATE_LIMIT_PER_MINUTE=60\n\n# -----------------------------------------------------------------------------\n# Database Configuration\n# -----------------------------------------------------------------------------\n\n# Database URL (required for persistence)\n# SQLite: sqlite:///./chimera.db\n# PostgreSQL: postgresql://user:password@localhost:5432/chimera\n# MySQL: mysql://user:password@localhost:3306/chimera\nDATABASE_URL=sqlite:///./chimera.db\n\n# Database pool size (optional)\n# Default: 5\nDATABASE_POOL_SIZE=5\n\n# Database max overflow (optional)\n# Default: 10\nDATABASE_MAX_OVERFLOW=10\n\n# -----------------------------------------------------------------------------\n# Redis Configuration (for Celery and caching)\n# -----------------------------------------------------------------------------\n\n# Redis URL (required for async tasks and caching)\n# Default: redis://localhost:6379/0\nREDIS_URL=redis://localhost:6379/0\n\n# Redis password (optional)\n# REDIS_PASSWORD=\n\n# Cache TTL in seconds (optional)\n# Default: 3600 (1 hour)\nCACHE_TTL=3600\n\n# -----------------------------------------------------------------------------\n# Celery Configuration (for async tasks)\n# -----------------------------------------------------------------------------\n\n# Celery broker URL (required for async tasks)\n# Default: redis://localhost:6379/0\nCELERY_BROKER_URL=redis://localhost:6379/0\n\n# Celery result backend (optional)\n# Default: redis://localhost:6379/0\nCELERY_RESULT_BACKEND=redis://localhost:6379/0\n\n# Celery task time limit in seconds (optional)\n# Default: 3600 (1 hour)\nCELERY_TASK_TIME_LIMIT=3600\n\n# -----------------------------------------------------------------------------\n# LLM Provider Configuration\n# -----------------------------------------------------------------------------\n\n# OpenAI Configuration\nOPENAI_API_KEY=your-openai-api-key\nOPENAI_ORG_ID=your-org-id\nOPENAI_MODEL=gpt-4o\n\n# Anthropic Configuration\nANTHROPIC_API_KEY=your-anthropic-api-key\nANTHROPIC_MODEL=claude-3-5-sonnet-20241022\n\n# Google AI Configuration\nGOOGLE_API_KEY=your-google-api-key\nGOOGLE_MODEL=gemini-3-pro-preview\n\n# DeepSeek Configuration\n# IMPORTANT: Only 'deepseek-chat' and 'deepseek-reasoner' are valid models\n# 'deepseek-coder' is NOT available and will cause \"Model Not Exist\" errors\nDEEPSEEK_API_KEY=your-deepseek-api-key\nDEEPSEEK_MODEL=deepseek-chat\n\n# Azure OpenAI Configuration\nAZURE_OPENAI_API_KEY=your-azure-api-key\nAZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/\nAZURE_OPENAI_API_VERSION=2024-02-15-preview\nAZURE_OPENAI_DEPLOYMENT_NAME=your-deployment-name\n\n# Ollama Configuration (local models)\nOLLAMA_BASE_URL=http://localhost:11434\nOLLAMA_DEFAULT_MODEL=llama2\n\n# HuggingFace Configuration\nHUGGINGFACE_API_KEY=your-huggingface-api-key\nHUGGINGFACE_DEFAULT_MODEL=meta-llama/Llama-2-7b-chat-hf\n\n# -----------------------------------------------------------------------------\n# Provider Management\n# -----------------------------------------------------------------------------\n\n# Default provider (optional)\n# Options: deepseek, google, openai, anthropic, azure, ollama, huggingface\n# Default: deepseek\nDEFAULT_PROVIDER=deepseek\n\n# AI Provider Selection (deepseek or gemini)\nAI_PROVIDER=deepseek\n\n# Enable provider fallback (optional)\n# Default: true\nENABLE_PROVIDER_FALLBACK=true\n\n# Provider fallback order (optional)\n# Comma-separated list of provider IDs\nPROVIDER_FALLBACK_ORDER=deepseek,google,openai,anthropic\n\n# Provider health check interval in seconds (optional)\n# Default: 60\nPROVIDER_HEALTH_CHECK_INTERVAL=60\n\n# -----------------------------------------------------------------------------\n# API Connection Mode Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# API Connection Mode - direct or proxy via AIClient-2-API Server\n# Options: direct, proxy\n# Default: direct\nAPI_CONNECTION_MODE=direct\n\n# -----------------------------------------------------------------------------\n# Proxy Mode Configuration (AIClient-2-API Server)\n# -----------------------------------------------------------------------------\n\n# Proxy server endpoint (used when API_CONNECTION_MODE=proxy)\n# Default: http://localhost:8080\nPROXY_MODE_ENDPOINT=http://localhost:8080\n\n# Enable proxy mode\n# Default: false\nPROXY_MODE_ENABLED=false\n\n# Enable health check for proxy endpoint\n# Default: true\nPROXY_MODE_HEALTH_CHECK=true\n\n# Timeout for proxy requests in seconds (5-120)\n# Default: 30\nPROXY_MODE_TIMEOUT=30\n\n# Fallback to direct mode if proxy is unavailable\n# Default: true\nPROXY_MODE_FALLBACK_TO_DIRECT=true\n\n# Health check interval for proxy endpoint in seconds (10-300)\n# Default: 30\nPROXY_MODE_HEALTH_CHECK_INTERVAL=30\n\n# -----------------------------------------------------------------------------\n# Direct Mode Base URLs (override defaults if needed)\n# -----------------------------------------------------------------------------\n\n# OpenAI direct endpoint\n# Default: https://api.openai.com/v1\n# DIRECT_OPENAI_BASE_URL=https://api.openai.com/v1\n\n# Anthropic direct endpoint\n# Default: https://api.anthropic.com/v1\n# DIRECT_ANTHROPIC_BASE_URL=https://api.anthropic.com/v1\n\n# Google/Gemini direct endpoint\n# Default: https://generativelanguage.googleapis.com/v1beta\n# DIRECT_GOOGLE_BASE_URL=https://generativelanguage.googleapis.com/v1beta\n\n# DeepSeek direct endpoint (must include /v1 for OpenAI SDK compatibility)\n# Default: https://api.deepseek.com/v1\n# DIRECT_DEEPSEEK_BASE_URL=https://api.deepseek.com/v1\n\n# Qwen direct endpoint\n# Default: https://dashscope.aliyuncs.com/api/v1\n# DIRECT_QWEN_BASE_URL=https://dashscope.aliyuncs.com/api/v1\n\n# -----------------------------------------------------------------------------\n# API Key Encryption Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable encryption for API keys at rest\n# Default: true\nENCRYPT_API_KEYS_AT_REST=true\n\n# Encryption key for API keys (base64-encoded 32-byte key)\n# Generate with: python -c \"import secrets, base64; print(base64.urlsafe_b64encode(secrets.token_bytes(32)).decode())\"\n# If not provided, a key will be derived from CHIMERA_ENCRYPTION_PASSWORD\n# CHIMERA_ENCRYPTION_KEY=\n\n# Encryption password (used if CHIMERA_ENCRYPTION_KEY not provided)\n# Default: chimera-default-key-2025 (CHANGE IN PRODUCTION!)\n# CHIMERA_ENCRYPTION_PASSWORD=your-secure-password-here\n\n# -----------------------------------------------------------------------------\n# Configuration Hot-Reload (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable configuration hot-reload without restart\n# Default: true\nENABLE_CONFIG_HOT_RELOAD=true\n\n# -----------------------------------------------------------------------------\n# Rate Limiting Configuration\n# -----------------------------------------------------------------------------\n\n# Enable rate limiting (optional)\n# Default: true\nENABLE_RATE_LIMITING=true\n\n# Rate limit window in seconds (optional)\n# Default: 60\nRATE_LIMIT_WINDOW=60\n\n# Rate limit per model (optional)\n# Format: model_id:limit,model_id:limit\n# Example: gpt-4:10,gpt-3.5-turbo:30\nMODEL_RATE_LIMITS=gpt-4:10,gpt-3.5-turbo:30,claude-3-opus:10\n\n# -----------------------------------------------------------------------------\n# AutoDAN Configuration\n# -----------------------------------------------------------------------------\n\n# AutoDAN max iterations (optional)\n# Default: 100\nAUTODAN_MAX_ITERATIONS=100\n\n# AutoDAN timeout in seconds (optional)\n# Default: 600 (10 minutes)\nAUTODAN_TIMEOUT=600\n\n# AutoDAN batch size (optional)\n# Default: 16\nAUTODAN_BATCH_SIZE=16\n\n# -----------------------------------------------------------------------------\n# Evasion Task Configuration\n# -----------------------------------------------------------------------------\n\n# Evasion task timeout in seconds (optional)\n# Default: 1800 (30 minutes)\nEVASION_TASK_TIMEOUT=1800\n\n# Evasion max concurrent tasks (optional)\n# Default: 5\nEVASION_MAX_CONCURRENT_TASKS=5\n\n# Evasion result retention days (optional)\n# Default: 30\nEVASION_RESULT_RETENTION_DAYS=30\n\n# -----------------------------------------------------------------------------\n# Lifelong Learning Configuration\n# -----------------------------------------------------------------------------\n\n# Enable lifelong learning (optional)\n# Default: false\nENABLE_LIFELONG_LEARNING=false\n\n# Lifelong learning model path (optional)\n# LIFELONG_MODEL_PATH=./models/lifelong\n\n# Lifelong learning update interval in hours (optional)\n# Default: 24\nLIFELONG_UPDATE_INTERVAL=24\n\n# -----------------------------------------------------------------------------\n# Feature Flags\n# -----------------------------------------------------------------------------\n\n# Enable AutoDAN feature (optional)\n# Default: true\nFEATURE_AUTODAN=true\n\n# Enable AutoAdv feature (optional)\n# Default: true\nFEATURE_AUTOADV=true\n\n# Enable Evasion Tasks feature (optional)\n# Default: true\nFEATURE_EVASION=true\n\n# Enable Chat feature (optional)\n# Default: true\nFEATURE_CHAT=true\n\n# Enable Admin endpoints (optional)\n# Default: true\nFEATURE_ADMIN=true\n\n# Enable Provider Management (optional)\n# Default: true\nFEATURE_PROVIDER_MANAGEMENT=true\n\n# Enable Lifelong Learning (optional)\n# Default: false\nFEATURE_LIFELONG_LEARNING=false\n\n# -----------------------------------------------------------------------------\n# Monitoring & Logging\n# -----------------------------------------------------------------------------\n\n# Enable request logging (optional)\n# Default: true\nENABLE_REQUEST_LOGGING=true\n\n# Enable metrics collection (optional)\n# Default: false\nENABLE_METRICS=false\n\n# Metrics endpoint (optional)\n# METRICS_ENDPOINT=\n\n# Enable tracing (optional)\n# Default: false\nENABLE_TRACING=false\n\n# Tracing endpoint (optional)\n# TRACING_ENDPOINT=\n\n# Sentry DSN for error tracking (optional)\n# SENTRY_DSN=\n\n# -----------------------------------------------------------------------------\n# Storage Configuration\n# -----------------------------------------------------------------------------\n\n# File storage path (optional)\n# Default: ./storage\nSTORAGE_PATH=./storage\n\n# Max upload size in bytes (optional)\n# Default: 10485760 (10MB)\nMAX_UPLOAD_SIZE=10485760\n\n# Enable S3 storage (optional)\n# Default: false\nENABLE_S3_STORAGE=false\n\n# S3 Configuration (if enabled)\n# S3_BUCKET_NAME=\n# S3_ACCESS_KEY=\n# S3_SECRET_KEY=\n# S3_REGION=\n# S3_ENDPOINT_URL=\n\n# -----------------------------------------------------------------------------\n# Email/SMTP Configuration (Multi-User Authentication)\n# -----------------------------------------------------------------------------\n\n# SMTP server hostname (required for email delivery)\n# Default: localhost\nSMTP_HOST=localhost\n\n# SMTP server port (required)\n# Common ports: 25 (plain), 587 (STARTTLS), 465 (SSL/TLS)\n# Default: 587\nSMTP_PORT=587\n\n# SMTP authentication username (optional)\n# Leave empty for servers that don't require auth\n# SMTP_USERNAME=\n\n# SMTP authentication password (optional)\n# SMTP_PASSWORD=\n\n# SMTP security mode (optional)\n# Options: none, starttls, ssl_tls\n# Default: starttls\nSMTP_SECURITY=starttls\n\n# Default sender email address (required)\n# Default: noreply@chimera.local\nSMTP_FROM_EMAIL=noreply@chimera.local\n\n# Default sender display name (optional)\n# Default: Chimera\nSMTP_FROM_NAME=Chimera\n\n# SMTP connection timeout in seconds (optional)\n# Default: 30\nSMTP_TIMEOUT=30\n\n# Development mode for emails (optional)\n# When true, emails are logged instead of sent\n# Default: true in development, false in production\nEMAIL_DEV_MODE=true\n\n# Email verification URL (frontend endpoint)\n# Default: http://localhost:3000/verify-email\nEMAIL_VERIFICATION_URL=http://localhost:3000/verify-email\n\n# Password reset URL (frontend endpoint)\n# Default: http://localhost:3000/reset-password\nEMAIL_PASSWORD_RESET_URL=http://localhost:3000/reset-password\n\n# Frontend application URL (used in email templates)\n# Default: http://localhost:3000\nEMAIL_FRONTEND_URL=http://localhost:3000\n\n# -----------------------------------------------------------------------------\n# JWT Authentication Configuration\n# -----------------------------------------------------------------------------\n\n# JWT secret key for token signing (required)\n# Generate with: python -c \"import secrets; print(secrets.token_hex(32))\"\nJWT_SECRET=your-jwt-secret-key-here\n\n# JWT access token expiry in minutes (optional)\n# Default: 30\nJWT_ACCESS_TOKEN_EXPIRE_MINUTES=30\n\n# JWT refresh token expiry in days (optional)\n# Default: 7\nJWT_REFRESH_TOKEN_EXPIRE_DAYS=7\n"}, "f4c549d62cfeaadea155ccaffbcccca97cc92a7c": {"t": 1785770388.1710002, "n": 12057, "h": "62ea5af6dde7b319", "c": "# =============================================================================\n# Project Chimera Backend Environment Variables\n# =============================================================================\n# Copy this file to .env and fill in the values for your environment.\n# Never commit .env to version control.\n# =============================================================================\n\n# -----------------------------------------------------------------------------\n# Server Configuration\n# -----------------------------------------------------------------------------\n\n# Server host (optional)\n# Default: 0.0.0.0\nHOST=0.0.0.0\n\n# Server port (optional)\n# Default: 8000\nPORT=8000\n\n# Environment mode (optional)\n# Options: development, staging, production\n# Default: development\nENVIRONMENT=development\n\n# Debug mode (optional)\n# Default: false in production\nDEBUG=true\n\n# Log level (optional)\n# Options: DEBUG, INFO, WARNING, ERROR, CRITICAL\n# Default: INFO\nLOG_LEVEL=INFO\n\n# -----------------------------------------------------------------------------\n# Security Configuration\n# -----------------------------------------------------------------------------\n\n# Admin API key for protected endpoints (required)\n# Used for admin dashboard authentication\nCHIMERA_API_KEY=your-secure-api-key-here\n\n# Secret key for JWT/session signing (required)\n# Generate with: python -c \"import secrets; print(secrets.token_hex(32))\"\nSECRET_KEY=your-secret-key-here\n\n# CORS allowed origins (optional)\n# Comma-separated list of allowed origins\n# Default: http://localhost:3000\nCORS_ORIGINS=http://localhost:3000,http://localhost:3001\n\n# Rate limiting (optional)\n# Requests per minute per IP\n# Default: 60\nRATE_LIMIT_PER_MINUTE=60\n\n# -----------------------------------------------------------------------------\n# Database Configuration\n# -----------------------------------------------------------------------------\n\n# Database URL (required for persistence)\n# SQLite: sqlite:///./chimera.db\n# PostgreSQL: postgresql://user:password@localhost:5432/chimera\n# MySQL: mysql://user:password@localhost:3306/chimera\nDATABASE_URL=sqlite:///./chimera.db\n\n# Database pool size (optional)\n# Default: 5\nDATABASE_POOL_SIZE=5\n\n# Database max overflow (optional)\n# Default: 10\nDATABASE_MAX_OVERFLOW=10\n\n# -----------------------------------------------------------------------------\n# Redis Configuration (for Celery and caching)\n# -----------------------------------------------------------------------------\n\n# Redis URL (required for async tasks and caching)\n# Default: redis://localhost:6379/0\nREDIS_URL=redis://localhost:6379/0\n\n# Redis password (optional)\n# REDIS_PASSWORD=\n\n# Cache TTL in seconds (optional)\n# Default: 3600 (1 hour)\nCACHE_TTL=3600\n\n# -----------------------------------------------------------------------------\n# Celery Configuration (for async tasks)\n# -----------------------------------------------------------------------------\n\n# Celery broker URL (required for async tasks)\n# Default: redis://localhost:6379/0\nCELERY_BROKER_URL=redis://localhost:6379/0\n\n# Celery result backend (optional)\n# Default: redis://localhost:6379/0\nCELERY_RESULT_BACKEND=redis://localhost:6379/0\n\n# Celery task time limit in seconds (optional)\n# Default: 3600 (1 hour)\nCELERY_TASK_TIME_LIMIT=3600\n\n# -----------------------------------------------------------------------------\n# LLM Provider Configuration\n# -----------------------------------------------------------------------------\n\n# OpenAI Configuration\nOPENAI_API_KEY=your-openai-api-key\nOPENAI_ORG_ID=your-org-id\nOPENAI_MODEL=gpt-4o\n\n# Anthropic Configuration\nANTHROPIC_API_KEY=your-anthropic-api-key\nANTHROPIC_MODEL=claude-3-5-sonnet-20241022\n\n# Google AI Configuration\nGOOGLE_API_KEY=your-google-api-key\nGOOGLE_MODEL=gemini-3-pro-preview\n\n# DeepSeek Configuration\n# IMPORTANT: Only 'deepseek-chat' and 'deepseek-reasoner' are valid models\n# 'deepseek-coder' is NOT available and will cause \"Model Not Exist\" errors\nDEEPSEEK_API_KEY=your-deepseek-api-key\nDEEPSEEK_MODEL=deepseek-chat\n\n# Azure OpenAI Configuration\nAZURE_OPENAI_API_KEY=your-azure-api-key\nAZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/\nAZURE_OPENAI_API_VERSION=2024-02-15-preview\nAZURE_OPENAI_DEPLOYMENT_NAME=your-deployment-name\n\n# Ollama Configuration (local models)\nOLLAMA_BASE_URL=http://localhost:11434\nOLLAMA_DEFAULT_MODEL=llama2\n\n# HuggingFace Configuration\nHUGGINGFACE_API_KEY=your-huggingface-api-key\nHUGGINGFACE_DEFAULT_MODEL=meta-llama/Llama-2-7b-chat-hf\n\n# -----------------------------------------------------------------------------\n# Provider Management\n# -----------------------------------------------------------------------------\n\n# Default provider (optional)\n# Options: deepseek, google, openai, anthropic, azure, ollama, huggingface\n# Default: deepseek\nDEFAULT_PROVIDER=deepseek\n\n# AI Provider Selection (deepseek or gemini)\nAI_PROVIDER=deepseek\n\n# Enable provider fallback (optional)\n# Default: true\nENABLE_PROVIDER_FALLBACK=true\n\n# Provider fallback order (optional)\n# Comma-separated list of provider IDs\nPROVIDER_FALLBACK_ORDER=deepseek,google,openai,anthropic\n\n# Provider health check interval in seconds (optional)\n# Default: 60\nPROVIDER_HEALTH_CHECK_INTERVAL=60\n\n# -----------------------------------------------------------------------------\n# API Connection Mode Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# API Connection Mode - direct or proxy via AIClient-2-API Server\n# Options: direct, proxy\n# Default: direct\nAPI_CONNECTION_MODE=direct\n\n# -----------------------------------------------------------------------------\n# Proxy Mode Configuration (AIClient-2-API Server)\n# -----------------------------------------------------------------------------\n\n# Proxy server endpoint (used when API_CONNECTION_MODE=proxy)\n# Default: http://localhost:8080\nPROXY_MODE_ENDPOINT=http://localhost:8080\n\n# Enable proxy mode\n# Default: false\nPROXY_MODE_ENABLED=false\n\n# Enable health check for proxy endpoint\n# Default: true\nPROXY_MODE_HEALTH_CHECK=true\n\n# Timeout for proxy requests in seconds (5-120)\n# Default: 30\nPROXY_MODE_TIMEOUT=30\n\n# Fallback to direct mode if proxy is unavailable\n# Default: true\nPROXY_MODE_FALLBACK_TO_DIRECT=true\n\n# Health check interval for proxy endpoint in seconds (10-300)\n# Default: 30\nPROXY_MODE_HEALTH_CHECK_INTERVAL=30\n\n# -----------------------------------------------------------------------------\n# Direct Mode Base URLs (override defaults if needed)\n# -----------------------------------------------------------------------------\n\n# OpenAI direct endpoint\n# Default: https://api.openai.com/v1\n# DIRECT_OPENAI_BASE_URL=https://api.openai.com/v1\n\n# Anthropic direct endpoint\n# Default: https://api.anthropic.com/v1\n# DIRECT_ANTHROPIC_BASE_URL=https://api.anthropic.com/v1\n\n# Google/Gemini direct endpoint\n# Default: https://generativelanguage.googleapis.com/v1beta\n# DIRECT_GOOGLE_BASE_URL=https://generativelanguage.googleapis.com/v1beta\n\n# DeepSeek direct endpoint (must include /v1 for OpenAI SDK compatibility)\n# Default: https://api.deepseek.com/v1\n# DIRECT_DEEPSEEK_BASE_URL=https://api.deepseek.com/v1\n\n# Qwen direct endpoint\n# Default: https://dashscope.aliyuncs.com/api/v1\n# DIRECT_QWEN_BASE_URL=https://dashscope.aliyuncs.com/api/v1\n\n# -----------------------------------------------------------------------------\n# API Key Encryption Configuration (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable encryption for API keys at rest\n# Default: true\nENCRYPT_API_KEYS_AT_REST=true\n\n# Encryption key for API keys (base64-encoded 32-byte key)\n# Generate with: python -c \"import secrets, base64; print(base64.urlsafe_b64encode(secrets.token_bytes(32)).decode())\"\n# If not provided, a key will be derived from CHIMERA_ENCRYPTION_PASSWORD\n# CHIMERA_ENCRYPTION_KEY=\n\n# Encryption password (used if CHIMERA_ENCRYPTION_KEY not provided)\n# Default: chimera-default-key-2025 (CHANGE IN PRODUCTION!)\n# CHIMERA_ENCRYPTION_PASSWORD=your-secure-password-here\n\n# -----------------------------------------------------------------------------\n# Configuration Hot-Reload (Story 1.1)\n# -----------------------------------------------------------------------------\n\n# Enable configuration hot-reload without restart\n# Default: true\nENABLE_CONFIG_HOT_RELOAD=true\n\n# -----------------------------------------------------------------------------\n# Rate Limiting Configuration\n# -----------------------------------------------------------------------------\n\n# Enable rate limiting (optional)\n# Default: true\nENABLE_RATE_LIMITING=true\n\n# Rate limit window in seconds (optional)\n# Default: 60\nRATE_LIMIT_WINDOW=60\n\n# Rate limit per model (optional)\n# Format: model_id:limit,model_id:limit\n# Example: gpt-4:10,gpt-3.5-turbo:30\nMODEL_RATE_LIMITS=gpt-4:10,gpt-3.5-turbo:30,claude-3-opus:10\n\n# -----------------------------------------------------------------------------\n# AutoDAN Configuration\n# -----------------------------------------------------------------------------\n\n# AutoDAN max iterations (optional)\n# Default: 100\nAUTODAN_MAX_ITERATIONS=100\n\n# AutoDAN timeout in seconds (optional)\n# Default: 600 (10 minutes)\nAUTODAN_TIMEOUT=600\n\n# AutoDAN batch size (optional)\n# Default: 16\nAUTODAN_BATCH_SIZE=16\n\n# -----------------------------------------------------------------------------\n# Evasion Task Configuration\n# -----------------------------------------------------------------------------\n\n# Evasion task timeout in seconds (optional)\n# Default: 1800 (30 minutes)\nEVASION_TASK_TIMEOUT=1800\n\n# Evasion max concurrent tasks (optional)\n# Default: 5\nEVASION_MAX_CONCURRENT_TASKS=5\n\n# Evasion result retention days (optional)\n# Default: 30\nEVASION_RESULT_RETENTION_DAYS=30\n\n# -----------------------------------------------------------------------------\n# Lifelong Learning Configuration\n# -----------------------------------------------------------------------------\n\n# Enable lifelong learning (optional)\n# Default: false\nENABLE_LIFELONG_LEARNING=false\n\n# Lifelong learning model path (optional)\n# LIFELONG_MODEL_PATH=./models/lifelong\n\n# Lifelong learning update interval in hours (optional)\n# Default: 24\nLIFELONG_UPDATE_INTERVAL=24\n\n# -----------------------------------------------------------------------------\n# Feature Flags\n# -----------------------------------------------------------------------------\n\n# Enable AutoDAN feature (optional)\n# Default: true\nFEATURE_AUTODAN=true\n\n# Enable AutoAdv feature (optional)\n# Default: true\nFEATURE_AUTOADV=true\n\n# Enable Evasion Tasks feature (optional)\n# Default: true\nFEATURE_EVASION=true\n\n# Enable Chat feature (optional)\n# Default: true\nFEATURE_CHAT=true\n\n# Enable Admin endpoints (optional)\n# Default: true\nFEATURE_ADMIN=true\n\n# Enable Provider Management (optional)\n# Default: true\nFEATURE_PROVIDER_MANAGEMENT=true\n\n# Enable Lifelong Learning (optional)\n# Default: false\nFEATURE_LIFELONG_LEARNING=false\n\n# -----------------------------------------------------------------------------\n# Monitoring & Logging\n# -----------------------------------------------------------------------------\n\n# Enable request logging (optional)\n# Default: true\nENABLE_REQUEST_LOGGING=true\n\n# Enable metrics collection (optional)\n# Default: false\nENABLE_METRICS=false\n\n# Metrics endpoint (optional)\n# METRICS_ENDPOINT=\n\n# Enable tracing (optional)\n# Default: false\nENABLE_TRACING=false\n\n# Tracing endpoint (optional)\n# TRACING_ENDPOINT=\n\n# Sentry DSN for error tracking (optional)\n# SENTRY_DSN=\n\n# -----------------------------------------------------------------------------\n# Storage Configuration\n# -----------------------------------------------------------------------------\n\n# File storage path (optional)\n# Default: ./storage\nSTORAGE_PATH=./storage\n\n# Max upload size in bytes (optional)\n# Default: 10485760 (10MB)\nMAX_UPLOAD_SIZE=10485760\n\n# Enable S3 storage (optional)\n# Default: false\nENABLE_S3_STORAGE=false\n\n# S3 Configuration (if enabled)\n# S3_BUCKET_NAME=\n# S3_ACCESS_KEY=\n# S3_SECRET_KEY=\n# S3_REGION=\n# S3_ENDPOINT_URL=\n"}}}}