Audit log

A complete record of your Burrow: who did what, when, where from, and whether it went through, kept as long as you choose and included with every Burrow.

Updated Oct 21, 2026

The audit log is a complete record of your Burrow, built in and included with every Burrow. Every sign-in, every change to a project, secret, machine, member, role or setting, every value revealed and every secret a machine reads, every attempt that was refused, and everything the Burrow does on its own lands here. Each entry says who acted, what happened, when, where the request came from, and whether it went through.

It records over 130 kinds of event, keeps them for as long as you choose, and can export them or send them anywhere the moment they happen. The full list is at the end of this page.

What it gives you#

  • Who did what, always. Who changed a secret, revealed a value, gave a machine access, changed someone's role, or turned a setting off. Every entry names the person or machine as they were named at the time, and entries are never changed once written.

  • Every read accounted for. Each value a member reveals and each secret a machine reads is its own entry, naming the version or field read and the client that read it, such as Python SDK 1.0.1 or CLI 0.4.2.

  • The attempts that failed. Machine requests with a bad signature, machines calling from an address outside your allowlist, refused enrollments, wrong passphrases on a share link, and addresses refused or locked out by a rate limit. They sit beside the actions that went through, tagged Denied or Failed.

  • Early warning. A machine reading a canary is recorded as Critical, together with the machine it disabled, so a leaked credential shows up the moment it is used.

  • Where it came from. Every entry carries the address of the request. With IP data on, it also shows the country's flag, the city and country, and the network it belongs to.

  • What the Burrow did by itself. Scheduled backups, automatic rotations, machines and tokens expiring, dynamic secret logins removed at the end of their lease, certificates renewing and old events being cleared are recorded under System.

  • History on your terms. Events are kept until you decide otherwise. Turn on retention to clear them after a period you choose.

  • Out of the Burrow when you need it. Export any part of it as CSV, JSON or TXT, or send events to Slack, Discord or your own endpoint as they happen with webhooks.

Opening it#

Select Audit log in the navigation. Anyone whose role can read the audit log sees every event, newest first, ten to a page. New events appear on the first page as they happen, without reloading. Use Previous and Next to move through the pages, or select the page number and type the page you want.

Who acted#

Every entry names whoever acted:

Actor

What it is

Humans

Members signing in, managing projects, secrets, machines and members, and changing settings.

Machines

Servers, applications and workflows reading secrets, enrolling and ending their own lifetime.

AI identities

AI agents given their own identity to act in the Burrow.

Share links

Someone opening a share link without being signed in. A signed-in member opening one is recorded under their own name.

System

The Burrow itself, for what happens on its own: scheduled backups, automatic rotation, expiry, dynamic secret logins ending with their lease, rate-limit lockouts and retention.

Reading an entry#

Column

Shows

Event

A plain sentence of what happened, led by who did it, with a coloured dot for its severity. A refused action carries a Denied tag and one that errored a Failed tag. A secret read by a machine also shows the client that read it.

Source

The address the request came from. With IP data on, the country's flag sits before it, with the city, country and network underneath. Something the Burrow did by itself, with no request behind it, reads System.

When

The time it happened, in the format chosen under Display.

Severity#

Every event carries one of five levels, shown as the coloured dot beside it. The level comes from the kind of action. Whether it went through, was denied or failed is shown separately, as a tag on the event.

Level

Typical events

Info

Reads, listings, checks and routine housekeeping.

Notice

Everyday changes, such as creating or renaming, and signing in and out.

Warning

Deletions, refused requests, and sensitive changes such as creating a machine token, opening a share link or rotating the master key.

High

Who can get in and protected material: members and roles, passwords and two-factor, SSO, the sign-in rule, machine requests with a bad signature, address lockouts, a share link destroyed by guessing, a dynamic secret login the Burrow stopped trying to remove, and downloading or restoring a backup.

Critical

A machine reading a canary.

Finding an event#

Filters sit above the list and combine, and the count and pages follow whatever you set.

Filter

What it does

Search

