{% extends "base.html" %} {% from "_page_header.html" import page_header %} {% from "_components.html" import badge, identifier, empty_state, pagination, toolbar, operations_journey %} {% block content %} {% call page_header("Ingestion Jobs", "Background processing queue: document ingests and source syncs with their real states, attempts and timing.") %}{% endcall %} {{ operations_journey(source_url="/admin/sources" if can_open_sources else None, document_url="/admin/documents" if can_open_documents else None, current="job") }}
Scope: {{ scope_label }} — counts and rows below cover this scope only. The counters summarise the whole queue in this scope; the table below shows the jobs matching the current filter.
{% if ignored_filters %}Unrecognised {{ ignored_filters | join(" and ") }} filter{{ "s" if ignored_filters | length > 1 else "" }} ignored; the list below is not narrowed by {{ "them" if ignored_filters | length > 1 else "it" }}.
{% endif %} {% if notice %}{{ notice }}
{% endif %} {% if not available %} {{ empty_state("Job queue unavailable", "The job store could not be reached. Check PostgreSQL connectivity and retry.", icon="cloud_off") }} {% else %}{{ label }}
{{ counts[key] }}
{% endfor %}| Type | Source / Document | Queued | Attempt | Status | Failure |
|---|---|---|---|---|---|
|
{{ row.operation_label }}
{{ identifier(row.job.id, "job-" ~ loop.index) }}
|
{{ row.subject }} {% if row.source_linkable %}{{ row.source_name }}{% elif row.source_id %}{{ row.source_name or "Source " ~ (row.source_id | string)[:8] ~ "…" }}{% endif %} |
{{ row.age }} | {{ row.job.attempt_count }} / {{ row.job.max_attempts }} | {% if row.status_label == "Succeeded" %}{{ badge(row.status_label, "ok") }} {% elif row.status_label == "Failed" %}{{ badge(row.status_label, "error") }} {% elif row.status_label == "Running" %}{{ badge(row.status_label, "info") }} {% elif row.status_label == "Retrying" %}{{ badge(row.status_label, "warn") }} {% else %}{{ badge(row.status_label, "neutral") }}{% endif %} | {{ row.failure_code or row.job.last_error_code or "—" }} |