Zion Boggan
repos/cti-detection-automation/templates/review.html
zionboggan.com ↗
49 lines · html
History for this file →
1
{% extends "base.html" %}
2
{% block heading %}Rule bundle review{% endblock %}
3
{% block content %}
4
<div class="panel">
5
  <h2>Bundle <span class="mono">{{ manifest.bundle_id }}</span>
6
    <span class="badge {{ status }}">{{ status }}</span>
7
  </h2>
8
  <div class="muted">Generated {{ manifest.generated_at }} &middot; {{ manifest.indicator_count }} indicators &middot; {{ manifest.technique_count }} techniques</div>
9
 
10
  <div class="cards">
11
    <div class="card add"><div class="n">{{ manifest.diff.added }}</div><div class="k">new</div></div>
12
    <div class="card rem"><div class="n">{{ manifest.diff.removed }}</div><div class="k">aged out</div></div>
13
    <div class="card tot"><div class="n">{{ manifest.diff.total }}</div><div class="k">total</div></div>
14
  </div>
15
 
16
  <h3>Indicators by type</h3>
17
  <table>
18
    <tr><th>Type</th><th>Count</th></tr>
19
    {% for kind, count in manifest.counts_by_type.items() %}
20
    <tr><td class="mono">{{ kind }}</td><td>{{ count }}</td></tr>
21
    {% endfor %}
22
  </table>
23
 
24
  <h3>Generated CDB lists</h3>
25
  <table>
26
    <tr><th>List</th><th>Entries</th></tr>
27
    {% for name, size in manifest.cdb_lists.items() %}
28
    <tr><td class="mono">etc/lists/{{ name }}</td><td>{{ size }}</td></tr>
29
    {% endfor %}
30
  </table>
31
 
32
  {% if status == 'pending' %}
33
  <form class="actions" method="post" action="{{ url_for('approve', token=token) }}">
34
    <button class="approve" type="submit">Approve and deploy</button>
35
  </form>
36
  <form class="actions" method="post" action="{{ url_for('reject', token=token) }}">
37
    <input type="text" name="reason" placeholder="Reason (optional)">
38
    <button class="reject" type="submit">Reject</button>
39
  </form>
40
  {% else %}
41
  <p class="muted" style="margin-top:18px;">This bundle has already been {{ status }}. No further action available.</p>
42
  {% endif %}
43
</div>
44
 
45
<div class="panel">
46
  <h2>ATT&amp;CK coverage</h2>
47
  <pre class="mono" style="white-space:pre-wrap;font-size:12px;line-height:1.5;margin:0;">{{ coverage }}</pre>
48
</div>
49
{% endblock %}