{% extends "base.html" %} {% block title %}Key Inventory - Janus{% endblock %} {% block inventory_active %}bg-gray-700 text-white{% endblock %} {% block content %}

Key Inventory

All Keys Add Keys Import JSON

Total Keys

{{ summary.total }}

Active

{{ summary.active }}

Usable

{{ summary.usable }}

Invalid

{{ summary.invalid }}

Pending

{{ summary.pending }}

Providers

{{ summary.providers }}

Models

{{ summary.models }}

{% include "inventory_encryption_partial.html" %}
{% include "inventory_best_keys_partial.html" %}

Providers

{% for card in provider_cards %}

{{ card.display_name }}

{{ card.active_keys }} active · {{ card.usable_keys }} usable · {{ card.invalid_keys }} invalid

${{ card.total_credits or 0 }}

{{ card.total_keys }} keys

{% else %}

No upstream keys yet.

{% endfor %}

Credits by Provider

{% for row in credit_summary %}

{{ row.display_name }}

{{ row.key_count }} keys · {{ row.billing_model }}

${{ row.total_remaining }}

{% if row.total_cap and row.total_cap > 0 %}

of ${{ row.total_cap }}

{% else %}

{{ row.billing_model }}

{% endif %}
{% else %}

No credit data yet.

{% endfor %}
{% if top_keys %}

Top Keys by Provider

{% for provider_id, keys in top_keys.items() %}

{{ keys[0].provider_display_name }}

    {% for key in keys %}
  • {{ key.key_masked }} {% if key.credits_remaining is not none %}${{ "%.2f"|format(key.credits_remaining) }}{% else %}—{% endif %}
  • {% endfor %}
{% endfor %}
{% endif %}

Recent Activity

{% if recent_activity %} {% for item in recent_activity %} {% endfor %}
Key Provider Change When
{{ item.key_masked }} {{ item.provider_display_name }} {{ item.previous_status or '—' }} → {{ item.new_status }} {{ item.changed_at }}
{% else %}

No activity yet.

{% endif %}
{% endblock %}