{% extends "base.html" %} {% block title %}Job {{ job.id }}{% endblock %} {% block content %}

Job #{{ job.id }} — {{ job.job_type }}

Target: {% if job.target %}{{ job.target.ip_address }}{% else %}—{% endif %}  |  Status: {{ job.status }}  |  Total CVEs in DB: {{ cve_count }}
{% if messages %} {% for m in messages %}
{{ m }}
{% endfor %} {% endif %} {# ---------- Step badges (matches jobs_list) ---------- #}
Steps:
{% if job.has_nmap_xml %} Parse {% else %} Parse {% endif %} {% if job.has_any_findings %} Enrich {% else %} Enrich {% endif %} {% if job.has_nikto_evidence or job.has_nikto_findings %} Nikto {% else %} Nikto {% endif %} {% if job.has_triage_done %} Triage {% else %} Triage {% endif %} {# Report (job-specific) #} {% if latest_report %} Report {% else %} Report {% endif %}

Run Steps

{% csrf_token %}
{% csrf_token %}
{% csrf_token %}
{% csrf_token %}
{% csrf_token %}
Model
{% csrf_token %}
{% csrf_token %}
Model
{% if latest_report %} View Latest Report (v{{ latest_report.version }}) {% endif %}

Pipeline Steps

{% for s in steps %} {% empty %} {% endfor %}
Step Approval
{{ s.step }} {% if s.requires_approval %} {% if s.approved_at %} Approved {% else %}
{% csrf_token %}
{% endif %} {% else %} Not required {% endif %}
No steps configured.

Report Summary (Normalized)

{% if report_groups %} {% for group_name, sections in report_groups.items %}

{{ group_name }}

{% if sections %} {% for sec in sections %}
{{ sec.title }} ({{ sec.count }})
    {% for f in sec.items %}
  • {{ f.severity }} — {{ f.title }}
  • {% endfor %}
{% endfor %} {% else %}

No items.

{% endif %} {% endfor %} {% else %}

No report data available yet.

{% endif %}

Evidences ({{ evidences|length }})

    {% for e in evidences %}
  • #{{ e.id }} — {{ e.kind }} — {{ e.filename }}
  • {% empty %}
  • No evidences yet.
  • {% endfor %}

Findings ({{ findings|length }})

    {% for f in findings %}
  • #{{ f.id }} — {{ f.severity }} — {{ f.title }}
  • {% empty %}
  • No findings yet.
  • {% endfor %}

AI Runs ({{ ai_runs|length }})

    {% for r in ai_runs %}
  • #{{ r.id }} — {{ r.purpose }} — {{ r.status }} {% if r.error %} — {{ r.error }}{% endif %}
  • {% empty %}
  • No AI runs yet.
  • {% endfor %}

AI Triage Items ({{ triage_items|length }})

    {% for t in triage_items %}
  • #{{ t.priority_rank }} — {{ t.severity_adjusted }} — {{ t.finding.title }} (exploitability {{ t.exploitability }}, conf {{ t.confidence }})
  • {% empty %}
  • No triage items yet.
  • {% endfor %}
{% endblock %}