Migração para PostgreSQL multi-driver + correções de segurança

- Camada de banco unificada (src/database.js): drivers Postgres/Firebird,
  tradutor de SQL, suporte a schema e pool de conexões
- Conexões: novo_local (Postgres externo) e firebird_local (legado)
- Tela de rotas da API redesenhada (auth, params, exemplos de body)
- Correções de segurança (críticos/altos/médios/baixos): XSS no chat,
  escalonamento de privilégio, mídia autenticada, SQL restrito a gerente,
  JWT sem fallback + issuer, IDOR em conversas, CORS por allowlist,
  rate-limit no login, limites de corpo por rota
- Deploy alinhado: install.sh grava .env com PG_*, migracoes.js driver-aware

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 10:02:59 -03:00
commit ae629d1dc2
50 changed files with 17137 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
/**
* Configuração de autenticação JWT
*/
const secret = process.env.JWT_SECRET;
// Segurança: sem segredo padrão. Se a variável não estiver definida, o boot
// falha de forma explícita — evita assinar tokens com um segredo previsível.
if (!secret) {
throw new Error(
'JWT_SECRET não definido. Configure JWT_SECRET no .env antes de iniciar o servidor ' +
'(não há segredo padrão por motivos de segurança).'
);
}
module.exports = {
secret: secret,
expiresIn: process.env.JWT_EXPIRES_IN || '8h',
issuer: 'chatc2-api',
};