Skip to content

v1.0.0

Choose a tag to compare

@smaspons smaspons released this 07 May 11:20
55f4505

What's Changed

Added

  • Production runtime: gunicorn + uvicorn.workers.UvicornWorker with gunicorn.conf.py (workers from WEB_CONCURRENCY, timeouts, max-requests).
  • Logging defaults: LOG_HTTP_BODY_CAPTURE default on (bodies truncated via LOG_DB_MAX_BODY_BYTES); LOG_DB_SAMPLE_RATE default 1.0 for full request audit; response buffering only when capture enabled.
  • DB compatibility gate: GISWATER_DB_VERSION_CHECK / GISWATER_DB_MIN_VERSION integrated into tenant GET /gw-api/v1/ready.
  • Golden prod env: .env.prod.example; deployment checklist docs/DEPLOYMENT_CHECKLIST.md.
  • Post-deploy smoke: scripts/smoke_test.sh; pytest operability smoke (tests/test_operability.py).
  • Version parsing helper: app/giswater_version.py.

Changed

  • Dockerfile CMD uses Gunicorn instead of bare uvicorn.
  • Hot paths: narrower psycopg.Error handling in DB/SQL utilities and admin log queries; routing/Valhalla helpers avoid bare except.
  • Documentation: README deployment, compatibility table for 1.x, logging and probe guidance.

Security

  • Payload retention is truncated and skippable: set LOG_HTTP_BODY_CAPTURE=false for metadata-only, or lower LOG_DB_SAMPLE_RATE if the DB log table is under pressure.

Removed

  • Runtime print(...) usage in favor of structured logging.

Pull requests

Full Changelog: v0.9.0...v1.0.0