{% extends layout %} {% import "macros.html" as m %} {% block content %}
Sources are declared in configuration, where the whole set is reviewable in one place. There is no page that creates one: a connector holds credentials and reaches into a remote system, and declaring one from a browser would make this surface a way to point the installation somewhere new.
{% if panels.connectors.ok %} {% if panels.connectors.data.connectors %}| Name | Type | Full inventory | Enabled | Installed | Last sync | Outcome | Retry | Enumeration | Status | Documents | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ item.name }} | {{ item.type }} | {{ item.full_inventory_authority or '—' }} | {{ 'yes' if item.enabled else 'no' }} | {{ 'yes' if item.installed else 'no — the plugin is not installed' }} | {{ item.last_synced_at or 'never' }} | {{ item.last_outcome or '—' }} | {{ 'yes' if item.retry_required else 'no' }} | {#- Aggregate counts only. A walk adapting to source latency reads as progress here rather than as a stalled run; nothing about which pages or spaces is surfaced. -#}{%- if item.last_lifecycle and item.last_lifecycle.enumeration_failure_code -%} stopped: {{ item.last_lifecycle.enumeration_failure_code }} {%- elif item.last_lifecycle and item.last_lifecycle.enumeration_timeout_retries -%} {{ item.last_lifecycle.enumeration_timeout_retries }} timeout retr{{ 'y' if item.last_lifecycle.enumeration_timeout_retries == 1 else 'ies' }}, page size {{ item.last_lifecycle.enumeration_page_size or '—' }} {%- elif item.last_lifecycle and item.last_lifecycle.enumeration_reached_empty_page -%} reached explicit end {%- else -%}—{%- endif -%} | {{ item.status or '—' }} | {{ item.documents if item.documents is not none else '—' }} |