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

110 lines
3.4 KiB
Markdown

# 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
```bash
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:
```bash
node scripts/seed-agente.js --email agente@email.com --senha 123456 --agente 76 --nome "ValorFx"
```
Listar:
```bash
node scripts/seed-agente.js --list
```
## Rodar
```bash
node server.js
# BI Agentes rodando: http://localhost:3080
```
Para produção (intranet):
```bash
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)