{% extends "base.html" %} {% from "components/ui.html" import page_header %} {% block title %}{{ _('Integration Health') }}{% endblock %} {% block content %} {{ page_header( icon_class='fas fa-heartbeat', title_text='Integration Health', subtitle_text='Overview of integration status, last sync results, and credentials expiry.', breadcrumbs=[ {'text': 'Integrations', 'url': url_for('integrations.list_integrations')}, {'text': 'Health'} ] ) }}
{% for r in (rows or []) %} {% set integ = r.integration %} {% endfor %}
{{ _('Provider') }} {{ _('Scope') }} {{ _('Active') }} {{ _('Last sync') }} {{ _('Last status') }} {{ _('Credentials') }} {{ _('Last error') }} {{ _('Actions') }}
{{ integ.name }} {% if integ.is_global %} {{ _('Global') }} {% else %} {{ _('User') }} {% endif %} {% if integ.is_active %} {{ _('Yes') }} {% else %} {{ _('No') }} {% endif %} {% if integ.last_sync_at %} {{ integ.last_sync_at.strftime('%Y-%m-%d %H:%M') }} {% else %} {% endif %} {% if integ.last_sync_status == 'success' %} {{ _('Success') }} {% elif integ.last_sync_status == 'partial' %} {{ _('Partial') }} {% elif integ.last_sync_status == 'error' %} {{ _('Error') }} {% elif integ.last_sync_status %} {{ integ.last_sync_status }} {% else %} {% endif %} {% if r.has_credentials %} {% if r.token_is_expired %} {{ _('Expired') }} {% elif r.token_needs_refresh %} {{ _('Needs refresh') }} {% else %} {{ _('OK') }} {% endif %} {% if r.token_expires_at %}
{{ _('Expires') }}: {{ r.token_expires_at.strftime('%Y-%m-%d %H:%M') }}
{% endif %} {% else %} {{ _('Not configured') }} {% endif %}
{% if integ.last_error %}
{{ integ.last_error }}
{% else %} {% endif %}
{{ _('View') }}
{% endblock %}