A QGIS plugin for connecting to OpenSPP social protection platforms. It enables GIS analysts to browse configured layers, query aggregate statistics for selected polygons, manage geofences, and export data for offline use.
- Layer catalog for OpenSPP GIS reports
- Automatic QML style loading for consistent map rendering
- Polygon-based statistics queries
- Geofence creation and management
- Offline export (GeoPackage/ZIP)
This plugin is a thin client:
- QGIS displays data and handles user interaction
- OpenSPP/PostGIS performs all heavy computation
- Aggregated data is returned (no raw PII transfer)
- QGIS 3.28 LTR or later
- Python 3.9+
- OpenSPP instance with
spp_api_v2_gisinstalled - API key with
gis:readscope (andgis:geofencefor geofence creation)
- Build a package:
./build.sh- In QGIS, open
Plugins->Manage and Install Plugins->Install from ZIP. - Select
openspp_qgis.zipfrom this repository root.
git clone https://github.com/OpenSPP/QGIS-openspp.git
cd QGIS-openspp
./install-dev.shThen open QGIS and enable OpenSPP GIS in Plugins -> Manage and Install Plugins -> Installed.
- Click Connect and configure your OpenSPP URL + API key.
- Open Layer Catalog and add available layers.
- Select polygon features and run Query Statistics.
- Use Save Geofence for areas of interest.
- Use Export for Offline to download data packages.
pytestbash build.sh- Preferred: install and use the QGIS Plugin Reloader plugin.
- Alternative: restart QGIS.
View -> Panels -> Log Messages -> OpenSPP
- Ensure the QGIS profile plugins path exists.
- Confirm
openspp_qgis/metadata.txtis valid. - Check the QGIS Python console for import errors.
- Verify server URL and network reachability.
- Verify API key validity and required scopes.
- Retry for transient timeout conditions.
- Confirm GIS reports are configured in OpenSPP.
- Confirm API key includes
gis:read. - Use refresh in the catalog panel.
QGIS usually refreshes browser connections automatically within a few seconds. If needed, press F5 in the Browser panel or restart QGIS.
openspp_qgis/
├── __init__.py
├── metadata.txt
├── openspp_plugin.py
├── api/
│ ├── __init__.py
│ └── client.py
├── ui/
│ ├── __init__.py
│ ├── connection_dialog.py
│ ├── geofence_dialog.py
│ ├── proximity_dialog.py
│ └── stats_panel.py
├── icons/
└── i18n/
LGPL-3.0. See LICENSE.
- Issues: https://github.com/OpenSPP/QGIS-openspp/issues
- OpenSPP docs: https://docs.openspp.org