Relatórios — reports
Ferramenta para montar relatórios e integrar dados: conecta-se a bancos externos, executa consultas e gera o resultado como relatório, JSON ou CSV. Atende várias contas.
Stack
| Item | Tecnologia |
|---|---|
| Linguagem | Ruby 4.0.2 |
| Framework | Rails 8.1 |
| Banco | PostgreSQL |
| Autenticação | Devise + devise_invitable (convite) + JWT |
| Front-end | esbuild + Bootstrap + ApexCharts |
| Testes | Minitest (test/) |
Modelos centrais
account (conta) e troca de conta (account_switches), database_connection
(conexão com banco externo), data_source (fonte de dados), query (consulta),
report (relatório), configuration, credential e user.
Como funciona
Um relatório é descrito por uma configuração (JSON): tipo de bloco, fonte de dados, colunas, renomeação, formatação e funções de agregação.
[
{
"tipo": "tabela",
"fonte_dados": "1",
"titulo": "Lista de pessoas",
"colunas": ["id", "name", "birthdate", "valor"],
"renomear_colunas": { "name": "Nome", "valor": "Custo diário" },
"formatar_colunas": { "birthdate": "data", "valor": "moeda" },
"funcoes": { "total_linhas": "sim", "somatorio": ["valor"], "media": ["valor"] }
}
]
A consulta é vinculada a uma conexão de banco e executada sob demanda; o resultado é disponibilizado por links (JSON/CSV) protegidos e pode ser embutido em relatórios com tabelas e gráficos.
Acesso e contas
Cadastro por convite e recuperação de senha (Devise + devise_invitable). O acesso é multiconta, com troca de conta sem precisar relogar.
Como rodar
docker-compose.yml e Dockerfile.dev disponíveis; build do front via esbuild
(yarn build / yarn build:css).