Skip to content

The audit trail

LOOP keeps two trails of its own, and treats them differently from ordinary data. Administrative decisions — who changed what — go to Moodle's own log store rather than to a table of LOOP's.

Two trails, and the site log

Message logs — who was told what, when, and whether it arrived. This is the trail that shows a person was warned.

Certification history — who held which certificate, over which window. Written the moment a certificate is issued, not when it lapses. The completion date on a row never changes; the window is derived from it and from the certification's validity period, so it follows a correction to that period.

The certification history

The site log — who did what. Creating a certification, changing an edition, recomputing the validity window of a certificate, rewriting the text of a notice, sending yourself a test, activating a licence: each raises a standard Moodle event, and lands in Site administration → Reports → Logs. Filter by component LOOP to see them together.

Applying a configuration file raises one event for the whole file, carrying the counts of what it wrote and whether it came from the page or the command line. The writes underneath raise their own events, as they would from any other route; the single event is what records that somebody decided to apply that file. See Import and export the configuration.

They live there rather than in a table of LOOP's because Moodle already does that job properly: the log store has its own retention (Keep logs for), its own reports, and its own handling of erasure requests. A second, private log inside the plugin would duplicate all three and be governed by none of them.

What deletion does not remove

Deleting a certification removes its editions, its links to the notices, the compliance status of everybody tracked against it and any notice queued for them.

It does not remove the certification history: that is the record of who was certified. The deletion itself is in the site log.

The same is true of a person leaving the User status page when their cycle closes: the row goes, the certificates stay.

Erasure keeps the record and drops the person

A GDPR erasure request anonymises rather than deletes the certification history: the reference to the individual is removed, while the certificate, its validity window and its dates remain. The compliance record stays intact and stops being personal data.

Anonymised rows stay visible in the interface by default, labelled Anonymised (GDPR erasure), with a filter to hide them. They are deleted permanently once they pass the retention period set by the Anonymised history retention (years) setting, which defaults to seven years.

Entries in the site log are handled by the log store, not by LOOP. Moodle removes the entries a person performed; an entry recording something done to them — the recomputing of their certificate's validity window, say — keeps their id, because the log store deletes on the actor and not on the subject.

What you can do with the trails

  • Download table data as exports either trail, with the filters you have applied.
  • Report Builder can build scheduled reports on the message logs and the certification history — see Build reports.
  • Site administration → Reports → Logs filters the site log by component, by user and by date, and exports it.