Matches text anywhere in the event, including the action and what it acted on.

Actor

Narrows to a class of actor (Humans, Machines, AI Identities, Share links or System) or to one person or machine. Type in its search box to find one.

Severity

Shows a single severity level.

Event type

Selects one or more kinds of event, with a search box. Each option shows how many times it has occurred.

IP address

Matches the source address.

The trail for one machine or secret#

You can open the log already narrowed to a single machine or secret. Both open for the same roles that can read the audit log.

For a machine, open the Machines page, use its row menu, and select Audit logs. You see every secret it read and every change made to it. See Machine grants.

For a secret, open its environment in Projects, use the secret's row menu, and select Audit History. You see when it was created, every reveal and read, and each value change, revert, rename, rotation, share link and deletion. For a dynamic secret, it also shows every login issued, renewed, put back and removed.

A secret's row menu also has Version History, which lists its saved values and can restore an earlier one. Audit History records who did what and never shows a value.

Exporting#

Anyone who can read the audit log can export it. Select the download button at the end of the filter bar. The export opens with the filters already set on the page, and you can change any of them first.

Setting

Options

Format

CSV, JSON or TXT.

Time period

The last 24 hours, 7, 30 or 90 days, all time, or a custom range of dates.

Events

One or more kinds of event, or all of them.

Actors

Any mix of whole classes of actor and individual people or machines, or all of them.

Severity

All levels, or any combination of them.

Search and IP address

The same matching as the filters on the page.

The line beside the Export button shows how many events the file will hold, and follows the settings as you change them. Select Sample to see the shape of the chosen format first.

Format

What the file holds

CSV

One row per event: time, severity, outcome, action, summary, actor, target, source address, location and client. For spreadsheets and SIEM tools.

JSON

A header naming the Burrow and its version, who exported it and when, the time range and the filters used, then every event with all of its fields.

TXT

The same header, then each event as a readable log line with its summary beneath.

Times in the file are in UTC, and the file is named for its range, for example burrow-audit_2026-08-25_2026-09-24.csv. In a CSV file, a value a spreadsheet would run as a formula is written as plain text. The file holds the events that existed when the export started. Exporting is itself recorded, with the format, the number of events and the filters used.

Sending events elsewhere#

Every event in this log can go to Slack, Discord or a signed endpoint of your own the moment it is recorded. Choose all events, whole groups such as secret.*, or single events by their code. See Webhooks.

Retention#

Out of the box nothing is ever deleted. To clear old events, open Settings, then Security, and turn on Audit Log Retention. Set the period in days, weeks, months or years, up to ten years, and select Save. Before a change that would delete events takes effect, you're shown how many it would delete right now.

Events older than the period are cleared straight after you turn it on and every hour after that. Each clearing is recorded with how many events went, and turning retention on, off or changing its period is recorded too. Changing retention needs permission to delete audit logs.

What gets recorded#

Every event the Burrow records, grouped by what it concerns. The code is what the event type filter, exports and webhooks use.

Projects and environments#

Event

Code

Severity

Project created

project.create

Notice

Project renamed

project.rename

Notice

Project description set, changed or removed

project.description

Info

Projects reordered

project.reorder

Info

Project deleted

project.delete

Warning

Environment created

environment.create

Notice

Environment renamed

environment.rename

Notice

Environment deleted

environment.delete

Warning

Secrets#

Event

Code

Severity

Value set or changed

secret.write

Notice

Value revealed by a member or read by a machine, with the version and field

secret.read

Info

An environment's secrets listed

secret.list

Info

Secrets reordered

secret.reorder

Info

Reverted to an earlier version

secret.revert

Notice

Renamed, along with its linked copies

secret.rename

Notice

Linked copy created in another environment

secret.copy

Notice

Unlinked from its copies

secret.unlink

Notice

Deleted

secret.delete

Warning

Rotated automatically, or a rotation failed

secret.rotate

Notice, Warning when it failed

Automatic rotation turned on or changed

secret.rotation.set

Notice

