API de licences — Démarrage rapide
URL de base : https://api.xp-flightdeck.com/licenses-api/v1
À quoi sert cette API
Émettre et valider des jetons de licence de courte durée liés à l’email de l’utilisateur et à son appareil. Les administrateurs peuvent créer des licences, les lister, les activer/désactiver et désactiver des appareils.
Authentification
Chaque requête doit inclure un seul des en-têtes suivants :
- Côté client : X-Client-Token: <token>
- Côté admin : X-Admin-Token: <token>
En cas d’échec : 401 {"detail":"invalid client/admin token"}.
Concepts clés
- Format de clé de licence :
XXXX-XXXX-XXXX(A–Z sans O/I, chiffres 2–9). - Lien appareil : une activation est enregistrée par
device_hash+device_name. - Quota : chaque licence applique
max_activations; au-delà, réponse 409 avec les compteurs. - Jeton court-terme :
/activaterenvoie un JSON + signature Ed25519 (sig). Utilisez/public-keypour vérifier.
Démarrage rapide cURL (client)
Activer (champs obligatoires : email, license_key, device_hash, device_name) :
curl -sS -X POST -H "X-Client-Token: $CLIENT_TOKEN" -H "Content-Type: application/json" https://api.xp-flightdeck.com/licenses-api/v1/activate -d '{
"email":"pilote@example.com",
"license_key":"ABCD-EF23-GH45",
"device_hash":"<sha256>",
"device_name":"Mon PC"
}'
Désactiver (obligatoires : license_key_hash, device_hash) :
curl -sS -X POST -H "X-Client-Token: $CLIENT_TOKEN" -H "Content-Type: application/json" https://api.xp-flightdeck.com/licenses-api/v1/deactivate -d '{
"license_key_hash":"<64-hex>",
"device_hash":"<sha256>"
}'
Démarrage rapide cURL (admin)
Créer une licence (obligatoires : email, product, edition, max_activations ; optionnel : features) :
curl -sS -X POST -H "X-Admin-Token: $ADMIN_TOKEN" -H "Content-Type: application/json" https://api.xp-flightdeck.com/licenses-api/v1/admin/licenses -d '{
"email":"pilote@example.com",
"product":"VotreProduit",
"edition":"Pro",
"max_activations":3,
"features":["featA","featB"]
}'
Lister les licences (tous facultatifs : email, product, edition, enabled) :
curl -sS -H "X-Admin-Token: $ADMIN_TOKEN" "https://api.xp-flightdeck.com/licenses-api/v1/admin/licenses?email=pilote@example.com&enabled=true"
Activer/désactiver (obligatoires : license_key, enabled, email) :
curl -sS -X POST -H "X-Admin-Token: $ADMIN_TOKEN" -H "Content-Type: application/json" https://api.xp-flightdeck.com/licenses-api/v1/admin/licenses/enable -d '{
"license_key":"ABCD-EF23-GH45",
"enabled":true,
"email":"pilote@example.com"
}'
Forcer la désactivation d’un appareil (obligatoires : license_key, device_hash, email) :
curl -sS -X POST -H "X-Admin-Token: $ADMIN_TOKEN" -H "Content-Type: application/json" https://api.xp-flightdeck.com/licenses-api/v1/admin/deactivate-device -d '{
"license_key":"ABCD-EF23-GH45",
"device_hash":"<sha256>",
"email":"pilote@example.com"
}'