Files
mercadodevida/work/artifacts/F-150/security.json
2026-08-22 13:08:16 +02:00

15 lines
896 B
JSON

{
"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": []
}