diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 961d8d0..9cd9d0c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,6 +48,7 @@ jobs: OTEL_SERVICE_NAME: test-service OTEL_EXPORTER_OTLP_ENDPOINT: http://localhost:4317 GCP_PROJECT_ID: test-project + TELEMETRY_ENABLED: false run: | poetry run pytest --cov=app --cov-report=xml diff --git a/app/core/config.py b/app/core/config.py index ef364d9..e247b8e 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -10,6 +10,7 @@ class Settings(BaseSettings): DATABASE_URL: str # OpenTelemetry + TELEMETRY_ENABLED: bool = True # Set to False in tests to avoid connection errors OTEL_SERVICE_NAME: str = "clestiq-shield-api" OTEL_EXPORTER_OTLP_ENDPOINT: str = "http://otel-collector:4317" @@ -28,7 +29,7 @@ class Settings(BaseSettings): SECURITY_XSS_PROTECTION_ENABLED: bool = True SECURITY_SQL_INJECTION_DETECTION_ENABLED: bool = True SECURITY_COMMAND_INJECTION_DETECTION_ENABLED: bool = True - SECURITY_LLM_CHECK_THRESHOLD: float = 0.85 # Block if security_score > this value + SECURITY_LLM_CHECK_THRESHOLD: float = 0.85 class Config: diff --git a/app/core/telemetry.py b/app/core/telemetry.py index f63f025..270094b 100644 --- a/app/core/telemetry.py +++ b/app/core/telemetry.py @@ -29,6 +29,24 @@ def add_open_telemetry_spans(_, __, event_dict): return event_dict def setup_telemetry(app): + # Skip telemetry setup if disabled (e.g., in test environments) + if not settings.TELEMETRY_ENABLED: + log = structlog.get_logger() + log.info("Telemetry disabled, skipping OpenTelemetry initialization") + + # Still configure basic structlog for tests + structlog.configure( + processors=[ + structlog.contextvars.merge_contextvars, + structlog.processors.add_log_level, + structlog.processors.TimeStamper(fmt="iso"), + structlog.processors.JSONRenderer() + ], + logger_factory=structlog.stdlib.LoggerFactory(), + cache_logger_on_first_use=True, + ) + return + resource = Resource.create({ ResourceAttributes.SERVICE_NAME: settings.OTEL_SERVICE_NAME, }) diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 79c3cf9..a50367a 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -10,6 +10,7 @@ services: - GCP_LOCATION=us-east1 - SECURITY_SANITIZATION_ENABLED=true - SECURITY_PII_REDACTION_ENABLED=true + - TELEMETRY_ENABLED=false - SECURITY_XSS_PROTECTION_ENABLED=true - SECURITY_SQL_INJECTION_DETECTION_ENABLED=true - SECURITY_COMMAND_INJECTION_DETECTION_ENABLED=true