# Name your project! Project names should contain only lowercase characters # and underscores. A good package name should reflect your organization's # name or the intended use of these models 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" # These configurations specify where dbt should look for different types of files. # The `model-paths` config, for example, states that models in this project can be # found in the "models/" directory. You probably won't need to change these! model-paths: ["models"] analysis-paths: ["analysis"] test-paths: ["tests"] seed-paths: ["data"] macro-paths: ["macros"] snapshot-paths: ["snapshots"] target-path: "target" # directory which will store compiled SQL files clean-targets: # directories to be removed by `dbt clean` - "target" - "dbt_modules" - "dbt_packages" tests: +store_failures: true # all tests on-run-start: - '{{ create_sps() }}' - '{{ create_udfs() }}' - '{{ sp_create_snapshot_get_stake_accounts() }}' on-run-end: - '{{ apply_meta_as_tags(results) }}' dispatch: - macro_namespace: dbt search_order: - solana-models - dbt_snowflake_query_tags - dbt query-comment: comment: '{{ dbt_snowflake_query_tags.get_query_comment(node) }}' append: true # Snowflake removes prefixed comments. # Configuring models # Full documentation: https://docs.getdbt.com/docs/configuring-models # In this example config, we tell dbt to build all models in the example/ directory # as tables. These settings can be overridden in the individual model files # using the `{{ config(...) }}` macro. models: +copy_grants: true +persist_docs: relation: true columns: true +on_schema_change: "append_new_columns" solana_models: +pre-hook: '{{ fsc_utils.set_query_tag() }}' gold: +post-hook: > {% if 'exclude_change_tracking' not in config.get('tags') %} {% if config.get('materialized') == 'view' %} ALTER VIEW {{ this }} SET CHANGE_TRACKING = TRUE; {% else %} ALTER TABLE {{ this }} SET CHANGE_TRACKING = TRUE; {% endif %} {% endif %} vars: "dbt_date:time_zone": GMT OBSERV_FULL_TEST: False START_GHA_TASKS: False STREAMLINE_INVOKE_STREAMS: False STREAMLINE_RUN_HISTORY: False STREAMLINE_RETRY_UNKNOWN: False UPDATE_SNOWFLAKE_TAGS: True UPDATE_UDFS_AND_SPS: False API_INTEGRATION: '{{ var("config")[target.name]["API_INTEGRATION"] if var("config")[target.name] else var("config")["dev"]["API_INTEGRATION"] }}' EXTERNAL_FUNCTION_URI: '{{ var("config")[target.name]["EXTERNAL_FUNCTION_URI"] if var("config")[target.name] else var("config")["dev"]["EXTERNAL_FUNCTION_URI"] }}' ROLES: | ["INTERNAL_DEV"] core_folders: [ 'silver/core', 'gold/core', 'streamline/core', 'silver/program_logs' ]