Audit Logs
Identity-visible change history, operator accountability, and the audit trail teams rely on during review and investigation.
Identity systems earn trust when access and administrative change remain explainable later. This page keeps the audit-focused operator guidance from the underlying manual while excluding the private implementation paths used to collect or expose that data.
Scope
This guide covers the in-product audit-log review workflow for operators and administrators.
Portal now ships a dedicated audit-log browser at Monitoring -> Audit Logs, backed by .
The same page also exposes an Export CSV action backed by for the current filtered result set.
Access
Audit-log review requires portal.audit.view.
Current roles with that permission:
super_useradmin
Review Workflow
- Navigate to
Monitoring -> Audit Logs. - Confirm the current scope banner:
- operator-tenant sessions can search across all tenants
- non-operator sessions are restricted to the current tenant
- Select
Apply filtersto rerun the server-side search. - Select
Export CSVwhen you need a reusable bulk-review artifact for the current filter set. - Review the table columns for timestamp, tenant, actor, action, resource, IP, and the details summary.
- Select
Reviewon any row to inspect the full event payload, actor attribution, resource metadata, and network context. - Use
PreviousandNextto move through server-driven pages of results.
Operational notes:
- non-operator callers are restricted to their own tenant
- operator callers can query across tenants
- the browser always reloads from the backend; the page is not reconstructing a local audit cache
- CSV export uses the current search filters, tenant scope, and a flattened row shape so the operator can bulk-review the same slice outside the browser.
ip_addressandcreated_atare part of the stored audit row and should be used together when reconstructing a timeline- JML template changes, imported or scheduled trigger creation, terminal trigger outcomes, manual run kickoff, callback receipt, callback-driven step completion, terminal run outcomes, and step retries now appear as
governance.jml.*events, while the resulting access changes still appear undergovernance.access_grant.* - forwarded headers only affect
ip_addresswhen the request came through a configured trusted proxy boundary - when multiple trusted reverse proxies sit in front of Portal, controls how many trusted hops Portal walks from the right before it records the client IP
Practical Filters
- Use
action=user.updatedor a similar exact action value when you need one event type. - Use a date range for incident response instead of paging the whole table.
Recovery Guidance
- If the result set is empty, first confirm you are using the correct tenant and date window.
- If the actor is no longer present in the directory,
actor_emailmay be null even though the audit row still exists. - If the event exists in the API but not the current page, widen the filters or move through the paginated result set.