Download the PHP package moko-github/api-si-satellite without Composer
On this page you can find all versions of the php package moko-github/api-si-satellite. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download moko-github/api-si-satellite
More information about moko-github/api-si-satellite
Files in moko-github/api-si-satellite
Package api-si-satellite
Short Description Infrastructure générique pour satellites Laravel connectés à une API externe (client HTTP abstrait, middleware HMAC, commande d'installation).
License MIT
Informations about the package api-si-satellite
moko-github/api-si-satellite
Infrastructure générique pour satellites Laravel connectés à une API externe.
Fournit :
SatelliteClient— classe abstraite HTTP avecget(),post(),put(),delete(), logging intégré et gestion d’erreurs typéeVerifyWebhookSignature— middleware HMAC SHA-256 timing-safe pour les webhooks entrantsSatelliteInstallCommand— commandesatellite:installpour publier config, stubs et configurer le canal de log
Prérequis
- PHP 8.2+
- Laravel 11 ou 12
Installation
Publier les fichiers
Ou manuellement :
Variables d’environnement
| Variable | Défaut | Rôle |
|---|---|---|
SATELLITE_API_URL |
— | URL de base de l’API distante |
SATELLITE_API_TOKEN |
— | Token Bearer pour l’authentification |
SATELLITE_API_TIMEOUT |
10 |
Timeout HTTP en secondes |
SATELLITE_WEBHOOK_SECRET |
— | Secret HMAC SHA-256 pour vérifier les webhooks (généré automatiquement par satellite:install) |
SATELLITE_LOG_LEVEL |
debug |
Niveau de log du canal satellite dans config/logging.php |
SATELLITE_LOG_CHANNEL |
satellite |
Canal Laravel à utiliser pour les logs du client HTTP |
SATELLITE_VERIFY_SSL |
true |
Vérification du certificat SSL. Mettre à false pour les environnements avec certificats auto-signés (ex : qualification) |
SATELLITE_LOG_LEVELcontrôle à quel niveau on logue (debug, info, warning…).SATELLITE_LOG_CHANNELcontrôle dans quel canal on logue. Les deux sont complémentaires : le canalsatelliteest créé dansconfig/logging.phpparsatellite:install, avecSATELLITE_LOG_LEVELcomme niveau minimum.
Dépannage : le canal de log satellite n’a pas été créé
satellite:install insère le canal satellite dans config/logging.php en
l’ajoutant au tableau 'channels'. Si votre fichier config/logging.php est
fortement personnalisé (tableau 'channels' absent, par exemple), la commande
ne modifie pas le fichier en silence : elle affiche un avertissement et le
snippet à coller manuellement.
La commande est idempotente : vous pouvez la relancer sans risque.
- Si le canal existe déjà :
Canal de log 'satellite' déjà présent… - Si le canal manque et peut être ajouté : il est inséré et vérifié après écriture.
- Si la commande ne peut pas l’ajouter (fichier atypique, droits d’écriture) : un avertissement s’affiche avec les instructions ci-dessous.
Pour l’ajouter manuellement, collez ce bloc dans le tableau 'channels' de
config/logging.php :
Si vous préférez réutiliser un canal existant plutôt que d’en créer un, pointez simplement
SATELLITE_LOG_CHANNELvers ce canal (ex :SATELLITE_LOG_CHANNEL=stack).
Vérifiez ensuite que tout est en place avec php artisan satellite:ping
(voir Tester la connectivité).
Utilisation
1. Créer un client HTTP spécifique
Étendre SatelliteClient dans le package privé de l’application :
2. Protéger une route webhook
Le middleware lit l’en-tête X-Webhook-Signature et la compare via hash_equals (temps constant).
3. Utiliser les stubs publiés
Après satellite:install, deux stubs sont disponibles dans stubs/satellite/ :
| Stub | Usage |
|---|---|
WebhookController.stub |
Contrôleur de réception des webhooks |
SyncJob.stub |
Job de synchronisation cursor-based |
Gérer les erreurs
SatelliteException expose statusCode, endpoint et errors :
Tester la connectivité
La commande satellite:ping vérifie que l'application peut joindre l'API distante.
Exemple de sortie en succès :
Exemple de sortie en erreur :
Structure
Licence
MIT
All versions of api-si-satellite with dependencies
illuminate/console Version ^11.0|^12.0
illuminate/http Version ^11.0|^12.0
illuminate/support Version ^11.0|^12.0