Add more changes
All checks were successful
CI / test (push) Successful in 56s
CI / test-analytics (push) Successful in 2m11s
CI / build-api (push) Successful in 40s
CI / build-frontend (push) Successful in 2m0s
CI / build-analytics (push) Successful in 40s

This commit is contained in:
2026-05-11 16:04:10 +02:00
parent dbf1a05b08
commit 5cbc1d50fd
4 changed files with 365 additions and 355 deletions

96
.env.example Normal file
View File

@@ -0,0 +1,96 @@
# =============================================================================
# OTel BI Platform — master environment reference
#
# For Docker Compose: copy to .env in the project root.
# For local dev: each service reads its own subset — see comments below.
#
# POSTGRES_DSN for the Go analytics service is constructed in docker-compose.yml
# from the individual POSTGRES_* vars below — do not duplicate the password here.
# =============================================================================
# -----------------------------------------------------------------------------
# PostgreSQL — shared by both backend services
# Change POSTGRES_PASSWORD here and update it in POSTGRES_DSN below.
# -----------------------------------------------------------------------------
POSTGRES_PASSWORD=changeme
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DATABASE=otel_bi
POSTGRES_USERNAME=otel_bi
POSTGRES_SSLMODE=prefer
# -----------------------------------------------------------------------------
# Go analytics service (otel-bi-analytics) → backend/analytics/
# -----------------------------------------------------------------------------
# MSSQL data warehouses — required
# sqlserver://user:pass@host:port?database=name&TrustServerCertificate=true&ApplicationIntent=ReadOnly
AW_MSSQL_DSN=sqlserver://sa:YourStrongPassword123!@host.docker.internal:1433?database=AdventureWorksDW2022&TrustServerCertificate=true&ApplicationIntent=ReadOnly
WWI_MSSQL_DSN=sqlserver://sa:YourStrongPassword123!@host.docker.internal:1433?database=WideWorldImportersDW&TrustServerCertificate=true&ApplicationIntent=ReadOnly
# POSTGRES_DSN is assembled by docker-compose.yml from the vars above:
# postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}?sslmode=${POSTGRES_SSLMODE}
# For local dev without Compose, export POSTGRES_DSN manually in your shell.
# HTTP port (default 8080)
# PORT=8080
# Analytics tuning — all optional
# DEFAULT_TOP_N=10
# FORECAST_HORIZON_DAYS=30
# DEFAULT_HISTORY_DAYS=365
# -----------------------------------------------------------------------------
# Python API (otel-bi-api) → backend/
# -----------------------------------------------------------------------------
# URL of the Go analytics service
ANALYTICS_SERVICE_URL=http://analytics:8080
# PostgreSQL — reads the individual POSTGRES_* vars defined above
# Comma-separated allowed CORS origins
CORS_ORIGINS=http://localhost:8080
# JWT validation for incoming browser requests
# Set false only for local dev — always true in production
REQUIRE_FRONTEND_AUTH=false
# FRONTEND_JWT_ISSUER_URL=https://sso.example.com/realms/otel-bi
# FRONTEND_JWT_AUDIENCE=otel-bi-api
# FRONTEND_JWT_JWKS_URL=https://sso.example.com/realms/otel-bi/protocol/openid-connect/certs
# FRONTEND_REQUIRED_SCOPES=openid profile
# OIDC client config — served to the SPA at runtime via GET /api/config
# NOT baked into the frontend image
# FRONTEND_OIDC_CLIENT_ID=otel-bi-frontend
# FRONTEND_OIDC_SCOPE=openid profile email
# Path for generated full-report XLSX + PDF files
# Mount a PVC here in Kubernetes
REPORT_OUTPUT_DIR=/reports
APP_ENV=prod
LOG_LEVEL=INFO
# -----------------------------------------------------------------------------
# Frontend (otel-bi-frontend) → frontend/
# Baked into the image at build time via Docker build-args.
# In Docker Compose these are passed as build args, not runtime env.
# For local dev copy frontend/.env.example to frontend/.env.local instead.
# -----------------------------------------------------------------------------
VITE_API_BASE_URL=http://localhost:8000
VITE_OTEL_COLLECTOR_ENDPOINT=http://alloy:4318
VITE_OTEL_SERVICE_NAME=otel-bi-frontend
VITE_OTEL_SERVICE_NAMESPACE=final-thesis
# -----------------------------------------------------------------------------
# OpenTelemetry — shared collector endpoint
# Same value goes to Go analytics, Python API, and frontend build arg above
# -----------------------------------------------------------------------------
OTEL_COLLECTOR_ENDPOINT=http://alloy:4318
OTEL_SERVICE_NAMESPACE=final-thesis