Schémas
Diagramme de séquence — Activation & gestion de licence
Ce déroulé suppose qu'un éditeur a déjà été provisionné par l'opérateur de la plateforme (POST /platform/publishers) et possède ses propres X-Client-Token / X-Admin-Token. "Utilisateur" ci-dessous est l'utilisateur final de l'éditeur, pas un client direct de cette API — voir Overview.
Déroulé pas à pas :
1. Activation – l'utilisateur final lance l'app de l'éditeur et saisit sa clé. L'app appelle POST /activate (avec le X-Client-Token de l'éditeur) et email, license_key, device_hash, device_name. L'API limite le débit par (éditeur, email), vérifie la propriété, l'état enabled et le quota d'appareils, puis renvoie un jeton signé (avec un kid) que l'app conserve pour déverrouiller les fonctions Pro.
2. (Optionnel) Vérification – l'app récupère les clés de signature via GET /public-keys, choisit celle dont le kid correspond au jeton, et vérifie la signature (Ed25519) — entièrement hors-ligne.
3. Gestion admin – un administrateur de l'éditeur peut créer/lister des licences et (dés)activer une licence (effet immédiat), scopé à son propre compte éditeur.
4. Changement d’appareil – quand l'utilisateur final migre de machine, l'app appelle POST /deactivate pour libérer un slot et réactiver ailleurs.
Diagramme Entité–Relation
- PUBLISHERS : une ligne par tenant (studio de jeu, SaaS, éditeur de logiciel) — détient le hash de
client_token/admin_tokenet un interrupteurenabled. Tout le reste est scopé à un éditeur. - USERS : une ligne par (éditeur, email) — le même email peut exister indépendamment sous deux éditeurs différents.
- LICENSES : appartient à un éditeur et à un utilisateur ; contient
license_key_hash,product,edition,enabled,max_activations,features_json(optionnel), dates. - ACTIVATIONS : chaque enregistrement lie une licence à un appareil (
device_hash,device_name), avec un indicateurdeactivatedet une date. - Tables de support non représentées ci-dessous : SIGNING_KEYS (clés Ed25519 rotatives, partagées par la plateforme), RATE_LIMIT_HITS (limitation par éditeur+email sur
/activate), AUDIT_LOG (journal append-only des actions admin/plateforme).
Relations - Un PUBLISHER possède plusieurs USERS et plusieurs LICENSES. - Un USER possède plusieurs LICENSES. - Une LICENSE possède plusieurs ACTIVATIONS (appareils).