Appearance
Reports Module
Tenant-scoped CSV reports. Implementation: backend/src/reports/. Migrations: 0018_report_definitions.sql, 0022_report_email_schedule.sql, 0023_report_type_alarms.sql.
Key APIs
| Method | Path | Summary |
|---|---|---|
| GET | /api/reports | List report definitions |
| POST | /api/reports | Create definition |
| GET | /api/reports/{id} | Get one definition |
| PATCH | /api/reports/{id} | Update definition |
| DELETE | /api/reports/{id} | Delete definition |
| POST | /api/reports/{id}/run | Generate CSV and download |
| POST | /api/reports/{id}/send-now | Generate CSV and email recipients |
All routes require bearer JWT. Mutating routes (create/update/delete/send-now) require a manager role.
Report types
telemetry— timeseries CSV (keysrequired). Optional aggregation:none,avg,min,max,sum.alarm— alarm CSV.alarmSeverities/alarmStatusesempty means all.
Schedule
Fields on the definition: emails[], scheduleEnabled, scheduleFrequency (daily | weekly | monthly), lastSentAt.
Cron: ReportsCronService (REPORTS_CRON, REPORTS_TIMEZONE, REPORTS_CRON_ENABLED). Email uses EmailTemplateKind.REPORT_CSV with a CSV attachment.
Frontend
- Page:
frontend/src/features/reports/ReportsPage.tsx(/reports) - API client:
frontend/src/api/reports.api.ts
