Aller au contenu

Schémas

Diagramme de séquence — Activation & gestion de licence

Déroulé pas à pas :
1. Activation – l’utilisateur lance l’app et saisit sa clé. L’app appelle POST /activate avec email, license_key, device_hash, device_name. L’API vérifie la propriété, l’état enabled et le quota d’appareils, puis renvoie un jeton signé que l’app conserve pour déverrouiller les fonctions Pro.
2. (Optionnel) Vérification – l’app récupère la clé publique via GET /public-key et vérifie la signature du jeton (Ed25519).
3. Gestion admin – un administrateur peut créer/lister des licences et (dés)activer une licence (effet immédiat).
4. Changement d’appareil – quand l’utilisateur migre de machine, l’app appelle POST /deactivate pour libérer un slot et réactiver ailleurs.

%%{init: { "theme": "base", "sequence": { "showSequenceNumbers": true, "useMaxWidth": true }, "themeVariables": { "darkMode": true, "background": "transparent", "fontSize": "18px", "primaryTextColor": "#e7ebf2", "actorTextColor": "#e7ebf2", "noteTextColor": "#dfe4ec", "lineColor": "#8fb4ff", "signalColor": "#8fb4ff", "actorBorder": "#8fb4ff", "actorBkg": "#1b2330", "activationBorderColor":"#8fb4ff", "activationBkgColor": "#242e3d", "noteBkgColor": "#242e3d" } }}%% sequenceDiagram autonumber actor Utilisateur as Utilisateur participant App as Application (client) participant API as Licenses API participant Admin as Admin (back-office) participant Key as Clé publique (GET /public-key) Utilisateur->>App: Ouvre l’app / saisit la clé licence App->>API: POST /activate\n{ email, license_key,\n device_hash, device_name } API-->>API: Validation de la licence\n(statut, email, quota d’appareils) API-->>App: 200 { jeton signé + métadonnées } Note over App: L’app conserve le jeton signé\net déverrouille les fonctions Pro rect rgb(27,35,48) App->>Key: GET /public-key App-->>App: Vérifie la signature (Ed25519) end Admin->>API: Activer/Désactiver, lister, créer des licences API-->>Admin: Détails de licence + appareils actifs Utilisateur->>App: Change de machine App->>API: POST /deactivate\n{ license_key_hash, device_hash } API-->>App: Slot libéré (réactivation ailleurs)

Diagramme Entité–Relation

  • USERS : une ligne par utilisateur (identifié par email), avec date de création.
  • LICENSES : appartient à 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 indicateur deactivated et une date.

Relations - Un USER possède plusieurs LICENSES. - Une LICENSE possède plusieurs ACTIVATIONS (appareils).

erDiagram USERS ||--o{ LICENSES : owns LICENSES ||--o{ ACTIVATIONS : has