Documentation Index
Fetch the complete documentation index at: https://docs.patrimonion.com.br/llms.txt
Use this file to discover all available pages before exploring further.
Stack do servidor
| Componente | Tecnologia | Versão mínima |
|---|---|---|
| Runtime | Node.js | 18+ |
| Framework | Express | 4.x |
| Banco | Firestore (Firebase) | — |
| Storage | MinIO (S3-compatible) | — |
| Auth | Firebase Auth | — |
| Logs | Pino + pino-http | — |
| Segurança | Helmet + CORS | — |
Variáveis de ambiente
Crie um arquivo.env na raiz do backend. Todas as variáveis sem valor padrão indicado são obrigatórias para a funcionalidade correspondente.
Notas por grupo
Sessão —SESSION_COOKIE_NAME e SESSION_EXPIRES_DAYS controlam o cookie de autenticação do frontend. O padrão imob_session com 5 dias é adequado para produção.
CRON_SECRET — qualquer string aleatória e longa serve (ex: resultado de openssl rand -hex 32). Ela é comparada literalmente com o header Authorization: Bearer <CRON_SECRET> no endpoint do cron.
MinIO — os dois buckets são independentes e devem ser criados manualmente no MinIO antes de iniciar o servidor. O bucket de fotos (MINIO_BUCKET_FOTOS) deve ter política de leitura pública configurada no console do MinIO.
Brevo — BREVO_API_KEY é a chave global usada pelo SUPER_ADMIN. Cada locador pode configurar sua própria chave em Configurações > Notificações, que sobrescreve a global para os disparos daquele tenant.
Evolution API — necessário apenas se o canal evolutionAtivo estiver habilitado nas configurações de notificação. A instância por usuário é criada automaticamente com o nome imob_{userId} via POST /configuracoes/whatsapp/gerar-qr.
Middlewares globais
Os middlewares são aplicados nesta ordem em todas as requisições:Rotas registradas
| Prefixo | Módulo |
|---|---|
/auth | Autenticação |
/imoveis | Imóveis |
/locatarios | Locatários |
/contratos | Contratos |
/financeiro | Financeiro |
/recibos | Recibos |
/inspecoes | Inspeções |
/inventario | Inventário |
/upload | Upload (MinIO) |
/notificacoes | Notificações |
/configuracoes | Configurações |
Health check
Endpoint público para monitoramento. Não requer autenticação.Resposta 200
Tratamento de erros global
Erros não capturados pelos handlers de rota chegam ao middleware global, que:- Loga o erro com
pinoincluindo método e URL - Retorna
400para JSON malformado (entity.parse.failed) - Retorna
500para qualquer outro erro inesperado
Logs
A stack usa Pino para logs estruturados em JSON. Em desenvolvimento, opino-pretty formata a saída com cores no terminal.
LOG_LEVEL (padrão: info). Valores válidos: trace, debug, info, warn, error, fatal.