1+ # =============================================================================
2+ # IntegratedML Pluggable Models Environment Configuration
3+ # =============================================================================
4+ #
5+ # This file serves as a template for environment variables required by the
6+ # IntegratedML Pluggable Models project. Copy this file to .env and fill in
7+ # the actual values.
8+ #
9+ # SECURITY NOTE: Never commit .env files with real secrets to version control.
10+ # This .env.example file should only contain example/placeholder values.
11+ #
12+ # =============================================================================
13+
14+ # =============================================================================
15+ # InterSystems IRIS Database Configuration
16+ # =============================================================================
17+ # Required for IntegratedML functionality and model deployment
18+ IRIS_HOST = localhost
19+ IRIS_PORT = 1972
20+ IRIS_WEB_PORT = 52773
21+ IRIS_USERNAME = demo
22+ IRIS_PASSWORD = demo
23+ IRIS_NAMESPACE = USER
24+
25+ # IRIS Docker Configuration
26+ IRIS_IMAGE = intersystemsdc/iris-community:latest
27+ ISC_PASSWORD = SYS
28+
29+ # Optional: IRIS Connection Pool Settings
30+ IRIS_MAX_CONNECTIONS = 10
31+ IRIS_CONNECTION_TIMEOUT = 30
32+
33+ # Optional: IRIS SSL Configuration
34+ IRIS_USE_SSL = false
35+ # IRIS_SSL_CERT_PATH=/path/to/cert.pem
36+ # IRIS_SSL_KEY_PATH=/path/to/key.pem
37+
38+ # =============================================================================
39+ # Application Configuration
40+ # =============================================================================
41+ # Environment mode: development, testing, production
42+ APP_ENV = development
43+
44+ # Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL
45+ LOG_LEVEL = INFO
46+
47+ # Application ports
48+ IML_APP_PORT = 8080
49+ JUPYTER_PORT = 8888
50+
51+ # Python version for Docker build
52+ PYTHON_VERSION = 3.11
53+
54+ # =============================================================================
55+ # IntegratedML Configuration
56+ # =============================================================================
57+ # Model storage and cache configuration
58+ IML_MODEL_PATH = /app/models
59+ IML_DATA_PATH = /app/data
60+
61+ # Model training parameters
62+ DEFAULT_BATCH_SIZE = 1000
63+ DEFAULT_TEST_SPLIT = 0.2
64+ DEFAULT_VALIDATION_SPLIT = 0.1
65+
66+ # Model performance settings
67+ MODEL_CACHE_SIZE = 100
68+ MODEL_TIMEOUT_SECONDS = 300
69+
70+ # =============================================================================
71+ # Docker and Container Configuration
72+ # =============================================================================
73+ # Docker network configuration
74+ DOCKER_NETWORK = iml_network
75+ DOCKER_SUBNET = 172.21.0.0/16
76+
77+ # Volume mount points
78+ IRIS_DATA_VOLUME = ./docker/volumes/iris_data
79+ IML_DATA_VOLUME = ./docker/volumes/iml_data
80+ MODEL_CACHE_VOLUME = ./docker/volumes/model_cache
81+
82+ # =============================================================================
83+ # Demo Data Configuration
84+ # =============================================================================
85+ # Credit Risk Demo
86+ CREDIT_RISK_SAMPLES = 10000
87+ CREDIT_RISK_FEATURES = 15
88+
89+ # Fraud Detection Demo
90+ FRAUD_DETECTION_SAMPLES = 50000
91+ FRAUD_DETECTION_FRAUD_RATE = 0.02
92+
93+ # Sales Forecasting Demo
94+ SALES_FORECASTING_DAYS = 365
95+ SALES_FORECASTING_PRODUCTS = 100
96+
97+ # =============================================================================
98+ # Performance and Scaling Configuration
99+ # =============================================================================
100+ # Maximum number of concurrent model training jobs
101+ MAX_CONCURRENT_TRAINING = 2
102+
103+ # Maximum memory per model training (in MB)
104+ MAX_MEMORY_PER_MODEL = 2048
105+
106+ # Query timeout in seconds
107+ QUERY_TIMEOUT = 60
108+
109+ # Batch processing configuration
110+ MAX_BATCH_SIZE = 5000
111+ BATCH_PROCESSING_WORKERS = 4
112+
113+ # =============================================================================
114+ # Testing Configuration
115+ # =============================================================================
116+ # Test database settings (separate from production)
117+ TEST_IRIS_HOST = localhost
118+ TEST_IRIS_PORT = 1972
119+ TEST_IRIS_USERNAME = demo
120+ TEST_IRIS_PASSWORD = demo
121+ TEST_IRIS_NAMESPACE = IMLTEST
122+
123+ # Test data configuration
124+ TEST_SAMPLE_SIZE = 1000
125+ TEST_USE_MOCK_DATA = true
126+
127+ # =============================================================================
128+ # Monitoring and Health Checks
129+ # =============================================================================
130+ # Enable health monitoring
131+ ENABLE_HEALTH_MONITORING = true
132+
133+ # Health check interval in seconds
134+ HEALTH_CHECK_INTERVAL = 30
135+
136+ # Model performance monitoring
137+ ENABLE_MODEL_MONITORING = true
138+ MODEL_METRICS_INTERVAL = 300
139+
140+ # =============================================================================
141+ # Security Configuration
142+ # =============================================================================
143+ # Enable strict validation (recommended for production)
144+ STRICT_VALIDATION = true
145+
146+ # Enable audit logging
147+ ENABLE_AUDIT_LOGGING = true
148+
149+ # API rate limiting
150+ API_RATE_LIMIT = 1000
151+ API_RATE_WINDOW = 3600
152+
153+ # =============================================================================
154+ # Development and Debugging
155+ # =============================================================================
156+ # Enable debug mode (development only)
157+ DEBUG_MODE = false
158+
159+ # Enable verbose logging for specific components
160+ DEBUG_SQL_QUERIES = false
161+ DEBUG_MODEL_TRAINING = false
162+ DEBUG_DATA_LOADING = false
163+
164+ # Enable performance profiling
165+ ENABLE_PROFILING = false
166+
167+ # =============================================================================
168+ # External Service Configuration (Optional)
169+ # =============================================================================
170+ # Optional: OpenAI API (for enhanced model features)
171+ # OPENAI_API_KEY=sk-your-openai-api-key
172+
173+ # Optional: MLflow tracking (for experiment management)
174+ # MLFLOW_TRACKING_URI=http://localhost:5000
175+ # MLFLOW_EXPERIMENT_NAME=IntegratedML_Pluggable_Models
176+
177+ # Optional: Weights & Biases (for experiment tracking)
178+ # WANDB_API_KEY=your-wandb-api-key
179+ # WANDB_PROJECT=integratedml-pluggable-models
180+
181+ # =============================================================================
182+ # CI/CD Configuration
183+ # =============================================================================
184+ # CI environment detection
185+ # CI=true
186+
187+ # Test execution settings for CI
188+ # CI_SKIP_SLOW_TESTS=false
189+ # CI_PARALLEL_WORKERS=2
190+
191+ # =============================================================================
192+ # NOTES
193+ # =============================================================================
194+ #
195+ # 1. Required Variables:
196+ # - IRIS_* variables: Required for database connectivity
197+ # - APP_ENV: Sets the application environment mode
198+ #
199+ # 2. Security Best Practices:
200+ # - Use strong passwords for database connections
201+ # - Enable STRICT_VALIDATION in production
202+ # - Never commit real credentials to version control
203+ #
204+ # 3. Environment-Specific Settings:
205+ # - Development: DEBUG_MODE=true, LOG_LEVEL=DEBUG
206+ # - Testing: Use separate TEST_* database settings
207+ # - Production: STRICT_VALIDATION=true, DEBUG_MODE=false
208+ #
209+ # 4. Performance Tuning:
210+ # - Adjust MAX_BATCH_SIZE based on available memory
211+ # - Set appropriate MODEL_TIMEOUT_SECONDS for your models
212+ # - Configure MAX_CONCURRENT_TRAINING based on CPU cores
213+ #
214+ # 5. Model Management:
215+ # - Configure IML_MODEL_PATH for persistent model storage
216+ # - Set MODEL_CACHE_SIZE based on available disk space
217+ # - Use ENABLE_MODEL_MONITORING for production deployments
218+ #
219+ # 6. Docker Configuration:
220+ # - Ensure volume mount points exist before starting containers
221+ # - Adjust memory limits in docker-compose.yml based on your system
222+ # - Use appropriate DOCKER_SUBNET to avoid network conflicts
223+ #
224+ # =============================================================================
0 commit comments