Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 101 additions & 28 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# ==================== ENVIRONMENT ====================
# Environment: development, staging, or production
ENVIRONMENT=development
DEBUG=false

# ==================== LLM CONFIGURATION ====================
# LLM Provider API Keys (at least one required)
OPENAI_API_KEY=your-openai-api-key-here
ANTHROPIC_API_KEY=your-anthropic-api-key-here
Expand All @@ -7,57 +13,124 @@ GOOGLE_API_KEY=your-google-api-key-here
LLM_PROVIDER_PRIORITY=openai,anthropic,google
LLM_FAILOVER_ENABLED=true

# Database Configuration
# LLM Settings
DEFAULT_LLM_PROVIDER=openai
DEFAULT_MODEL=gpt-4-turbo-preview
DEFAULT_TEMPERATURE=0.7
MAX_TOKENS=4096
LLM_MAX_RETRIES=3
LLM_TIMEOUT=30.0

# ==================== DATABASE CONFIGURATION ====================
# Option 1: Full database URL
DATABASE_URL=postgresql://aiops:aiops_password@localhost:5432/aiops

# Redis Configuration
# Option 2: Individual components (used if DATABASE_URL not set)
DATABASE_USER=aiops
DATABASE_PASSWORD=aiops_password # CHANGE IN PRODUCTION
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_NAME=aiops
DATABASE_SSL_MODE=disable # Set to 'require' in production

# Database Pool Configuration
DATABASE_POOL_SIZE=5
DATABASE_MAX_OVERFLOW=10
DATABASE_POOL_TIMEOUT=30
DATABASE_POOL_RECYCLE=3600
DATABASE_ECHO=false
DATABASE_SLOW_QUERY_THRESHOLD_MS=1000

# ==================== REDIS CONFIGURATION ====================
REDIS_URL=redis://localhost:6379/0
REDIS_SSL=false # Set to true in production if using rediss://
REDIS_MAX_CONNECTIONS=50
REDIS_SOCKET_TIMEOUT=5
ENABLE_REDIS=false # Enable for distributed caching

# Celery Configuration
# ==================== CELERY CONFIGURATION ====================
# Celery will use REDIS_URL by default if these are not set
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/0
CELERY_TASK_TIME_LIMIT=600
CELERY_TASK_SOFT_TIME_LIMIT=540
CELERY_WORKER_MAX_TASKS_PER_CHILD=1000

# ==================== CACHE CONFIGURATION ====================
CACHE_ENABLED=true
CACHE_DEFAULT_TTL=3600
CACHE_DIR=.aiops_cache

# ==================== API CONFIGURATION ====================
API_HOST=0.0.0.0
API_PORT=8000
API_WORKERS=4
API_RELOAD=false
API_DOCS_ENABLED=true # Auto-disabled in production

# ==================== SECURITY ====================
# Generate a strong secret key for production (e.g., using: python -c "import secrets; print(secrets.token_urlsafe(32))")
SECRET_KEY=your-secret-key-here-change-in-production-min-32-chars
JWT_SECRET_KEY=your-jwt-secret-key-here # Optional, uses SECRET_KEY if not set
JWT_ALGORITHM=HS256
JWT_EXPIRATION_MINUTES=60
WEBHOOK_SIGNATURE_SECRET=your-webhook-signature-secret
SESSION_TIMEOUT_MINUTES=60
MAX_UPLOAD_SIZE_MB=10

# ==================== CORS CONFIGURATION ====================
# IMPORTANT: In production, set specific origins, not "*"
# Leave empty for no CORS, or specify comma-separated origins
CORS_ORIGINS=http://localhost:3000,http://localhost:8080
CORS_ALLOW_CREDENTIALS=true
CORS_ALLOW_METHODS=GET,POST,PUT,DELETE,OPTIONS,PATCH
CORS_ALLOW_HEADERS=Content-Type,Authorization,X-API-Key,X-Request-ID,Accept,Origin

# ==================== RATE LIMITING ====================
RATE_LIMITING_ENABLED=true
RATE_LIMIT_DEFAULT_REQUESTS=100
RATE_LIMIT_DEFAULT_WINDOW=60

# ==================== LOGGING ====================
LOG_LEVEL=INFO
LOG_FILE= # Optional: /var/log/aiops/app.log
LOG_ROTATION=500 MB
LOG_RETENTION=30 days

# ==================== METRICS & MONITORING ====================
ENABLE_METRICS=true
METRICS_PORT=9090

# Notification Webhooks (optional)
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
TEAMS_WEBHOOK_URL=https://outlook.office.com/webhook/YOUR/WEBHOOK/URL
DISCORD_WEBHOOK_URL=

# Monitoring & Logging (optional)
# ==================== OBSERVABILITY ====================
# Sentry for error tracking (optional)
SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-id
LOG_LEVEL=INFO
ENABLE_METRICS=true

# OpenTelemetry Configuration (optional)
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
OTEL_SERVICE_NAME=aiops
OTEL_TRACES_ENABLED=true
OTEL_TRACES_ENABLED=false

# API Configuration
API_HOST=0.0.0.0
API_PORT=8000
API_WORKERS=4
API_RELOAD=false

# Security
SECRET_KEY=your-secret-key-here-change-in-production
ALLOWED_HOSTS=localhost,127.0.0.1

# CORS Configuration (comma-separated origins, or "*" for all - NOT recommended for production)
CORS_ORIGINS=http://localhost:3000,http://localhost:8080
CORS_ALLOW_CREDENTIALS=true
CORS_ALLOW_METHODS=*
CORS_ALLOW_HEADERS=*
# ==================== GITHUB INTEGRATION ====================
GITHUB_TOKEN=ghp_your_github_token_here
GITHUB_REPO=your-org/your-repo

# Feature Flags
# ==================== FEATURE FLAGS ====================
ENABLE_CODE_REVIEW=true
ENABLE_TEST_GENERATION=true
ENABLE_LOG_ANALYSIS=true
ENABLE_ANOMALY_DETECTION=true
ENABLE_AUTO_FIX=false # Disabled by default for safety
ENABLE_PLUGIN_SYSTEM=true
ENABLE_BACKGROUND_TASKS=true
ENABLE_COST_TRACKING=true

# Budget Limits (optional)
# ==================== BUDGET LIMITS ====================
DAILY_BUDGET_USD=50.0
MONTHLY_BUDGET_USD=1000.0
TOKEN_LIMIT_PER_REQUEST=32000

# Development Settings
ENVIRONMENT=development
DEBUG=false
Binary file added .test_cache/test_key.cache
Binary file not shown.
Loading
Loading