Auditing

During the day to day operation of EMu there may be times when an administrator or user requires details about who changed a record, when it was changed and what changes were made. An auditing facility creates audit trails, a sequence of records that describe the operations performed by a user and the time at which the changes were made. These records generally include the:

  • operation performed (e.g. insertion, update, etc.)
  • module affected (e.g. eparties)
  • name of the user
  • date and time
  • IRN of the record affected
  • data specific to the operation performed (e.g. fields changed for an update)
  • database sub-system that performed the operation

EMu has a fully integrated auditing facility. The facility includes an Audit Trails module (eaudit), which contains complete audit trails for all operations registered for monitoring. There are five levels for which audit records may be generated:

  • change (insertions, updates, deletions)
  • search (queries)
  • display (viewed, sorted, reported)
  • login (first access of a module in current session)
  • all (all database operations)

Each of these may be set on a per module basis, which means that it is possible to monitor all changes to records in the Parties module, for instance, while Multimedia records may be audited for changes, searches and records viewed.

Every EMu module contains an Audit tab that lists all audit trail records for the current record. Each record details the operation performed, who performed it and the date on which it was performed. From this tab it is also possible to view the complete audit trail record in the Audit Trails module.

The Audit facility is extensible, which allows other services that require access to detailed information about record changes to take advantage of its framework. In particular two other services use the audit framework to monitor record modifications. The first is the archiver service, which allows raw XML audit trail records to be stored in a file. The second is the sync service, which is used to ensure that dependent records are updated when the master record is changed.