Skip to content

Audit and insights

Find out who signed in and who changed what, watch authentication as it happens, and read the dashboards that summarise your account.

Authio keeps two records of everything that happens in your account: an access trail of every authentication attempt and a change trail of every administrative change. The console reads both through filters, rankings and charts computed on the server, streams sign-ins live, and sums the account up on the dashboard and in the notifications inbox.

All of it is scoped to your account: whatever realm or filter you ask for, you only ever see the activity of realms you own.

Two trails

TrailWhat it recordsKept forIn the console
AccessEvery authentication attempt, in every grant, successful or refused.90 daysAudit › Access
ChangesEvery create, update, delete and impersonation made through the console or the Admin API, applied or rejected.365 daysAudit › Changes

Reading either trail requires the audit:read permission. Records past their retention are deleted automatically once a day.

The access trail

Each attempt is recorded with who made it, from where, with what credential and how it ended:

GroupFields
OutcomeGrant type, success, failure reason
PrincipalThe user (id, username, e-mail), the consumer or the API secret that authenticated
OriginIP address, user agent, browser, device, operating system
TargetRealm, client, resource server, scopes, connection provider
How the person signed inAuthentication methods (amr), level (acr) and the external identity provider, for people’s sign-ins
IdentifiersToken id, session id, request id

The grant types recorded are Password, ClientCredentials, PersonalAccessToken, AuthorizationCode, ApiKey, RefreshToken, TokenExchange, DeviceCode, Federated and Unknown. Federated marks a sign-in through an external provider that the hosted login then refused: a suspended or inactive account, no access to the client, an address not yet approved or a second factor rejected.

Reading it

  • The overview shows the period’s key figures against the previous period of the same length, what was used and where it came from, and a heat map of when sign-in is attempted by day and hour.
  • Rankings by grant type, realm, client, resource server, identity and IP address are clickable: each one becomes a filter.
  • The pulse shows successes and failures per day; click a day to narrow the period to it.
  • Records are paginated (5, 10, 25 or 50 per page). Each opens a detail panel with every field above, and a failed attempt offers Open in Wire Bench, already set up with its client and grant, to reproduce it.

The change trail

Every POST, PUT, PATCH and DELETE to the Admin API is recorded automatically after it runs, whether it came from the console or from your own tooling. Because recording happens in one place rather than endpoint by endpoint, a new part of the API is audited from the day it ships.

  • Actions are Create, Update, Delete and Impersonate.
  • Each record holds the action, the kind and id of the resource, the realm and client, the author (id, name and e-mail), IP address, user agent, HTTP method, path, status code, whether it succeeded, the reason it failed and the request id.
  • A secret rotation also records details: its mode (Immediate, Overlap or Compromise), previous_value_valid_until and issued_tokens_revoked_before. See Rotating secrets.
  • Rejected attempts are recorded too, with their reason: a run of refused deletions is exactly what an audit wants to see.
  • Reads are not recorded, and neither are writes that change no configuration, such as pinning a favourite, marking notifications as read or asking the AI advisor a question.

The overview counts changes, deletions, applied and rejected changes, ranks them by action, resource kind, realm and author, and shows when changes are made by day and hour.

Filter and export

  • The period is 24 hours, 7, 30 or 90 days, or days you pick on the calendar. The trails open on the last 30 days.
  • Search by user, address, client or resource, or paste a request id to find a single call. Outcome, grant type and resource server narrow the access trail; the action narrows the change trail.
  • Realm, period and search stay in place when you switch between Access and Changes.
  • The screens of a resource server, a connection provider and an identity provider link to the access trail already filtered to them.
  • Export CSV downloads the whole filtered trail, not only the page on screen, as access-logs-{date}.csv or audit-trail-{date}.csv.

Live Auth Stream

Live Auth Stream shows sign-ins, token issuance and failures across every realm you own as they happen. Narrow it to one client, pause it, and open a failed event in Wire Bench to reproduce it. It keeps the latest 200 events and does not fill gaps: what happens while it is paused or disconnected is not shown there, so use the access trail for anything you need to look back on.