Automatic rotation turned off

secret.rotation.remove

Warning

Canary armed or disarmed

secret.canary.arm

Warning

Canary read by a machine

secret.canary.read

Critical

Dynamic secrets#

Each login a dynamic secret gives a machine is recorded from the moment it starts being issued until it is removed, and each certificate an SSH user secret issues from when it's issued until it's revoked, in the secret's own Audit History too.

Event

Code

Severity

A machine's read started issuing it a login

secret.dynamic.mint.start

Info

Login issued to a machine, or issuing it failed

secret.dynamic.mint

Notice, Warning when it failed

Login extended by a machine's read

secret.dynamic.renew

Info, Warning when the database or node refused the new expiry

Login missing from its database, or no longer as issued, put back, such as after Redis restarts

secret.dynamic.restore

Notice, Warning when it couldn't be checked

Login removed from its database or Windows host, at the end of its lease or by hand

secret.dynamic.revoke

Notice, Warning when it failed, High when the Burrow stopped trying once the login's own expiry had already ended it, or its node was force removed

Lease policy, password, or issuing on or off changed

secret.dynamic.policy

Notice

Connection and grants tested, or a test account made on a node

secret.dynamic.test

Info

SSH user secret created, with the certificate authority it issues from

secret.dynamic.authority

Warning

Certificate issued to a machine

secret.dynamic.certificate

Notice

Certificate revoked, with why

secret.dynamic.certificate.revoke

Notice

Rotated secrets#

Each change of a rotated secret's password is recorded as it starts and as it ends, however it went, with the account and its node or server. The password itself is never recorded.

Event

Code

Severity

Rotated secret created, or its host, services, account, node or connection changed

secret.rotated.set

Notice

An account's password checked where the account is, before a secret is saved or moved

secret.rotated.check

Info, Warning when it isn't the account's or couldn't be checked

A new password started on its way to the account, or was sent again

secret.rotated.rotate.start

Info

How a change went: rotated, verified after a restore, failed, waiting for its node or server, unconfirmed, restored to the previous password, needing attention, or lost when the secret was deleted during the change

secret.rotated.rotate

Notice when rotated, Warning with a note; Info when verified; High when it needs attention or was lost; Warning otherwise

A check of a Redis user put its password back or took other passwords off, found something it couldn't put right, or found everything right again after that

secret.rotated.keep

Warning, Info when everything is right again

A database server's roles or users listed through an admin connection, for a rotated secret's form

secret.rotated.accounts

Info

A node's accounts listed for a rotated secret's form

node.accounts.list

Info

Event

Code

Severity

Share link created

share.create

Warning

A secret's share links viewed

share.list

Notice

Share link opened

share.open

Warning

Opening refused: a wrong passphrase, or a members-only link opened by someone who isn't one

share.open.denied

Warning

Share link destroyed after too many wrong passphrases

share.destroyed

High

Share link revoked

share.revoke

Notice

Share link expired

share.expired

Info

Machine reads and refusals#

Each secret a machine reads is also its own secret.read entry, naming the client that read it.

Event

Code

Severity

A machine listed the projects it can read

machine.projects.list

Info

A machine listed the secrets it can read

machine.secrets.list

Info

A machine read a whole environment

machine.env.read

Info

A machine started watching everything it can read

machine.watch

Info

A machine started watching an environment

machine.env.watch

Info

A machine request refused at sign-in

machine.auth.denied

Warning, High for a bad signature or a replayed request

A machine refused for calling from an address outside the allowlist

machine.ip.denied

Warning

Machines#

Event

Code

Severity

Machine added through an invitation

machine.bootstrap

Notice

GitHub Actions, GitLab CI/CD or Bitbucket Pipelines machine added

machine.oidc.add

Notice

Machine enrolled through a machine token

machine.enroll

Notice

Machine approved

machine.approve

Notice

Machine renamed

machine.rename

Notice

Machine disabled

machine.disable

Warning

Machine enabled

machine.enable

Notice

Machine revoked

