Intégrer ArcGIS Pro / Online / GeoEvent
Cette page couvre 5 scénarios standards pour brancher GISPulse à l'écosystème ArcGIS sans plugin natif. Le client REST ArcGIS dédié arrive en v1.3+ — voir INTEGRATION_MATRIX.
Pré-requis
- ArcGIS Pro 3.0+ (ou ArcGIS Online + ArcGIS Server)
- Un endpoint GISPulse (local ou demo)
- Pour les scénarios webhook : ArcGIS GeoEvent Server (pour ingest temps réel)
Scénario A — FileGDB en lecture
GISPulse peut écrire un .gdb (File Geodatabase) directement depuis un pipeline. ArcGIS Pro lit le GDB sans intermédiaire.
# Exporter un dataset GISPulse vers FileGDB
gispulse export dataset parcels \
--format filegdb \
--output parcels_export.gdb
# Le fichier est zippé pour transfertDans ArcGIS Pro → Catalog → Folders → Add Folder Connection, pointer sur le dossier contenant parcels_export.gdb. Le GDB apparaît avec ses feature classes ; les sidecars .qml GISPulse ne sont pas convertis (limite v1.2).
Sidecars SLD/QML→ArcGIS
Le portage automatique des styles QGIS vers ArcGIS Pro est planifié v1.3+. En attendant, ré-appliquer les classes via Symbology dans Pro et sauvegarder le .lyrx.
Scénario B — OGC API Features dans ArcGIS Pro
Pour des données live, ArcGIS Pro 3.x supporte nativement OGC API Features.
- Insert → Connections → New OGC API Connection
- URL :
http://localhost:8001/ogc/features - Si auth : ajouter l'en-tête
X-API-Keydans les credentials de la connexion - Glisser une collection dans la Map view
Pro interroge /ogc/features/collections/{id}/items?bbox=… au displacement. Comportement identique à la connexion WFS classique mais sur protocole REST/JSON.
Scénario C — Vector tiles dans ArcGIS Online
Les tuiles MVT GISPulse fonctionnent comme une Vector Tile Service URL dans ArcGIS Online.
Récupérer le doc TileJSON :
bashcurl http://localhost:8001/tiles/parcels/tilejson.jsonDans ArcGIS Online → Content → Add Item → Add an item from a URL :
- Type : Vector Tile Layer
- URL : copier la valeur de
tiles[0]du TileJSON
Le layer est visible dans Map Viewer ; styling via le
style.jsonMapLibre (voir tuto MapLibre).
Scénario D — Webhook GeoEvent → GISPulse
ArcGIS GeoEvent Server peut pousser un évènement vers GISPulse via le HTTP/JSON Output Connector. En attendant l'endpoint dédié /webhooks/arcgis (v1.3+), utiliser POST /api/triggers/{id}/evaluate.
Configuration GeoEvent (Manager UI) :
- Output Connector :
Send a JSON Object on a HTTP/Endpoint - URL :
https://gispulse.example.com/api/triggers/<TRIGGER_ID>/evaluate - HTTP Method :
POST - Headers :
Content-Type: application/jsonX-API-Key: <ta_clé>
- JSON Format : map les champs GeoEvent vers le contrat GISPulse :json
{ "table": "vehicles", "operation": "UPDATE", "row_id": "${OBJECTID}", "new_attrs": { "geom_wkt": "${GEOMETRY_WKT}", "speed": ${speed}, "vehicle_id": "${vehicle_id}" } }
GISPulse évalue les prédicats du trigger et retourne [{matched: true|false, transition: "...", ...}]. GeoEvent peut router la réponse selon le résultat.
Scénario E — Trigger GISPulse → ArcGIS GeoEvent (webhook out)
Le sens inverse : un trigger GISPulse fire et POST le payload vers un endpoint GeoEvent (ou Zapier, n8n, Make).
Côté GISPulse — créer un trigger avec une action WEBHOOK :
{
"name": "alert_speed_breach",
"trigger_type": "DML",
"category": "MONITORING",
"predicates": [
{ "type": "attr", "field": "speed", "op": ">", "value": 130 }
],
"actions": [
{
"action_type": "WEBHOOK",
"config": {
"url": "https://geoevent.example.com:6143/geoevent/rest/receiver/gispulse-input"
}
}
],
"enabled": true
}Format payload reçu par GeoEvent (figé v1.2+, voir INTEGRATION_MATRIX) :
{
"event_type": "trigger_fired",
"trigger_id": "...",
"trigger_name": "alert_speed_breach",
"table": "vehicles",
"operation": "UPDATE",
"row_id": "...",
"matched": true,
"transition": null,
"timestamp": "2026-04-26T14:32:11.123+00:00",
"custom": {}
}Sécurité :
- HMAC-SHA256 optionnel dans
X-GISPulse-Signature: sha256=<hex>(setGISPULSE_WEBHOOK_SIGNING_SECRET) - Retries auto sur 5xx (2 tentatives, 1 s + 3 s back-off) ; les 4xx ne sont pas retentés
- SSRF blocklist active : RFC1918 + cloud-metadata (169.254.169.254) bloqués par défaut
Limitations
- Pas de client REST natif ArcGIS Online/Server — lecture/écriture programmatique des feature services côté GISPulse est planifiée v1.3+
- Sidecars styles — les
.qml(QGIS) ne sont pas convertis vers.lyrx(Pro) automatiquement - GeoEvent inbound — passer par
/api/triggers/{id}/evaluateaujourd'hui, l'endpoint dédié/webhooks/arcgisarrive v1.3+
Voir aussi
- Add-in ArcGIS Pro natif — UX intégrée + dataset browser
- Integration matrix
- Triggers Guide — webhook payload, retries, HMAC