{% extends "admin/base.html" %} {% block title %}Agent tokens — cmdop admin{% endblock %} {% block content %} {% from 'admin/components/ui.html' import card, input, pagination, tooltip, page_header %}
{{ page_header( 'Agent tokens', 'Long-lived tokens that authenticate agents and integrations against this fleet.', help_anchor='api-keys', actions=[ {'label': 'Refresh', 'kind': 'secondary', 'icon': 'refresh-cw', 'attrs': '@click="load()"'}, {'label': 'New token', 'kind': 'primary', 'icon': 'plus', 'attrs': '@click="openCreate()"'}, ] ) }} {% call card() %}
{# Plan 61/2b-W4 — Bootstrap vs Steady distinction. #} Name {{ tooltip("Bootstrap key: single-use enrollment ticket — revoked at first attach. Steady key: long-lived, safe for bots and headless agents.") }} Prefix {{ tooltip("First few chars of the token (cmdop_…). You'll only see the full token at creation time — copy it then.") }} Created Expires Status Actions
Loading API keys…

Couldn't load API keys.

No API keys yet

Click + New key to mint one for an agent or integration.

{{ pagination('pagination') }} {% endcall %}
{% endblock %}