{{ replica.url }}
{% extends "base.html" %} {% block title %}{{ replica.name }} — pngx-controller{% endblock %} {% block content %}
{{ replica.url }}
| # | Started | Duration | Synced | Failed | Triggered by | |
|---|---|---|---|---|---|---|
| {{ run.id }} | {{ run.started_at.strftime('%Y-%m-%d %H:%M:%S') if run.started_at else '—' }} | {% if run.started_at and run.finished_at %} {% set dur = (run.finished_at - run.started_at).total_seconds()|int %} {% if dur < 60 %}{{ dur }}s {% else %}{{ dur // 60 }}m {{ dur % 60 }}s{% endif %} {% elif run.started_at %} running… {% else %}—{% endif %} | {{ run.docs_synced }} | {% if run.docs_failed %} {{ run.docs_failed }} {% else %}0{% endif %} | {{ run.triggered_by }} |
{% if run.timed_out %}timed out{% endif %} |
No sync runs yet.
{% endif %}| Master ID | Replica ID | Status | Last synced | Retries | Error |
|---|---|---|---|---|---|
| {{ entry.master_doc_id }} | {{ entry.replica_doc_id or '—' }} | {{ entry.status }} | {{ entry.last_synced.strftime('%Y-%m-%d %H:%M') if entry.last_synced else '—' }} | {{ entry.retry_count }} | {{ entry.error_msg or '' }} |
No sync map entries yet.
{% endif %}Full resync wipes the sync map for this replica and re-syncs everything from scratch.