Auditing and Revision History

Overview

Documents the strategy for managing auditing and revision history.

This is a placeholder page with basic information and will be developed to fully document this aspect of the system.

Details

All changes to model objects are tracked in audit tables in the backing database. This is achieved through the use of Hibernate Envers, a now core part of the Hibernate distribution that provides annotation-based auditing of objects completely managed in the background. Every state of a model object exists in the database at all times, providing access to object and database history. Querying/viewing objects as they looked in the past is fully supported, including the ability to reconstruct an entire graph of connected objects at an arbitrary point in the past.

TODO: show examples of auditing annotations

TODO: show examples of _AUD tables in MySQL and explain how revision#s work.

TODO: explain how use of audit trail supports undo

TODO: explain how use of audit trail supports a "delta" release.

  • n/a