-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.production.example
More file actions
182 lines (156 loc) · 5.53 KB
/
.env.production.example
File metadata and controls
182 lines (156 loc) · 5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# Production Configuration Example for FIML
# Copy this to .env and customize for your production environment
# Environment
FIML_ENV=production
FIML_HOST=0.0.0.0
FIML_PORT=8000
FIML_LOG_LEVEL=INFO
# Worker Configuration
FIML_WORKERS=8 # Number of web workers
# Worker Pool Configuration (for Ray-based multi-agent system)
WORKER_POOL_SIZE=8 # Number of worker instances per type
WORKER_MAX_CONCURRENT_TASKS=50 # Max concurrent tasks per worker
WORKER_TASK_TIMEOUT=120 # Task timeout in seconds
WORKER_RETRY_ATTEMPTS=3 # Number of retry attempts
WORKER_RETRY_DELAY=5 # Delay between retries in seconds
WORKER_HEALTH_CHECK_INTERVAL=60 # Health check interval in seconds
WORKER_MEMORY_LIMIT_MB=2048 # Memory limit per worker
WORKER_CPU_LIMIT=2.0 # CPU cores limit per worker
# Individual Worker Enable/Disable
ENABLE_FUNDAMENTALS_WORKER=true
ENABLE_TECHNICAL_WORKER=true
ENABLE_MACRO_WORKER=true
ENABLE_SENTIMENT_WORKER=true
ENABLE_CORRELATION_WORKER=true
ENABLE_RISK_WORKER=true
ENABLE_NEWS_WORKER=true
ENABLE_OPTIONS_WORKER=true
# Worker Health Monitoring Thresholds
WORKER_CIRCUIT_BREAKER_THRESHOLD=5 # Failures before opening circuit
WORKER_CIRCUIT_BREAKER_TIMEOUT=60 # Seconds before trying recovery
WORKER_MAX_HEARTBEAT_AGE=120 # Max seconds since last heartbeat
WORKER_ERROR_RATE_THRESHOLD=0.5 # Error rate threshold (0-1)
# Watchdog Global Configuration
WATCHDOG_GLOBAL_ENABLED=true # Master switch for all watchdogs
WATCHDOG_EVENT_STREAM_ENABLED=true # Enable event streaming
WATCHDOG_EVENT_PERSISTENCE=true # Persist events to Redis
WATCHDOG_WEBSOCKET_BROADCAST=true # Broadcast events via WebSocket
WATCHDOG_MAX_EVENTS_IN_MEMORY=1000 # Max events in circular buffer
WATCHDOG_HEALTH_CHECK_INTERVAL=60 # Health check interval in seconds
# Watchdog Health Monitoring Thresholds
WATCHDOG_CONSECUTIVE_FAILURE_THRESHOLD=3 # Failures before marking unhealthy
# Individual Watchdog Enable/Disable
ENABLE_EARNINGS_ANOMALY_WATCHDOG=true
ENABLE_UNUSUAL_VOLUME_WATCHDOG=true
ENABLE_WHALE_MOVEMENT_WATCHDOG=true
ENABLE_FUNDING_RATE_WATCHDOG=true
ENABLE_LIQUIDITY_DROP_WATCHDOG=true
ENABLE_CORRELATION_BREAKDOWN_WATCHDOG=true
ENABLE_EXCHANGE_OUTAGE_WATCHDOG=true
ENABLE_PRICE_ANOMALY_WATCHDOG=true
# Watchdog Check Intervals (in seconds)
EARNINGS_ANOMALY_CHECK_INTERVAL=300 # 5 minutes
UNUSUAL_VOLUME_CHECK_INTERVAL=60 # 1 minute
WHALE_MOVEMENT_CHECK_INTERVAL=120 # 2 minutes
FUNDING_RATE_CHECK_INTERVAL=300 # 5 minutes
LIQUIDITY_DROP_CHECK_INTERVAL=180 # 3 minutes
CORRELATION_BREAKDOWN_CHECK_INTERVAL=600 # 10 minutes
EXCHANGE_OUTAGE_CHECK_INTERVAL=60 # 1 minute
PRICE_ANOMALY_CHECK_INTERVAL=30 # 30 seconds
# Watchdog Alert Thresholds
EARNINGS_SURPRISE_THRESHOLD_PCT=10.0 # Percentage
UNUSUAL_VOLUME_MULTIPLIER=3.0 # 3x average volume
WHALE_MOVEMENT_MIN_USD=1000000.0 # $1M minimum
FUNDING_RATE_THRESHOLD_PCT=0.1 # 0.1%
LIQUIDITY_DROP_THRESHOLD_PCT=50.0 # 50% drop
CORRELATION_CHANGE_THRESHOLD=0.5 # 0.5 correlation change
PRICE_ANOMALY_THRESHOLD_PCT=5.0 # 5% price movement
# Redis Configuration (L1 Cache)
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=your_redis_password_here
REDIS_MAX_CONNECTIONS=100
REDIS_SOCKET_TIMEOUT=5
# PostgreSQL Configuration (L2 Cache & Sessions)
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=fiml
POSTGRES_USER=fiml
POSTGRES_PASSWORD=your_postgres_password_here
POSTGRES_POOL_SIZE=40
POSTGRES_MAX_OVERFLOW=20
# Celery Configuration
CELERY_BROKER_URL=redis://redis:6379/1
CELERY_RESULT_BACKEND=redis://redis:6379/2
CELERY_TASK_TRACK_STARTED=true
CELERY_TASK_TIME_LIMIT=300
# Ray Configuration
RAY_ADDRESS=auto
RAY_NAMESPACE=fiml
# Data Provider API Keys
ALPHA_VANTAGE_API_KEY=your_alpha_vantage_key_here
FMP_API_KEY=your_fmp_key_here
POLYGON_API_KEY=your_polygon_key_here
FINNHUB_API_KEY=your_finnhub_key_here
NEWSAPI_API_KEY=your_newsapi_key_here
# NewsAPI Settings
NEWSAPI_RATE_LIMIT_PER_MINUTE=100 # Paid tier
NEWSAPI_DAILY_LIMIT=1000 # Paid tier
NEWSAPI_ENABLED=true
# Azure OpenAI Configuration
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_KEY=your_azure_openai_key_here
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4
AZURE_OPENAI_API_VERSION=2024-02-15-preview
# Crypto Exchange Keys (Optional)
BINANCE_API_KEY=your_binance_key_here
BINANCE_SECRET_KEY=your_binance_secret_here
COINBASE_API_KEY=your_coinbase_key_here
COINBASE_SECRET_KEY=your_coinbase_secret_here
# Monitoring
SENTRY_DSN=your_sentry_dsn_here
PROMETHEUS_PORT=9090
GRAFANA_PORT=3000
# Compliance & Regional Settings
DEFAULT_REGION=US
ENABLE_COMPLIANCE_CHECKS=true
ENABLE_RATE_LIMITING=true
MAX_REQUESTS_PER_MINUTE=100
ALLOWED_REGIONS=US,EU,UK,JP,CA,AU
# Feature Flags
ENABLE_CRYPTO=true
ENABLE_INTERNATIONAL_MARKETS=true
ENABLE_DERIVATIVES=false
ENABLE_PREDICTIVE_CACHE=true
ENABLE_REAL_TIME_EVENTS=true
ENABLE_CACHE_WARMING=true
ENABLE_CACHE_EVICTION=true
# Cache TTL Settings (in seconds)
CACHE_TTL_PRICE=10
CACHE_TTL_FUNDAMENTALS=3600
CACHE_TTL_TECHNICAL=300
CACHE_TTL_NEWS=600
CACHE_TTL_MACRO=86400
# Cache Optimization
CACHE_WARMING_ENABLED=true
CACHE_WARMING_INTERVAL_SECONDS=300
CACHE_EVICTION_POLICY=lru
CACHE_MAX_TRACKED_ENTRIES=10000
CACHE_MEMORY_PRESSURE_THRESHOLD=0.9
# Security
SECRET_KEY=your_secret_key_change_in_production_use_long_random_string
API_KEY_HEADER=X-FIML-API-Key
ENABLE_CORS=true
CORS_ORIGINS=https://yourdomain.com,https://app.yourdomain.com
# Task Settings
ASYNC_TASK_TIMEOUT=300
MAX_CONCURRENT_TASKS=200
TASK_RESULT_TTL=3600
# Session Management
SESSION_DEFAULT_TTL_HOURS=24
SESSION_MAX_TTL_HOURS=168
SESSION_CLEANUP_INTERVAL_MINUTES=60
SESSION_RETENTION_DAYS=30
SESSION_MAX_QUERIES_PER_SESSION=1000
SESSION_ENABLE_ANALYTICS=true