feat(F-150): completed feature
This commit is contained in:
23
work/artifacts/F-150/implementer.md
Normal file
23
work/artifacts/F-150/implementer.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# 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/:report` streaming CSV
|
||||
- `src/modules/reporting/domain/permissions.ts` (updated) — `REPORTING_EXPORT` added 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|sales|products) with streaming reply.raw |
|
||||
| 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 |
|
||||
Reference in New Issue
Block a user