Files
ping-mee-self-service-platform/portal/config/health.py
T
Ebbe BaßandClaude Sonnet 5.5 f8b0584687 feat: add Django project scaffold, configuration and container
Environment-variable configuration that fails fast, database-only health
check, JSON request logs with a request id, security headers with a strict
CSP, and a multi-stage non-root Docker image with compose file. Ticket 1.1.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sk72AxLwQnYttF6VFSxQLt
2026-10-15 13:44:07 +02:00

24 lines
750 B
Python

"""Liveness check. Database only; never AD, SMTP or the share (AD-18)."""
import logging
from django.db import connection
from django.http import JsonResponse
from django.views.decorators.cache import never_cache
from django.views.decorators.http import require_GET
logger = logging.getLogger(__name__)
@require_GET
@never_cache
def healthz(request):
try:
with connection.cursor() as cursor:
cursor.execute("SELECT 1")
cursor.fetchone()
except Exception as exc: # noqa: BLE001 - any failure means unavailable
logger.error("health check failed", extra={"error_type": type(exc).__name__})
return JsonResponse({"status": "unavailable"}, status=503)
return JsonResponse({"status": "ok"})