Marsad
Data Flows

Report Generation Flow

The asynchronous path from a report request to an available PDF download.

Report Generation Flow

This sequence documents comprehensive analytics report generation for an existing file. The Model Server queues report work on the data_collection_tasks worker queue and writes each generated PDF into the shared report directory for that file.

Queue and Storage Boundary

  • The Web App verifies the requested file and report section, then sends its file path, file-meta ID, and generated output filename to the Model Server.
  • The Model Server queues process_report_generation_job through report_generation_task_queue, which currently uses the data_collection_tasks Redis queue.
  • The report worker reads the dataset and writes the PDF under shared-data/generated/analytics_reports/<file-meta-id>/.
  • The notification worker calls the Web App report callback. A completed callback triggers an email containing the selected report's download URL; failed callbacks report the failure without sending that email.
  • The Web App's report-history and download routes read only PDFs in the file-meta-specific report directory and require an authenticated user.

Report Versions

Each request receives a timestamped, unique PDF filename. The report history endpoint lists every PDF for the file metadata record, so users can download a specific generated version instead of overwriting an earlier report.

Exact report sections, file authorization, callback authentication, output retention, and failure/retry rules belong in Cross-Repository Contracts.

On this page