{% extends 'generic/object.html' %} {% load i18n %} {% block content %}
{% trans "Zones (CSV)" %} {% trans "Conduits (CSV)" %} {% trans "Flows (CSV)" %} {% if register.requirements %} {% trans "Requirements (CSV)" %}{% endif %} {% trans "Firewall rules (CSV)" %} JSON
{% blocktrans with site=object generated=register.generated|date:"Y-m-d H:i" version=register.version %}Zone and conduit register of {{ site }}, generated {{ generated }} by netbox-ot {{ version }}.{% endblocktrans %}

{% trans "Zones" %} {{ register.zones|length }}

{% for z in register.zones %} {% endfor %}
{% trans "Zone" %}{% trans "Type" %}{% trans "Level" %}{% trans "Parent" %} SL-TSL-A{% trans "Accountable" %}{% trans "Wireless" %} {% trans "Temporary devices" %}{% trans "Devices" %}{% trans "Prefixes" %} {% trans "Risk assessment" %}{% trans "Residual / tolerable" %}
{{ z.zone }}{{ z.type }}{{ z.purdue_level|placeholder }} {{ z.parent|placeholder }}{{ z.sl_target|placeholder }}{{ z.sl_achieved|placeholder }} {{ z.accountable|placeholder }}{{ z.wireless }}{{ z.temporary_devices }} {{ z.devices|placeholder }}{% if z.virtual_machines %}
{{ z.virtual_machines }}{% endif %}{% if z.end_of_support %}
{% trans "End of support" %}: {{ z.end_of_support }}{% endif %}
{{ z.prefixes|placeholder }} {{ z.risk_assessment|placeholder }} {% if z.residual_risk %}{{ z.residual_risk }} / {{ z.tolerable_risk|placeholder }}{% else %}{{ ''|placeholder }}{% endif %}

{% trans "Conduits" %} {{ register.conduits|length }}

{% for c in register.conduits %} {% endfor %}
{% trans "Conduit" %}{% trans "Zones" %}SL-TSL-A{% trans "Enforced by" %} {% trans "Accountable" %}{% trans "Flows (no / unknown / yes)" %}{% trans "Risk assessment" %}
{{ c.conduit }}{{ c.zones }}{{ c.sl_target|placeholder }}{{ c.sl_achieved|placeholder }} {{ c.enforced_by|placeholder }}{{ c.accountable|placeholder }} {{ c.not_allowed }} / {{ c.unknown }} / {{ c.allowed }} {{ c.risk_assessment|placeholder }}

{% trans "Flows" %} {{ register.flows|length }}

{% for f in register.flows %} {% endfor %}
{% trans "From" %}{% trans "To" %}{% trans "Protocol / ports" %}{% trans "Access" %} {% trans "Remote" %}{% trans "Path" %}{% trans "Conduit" %}{% trans "Allowed" %} {% trans "Decided" %}{% trans "Expires" %}{% trans "Last seen" %}
{{ f.from_zone }}{{ f.to_zone }} {{ f.protocol|placeholder }}{% if f.ports %} {{ f.ports }}{% endif %} {% if f.connection != default_connection %}
{{ f.connection }}{% if f.broker_zone %}, {% trans "broker in" %} {{ f.broker_zone }}{% endif %}{% if f.topics %}: {{ f.topics }}{% endif %}
{% endif %}
{{ f.access|placeholder }}{{ f.remote_access }}{{ f.path|placeholder }} {{ f.conduit|placeholder }}{{ f.allowed }} {{ f.decided_by|placeholder }}{% if f.decided_on %}, {{ f.decided_on }}{% endif %} {{ f.expires|placeholder }}{{ f.last_seen|slice:":10"|placeholder }}
{% if register.requirements %}

{% trans "System requirements (IEC 62443-3-3)" %} {{ register.requirements|length }}

{% for r in register.requirements %} {% endfor %}
{% trans "Zone / conduit" %}{% trans "Requirement" %}{% trans "FR" %} {% trans "From SL" %}{% trans "Status" %}{% trans "Countermeasure / evidence" %} {% trans "Assessed" %}
{{ r.zone|default:r.conduit }} {{ r.requirement }} {{ r.foundational_requirement }}{{ r.applies_from_sl|placeholder }} {% if r.status_object %}{% badge r.status bg_color=r.status_object.get_status_color %}{% else %}{% trans "no status" %}{% endif %} {{ r.countermeasure|default:r.evidence|truncatechars:120|placeholder }} {{ r.assessed_by|placeholder }}{% if r.assessed_on %}, {{ r.assessed_on }}{% endif %}
{% endif %}

{% trans "Consistency checks" %}

{% with findings=register.findings summary=register.summary %} {% include 'netbox_ot/inc/checks_table.html' %} {% endwith %} {% endblock %}