Audit logs

What actions are recorded, how to search and filter the audit log, and how to export it.

What audit logs record

Nimriz keeps a persistent audit log of security-relevant actions taken across your workspace and organization. Audit logs are designed for governance, compliance review, and security investigations-they answer "who did what, when, and from where."

Audit logs are immutable. Entries cannot be edited or deleted. Once an action is recorded, it stays in the log for the duration of the retention period.


Where to find audit logs

Workspace audit log

Every workspace Admin can access the workspace audit log at: Settings → Audit

This view shows actions scoped to your current workspace. It covers link management, team changes, domain events, API key operations, webhook events, and more.

Organization audit log

Organization Owners and Org Admins can access the organization-level audit log at: Settings → Organization → Audit

This view spans all workspaces within the organization. It includes cross-workspace governance actions, org membership changes, billing events, and domain lifecycle events at the org level.


What each log entry contains

Every audit log entry records the following:

FieldDescription
TimestampWhen the action occurred (UTC).
ActionThe specific event that happened (see the action catalog below).
ActorWho performed the action: a user (identified by display name and email), an API key (identified by workspace), or a system process.
Entity typeThe type of resource affected (e.g., link, domain, member, invite).
Entity IDThe stable UUID of the affected resource.
WorkspaceThe workspace context for the action.
OrganizationThe org context, when relevant.
MetadataAction-specific details (e.g., before/after values for changes, field names changed).

Action catalog

Link actions

ActionWhat it records
link.createdA new short link was created. Records domain, slug, destination host, expiration, source (dashboard, API, import, system).
link.destination_updatedThe destination URL of a link was changed. Records before/after destination host.
link.slug_updatedThe slug was changed. Records old and new slug values.
link.expiration_updatedThe expiration date was set, changed, or removed.
link.password_updatedPassword protection was added, changed, or removed.
link.routing_rule_createdA routing rule was added to a link.
link.routing_rule_updatedA routing rule was modified.
link.routing_rule_deletedA routing rule was removed.
link.routing_rule_reorderedThe ordering of routing rules was changed.
link.qr_style_updatedA link's custom QR styling was changed.
link.import_batch_summaryA bulk link import completed. Records number of rows created and failed.

Team and member actions

ActionWhat it records
invite.sentA workspace invitation was created and sent. Records invited email and assigned role.
invite.resentAn invitation was resent.
invite.revokedAn invitation was revoked before acceptance.
invite.acceptedAn invitation was accepted and the invitee joined the workspace.
member.role_changedA member's role was changed. Records old and new role.
member.removedA member was removed from the workspace.

Domain actions

ActionWhat it records
domain.createdA custom domain was added.
domain.verification_updatedThe domain's verification or readiness state changed.
domain.landing_redirect_updatedThe domain's fallback landing URL was changed.
domain.reconnectedA domain was reconnected after a disruption.
domain.disconnectedA domain was disconnected or removed.

Security and authentication actions

ActionWhat it records
workspace.2fa_enforcement_changedWorkspace 2FA enforcement was enabled or disabled.
user.totp_enrolledA user completed TOTP setup.
user.totp_disabledA user disabled their TOTP factor.
user.recovery_codes_regeneratedA user regenerated their recovery codes.
user.totp_reset_by_adminAn operator reset a user's TOTP factor via the support admin flow.

API and integration actions

ActionWhat it records
api_key.createdA workspace API key was generated.
api_key.rotatedA workspace API key was rotated.
api_key.revokedA workspace API key was revoked.
conversion_secret.rotatedThe workspace conversion API signing secret was rotated.
webhook.endpoint_createdA webhook endpoint was added.
webhook.endpoint_updatedA webhook endpoint configuration was changed.
webhook.endpoint_deletedA webhook endpoint was removed.
webhook.secret_rotatedA webhook endpoint's signing secret was rotated.
webhook.test_sentA test event was sent to a webhook endpoint.
webhook.event_replayedA past webhook event was manually replayed.

Library and organization actions

ActionWhat it records
space.createdA space was created.
space.renamedA space was renamed.
space.archivedA space was archived.
tag.createdA tag was created.
tag.renamedA tag was renamed.
utm_preset.createdA UTM preset was created.
utm_preset.updatedA UTM preset was modified.
utm_preset.deletedA UTM preset was deleted.
qr_preset.createdA QR preset was created.
qr_preset.updatedA QR preset was modified.
qr_preset.deletedA QR preset was deleted.

Searching and filtering

From the audit log view, you can filter entries by:

  • Time range-narrow to a specific period.
  • Action-filter to a specific action type or category.
  • Actor-filter to actions by a specific user.
  • Entity type-see only link events, team events, domain events, etc.

For complex investigations, use multiple filters together. For example: all link.* actions by a specific user in the last 7 days.


Exporting audit logs

The audit log can be exported as a CSV for external review or compliance archiving. The export respects the same scope and filters as the on-screen view.

API access is also available:

GET /api/audit-logs?limit=50&offset=0
Authorization: Bearer <WORKSPACE_API_KEY>

For organization-scoped audit data:

GET /api/organization/audit-logs
Authorization: Bearer <WORKSPACE_API_KEY>

Audit log retention

Audit log retention follows the platform's standard data retention schedule. Logs are preserved for as long as the workspace is active. Logs cannot be selectively deleted.


What is not recorded

Audit logs focus on intentional mutations and security-relevant events. The following are not recorded:

  • Routine read operations (viewing a link's analytics, browsing the link list).
  • Redirect events (individual short-link clicks are in analytics, not in audit logs).
  • No-op saves (an edit that results in no actual change does not create an audit entry).

Troubleshooting

I cannot see the Audit section in Settings

Audit log access requires the Admin role in the workspace (or Org Owner/Org Admin for org-level logs). If you do not see the Audit section in Settings, ask your workspace Admin to check your current role.

An action I took is not appearing in the audit log

  • Check the time range filter-the log defaults to a recent window, and your action may be outside the visible range.
  • Confirm you are looking at the correct scope. Workspace-level audit shows workspace actions; organization-level audit shows org-level actions.
  • Some actions (read operations, no-op saves) are intentionally not logged.

I want to see who deleted a link

Link deletions, if supported in your workspace, are captured as link lifecycle events. Filter the audit log to entity_type = link and look for the relevant action. If you do not see a deletion entry, the link may still exist in a disabled or expired state rather than having been deleted.


Related guides