Segurança e limites
O botai serve é para testes, scripts e back-end, numa máquina ou numa rede de teste. Ele não é um serviço para expor nem para o front-end chamar.
Sem CORS, TLS nem autenticação
- Sem CORS. O servidor não manda cabeçalho de CORS. Um front-end de outra origem que chame por
fetchrecebe "Failed to fetch" (provado no Chromium). Chame o servidor do seu back-end, do teste ou do script. - Sem TLS. Só
http://. - Sem autenticação. Quem alcança a porta, chama.
Para preencher uma página no navegador, quem chama o servidor é o teste, não a página: a pessoa vai como argumento para o motor (veja O IIFE).
Quem alcança o servidor
- Por padrão, o servidor escuta só em
127.0.0.1, em IPv4. Pedidos para[::1]ou para o IP da máquina na rede local são recusados. Um cliente que tente só::1falha: escreva127.0.0.1na URL. --host 0.0.0.0abre o servidor à rede. Sem autenticação, qualquer máquina que alcance a porta gera pessoas nele. Use só numa rede de teste. A imagem Docker escuta em0.0.0.0dentro do contêiner, e o-pdodocker rundecide a porta de fora (veja Imagem Docker).
Só GET
HEAD e OPTIONS dão 405, com o cabeçalho Allow: GET. Um health check que use HEAD marca o serviço como fora do ar. Use GET /saude, como faz o HEALTHCHECK da imagem.
curl -sS -o /dev/null -w '%{http_code}\n' -I http://127.0.0.1:8790/saude
405
O /saude ignora parâmetros que não conhece. O /pessoa e o /pessoas respondem 400 a eles.
Tamanho de cada requisição
- O
nvai de 1 a 10 000 por requisição. Para um lote maior, use a CLI ou a biblioteca, que vão até 100 000. A unicidade de e-mail, CPF e CNPJ vale só dentro do mesmo lote: duas requisições são dois lotes. - O servidor monta o corpo inteiro em memória, sem streaming. Uma requisição grande trava as outras enquanto é montada: o
/saudelevou 184 ms durante um pedido comn=10000, contra 0,1 ms sozinho (medido em 2026-10-08, macOS arm64, Node 22.22.3).
Números
Medidos em 2026-10-08, num macOS arm64 com Node 22.22.3. A máquina era compartilhada, então há variação.
| Medida | Valor |
|---|---|
10 000 pessoas em JSON por /pessoas | 16,98 MB, em 0,20 a 0,32 s |
GET /pessoa em sequência, localhost | cerca de 4 500 req/s (medição única) |
/saude sozinho | 0,1 ms |
/saude durante um n=10000 | 184 ms |
Os outros números estão em Números.
Os dados
O CPF, o CNPJ e o celular gerados podem pertencer a uma pessoa real, e a caixa de e-mail padrão é pública: quem souber o endereço lê. Use só em localhost e em staging, nunca para criar conta real. Com dominioEmail, o e-mail vai para o seu domínio e a caixaUrl vira null. Mais em Uso responsável.