{% from "components.html" import dot %}

NETWORK POLICY

{% if network.policy_id %} Open policy {% endif %}
Policy
{% if network.policy_id %} {{ network.policy_name }} {% else %} {{ "temporary edit" if network.policy_tag[0] == "temporary" else "none" }} {% endif %} {{ network.policy_tag[0] }}
Configured
{{ network.configured }}
Rules
{{ network.rules }}
Changed live
{{ network.changed }}
{% for tile in network.tiles %}
{{ tile.label | upper }}
{% if tile.tone and tile.counted %}{{ dot(tile.tone) }}{% endif %} {{ tile.value }}
{{ tile.note }}
{% endfor %}
{% if not network.started %}
The Run has not started The runner configures the network gate when it starts the VM. Hosts and requests show here from then on.
{% elif not network.hosts and not network.allows %}
No request yet This Run's network policy allows nothing, so the agent is not offered http_request. Hosts and requests show here once a changed policy lets the agent ask.
{% else %}

HOSTS · {{ network.hosts_total }}

denied first · a host and a rule open on click
{% for host in network.hosts %} {% set href = base ~ "?host=" ~ (host.host | urlencode) %} {% else %} {% endfor %}
HOST PROTOCOL RULE ALLOWED DENIED LAST REQUEST
{{ host.host }} {{ host.protocol }} {% if network.policy_id and host.rule != "none" %} {{ host.rule }} {% else %} {{ host.rule }} {% endif %} {{ host.allowed }} {{ host.denied }} {{ host.last }}
No host reached yet.

REQUESTS · {{ network.total }} {% if network.host %}· {{ network.host }}{% endif %}

{% if network.host %} Every host {% endif %} {% for key, label in network.filters %} {% set href = base ~ ("" if key == "all" else "?decision=" ~ key) %} {{ label }} {% endfor %}
{% for row in network.requests %} {% else %} {% endfor %}
TIME DECISION PROTOCOL HOST RULE REASON
{{ row.time }} {{ row.decision }} {{ row.protocol }} {{ row.host }} {{ row.rule }} {{ row.reason }}
No request yet.
{% endif %}