{
  "status": "ok",
  "version": "v0.2.6",
  "database": {
    "ok": true,
    "postgis": "3.4 USE_GEOS=1 USE_PROJ=1 USE_STATS=1",
    "latency_ms": 31.6
  },
  "queue": {
    "ok": true,
    "scheduled": 10,
    "schedules": [
      {
        "name": "Send queued messages",
        "func": "apps.notifications.tasks.drain_outbox",
        "last_success": "2026-11-15T12:43:46.070909+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Release expired payment holds",
        "func": "apps.payments.tasks.release_expired_holds",
        "last_success": "2026-11-15T12:43:46.062330+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Sweep the alert queue",
        "func": "apps.backoffice.tasks.sweep_alerts",
        "last_success": "2026-11-15T12:41:45.983009+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Queue journey reminders",
        "func": "apps.notifications.tasks.queue_reminders",
        "last_success": "2026-11-15T12:31:44.678351+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Remind drivers of tomorrow's jobs",
        "func": "apps.drivers.tasks.remind_drivers",
        "last_success": "2026-11-15T12:31:44.688616+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Check tracked flights",
        "func": "apps.flights.tasks.poll_flights",
        "last_success": "2026-11-15T12:31:44.691208+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Invite reviews",
        "func": "apps.portal.tasks.invite_reviews",
        "last_success": "2026-11-15T07:17:04.623115+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Remove archived alerts",
        "func": "apps.backoffice.tasks.prune_alerts",
        "last_success": "2026-11-14T14:17:01.554758+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Apply retention policy",
        "func": "apps.privacy.tasks.apply_retention",
        "last_success": "2026-11-14T14:17:01.646415+00:00",
        "state": "working",
        "reason": ""
      },
      {
        "name": "Nightly backup",
        "func": "apps.common.tasks.nightly_backup",
        "last_success": "2026-11-15T03:00:04.000458+00:00",
        "state": "working",
        "reason": ""
      }
    ],
    "overdue": [],
    "unknown": [],
    "last_success": "2026-11-15T12:43:46.070909+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": "osrm",
      "kind": "real",
      "available": "stub, osrm, google",
      "note": "osrm is self-hosted; live traffic is irrelevant to pre-booked pricing"
    },
    "tiles": {
      "configured": "http",
      "kind": "real",
      "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": "s3",
      "kind": "real",
      "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": 1115,
    "misses": 238,
    "hit_rate": 0.824,
    "entries": 186,
    "tiles": 62
  },
  "deferred": [
    "flight",
    "errors"
  ],
  "settings": {
    "debug": false,
    "time_zone": "Europe/London",
    "quote_validity_minutes": 60,
    "show_driver_to_customer": "on_assignment"
  }
}