# File for specifying database configuration

snowflake:
  # default target when no target is specified
  target: "{{ env_var('DBT_TARGET', 'profile') }}"
  outputs:
    dev:
      type: snowflake
      account: sme-delphi
      user: "{{ env_var('SNOWFLAKE_USER') }}"
      role: "{{ env_var('SNOWFLAKE_ROLE') }}"
      database: "{{ env_var('DESTINATION_SNOWFLAKE_DATABASE', 'dev_engineering') }}"
      warehouse: "{{ env_var('SNOWFLAKE_WAREHOUSE') }}"
      schema: "{{ env_var('DESTINATION_SNOWFLAKE_SCHEMA', env_var('SNOWFLAKE_SCHEMA')) }}"
      private_key_path: "{{ env_var('SNOWFLAKE_PRIVATE_KEY_PATH') }}"
      private_key_passphrase: "{{ env_var('SNOWFLAKE_KEY_PASSPHRASE') }}"
      threads: 16
    qa:
      type: snowflake
      account: sme-delphi
      user: "{{ env_var('SNOWFLAKE_USER') }}"
      role: "{{ env_var('SNOWFLAKE_ROLE') }}"
      database: "{{ env_var('DESTINATION_SNOWFLAKE_DATABASE', env_var('SNOWFLAKE_DATABASE')) }}"
      schema: "{{ env_var('DESTINATION_SNOWFLAKE_SCHEMA', env_var('SNOWFLAKE_SCHEMA')) }}"
      warehouse: "{{ env_var('SNOWFLAKE_WAREHOUSE') }}"
      private_key_path: "{{ env_var('SNOWFLAKE_PRIVATE_KEY_PATH') }}"
      private_key_passphrase: "{{ env_var('SNOWFLAKE_KEY_PASSPHRASE') }}"
      threads: 16
      client_session_keep_alive: true
    prod:
      type: snowflake
      account: sme-delphi
      user: "{{ env_var('SNOWFLAKE_USER') }}"
      role: "{{ env_var('SNOWFLAKE_ROLE') }}"
      database: "{{ env_var('DESTINATION_SNOWFLAKE_DATABASE', env_var('SNOWFLAKE_DATABASE')) }}"
      schema: "{{ env_var('DESTINATION_SNOWFLAKE_SCHEMA', env_var('SNOWFLAKE_SCHEMA')) }}"
      warehouse: "{{ env_var('SNOWFLAKE_WAREHOUSE') }}"
      private_key_path: "{{ env_var('SNOWFLAKE_PRIVATE_KEY_PATH') }}"
      private_key_passphrase: "{{ env_var('SNOWFLAKE_KEY_PASSPHRASE') }}"
      threads: 16
      client_session_keep_alive: true
    # backwards compatibility with current jenkins jobs
    # test target uses SNOWFLAKE_DATABASE/SNOWFLAKE_SCHEMA directly (no DESTINATION_ override)
    # because integration tests seed fixtures and query them in the same schema
    test:
      type: snowflake
      account: sme-delphi
      user: "{{ env_var('SNOWFLAKE_USER') }}"
      role: "{{ env_var('SNOWFLAKE_ROLE') }}"
      database: "{{ env_var('SNOWFLAKE_DATABASE') }}"
      warehouse: "{{ env_var('SNOWFLAKE_WAREHOUSE') }}"
      schema: "{{ env_var('SNOWFLAKE_SCHEMA') }}"
      private_key_path: "{{ env_var('SNOWFLAKE_PRIVATE_KEY_PATH') }}"
      private_key_passphrase: "{{ env_var('SNOWFLAKE_KEY_PASSPHRASE') }}"
      threads: 16
    # TODO: consolidate this target into dev/qa/prod/test — "profile" is a confusing name
    #   and duplicates the dev target. Requires updating Makefile defaults and .env.shadow.
    profile:
      type: snowflake
      account: sme-delphi
      user: "{{ env_var('SNOWFLAKE_USER') }}"
      role: "{{ env_var('SNOWFLAKE_ROLE') }}"
      database: "{{ env_var('DESTINATION_SNOWFLAKE_DATABASE', env_var('SNOWFLAKE_DATABASE')) }}"
      warehouse: "{{ env_var('SNOWFLAKE_WAREHOUSE') }}"
      schema: "{{ env_var('DESTINATION_SNOWFLAKE_SCHEMA', env_var('SNOWFLAKE_SCHEMA')) }}"
      private_key_path: "{{ env_var('SNOWFLAKE_PRIVATE_KEY_PATH') }}"
      private_key_passphrase: "{{ env_var('SNOWFLAKE_KEY_PASSPHRASE') }}"
      threads: 1
      client_session_keep_alive: true
