It manages controlled documents through review, approval, electronic signature, version control and audit — in one system, for organizations where a document being current has to be provable.
What it manages
Controlled documents — the procedures, policies, work instructions and records a quality system depends on. Each one is typed by its organization, carries a number that does not change when its content does, and has a lifecycle state visible everywhere it appears. Whether a given system really holds documents that way is a separate question, and the requirements worth putting to any vendor are set out one test at a time.
How documents move
Review and approval run as workflow on the document itself, assigned as tasks. They are two distinct decisions with distinct authorization — approving is not the same act as reviewing, and the system does not treat them as one. Who holds each role, and what each step has to leave behind, is the shape of a working document control process.
Version control
A revision adds a version; it never edits one. A version that has been signed is never altered, and the previous version is marked superseded rather than removed, so it stays in the record and cannot be mistaken for the current one. There is a reason to be strict about that: an approved version that can still change takes every signature and training record that depends on it down with it.
Electronic signatures
A signature records who signed, the exact version and content hash, the meaning of the signature, the statement accepted and how the signer authenticated. Signing requires re-authentication at the moment of signing — a session alone is not enough.
Audit history
Every state change writes an append-only, hash-chained audit event as it happens. Per-document history is read from that same ledger, so there is no second, editable table that could disagree with it, and the chain can be verified through the product. Most application logs were never built for this, which is what separates evidence from logging.
Where it runs
Each organization gets an isolated environment at its own address. Which environment a request belongs to is decided from that address before anyone is authenticated, and it is enforced again independently in the database.