ODocumentation Index
Fetch the complete documentation index at: https://zapo.to/llms.txt
Use this file to discover all available pages before exploring further.
zapo foi feito para cargas de trabalho longevas e multi-sessão. Esta página reúne as decisões operacionais que importam quando você passa do protótipo local.
Persista as credenciais (não refaça o pareamento)
Sessões de produção precisam usar uma store durável para os domíniosauth e Signal, além de um sessionId estável entre reinícios. A store em memória perde tudo ao sair, forçando um novo pareamento a cada boot.
sessionId deixa as credenciais anteriores órfãs — trate-o como a chave durável de um dispositivo/conta.
Escolha um backend de store
| Backend | Melhor para |
|---|---|
@zapo-js/store-sqlite | Processo único / host único — a opção local mais simples e rápida. |
@zapo-js/store-postgres · @zapo-js/store-mysql | Múltiplos hosts, operações relacionais, backups gerenciados. |
@zapo-js/store-redis | Cache de baixa latência + persistência. |
@zapo-js/store-mongo | Deployments orientados a documentos. |
auth/signal no Postgres, caches no Redis). Veja Instalação e a referência de stores.
Shutdown gracioso
Chamedisconnect() (nunca logout()) no shutdown — ele descarrega os dados pendentes de write-behind e fecha o socket sem desvincular o dispositivo, então o próximo boot retoma a partir da store.
Rode muitas sessões
Uma única store pode conter muitas contas independentes, cada uma indexada porsessionId. Crie um WaClient por conta:
Ajuste para throughput
- Write-behind agrupa as escritas de mensagens/threads/contatos fora do hot path. Ajuste
writeBehind.maxPendingKeys/maxWriteConcurrency/flushTimeoutMsao seu banco. (config) - History sync (
history.enabled) adiciona um download inicial grande. Deixe desligado a menos que precise de backfill, e userequireFullSyncdeliberadamente. - Bots que não devem aparecer online: defina
markOnlineOnConnect: false. - Timeouts (
iqTimeoutMs,keepAliveIntervalMs,deadSocketTimeoutMs, …) vêm com padrões de produção — sobrescreva só com motivo. (config)
Política de reconexão & erros
Ozapo não reconecta sozinho — assuma a política. Ligue um loop de backoff (Reconexão) e classifique as falhas (Erros & desconexões) para parar em razões fatais (banned, not_authorized, logout) em vez de martelar o servidor.
Logging
Use um logger estruturado em produção:pretty: false emite linhas JSON adequadas a agregadores de log. Caia para debug / trace só ao investigar.
Segurança & versionamento
- Credenciais são segredos.
WaAuthCredentialscontém as chaves do dispositivo — se você as persistir fora da store embutida, criptografe em repouso. (Autenticação) - Nunca habilite
dangerous.*em produção — essas flags desabilitam verificações de segurança. (config) - Fixe versões exatas. O
zapoé pré-1.0; breaking changes são esperadas até o primeiro release maior.
