iv_ ← Todos os projetosEN ↗
Experimentos — Contratos de API / Projeto pessoal · em desenvolvimento

License Server

Representar o ciclo de uma licença com regras explícitas.

PythonFastAPIPydanticSHA3-256REST APIsUTCUvicorn
ENGENHARIA / EVIDÊNCIASImplementação inspecionada

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.

01Chave
02ativação
03vínculo com máquina
04validação
05expiração ou revogação
01

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.

02

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.

03

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.

04

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.

05

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.

06

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.