Skip to main content
Usa esta guía para el flujo recurrente de Reporter: gestionar una plantilla, generar un informe, verificar el resultado y descargar el archivo terminado.

Requisitos previos

Antes de comenzar, comprueba lo siguiente:
  • Reporter está en ejecución y puedes autenticarte en su API.
  • Un operador configuró al menos una fuente para los datos que consulta tu plantilla.
  • Tienes un archivo .tpl que corresponde al formato de salida esperado. Para la salida PDF, crea la plantilla como HTML. Consulta los ejemplos de plantillas y la referencia de plantillas.

Gestionar plantillas

Reporter usa archivos .tpl cargados para definir el contenido y la presentación de los informes.

Cargar una plantilla

Llama a Cargar una plantilla mediante una solicitud multipart con los tres campos obligatorios:
  • template: el archivo .tpl.
  • outputFormat: el formato del archivo generado, como HTML, PDF, XML, CSV o TXT.
  • description: una descripción legible de la plantilla.
Reporter devuelve el identificador de la plantilla que usarás para generar informes.

Mantener plantillas existentes

Usa los endpoints de plantillas para: Eliminar una plantilla es una eliminación lógica. Reporter la excluye de las consultas estándar, pero conserva los informes creados a partir de ella.

Generar un informe con filtros

Llama a Crear un informe con los dos campos obligatorios:
  • templateId: el identificador devuelto al cargar la plantilla.
  • filters: las condiciones agrupadas por fuente de datos, tabla y campo.
La siguiente solicitud limita el informe a una transacción:
Para generar un informe sin filtrar filas, envía un objeto vacío. No omitas el campo:
Reporter devuelve el identificador del informe en el campo id. Guarda este valor como REPORT_ID para consultar el estado de generación y recuperar el resultado. Consulta Filtrado avanzado para conocer los operadores compatibles y la estructura de los filtros.

Descubrir esquemas de fuentes de datos

Examina las fuentes configuradas antes de crear plantillas o interfaces de filtros dinámicos:
  • Listar fuentes de datos devuelve una página de conexiones registradas sin credenciales.
  • Obtener una fuente de datos devuelve la configuración de una conexión por dataSourceId; las credenciales permanecen ocultas.
  • GET /v1/data-sources/{dataSourceId}/schema examina las tablas o colecciones activas y sus campos tipados.
La API gestiona todo el ciclo de vida del registro: crea una fuente, actualízala parcialmente, prueba la conexión, examina su esquema o elimínala de forma lógica. Reporter rechaza la eliminación mientras una plantilla activa siga usando la fuente. Los despliegues de tenant único también pueden sembrar entradas desde variables DATASOURCE_* al arrancar; los despliegues multi-tenant crean las entradas por tenant mediante la API.

Interpretar estados y errores

Llama a Consultar el estado del informe con REPORT_ID. Trata solo Finished como descargable. Un resultado Partial requiere investigación aunque Reporter haya generado algunos datos.

Verificar y descargar el informe

Cuando el estado sea Finished:
  1. Llama a Descargar un informe con REPORT_ID.
  2. Confirma que la respuesta tenga el tipo de contenido esperado y el encabezado Content-Disposition.
  3. Abre el archivo y comprueba que los datos y la presentación correspondan a la plantilla y los filtros.
El endpoint de descarga solo entrega informes con estado Finished.

Solución de problemas


Configuración para operadores

Las siguientes opciones de despliegue están dirigidas a operadores. No las necesitas para el flujo de generación de informes.

Configurar el almacenamiento de objetos

Reporter guarda las plantillas y los informes generados en un bucket compatible con S3. Usa los prefijos templates/ y reports/. Reporter admite AWS S3, MinIO y SeaweedFS.
Los ejemplos de MinIO y SeaweedFS que aparecen a continuación usan HTTP solo para desarrollo local. Los despliegues de producción requieren HTTPS y TLS.
S3 no admite TTL por objeto. Configura políticas de ciclo de vida del bucket de S3 si los informes generados deben caducar automáticamente.

Configurar fuentes de datos externas

Define DATASOURCE_CRED_ENC_KEY con una clave AES hexadecimal y persistente antes de iniciar Reporter. Genera una clave de 32 bytes con openssl rand -hex 32; el Manager no arranca si la clave falta o tiene un formato inválido. Mantén la misma clave disponible para cada runtime de Reporter que lea el registro, porque las contraseñas almacenadas se cifran con ella. Usa la API para el ciclo de vida normal de las fuentes de datos. En modo multi-tenant, Reporter omite la siembra desde variables de entorno y cada tenant crea sus entradas mediante la API. En modo de tenant único, puedes sembrar entradas PostgreSQL o MongoDB al arrancar con variables DATASOURCE_<NAME>_*: Para una fuente cuyo CONFIG_NAME es midaz_onboarding:
Haz referencia a la fuente en una plantilla mediante su CONFIG_NAME:
Para usar varios esquemas de PostgreSQL, deriva la variable de esquemas de CONFIG_NAME. Por ejemplo, external_db corresponde a DATASOURCE_EXTERNAL_DB_SCHEMAS:
Usa database:schema.table en las plantillas y schema.table como clave de tabla en los filtros:
Cuando no defines la variable de esquemas, Reporter usa el esquema public. El Manager carga la configuración de las fuentes de datos y se conecta bajo demanda. El Worker se conecta durante el inicio y reintenta las fuentes no disponibles. Puede continuar con funcionalidad reducida si una fuente sigue sin estar disponible.

Tareas relacionadas