{% extends "base.html" %} {% from "_page_header.html" import page_header %} {% from "_components.html" import badge, identifier, pagination, empty_state, kv, operations_journey %} {% block content %} {% call page_header(source.name, kind_labels.get(source.kind.value, source.kind.value) ~ " source feeding " ~ (overview.space_name or "an unknown space") ~ ".") %} {% if can_manage %}
{{ notice }}
{% endif %} {{ operations_journey(source_url="/admin/sources/" ~ source.id, source_label=source.name, document_url="/admin/documents?source_id=" ~ source.id, current="source") }}Upload sources are fed by their callers (the Control Plane upload form, the upload API, sync clients); there is nothing for the worker to sync.
{% endif %}No configuration.
{% endif %}Configurations are stored secret-free; credentials never live in the registry.
{% if source.syncable %}No sync has run yet.{% else %}Upload sources are not synchronised.{% endif %}
{% else %}{{ run.discovered }} discovered · {{ run.new }} new · {{ run.changed }} changed · {{ run.unchanged }} unchanged · {{ run.removed }} removed{% if run.failed %} · {{ run.failed }} failed{% endif %}
{% if run.error_code %}{{ run.error_code }}
{% endif %} {% if run.revision %}revision {{ run.revision[:12] }}
{% endif %}These items were discovered but never made searchable. Their content has not changed since the failure, so syncing again will not retry them — retry the failed ingest job, or modify the source content.
| Item | Failure | Retryable | Recovery |
|---|---|---|---|
| {{ entry.external_id }} | {{ entry.last_failure_code }} | {% if entry.last_failure_retryable %}Yes{% elif entry.last_failure_retryable is none %}Unknown{% else %}No{% endif %} | {% if entry.last_failure_job_id in reachable_job_ids %}Open the failed ingest job {% elif entry.last_failure_job_id %}The recorded job is unavailable; modify the source content, then sync again. {% else %}Modify the source content, then sync again.{% endif %} |
No documents from this source yet.{% if source.syncable and can_manage %} Run a sync to discover and ingest its content.{% endif %}
{% else %}| Document | Item | State | Updated |
|---|---|---|---|
| {{ item.document.title }} | {{ item.document.external_id }} | {% if item.document.source_deleted %}{{ badge("Retired", "neutral") }} {% elif item.searchable %}{{ badge("Searchable", "ok") }} {% elif item.failed %}{{ badge("Failed", "error") }} {% elif item.latest_state %}{{ badge("Processing", "info") }} {% else %}{{ badge("No version", "neutral") }}{% endif %} | {{ item.updated_at.strftime("%Y-%m-%d %H:%M") if item.updated_at else "—" }} |