MDS 2.0, GBFS 3.0, city policy ingestion, and real-time geofence enforcement
The /city/{slug} portal that city contacts log into via emailed magic link — bounded by the jurisdiction's geometry, read-only, with a 24h HMAC-signed session cookie.
How the hourly compliance-digest cron walks city_contacts, picks who is due, builds the email payload, and updates last_digest_sent_at.
Common questions about MDS 2.0, GBFS 3.0, Policy ingestion, real-time enforcement, the city portal, pricing, and Ride Report certification.
The v3 GBFS feed at /api/gbfs/v3/{subaccountId}/* — what's new vs 2.x, how it coexists with the legacy feed, and the geofencing_zones.json with policy geofences merged in.
End-to-end onboarding for a new city jurisdiction — from permit award to first compliance digest emailed to the city.
Per-subaccount RS256 keypairs, kid rotation, grace windows, and where private keys are stored.
Full reference for the MDS 2.0 Provider endpoints, JWT signing, JWKS discovery, cursor pagination, and validator configuration.
What Levy Compliance does, how MDS 2.0 Provider, GBFS 3.0, city Policy ingestion, and real-time enforcement fit together for permitted operators.
How permit_conditions rows drive the daily compliance scoreboard — fleet cap, equity-zone deployment, complaint SLA, EOD trip report, and corral utilization.
How Levy pulls each city's published Policy feed, validates it with Zod, short-circuits on unchanged sha256, materializes geofences, and surfaces the diff + audit + activation flow.
The per-OEM IoT command path, sha256 idempotency, the <5min stale-GPS skip, and what happens when a city policy activates over a fleet already on the road.
The 6-tier priority ladder that orders city policy zones, operator zones, and system defaults — and how PostGIS returns the strictest rule at each point.
When MDS endpoints, Policy ingestion, enforcement, the city portal, or digest emails misbehave — the canonical checklist.