Overview · MemphisLab Docs
MemphisLab Docs
Key Service

Overview

Arquitetura planejada para o serviço de ativação e emissão de licença

Ainda não implementado. Esta página descreve o design alvo, não um serviço em produção. Hoje o checklist-mobile fala diretamente com o license-manager — é essa comunicação direta que o key-service vai substituir quando for construído.

Problema que resolve

Toda aplicação da empresa (ERP, frota, gestão de pneus, e o que vier depois) precisa validar se o cliente que a está rodando tem direito de usar aquele software, em qual plano, e com quais limites. Sem um serviço central para isso, cada software reimplementa autenticação de licença do zero, e cada implementação vira uma superfície de fraude diferente.

Separação de responsabilidades

Duas peças, papéis diferentes:

  • license-manager (Laravel) — backoffice, fonte da verdade de negócio: quem é o cliente, qual plano ele comprou, quais produtos ele tem direito, cadastro de catálogo. Tem painel. No estado alvo, deixa de expor API para o software do cliente em produção — só fala com o key-service.
  • key-service (Go) — único ponto de contato dos softwares instalados no cliente. Emite voucher, ativa certificado, entrega o token de licença, revoga quando preciso. O license-manager avisa o key-service quando um cliente é criado ou um produto é vinculado; a partir daí o key-service atende esse cliente sozinho.

O software instalado no cliente nunca fala com o license-manager. Fala só com o key-service. Mecanismo de ativação e PKI em pki-and-activation; formato do token e propagação de evento em tokens-and-events.

Por que qualquer software pode usar o mesmo serviço

O mecanismo de autenticação (certificado + token) não precisa saber o que está rodando do outro lado. Resolve só duas perguntas: esse cliente é quem diz ser, e o que esse cliente tem direito de usar.

A resposta da segunda pergunta vem de um catálogo cadastrável, não de um tipo de aplicação embutido no código:

  • Software — cadastrado no catálogo (erp, frota, gestão de pneus, o próximo).
  • Plano — preset de entitlements e limites. Tier e plano são a mesma entidade.
  • Entitlement — cada capacidade interna de um software (ex.: no frota, “caminhões”, “implementos”, “alertas”) é uma chave de entitlement. A lógica de “o que essa tela mostra” fica do lado do software; o key-service só entrega os fatos.
  • Limite — catálogo de tipos de limite, hierarquia de um nível só. Sem billing por consumo na v1: o software se autofiscaliza pelo teto que vem no token.

Instalar “ERP versão básica” ou “ERP versão completa” é o mesmo software com planos diferentes, não dois builds diferentes. Quando um software novo entra no catálogo, não precisa de mudança no key-service — só cadastro de software, plano e entitlements no license-manager.