> ## Documentation Index
> Fetch the complete documentation index at: https://docs.engrate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Audit Log

Audit log entries record state changes and actions on schedules, versions, and series. Every significant lifecycle event is captured with before/after state snapshots and request context.

## Event types

| Event type               | Trigger                                         |
| ------------------------ | ----------------------------------------------- |
| `schedule.created`       | A new schedule is created via `POST /schedules` |
| `version.submitted`      | A schedule version is sent to the TSO           |
| `version.accepted`       | TSO ACK or CNF confirms acceptance              |
| `version.rejected`       | TSO rejects the submission                      |
| `version.status_changed` | Any status transition on a version              |
| `series.status_changed`  | Per-series status update from a partial CNF     |
| `anomaly.received`       | An ANO message is received from the TSO         |
| `status_request.sent`    | A manual status request is triggered            |

## Data structure

The `data` field is a combined object containing:

* `before` — state snapshot before the event (when applicable)
* `after` — state snapshot after the event
* `metadata` — additional context (e.g. TSO response codes)
* `request_id` — correlation ID for the triggering API request

## Timestamp precision

The `created_ts` field includes millisecond precision (`YYYY-MM-DDTHH:mm:ss.sssZ`) to allow precise ordering of events that occur in rapid succession.
