Build a Data App
A data app connects an external data source to the platform — a machinery FMIS, a regional data catalogue, a weather service, a soil database. The job is to map the external schema onto the AgriFoodData data model and to keep them in sync.
Decision tree
- One-way read of an external system? → Connector pattern.
- Bidirectional sync (writes back to the FMIS)? → Adapter pattern with a clearing-house contract.
- Bulk historical import? → ETL pattern, runs once or on a schedule.
What you need
- Read access to the external system (API key, OAuth client, etc.).
- A target organisation in AgriFoodData.
- Knowledge of Farm and Activity APIs.
Step-by-step (read path)
- Map fields. Match the external system's
field/parcel/cropnotion to the Farm API's Field + AgroVoc tags. - Pull boundaries. Translate geometries to GeoJSON (RFC 7946).
- Sync activities. For every operation in the external system, write an Activity (with timestamps, inputs, outputs).
- Run on a schedule. Use the Service Registry's scheduling primitives.
Reference implementations
The concept paper points to three real-world examples that should land here as full tutorials in later phases:
- John Deere Operations Center read path (delivered by the NaLamKI consortium)
- Agri-Gaia EDC connector (Gaia-X data space)
- ADEX in Telangana
Common patterns
- AgroVoc translation table committed to the connector repo — make the mapping inspectable.
- Watermarks for incremental sync (last-seen timestamps per resource).
- Idempotent writes — re-running an import does not duplicate.