Skip to content

[FEAT] Snowflake External OAuth: Allow access tokens when authenticating with profiles.yml #259

@erlendhbarstad

Description

@erlendhbarstad

Is your feature request related to a problem? Please describe.
When authenticating using oauth to Snowflake with dbt-fusion from VS Code, you are limited to use the Security Integration type Snowflake OAuth. Thus, the following values in your profiles.yml file are required:

  • oauth_client_secret
  • oauth_client_id
  • token (refresh token)

This is also described in your code here.

With the current platform setup we have combined with our security requirements, we like dbt-fusion to support external oauth in Snowflake. Hence, it will be possible to only use access tokens directly to Snowflake in our profiles.yml file. See examples down below.

Is your feature request related to a particular component of the dbt Fusion Engine

  • CLI Features
  • Adapter or Database Driver Features
  • SQL Understanding Features
  • VS Code extension

Describe the solution you'd like
When using dbt Core, you have the possibility to choose whether to use an access token or client ID, secret, and refresh token. The solution is described here.

Preferred profiles.yml when not adding client id+secret:

      type: snowflake
      schema: DBT
      database: DEV
      role: my_role
      authenticator: oauth
      token: **my_access_token_123**
      ...

The current profiles.yml:

     type: snowflake
     schema: DBT
     database: DEV
     role: my_role
     authenticator: oauth
     oauth_client_id: '123'
     oauth_client_secret: '123'
     token: 'my_refresh_token_123'
     ...

Describe alternatives you've considered
Move our developers from an automatic workflow with a pre defined profiles.yml to external browser authentication.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions