{% extends "admin/base_site.html" %}
{% block content %}
DAG {{ dag.id }} ·
team {{ dag.team.name }} ({{ dag.team_id }}) ·
DAG interval {{ dag.sync_frequency_interval|default:"—" }}
| Tier | Schedule | Declared | Ran |
OK | Failed | Running | Cancelled | Suspended | Blocked | No job |
Non-materializing | Last run |
{% for tier in tiers %}
| {{ tier.label }} |
{% if temporal_ui_host %}
schedule ↗
{% else %}—{% endif %}
|
{{ tier.declared }} |
{{ tier.ran }} |
{{ tier.counts.ok }} |
{{ tier.counts.failed }} |
{{ tier.counts.running }} |
{{ tier.counts.cancelled }} |
{{ tier.counts.suspended }} |
{{ tier.counts.blocked }} |
{{ tier.counts.missing }} |
{{ tier.counts.not_materializing }} |
{% if tier.parent_workflow_id %}
{% if tier.run_is_legacy %}legacy {% endif %}{{ tier.started_at }}
{% if temporal_ui_host %}
↗
{% endif %}
{% else %}never ran{% endif %}
|
{% empty %}
| No node on this DAG declares a freshness target, so it has no tiers. |
{% endfor %}
{% for tier in tiers %}
{{ tier.label }} — {{ tier.declared }} materializing node{{ tier.declared|pluralize }}
{% if tier.run_is_legacy %}
This DAG has no schedule for this tier. The statuses below come from its pre-tier
single DAG-wide schedule, {{ tier.parent_workflow_id }}, started
{{ tier.started_at }} — so the nodes may well be materializing, just not on a per-tier schedule.
{% elif tier.parent_workflow_id %}
Last run {{ tier.parent_workflow_id }} started {{ tier.started_at }}.
{% else %}
This tier has never produced a job. Either its schedule does not exist or it has not fired yet.
{% endif %}
| Node | Type | Status | Detail | Run |
{% for node in tier.nodes %}
| {{ node.name }} |
{{ node.node_type }} |
{{ node.status }} |
{{ node.detail }} |
{% if node.workflow_id and temporal_ui_host %}
workflow ↗
{% else %}—{% endif %}
|
{% endfor %}
{% endfor %}
{% if untargeted %}
No declared target ({{ untargeted|length }})
These nodes belong to no tier, so no schedule fires them. Source tables are expected here; a matview or endpoint is not.
| Node | Type |
{% for node in untargeted %}
| {{ node.name }} | {{ node.type }} |
{% endfor %}
{% endif %}
{% endblock %}