{% extends "base.html" %} {% block title %}Audit log - ci-orchestrator{% endblock %} {% block content %}

Audit log

{% if entries %}
{% for e in entries %} {% set icon_id = "i-server" if e.action.startswith("vm.") else "i-file" if e.action.startswith("cache.") else "i-box" if e.action.startswith("host.") else "i-gear" if e.action.startswith("service.") else "i-alert" %} {% endfor %}
Time User Action Target Result Detail
{{ e.ts | relative_time }} {{ e.user }} {{ e.action }} {{ e.target }} {% if e.result == "ok" %} ok {% elif e.result == "error" %} error {% else %} {{ e.result }} {% endif %} {{ e.detail }}
{% else %}

No audit entries yet.

{% endif %}
{% if entries %} {# Client-side-only filter (C3): no CSP header is set anywhere in this app (see web/app.py / security.py), so a plain inline {% endif %} {% endblock %}