diff --git a/.github/workflows/dbt_docs_update.yml b/.github/workflows/dbt_docs_update.yml index 52e99ce2..f22f24ee 100644 --- a/.github/workflows/dbt_docs_update.yml +++ b/.github/workflows/dbt_docs_update.yml @@ -6,7 +6,7 @@ on: - "main" env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -36,7 +36,7 @@ jobs: - name: install dependencies run: | - pip install dbt-snowflake==1.2.0 + pip install dbt-snowflake==${{ secrets.DBT_VERSION }} dbt deps - name: checkout docs branch diff --git a/.github/workflows/dbt_run_adhoc.yml b/.github/workflows/dbt_run_adhoc.yml index e49e14b1..34f40570 100644 --- a/.github/workflows/dbt_run_adhoc.yml +++ b/.github/workflows/dbt_run_adhoc.yml @@ -28,7 +28,7 @@ on: required: true env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -60,7 +60,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/.github/workflows/dbt_run_daily.yml b/.github/workflows/dbt_run_daily.yml index 906b0e25..90a45a79 100644 --- a/.github/workflows/dbt_run_daily.yml +++ b/.github/workflows/dbt_run_daily.yml @@ -7,7 +7,7 @@ on: - cron: '35 0 * * *' env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -36,7 +36,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/.github/workflows/dbt_run_dev_refresh.yml b/.github/workflows/dbt_run_dev_refresh.yml index bebd0692..5bc08d20 100644 --- a/.github/workflows/dbt_run_dev_refresh.yml +++ b/.github/workflows/dbt_run_dev_refresh.yml @@ -8,7 +8,7 @@ on: - cron: '0 6 * * *' env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -37,7 +37,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/.github/workflows/dbt_run_incremental.yml b/.github/workflows/dbt_run_incremental.yml index b7d4f86b..8bdd686b 100644 --- a/.github/workflows/dbt_run_incremental.yml +++ b/.github/workflows/dbt_run_incremental.yml @@ -8,7 +8,7 @@ on: - cron: '0 */1 * * *' env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -37,7 +37,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/.github/workflows/dbt_run_macro_get_token_data.yml b/.github/workflows/dbt_run_macro_get_token_data.yml index 639e8235..d47eab7a 100644 --- a/.github/workflows/dbt_run_macro_get_token_data.yml +++ b/.github/workflows/dbt_run_macro_get_token_data.yml @@ -7,7 +7,7 @@ on: - cron: '*/2 * * * *' env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -36,7 +36,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/.github/workflows/dbt_run_weekly.yml b/.github/workflows/dbt_run_weekly.yml index 64616bc2..a0f089b4 100644 --- a/.github/workflows/dbt_run_weekly.yml +++ b/.github/workflows/dbt_run_weekly.yml @@ -7,7 +7,7 @@ on: - cron: '0 1 * * 0' env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -36,7 +36,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/.github/workflows/dbt_test.yml b/.github/workflows/dbt_test.yml index 54df4efc..24c07e99 100644 --- a/.github/workflows/dbt_test.yml +++ b/.github/workflows/dbt_test.yml @@ -8,7 +8,7 @@ on: - cron: '0 9 * * *' env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -37,7 +37,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/.github/workflows/dbt_test_hourly.yml b/.github/workflows/dbt_test_hourly.yml index 8f6ee661..621b75bc 100644 --- a/.github/workflows/dbt_test_hourly.yml +++ b/.github/workflows/dbt_test_hourly.yml @@ -8,7 +8,7 @@ on: - cron: '20 */1 * * *' env: - DBT_PROFILES_DIR: ./ + DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}" ACCOUNT: "${{ secrets.ACCOUNT }}" ROLE: "${{ secrets.ROLE }}" @@ -37,7 +37,7 @@ jobs: - name: install dependencies run: | - pip3 install dbt-snowflake==1.2.0 cli_passthrough requests click + pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click dbt deps - name: Run DBT Jobs run: | diff --git a/dbt_project.yml b/dbt_project.yml index 40026ce4..a402f1c9 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -5,6 +5,8 @@ name: "solana_models" version: "1.0.0" config-version: 2 +require-dbt-version: ">=1.4.0" + # This setting configures which "profile" dbt uses for this project. profile: "solana" diff --git a/macros/custom_naming_macros.sql b/macros/custom_naming_macros.sql index b8a30718..5aa2c31d 100644 --- a/macros/custom_naming_macros.sql +++ b/macros/custom_naming_macros.sql @@ -15,3 +15,9 @@ {% set split_name = node_name.split('__') %} {{ split_name [1] | trim }} {%- endmacro %} + +{% macro generate_tmp_view_name(model_name) -%} + {% set node_name = model_name.name %} + {% set split_name = node_name.split('__') %} + {{ target.database ~ '.' ~ split_name[0] ~ '.' ~ split_name [1] ~ '__dbt_tmp' | trim }} +{%- endmacro %} \ No newline at end of file diff --git a/macros/dbt/get_merge_sql.sql b/macros/dbt/get_merge_sql.sql deleted file mode 100644 index f80009c3..00000000 --- a/macros/dbt/get_merge_sql.sql +++ /dev/null @@ -1,74 +0,0 @@ -{% macro get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %} - {{ return(adapter.dispatch('get_merge_update_columns', 'dbt')(merge_update_columns, merge_exclude_columns, dest_columns)) }} -{% endmacro %} - -{% macro default__get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) %} - {%- set default_cols = dest_columns | map(attribute="quoted") | list -%} - - {%- if merge_update_columns and merge_exclude_columns -%} - {{ exceptions.raise_compiler_error( - 'Model cannot specify merge_update_columns and merge_exclude_columns. Please update model to use only one config' - )}} - {%- elif merge_update_columns -%} - {%- set update_columns = merge_update_columns -%} - {%- elif merge_exclude_columns -%} - {%- set update_columns = [] -%} - {%- for column in dest_columns -%} - {% if column.column | lower not in merge_exclude_columns | map("lower") | list %} - {%- do update_columns.append(column.quoted) -%} - {% endif %} - {%- endfor -%} - {%- else -%} - {%- set update_columns = default_cols -%} - {%- endif -%} - - {{ return(update_columns) }} - -{% endmacro %} - -{% macro snowflake__get_merge_sql(target, source, unique_key, dest_columns, predicates) -%} - {%- set predicates = [] if config.get('merge_predicates') is none else config.get('merge_predicates') -%} - {%- set dest_cols_csv = get_quoted_csv(dest_columns | map(attribute="name")) -%} - {%- set merge_update_columns = config.get('merge_update_columns') -%} - {%- set merge_exclude_columns = config.get('merge_exclude_columns') -%} - {%- set update_columns = get_merge_update_columns(merge_update_columns, merge_exclude_columns, dest_columns) -%} - {%- set sql_header = config.get('sql_header', none) -%} - - {% if unique_key %} - {% if unique_key is sequence and unique_key is not mapping and unique_key is not string %} - {% for key in unique_key %} - {% set this_key_match %} - DBT_INTERNAL_SOURCE.{{ key }} = DBT_INTERNAL_DEST.{{ key }} - {% endset %} - {% do predicates.append(this_key_match) %} - {% endfor %} - {% else %} - {% set unique_key_match %} - DBT_INTERNAL_SOURCE.{{ unique_key }} = DBT_INTERNAL_DEST.{{ unique_key }} - {% endset %} - {% do predicates.append(unique_key_match) %} - {% endif %} - {% else %} - {% do predicates.append('FALSE') %} - {% endif %} - - {{ sql_header if sql_header is not none }} - - merge into {{ target }} as DBT_INTERNAL_DEST - using {{ source }} as DBT_INTERNAL_SOURCE - on {{ render(predicates | join(' and ')) }} - - {% if unique_key %} - when matched then update set - {% for column_name in update_columns -%} - {{ column_name }} = DBT_INTERNAL_SOURCE.{{ column_name }} - {%- if not loop.last %}, {%- endif %} - {%- endfor %} - {% endif %} - - when not matched then insert - ({{ dest_cols_csv }}) - values - ({{ dest_cols_csv }}) - -{% endmacro %} \ No newline at end of file diff --git a/macros/dbt/get_tmp_relation_type.sql b/macros/dbt/get_tmp_relation_type.sql new file mode 100644 index 00000000..e7c2d778 --- /dev/null +++ b/macros/dbt/get_tmp_relation_type.sql @@ -0,0 +1,4 @@ +{% macro dbt_snowflake_get_tmp_relation_type(strategy, unique_key, language) %} + -- always table + {{ return('table') }} +{% endmacro %} \ No newline at end of file diff --git a/macros/tests/compare_model_subset.sql b/macros/tests/compare_model_subset.sql index 9b00ebac..18aa6242 100644 --- a/macros/tests/compare_model_subset.sql +++ b/macros/tests/compare_model_subset.sql @@ -11,12 +11,12 @@ b as ( ), a_minus_b as ( select * from a - {{ dbt_utils.except() }} + except select * from b ), b_minus_a as ( select * from b - {{ dbt_utils.except() }} + except select * from a ), unioned as ( diff --git a/models/silver/silver___inner_instructions.sql b/models/silver/silver___inner_instructions.sql index 1f7d5089..b3d1491f 100644 --- a/models/silver/silver___inner_instructions.sql +++ b/models/silver/silver___inner_instructions.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ['block_id','tx_id','mapped_instruction_index'], - merge_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))'], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], full_refresh = false ) }} diff --git a/models/silver/silver___instructions.sql b/models/silver/silver___instructions.sql index bd6284d2..36d31325 100644 --- a/models/silver/silver___instructions.sql +++ b/models/silver/silver___instructions.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ['block_id','tx_id','index'], - merge_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))'], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], full_refresh = false ) }} diff --git a/models/silver/silver___post_token_balances.sql b/models/silver/silver___post_token_balances.sql index 760df71c..8a74fad1 100644 --- a/models/silver/silver___post_token_balances.sql +++ b/models/silver/silver___post_token_balances.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ['block_id','tx_id','index'], - merge_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))'], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], full_refresh = false ) }} diff --git a/models/silver/silver___pre_token_balances.sql b/models/silver/silver___pre_token_balances.sql index 66000cc7..ea5899f6 100644 --- a/models/silver/silver___pre_token_balances.sql +++ b/models/silver/silver___pre_token_balances.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ['block_id','tx_id','index'], - merge_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))'], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], full_refresh = false ) }} diff --git a/models/silver/silver__events.sql b/models/silver/silver__events.sql index 023102e1..1bc7ba77 100644 --- a/models/silver/silver__events.sql +++ b/models/silver/silver__events.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ['block_id','tx_id','index'], - merge_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))'], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE','program_id'], post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION", full_refresh = false diff --git a/models/silver/silver__transactions.sql b/models/silver/silver__transactions.sql index f5b984d0..7ca8487d 100644 --- a/models/silver/silver__transactions.sql +++ b/models/silver/silver__transactions.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = "tx_id", - merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','block_id','_inserted_timestamp::DATE'], post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION", full_refresh = false diff --git a/models/silver/silver__transfers.sql b/models/silver/silver__transfers.sql index 5fe0d04b..b07bab65 100644 --- a/models/silver/silver__transfers.sql +++ b/models/silver/silver__transfers.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ["block_id","tx_id","index"], - merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION" ) }} diff --git a/models/silver/silver__votes.sql b/models/silver/silver__votes.sql index 12791769..f36ab6c8 100644 --- a/models/silver/silver__votes.sql +++ b/models/silver/silver__votes.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = "tx_id", - merge_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))'], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','block_id','_inserted_timestamp::DATE'], post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION", full_refresh = false diff --git a/models/silver/swaps/silver__swaps_intermediate_generic.sql b/models/silver/swaps/silver__swaps_intermediate_generic.sql index 3dff1b73..79284bbe 100644 --- a/models/silver/swaps/silver__swaps_intermediate_generic.sql +++ b/models/silver/swaps/silver__swaps_intermediate_generic.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ["block_id","tx_id","swap_index"], - merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION" ) }} diff --git a/models/silver/swaps/silver__swaps_intermediate_jupiterv4.sql b/models/silver/swaps/silver__swaps_intermediate_jupiterv4.sql index 19e127e3..af63fde7 100644 --- a/models/silver/swaps/silver__swaps_intermediate_jupiterv4.sql +++ b/models/silver/swaps/silver__swaps_intermediate_jupiterv4.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ["block_id","tx_id","swap_index"], - merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION" ) }} diff --git a/models/silver/swaps/silver__swaps_intermediate_orca.sql b/models/silver/swaps/silver__swaps_intermediate_orca.sql index 4869390a..a9671f7d 100644 --- a/models/silver/swaps/silver__swaps_intermediate_orca.sql +++ b/models/silver/swaps/silver__swaps_intermediate_orca.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ["block_id","tx_id","swap_index"], - merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], post_hook = "ALTER TABLE {{ this }} ADD SEARCH OPTIMIZATION" ) }} diff --git a/models/silver/swaps/silver__swaps_intermediate_raydium.sql b/models/silver/swaps/silver__swaps_intermediate_raydium.sql index 295e000e..5b5fba17 100644 --- a/models/silver/swaps/silver__swaps_intermediate_raydium.sql +++ b/models/silver/swaps/silver__swaps_intermediate_raydium.sql @@ -1,7 +1,7 @@ {{ config( materialized = 'incremental', unique_key = ["block_id","tx_id","swap_index"], - merge_predicates = ["DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from {{ this }}__dbt_tmp))"], + incremental_predicates = ['DBT_INTERNAL_DEST.block_timestamp::date >= LEAST(current_date-7,(select min(block_timestamp)::date from ' ~ generate_tmp_view_name(this) ~ '))'], cluster_by = ['block_timestamp::DATE','_inserted_timestamp::DATE'], ) }} diff --git a/packages.yml b/packages.yml index 7524d05a..9cbecda4 100644 --- a/packages.yml +++ b/packages.yml @@ -1,7 +1,7 @@ packages: - package: calogica/dbt_expectations - version: 0.7.0 + version: 0.8.2 - package: dbt-labs/dbt_external_tables - version: 0.8.0 + version: 0.8.2 - package: dbt-labs/dbt_utils - version: 0.9.2 \ No newline at end of file + version: 1.0.0 \ No newline at end of file