# ---------------------------------------------------------------------------
# Runtime dependencies.
# Pinned with compatible-release specifiers so patch level security fixes are
# picked up while the API surface stays stable.
# ---------------------------------------------------------------------------

# Core framework
Django~=5.1.0
djangorestframework~=3.15.2
django-filter~=24.3

# Configuration & environment
django-environ~=0.11.2

# Database
psycopg[binary]~=3.2.3

# Authentication / authorisation
djangorestframework-simplejwt~=5.3.1
argon2-cffi~=23.1.0

# API schema & interactive documentation.
# The sidecar ships the Swagger UI / ReDoc bundles as static files.  Without
# it drf-spectacular points the browser at cdn.jsdelivr.net, which the CSP in
# frontend/nginx.conf ("script-src 'self'") blocks, leaving a blank page - and
# the CDN URL is pinned to "@latest", which is a supply-chain risk in its own
# right.  Self-hosting fixes both and lets the docs work air-gapped.
drf-spectacular~=0.27.2
drf-spectacular-sidecar~=2026.9.1

# Cross origin access for the SPA
django-cors-headers~=4.4.0

# Cache / throttle backend
redis~=5.1.1
django-redis~=5.4.0

# Search engine client
elasticsearch~=8.15.1

# Observability: ship structured logs to Logstash without blocking requests
python-logstash-async~=4.0

# Serving
gunicorn~=23.0.0
whitenoise~=6.7.0
