M5-10 PDF Verification Report Generation¶
Milestone: M5 — Disclosure and Verification
SOW Reference: FR3, INT7
Requirement Clarity: ✅ Clear — concrete rules added 2026-08-26
Dev Status: ❌ Not started — no PDF generation library exists anywhere in app/backend/package.json; the pdfS3Key column on the VerificationReport entity is currently unused dead schema
Overview¶
Let a Staffing Company download and save a PDF report of a verification outcome, for compliance/audit purposes — covering credentials within the whole Velocity ecosystem, not just those issued/verified via this platform.
2026-08-26, from Velocity's CV Capture spec — concrete rules, not previously specified anywhere:
- One credential and its verification checks per page — not one combined table for all disclosed credentials.
- Printing must be disabled on the rendered/viewed report.
- If generation fails, show a clear, visible error. Never render a download link/button with an empty href — a dead-looking-live control is explicitly called out as a failure state to avoid.
- The PDF's content must match the on-screen verification results exactly (same checks, same pass/fail state) — this is a testable acceptance criterion, not just a suggestion (see M5-13).
Backend Tasks¶
- Add a PDF generation library (
pdfkit,puppeteer, or similar) — none currently present - Build a PDF report template: one credential + its 6 checks (see M5-09) + timestamp + issuer/credential metadata per page
- Wire the existing
VerificationReport.pdfS3Keycolumn up to actual storage (S3) and generation - Per the SOW, note VerifyMyCreds already contains this capability — confirm whether that code can be reused rather than built fresh
Frontend Tasks¶
- Add a "Download PDF" action on the verification result view
- Handle the generation-failure case explicitly — visible error state, disabled/absent button rather than a broken link
Dependencies¶
- M5-09 display verification checks — the PDF mirrors this content.
Acceptance Criteria¶
- PDF report generated
- PDF is downloadable
- PDF includes audit evidence (per SOW Appendix 3, FR3 acceptance criteria)
Existing Reference Material¶
Blockers & Risks¶
- Risk: confirm the VerifyMyCreds PDF-generation code-reuse question here too — same underlying uncertainty as M5-08.