hearth / license-client
Laravel helper package that verifies a license key against master-data.ro and stores the result locally.
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/hearth/license-client
Requires
- php: >=8.0
README
Instalare / Installation
Adaugă în composer.json sau instalează direct din repository:
composer require master-data-ro/hearth-license-client:dev-main
Pentru testare locală, poți adăuga un repository de tip path:
"repositories": [ { "type": "vcs", "url": "https://github.com/master-data-ro/hearth-license-client.git" } ]
Utilizare / Usage
- Rulează comanda artisan pentru a valida o cheie de licență (va contacta autoritatea):
php artisan make:license-server LICENTA-TA
-
La succes, pachetul va salva fișierul
storage/license.jsoncu metadatele licenței (criptat). -
Middleware-ul
Hearth\\LicenseClient\\Middleware\\EnsureHasValidLicenseva fi adăugat automat în grupawebla boot. Aplicația va returna HTTP 403 până când există o licență validă.
Cum funcționează (Principiul "ping-pong")
- Clientul (aplicația ta) trimite cheia de licență și domeniul către autoritate (hearth.master-data.ro) folosind comanda:
php artisan make:license-server YOUR-LICENSE-KEY
- Autoritatea verifică cheia și domeniul:
- Dacă licența este validă, răspunde cu un payload semnat și criptat, ce conține metadatele licenței.
- Dacă licența nu există sau necesită aprobare, răspunde cu un mesaj de pending/în așteptare.
- Dacă licența este invalidă, răspunde cu eroare și motiv.
- Clientul verifică semnătura autorității (folosind cheia publică) și salvează local payload-ul, criptat automat (fără setări suplimentare).
- Middleware-ul pachetului blochează accesul la aplicație până când există o licență validă și verificată local.
- Poți re-verifica oricând licența locală cu autoritatea (din UI sau CLI) pentru a actualiza statusul.
Acest flux asigură că doar licențele validate de autoritate pot debloca aplicația, iar orice modificare locală este detectată și blocată.
Flux
- Clientul (comandă/Interfață): Trimite cheie + domeniu către autoritate
- Autoritatea (hearth.master-data.ro): Răspunde cu status (valid/pending/invalid) + semnătură
- Clientul: Verifică semnătura, salvează local fișierul de licență criptat
- Middleware: Verifică la fiecare request dacă licența este validă
- Aplicația Laravel: Permite acces doar dacă licența este validă
Flux simplificat:
Client → Autoritate → Client → Middleware → Aplicație
- Cerere licență → Răspuns semnat → Salvare locală → Enforcement → Acces
Detalii suplimentare
- Verificare periodică: Poți re-verifica licența oricând (din UI sau CLI) pentru a actualiza statusul fără a reinstala.
- Pending/În aprobare: Dacă autoritatea răspunde cu pending, aplicația va afișa statusul "În aprobare" și va bloca funcționalitatea până la aprobare.
- Securitate: Orice modificare manuală a fișierului de licență va fi detectată și va bloca accesul.
- Push automat: Autoritatea poate trimite licențe noi/actualizate direct către endpoint-ul clientului.
- Fără configurare la client: Pachetul este blocat; nu există
config/license-client.phpși nu se pot schimba endpoint-uri sau comportamente. Singurul lucru setabil este cheia de licență, introdusă din UI sau CLI. - Debug: Mesajele de la autoritate sunt afișate clar în UI pentru transparență.
Securitate / Security
- Licența este salvată local, criptată în mod implicit; nu sunt necesare parole sau variabile suplimentare.
- Cheia publică a autorității este preluată automat de la:
https://hearth.master-data.ro/keys/pem.
Notă enforcement
- Middleware-ul de enforcement nu poate fi dezactivat. Anumite rute sensibile (ex: health, JWKS, interfața de licență) sunt permise implicit de pachet.
Linkuri utile
© 2025 master-data.ro