Add base kubernetes support 2
This commit is contained in:
@@ -7,16 +7,24 @@ metadata:
|
||||
app.kubernetes.io/name: bakery-ia
|
||||
app.kubernetes.io/component: config
|
||||
data:
|
||||
# Environment Settings
|
||||
ENVIRONMENT: "development"
|
||||
DEBUG: "true"
|
||||
# ================================================================
|
||||
# ENVIRONMENT & BUILD SETTINGS
|
||||
# ================================================================
|
||||
ENVIRONMENT: "production"
|
||||
DEBUG: "false"
|
||||
LOG_LEVEL: "INFO"
|
||||
AUTO_RELOAD: "true"
|
||||
BUILD_DATE: "2024-01-20T10:00:00Z"
|
||||
VCS_REF: "latest"
|
||||
IMAGE_TAG: "latest"
|
||||
DOMAIN: "localhost"
|
||||
AUTO_RELOAD: "false"
|
||||
PROFILING_ENABLED: "false"
|
||||
MOCK_EXTERNAL_APIS: "false"
|
||||
TESTING: "false"
|
||||
|
||||
# Service Discovery
|
||||
# ================================================================
|
||||
# SERVICE DISCOVERY (KUBERNETES INTERNAL)
|
||||
# ================================================================
|
||||
REDIS_HOST: "redis-service"
|
||||
REDIS_PORT: "6379"
|
||||
RABBITMQ_HOST: "rabbitmq-service"
|
||||
@@ -24,7 +32,7 @@ data:
|
||||
RABBITMQ_MANAGEMENT_PORT: "15672"
|
||||
RABBITMQ_VHOST: "/"
|
||||
|
||||
# Database Hosts
|
||||
# Database Hosts (Kubernetes Services)
|
||||
AUTH_DB_HOST: "auth-db-service"
|
||||
TENANT_DB_HOST: "tenant-db-service"
|
||||
TRAINING_DB_HOST: "training-db-service"
|
||||
@@ -40,10 +48,8 @@ data:
|
||||
PRODUCTION_DB_HOST: "production-db-service"
|
||||
ALERT_PROCESSOR_DB_HOST: "alert-processor-db-service"
|
||||
|
||||
# Database Ports
|
||||
# Database Configuration
|
||||
DB_PORT: "5432"
|
||||
|
||||
# Database Names
|
||||
AUTH_DB_NAME: "auth_db"
|
||||
TENANT_DB_NAME: "tenant_db"
|
||||
TRAINING_DB_NAME: "training_db"
|
||||
@@ -58,11 +64,12 @@ data:
|
||||
ORDERS_DB_NAME: "orders_db"
|
||||
PRODUCTION_DB_NAME: "production_db"
|
||||
ALERT_PROCESSOR_DB_NAME: "alert_processor_db"
|
||||
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
|
||||
|
||||
# PostgreSQL Settings
|
||||
POSTGRES_INITDB_ARGS: "--auth-host=scram-sha-256"
|
||||
|
||||
# Service URLs (internal cluster communication)
|
||||
# ================================================================
|
||||
# SERVICE URLS (KUBERNETES INTERNAL)
|
||||
# ================================================================
|
||||
GATEWAY_URL: "http://gateway-service:8000"
|
||||
AUTH_SERVICE_URL: "http://auth-service:8000"
|
||||
TENANT_SERVICE_URL: "http://tenant-service:8000"
|
||||
TRAINING_SERVICE_URL: "http://training-service:8000"
|
||||
@@ -77,9 +84,242 @@ data:
|
||||
ORDERS_SERVICE_URL: "http://orders-service:8000"
|
||||
PRODUCTION_SERVICE_URL: "http://production-service:8000"
|
||||
|
||||
# Cache Settings
|
||||
REDIS_MAX_MEMORY: "512mb"
|
||||
# ================================================================
|
||||
# AUTHENTICATION & SECURITY SETTINGS
|
||||
# ================================================================
|
||||
JWT_ALGORITHM: "HS256"
|
||||
JWT_ACCESS_TOKEN_EXPIRE_MINUTES: "30"
|
||||
JWT_REFRESH_TOKEN_EXPIRE_DAYS: "7"
|
||||
ENABLE_SERVICE_AUTH: "false"
|
||||
PASSWORD_MIN_LENGTH: "8"
|
||||
PASSWORD_REQUIRE_UPPERCASE: "true"
|
||||
PASSWORD_REQUIRE_LOWERCASE: "true"
|
||||
PASSWORD_REQUIRE_NUMBERS: "true"
|
||||
PASSWORD_REQUIRE_SYMBOLS: "false"
|
||||
BCRYPT_ROUNDS: "12"
|
||||
MAX_LOGIN_ATTEMPTS: "5"
|
||||
LOCKOUT_DURATION_MINUTES: "30"
|
||||
|
||||
# Monitoring
|
||||
# ================================================================
|
||||
# CORS & API CONFIGURATION
|
||||
# ================================================================
|
||||
CORS_ORIGINS: "http://frontend-service:3000,http://localhost:3000,https://bakery.yourdomain.com"
|
||||
CORS_ALLOW_CREDENTIALS: "true"
|
||||
RATE_LIMIT_ENABLED: "true"
|
||||
RATE_LIMIT_REQUESTS: "100"
|
||||
RATE_LIMIT_WINDOW: "60"
|
||||
RATE_LIMIT_BURST: "10"
|
||||
API_DOCS_ENABLED: "true"
|
||||
|
||||
# ================================================================
|
||||
# HTTP CLIENT SETTINGS
|
||||
# ================================================================
|
||||
HTTP_TIMEOUT: "30000"
|
||||
HTTP_RETRIES: "3"
|
||||
HTTP_RETRY_DELAY: "1.0"
|
||||
|
||||
# ================================================================
|
||||
# EXTERNAL API CONFIGURATION
|
||||
# ================================================================
|
||||
AEMET_BASE_URL: "https://opendata.aemet.es/opendata"
|
||||
AEMET_TIMEOUT: "60"
|
||||
AEMET_RETRY_ATTEMPTS: "3"
|
||||
MADRID_OPENDATA_BASE_URL: "https://datos.madrid.es"
|
||||
MADRID_OPENDATA_TIMEOUT: "30"
|
||||
|
||||
# ================================================================
|
||||
# PAYMENT CONFIGURATION
|
||||
# ================================================================
|
||||
STRIPE_PUBLISHABLE_KEY: "pk_test_your_stripe_publishable_key_here"
|
||||
SQUARE_APPLICATION_ID: "your-square-application-id"
|
||||
SQUARE_ENVIRONMENT: "sandbox"
|
||||
TOAST_ENVIRONMENT: "sandbox"
|
||||
LIGHTSPEED_ENVIRONMENT: "sandbox"
|
||||
|
||||
# ================================================================
|
||||
# EMAIL CONFIGURATION
|
||||
# ================================================================
|
||||
SMTP_HOST: "smtp.gmail.com"
|
||||
SMTP_PORT: "587"
|
||||
SMTP_TLS: "true"
|
||||
SMTP_SSL: "false"
|
||||
DEFAULT_FROM_EMAIL: "noreply@bakeryforecast.es"
|
||||
DEFAULT_FROM_NAME: "Bakery-Forecast"
|
||||
EMAIL_FROM_ADDRESS: "alerts@bakery.local"
|
||||
EMAIL_FROM_NAME: "Bakery Alert System"
|
||||
|
||||
# ================================================================
|
||||
# WHATSAPP CONFIGURATION
|
||||
# ================================================================
|
||||
WHATSAPP_BASE_URL: "https://api.twilio.com"
|
||||
WHATSAPP_FROM_NUMBER: "whatsapp:+14155238886"
|
||||
|
||||
# ================================================================
|
||||
# ALERT SYSTEM CONFIGURATION
|
||||
# ================================================================
|
||||
ALERT_PROCESSOR_INSTANCES: "2"
|
||||
ALERT_PROCESSOR_MAX_MEMORY: "512M"
|
||||
ALERT_BATCH_SIZE: "10"
|
||||
ALERT_PROCESSING_TIMEOUT: "30"
|
||||
EMAIL_ENABLED: "true"
|
||||
WHATSAPP_ENABLED: "true"
|
||||
SSE_ENABLED: "true"
|
||||
PUSH_NOTIFICATIONS_ENABLED: "false"
|
||||
ALERT_DEDUPLICATION_WINDOW_MINUTES: "15"
|
||||
RECOMMENDATION_DEDUPLICATION_WINDOW_MINUTES: "60"
|
||||
|
||||
# ================================================================
|
||||
# CHECK FREQUENCIES (CRON EXPRESSIONS)
|
||||
# ================================================================
|
||||
STOCK_CHECK_FREQUENCY: "*/5"
|
||||
EXPIRY_CHECK_FREQUENCY: "*/2"
|
||||
TEMPERATURE_CHECK_FREQUENCY: "*/2"
|
||||
PRODUCTION_DELAY_CHECK_FREQUENCY: "*/5"
|
||||
CAPACITY_CHECK_FREQUENCY: "*/10"
|
||||
INVENTORY_OPTIMIZATION_FREQUENCY: "*/30"
|
||||
EFFICIENCY_RECOMMENDATIONS_FREQUENCY: "*/30"
|
||||
ENERGY_RECOMMENDATIONS_FREQUENCY: "0"
|
||||
WASTE_REDUCTION_FREQUENCY: "0"
|
||||
|
||||
# ================================================================
|
||||
# MODEL STORAGE & TRAINING
|
||||
# ================================================================
|
||||
MODEL_STORAGE_PATH: "/app/models"
|
||||
MODEL_BACKUP_ENABLED: "true"
|
||||
MODEL_VERSIONING_ENABLED: "true"
|
||||
MAX_TRAINING_TIME_MINUTES: "30"
|
||||
MAX_CONCURRENT_TRAINING_JOBS: "3"
|
||||
MIN_TRAINING_DATA_DAYS: "30"
|
||||
TRAINING_BATCH_SIZE: "1000"
|
||||
|
||||
# ================================================================
|
||||
# OPTIMIZATION SETTINGS
|
||||
# ================================================================
|
||||
ENABLE_HYPERPARAMETER_OPTIMIZATION: "true"
|
||||
ENABLE_PRODUCT_SPECIFIC_PARAMS: "true"
|
||||
ENABLE_DYNAMIC_PARAM_SELECTION: "true"
|
||||
OPTUNA_N_TRIALS: "50"
|
||||
OPTUNA_CV_FOLDS: "3"
|
||||
OPTUNA_TIMEOUT_MINUTES: "10"
|
||||
HIGH_VOLUME_THRESHOLD: "1.0"
|
||||
INTERMITTENT_THRESHOLD: "0.6"
|
||||
|
||||
# ================================================================
|
||||
# PROPHET PARAMETERS
|
||||
# ================================================================
|
||||
PROPHET_SEASONALITY_MODE: "additive"
|
||||
PROPHET_CHANGEPOINT_PRIOR_SCALE: "0.05"
|
||||
PROPHET_SEASONALITY_PRIOR_SCALE: "10.0"
|
||||
PROPHET_HOLIDAYS_PRIOR_SCALE: "10.0"
|
||||
PROPHET_DAILY_SEASONALITY: "true"
|
||||
PROPHET_WEEKLY_SEASONALITY: "true"
|
||||
PROPHET_YEARLY_SEASONALITY: "true"
|
||||
|
||||
# ================================================================
|
||||
# BUSINESS CONFIGURATION
|
||||
# ================================================================
|
||||
SERVICE_VERSION: "1.0.0"
|
||||
TIMEZONE: "Europe/Madrid"
|
||||
LOCALE: "es_ES.UTF-8"
|
||||
CURRENCY: "EUR"
|
||||
BUSINESS_HOUR_START: "7"
|
||||
BUSINESS_HOUR_END: "20"
|
||||
ENABLE_SPANISH_HOLIDAYS: "true"
|
||||
ENABLE_MADRID_HOLIDAYS: "true"
|
||||
SCHOOL_CALENDAR_ENABLED: "true"
|
||||
WEATHER_IMPACT_ENABLED: "true"
|
||||
|
||||
# ================================================================
|
||||
# MONITORING & LOGGING
|
||||
# ================================================================
|
||||
LOG_FORMAT: "json"
|
||||
LOG_FILE_ENABLED: "false"
|
||||
LOG_FILE_PATH: "/app/logs"
|
||||
LOG_ROTATION_SIZE: "100MB"
|
||||
LOG_RETENTION_DAYS: "30"
|
||||
PROMETHEUS_ENABLED: "true"
|
||||
PROMETHEUS_RETENTION: "200h"
|
||||
TIMEZONE: "UTC"
|
||||
HEALTH_CHECK_TIMEOUT: "30"
|
||||
HEALTH_CHECK_INTERVAL: "30"
|
||||
PROMETHEUS_RETENTION_DAYS: "30"
|
||||
GRAFANA_ROOT_URL: "http://monitoring.bakery-ia.local/grafana"
|
||||
|
||||
# ================================================================
|
||||
# DATA COLLECTION SETTINGS
|
||||
# ================================================================
|
||||
WEATHER_COLLECTION_INTERVAL_HOURS: "1"
|
||||
TRAFFIC_COLLECTION_INTERVAL_HOURS: "1"
|
||||
EVENTS_COLLECTION_INTERVAL_HOURS: "6"
|
||||
DATA_VALIDATION_ENABLED: "true"
|
||||
OUTLIER_DETECTION_ENABLED: "true"
|
||||
DATA_COMPLETENESS_THRESHOLD: "0.8"
|
||||
DEFAULT_LATITUDE: "40.4168"
|
||||
DEFAULT_LONGITUDE: "-3.7038"
|
||||
LOCATION_RADIUS_KM: "50.0"
|
||||
|
||||
# ================================================================
|
||||
# NOTIFICATION SETTINGS
|
||||
# ================================================================
|
||||
ENABLE_EMAIL_NOTIFICATIONS: "true"
|
||||
ENABLE_WHATSAPP_NOTIFICATIONS: "true"
|
||||
ENABLE_PUSH_NOTIFICATIONS: "false"
|
||||
MAX_RETRY_ATTEMPTS: "3"
|
||||
RETRY_DELAY_SECONDS: "60"
|
||||
NOTIFICATION_BATCH_SIZE: "100"
|
||||
EMAIL_RATE_LIMIT_PER_HOUR: "1000"
|
||||
WHATSAPP_RATE_LIMIT_PER_HOUR: "100"
|
||||
DEFAULT_LANGUAGE: "es"
|
||||
DATE_FORMAT: "%d/%m/%Y"
|
||||
TIME_FORMAT: "%H:%M"
|
||||
EMAIL_TEMPLATES_PATH: "/app/templates/email"
|
||||
WHATSAPP_TEMPLATES_PATH: "/app/templates/whatsapp"
|
||||
IMMEDIATE_DELIVERY: "true"
|
||||
SCHEDULED_DELIVERY_ENABLED: "true"
|
||||
DELIVERY_TRACKING_ENABLED: "true"
|
||||
OPEN_TRACKING_ENABLED: "true"
|
||||
CLICK_TRACKING_ENABLED: "true"
|
||||
|
||||
# ================================================================
|
||||
# FORECASTING SETTINGS
|
||||
# ================================================================
|
||||
MAX_FORECAST_DAYS: "30"
|
||||
MIN_HISTORICAL_DAYS: "60"
|
||||
PREDICTION_CONFIDENCE_THRESHOLD: "0.8"
|
||||
PREDICTION_CACHE_TTL_HOURS: "6"
|
||||
FORECAST_BATCH_SIZE: "100"
|
||||
|
||||
# ================================================================
|
||||
# BUSINESS RULES
|
||||
# ================================================================
|
||||
WEEKEND_ADJUSTMENT_FACTOR: "0.8"
|
||||
HOLIDAY_ADJUSTMENT_FACTOR: "0.5"
|
||||
TEMPERATURE_THRESHOLD_COLD: "10.0"
|
||||
TEMPERATURE_THRESHOLD_HOT: "30.0"
|
||||
RAIN_IMPACT_FACTOR: "0.7"
|
||||
HIGH_DEMAND_THRESHOLD: "1.5"
|
||||
LOW_DEMAND_THRESHOLD: "0.5"
|
||||
STOCKOUT_RISK_THRESHOLD: "0.9"
|
||||
|
||||
# ================================================================
|
||||
# CACHE SETTINGS
|
||||
# ================================================================
|
||||
REDIS_MAX_MEMORY: "512mb"
|
||||
REDIS_MAX_CONNECTIONS: "50"
|
||||
REDIS_DB: "1"
|
||||
WEATHER_CACHE_TTL_HOURS: "1"
|
||||
TRAFFIC_CACHE_TTL_HOURS: "1"
|
||||
|
||||
# ================================================================
|
||||
# FRONTEND CONFIGURATION
|
||||
# ================================================================
|
||||
VITE_APP_TITLE: "PanIA Dashboard"
|
||||
VITE_APP_VERSION: "1.0.0"
|
||||
VITE_API_URL: "http://gateway-service:8000"
|
||||
VITE_ENVIRONMENT: "production"
|
||||
|
||||
# ================================================================
|
||||
# LOCATION SETTINGS
|
||||
# ================================================================
|
||||
NOMINATIM_PBF_URL: "http://download.geofabrik.de/europe/spain-latest.osm.pbf"
|
||||
NOMINATIM_MEMORY_LIMIT: "8G"
|
||||
NOMINATIM_CPU_LIMIT: "4"
|
||||
Reference in New Issue
Block a user