Overview
O que o license-manager faz e como se encaixa nos outros serviços
Backoffice Laravel para licenciamento de software. Cadastra clientes (tenants), planos (LicenseCategory), produtos e emite licenças. Autentica os softwares clientes via OAuth2 client_credentials, usando um serial (SerialKey) como par client_id/client_secret, e devolve um snapshot da licença (status, produtos habilitados, limites, feature flags) para quem apresentar um token válido — mecanismo completo em authentication.
Stack
- PHP 8.4, Laravel 13
- Filament 5.6 — painel admin (
/admin, guardadmin) - Arquitetura modular via
internachi/modular— cada domínio de negócio (access,canary,license,oauth,recovery,tenancy) vive emapp-modules/<nome>como pacote Composer local. Como isso funciona e como o RBAC é derivado automaticamente do painel: modular-architecture - PostgreSQL
laravel/sanctumpara emissão de tokens de API — ver authenticationspatie/laravel-permissioncomo base do móduloaccess(RBAC) — ver modular-architecturelaravel/nightwatchcomo sidecar de observability
Relação com outros serviços
O checklist-mobile consome a API deste serviço diretamente hoje: autentica em POST /api/v1/oauth/token com o serial do cliente e consulta GET /api/v1/license para saber quais módulos estão liberados. Essa integração é direta — não passa por nenhum serviço intermediário.
O key-service vai assumir esse papel de intermediário no futuro: os softwares instalados no cliente vão falar só com ele, e o license-manager deixa de expor API para o software final. Essa mudança ainda não foi implementada — hoje o license-manager continua respondendo diretamente aos clientes.