APP_NAME=otel-bi-backend APP_ENV=dev LOG_LEVEL=INFO API_HOST=0.0.0.0 API_PORT=8000 CORS_ORIGINS=http://localhost:5173 MSSQL_HOST=localhost MSSQL_PORT=1433 MSSQL_USERNAME=readonly_user MSSQL_PASSWORD=readonly_password MSSQL_DRIVER=ODBC Driver 18 for SQL Server MSSQL_TRUST_SERVER_CERTIFICATE=false WWI_DATABASE=WorldWideImporters AW_DATABASE=AdventureWorks2022DWH # Optional direct URLs (override generated URLs): # WWI_CONNECTION_STRING=mssql+pyodbc://user:pass@host:1433/WorldWideImporters?driver=ODBC+Driver+18+for+SQL+Server&ApplicationIntent=ReadOnly # AW_CONNECTION_STRING=mssql+pyodbc://user:pass@host:1433/AdventureWorks2022DWH?driver=ODBC+Driver+18+for+SQL+Server&ApplicationIntent=ReadOnly POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_DATABASE=otel_bi_app POSTGRES_USERNAME=otel_bi_app POSTGRES_PASSWORD=otel_bi_app POSTGRES_SSLMODE=require # Optional direct URL: # POSTGRES_CONNECTION_STRING=postgresql+psycopg://otel_bi_app:otel_bi_app@localhost:5432/otel_bi_app?sslmode=prefer POSTGRES_REQUIRED=true QUERY_SERVICE_URL=http://localhost:8101 ANALYTICS_SERVICE_URL=http://localhost:8102 PERSISTENCE_SERVICE_URL=http://localhost:8103 REQUEST_TIMEOUT_SECONDS=20 REQUIRE_FRONTEND_AUTH=true FRONTEND_JWT_ISSUER_URL=https:///realms/ FRONTEND_JWT_AUDIENCE=otel-bi-api FRONTEND_JWT_JWKS_URL=https:///realms//protocol/openid-connect/certs FRONTEND_JWT_ALGORITHM=RS256 FRONTEND_REQUIRED_SCOPES=openid profile email FRONTEND_CLOCK_SKEW_SECONDS=30 INTERNAL_SERVICE_AUTH_ENABLED=true INTERNAL_SERVICE_SHARED_SECRET=replace-with-strong-random-secret-min-32-bytes INTERNAL_SERVICE_TOKEN_TTL_SECONDS=120 INTERNAL_SERVICE_TOKEN_AUDIENCE=bi-internal INTERNAL_SERVICE_ALLOWED_ISSUERS=api-gateway INTERNAL_TOKEN_CLOCK_SKEW_SECONDS=15 OTEL_SERVICE_NAME=otel-bi-backend OTEL_SERVICE_NAMESPACE=final-thesis OTEL_COLLECTOR_ENDPOINT=http://localhost:4318 # K8s + Alloy example: # OTEL_COLLECTOR_ENDPOINT=http://alloy.monitoring.svc.cluster.local:4318 OTEL_EXPORT_TIMEOUT_MS=10000 FORECAST_HORIZON_DAYS=30 DEFAULT_HISTORY_DAYS=365 RANKING_DEFAULT_TOP_N=10