Skip to main content

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,0006,100sats0,0006, 100 sats ≈ 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

O adaptador de replay padrão é apenas em memória — ele é redefinido a cada reinicialização do processo e não funciona em múltiplas instâncias de servidor. Em produção com mais de um processo (workers do Gunicorn, pods do Kubernetes, cluster PM2), o mesmo preimage pode ser aceito duas vezes.Correção: Defina SUPABASE_URL + SUPABASE_ANON_KEY no seu ambiente. O middleware usará automaticamente o Supabase como armazenamento de replay, que é compartilhado entre todas as instâncias.Para Redis: passe um RedisReplayAdapter explicitamente (consulte o SDK TypeScript ou o SDK Python).

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:
A extensão do VS Code exibe isso como um painel de Zona de Perigo na parte inferior do painel — os usuários devem digitar seu endereço Lightning para confirmar, e então todo o histórico de pagamentos e acesso Pro são apagados. A operação usa a chave de serviço do Supabase no lado do servidor; a chave anon não tem permissão de DELETE.

Tratamento de erros

Capture erros do provedor antes que eles apareçam como erros 500 não formatados:
Regras gerais:
  • 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 retryAfter ao chamador.
Consulte a Referência de Erros para a lista completa de códigos de erro estruturados.

Limitação de taxa

Cada requisição não autenticada aciona createInvoice() 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.
Para FastAPI:

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 provedorblink.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 Set em memória — para implantações com múltiplas instâncias, substitua por Redis