{% from "partials/_macros.html" import card_header, pagination_bar %} {% set verdict_cls = { 'malicious': 'bg-red-900/40 text-red-300 border border-red-900/60', 'suspicious': 'bg-amber-900/40 text-amber-300 border border-amber-900/60', 'unknown': 'bg-slate-700/40 text-slate-300 border border-slate-600', 'benign': 'bg-emerald-900/30 text-emerald-300 border border-emerald-900/50', } %} {% set sub_cls = { 'TCC': 'bg-sky-900/40 text-sky-300 border-sky-900/60', 'securityd': 'bg-red-900/30 text-red-300 border-red-900/50', 'syspolicy': 'bg-amber-900/30 text-amber-300 border-amber-900/50', 'Authorization': 'bg-violet-900/40 text-violet-300 border-violet-900/60', 'loginwindow': 'bg-emerald-900/30 text-emerald-300 border-emerald-900/50', 'launchservices':'bg-slate-700/60 text-slate-300 border-slate-600', 'opendirectoryd':'bg-slate-800 text-slate-400 border-slate-700', } %}
{{ card_header("auth events — aggregated patterns") }} {% if events and events.summary %} {# ----- summary cards ----- #}
{{ "{:,}".format(events.total_events) }}
total events
{{ "{:,}".format(events.total) }}
unique patterns
{% for label, cnt in events.summary.items() %}
{{ "{:,}".format(cnt) }}
{{ label }}
{% endfor %}
{% endif %} {# ----- filter bar ----- #}
{# sort toggle — verdict severity vs count #} {% set cur_sort = events.sort if events else 'count' %} {% if events %}{{ "{:,}".format(events.total) }} pattern{{ 's' if events.total != 1 else '' }}{% endif %}
{% if events and events.rows %} {% for e in events.rows %} {% set detail_id = "ae-detail-" ~ loop.index %} {# expandable reasoning row #} {% if e.reasoning %} {% endif %} {% endfor %}
verdict count process subsystem message last seen
{% if e.verdict %} {{ e.verdict }} {% if e.confidence is not none %} {{ "%.0f"|format(e.confidence * 100) }}% {% endif %} {% else %} pending {% endif %} {{ "{:,}".format(e.count) }} {{ e.process }} {% if e.subsystem_short and e.subsystem_short != '—' %} {{ e.subsystem_short }} {% else %} {% endif %} {{ e.message }} {{ e.last_seen }}
{{ pagination_bar("auth-events", events.page, events.total_pages, events.total, events.rows|length, events.per_page, per_page_options) }} {% elif events %}
no patterns match — try clearing the filters
{% else %}
no auth events yet — the monitor tails the macOS unified log; events appear as they occur
{% endif %}