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>
This commit is contained in:
M7XBeast
2026-10-11 17:37:40 +03:00
co-authored by Cursor
commit ff096b51b5
188 changed files with 5251 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
{% 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 %}
+32
View File
@@ -0,0 +1,32 @@
{% macro get_monitored_columns(schema, database) %}
{{ adapter.dispatch('get_monitored_columns', 'f2dq')(schema, database) }}
{% endmacro %}
{% macro default__get_monitored_columns(table_schema, db_name) %}
{% set relation = api.Relation.create(database=db_name, schema=table_schema) %}
select
table_name,
table_schema,
table_catalog,
column_name,
data_type,
is_nullable
from
{{ relation.information_schema('COLUMNS') }}
where
table_schema = '{{ table_schema }}'
{% endmacro %}
{% macro redshift__get_monitored_columns(table_schema, db_name) %}
select
table_name,
table_schema,
table_catalog,
column_name,
data_type,
is_nullable
from
svv_columns
where
table_schema = '{{ table_schema }}'
{% endmacro %}
+10
View File
@@ -0,0 +1,10 @@
{% macro get_tables() %}
select *
from {{ ref('f2dq_selected') }}
order by name, schema, database, time_filter
{% endmacro %}
{% macro get_schemas() %}
select distinct schema, database
from {{ ref('f2dq_selected') }}
{% endmacro %}
+17
View File
@@ -0,0 +1,17 @@
{% macro save_monitored(monitored_path) %}
{% set monitored_query %}
select
{{ full_table_name('name', 'schema', 'database') }} as {{ f2dq.quote_column('model') }},
time_filter as {{ f2dq.quote_column('time_filter') }},
metrics as {{ f2dq.quote_column('metrics') }},
columns as {{ f2dq.quote_column('columns') }},
anomaly_detector as {{ f2dq.quote_column('anomaly_detector') }},
owners as {{ f2dq.quote_column('owners') }}
from {{ ref('f2dq_selected') }}
{% endset %}
{% set query_result = run_query(monitored_query) %}
{% set monitored_file_path = monitored_path or 'target/f2dq/monitored.json' %}
{% do query_result.to_json(monitored_file_path) %}
{% endmacro %}
+33
View File
@@ -0,0 +1,33 @@
{% macro full_table_name(table_name, table_schema, table_catalog) %}
{{ adapter.dispatch('full_table_name', 'f2dq')(table_name, table_schema, table_catalog) }}
{% endmacro %}
{% macro default__full_table_name(table_name, table_schema, table_catalog) %}
'"' || {{table_catalog}} || '"' || '.' || '"' || {{table_schema}} || '"' || '.' || '"' || {{table_name}} || '"'
{% endmacro %}
{% macro bigquery__full_table_name(table_name, table_schema, table_catalog) %}
'`' || {{table_catalog}} || '`' || '.' || '`' || {{table_schema}} || '`' || '.' || '`' || {{table_name}} || '`'
{% endmacro %}
{% macro full_table_name_values(table_name, table_schema, table_catalog) %}
{% set result = adapter.dispatch('full_table_name_values', 'f2dq')(table_name, table_schema, table_catalog) %}
{{ return (result.strip()) }}
{% endmacro %}
{% macro default__full_table_name_values(table_name, table_schema, table_catalog) %}
"{{table_catalog}}"."{{table_schema}}"."{{table_name}}"
{% endmacro %}
{% macro bigquery__full_table_name_values(table_name, table_schema, table_catalog) %}
`{{table_catalog}}`.`{{table_schema}}`.`{{table_name}}`
{% endmacro %}
{% macro snowflake__full_table_name_values(table_name, table_schema, table_catalog) %}
"{{table_catalog|upper}}"."{{table_schema|upper}}"."{{table_name|upper}}"
{% endmacro %}