Activity where you work

You rarely need the full trail to answer a question about one thing. The Activity tab of a realm gathers its sign-in activity, open sessions, delegations and webhooks; the Activity tab of a client does the same for that application. Every activity list opens on its 5 most recent entries, pages through the rest at 5, 10, 25 or 50, and narrows to 24 hours, 7, 30 or 90 days, or to days you pick.

The dashboard

The Dashboard is where everyone lands after signing in. Each block appears only to people allowed to read what it shows, and a block that fails to load says so with a retry instead of showing zeros.

BlockWhat it shows
Needs attentionOpen critical notifications, clients that accept requests without authentication, expired API secrets, groups that grant no role and organizations that route no sign-in.
OverviewAuthenticated accesses over the last 30 days, with the daily average and busiest day, and the counts of realms, clients and users against the 30 days before.
HardeningThe share of clients using PKCE, client authentication and token encryption; of users with a confirmed e-mail, a second factor, lockout and a role; and of consumers limited by scope or role.
What the account containsHow clients authenticate, Where the usage came from, clients and users per realm, recent realms and an inventory of roles, scopes, consumers, organizations, groups and API secrets.
Suspension calendarWho is suspended now, suspensions scheduled or ending this week, and who is held on a given day.
Plan and usageYour plan, each quota and how close it is to its limit, and the estimated cost of the period.
AI advisorThe advisor’s latest reading of the realms you turned it on for, when your plan includes it.
ActivityRecent access events and changes for the realm in scope, over the period you choose.

Notifications

Authio checks your account every hour, and again whenever a watched resource changes, and raises a notification in Notifications when something needs you. A condition — a secret about to expire, a disabled webhook — stays open while it holds and clears itself once it stops. An event — a revoked key, a reused refresh token — stays until someone closes it. Marking a notification as read only records that it was seen.

NotificationSeverityRaised when
Expired secretCriticalAn API secret is past its expiry.
Secret expiringWarningAn API secret expires within 7 days.
Unusual authentication failuresWarning25% or more of sign-ins failed over the last 7 days, out of at least 20 attempts.
Inactive realmWarningA realm’s clients issue no tokens.
Webhook disabledCriticalAn endpoint was disabled after repeated failures.
Client deactivatedWarningA client was deactivated.
Signing key revokedWarningA signing key was revoked.
Keys rotatedInfoKeys were rotated because their period ran out.
Refresh token reusedCriticalA refresh token was presented after it was exchanged, and its session was ended.
Sign-in awaiting approvalWarning, critical once the person refuses itA sign-in from an unknown address is waiting for a decision.
Quota near its limitWarningA plan quota is at 80% or more.
Plan limit reachedWarningSomething could not be created because a quota is spent.
Trial endingWarning, critical on the last dayThe trial ends within 3 days.

Notifications always appear in the inbox. The account owner chooses in Preferences whether they also go out by e-mail (on by default, to the account’s address unless another is given) and by webhook, and can switch a kind off entirely, which stops it being raised at all.

Reading the trails from the API

The same data is available to your own tooling through the Admin API, with the audit:read permission:

EndpointReturns
GET /api/v1/admin/access-logsAccess records, with the filters the console uses.
GET /api/v1/admin/access-logs/summaryThe access overview: totals, rankings, daily timeline and heat map.
GET /api/v1/admin/access-logs/streamAttempts as they happen, as Server-Sent Events.
GET /api/v1/admin/audit-trailChange records.
GET /api/v1/admin/audit-trail/summaryThe change overview.
To keep records longer than the retention above, export them or pull them on a schedule. To receive administrative changes the moment they happen, register a realm endpoint for the administrative events.

Ask in plain language

When your plan includes the AI advisor, the access trail accepts a question such as “failures on the storefront yesterday afternoon” and turns it into filters you can see and undo. With a single realm chosen, Read this period asks the advisor whether the failures look like a setting of yours or like credentials being tried. Both are described in Authio AI.

Next steps