Configuration Analysis Triage Report
{# Subtitle preserves the pre-migration 3-branch conditional (configuration_analysis_triage.html:135-143) so folder/ project scope appears under the title. #}{% if folder_path %} Folder: {{ folder_path }}{% if is_single_project and single_project_name %} / Project: {{ single_project_name }}{% endif %} — Config, Secrets & Crypto Triage {% elif is_single_project and single_project_name %} Project: {{ single_project_name }} — Config, Secrets & Crypto Triage {% else %} Config, Secrets & Crypto Triage {% endif %}
Priority Band Distribution
{% if render_mode == 'fragment' and not fragment_scripts_enabled %}Gate Classification Funnel
{% if render_mode == 'fragment' and not fragment_scripts_enabled %}Category Breakdown
{% if render_mode == 'fragment' and not fragment_scripts_enabled %}Project Risk Summary
{% if render_mode == 'fragment' and not fragment_scripts_enabled %}Scoring Methodology
This report uses a tiered-gates scoring model that prioritizes configuration, credential, and cryptographic material findings based on their risk characteristics.
{% if scoring_config and scoring_config.gates %} {% for gate in scoring_config.gates %}{{ gate.name | replace('_', ' ') | title }} — {{ gate.band }} (score={{ gate.score }})
-
{% if gate.name == 'GATE_1' %}
- CRYPTO_MATERIAL findings with private_key=True {% elif gate.name == 'GATE_2' %}
- CREDENTIALS with severity CRITICAL or HIGH {% elif gate.name == 'GATE_3' %}
- CONFIG_ISSUES with severity CRITICAL or HIGH {% else %}
- {{ gate.description | default(gate.name) }} {% endif %}
Additive Scoring (Remaining Findings)
- Severity: critical={{ scoring_config.weights.severity_critical|default(0) }}, high={{ scoring_config.weights.severity_high|default(0) }}, medium={{ scoring_config.weights.severity_medium|default(0) }}, low={{ scoring_config.weights.severity_low|default(0) }}
- Risk: 0–{{ scoring_config.weights.risk_max|default(0) }} points (scaled from API risk score)
- VEX resolved: {{ scoring_config.weights.vex_resolved|default(0) }} points
Bands: HIGH ≥ {{ scoring_config.weights.band_high_threshold|default(0) }}, MEDIUM ≥ {{ scoring_config.weights.band_medium_threshold|default(0) }}, LOW ≥ {{ scoring_config.weights.band_low_threshold|default(0) }}, INFO < {{ scoring_config.weights.band_low_threshold|default(0) }}
{% endif %}Project Risk Summary
| Project | CRITICAL | HIGH | MEDIUM | LOW | INFO | Total |
|---|---|---|---|---|---|---|
| {% if domain and row.project_id is defined and row.project_id %} {{ row.project_name }} {% else %} {{ row.project_name }} {% endif %} | {% if row.CRITICAL|default(0) > 0 %}{{ row.CRITICAL }}{% else %}0{% endif %} | {% if row.HIGH|default(0) > 0 %}{{ row.HIGH }}{% else %}0{% endif %} | {% if row.MEDIUM|default(0) > 0 %}{{ row.MEDIUM }}{% else %}0{% endif %} | {{ row.LOW|default(0) }} | {{ row.INFO|default(0) }} | {{ row.total|default(0) }} |
Findings Detail (Top 100 by Priority)
| Title | Category | Severity | Band | Score | Gate | Material Type | Private Key | File Path | Component | Project | VEX Status |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {% if domain and row.project_id and row.version_id and row.id %} {{ row.title|default('—') }} {% else %} {{ row.title|default('—') }} {% endif %} | {% set cat = row.category|default('') %} {% if cat %} {{ cat }} {% else %}—{% endif %} | {{ row.severity|default('—') }} | {{ row.priority_band|default('INFO') }} | {{ row.triage_score|default(0) }} | {{ row.gate_assignment if row.gate_assignment and row.gate_assignment != 'NONE' else '—' }} | {{ row.detail_material_type|default('—') }} | {% if row.detail_private_key is defined and row.detail_private_key is not none and row.detail_private_key|string not in ('', 'None', 'nan') %} {% if row.detail_private_key == true or row.detail_private_key|string|lower == 'true' %} 🔑 Yes {% else %} No {% endif %} {% else %}—{% endif %} |
{% if row.detail_file_path|default('') %}
{{ row.detail_file_path }}
{% else %}—{% endif %}
|
{% if domain and row.project_id and row.version_id and row.component_id %} {{ row.component_name|default('—') }}{% if row.component_version|default('') %} {{ row.component_version }}{% endif %} {% else %} {{ row.component_name|default('—') }}{% if row.component_version|default('') %} {{ row.component_version }}{% endif %} {% endif %} | {% if domain and row.project_id %} {{ row.project_name|default('—') }} {% else %} {{ row.project_name|default('—') }} {% endif %} | {% if row.status is defined and row.status and row.status|string not in ('', 'nan', 'None') %} {{ row.status }} {% else %} — {% endif %} |
VEX Recommendations
Recommended VEX triage actions for un-triaged findings. Apply with fs-report apply-vex.
| Finding ID | Category | Severity | Score | Band | Gate | Recommended Status | Reason |
|---|---|---|---|---|---|---|---|
| {{ rec.finding_common_id|default(rec.finding_id)|default('—') }} | {% set rcat = rec.category|default('') %} {% if rcat %} {{ rcat }} {% else %}—{% endif %} | {{ rec.severity|default('—') }} | {{ rec.triage_score|default(0) }} | {% set rband = rec.priority_band|default('INFO') %} {{ rband }} | {{ rec.gate if rec.gate and rec.gate != 'NONE' else '—' }} | {% set rstatus = rec.recommended_vex_status|default('') %} {% if rstatus %} {{ rstatus }} {% else %}—{% endif %} | {{ rec.reason|default('—') }} |