Immutable version history
Each upload creates a new DocumentVersion row. Old versions remain. The current_version pointer can move, but never delete history.
Treat any internal document - SOP, work instruction, training record, policy - as a versioned, role-restricted, audit-logged artifact. Restore old versions in one click.

Each upload creates a new DocumentVersion row. Old versions remain. The current_version pointer can move, but never delete history.
Bad SOP rollout? Click "Restore" on any prior version. The pointer flips back; the bad version stays in history with its own audit-log entry.
Folder path + freeform tags per document. Sidebar tree on the repository page. Filter by folder, tag, status, document type.
Five-role hierarchy. Owner / Admin / Manager see everything; Client sees what they've uploaded; Auditor sees only their engagement scope.
Tag a policy with a review date. We email the owner at 30 / 21 / 14 / 7 / 1 days out. Re-upload bumps the cycle automatically.
Today: upload PDFs. Q4 2026: in-app authoring with reviewer comments, attestation collection, comprehension quiz on publish.
Author writes the SOP in their tool of choice (Word, Google Docs). Exports to PDF, drops it in Tracegence as version 1.
POST /documentsOptional approval workflow: sequential or parallel approvers. Each step HMAC-signed. Approver leaves a note that lands in the audit log.
apps/workflows/Status transitions to successful. Document becomes visible per its access scope.
Document.statusAuthor uploads v2 next quarter. Reviewers compare v1 → v2 in the version-history view. Approve → v2 becomes current.
document_versionsv2 had a bug. One click on v1 restores. The chain shows: v1 (current) → v2 (was current Q3) → v1 (current again).
POST /documents/.../restoreAnnual review date hits. Owner gets an alert at 30 / 7 / 1 days out. Re-upload (or extend the review window).
apps/notifications/Dates are targets, not commitments. Design partners get earlier access.
Try it on one folder of SOPs - version control, restore, and audit log included.