Plugins WordPress / PrestaShop — Stormeo Connector
Documentation pour développer ou maintenir un plugin StormeoOS communiquant avec le backend.
Deux surfaces API distinctes
StormeoOS expose deux ensembles d'endpoints pour les plugins, hérités de phases successives. Les nouveaux développements ciblent /api/plugin/v2/* (HMAC obligatoire au-delà des seuils version).
Surface 1 — /v1/* (legacy, plugin Stormeo Connector)
Auth : Authorization: Bearer <clientSecret> + X-Stormeo-Client-Id: <clientId>. Source : server/routes/stormeoConnector.ts.
Endpoints :
| Path | Auth | Description |
|---|---|---|
POST /v1/ping | Bearer | Heartbeat — met à jour lastPing côté serveur |
POST /v1/sync | Bearer | Sync générique (avec chiffrement AES-256-CBC optionnel sur payload) |
GET /v1/sync/status | Bearer | État de la sync et logs |
POST /v1/gdpr/delete | Bearer | Suppression RGPD |
POST /v1/webhooks | Bearer | Émission d'un webhook signé HMAC-SHA256 vers une targetUrl |
POST /v1/site-contents | Bearer | Inventaire de contenu du site |
POST /v1/cms-extensions | Bearer | Inventaire des extensions/plugins/modules + alertes outdated |
GET /v1/public/config | (public) | Config plateforme publique (heures support, version plugin latest) |
POST /v1/support/tickets | (public) | Création d'un ticket de support |
PUT /v1/admin/platform-config | Bearer + admin | Mise à jour config plateforme |
Surface 2 — /api/plugin/* (v3.x, recommandé)
Auth : validatePluginApiKey (header X-Stormeo-API-Key) + signature HMAC obligatoire au-delà du seuil. Source : server/routes/siteConnectors/ + server/middleware/pluginSignatureValidator.ts.
Endpoints clés :
| Path | Description |
|---|---|
POST /api/plugin/pair | Échange d'un token de pairing → apiKey + apiSecret |
POST /api/plugin/sync-content | Push de contenu (posts, pages, produits, etc.) |
GET /api/plugin/commands | Pull des commandes en attente (queue StormeoOS → plugin) |
POST /api/plugin/command-result | Push du résultat d'exécution d'une commande |
POST /api/plugin/v2/disk-usage | Métriques d'usage disque |
POST /api/plugin/v2/security-event | Push d'event de sécurité (login attempt, etc.) |
POST /api/plugin/v2/file-integrity | Hash/checksum des fichiers core |
POST /api/plugin/v2/time-credit | Tracking temps consommé |
GET /api/plugin/v2/site-info | Métadonnées du site |
Sommaire
| Document | Contenu |
|---|---|
| hmac-signature.md | Algo HMAC-SHA256, timestamp tolerance, exemple PHP/Node |
| lifecycle.md | Pairing → heartbeat → sync → kill-switch HMAC required |
| wordpress.md | Spécifique plugin Stormeo Connector for WordPress (v3.x) |
| prestashop.md | Spécifique plugin Stormeo Connector for PrestaShop (v2.6+) |
| events.md | Catalogue des events push (post_save, woocommerce_*, etc.) |
Versions des plugins
| Plugin | Version courante | Seuil HMAC obligatoire |
|---|---|---|
| Stormeo Connector for WordPress | 3.3.0 | >= 3.1.0 |
| Stormeo Connector for PrestaShop | 2.6.0 | >= 2.6.0 |
ZIP de distribution :
- WP :
https://beta.stormeo.io/plugins/wordpress/stormeo-connector.zip - PS :
https://beta.stormeo.io/plugins/prestashop/stormeoconnector.zip
Vérifier le SHA-256 publié avant install : curl -sI https://beta.stormeo.io/plugins/wordpress/stormeo-connector.zip | grep -i etag.
Sécurité
- Tous les endpoints sont en HTTPS (TLS obligatoire, redirect 301 depuis HTTP)
- Secrets chiffrés at-rest :
apiSecretcôté DB stocké enenc:salt:iv:tag:cipher(AES-256-GCM, dérivation PBKDF2 600k) - Multi-tenant : chaque connector a un
agencyId, accès cross-tenant refusé en403 - Timing-safe comparisons sur tous les comparatifs de secrets (
crypto.timingSafeEqual) - Anti-replay : timestamp HMAC tolérance ±5 min (
TIMESTAMP_TOLERANCE_SEC=300) - Kill-switch global :
HMAC_REQUIRED=1(env) force HMAC sur toutes les routes plugin
Voir hmac-signature.md pour les détails.