feat(triage): pipeline-generate the triage report tables #8
Loading…
Reference in a new issue
No description provided.
Delete branch "fm/dse-security-reports-triage-template"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The captain asked for the triage report's table entries to be produced reproducibly by the pipeline instead of hand-copied into the scratch document. This ports the triage report into the repo as
reports/defender-triage.typin the merged cli-cloud-bi theme and generates all four tables from the derived JSONs with Typst code, while the authored analysis prose stays verbatim.How the tables are generated
problemslayer; every cell value is computed from the data -- CVE count, CVSS range, Exploit, Trivy agreement, affected systems, and the new column Linux-Evidenz unzuverlässig is purely derived: Windows platform ->— (Windows), defender-only without rpm/pip counter-evidence ->ja (Index), rpm/pip/Trivy-backed ->nein (Evidenz).config/systems.csv.upstreamPackages(RPM release tag.ngx, the upstream nginx repo) in both lanes (stdlib + polars, byte-identical, tests extended) so the nginx Upstream row renders from data.Three hand values the generated table corrects
The scratch tables were hand-copied; three cells contradict the caches this render uses, and the pipeline now shows the derived value:
windows_server_*tokens (41 on all three servers); P5's own prose cites 47 (cop01) / 43 (dor01, ent01) "insgesamt am OS-Cluster".uname -randconfig/systems.csvcarries aliases/addresses for all 7 units, so those stale gap notes are gone;sec-check errornow shows uniformly (it applies to all 7 units), and the VS ssh.cfg note is kept.Validation
.local/(never committed): generated tables reproduce the scratch content row-for-row and value-for-value except the three corrections above; the derived Linux-Evidenz column matches the hand-set one on all 15 CVE rows.just repro: both reports render byte-identical twice (defender-findings+ newdefender-triage).just test(15 passed),just lint,just fmt,just py-crosscheck,just py-reprogreen; fixture lane renders the template with empty fallbacks and a synthetic-fixture warning box.