{% extends "base.html" %} {% block title %}Audit Log · SD RMM{% endblock %} {% block content %}

Audit Log

Tamper-evident record of privileged actions · {{ "{:,}".format(total) }} entries

Export CSV
{% if integrity_ok %}
🔒 Chain verified — {{ "{:,}".format(integrity_checked) }} entries, hash chain intact.
{% else %}
⚠ INTEGRITY FAILURE — chain breaks at entry #{{ integrity_bad_id }} (verified {{ integrity_checked }} before the break). Records may have been tampered with.
{% endif %}
{% if q or action %}Clear{% endif %} showing {{ rows|length }} (limit {{ limit }})
{% if rows %}
{% for r in rows %} {% set cls = 'bad' if ('fail' in r.action or 'delete' in r.action or r.action in ('edr.action','agent.delete')) else ('warn' if ('toggle' in r.action or 'approve' in r.action or 'revoke' in r.action or r.action.startswith('patch.')) else 'ok') %} {% endfor %}
When (PT)ActorActionTargetDetailIPHash
{{ r.ts| pt('%Y-%m-%d %H:%M:%S') }} {{ r.actor_email }} {{ r.action }} {% if r.target_type %}{{ r.target_type }}{% if r.target_id %}:{{ r.target_id[:24] }}{% endif %}{% else %}—{% endif %} {{ r.detail or '' }} {{ r.ip or '—' }} {{ r.hash[:12] }}…
{% else %}

No audit entries{% if q or action %} match this filter{% endif %} yet.

{% endif %}
{% endblock %}