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

Contract {{ contract.id }} {{ contract.version }}

Back to versions

Download JSON Edit

Name
{{ contract.name }}
{% if contract.description and contract.description.usage %}
Description
{{ contract.description.usage }}
{% endif %} {% if contract.servers %}
Servers
    {% for s in contract.servers %}
  • {{ s.server }}{% if s.type %} ({{ s.type }}){% endif %}: {% if s.path %}{{ s.path }}{% elif s.dataset %}{{ s.dataset }}{% endif %}
  • {% endfor %}
{% endif %}
{% if datasets %}
Datasets
{% endif %} {% set metrics_summary = metrics_summary | default({}) %} {% set latest_metrics = metrics_summary.get('latest') %} {% set previous_metrics = metrics_summary.get('previous', []) %} {% set chronological_history = metrics_summary.get('chronological_history', []) %} {% set numeric_metric_keys = metrics_summary.get('numeric_metric_keys', []) %} {% if metrics_error %}
Metrics unavailable.
{{ metrics_error }}
{% endif %} {% if numeric_metric_keys and chronological_history %} {% endif %} {% if latest_metrics %}
Metrics
{{ latest_metrics.recorded_label or latest_metrics.recorded_at or 'Latest snapshot' }} {% if latest_metrics.dataset_version %} Dataset {{ latest_metrics.dataset_version }} {% endif %}
{% if latest_metrics.contract_id %}
Contract {{ latest_metrics.contract_id }}{% if latest_metrics.contract_version %}:{{ latest_metrics.contract_version }}{% endif %}
{% endif %}
{% for metric in latest_metrics.metrics %} {% endfor %}
MetricValue
{{ metric.key }} {{ metric.value }}
{% elif not metrics_error %}

No metrics recorded for this contract yet.

{% endif %} {% if previous_metrics %}
Earlier metric snapshots
{% for snapshot in previous_metrics %}
{{ snapshot.recorded_label or snapshot.recorded_at or 'Snapshot' }} {% if snapshot.dataset_version %} Dataset {{ snapshot.dataset_version }} {% endif %}
{% if snapshot.contract_id %}
Contract {{ snapshot.contract_id }}{% if snapshot.contract_version %}:{{ snapshot.contract_version }}{% endif %}
{% endif %}
{% for metric in snapshot.metrics %} {% endfor %}
MetricValue
{{ metric.key }} {{ metric.value }}
{% endfor %}
{% endif %} {% if data_products %}
Data products
{% for entry in data_products %}
{{ entry.product_name }} {% if entry.port_name %} / {{ entry.port_name }} {% endif %}
{{ entry.direction | capitalize }} port{% if entry.port_version %} · version {{ entry.port_version }}{% endif %}
{{ entry.direction }}
{% if entry.custom_properties %}
Custom properties
{{ entry.custom_properties | tojson(indent=2) }}
{% endif %}
{% endfor %}
{% endif %}
{% for s in contract.schema %}
{{ s.name }}
{% for p in s.properties %} {% endfor %}
NameTypeRequired
{{ p.name }}{{ p.physicalType }}{{ 'yes' if p.required else 'no' }}
{% endfor %}
{% if field_quality %}
Field quality rules
{% for field in field_quality %}
{{ field.name }} {% if field.type %}({{ field.type }}){% endif %}
{{ 'Required' if field.required else 'Optional' }}
{% if field.rules %} {% for rule in field.rules %}
{{ rule.title }}
    {% for text in rule.conditions %}
  • {{ text }}
  • {% endfor %}
{% if rule.severity or rule.dimension %}

{% if rule.severity %}Severity: {{ rule.severity }}{% endif %} {% if rule.dimension %}Dimension: {{ rule.dimension }}{% endif %}

{% endif %}
{% endfor %} {% else %}

No quality rules defined for this field.

{% endif %}
{% endfor %} {% else %}

No field-level quality rules defined.

{% endif %} {% if dataset_quality %}
Dataset-level quality rules
{% for section in dataset_quality %}
{{ section.name }}
{% for rule in section.rules %}
{{ rule.title }}
    {% for text in rule.conditions %}
  • {{ text }}
  • {% endfor %}
{% if rule.severity or rule.dimension %}

{% if rule.severity %}Severity: {{ rule.severity }}{% endif %} {% if rule.dimension %}Dimension: {{ rule.dimension }}{% endif %}

{% endif %}
{% endfor %}
{% endfor %} {% endif %} {% if expectations %}
SQL predicates
{% for name, expr in expectations.items() %} {% endfor %}
NamePredicate
{{ name }}{{ expr }}
{% endif %}
{% if server_info %}
Server definition
Server
{{ server_info.server or '—' }}
Type
{{ server_info.type or '—' }}
Format
{{ server_info.format or '—' }}
{% if server_info.path %}
Path
{{ server_info.path }}
{% endif %} {% if server_info.dataset %}
Dataset
{{ server_info.dataset }}
{% endif %} {% if server_info.dataset_id %}
Dataset ID
{{ server_info.dataset_id }}
{% endif %}
{% if server_info.path_pattern or server_info.versioning or server_info.custom %} {% endif %}
{% endif %}
Compatibility matrix
{% if compatibility_versions %}
    {% for entry in compatibility_versions %}
  • {{ entry.status_label }}{{ entry.version }}
  • {% endfor %}
{% else %}

No compatibility verdicts recorded for this dataset yet.

{% endif %}
{% if preview_versions %}
Data preview {% if preview_dataset_id %}
Dataset {{ preview_dataset_id }}
{% endif %}
Showing first 100 rows
{{ preview_versions[0] }} {{ preview_versions[-1] }}

{% else %}

No dataset versions available for preview.

{% endif %}
{% if change_log %}
{% for entry in change_log %}
{{ entry.status_label }} {{ entry.scope_label }}
{% if entry.kind %} {{ entry.kind }} {% endif %}
{% if entry.summary %}

{{ entry.summary }}

{% endif %} {% if entry.constraint %}

Constraint: {{ entry.constraint }}

{% endif %} {% if entry.rule %}

Rule: {{ entry.rule }}

{% endif %} {% if entry.details_text %}
{{ entry.details_text }}
{% endif %}
{% endfor %}
{% else %}

No change log entries available.

{% endif %}
{{ contract | tojson(indent=2) }}
{% endblock %} {% block page_scripts %} {{ super() }} {% if numeric_metric_keys and chronological_history %} {% endif %} {% endblock %}