hosts:
{{ sec.hosts | length }} watched machines and who runs them
{% for h in sec.hosts %}
{{ h.name | e }}
{% if h.owner %}⌂ {{ h.owner | e }}{% endif %}
{% for m in h.managers %}{{ m | e }}{% endfor %}
{% for t in h.threshold_configs %}{{ t | e }}{% endfor %}
{% if h.notification_channels %}{{ h.notification_channels | length }} channel{{ 's' if h.notification_channels | length != 1 }}{% endif %}
{% if h.dyndns %}dyndns{% endif %}
{% if h.is_owner %}{% endif %}
{% endfor %}
{% if not sec.hosts %}
Flags
{% if h.is_owner %}
Full control incl. delete and access lists
Managers
{{ mpick(all_usernames, h.managers, 'host-managers') }}
Edit settings, receive alerts
Monitors
{{ mpick(all_usernames, h.monitors, 'host-monitors') }}
{% else %}
View only
Access
⌂ {{ h.owner | e }}
{% for m in h.managers %}{{ m | e }}{% endfor %}
{% for m in h.monitors %}{{ m | e }}{% endfor %}
{% endif %}
Only the owner can change access
Threshold configs
{{ mpick(all_threshold_configs, h.threshold_configs, 'host-tc') }}
Alert channels
{{ mpick(all_channel_names, h.notification_channels, 'host-channels') }}
No hosts yet — add one above.
{% endif %}
notification_channels:
{{ sec.channels | length }} where alerts go — global unless owned
{% for ch in sec.channels %}
{{ ch.name | e }}
{{ ch.type_label | e }}
{{ ch.min_level | e }}{{ '+' if ch.min_level == 'WARNING' }}
{% if ch.owner %}⌂ {{ ch.owner | e }}{% endif %}
{% for f in ch.fields %}{% if not f.sensitive and f.value %}{{ f.label | lower | e }} {{ f.value | truncate(28) | e }}{% endif %}{% endfor %}
{% if ch.editable %}
{% endif %}
{% endfor %}
{% if not sec.channels %}No channels yet — add one above.
{% endif %}
A channel with an owner (dashed badge) is private to that user.{% if is_admin %} Clear or set the owner in the editor to promote or demote.{% endif %} Channel edits save immediately — no publish step.
threshold_configs:
{{ sec.threshold_configs | length }} named alert rule sets, assigned per host
{{ f.label }}:
{% endfor %}
{% for tc in sec.threshold_configs %}
{{ tc.name | e }}
{% for m in tc.metrics[:3] %}
{{ m.metric | e }}
{%- if m.operator == 'nagios' %} nagios
{%- else %} {{ m.operator }} {{ m.warning if m.warning is not none else '·' }}/{{ m.critical if m.critical is not none else '·' }}
{%- endif %}
{%- if not m.enabled %} (off){% endif %}
{% endfor %}
{% if tc.metrics | length > 3 %}+{{ tc.metrics | length - 3 }} more{% endif %}
{% if tc.name != 'default' %}inherits default{% endif %}
{% if tc.owner %}⌂ {{ tc.owner | e }}{% endif %}
{% if tc.editable %}
{% if tc.name != 'default' %}{% endif %}
{% else %}
{% endif %}
{% endfor %}
{% if is_admin and tc.name != 'default' %}
{% endif %}
users:
{{ sec.users | length }} accounts and their alert subscriptions
{% for u in sec.users %}
{% for f in sec.fields %}{% if f.editable %}
{{ u.username | e }}
{% if u.admin %}admin{% endif %}
{% if u.full_name %}{{ u.full_name | e }}{% endif %}
{% if u.notification_channels %}alerts {{ u.notification_channels | join(', ') | truncate(40) | e }}{% endif %}
{% endfor %}
Flags
Alert channels
{{ mpick(all_channel_names, u.notification_channels, 'user-ch-select') }}
{{ f.label }}: {{ f.description }} (staged with users)
{% endif %}{% endfor %}oauth:
{{ sec.providers | length }} external sign-in providers
{% for p in sec.providers %}
{{ p.name | e }}
{{ p.type | e }}
{% if p.url %}url {{ p.url | truncate(34) | e }}{% endif %}
{% if p.label %}{{ p.label | e }}{% endif %}
{% endfor %}
{% if not sec.providers %}No providers configured.
{% endif %}
server:
{{ server_group | length }} groups ports, timing, persistence, DNS — one place, grouped
{% for s in server_group %}
{% endfor %}
# {{ s.title | lower }}
{% if s.api_section %}{% endif %}
{% for f in s.fields %}
{{ f.key }}
{% if f.editable and s.api_section %}
{% if f.type == 'boolean' %}
{% elif f.type in ('number', 'port', 'size') %}
{% elif f.type == 'list' %}
{% else %}
{% endif %}
{% elif f.sensitive %}
••••••••
{% elif f.type == 'boolean' %}
{{ 'enabled' if f.value else 'disabled' }}
{% elif f.type == 'list' %}
{{ f.value | join(', ') if f.value else '—' }}
{% else %}
{{ f.value if f.value is not none and f.value != '' else '—' }}
{% endif %}
{% if f.description %}{{ f.description }}{% endif %}
{% endfor %}