One origin for the St. Cloud Parks Explorer app: static GeoJSON chunks plus proxied API calls (geocoder, weather, optional map tiles), with TOTP gating on protected routes.
parcels_remote/manifest.jsonzoning_remote/manifest.jsonfonts/fonts.css (Lexend + OpenDyslexic)/api/geocode?q=<addr> — Nominatim (OSM)/api/weather?lat=<>&lng=<> — Open-Meteo/api/tiles/street/{z}/{x}/{y} — CARTO basemap/api/tiles/world-aerial/{z}/{y}/{x} — ArcGIS World Imagery/api/proxy/stearns/<path> — Stearns County aerial pass-through/api/secure/kv — encrypted-at-rest user storage (TOTP gated, requires KV binding)If you haven't already enrolled an authenticator, generate a fresh
shared secret here. The QR code is ready to scan with Google
Authenticator, Authy, 1Password, etc.; the same base32 secret then goes
into the Pages env var TOTP_SECRET and the parks app's
“TOTP shared secret” field.
In the parks app's GIS Layers dropdown, set both Remote data URL and Cloudflare Worker to this site's URL, paste the same TOTP secret, and Save.