A stored log, timeline_entries, with one row per thing that happened. Each source writes its row in the same transaction as its own record, so the history outlives the 30/90/365-day retention of the tables it points to: - alert events (core/alerts._add_event): fired, resolved, acknowledged, went silent, readings back; - finished Ansible runs (executor, and the startup sweep of interrupted runs): changed something, changed nothing, failed, dry run; - audit rows (core/audit.log_audit): Steward's settings, users and access, sign-ins, backups. Actions another writer records are left to it. Entries carry a kind (fixed) and an area (Service, Host OS, Hardware, Storage, Network, Security, Monitoring). Settings → Timeline edits the areas and each type's area and visibility; both are applied when the timeline is read, so a change re-sorts past entries and a hidden type comes back when shown. Kept forever unless a retention is set. The first start fills the timeline from the last 90 days of records once, skipping any already covered. A host rename carries its entries. UI: Timeline in the sidebar (filter by host, area, kind; scrolls on), a History card on each host page. MCP: get_timeline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
1.0 KiB
HTML
18 lines
1.0 KiB
HTML
{# settings/_tabs.html — the Settings section's pages as one strip of tabs, in
|
|
each page's section_tabs block above the trail, as Ansible's are (#5377).
|
|
`active` names the page or the one it sits under. #}
|
|
{% from "_macros.html" import section_tabs %}
|
|
{% macro settings_tabs(active) -%}
|
|
{{ section_tabs([("general", "General", "/settings/general/"),
|
|
("thresholds", "Thresholds & Retention", "/settings/thresholds/"),
|
|
("notifications", "Notifications", "/settings/notifications/"),
|
|
("reports", "Reports", "/settings/reports/"),
|
|
("backups", "Backups", "/settings/backups/"),
|
|
("timeline", "Timeline", "/settings/timeline/"),
|
|
("auth", "Authentication", "/settings/auth/"),
|
|
("users", "Users", "/settings/users/"),
|
|
("ansible", "Ansible", "/settings/ansible/"),
|
|
("plugins", "Plugins", "/settings/plugins/"),
|
|
("system", "System", "/settings/system/")], active, "Settings") }}
|
|
{%- endmacro %}
|