Overview

Documents the strategy for managing auditing and revision history.

Details

Every authoring environment needs a mechanism to track changes. The mapping tool makes use of an extension to the JPA framework that performs automatic auditing of all changes to JPA managed objects through Hibernate Envers.

The simple addition of an @Audited annotation allows any audited object (and its connected graph) to have its changes tracked through time.  Some features include

  • All domain object changes are tracked (per commit).
  • A complete revision history of all changes exists in the database.
  • An audit reader supports the ability to load,visualize, and interact with object graphs as they looked at arbitrary points in the past.

For each @Audited object, there is a correspoinding _AUD table in the database that tracks the older states.  A revision number and revision type are also tracked in this table. These tables can be indexed for faster retrieval and can be directly queried for reporting purposes.

For each type of object in the Domain Model, the following classes are audited:

  • Terminology 
    • No terminology objects are audited
  • Mapping
    • Map Projects
    • Map Records
    • Map Age Ranges
    • Map Entries
    • Map Notes
    • Map Principles
    • Map Relations
  • Workflow
    • Feedback Conversations
    • Feedbacks
    • User Errors
  • Reporting
    • Report Definitions
  • No labels