154 lines
3.9 KiB
Plaintext
154 lines
3.9 KiB
Plaintext
# Application Configuration
|
|
APP_NAME=Virtual Board Member AI
|
|
APP_VERSION=0.1.0
|
|
ENVIRONMENT=development
|
|
DEBUG=true
|
|
LOG_LEVEL=INFO
|
|
|
|
# Server Configuration
|
|
HOST=0.0.0.0
|
|
PORT=8000
|
|
WORKERS=4
|
|
RELOAD=true
|
|
|
|
# Security Configuration
|
|
SECRET_KEY=your-super-secret-key-change-in-production
|
|
ALGORITHM=HS256
|
|
ACCESS_TOKEN_EXPIRE_MINUTES=60
|
|
REFRESH_TOKEN_EXPIRE_DAYS=7
|
|
|
|
# Database Configuration
|
|
DATABASE_URL=postgresql://vbm_user:vbm_password@localhost:5432/vbm_db
|
|
DATABASE_POOL_SIZE=20
|
|
DATABASE_MAX_OVERFLOW=30
|
|
DATABASE_POOL_TIMEOUT=30
|
|
|
|
# Redis Configuration
|
|
REDIS_URL=redis://localhost:6379/0
|
|
REDIS_PASSWORD=
|
|
REDIS_DB=0
|
|
REDIS_POOL_SIZE=10
|
|
|
|
# Qdrant Vector Database
|
|
QDRANT_HOST=localhost
|
|
QDRANT_PORT=6333
|
|
QDRANT_API_KEY=
|
|
QDRANT_COLLECTION_NAME=board_documents
|
|
QDRANT_VECTOR_SIZE=1024
|
|
|
|
# LLM Configuration (OpenRouter)
|
|
OPENROUTER_API_KEY=your-openrouter-api-key
|
|
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
|
|
OPENROUTER_MODEL=gpt-4o-mini
|
|
OPENROUTER_FALLBACK_MODEL=gpt-3.5-turbo
|
|
OPENROUTER_MAX_TOKENS=4000
|
|
OPENROUTER_TEMPERATURE=0.1
|
|
|
|
# Document Processing
|
|
MAX_FILE_SIZE=104857600 # 100MB in bytes
|
|
SUPPORTED_FORMATS=pdf,xlsx,csv,pptx,txt
|
|
BATCH_UPLOAD_LIMIT=50
|
|
OCR_ENABLED=true
|
|
TESSERACT_CMD=/usr/bin/tesseract
|
|
|
|
# Storage Configuration (S3/MinIO)
|
|
STORAGE_TYPE=minio # minio or s3
|
|
MINIO_ENDPOINT=localhost:9000
|
|
MINIO_ACCESS_KEY=minioadmin
|
|
MINIO_SECRET_KEY=minioadmin
|
|
MINIO_BUCKET=vbm-documents
|
|
MINIO_SECURE=false
|
|
|
|
# AWS S3 Configuration (if using S3)
|
|
AWS_ACCESS_KEY_ID=your-aws-access-key
|
|
AWS_SECRET_ACCESS_KEY=your-aws-secret-key
|
|
AWS_REGION=us-east-1
|
|
S3_BUCKET=vbm-documents
|
|
|
|
# Authentication (OAuth 2.0/OIDC)
|
|
AUTH_PROVIDER=auth0 # auth0, cognito, or custom
|
|
AUTH0_DOMAIN=your-domain.auth0.com
|
|
AUTH0_CLIENT_ID=your-client-id
|
|
AUTH0_CLIENT_SECRET=your-client-secret
|
|
AUTH0_AUDIENCE=your-api-audience
|
|
|
|
# AWS Cognito Configuration (if using Cognito)
|
|
COGNITO_USER_POOL_ID=your-user-pool-id
|
|
COGNITO_CLIENT_ID=your-client-id
|
|
COGNITO_REGION=us-east-1
|
|
|
|
# Email Configuration
|
|
SMTP_HOST=smtp.gmail.com
|
|
SMTP_PORT=587
|
|
SMTP_USERNAME=your-email@gmail.com
|
|
SMTP_PASSWORD=your-app-password
|
|
SMTP_TLS=true
|
|
EMAIL_FROM=noreply@yourcompany.com
|
|
|
|
# Monitoring and Logging
|
|
PROMETHEUS_ENABLED=true
|
|
PROMETHEUS_PORT=9090
|
|
GRAFANA_PORT=3000
|
|
LOG_FORMAT=json
|
|
LOG_FILE=logs/app.log
|
|
|
|
# Message Queue (Kafka)
|
|
KAFKA_BOOTSTRAP_SERVERS=localhost:9092
|
|
KAFKA_TOPIC_DOCUMENT_PROCESSING=vbm-document-processing
|
|
KAFKA_TOPIC_COMMITMENT_EXTRACTION=vbm-commitment-extraction
|
|
KAFKA_TOPIC_NOTIFICATIONS=vbm-notifications
|
|
|
|
# Celery Configuration
|
|
CELERY_BROKER_URL=redis://localhost:6379/1
|
|
CELERY_RESULT_BACKEND=redis://localhost:6379/2
|
|
CELERY_TASK_SERIALIZER=json
|
|
CELERY_RESULT_SERIALIZER=json
|
|
CELERY_ACCEPT_CONTENT=json
|
|
CELERY_TIMEZONE=UTC
|
|
CELERY_ENABLE_UTC=true
|
|
|
|
# External Integrations
|
|
SHAREPOINT_CLIENT_ID=your-sharepoint-client-id
|
|
SHAREPOINT_CLIENT_SECRET=your-sharepoint-client-secret
|
|
SHAREPOINT_TENANT_ID=your-tenant-id
|
|
SHAREPOINT_SITE_URL=https://yourcompany.sharepoint.com/sites/board
|
|
|
|
GOOGLE_DRIVE_CLIENT_ID=your-google-client-id
|
|
GOOGLE_DRIVE_CLIENT_SECRET=your-google-client-secret
|
|
GOOGLE_DRIVE_REDIRECT_URI=http://localhost:8000/auth/google/callback
|
|
|
|
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
|
|
SLACK_SIGNING_SECRET=your-slack-signing-secret
|
|
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/your/webhook/url
|
|
|
|
# Microsoft Graph API
|
|
MICROSOFT_CLIENT_ID=your-microsoft-client-id
|
|
MICROSOFT_CLIENT_SECRET=your-microsoft-client-secret
|
|
MICROSOFT_TENANT_ID=your-tenant-id
|
|
|
|
# Performance Configuration
|
|
CACHE_TTL=3600 # 1 hour
|
|
RATE_LIMIT_REQUESTS=100
|
|
RATE_LIMIT_WINDOW=60 # seconds
|
|
MAX_CONCURRENT_REQUESTS=50
|
|
|
|
# Feature Flags
|
|
FEATURE_COMMITMENT_TRACKING=true
|
|
FEATURE_RISK_ANALYSIS=true
|
|
FEATURE_MEETING_SUPPORT=true
|
|
FEATURE_REAL_TIME_QUERIES=true
|
|
FEATURE_BATCH_PROCESSING=true
|
|
|
|
# Compliance and Security
|
|
ENABLE_AUDIT_LOGGING=true
|
|
ENABLE_PII_DETECTION=true
|
|
DATA_RETENTION_DAYS=2555 # 7 years
|
|
ENCRYPTION_ENABLED=true
|
|
BACKUP_ENABLED=true
|
|
|
|
# Development and Testing
|
|
TESTING=false
|
|
MOCK_LLM_RESPONSES=false
|
|
SYNTHETIC_DATA_ENABLED=true
|
|
SEED_DATA_ENABLED=true
|