El recorrido de principio a fin
1
Solicitud
Llamas a Crear un informe con un identificador de plantilla y los filtros de fila que quieres. Reporter valida la solicitud y guarda el informe como
Processing.2
Extracción
El worker consulta cada fuente de datos que nombra la plantilla, una sección por fuente de datos, y conserva solo los campos que están en el mapa de campos de la plantilla.
3
Renderizado
Las filas extraídas se convierten en el contexto de la plantilla. Reporter renderiza el documento en el formato de salida de la plantilla.
4
Almacenamiento
Reporter escribe el archivo renderizado en el bucket de almacenamiento de objetos configurado y registra el estado final del informe.
5
Descarga
Llamas a Descargar un informe y recibes el archivo con su tipo de contenido y su nombre de archivo.
Qué hace el manager
El manager es responsable de todo lo que ocurre antes de la cola. Ejecuta estas verificaciones en orden, y cualquiera de ellas puede rechazar la solicitud directamente. Aplica idempotencia. Envía un encabezado
X-Idempotency para nombrar la solicitud tú mismo. Si no envías uno, Reporter deriva la clave a partir del cuerpo de la solicitud. Reporter rechaza como duplicado la repetición de una solicitud en curso. La repetición de una solicitud completada devuelve el informe original y marca la respuesta con X-Idempotency-Replayed: true. La ventana es de 30 segundos.
Resuelve la plantilla. Reporter carga el mapa de campos, el formato de salida y la descripción que pertenecen al identificador de la plantilla. Un identificador desconocido falla en este punto.
Valida tus filtros. Cada campo por el que filtras se revisa contra el esquema de su fuente de datos. Un nombre de campo incorrecto hace fallar la solicitud en lugar de producir un informe vacío.
Resuelve los parámetros y la institución. Reporter aplica los valores predeterminados que la plantilla declara para sus parámetros. Rechaza un parámetro obligatorio que falte. Luego resuelve la institución para la que lee el informe. Un tenant con varias instituciones debe indicar una, o all.
Registra el informe y encola el trabajo. El informe se guarda como Processing.
El informe conserva su propia copia del formato de salida y la descripción de la plantilla. Esa instantánea hace que un informe antiguo sea reproducible después de que la plantilla cambie.
Qué hace el worker
El worker consume el comando y es responsable del resto del recorrido. Una cola puede entregar el mismo comando dos veces. Por eso el worker lee el informe antes de iniciar una ejecución. Si el informe ya llegó a un estado terminal, el worker lo deja como está y no lo genera de nuevo. Luego carga el archivo de la plantilla desde el almacenamiento de objetos y extrae los datos. Cada fuente de datos es una sección. Una sección que falla no detiene a las demás. El worker recopila el resultado de cada sección y solo entonces decide el estado del informe. Cuando todas las secciones fallan, Reporter registra el fallo y omite el renderizado. Ningún archivo engañoso llega al bucket. El paso de renderizado convierte las secciones que sobrevivieron en el documento. Cuando el formato de salida es PDF, Reporter renderiza primero HTML y lo convierte mediante un pool de navegadores headless. Los bytes finales van al bucket, el estado final va al registro del informe y un evento final va al flujo de eventos.
Estados del informe
Un informe que creas mediante
POST /v1/reports llega a uno de cuatro estados.
Una presentación regulatoria nunca termina en
Partial. Termina en Draft o Error, y la aprobación convierte un Draft en Final.
Consulta Verificar el estado de un informe o consume el evento final. Un informe Partial lleva un resultado por sección en sus metadatos, que nombra las fuentes de datos que no respondieron. Corrige esas fuentes de datos y luego genera el informe de nuevo. Descargar un informe entrega el artefacto de un informe Finished o Final, y de un Draft sin campo obligatorio en blanco.
Límites de tiempo en el recorrido
Cada etapa lleva su propio límite, y un operador los configura por despliegue.
Los límites de volumen acotan cada extracción de una fuente de datos: 20 tablas, 50 campos por tabla y 256 MiB de resultado extraído. Cada tabla devuelve como máximo 150.000 filas, y cada consulta agota su tiempo tras 300 segundos. Consulta Variables de entorno para conocer los ajustes detrás de cada uno.
Dónde encajan los plazos
Un plazo es una fecha de vencimiento con una regla de recurrencia, y puede nombrar la plantilla que lo satisface. Está junto al recorrido de generación, no dentro de él. Un plazo inicia un informe solo cuando un operador activa el disparador de plazos e indica la categoría de la plantilla en
DEADLINE_TRIGGER_GENERATE_CATEGORIES. En los demás casos, generas el informe mediante el recorrido de solicitud anterior y luego marcas el plazo como entregado.
Reporter recalcula un plazo al leerlo. Una obligación recurrente que lleva una marca de entrega avanza a su siguiente fecha de vencimiento en la primera lectura después de que pasa la fecha actual. Ese avance borra la marca. La operación de notificaciones devuelve los plazos dentro de su ventana de alerta cuando los solicitas. Consulta Gestión de plazos.
Almacenamiento y descarga
Los archivos renderizados viven en un bucket compatible con S3, bajo el prefijo
reports/. Reporter almacena cada archivo bajo el identificador de la plantilla y lo nombra según el informe, de modo que los archivos permanecen agrupados por la plantilla que los produjo.
La descarga devuelve los bytes con el tipo de contenido del formato de salida y un nombre de archivo construido a partir del identificador del informe. La descarga funciona después de que se elimina la plantilla, porque el informe conserva su propia instantánea del formato.
Un informe se crea una vez y luego se conserva. Sus filtros, su estado y su archivo describen exactamente la solicitud que los produjo.
Reporter conserva los archivos renderizados en el bucket. Configura la retención con una política de ciclo de vida en el propio bucket.
Próximos pasos
Motor de plantillas de Reporter
El mapa de campos, el contexto de datos y los dos tipos de filtro.
Usar Reporter
Sube una plantilla, genera un informe y descarga el resultado.
Gestión de plazos
Rastrea una obligación regulatoria y márcala como entregada.
Arquitectura de Reporter
Un binario, dos superficies y los almacenes que comparten.

