{{define "source-status"}}{{with .}}{{.Status}}{{else}}Unavailable{{end}}{{end}} {{define "source-facts"}}
Last attempt
{{if .Status}}{{activityTime .Status.LastAttemptAt}}{{else}}Unavailable{{end}}
Last successful sync
{{if .Status}}{{activityTime .Status.LastSuccessfulAt}}{{else}}Unavailable{{end}}
{{end}} {{define "sources"}}
Configured sources · {{len .Items}} on this page
{{range .Items}}

{{template "source-status" .Status}}
{{.Type}} source · {{if .Enabled}}Enabled{{else}}Disabled{{end}}
{{else}}
No configured sources.
{{end}}
{{if .Next}}{{end}}
Select a source to inspect saved documents and processing.
{{end}} {{define "source"}}

{{.Source.ID}}

Saved documents
{{range .Documents.Items}}{{else}}{{end}}
DocumentHead / accepted revisionUpstream stateKnowledge processing
{{shortIdentity .ID}}{{.ID}}
Head {{shortRevision .Revision}}{{.Revision}}
Accepted {{if .AcceptedRevision}}{{shortRevision .AcceptedRevision}}{{else}}Unavailable{{end}}{{if .AcceptedRevision}}{{.AcceptedRevision}}{{else}}Unavailable{{end}}
{{if .Deleted}}Confirmed deletion{{else}}Present{{end}}{{publicStatus .MaintenanceStatus}}
Processing revision{{if .MaintenanceRevision}}{{.MaintenanceRevision}}{{else}}Unavailable{{end}}
{{if .MaintenanceOperationID}}{{end}}
No saved documents on this page.

Sync and processing

{{template "source-facts" .Source}}
Knowledge processing · {{with .Source.Status}}{{.MaintenanceCounts.Committed}} completed · {{.MaintenanceCounts.Queued}} queued · {{.MaintenanceCounts.Retrying}} retrying · {{.MaintenanceCounts.Failed}} failed{{else}}Unavailable{{end}}
About source states

Accepted data and processing are separate states. A later failed sync does not remove the last successful sync or saved accepted revisions. Only a reconciled, saved tombstone confirms deletion; omission from this page does not.

{{end}}