diff --git a/dbt_project.yml b/dbt_project.yml index e260d36..75d17bd 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -29,11 +29,11 @@ models: deploy: +materialized: ephemeral core: - +tags: core + +tags: lq_core evm: - +tags: evm + +tags: lq_evm marketplace: - +tags: marketplace + +tags: lq_marketplace tests: +store_failures: true # all tests @@ -66,10 +66,10 @@ vars: STREAMLINE_INVOKE_STREAMS: False STREAMLINE_USE_DEV_FOR_EXTERNAL_TABLES: False STUDIO_TEST_USER_ID: '{{ env_var("STUDIO_TEST_USER_ID", "98d15c30-9fa5-43cd-9c69-3d4c0bb269f5") }}' + ENABLE_SNOWFLAKE_SECRETS: '{{ env_var("ENABLE_SNOWFLAKE_SECRETS", "") }}' API_INTEGRATION: '{{ var("config")[target.name]["API_INTEGRATION"] }}' EXTERNAL_FUNCTION_URI: '{{ var("config")[target.name]["EXTERNAL_FUNCTION_URI"] }}' - ENABLE_SNOWFLAKE_SECRETS: '{{ env_var("ENABLE_SNOWFLAKE_SECRETS", "") }}' ROLES: '{{ var("config")[target.name]["ROLES"] }}' config: diff --git a/macros/grants.sql b/macros/grants.sql index 06b13f5..a69bd4b 100644 --- a/macros/grants.sql +++ b/macros/grants.sql @@ -6,25 +6,23 @@ This can be manually run to grant permissions to a new schema: `dbt run-operation apply_grants_by_schema --args '{"schema": "my_schema"}'` #} - {% if target.name in ("prod", "hosted") %} - {%- set outer = namespace(sql="") -%} - {% for role in var("ROLES") %} - {% set sql -%} - {% if schema.startswith("_") %} - REVOKE USAGE ON SCHEMA {{ target.database }}.{{ schema }} FROM {{ role }}; - REVOKE USAGE ON ALL FUNCTIONS IN SCHEMA {{ target.database }}.{{ schema }} FROM {{ role }}; - {%- else -%} - GRANT USAGE ON SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; - GRANT USAGE ON ALL FUNCTIONS IN SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; + {%- set outer = namespace(sql="") -%} + {% for role in fromyaml(var("ROLES")) %} + {% set sql -%} + {% if schema.startswith("_") %} + REVOKE USAGE ON SCHEMA {{ target.database }}.{{ schema }} FROM {{ role }}; + REVOKE USAGE ON ALL FUNCTIONS IN SCHEMA {{ target.database }}.{{ schema }} FROM {{ role }}; + {%- else -%} + GRANT USAGE ON SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; + GRANT USAGE ON ALL FUNCTIONS IN SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; - GRANT SELECT ON ALL TABLES IN SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; - GRANT SELECT ON ALL VIEWS IN SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; - {%- endif -%} - {%- endset -%} - {%- set outer.sql = outer.sql ~ sql -%} - {%- endfor -%} - {{ outer.sql }} - {%- endif -%} + GRANT SELECT ON ALL TABLES IN SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; + GRANT SELECT ON ALL VIEWS IN SCHEMA {{ target.database }}.{{ schema }} TO {{ role }}; + {%- endif -%} + {%- endset -%} + {%- set outer.sql = outer.sql ~ sql -%} + {%- endfor -%} + {{ outer.sql }} {%- endmacro -%} {% macro apply_grants_to_all_schema() %} diff --git a/macros/marketplace/defillama/udfs.yaml.sql b/macros/marketplace/defillama/udfs.yaml.sql index 275b267..b0fced4 100644 --- a/macros/marketplace/defillama/udfs.yaml.sql +++ b/macros/marketplace/defillama/udfs.yaml.sql @@ -16,7 +16,7 @@ live.udf_api( 'GET', concat('https://api.llama.fi', PATH, '?', utils.udf_object_to_url_query_string(QUERY_ARGS)), - {}, + {'Accept': '*/*', 'User-Agent': 'livequery/1.0 (Snowflake)', 'Host':'api.llama.fi', 'Connection': 'keep-alive'}, {} ) as response @@ -33,7 +33,7 @@ live.udf_api( 'POST', CONCAT('https://api.llama.fi', PATH), - {}, + {'Accept': '*/*', 'User-Agent': 'livequery/1.0 (Snowflake)', 'Host':'api.llama.fi', 'Connection': 'keep-alive'}, BODY ) as response diff --git a/models/deploy/core/_utils.yml b/models/deploy/core/_utils.yml index b69fe2b..80fcb8b 100644 --- a/models/deploy/core/_utils.yml +++ b/models/deploy/core/_utils.yml @@ -1,3 +1,4 @@ +version: 2 models: - name: _utils columns: diff --git a/models/mapping_tables/_eth__decoded_logs.sql b/models/mapping_tables/_eth__decoded_logs.sql index 31eb4ca..6afcf20 100644 --- a/models/mapping_tables/_eth__decoded_logs.sql +++ b/models/mapping_tables/_eth__decoded_logs.sql @@ -1,6 +1,6 @@ {{ config( materialized = 'view', - grants = {'+select': var('ROLES')} + grants = {'+select': fromyaml(var('ROLES'))} ) }} SELECT * diff --git a/models/mapping_tables/_eth__logs.sql b/models/mapping_tables/_eth__logs.sql index 71992f2..f430b00 100644 --- a/models/mapping_tables/_eth__logs.sql +++ b/models/mapping_tables/_eth__logs.sql @@ -1,6 +1,6 @@ {{ config( materialized = 'view', - grants = {'+select': var('ROLES')} + grants = {'+select': fromyaml(var('ROLES'))} ) }} SELECT * diff --git a/models/mapping_tables/_evm__abi_map.sql b/models/mapping_tables/_evm__abi_map.sql index 4f01b09..0ecbaba 100644 --- a/models/mapping_tables/_evm__abi_map.sql +++ b/models/mapping_tables/_evm__abi_map.sql @@ -1,6 +1,6 @@ {{ config( materialized = 'view', - grants = {'+select': var('ROLES')} + grants = {'+select': fromyaml(var('ROLES'))} ) }} SELECT diff --git a/models/mapping_tables/_evm__contracts_map.sql b/models/mapping_tables/_evm__contracts_map.sql index 5fc6d22..73836b4 100644 --- a/models/mapping_tables/_evm__contracts_map.sql +++ b/models/mapping_tables/_evm__contracts_map.sql @@ -1,6 +1,6 @@ {{ config( materialized = 'view', - grants = {'+select': var('ROLES')} + grants = {'+select': fromyaml(var('ROLES'))} ) }} SELECT diff --git a/models/mapping_tables/_evm__native_symbol_map.sql b/models/mapping_tables/_evm__native_symbol_map.sql index 2fadec4..f08a081 100644 --- a/models/mapping_tables/_evm__native_symbol_map.sql +++ b/models/mapping_tables/_evm__native_symbol_map.sql @@ -1,6 +1,6 @@ {{ config( materialized = 'view', - grants = {'+select': var('ROLES')} + grants = {'+select': fromyaml(var('ROLES'))} ) }} WITH blockchain_assets AS (