Overview · MemphisLab Docs
MemphisLab Docs
License Manager

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, guard admin)
  • Arquitetura modular via internachi/modular — cada domínio de negócio (access, canary, license, oauth, recovery, tenancy) vive em app-modules/<nome> como pacote Composer local. Como isso funciona e como o RBAC é derivado automaticamente do painel: modular-architecture
  • PostgreSQL
  • laravel/sanctum para emissão de tokens de API — ver authentication
  • spatie/laravel-permission como base do módulo access (RBAC) — ver modular-architecture
  • laravel/nightwatch como 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.