Files
bi-agents/README.md
C. Cassel 39900c3fe8 Initial commit: BI Agentes platform
Independent dashboard for CambioReal agents with local SQLite auth
and read-only RDS connection. Features login, per-agent transaction
filtering, KPIs, charts (Chart.js), and detailed transaction table.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:47:07 -05:00

3.4 KiB

BI Agentes — CambioReal

Dashboard de transações para agentes CambioReal com autenticação local e dados ao vivo do RDS.

Arquitetura

┌─────────────────────────────────┐
│       BI Agentes (Express)      │
│                                 │
│  SQLite (auth)    Express/HTTP  │
│  agentes.db       :3080         │
│  email/senha      /login        │
│  agente_id        /dashboard    │
└───────────────────────┬─────────┘
                        │ READ-ONLY
                 ┌──────▼──────┐
                 │  cambio_db  │
                 │  (AWS RDS)  │
                 └─────────────┘
  • SQLite local — controle de agentes (email, senha bcrypt, agente_id). Sem dependência do RDS para autenticação.
  • MySQL RDS — somente leitura. Consulta br_transaction_to_usa (BRL→USD) e pagamento_br (USD→BRL) filtradas pelo agente_id da sessão.

Estrutura

bi-agentes/
├── server.js               ← Entry point (Express + sessions)
├── src/
│   ├── auth.js             ← Login/logout, bcrypt, middleware requireAuth
│   ├── db-local.js         ← SQLite (better-sqlite3) — tabela agentes
│   ├── db-rds.js           ← MySQL pool read-only (mysql2)
│   ├── queries.js          ← SQL parametrizado por agente_id
│   └── dashboard.js        ← Gerador HTML (KPIs, Chart.js, tabela)
├── public/
│   └── login.html          ← Tela de login
├── scripts/
│   └── seed-agente.js      ← CLI para cadastrar/listar agentes
├── data/
│   └── agentes.db          ← SQLite database (gerado automaticamente)
├── .env                    ← Credenciais RDS + SESSION_SECRET
└── .gitignore

Setup

npm install
cp .env.example .env   # editar com credenciais do RDS

Configuração (.env)

MYSQL_URL=<host-rds>
USER_MYSQL=<usuario-readonly>
PW_MYSQL=<senha>
SESSION_SECRET=<chave-secreta-sessao>
PORT=3080

Gerenciar Agentes

Cadastrar:

node scripts/seed-agente.js --email agente@email.com --senha 123456 --agente 76 --nome "ValorFx"

Listar:

node scripts/seed-agente.js --list

Rodar

node server.js
# BI Agentes rodando: http://localhost:3080

Para produção (intranet):

pm2 start server.js --name bi-agentes

Funcionalidades do Dashboard

  • Autenticação — cada agente loga com email/senha e vê apenas suas transações
  • KPIs — transações, volume BRL/USD, taxa média, spread, IOF, ticket médio, clientes ativos
  • Gráficos — volume por período (BRL+USD dual axis), volume por cliente (top 10), taxa cobrada vs PTAX
  • Tabela — todas as transações com data/hora, cliente, valores, IOF, taxas, spread, status
  • Filtros — período (de/até), granulação (dia/mês/ano), fluxo (BRL→USD / USD→BRL), cliente
  • Dados ao vivo — cada refresh consulta o RDS em tempo real
  • Dois fluxos — BRL→USD (br_transaction_to_usa) e USD→BRL (pagamento_br)

Stack

  • Node.js + Express
  • express-session (sessões em memória)
  • better-sqlite3 (auth local)
  • mysql2 (RDS read-only)
  • bcrypt (hash de senhas)
  • Chart.js 4.x (gráficos client-side via CDN)
  • Google Fonts Inter (tipografia via CDN)