Operations
Audit log
If InRoots did it, decided it or was asked it, there is a row. The log is append-only, searchable, and exportable.
What is recorded
- Authentication: codes sent, verified and failed, trusted devices added, sessions revoked; a separate login log keeps IP, user agent and outcome.
- Bot actions: messages sent and failed, strikes warned and escalated, sign-ins and sign-offs recorded, flags, public persona replies.
- Admin actions: profile edits, team changes, policy edits, attendance corrections, on-call imports, strike forgiveness, long-session decisions.
- Leave: every approval route, superseded requests, edits after approval, auto-approvals by timeout with the trigger recorded.
- AI: every assistant query and every provider failover; every neural decision with its probability, mode and outcome; every model retrain and promotion.
- Consent: signatures with source IP and content hash; HR document uploads, views and deletions.
- System: migrations, container starts, health-check failures, ingest gaps and their resolution.
Fields
| created_at | UTC timestamp |
|---|---|
| actor | who did it, or system:scheduler for jobs and bot:<kind> for bot actions |
| bot_kind | which persona fired the row, so several bots in one person’s messages are distinguishable |
| target_user | the subject of the action |
| action_type | a stable label, shown humanised in the UI |
| summary | one human-readable line |
| meta | the structured payload: the diff, the parameters, the reason |
Using it
- Sort on any column; filter by action type, actor, target, date range and free text across the summary and payload; expand a row for the full payload.
- Export the current filter to CSV. Enterprise and self-hosted plans include audit-log export.
- The API returns pages with a cursor. Admin only.
- The Today page shows the last twenty events as a live feed, and the employee scoreboard shows every event involving that person.
Evidence everywhere
Every number on an employee drawer is clickable and opens an evidence sheet listing the exact records it was computed from. Every setting change lands in a settings audit with the old and new value and the scope. Strike rows are never mutated; the scorer decides what still counts and the report shows what it waived.
Retention
Nothing is deleted automatically. The log grows monotonically; export it on a schedule if your retention policy requires it.