machine.revoke

Warning

Project access granted, changed or removed

machine.access.change

Warning

Machine disabled by a canary it read

machine.disable.canary

High

Machine reached the end of its lifetime

machine.expired

Info

Machine ended its own lifetime

machine.expire.self

Info

Expired machines removed after about a month

machine.purged

Notice

Invitations and machine tokens#

Event

Code

Severity

Machine invitation created

machine.token.create

Notice

An invitation's command copied again

machine.token.reveal

Notice

Invitation revoked

machine.token.revoke

Notice

Registration through an invitation refused

machine.bootstrap.denied

Warning

Machine token created, with its grants

machine.mtoken.create

Warning

A machine token's command copied again

machine.mtoken.reveal

Warning

Machine token revoked

machine.mtoken.revoke

Notice

Machine token expired

machine.mtoken.expired

Notice

Enrollment through a machine token refused, with the reason

machine.enroll.denied

Warning

Custom domain saved to the URL list, the first time it is used

custom-domain.save

Info

Saved custom domain removed from the URL list

custom-domain.remove

Notice

Certificate authorities#

Every change to your certificate authorities, by a member or on a CA's own rotation schedule.

Event

Code

Severity

Certificate authorities listed

ca.list

Info

A CA's details opened

ca.view

Info

CA created

ca.create

Notice

CA renamed

ca.rename

Notice

CA disabled

ca.disable

Warning

CA enabled

ca.enable

Notice

Rotation settings changed

ca.rotation.policy

Notice

New key prepared, by a member or on the CA's rotation schedule

ca.rotation.prepare

Notice

Switched to the new key, by a member or after the switch delay

ca.rotation.activate

Notice

Waiting key removed

ca.rotation.cancel

Notice

Signing key replaced at once

ca.key.replace

Warning

An old key left the trust anchor, once everything it signed had expired

ca.key.remove

Notice

CA deleted

ca.delete

Warning

CA restored

ca.restore

Notice

Deleted CA removed for good with its keys

ca.purge

Notice

Nodes attached or detached, when the CA is created and on every change after

ca.nodes.change

Warning

Nodes#

Each node's token, registration and connections, and every instruction your Burrow sends it, with how it answered.

Event

Code

Severity

Nodes listed

node.list

Info

Node token made

node.invitation.create

Notice

Node token shown again

node.invitation.reveal

Notice

Node token revoked

node.invitation.revoke

Notice

Node registered with a token

node.register

Notice

A registration refused, with why

node.register.denied

Warning

Node approved

node.approve

Notice

Node disabled

node.disable

Warning

Node enabled

node.enable

Notice

Node renamed

node.rename

Notice

Node removed, or its removal started, with the CAs it was detached from and the logins it removes first

node.remove

Warning

Node confirmed its SSH trust is off its host, with no login left there, and was removed

node.removed

Notice

Node force removed, without waiting for it

node.force-remove

Warning

Node connected

node.connect

Info

Node disconnected, with how

node.disconnect

Info

A connection refused. The same refusal again within the hour is counted on the next entry.

node.connect.denied

Warning, High when it may not have come from the node

Node reported a new version, host name or platform

node.details.change

Info, Warning when its platform changed

An instruction sent, and how the node answered it, with what it changed on its host

node.instruction

Info, Warning when it couldn't carry it out or didn't answer

Members and roles#

Event

Code

Severity

Someone invited, on a role

member.invite

High

Member moved to another role

member.role

High

Member's access cut or restored

member.access

High

Member removed, or an invitation withdrawn

member.remove

High

Member list viewed

member.list

Info

Custom role created or changed

role.save

High

Custom role deleted

role.delete

High

Roles viewed

role.list

Info

Single sign-on#

Event

Code

Severity

Single sign-on settings opened

sso.view

Info

Single sign-on changed: the identity provider, a domain, a linked identity or group mappings

sso.change

High

SCIM token created or revoked

sso.scim-token

High

Sign-in#

See Sign-in.

Event

Code

Severity

