diff --git a/.env.sample b/.env.sample new file mode 100644 index 00000000..46fe26b2 --- /dev/null +++ b/.env.sample @@ -0,0 +1,8 @@ +SF_ACCOUNT=vna27887.us-east-1 +SF_USERNAME= +SF_PASSWORD= +SF_REGION=us-east-1 +SF_DATABASE=SOLANA_COMMUNITY_DEV +SF_WAREHOUSE=FLIPSIDE_COMMUNITY_CURATOR +SF_ROLE=FLIPSIDE_COMMUNITY_CURATOR +SF_SCHEMA=SILVER \ No newline at end of file diff --git a/.gitignore b/.gitignore index fec6df8b..d2045f47 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ logs/ .history/ **/.DS_Store .vscode/ +.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..06af3af0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM ghcr.io/dbt-labs/dbt-snowflake:1.2.latest +WORKDIR /support +RUN mkdir /root/.dbt +COPY profiles.yml /root/.dbt +RUN mkdir /root/solana +WORKDIR /solana +COPY . . +EXPOSE 8080 +ENTRYPOINT [ "bash"] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..2a695b89 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +SHELL := /bin/bash + +dbt-console: + docker-compose run dbt_console + +.PHONY: dbt-console \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..73a35ff4 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: "3.4" + +services: + dbt_console: + build: . + volumes: + - .:/solana + env_file: + - .env diff --git a/macros/create_udfs.sql b/macros/create_udfs.sql index d64d7090..a73cf3bb 100644 --- a/macros/create_udfs.sql +++ b/macros/create_udfs.sql @@ -1,10 +1,13 @@ {% macro create_udfs() %} {% set sql %} - {{ udf_bulk_get_decoded_instructions_data() }}; - {{ udf_bulk_get_validator_metadata() }}; - {{ udf_bulk_get_blocks() }}; - {{ udf_bulk_get_block_txs() }}; - {{ udf_bulk_get_block_rewards() }}; + {% if target.database != "SOLANA_COMMUNITY_DEV" %} + {{ udf_bulk_get_decoded_instructions_data() }}; + {{ udf_bulk_get_validator_metadata() }}; + {{ udf_bulk_get_blocks() }}; + {{ udf_bulk_get_block_txs() }}; + {{ udf_bulk_get_block_rewards() }}; + {% endif %} + {{ create_udf_ordered_signers( schema = "silver" ) }} diff --git a/macros/run_sp_create_prod_community_clone.sql b/macros/run_sp_create_prod_community_clone.sql new file mode 100644 index 00000000..b00cd1bf --- /dev/null +++ b/macros/run_sp_create_prod_community_clone.sql @@ -0,0 +1,8 @@ +{% macro run_sp_create_prod_community_clone() %} +{% set clone_query %} +call solana._internal.create_prod_clone('solana', 'solana_community_dev', 'flipside_community_curator'); +{% endset %} + +{% do run_query(clone_query) %} + +{% endmacro %} \ No newline at end of file diff --git a/profiles.yml b/profiles.yml new file mode 100644 index 00000000..0b4e3ede --- /dev/null +++ b/profiles.yml @@ -0,0 +1,19 @@ +solana: + target: dev + outputs: + dev: + type: snowflake + account: "{{ env_var('SF_ACCOUNT') }}" + # User/password auth + user: "{{ env_var('SF_USERNAME') }}" + password: "{{ env_var('SF_PASSWORD') }}" + role: "{{ env_var('SF_ROLE') }}" + schema: "{{ env_var('SF_SCHEMA') }}" + region: "{{ env_var('SF_REGION') }}" + database: "{{ env_var('SF_DATABASE') }}" + warehouse: "{{ env_var('SF_WAREHOUSE') }}" + threads: 4 + client_session_keep_alive: False + query_tag: solana_curator + config: + send_anonymous_usage_stats: False \ No newline at end of file