{% extends "base.html" %} {% block title %}{{ title }} settings — {{ library_name() }}{% endblock %} {% block content %}
{% include "_partials/settings_sidebar.html" %}

{{ title }}

{{ intro | safe }}

{% if message %}

{{ message }}

{% endif %} {% if error %}

{{ error }}

{% endif %}
{% for row in rows %} {% endfor %}
Setting Value Reset
{{ row.display_name }}
{{ row.key }}
{{ row.desc.help_text }} {% if row.env_overridden %} ⚠ This parameter was set by environment variable {{ row.env_var }} at start time and cannot be modified here. Contact your system administrator to make changes. {% endif %}
{% if row.desc.widget == 'shortcut_picker' %}
{% if not row.env_overridden %} {% endif %} {% elif row.is_bool %} {% elif row.is_literal %} {% if row.availability_warning %} {{ row.availability_warning | safe }} {% endif %} {% else %} {{ row.type_repr }}{% if row.desc.nullable %}, optional{% endif %}. Default: {{ row.desc.default if row.desc.default is not none else 'unset' }} {% endif %}
{% if is_system %}

System-tier settings · changes audited under the site_setting entity type.

{% else %}

Librarian-tier settings · changes audited under the site_setting entity type.

{% endif %} {% if secret_rows %}

API Keys

Stored encrypted at rest. Environment variables for each key take precedence when set.

{% if not key_configured %}

Secret storage is disabled. Set COMPENDIUM_SECRET_KEY in your environment to enable. Run compendium keygen --secret to generate a key, then restart the service.

{% elif canary_mismatch %}

Key mismatch: COMPENDIUM_SECRET_KEY does not match the key used to encrypt stored secrets. Restore the original key, or clear the stored values below and re-enter them with the new key.

{% endif %}
{% for row in secret_rows %} {% endfor %}
Key Value Clear
{{ row.display_name }}
{{ row.key }}
{{ row.desc.help_text }} {% if row.env_overridden %} ⚠ Overridden by environment variable {{ row.env_var }}. The DB value is stored but not read while the env var is set. {% endif %}
{% if row.env_overridden %} {% elif not key_configured or canary_mismatch %} {% else %} {% if row.db_set %}Currently set. Enter a new value to rotate, or use Clear to remove.{% endif %} {% endif %}

Values are never logged in plaintext. Backup: use compendium backup --include-secret-key to bundle the encryption key with the backup file, or manage it separately (recommended).

{% endif %}
{% endblock %}