Skip to content

Connecting Honeycomb Maps to Snowflake with Snowflake OAuth

Honeycomb Maps supports connecting to Snowflake using Snowflake OAuth. Snowflake OAuth is a user-based authentication method, meaning it requires the identity of the end user. That means that maps that use data from Snowflake OAuth connections can't be shared publicly. However, maps can be shared within an organization (business plans only), with each user querying Snowflake as their own identity.

You can read more about Snowflake OAuth on Snowflake's documentation page: https://docs.snowflake.com/en/user-guide/oauth-custom

There are two steps to setting up a Snowflake OAuth connection:

  • Create an OAuth integration in Snowflake
  • Set up a connection in Honeycomb Maps

In Snowflake, create a Snowflake OAuth integration using CREATE SECURITY INTEGRATION.

sql
CREATE OR REPLACE SECURITY INTEGRATION OAUTH_HONEYCOMB_MAPS_INTEGRATION
  TYPE = OAUTH
  OAUTH_CLIENT = CUSTOM
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://app.honeycombmaps.com/api/oauth/callback'
  ENABLED = TRUE
  OAUTH_ENFORCE_PKCE = TRUE
  ALLOWED_ROLES_LIST = ('READ_TEST_DATA') -- Insert the roles that should be able to be used here
  OAUTH_ISSUE_REFRESH_TOKENS = TRUE;

SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('OAUTH_HONEYCOMB_MAPS_INTEGRATION');

In Honeycomb Maps, create a connection

  1. Log into Honeycomb Maps at app.honeycombmaps.com, or your custom business URL.
  2. Go to the 'Connections' page. If you are using the business version of Honeycomb Maps you must be a Honeycomb Maps Admin to configure connections.
  3. Click on 'Set up a new connection', then click on 'Snowflake'

Honeycomb Maps Connections page with the 'Set up a new connection' button at the top

Honeycomb Maps 'Configure Connection' page with Snowflake selected as the connection type and the connection settings fields below

Fill in the following fields. You will need to get some information from Snowflake.

FieldRequired for Snowflake OAuthDetails
Connection NameYesUser-facing name for the connection.
Account IdentifierYesYou can find your Snowflake account identifier in the bottom-left corner of the Snowsight web interface by clicking your account name and selecting Connect a tool to Snowflake.
HostNoLeave blank.
WarehouseYesThe name of the Snowflake warehouse that should be used when Honeycomb Maps fetches data.
DatabaseYesThe default Snowflake database that Honeycomb Maps should use.
SchemaNoOptional.
RoleYesThe role that should be used when connecting. The user authenticating must have this role.
Authentication MethodYesSnowflake OAuth
UserNoLeave blank.
Programmatic Access TokenNoLeave blank.
OAuth Client IDYesGet this from running SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('OAUTH_HONEYCOMB_MAPS_INTEGRATION');.
OAuth Client SecretYesGet this from running SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('OAUTH_HONEYCOMB_MAPS_INTEGRATION'); (two secrets will be shown, you only need to use one).
OAuth Authorization URLYesGet this from running DESCRIBE INTEGRATION <integration_name>. It will be in the format https://myorg-account_xyz.snowflakecomputing.com/oauth/authorize.
OAuth Token URLYesGet this from running DESCRIBE INTEGRATION <integration_name>. It will be in the format https://myorg-account_xyz.snowflakecomputing.com/oauth/token-request.
OAuth ScopesYesrefresh_token must be present. session:role:ROLE_NAME can be included to scope the integration for a specific role.
Workload Identity ProviderNoLeave blank.
  1. Click on 'Save Connection'. After a moment, you should see the connection details, with the Status showing as 'Error - You have not connected your account to this connection'. This is expected.

Honeycomb Maps connection details page for the Snowflake OAuth connection, showing the OAuth fields populated and the Status as 'Error'

  1. Click on the 'Connect' button on the left side at the bottom of the page. This will redirect you to Snowflake to log in and approve the connection.

  2. You should be redirected back to Honeycomb Maps, and the connection should now show as 'Connected'.

  3. Now that the connection is active, the next step is to create a data source that uses this connection. Click on 'Data Sources' on the left sidebar, then on 'Add a new data source'. Select the connection you just configured, then enter a SQL query that will be used to fetch data from Snowflake.