{% extends "base.html" %} {% block title %}{% if detail %}{{ runbook.title }} — {% endif %}Runbooks — Data Canvas — ICDEV{% endblock %} {% block content %}
← {% if detail %}All Runbooks{% else %}Data Canvas{% endif %} {% if detail %}

{{ runbook.title }}

{{ runbook.description }}

{% else %}

Data Runbooks

Incident response playbooks for PII exposure, data lineage breaks, classification mismatches, and retention violations.

{% endif %}
{% if detail %} {# ─────────────────────── DETAIL VIEW ─────────────────────────── #}
{{ runbook.severity|upper }} {{ runbook.category }} {{ runbook.status }}
{{ runbook.description }}
Trigger Condition
{{ runbook.trigger_condition or '—' }}
Response Steps
{% if runbook.steps %} {% for step in runbook.steps %}
{{ step.order }}
{{ step.title }}
{{ step.description }}
Owner: {{ step.owner or '—' }} {% if step.sla_minutes %}  ·  SLA: {{ step.sla_minutes }} min{% endif %}
{% endfor %} {% else %}

No steps defined.

{% endif %}
Execution History
{% if executions %} {% for ex in executions %}
{{ ex.status|upper }}  ·  Triggered by: {{ ex.triggered_by or '—' }}  ·  Started: {{ ex.started_at[:16] if ex.started_at else '—' }} {% if ex.completed_at %} ·  Completed: {{ ex.completed_at[:16] }}{% endif %} {% if ex.notes %}
{{ ex.notes }}
{% endif %}
{% endfor %} {% else %}

No executions yet.

{% endif %}
Back to List
{% else %} {# ─────────────────────── LIST VIEW ───────────────────────────── #}
{% if runbooks %} {% for rb in runbooks %}
{{ rb.title }}
{{ rb.severity|upper }} {{ rb.category }} {{ rb.status }}
{{ rb.description }}
{% endfor %} {% else %}
No runbooks yet. Click + New Runbook to create one.
{% endif %}

Response Steps
View Full

New Runbook

{% endif %} {% endblock %}