datasette-ip-rate-limit 0.1a0: Plugin de Controle de Requisições por IP
Controlando Crawlers Agressivos no Datasette
O site datasette.io enfrentava um problema recorrente: crawlers mal comportados martelando a plataforma, sobrecarregando servidores com requisições excessivas em áreas específicas. Para resolver isso de forma elegante e configurável, Simon Willison aproveitou o poder da IA para construir uma solução sob medida: o datasette-ip-rate-limit, um plugin que faz exatamente o que o nome sugere — limita requisições com base no endereço IP do cliente.
Como Funciona o Plugin
Ao invés de bloquear IPs globalmente, o plugin oferece controle granular. Você define regras específicas por área do site, especificando quantas requisições são permitidas em um determinado período de tempo. Quando um IP ultrapassa o limite em uma rota protegida, é automaticamente bloqueado por um período configurável. A abordagem é inteligente: o plugin suporta até 10 mil IPs em cache, otimizando performance mesmo em alta escala.
A configuração é flexível. No caso de datasette.io, as rotas estáticas (/static/*) e os endpoints de verificação (/-/turnstile*) foram isentados do limite — uma escolha comum para não prejudicar o funcionamento legítimo do site. Para as seções críticas como /global-power-plants/* e /legislators/*, o plugin permite 60 requisições a cada 60 segundos por IP, bloqueando por 20 segundos quem extrapolar.
Prático e Pronto para Produção
O lançamento da versão 0.1a0 marca um passo importante: o plugin já está em uso em produção no próprio datasette.io, provando sua eficácia. Para desenvolvedores que enfrentam problemas similares com Datasette, é uma solução pronta para usar — não é necessário reinventar a roda ou depender de serviços externos de proteção. A configuração em YAML é intuitiva, permitindo ajustes rápidos conforme novas ameaças apareçam.
Este é um bom exemplo de como ferramentas de IA podem acelerar a prototipagem de soluções operacionais. Willison utilizou a IA para transformar um problema específico em um plugin reutilizável, que agora fica disponível para toda a comunidade Datasette.
Baseado no artigo original de simon_willison — ver fonte