PostgreSQL externo
Conecte ao PostgreSQL próprio da sua empresa (CRM custom, ERP legado, data warehouse) e leia dados nos apps.
Pré-requisito
- Acesso de rede ao PostgreSQL (firewall liberado pra IP do BeaDev: 2.24.208.73)
- Usuário read-only (recomendado)
- String de conexão completa
Configurar
App → Integrações → PostgreSQL externo:
- Connection String:
postgresql://usuario:senha@host.empresa.com:5432/nome_do_banco
Usar
const { rows, columns, rowCount, truncated } = await integrations.pgExternal.query(
"SELECT id, nome, cnpj FROM clientes WHERE status = $1 LIMIT 100",
["ativo"]
);
// rows: Array<{ id, nome, cnpj }>
// truncated: true se passou de 10k linhas
Use $1, $2, ... pra parâmetros (sintaxe PostgreSQL). Nunca concatene valores no SQL.
Read-only enforcement
A integração bloqueia INSERT/UPDATE/DELETE/DDL no servidor:
- ✅ SELECT, WITH, SHOW, EXPLAIN
- ❌ INSERT, UPDATE, DELETE, CREATE, DROP, ALTER
Tentar escrever retorna erro "Comando bloqueado".
Limites
- Query timeout: 10s
- Row limit: 10.000 linhas (
truncated: truese exceder) - Max query length: 50KB
- SSL: tentado primeiro (
prefer); fallback pra plain se servidor não suportar
Casos de uso
- Dashboard puxando KPI do DW
- Busca de cliente em CRM legado
- Cruzamento de dados próprio + ERP
- Relatório custom
Diferença vs Bea.db
| Bea.db | pgExternal | |
|---|---|---|
| Banco | do app (BeaDev) | da empresa |
| Read | ✓ | ✓ |
| Write | ✓ | ❌ |
| Schema | criado pelo app | já existe |