{
  "status": "ok",
  "database": {
    "ok": true,
    "postgis": "3.4 USE_GEOS=1 USE_PROJ=1 USE_STATS=1",
    "latency_ms": 28.1
  },
  "queue": {
    "ok": true,
    "scheduled": 10,
    "schedules": [
      {
        "name": "Send queued messages",
        "func": "apps.notifications.tasks.drain_outbox",
        "last_success": "2026-09-16T15:11:52.330072+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Release expired payment holds",
        "func": "apps.payments.tasks.release_expired_holds",
        "last_success": "2026-09-16T15:11:52.334353+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Sweep the alert queue",
        "func": "apps.backoffice.tasks.sweep_alerts",
        "last_success": "2026-09-16T15:11:52.419404+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Queue journey reminders",
        "func": "apps.notifications.tasks.queue_reminders",
        "last_success": "2026-09-16T15:01:51.074498+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Remind drivers of tomorrow's jobs",
        "func": "apps.drivers.tasks.remind_drivers",
        "last_success": "2026-09-16T15:01:51.080486+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Check tracked flights",
        "func": "apps.flights.tasks.poll_flights",
        "last_success": "2026-09-16T15:01:51.081370+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Invite reviews",
        "func": "apps.portal.tasks.invite_reviews",
        "last_success": "2026-09-16T13:17:39.157047+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Nightly backup",
        "func": "apps.common.tasks.nightly_backup",
        "last_success": null,
        "state": "unknown",
        "reason": "runs every 24h, and completed tasks are only kept for 1h \u2014 too short to tell whether it is running"
      },
      {
        "name": "Remove archived alerts",
        "func": "apps.backoffice.tasks.prune_alerts",
        "last_success": "2026-09-16T13:17:39.088804+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Apply retention policy",
        "func": "apps.privacy.tasks.apply_retention",
        "last_success": "2026-09-16T13:17:39.175890+00:00",
        "state": "working",
        "reason": ""
      }
    ],
    "overdue": [],
    "unknown": [
      "Nightly backup"
    ],
    "last_success": "2026-09-16T15:11:52.419404+00:00",
    "working": true
  },
  "providers": {
    "geocoding": {
      "configured": "postcodes_io",
      "kind": "real",
      "available": "stub, postcodes_io, loqate",
      "note": "postcodes_io is free and sufficient for pricing; loqate adds delivery-point addresses"
    },
    "routing": {
      "configured": "stub",
      "kind": "stub",
      "available": "stub, osrm, google",
      "note": "osrm is self-hosted; live traffic is irrelevant to pre-booked pricing"
    },
    "tiles": {
      "configured": "null",
      "kind": "off",
      "available": "null, http",
      "note": "null draws the route on plain ground and is the permanent degraded path; http takes any XYZ host in TILE_URL_TEMPLATE, proxied and cached so the browser never meets the vendor (ADR-0042)"
    },
    "email": {
      "configured": "smtp",
      "kind": "real",
      "available": "console, smtp, postmark",
      "note": "business SMTP at launch; watch bounce rate as the switch trigger. SES is reached through smtp rather than as its own implementation"
    },
    "flight": {
      "configured": "null",
      "kind": "off",
      "available": "null, aeroapi",
      "note": "DEFERRED at launch per SRS section 10 \u2014 built, tested, switched off"
    },
    "errors": {
      "configured": "null",
      "kind": "off",
      "available": "null, sentry, glitchtip",
      "note": "sentry free tier is ample at 50 bookings/day"
    },
    "storage": {
      "configured": "local",
      "kind": "stub",
      "available": "local, s3",
      "note": "R2 and B2 free tiers cover years of documents"
    },
    "payments": {
      "configured": "offline",
      "kind": "stub",
      "available": "offline, stub, stripe, paypal",
      "note": "comma separated; offline means pay-on-service"
    }
  },
  "route_cache": {
    "hits": 0,
    "misses": 0,
    "hit_rate": null,
    "entries": 0,
    "tiles": 0
  },
  "deferred": [
    "tiles",
    "flight",
    "errors"
  ],
  "settings": {
    "debug": false,
    "time_zone": "Europe/London",
    "quote_validity_minutes": 60,
    "show_driver_to_customer": "on_assignment"
  }
}