.tpl). Las plantillas se renderizan en múltiples formatos de salida manteniendo la estructura del documento que usted define. El código fuente está disponible públicamente en GitHub.
| Formato de plantilla | Formato de salida |
|---|---|
.tpl estructurado como CSV | Archivo CSV |
.tpl estructurado como XML | Archivo XML |
.tpl estructurado como HTML | Archivo HTML o PDF |
.tpl estructurado como TXT | Archivo TXT |
Contexto de negocio
Los equipos de finanzas y cumplimiento dedican horas cada semana a extraer datos, formatear hojas de cálculo y preparar informes para reguladores como BACEN o para auditorías SOX. Reporter elimina ese trabajo repetitivo: conecta las fuentes de datos, aplica la lógica de la plantilla y entrega el informe listo — en CSV, XML, HTML, TXT o PDF.¿Por qué usar Reporter?
En lugar de escribir consultas SQL complejas, usted referencia dominios, tablas y campos a través de marcadores de posición intuitivos. Esto hace que la creación de reportes sea más rápida, flexible y fácil de mantener.
Cómo funciona
Flujo de trabajo
Reporter sigue un flujo de trabajo simple y eficiente que convierte sus plantillas en reportes listos para producción:- Envíe plantillas con filtros y parámetros opcionales
- Reporter obtiene los datos de las bases de datos configuradas (PostgreSQL, MongoDB)
- Se aplica la lógica de la plantilla (bucles, condiciones, cálculos)
- Se genera la salida final en el formato solicitado

Arquitectura
Reporter está construido sobre una arquitectura en capas que mantiene las responsabilidades claras y soporta el crecimiento:- Capa de datos: Se conecta a bases de datos a través de fuentes de datos configuradas. Soporta PostgreSQL y MongoDB, con consultas multi-esquema para PostgreSQL.
- Capa de lógica de negocio: Gestiona el análisis de plantillas, la resolución de marcadores de posición y el renderizado.
- Capa de almacenamiento: Almacena plantillas y reportes generados utilizando almacenamiento de objetos compatible con S3 (AWS S3, MinIO o SeaweedFS).
- Capa de presentación: Retorna la salida formateada a través de APIs RESTful.

Qué puede hacer
- Consultas dinámicas con marcadores de posición: Referencie cualquier punto de datos a través de rutas directas — sin necesidad de SQL.
- Soporte multi-esquema: Consulte tablas en múltiples esquemas de PostgreSQL desde una sola plantilla utilizando sintaxis de esquema explícita.
- Lógica de bucles y condiciones: Construya contenido dinámico con bucles
for, condicionalesif/elif/elsey bloques con alcance definido. - Operaciones matemáticas y agregación: Realice cálculos con
sum_by,avg_by,count_by,min_by,max_by,calcyaggregate_balance. - Seguimiento de contadores: Rastree y muestre contadores nombrados a lo largo de las iteraciones de la plantilla con
counterycounter_show. - Filtros de transformación de datos: Transforme valores en línea con
where,sum,count,replace,slice,strip_zerosypercent_of. - Procesamiento asíncrono: Los reportes pesados se manejan de forma asíncrona a través de una cola de mensajes.
- Almacenamiento compatible con S3: Las plantillas y reportes se almacenan en cualquier servicio compatible con S3 (AWS S3, MinIO, SeaweedFS).
- Múltiples formatos de salida: Genere salida en CSV, XML, HTML, TXT o PDF desde un único motor de plantillas.
Modelo de plantilla
Reporter utiliza plantillas que reflejan la estructura del documento final. Los archivos deben tener la extensión
.tpl independientemente del formato de contenido interno.
Aunque el contenido del archivo debe seguir el formato de salida, asegúrese de guardarlo con la extensión
.tpl. Esto es necesario para que la plantilla funcione correctamente.Configuración de sus fuentes de datos
Antes de generar reportes, necesita configurar las conexiones de base de datos que Reporter utilizará para obtener datos. Reporter se conecta a sus bases de datos a través de fuentes de datos administradas, configuradas mediante la API de conexiones de base de datos. Cada fuente de datos representa una conexión de base de datos identificada por un nombre único (
configName), que luego se utiliza al definir marcadores de posición y filtros en sus plantillas. A través de la API de conexiones, puede:
- Registrar una o más bases de datos (PostgreSQL o MongoDB)
- Probar la conectividad antes de ejecutar reportes
- Validar campos de plantillas contra el esquema real de su base de datos
Nomenclatura recomendada
Para evitar conflictos — especialmente cuando diferentes bases de datos contienen tablas con los mismos nombres — utilice identificadores claros y descriptivos. Por ejemplo:midaz_onboarding(PostgreSQL)midaz_onboarding_metadata(MongoDB)
Validación de esquema
Cuando crea o actualiza una plantilla, Reporter valida que los campos referenciados en sus marcadores de posición existan en las fuentes de datos configuradas. Si una fuente de datos no está disponible temporalmente durante la validación, Reporter devuelve advertencias (no errores), permitiéndole continuar con la creación de la plantilla.Los campos válidos se confirman contra el esquema real de la base de datos. Las fuentes de datos no disponibles generan una advertencia con el código
DATA_SOURCE_DOWN, no un error bloqueante. Puede solucionar problemas de conectividad más tarde sin perder su trabajo en la plantilla.Uso de marcadores de posición
La estructura de los marcadores de posición sigue una sintaxis basada en rutas:
Marcadores de posición multi-esquema
Cuando su fuente de datos PostgreSQL tiene múltiples esquemas, use la sintaxis de esquema explícita para evitar ambigüedades:Si un nombre de tabla existe en un solo esquema, la sintaxis anterior
{{ base.table.field }} aún funciona — Reporter descubre automáticamente el esquema correcto. Si una tabla existe en múltiples esquemas, Reporter utiliza por defecto el esquema public. Si la tabla no está en public, Reporter retorna un error con sugerencias:Referencia de plantillas y marcadores de posición
Reporter incluye un amplio conjunto de tags de plantilla para agregación (
sum_by, avg_by, count_by, min_by, max_by), aritmética (calc), agrupación financiera (aggregate_balance), contadores y formato de fecha/hora. También proporciona filtros para manipulación de cadenas, cálculo de porcentajes y operaciones con arreglos.
Para la referencia completa, consulte Referencia de plantillas.
Para filtrado avanzado de reportes con operadores como eq, gt, between, in y más, consulte la sección de Filtrado avanzado.
¿Necesita inspiración?
Consulte la página de Ejemplos de plantillas para explorar lo que puede hacer y comenzar a diseñar su propia plantilla.
Autenticación y autorización
Reporter no requiere autenticación por defecto, pero se desarrolla con integración nativa al Access Manager. Cuando está habilitado, Access Manager proporciona control de acceso basado en roles (RBAC) para plantillas, reportes y fuentes de datos — ofreciendo control granular sobre quién puede ver, crear o gestionar recursos de reportes.
Próximos pasos
Explorar la API de Reporter
Consulte endpoints para templates, reportes y fuentes de datos.
Usando Reporter
Aprenda a crear y enviar su primera plantilla de reporte.

