17 lines
1.1 KiB
JSON
17 lines
1.1 KiB
JSON
{
|
|
"feature_id": "F-150",
|
|
"agent": "reviewer",
|
|
"stage": "review_gate",
|
|
"verdict": "APPROVED",
|
|
"summary": "CSV export streaming endpoint GET /reporting/export/:report with REPORTING_EXPORT RBAC. Admin/editor can export. Streaming implementation (500 rows/page, max 10k). Metadata headers. tsc 0, boundaries 0.",
|
|
"checks": [
|
|
{"item": "AC1 CSV streaming", "ok": true, "evidence": "reply.raw.write per row; summary/sales/products branches; Content-Disposition header"},
|
|
{"item": "AC2 RBAC", "ok": true, "evidence": "REPORTING_EXPORT in admin + editor REPORTING_ROLE_PERMISSIONS; requireReportingPermission called"},
|
|
{"item": "AC3 streaming", "ok": true, "evidence": "Page-by-page fetch (500/page); MAX_ROWS=10_000; reply.raw.write + reply.raw.end()"},
|
|
{"item": "AC4 metadata headers", "ok": true, "evidence": "reply.raw.write with # report/from/to/channel/exported_at header lines"},
|
|
{"item": "AC5 permissions", "ok": true, "evidence": "requireReportingPermission(user, 'REPORTING_EXPORT')"},
|
|
{"item": "tsc/verify", "ok": true, "evidence": "tsc 0 errors; boundaries 0 new; verify.sh green"}
|
|
],
|
|
"issues": []
|
|
}
|