{% extends "base.html" %}
{% block title %}Approvals | Suvra{% endblock %}
{% block content %}
Review and decide pending requests.Approvals
{% if message == "approved" %} Approval updated to approved. {% elif message == "denied" %} Approval updated to denied. {% elif message == "executed" %} Approval approved and action executed. {% elif message == "error" %} Failed to update approval{% if error_message %}: {{ error_message }}{% endif %}. {% else %} {{ message }} {% endif %}
{% endif %}Showing {{ result_count }} results
{% if approvals|length == 0 and selected_status == 'pending' %}No pending approvals.
{% endif %}| Request | Status | Actions |
|---|---|---|
|
{{ row.action_summary }} Requested {{ row.age_display }} {% if row.actor and row.actor != "unknown" %}by {{ row.actor }}{% endif %} {% if row.has_risk_context %}
{% if row.risk_context.matched_rule_name %}
{% endif %}
Approval required by: {{ row.risk_context.matched_rule_name }} {% if row.risk_context.matched_rule_description %} {{ row.risk_context.matched_rule_description }} {% endif %} {% endif %} {% if row.risk_context.injection_risk is not none and row.risk_context.injection_risk > 0 %}Input risk score: {{ "%.0f" | format(row.risk_context.injection_risk * 100) }}% {% if row.risk_context.injection_scanner %} via {{ row.risk_context.injection_scanner }} {% endif %} {% endif %} {% if row.risk_context.anomaly_detected %}Behavioral anomaly: {{ row.risk_context.anomaly_severity | capitalize if row.risk_context.anomaly_severity else "Detected" }} {% if row.risk_context.anomaly_triggered_metrics %} — {{ row.risk_context.anomaly_triggered_metrics | join(", ") }} {% endif %} {% endif %} |
{{ row.status }} | {% if row.status == "pending" %} {% else %} Closed {% endif %} View audit trail → |
| No approvals found. | ||
{{ row.decision_display }}
{{ row.explanation_summary }}
{{ row.summary }}
{{ row.action_payload | tojson(indent=2) }}
{% endif %}
{% if row.status == "pending" and ui_permissions.approvals_decide %}