Sign-in settings opened

sign-in.view

Info

Second factor required, changed or no longer required, with the accepted factors and how many sessions it signed out

sign-in.change

High

Sign-in, sessions and accounts#

Event

Code

Severity

Burrow claimed

burrow.claim

High

Logged in

auth.signin

Notice

Logged out

auth.signout

Notice

A session logged out from the sessions page

session.revoke

Warning

Every other session logged out at once

session.revoke-others

Warning, High when it reached other members

Password changed

account.password

High

Authenticator app turned on

account.totp-enable

High

Authenticator app turned off

account.totp-disable

High

GitHub sign-in disconnected

account.oauth-disconnect

High

Username changed

account.username

Notice

Profile image changed

account.avatar

Info

Feedback sent to RatelKey

feedback.send

Info

Network and remote access#

Event

Code

Severity

Restrict to local network turned on or off

network.restrict.change

Warning

Relay fallback turned on or off

network.relay.change

Notice

Router port forwarding turned on or off

network.port-mapping.change

Warning when on, Notice when off

Domain changed

network.change

Notice

Certificate replaced: uploaded, self-signed or from Let's Encrypt, including renewals

tls.replace

Warning

Burrow restarted

burrow.restart

Notice

Security and rate limits#

Event

Code

Severity

Machine and node approval, or invitation expiry, changed

security.change

Notice

Machine IP allowlist turned on or off

machine.ip.allowlist.toggle

High

Address added to the allowlist

machine.ip.allowlist.add

Notice

Address removed from the allowlist

machine.ip.allowlist.remove

Notice

Rate limits page opened

ratelimit.view

Info

A rate limit changed

ratelimit.change

Warning

Network exempted from the per-address limit

ratelimit.exempt.add

Warning

Exemption removed

ratelimit.exempt.remove

Notice

Requests refused by a rate limit, counted per address each minute

ratelimit.refused

Warning

Address locked out

ratelimit.lockout

High

Lockout lifted

ratelimit.lockout.lift

Notice

Backups#

Event

Code

Severity

Backup taken

backup.taken

Info

Backup failed, with the reason

backup.failed

Warning

Backup downloaded

backup.downloaded

High

Backup checked

backup.verified

Info

Backup deleted

backup.deleted

Notice

Schedule, how many to keep, or location changed

backup.settings

Notice

Burrow restored from a backup

backup.restored

High

Backup passphrase set or replaced

backup.passphrase

High

Encryption and keys#

Event

Code

Severity

Master key rotated

encryption.rotate

Warning

Master key sealed to this machine's TPM

encryption.tpm.enable

Warning

Master key moved from the TPM to a key file

encryption.tpm.disable

Warning

Burrow config, IP data and updates#

Event

Code

Severity

Burrow config saved: display name and auto-install updates

settings.change

Notice

Time format changed

settings.timeformat

Notice

Telemetry reports changed

telemetry.change

Notice

MaxMind credentials saved

geoip.configure

Warning

MaxMind credentials removed

geoip.clear

Notice

IP data turned on

geoip.enable

Notice

IP data turned off

geoip.disable

Notice

IP databases updated by hand

geoip.refresh

Info

Checked for updates

update.check

Info

Update installed

update.apply

Notice

Webhooks#

Event

Code

Severity

Webhook created

webhook.create

Notice

Webhook changed

webhook.update

Notice

Webhook deleted

webhook.delete

Warning

Signing secret revealed

webhook.secret.reveal

Warning

Test sent

webhook.test

Info

Burrow note#

Event

Code

Severity

Note posted

note.post

Notice

Note edited

note.edit

Notice

Note deleted

note.delete

Notice

Console#

See Console.

Event

Code

Severity

Console opened

console.view

Info

Log file downloaded

console.log.download

Warning

Audit log#

Event

Code

Severity

Audit log exported

audit.export

Notice

Retention turned on or off, or its period changed

audit.retention.change

Warning when on, Notice when off

Events older than the retention period cleared

audit.retention.purge

Notice