Saltar al contenido principal
Las instituciones financieras generan reportes constantemente — para reguladores, auditorías internas y decisiones de negocio. Hacerlo manualmente consume tiempo, genera errores y no escala. Reporter automatiza la generación de reportes financieros y regulatorios. Configura una plantilla una vez y Reporter genera el informe en el formato que necesites, con los datos más recientes, listo para auditoría o presentación. Es el motor de reportes source-available de Lerian que permite a los equipos generar reportes dinámicos a través de plantillas de texto plano (archivos .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 plantillaFormato de salida
.tpl estructurado como CSVArchivo CSV
.tpl estructurado como XMLArchivo XML
.tpl estructurado como HTMLArchivo HTML o PDF
.tpl estructurado como TXTArchivo 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:
  1. Envíe plantillas con filtros y parámetros opcionales
  2. Reporter obtiene los datos de las bases de datos configuradas (PostgreSQL, MongoDB)
  3. Se aplica la lógica de la plantilla (bucles, condiciones, cálculos)
  4. Se genera la salida final en el formato solicitado
Flujo de trabajo de Reporter mostrando el proceso desde la plantilla hasta el reporte renderizado

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.
Capas de arquitectura de Reporter mostrando la estructura de componentes

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, condicionales if/elif/else y bloques con alcance definido.
  • Operaciones matemáticas y agregación: Realice cálculos con sum_by, avg_by, count_by, min_by, max_by, calc y aggregate_balance.
  • Seguimiento de contadores: Rastree y muestre contadores nombrados a lo largo de las iteraciones de la plantilla con counter y counter_show.
  • Filtros de transformación de datos: Transforme valores en línea con where, sum, count, replace, slice, strip_zeros y percent_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.
Para opciones de configuración detalladas, incluyendo variables de entorno y configuración multi-esquema, consulte Usando Reporter — Configuración de fuentes de datos externas.

Uso de marcadores de posición


La estructura de los marcadores de posición sigue una sintaxis basada en rutas:
{{ base.table_or_collection.field_or_document }}
Esto funciona tanto para bases de datos SQL (tablas y campos) como para MongoDB (colecciones y documentos).

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:
{{ base:schema.table.field }}
Por ejemplo:
{{ external_db:sales.orders.total }}
{{ external_db:inventory.items.quantity }}
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:
ambiguous table reference: 'db.orders' exists in multiple schemas: [sales, shipping]
Please use explicit schema syntax:
  {{ db:sales.orders }}
  {{ db:shipping.orders }}

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.
Access Manager es una funcionalidad opcional disponible en el modelo Enterprise. Para detalles sobre cómo habilitarlo, consulta la documentación de Access Manager.

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.