Each time you render a ReportPackage to PDF, Piper creates a new ReportVersion with an incremented versionNumber. The pdfBytes field holds the binary content of the generated PDF, and pdfPageCount tells you how long the document is. The tableOfContentsJson, figureManifestJson, and tableManifestJson provide machine-readable inventories of the document's structure. When a reviewer signs off on a draft, their name goes into approvedBy and the approvedAt timestamp is set, converting the version from a draft to an approved submittal. You never delete old versions — you create new ones, preserving the full revision history.
piper
Report Version
A ReportVersion captures the output of rendering a ReportPackage to PDF — storing the binary PDF content, a table of contents, figure and table manifests, and the approval metadata when the version is cleared for submittal.
Technical section
Data model, API, and internals — visible to developers.
