This document explains how the WG Field Validator app handles sensitive data and credentials.
The app is designed to be safe to share publicly. No API keys, credentials, or secrets are hardcoded in the source code or bundled with the APK.
-
CoreStack API Key
- Entered by you in the app settings (π button)
- Stored only on your device in the browser's localStorage
- Never transmitted except to the CoreStack API itself
- Never logged or shared with third parties
-
Google Earth Engine (GEE)
- If you need GEE integration, you authenticate through Google's OAuth flow
- Tokens are stored locally on your device
- The app never sees your Google password
The APK/app bundle includes:
- β App code (HTML, CSS, JavaScript)
- β Offline maps and datasets (public data only)
- β Place name gazetteer
- β NO API keys
- β NO user credentials
- β NO private data
| Data Type | Storage Location | Shared? |
|---|---|---|
| API Keys | Device localStorage | β No |
| Observations | Device IndexedDB | β No |
| Photos | Device IndexedDB | β No |
| Map tiles | Device cache | β No |
When online, the app may connect to:
-
OpenStreetMap Nominatim (place search)
- No authentication required
- Only sends search queries
-
CoreStack API (optional enrichment)
- Only if you configure an API key
- Uses HTTPS encryption
- API key sent in request headers
-
Map tile servers (basemaps)
- Carto Dark tiles
- ESRI Satellite tiles
- No authentication, public tiles
- Keep your API key private - Don't share it in screenshots or logs
- Use the app's settings - Enter API keys through the secure UI
- Export carefully - When exporting observations, review for sensitive notes
The app works fully offline:
- All local datasets are pre-bundled
- Place search works offline for Karnataka
- Observations saved locally until you choose to export
- No network requests required for core functionality
The app is open source. You can verify:
- No hardcoded secrets in
/src - API keys loaded from localStorage only
- No telemetry or tracking code
- All network requests are explicit in the service files
Questions? Open an issue on GitHub.