{% extends "config/base.html" %} {% import "site_shell/_macros.html" as ui %} {% block title %}API Tokens - Pychestrate Configuration{% endblock %} {% block content %} {% set form = form_data or {} %}
Service accounts are non-human identities for CI and automation: they have no password, get roles like any user (on the Users page), and authenticate with API tokens. Every token acts with its account's permissions and never more. Manage your own tokens under Account › API tokens.
| Login name | Display name | Status | Active tokens | Created | Actions |
|---|---|---|---|---|---|
| {{ account.login_name }} | {{ account.display_name }} | {{ ui.status_badge(account.status) }} | {{ account.active_token_count }} | {{ account.created_at | format_datetime }} |
{% if can_manage_tokens and account.status == 'ACTIVE' %}
{{ ui.icon("add") }} Issue token |
| Account | Name | Token | Access | Status | Last used | Expires | Actions |
|---|---|---|---|---|---|---|---|
| {{ token.login_name }} {% if token.is_service_account %}service account{% endif %} | {{ token.name }} | {{ token.token_hint }}… | {{ token.scope }} | {{ ui.status_badge(token.status) }} | {% if token.last_used_at %}{{ token.last_used_at | format_datetime }}{% else %}never{% endif %} | {{ token.expires_at | format_datetime }} | {% if can_manage_tokens and token.status == 'active' %} {% else %} — {% endif %} |
{% set token_count = tokens | length %}{% set account_count = service_accounts | length %}Total: {{ token_count }} token{{ '' if token_count == 1 else 's' }}, {{ account_count }} service account{{ '' if account_count == 1 else 's' }}
{% endblock %}