Lista de verificação pré-lançamento
Execute esta lista antes de ir ao ar. Cada item tem um link para a seção relevante abaixo.1
Proteção contra replay configurada para múltiplas instâncias
O adaptador padrão é apenas em memória. Se você executar mais de um processo (workers do Gunicorn, cluster PM2, Kubernetes), defina
SUPABASE_URL + SUPABASE_ANON_KEY ou use RedisReplayAdapter. Detalhes →2
Variáveis de ambiente no gerenciador de segredos
Nunca codifique chaves de API diretamente. Use
.env localmente e o gerenciador de segredos em produção. Detalhes →3
Endpoint de verificação de saúde existente
Os pings de monitoramento não devem acionar a criação de faturas. Adicione uma rota
/health antes das suas rotas pagas. Detalhes →4
Respostas de erro não expõem informações internas
Capture erros do provedor e retorne um 503 limpo — não um rastreamento de pilha. Detalhes →
5
O preço é intencional
priceSats deve refletir valor real. Com 1 sat ≈ 0,06 para um endpoint premium é razoável. Não defina como 0 por acidente.6
Monitoramento de disponibilidade no endpoint da fatura
Monitore a resposta 402 (é uma resposta normal, não um erro). Ferramentas como UptimeRobot suportam expectativas de código de status personalizadas.
7
Limitação de taxa na criação de faturas
Cada requisição não autenticada cria uma fatura Lightning. Sem limitação de taxa, um invasor pode esgotar a cota de faturas do seu provedor gratuitamente. Adicione
express-rate-limit antes de implantar publicamente. Detalhes →Crítico: proteção contra replay em produção
Variáveis de ambiente
Nunca codifique chaves diretamente. Sempre use variáveis de ambiente:Registro de pagamentos (Supabase)
Registre cada pagamento no Supabase para o painel da extensão do VS Code e análises:Implantação no Cloudflare Workers
A API l402-kit funciona no Cloudflare Workers (isolados V8, zero cold start). O armazenamento de replay em memória é redefinido por isolado — para APIs de alto tráfego, use o Cloudflare KV ou Durable Objects para proteção contra replay.Docker
Exclusão de dados do usuário
Exponha um endpoint de exclusão para que os usuários possam remover permanentemente seus dados. O backend do l402-kit inclui/api/delete-data por padrão:
Tratamento de erros
Capture erros do provedor antes que eles apareçam como erros 500 não formatados:- Nunca retorne rastreamentos de pilha aos clientes — registre-os no lado do servidor.
- Timeouts do provedor (503) são transitórios — é seguro tentar novamente com backoff.
- Erros de token (401) nunca são transitórios — não tente novamente automaticamente, exija uma nova fatura.
- Erros de limite de taxa (429) — exponha o campo
retryAfterao chamador.
Limitação de taxa
Cada requisição não autenticada acionacreateInvoice() no seu provedor Lightning. Sem limitação de taxa, qualquer pessoa pode inundar seu endpoint e esgotar a cota de API do seu provedor gratuitamente — mesmo sem pagar um único sat.
Adicione express-rate-limit antes das suas rotas L402:
Clientes que já pagam são ignorados pela função
skip — o limite se aplica apenas a chamadas não autenticadas que acionam uma nova fatura. Pagadores legítimos nunca são limitados.Endpoint de verificação de saúde
Sempre adicione uma verificação de saúde gratuita para que as ferramentas de monitoramento não acionem a criação de faturas:Monitoramento
Métricas principais para acompanhar:- Taxa de resposta 402 — a linha de base saudável é alta (a maioria dos chamadores precisa pagar)
- Taxa de verificação de pagamento — proporção de chamadas pagas vs não pagas
- Latência do provedor —
blink.createInvoice()deve ser < 500ms - Tentativas de replay — um pico indica ataques de reutilização de token
Desempenho
- A verificação de token é O(1) — criptografia pura, sem banco de dados, sem rede
- A criação de faturas (caminho 402) chama a API do seu provedor Lightning — adicione um cache se você espera que o mesmo endpoint seja acessado repetidamente antes do pagamento
- O armazenamento de replay é um
Setem memória — para implantações com múltiplas instâncias, substitua por Redis