License Server
Representar o ciclo de uma licença com regras explícitas.
Regras de ativação, expiração e revogação foram inspecionadas. Estado ainda está em memória; não há demonstração de persistência ou operação comercial em produção.
Problema e contrato do serviço
License Server explora uma API para ativar, validar e revogar licenças de software. O foco é representar estados e motivos de recusa de forma que um cliente consiga distinguir chave inexistente, expiração e vínculo com outra máquina.
FastAPI expõe operações HTTP e Pydantic modela requisições e respostas. O serviço é um projeto pessoal de contrato e regras de negócio; não uma infraestrutura de licenciamento comercial comprovada.
Ativação e vínculo com máquina
A ativação procura a chave por hash, verifica estado e expiração, compara a máquina e aplica regras de quantidade de ativações. A resposta informa sucesso, motivo, identificador e validade quando disponíveis.
O código associa a licença à identificação fornecida pelo cliente. Isso é uma regra de vínculo, não prova de identidade física da máquina nem proteção completa contra fraude; a integridade do identificador depende do protocolo do cliente.
Validação, expiração e revogação
A validação distingue licenças ativas, revogadas, expiradas e ainda não ativadas. Timestamps com timezone permitem comparar validade em UTC. Revogação é uma operação administrativa diferente da consulta feita pelo cliente.
Estados explícitos tornam erros explicáveis. Ainda é necessário testar reativações e concorrência: o contador de ativações pode ser atualizado em chamadas repetidas, e o protocolo precisa definir claramente o que conta como nova ativação.
Dados e limites de persistência
Chaves iniciais vêm da configuração e são representadas com hash SHA3-256. Registros de execução e alterações permanecem em estruturas de memória; funções de load/save organizam esse estado dentro do processo.
Não há banco persistente neste caminho. Um restart pode perder ativações e revogações realizadas em memória. Evoluir para armazenamento transacional é necessário antes de depender do serviço para decisões duráveis de acesso.
Administração e superfície de segurança
Dependências FastAPI protegem operações administrativas com uma chave de configuração enviada em header. Listagem e estatísticas oferecem uma visão do estado sem devolver a chave original da licença.
A implementação ainda precisa de política de CORS, controle de tentativas, autenticação administrativa mais robusta e minimização de dados. Hash de chave não é assinatura digital de licença nem criptografia de todo o estado.
Competências e próximos passos
O projeto demonstra modelagem de estados, validação de payloads, separação entre operações de cliente e admin e tratamento de expiração. Health checks completam a superfície de diagnóstico.
A revisão verificou o código sem ativar licenças. Os próximos passos são persistência, idempotência, testes de regras e concorrência e revisão do vínculo de máquina, antes de uma operação comercial.
Repositórios privados. Resumos autorizados; o código-fonte não é distribuído aqui.