This page lists configuration that changes a service's ability to start or serve requests. Values shown as secrets are names only. Keep actual credentials in local variables or the platform's secret store.
Web application
| Name | Required or default | Secret | Source | Failure symptom |
|---|---|---|---|---|
VITE_API_BASE_URL | Empty in the example; same-origin API is the normal deployment path | No | apps/web/.env.example | Requests use the wrong API origin |
VITE_MAPBOX_TOKEN | Required when Mapbox map or place search is selected | Public client token | apps/web/.env.example and provider router | Map tiles or place search do not load |
VITE_GEOAPIFY_KEY | Required only for the Geoapify provider path | Client key | apps/web/.env.example | The configured place-search fallback cannot resolve a place |
VITE_FEATURE_FARES | false in the example | No | apps/web/.env.example | Fare UI is enabled or hidden unexpectedly |
VITE_FEATURE_BUS_TRACKER | true in the example | No | apps/web/.env.example | Tracker entry points are enabled or hidden unexpectedly |
VITE_FEATURE_OFFLINE_ROUTING | true in the example | No | apps/web/.env.example | Planner-image loading is disabled |
VITE_ERROR_MONITORING_URL | Empty unless monitoring is configured | No | apps/web/.env.example | Client errors have no configured reporting destination |
VITE_APP_VERSION | 0.1.0 in the example | No | apps/web/.env.example | Client diagnostics report the wrong application version |
The map token is exposed to the browser by design. It still needs provider-side restrictions. Do not put an API secret in a VITE_ variable.
API Worker
| Name or binding | Required or default | Secret | Source | Failure symptom |
|---|---|---|---|---|
AI_ENABLED | false in Wrangler deployment configuration; local example is true | No | apps/api/wrangler.jsonc, apps/api/.env.example | Assistant requests return unavailable or the model path is enabled |
AI_MODEL | @cf/meta/llama-3.3-70b-instruct-fp8-fast in the local example | No | apps/api/.env.example | Model selection fails or changes evaluation results |
AI_GATEWAY_ID | davao-transit in the local example | No | apps/api/.env.example | Gateway attribution or provider routing is wrong |
AI_EVAL_ENDPOINT | Empty unless remote evaluation is used | Endpoint may be private | apps/api/.env.example | Evaluation exits without running remote cases |
AI_EVAL_TOKEN | Empty unless remote evaluation is used | Yes | apps/api/.env.example | Remote evaluation cannot authenticate |
AI | Worker AI binding | Platform binding | apps/api/wrangler.jsonc | Intent extraction cannot call Workers AI |
AI_RATE_LIMITER | Rate-limit binding with a 10 requests per 60 seconds rule in the current Wrangler file | Platform binding | apps/api/wrangler.jsonc | Assistant requests return an unavailable response when the binding is missing or unavailable |
COLLECTOR | Remote service binding to collector | Platform binding | apps/api/wrangler.jsonc | Live-data requests cannot reach the collector |
BUS_ROUTE_TILES | R2 bucket davao-transit-bus-route-tiles | Platform binding | apps/api/wrangler.jsonc | Vector-tile requests fall back or return unavailable |
The deployment file and local example intentionally differ for AI_ENABLED. Check the target environment before interpreting an assistant failure as a schema or model failure.
Collector Worker
| Name or binding | Required or default | Secret | Source | Failure symptom |
|---|---|---|---|---|
DB | D1 binding collector-db | Platform binding | packages/collector/wrangler.jsonc | Raw observations and derived records cannot be stored |
COLLECTOR | Durable Object class VehicleCollector | Platform binding | packages/collector/wrangler.jsonc | Collection scheduling and coordination are unavailable |
ROAD_PROCESSOR | Durable Object class RoadIntelligenceProcessor | Platform binding | packages/collector/wrangler.jsonc | Road samples remain queued or unprocessed |
VALHALLA_URL | https://valhalla1.openstreetmap.de in the current configuration | No | packages/collector/wrangler.jsonc | Road matching is disabled or fails while raw and transit processing can continue |
VEHICLE_SCHEDULE_URL | Set in local variables for the upstream feed | Usually private | packages/collector/.env.example | Collector cannot obtain the active vehicle schedule |
VEHICLE_LOCATION_URL | Set in local variables for the upstream feed | Usually private | packages/collector/.env.example | Collector cannot obtain vehicle locations |
ADMIN_TOKEN | Set for protected collector controls | Yes | packages/collector/.env.example and collector source | Administrative collector requests are rejected |
The collector can retain raw observations when Valhalla or a later derived step fails. A missing vehicle feed is a source failure and should not be diagnosed as a route-projection failure.
Dashboard
| Name or binding | Required or default | Secret | Source | Failure symptom |
|---|---|---|---|---|
ACCESS_TEAM_DOMAIN | https://svene.cloudflareaccess.com in the current configuration | No | apps/dashboard/wrangler.jsonc | Access JWT issuer or certificate lookup fails |
ACCESS_AUD | Current Access audience in Wrangler configuration | No | apps/dashboard/wrangler.jsonc | A valid token for another Access application is rejected |
ADMIN_EMAIL | Required secret | Yes | apps/dashboard/wrangler.jsonc | Local share or admin checks cannot identify the configured operator |
SHARE_SECRET | Required secret with at least 32 characters | Yes | apps/dashboard/src/index.ts | Share-token creation or verification fails |
COLLECTOR_SERVICE | Remote service binding to collector | Platform binding | apps/dashboard/wrangler.jsonc | Dashboard data requests cannot reach collector state |
ASSETS | Dashboard asset binding | Platform binding | apps/dashboard/wrangler.jsonc | Static dashboard files are not served |
For the security boundary and its remaining assumptions, read Security and authentication. For startup and migration commands, read Local development.