Saltar al contenido principal
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. 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: Estos endpoints son de solo lectura. Los operadores configuran las fuentes durante el despliegue; la API no las crea ni las actualiza.

Interpretar estados y errores

Llama a Consultar el estado del informe con REPORT_ID.
EstadoSignificadoQué hacer
ProcessingReporter está generando el archivo.Sigue consultando el estado con un intervalo razonable.
FinishedLa generación finalizó correctamente.Descarga el informe.
PartialReporter generó solo una parte del resultado solicitado.Examina los detalles de la respuesta y corrige las secciones de datos que fallaron antes de volver a generar.
ErrorLa generación falló.Examina los detalles del error, la plantilla, los filtros y la disponibilidad de las fuentes de datos.
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

SíntomaQué comprobar
La carga de la plantilla se rechazaEnvía template, outputFormat y description, y confirma que el archivo use la extensión .tpl.
La creación del informe se rechazaEnvía templateId y filters. Usa "filters": {} cuando no necesites filtros de filas.
El informe permanece en ProcessingComprueba la salud del Worker, la conexión con RabbitMQ y las fuentes de datos usadas.
El informe termina como PartialExamina qué secciones fallaron y verifica los nombres de la fuente, la tabla, el campo y los filtros.
El informe termina como ErrorComprueba el error devuelto, la sintaxis de la plantilla, los valores de filtro, las conexiones a fuentes de datos y el almacenamiento de objetos.
La descarga se rechazaConsulta el estado más reciente. Solo puedes descargar el informe cuando sea Finished.

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.
VariableDescripciónValor predeterminado
OBJECT_STORAGE_ENDPOINTEndpoint compatible con S3. Déjalo vacío para AWS S3.
OBJECT_STORAGE_REGIONRegión de AWS.us-east-1
OBJECT_STORAGE_ACCESS_KEY_IDClave de acceso.
OBJECT_STORAGE_SECRET_KEYClave secreta.
OBJECT_STORAGE_USE_PATH_STYLEUsa URL de estilo path. MinIO y SeaweedFS suelen requerirlo.false
OBJECT_STORAGE_DISABLE_SSLUsa HTTP en lugar de HTTPS cuando OBJECT_STORAGE_ENDPOINT no incluye un esquema. Un esquema http:// o https:// explícito tiene prioridad.false
OBJECT_STORAGE_BUCKETNombre del bucket.reporter-storage
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 cada fuente PostgreSQL o MongoDB mediante variables de entorno DATASOURCE_<NAME>_*.
VariableDescripciónObligatoria
DATASOURCE_<NAME>_CONFIG_NAMEIdentificador usado en las plantillas, como midaz_onboarding.
DATASOURCE_<NAME>_HOSTHost de la base de datos.
DATASOURCE_<NAME>_PORTPuerto de la base de datos.
DATASOURCE_<NAME>_USERUsuario de la base de datos.Solo cuando la base de datos requiere autenticación de usuario
DATASOURCE_<NAME>_PASSWORDContraseña de la base de datos.Solo cuando la base de datos requiere autenticación con contraseña
DATASOURCE_<NAME>_DATABASENombre de la base de datos.
DATASOURCE_<NAME>_TYPEpostgresql o mongodb, en minúsculas.
DATASOURCE_<NAME>_SSLMODEModo SSL de PostgreSQL, como disable o require.Solo PostgreSQL
DATASOURCE_<NAME>_SSLROOTCERTRuta del certificado raíz de PostgreSQL.Solo PostgreSQL
DATASOURCE_<NAME>_SSLHabilita SSL para MongoDB.Solo MongoDB
DATASOURCE_<NAME>_SSLCARuta del certificado CA de MongoDB.Solo MongoDB
DATASOURCE_<NAME>_OPTIONSOpciones adicionales de la URI de MongoDB.Solo MongoDB
DATASOURCE_<CONFIG_NAME>_SCHEMASEsquemas PostgreSQL que se exponen, separados por comas. El prefijo de la variable se deriva de CONFIG_NAME.Solo PostgreSQL
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