Files
M7XBeastandCursor ff096b51b5 Initial publish of dbt_f2dq (f2dq) package v0.12.1.
Clean package repo for Gitea installs via packages.yml git URL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 17:37:40 +03:00

98 lines
3.8 KiB
SQL

{% macro pub_monitored_from_graph() %}
{% set monitored = [] %}
{% set both = []%}
{% do both.extend(graph.nodes.values()) %}
{% do both.extend(graph.sources.values()) %}
{% set owners_config = f2dq.get_owners_config() %}
{% set select_var = f2dq.f2dq_var('select', none) %}
{% set select_all = true %}
{% set selected_nodes = none %}
{% set selected_tags = none %}
{% if select_var is not none %}
{% set select_all = false %}
{% set selected_nodes = dict() %}
{% set selected_tags = dict() %}
{% for el in select_var %}
{% if el.startswith('tag:') %}
{% do selected_tags.update({el[4:]: True}) %}
{% else %}
{% do selected_nodes.update({el: True}) %}
{% endif %}
{% endfor %}
{% endif %}
{% for el in both %}
{% if el.resource_type in ['model', 'seed', 'source'] %}
{% if f2dq.f2dq_node_config(el, 'monitored') %}
{% set target_name = el.identifier or el.alias or el.name %}
{% if select_all %}
{% set selected = true %}
{% else %}
{% set selected_name = selected_nodes.get(target_name, false) %}
{% set selected_tag = [] %}
{% for tag in el.tags %}
{% if selected_tags.get(tag, false) %}
{% do selected_tag.append(true) %}
{% endif %}
{% endfor %}
{% set selected = selected_name or (selected_tag | length > 0) %}
{% endif %}
{% set metrics_groups = f2dq.f2dq_node_config(el, 'metrics_groups', f2dq.f2dq_var('default_metrics')) %}
{% set additional_metrics = f2dq.f2dq_node_config(el, 'metrics', {}) %}
{% do monitored.append({
'name': f2dq.name_in_db(target_name),
'schema': f2dq.name_in_db(el.schema),
'database': f2dq.name_in_db(el.database),
'time_filter': f2dq.f2dq_node_config(el, 'time_filter', none),
'metrics_groups': metrics_groups,
'additional_metrics': f2dq.metrics_in_db(additional_metrics),
'metrics': f2dq.metrics_in_db(f2dq.final_metrics(metrics_groups, additional_metrics)),
'columns': f2dq.columns_in_db(f2dq.f2dq_node_config(el, 'columns', none)),
'anomaly_detector': f2dq.f2dq_node_config(el, 'anomaly_detector', f2dq.f2dq_var('anomaly_detector', {})),
'owners': f2dq.prepare_model_owners(f2dq.f2dq_node_config(el, 'owners', []), owners_config),
'selected': selected
})
%}
{% endif %}
{% endif %}
{% endfor %}
{{ return(monitored) }}
{% endmacro %}
{% macro get_owners_config() %}
{% set owners_config = f2dq.f2dq_var('owners_config', {}) %}
{{ return (owners_config) }}
{% endmacro %}
{% macro prepare_model_owners(f2dq_owners, owners_config) %}
{% set owners = {} %}
{% set seen_identifiers = {} %}
{% for owner in f2dq_owners if owners_config.get(owner) %}
{% set members = owners_config.get(owner) %}
{% for member in members %}
{% set identifier = member.get('identifier') %}
{% if identifier not in seen_identifiers %}
{% do seen_identifiers.update({identifier: true }) %}
{% do owners.update({
identifier: {
'notify_channel': member.get('type'),
'owner': owner,
'name': member.get('name')
}
}) %}
{% endif %}
{% endfor %}
{% endfor %}
{{ return (owners) }}
{% endmacro %}