feat: license validation commands + entitlements system (Rust) #46
Labels
No labels
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#46
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Infrastructure de licence offline pour l'édition Base de Simpl'Résultat.
Ref:
spec-monetisation.md— Phase 1, Issue 1Tâches
jsonwebtoken(avec feature EdDSA) au Cargo.toml — c'est la dépendance primaire pour décoder/vérifier les JWT (pased25519-dalekseul)src-tauri/src/commands/license_commands.rs:validate_license_key(key) -> Result<LicenseInfo, String>— décode JWT, vérifie signature Ed25519, vérifie claimexpstore_license(key) -> Result<(), String>— sauvegardelicense.key+activation.tokendans app dataread_license() -> Result<Option<LicenseInfo>, String>— lit la licence stockéeget_edition() -> Result<String, String>— retourne "free", "base", ou "premium"get_machine_id() -> Result<String, String>— hash unique cross-plateforme (cratemachine-uidou équivalent, documenter que réinstall OS peut changer l'ID)entitlementscôté Rust : mappe chaque feature à un tier (free,base,premium). Config centralisée, pas de checks dispersés dans le code. Commande Tauricheck_entitlement(feature: String) -> Result<bool, String>exp(ex: 2 ans). L'app doit prompter une re-validation en ligne avant expiration (CWE-613)machine_id) pour empêcher la copie delicense.keyentre machineslib.rs+commands/mod.rsNotes de révision
jsonwebtokenest la dépendance primaire, pased25519-dalek(review technique)exp= irrévocable offline (review sécurité, CWE-613)license.keycopiable sans activation token (review sécurité)get_machine_idcross-plateforme à documenter (review technique)