{% extends "base.html" %}{% block title %}Request {{ req.id }}{% endblock %}{% block body %}

Request {{ req.id }} {{ req.status }}

{% if hazards_of(req.detail) %}{% endif %} {% if req.semantic %}{% endif %} {% set ops = operations(req.detail) %}{% if ops %} {% elif req.detail %}{% endif %} {% if req.decided_at %}{% endif %} {% if req.decision_options %}{% endif %}
Agent{{ req.agent.name }}
Session{{ req.session_id or '— (no session id: “This session” is not available for this request)' }}
Patterns{% include "_patterns.html" %}
Reason{{ req.reason or '—' }}
Flags{% include "_hazards.html" %}
Jev{% include "_semantic.html" %}
Operation{% if ops|length > 1 %}s ({{ ops|length }}){% endif %}{% for pats, op in ops %}
{% with constraints=op %}{% include "_constraints.html" %}{% endwith %}{% if pats %}
{% for p in pats %}{{ p }} {% endfor %}
{% endif %}
{% endfor %}
Detail
{{ req.detail | redact | tojson(indent=1) }}
Created{{ req.created_at }}
Decided{{ req.decided_at }} · {{ decision_label(req) }} via {{ req.decided_via }}{% if req.deny_reason %} · “{{ req.deny_reason }}”{% endif %}
Access scope{{ 'Exact operation' if req.decision_options.extent == 'exact' else 'Listed permission patterns' }}{% if req.decision_options.ttl_s %} · {{ req.decision_options.ttl_s // 60 }} minutes{% endif %}
{% if req.status == 'pending' %}
{% with next='/ui/requests/' ~ req.id, in_detail=True %}{% include "_decide.html" %}{% endwith %}
{% endif %}
{% if grants %}
Other permission sources may still allow access. Running operations continue.
{% endif %} {% if rules %}
This decision created {{ rules|length }} standing rules. Manage those rules to change permanent access.
{% endif %} {% if timeline %}

Approval activity

{% for e in timeline %}
{{ e.tool }} · {{ e.decision }} audit #{{ e.id }}
{{ e.ts.strftime('%Y-%m-%d %H:%M:%S') }} UTC{% if e.duration_ms is not none %} · {{ e.duration_ms }} ms{% endif %}{% if e.exit_code is not none %} · exit {{ e.exit_code }}{% endif %}
{% if e.detail.command %}
$ {{ e.detail.command }}
{% elif e.detail.path %}
{{ e.detail.path }}
{% elif e.detail.tool %}
{{ e.detail.server }} · {{ e.detail.tool }}
{% endif %}
{% endfor %}
{% endif %} {% if grants %}

Grants from this request

{% for g in grants %}{% endfor %}
PatternScopeExpiresUsesRevoked
{{ g.pattern }}
{{ g.scope }}
{{ g.expires_at or '—' }}
{{ g.uses_remaining if g.uses_remaining is not none else '∞' }}
{{ g.revoked_at or '' }}
{% endif %} {% endblock %}