Skip to main content

Audit trail

Route: /administration (Audit trail) · Role: admin

The audit trail is an append-only log of the changes that matter: time, reviews, commercials, roles, and credentials. Each event records who, what, and when, with a reason where one applies.

Reading the trail​

The panel lists the 60 most recent events, newest first. Each shows:

  • the action (for example time_entry.approved, billing_period.closed);
  • the actor and timestamp;
  • the affected entity id (truncated);
  • a reason in quotes when one was given (for example a rejection reason).

What gets logged​

AreaExample actions
Timetime_entry.created, updated, deleted, submitted, approved, rejected
Customerscustomer.created, updated, status_changed
Projectsproject.created, status_changed, engineer_assigned, engineer_unassigned
Commercialagreement.created, rate.created, allowance.created
Billingbilling_period.closed, billing_period.reopened
Usersuser.role_changed, user.status_changed
Credentialsapi_token.created, api_token.revoked, service_client.created, service_client.deleted

Why it matters​

Every change to time, approvals, rates, agreements, permissions, and billing state is attributable to an actor, a timestamp, and — where relevant — a reason. This is what makes the monthly numbers defensible.

Tracing a rejection​

When an engineer asks why an entry was sent back, find the time_entry.rejected action for that entry id; the reviewer's reason is attached and shown in quotes.

note

The audit is a display of the audit_events table. It is not editable from the UI; corrections happen by recording new actions.