{% extends "base.html" %} {% block content %}

Pipeline Scenarios

{% if message %}
{{ message }}
{% endif %} {% if error %}
{{ error }}
{% endif %} {% for scenario in scenario_rows %} {% set record = scenario.latest %} {% set output_details = record.dq_details.get('output', {}) if record else {} %} {% set fails = output_details.get('failed_expectations', {}) if output_details else {} %} {% set schema_errors = output_details.get('errors', []) if output_details else [] %} {% set dq_aux = output_details.get('dq_auxiliary_statuses', []) if output_details else [] %} {% endfor %}
Scenario Latest run Status Violations DQ details Runs Action
{{ scenario.label }}
{{ scenario.key }}
{% if scenario.description or scenario.diagram %} {% endif %}
{% if scenario.description or scenario.diagram %}
{% if scenario.description %}
{{ scenario.description | safe }}
{% endif %} {% if scenario.diagram %} {{ scenario.diagram | safe }} {% endif %}
{% endif %}
Contract
{% if record and record.contract_id %}
{{ record.contract_id }} {% if record.contract_version %} / {{ record.contract_version }} {% endif %}
{% elif scenario.contract_id %}
{{ scenario.contract_id }} {% if scenario.contract_version %} / {{ scenario.contract_version }} {% endif %}
{% else %}
No contract
{% endif %}
Dataset
{% if scenario.dataset_name %} {% if record and record.dataset_version %}
{{ scenario.dataset_name }} / {{ record.dataset_version }}
{% else %}
{{ scenario.dataset_name }}
{% endif %} {% elif record and record.dataset_version %}
{{ record.dataset_version }}
{% else %}
Not recorded
{% endif %}
Run type
{{ record.run_type if record else scenario.run_type }}
{% if record and record.draft_contract_version %}
Draft {% if record.contract_id %} {{ record.draft_contract_version }} {% else %} {{ record.draft_contract_version }} {% endif %}
{% endif %}
{% if record %}
{{ record.status }} {% if output_details.get('warnings') %} {% endif %} {% if output_details.get('errors') %} {% endif %}
{% if record.reason %}
{{ record.reason }}
{% endif %} {% else %} No runs yet {% endif %}
{% if record %} {% if output_details.get('violation_strategy') %}
Strategy: {{ output_details.get('violation_strategy') }}
{% endif %} {% if schema_errors %}
Schema errors: {{ schema_errors | length }}
{% endif %} {% if fails %} {% for key, info in fails.items() %}
{{ key }} ({{ info.count }})
{% endfor %} {% endif %} {% set aux = output_details.get('auxiliary_datasets', []) %} {% if aux %}
{% for entry in aux %}
{{ entry.kind | capitalize }} → {{ entry.dataset }}
{% endfor %}
{% endif %} {% if dq_aux %}
{% for entry in dq_aux %} {% set details = entry.get('details') if entry.get('details') is mapping else {} %}
{{ entry.get('dataset_id') }} status → {{ entry.get('status') }} {% if details.get('draft_contract_version') %} (draft {{ details.get('draft_contract_version') }}) {% endif %}
{% endfor %}
{% endif %} {% if not fails and not schema_errors %} {% if record.violations %} {{ record.violations }} {% else %} 0 {% endif %} {% endif %} {% else %} {% endif %}
{% if record %}
Show

{% for key in ['orders', 'customers'] %} {% if record.dq_details.get(key) %}
{{ key }}
{{ record.dq_details.get(key) | tojson(indent=2) }}
{% endif %} {% endfor %}

{% if fails %} {% for key, info in fails.items() %}
{{ key }}: {{ info.expression }} ({{ info.count }}) {% if info.examples %}
Examples
{{ info.examples | tojson(indent=2) }}
{% endif %}
{% endfor %} {% endif %} {% if schema_errors %}
Schema errors
    {% for err in schema_errors %}
  • {{ err }}
  • {% endfor %}
{% endif %} {% set warnings = output_details.get('warnings', []) %} {% if warnings %}
Warnings
    {% for warning in warnings %}
  • {{ warning }}
  • {% endfor %}
{% endif %} {% set aux = output_details.get('auxiliary_datasets', []) %} {% if aux %}
Auxiliary datasets
    {% for entry in aux %}
  • {{ entry.kind }}: {{ entry.dataset }}{% if entry.path %} ({{ entry.path }}){% endif %}
  • {% endfor %}
{% endif %} {% if dq_aux %}
Auxiliary DQ statuses
    {% for entry in dq_aux %} {% set details = entry.get('details') if entry.get('details') is mapping else {} %}
  • {{ entry.get('dataset_id') }} → {{ entry.get('status') }} {% if details.get('reason') %} ({{ details.get('reason') }}) {% endif %}
  • {% endfor %}
{% endif %}
{% else %} {% endif %}
{{ scenario.run_count }}
{% endblock %}