Aller au contenu

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 : /activate renvoie un JSON + signature Ed25519 (sig). Utilisez /public-key pour 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"
      }'