PromptShield Security Report
Period: {{ report.period.label }} · Generated: {{ report.generated_at }} · Tenant: {{ report.tenant_id }}
{% if pdf_requested and not pdf_available %}
PDF export is not available in this build. Showing HTML — use the browser Print → Save as PDF.
{% endif %}
1. Summary (today)
| Total analyses | {{ report.summary.today.total_analyses }} |
| Blocked | {{ report.summary.today.blocked }} |
| Warned | {{ report.summary.today.warned }} |
| Secrets detected | {{ report.summary.today.secrets_detected }} |
| Average risk score | {{ report.summary.today.average_risk_score }} |
2. Risk distribution (30d)
| Level | Count |
{% for k, v in report.summary.risk_distribution.items() %}
| {{ k }} | {{ v }} |
{% endfor %}
3. Top detectors
| Detector | Count |
{% for d in report.summary.top_detectors %}
| {{ d.name }} | {{ d.count }} |
{% else %}
| No data |
{% endfor %}
4. Compliance
| Framework | Score | Issues / Analyses |
{% for name, fw in report.compliance.items() %}
{% if name in ['GDPR', 'SOC2', 'PCI_DSS', 'ISO27001'] %}
| {{ name }} |
{{ fw.score }}% |
{{ fw.analyses_with_issues }} / {{ fw.total_analyses }} |
{% endif %}
{% endfor %}
5. Recommendations
{% for rec in report.recommendations %}
- {{ rec }}
{% endfor %}
6. Recent analyses (redacted)
| Time | Risk | Policy | Findings |
{% for r in report.recent %}
| {{ r.timestamp[:19] }} |
{{ r.risk_level }} ({{ r.risk_score }}) |
{{ r.policy_action }} |
{{ r.finding_count }} |
{% endfor %}
PromptShield · confidential · no original prompts included