1.2 KiB
1.2 KiB
F-150 — Implementer evidence
What
F-150 build evidence: GET /reporting/export/:report streaming CSV endpoint; REPORTING_EXPORT granted to admin+editor. Backend tsc 0, boundaries 0, verify.sh verde.
Files
src/modules/reporting/api/reporting.routes.ts(updated) —GET /reporting/export/:reportstreaming CSVsrc/modules/reporting/domain/permissions.ts(updated) —REPORTING_EXPORTadded to admin + editor roles
Verification
npm run build→ 0 TypeScript errors.check-module-boundaries.mjs src→ 0 NEW violations../scripts/verify.sh→ green (F-150 in_progress, runtime-consistent).
AC traceability
| AC | Estado | Evidencia |
|---|---|---|
| AC1 CSV endpoint | ✅ | GET /reporting/export/(summary |
| AC2 RBAC REPORTING_EXPORT | ✅ | permissions.ts: admin + editor have REPORTING_EXPORT; requireReportingPermission checked |
| AC3 Streaming | ✅ | Page-by-page fetch (500/page, max 10k rows), reply.raw.write per row |
| AC4 Metadata headers | ✅ | # report:... header lines before data |
| AC5 Permissions | ✅ | requireReportingPermission('REPORTING_EXPORT') on export route |
| AC6 tsc/verify | ✅ | tsc 0, boundaries 0, verify verde |