{% extends "base.html" %}{% block title %}Keywright · Dashboard{% endblock %}{% block body %}

Dashboard

Requests that need you and agents with active approvals.

Pending requests
{{ pending|length }}
Temporary approvals
{{ lease_count }}
Targets / agents
{{ target_count }} / {{ agent_count }}
Notifier
{{ notifier.driver_id }} {% if notifier.last_error %}
{{ notifier.last_error }}
{% elif notifier.driver_id == 'log' %}
No push channel. Configure
{% endif %}
{% for r in drifted %}
Tools changed on {{ r.name }} {% if r.config.tools_drift.added %}{{ r.config.tools_drift.added|length }} new · {% endif %}{% if r.config.tools_drift.changed %}{{ r.config.tools_drift.changed|length }} changed · {% endif %}{% if r.config.tools_drift.removed %}{{ r.config.tools_drift.removed|length }} removed · {% endif %}review on the Access page
{% endfor %}
{% include "_live.html" %}

Active approvals

View all grants

Only agents with temporary approvals are shown. Standing rules and target defaults still apply. Manage access

{% for entry in access_agents if entry.leases %}
{{ entry.agent.name }} {{ entry.leases|length }} approval{{ 's' if entry.leases|length != 1 else '' }}{% if entry.agent.disabled %} Suspended · new operations blocked{% endif %}
{% for lease in entry.leases %}
{{ 'Retained approval while suspended' if entry.agent.disabled else 'Temporary access' }} · {{ lease.remaining }}{% if lease.scope == 'session' %} · session {{ lease.session_id }}{% elif lease.scope == 'once' %} · once per listed scope{% endif %}
{{ lease.label }}
{% if lease.constraints %}
Operation constraints{% with constraints=lease.constraints %}{% include "_constraints.html" %}{% endwith %}
{% endif %} {% for g in lease.grants %}
{{ g.pattern }}
{% endfor %} {% if lease.request %}
{{ lease.request.reason }}
Approval and activity · {{ lease.request.id }}{% endif %}
{% endfor %} {% set approved_targets = entry.targets|selectattr('temporary')|list %} {% if approved_targets %}
Target access details · {{ approved_targets|length }}

Deny rules override approvals. Revoking an approval removes only that permission source. Suspending an agent blocks new operations; running operations continue.

{% for target in approved_targets %}
{{ target.resource.name }}{{ target.resource.kind | upper }}{{ target.state }}{% if target.has_restrictions %}Deny rules apply{% endif %}
Default: {{ target.resource.default_mode }} · {{ target.temporary }} temporary permission scopes
{% if target.allows or target.denies %}
{{ target.allows|length }} standing allows · {{ target.denies|length }} denies {% for p in target.denies + target.allows %}
{{ p.effect }} {{ p.pattern }}
{{ constraint_label(p.constraints) }} · {{ 'All agents' if not p.agent_id else 'This agent' }}
{% if p.constraints %}{% with constraints=p.constraints %}{% include "_constraints.html" %}{% endwith %}{% endif %}
{% endfor %} Manage standing rules
{% endif %}
{% endfor %}
{% endif %}
{% else %}
No active approvals. Agents will appear here when a temporary approval is granted.
{% endfor %}

Recent activity

View all
{% for e in recent %}{% include "_activity_row.html" %}{% else %}

No activity yet.

{% endfor %}View all activity →
{% endblock %} {% block scripts %} {% endblock %}