feat(F-150): completed feature

This commit is contained in:
chattie
2026-08-22 13:08:16 +02:00
parent 6a51d1ee74
commit 4a30f321a8
14 changed files with 296 additions and 24 deletions

View File

@@ -0,0 +1,14 @@
{
"feature_id": "F-150",
"agent": "security",
"stage": "security_gate",
"verdict": "APPROVED",
"summary": "CSV export requires REPORTING_EXPORT permission (admin/editor only). No new auth paths; uses same auth as other reporting endpoints. No user input in CSV content (data from DB only). Streaming prevents memory overload.",
"checks": [
{"item": "RBAC enforced", "ok": true, "evidence": "requireReportingPermission('REPORTING_EXPORT') on export route; admin+editor only"},
{"item": "No new auth", "ok": true, "evidence": "Same authenticate() as other reporting endpoints"},
{"item": "No user input in output", "ok": true, "evidence": "All CSV data from DB columns; filters are validated via reportingFiltersSchema (Zod)"},
{"item": "Streaming prevents memory", "ok": true, "evidence": "500 rows/page; max 10k rows; reply.raw.write per batch"}
],
"issues": []
}