Periodic report generation
Part of #541
Depends on: Async job infrastructure (#545), Summary statistics (#556)
Contract reference
Endpoints
POST /api/v1/reports/generate
Generates a periodic (monthly, quarterly, or annual) aggregate report as PDF or JSON. Includes statistics, incident summaries, and compliance metrics required by agencies like USFA/NERIS.
This is async, returns 202 with report_id and job_id. Full request/error details in the contract reference above.
GET /api/v1/reports/{report_id}
Returns the generated report. If still processing, returns 202 with retry_after_seconds. When complete, returns PDF binary or JSON depending on the original request format.
Periodic report generation
Part of #541
Depends on: Async job infrastructure (#545), Summary statistics (#556)
Contract reference
path/reporting.yaml#L73-L192schemas/reporting.yaml#GenerateReportRequest,PeriodicReportEndpoints
POST /api/v1/reports/generateGenerates a periodic (monthly, quarterly, or annual) aggregate report as PDF or JSON. Includes statistics, incident summaries, and compliance metrics required by agencies like USFA/NERIS.
This is async, returns
202withreport_idandjob_id. Full request/error details in the contract reference above.GET /api/v1/reports/{report_id}Returns the generated report. If still processing, returns
202withretry_after_seconds. When complete, returns PDF binary or JSON depending on the original request format.