{% extends "base.html" %} {% from "_page_header.html" import page_header %} {% from "_components.html" import badge, identifier, pagination, empty_state, toolbar, operations_journey %} {% block content %} {% call page_header("Sources", "Where knowledge comes from: uploads, mounted folders and Git repositories, each feeding one knowledge space. Connector-backed sources are synchronised by the worker.") %} {% if can_manage and can_manage_filesystem %} Add source {% endif %} {% endcall %} {% if notice %}
{{ notice }}
{% endif %} {% if ignored_filters %}Unrecognised {{ ignored_filters | join(" and ") }} filter{{ "s" if ignored_filters | length > 1 else "" }} ignored; all other filters remain applied.
{% endif %} {{ operations_journey(current="source") }}| Name | Type | Space | Status | Documents | Last sync |
|---|---|---|---|---|---|
|
{{ source.name }}
{{ identifier(source.id) }}
|
{{ kind_labels.get(source.kind.value, source.kind.value) }} | {{ spaces.get(source.space_id, "—") }} | {% if source.status.value == "active" %}{{ badge("Active", "ok") }} {% elif source.status.value == "paused" %}{{ badge("Paused", "warn") }} {% else %}{{ badge("Deleted", "neutral") }}{% endif %} {% set sync_badge = sync_badges.get(source.sync_state.value) %} {% if sync_badge %} {{ badge(sync_badge[0], sync_badge[1]) }}{% endif %} | {{ counts.get(source.id, 0) }} | {% if source.last_sync_at %}{{ source.last_sync_at.strftime("%Y-%m-%d %H:%M") }}{% elif source.syncable %}Never{% else %}—{% endif %} |