Pular para o conteúdo principal

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

ItemTecnologia
LinguagemRuby 4.0.2
FrameworkRails 8.1
BancoPostgreSQL
AutenticaçãoDevise + devise_invitable (convite) + JWT
Front-endesbuild + Bootstrap + ApexCharts
TestesMinitest (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).