{% extends "base.html" %} {% block content %} {# ── Maintenance controls ──────────────────────────────────────────── #} {# Multi-service (service selected): Global (left) + Service (right) in one responsive row. Stacks to a single column on mobile. Embedded / All services: Global maintenance takes the full width as before. #} {% if selected_service and service_config is not none %}
{# Left — all-services global maintenance #} {% set config = global_config %} {% include "partials/global_maintenance.html" with context %}
{# Right — per-service maintenance #} {% set config = service_config %} {% set service = selected_service %} {% include "partials/service_maintenance.html" with context %}
{% else %}
{% set config = global_config %} {% include "partials/global_maintenance.html" with context %}
{% endif %} {# ── Compute per-status counts for the summary bar ────────────────── #} {% set n_active = states | selectattr("status", "equalto", "active") | list | length %} {% set n_maintenance = states | selectattr("status", "equalto", "maintenance") | list | length %} {% set n_disabled = states | selectattr("status", "equalto", "disabled") | list | length %} {% set n_env_gated = states | selectattr("status", "equalto", "env_gated") | list | length %} {% set n_deprecated = states | selectattr("status", "equalto", "deprecated") | list | length %} {# ── Page title ───────────────────────────────────────────────────── #}

Routes

{{ states | length }} route{{ 's' if states | length != 1 else '' }} registered {% if n_maintenance > 0 %} · {{ n_maintenance }} in maintenance {% endif %} {% if n_disabled > 0 %} · {{ n_disabled }} disabled {% endif %} {% if selected_service %} · Showing routes for {{ selected_service }} {% endif %}

{# Live indicator #}
Live
{% if states %} {# ── Status summary cards ─────────────────────────────────────────── #}
{{ n_active }}
Active
{{ n_maintenance }}
Maintenance
{{ n_disabled }}
Disabled
{{ n_env_gated }}
Env Gated
{{ n_deprecated }}
Deprecated
{# ── Routes table ─────────────────────────────────────────────────── #}
{% for state in states %} {% set path_slug = path_slug(state.path) %} {% set rate_limit_policy = rate_limit_policies.get(state.path) %} {% include "partials/route_row.html" with context %} {% endfor %}
Path Status Actions
{% include "partials/pagination.html" %}
{% else %} {# ── Empty state ──────────────────────────────────────────────────── #}

No routes registered

Routes appear here once the application starts with ShieldRouter or ShieldMiddleware.

{% endif %} {% endblock %}