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