Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Snowflake Key Pair Auth connector

Bearer TokenAnalyticsDatabases

Connect to Snowflake via Public Private Key Pair to manage and analyze your data warehouse workloads

Snowflake Key Pair Auth connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'snowflakekeyauth'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'snowflakekeyauth_cancel_query',
    toolInput: { statement_handle: 'YOUR_STATEMENT_HANDLE' },
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Warehouses show — Run SHOW WAREHOUSES
  • Keys show primary, show imported exported — Run SHOW PRIMARY KEYS with optional scope
  • Grants show — Run SHOW GRANTS in common modes (to role, to user, of role, on object)
  • Schemas show databases — Run SHOW DATABASES or SHOW SCHEMAS
  • Get tables, table constraints, schemata — Query INFORMATION_SCHEMA.TABLES for table metadata in a Snowflake database
  • Query cancel — Cancel a running Snowflake SQL API statement by statement handle

Don’t worry about your Snowflake account domain in the path. Scalekit automatically resolves {{domain}} from the connected account’s configuration. For example, a request with path="/api/v2/statements" will be sent to https://myorg-myaccount.snowflakecomputing.com/api/v2/statements automatically.

Proxy API call
const result = await actions.request({
connectionName: 'snowflakekeyauth',
identifier: 'user_123',
path: '/api/v2/statements',
method: 'POST',
body: { statement: 'SELECT CURRENT_USER()', timeout: 60 },
});
console.log(result);
Execute a tool
const result = await actions.executeTool({
connector: 'snowflakekeyauth',
identifier: 'user_123',
toolName: 'snowflakekeyauth_cancel_query',
toolInput: {},
});
console.log(result);

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

snowflakekeyauth_cancel_query#Cancel a running Snowflake SQL API statement by statement handle.2 params

Cancel a running Snowflake SQL API statement by statement handle.

NameTypeRequiredDescription
statement_handlestringrequiredSnowflake statement handle to cancel
request_idstringoptionalOptional request ID used when the statement was submitted
snowflakekeyauth_execute_query#Execute one or more SQL statements against Snowflake using the SQL API. Requires a valid Snowflake OAuth2 connection. Use semicolons to submit multiple statements.12 params

Execute one or more SQL statements against Snowflake using the SQL API. Requires a valid Snowflake OAuth2 connection. Use semicolons to submit multiple statements.

NameTypeRequiredDescription
statementstringrequiredSQL statement to execute. Use semicolons to send multiple statements in one request.
asyncbooleanoptionalExecute statement asynchronously and return a statement handle
bindingsobjectoptionalBind variables object for '?' placeholders in the SQL statement
databasestringoptionalDatabase to use when executing the statement
nullablebooleanoptionalWhen false, SQL NULL values are returned as the string "null"
parametersobjectoptionalStatement-level Snowflake parameters as a JSON object
request_idstringoptionalUnique request identifier (UUID) used for idempotent retries
retrybooleanoptionalSet true when resubmitting a previously sent request with the same request_id
rolestringoptionalRole to use when executing the statement
schemastringoptionalSchema to use when executing the statement
timeoutintegeroptionalMaximum number of seconds to wait for statement execution
warehousestringoptionalWarehouse to use when executing the statement
snowflakekeyauth_get_columns#Query INFORMATION_SCHEMA.COLUMNS for column metadata.7 params

Query INFORMATION_SCHEMA.COLUMNS for column metadata.

NameTypeRequiredDescription
databasestringrequiredDatabase name
column_name_likestringoptionalOptional column name pattern
limitintegeroptionalMaximum rows
rolestringoptionalOptional role
schemastringoptionalOptional schema filter
tablestringoptionalOptional table filter
warehousestringoptionalOptional warehouse
snowflakekeyauth_get_query_partition#Get a specific result partition for a Snowflake SQL API statement.3 params

Get a specific result partition for a Snowflake SQL API statement.

NameTypeRequiredDescription
partitionintegerrequiredPartition index to fetch (0-based)
statement_handlestringrequiredSnowflake statement handle returned by Execute Query
request_idstringoptionalOptional request ID used when the statement was submitted
snowflakekeyauth_get_query_status#Get Snowflake SQL API statement status and first partition result metadata by statement handle.2 params

Get Snowflake SQL API statement status and first partition result metadata by statement handle.

NameTypeRequiredDescription
statement_handlestringrequiredSnowflake statement handle returned by Execute Query
request_idstringoptionalOptional request ID used when the statement was submitted
snowflakekeyauth_get_referential_constraints#Query INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS.6 params

Query INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS.

NameTypeRequiredDescription
databasestringrequiredDatabase name
limitintegeroptionalMaximum rows
rolestringoptionalOptional role
schemastringoptionalOptional schema filter
tablestringoptionalOptional table filter
warehousestringoptionalOptional warehouse
snowflakekeyauth_get_schemata#Query INFORMATION_SCHEMA.SCHEMATA for schema metadata.5 params

Query INFORMATION_SCHEMA.SCHEMATA for schema metadata.

NameTypeRequiredDescription
databasestringrequiredDatabase name
limitintegeroptionalMaximum rows
rolestringoptionalOptional role
schema_likestringoptionalOptional schema pattern
warehousestringoptionalOptional warehouse
snowflakekeyauth_get_table_constraints#Query INFORMATION_SCHEMA.TABLE_CONSTRAINTS.7 params

Query INFORMATION_SCHEMA.TABLE_CONSTRAINTS.

NameTypeRequiredDescription
databasestringrequiredDatabase name
constraint_typestringoptionalOptional constraint type filter
limitintegeroptionalMaximum rows
rolestringoptionalOptional role
schemastringoptionalOptional schema filter
tablestringoptionalOptional table filter
warehousestringoptionalOptional warehouse
snowflakekeyauth_get_tables#Query INFORMATION_SCHEMA.TABLES for table metadata in a Snowflake database.6 params

Query INFORMATION_SCHEMA.TABLES for table metadata in a Snowflake database.

NameTypeRequiredDescription
databasestringrequiredDatabase name
limitintegeroptionalMaximum number of rows
rolestringoptionalOptional role
schemastringoptionalOptional schema filter
table_name_likestringoptionalOptional table name pattern
warehousestringoptionalOptional warehouse
snowflakekeyauth_show_databases_schemas#Run SHOW DATABASES or SHOW SCHEMAS.5 params

Run SHOW DATABASES or SHOW SCHEMAS.

NameTypeRequiredDescription
object_typestringrequiredObject type to show
database_namestringoptionalOptional database scope for SHOW SCHEMAS
like_patternstringoptionalOptional LIKE pattern
rolestringoptionalOptional role
warehousestringoptionalOptional warehouse
snowflakekeyauth_show_grants#Run SHOW GRANTS in common modes (to role, to user, of role, on object).7 params

Run SHOW GRANTS in common modes (to role, to user, of role, on object).

NameTypeRequiredDescription
grant_viewstringrequiredSHOW GRANTS variant
object_namestringoptionalObject name for on_object
object_typestringoptionalObject type for on_object
rolestringoptionalOptional execution role
role_namestringoptionalRole name (for to_role/of_role)
user_namestringoptionalUser name (for to_user)
warehousestringoptionalOptional warehouse
snowflakekeyauth_show_imported_exported_keys#Run SHOW IMPORTED KEYS or SHOW EXPORTED KEYS for a table. For reliable execution in this environment, use fully-qualified scope (database_name + schema_name + table_name).6 params

Run SHOW IMPORTED KEYS or SHOW EXPORTED KEYS for a table. For reliable execution in this environment, use fully-qualified scope (database_name + schema_name + table_name).

NameTypeRequiredDescription
key_directionstringrequiredWhich command to run
table_namestringrequiredTable name (use with schema_name and database_name for fully-qualified scope)
database_namestringoptionalOptional database name (recommended with schema_name)
rolestringoptionalOptional role
schema_namestringoptionalOptional schema name (recommended with database_name)
warehousestringoptionalOptional warehouse
snowflakekeyauth_show_primary_keys#Run SHOW PRIMARY KEYS with optional scope. When using schema_name (or schema_name + table_name), database_name is required for fully-qualified scope.5 params

Run SHOW PRIMARY KEYS with optional scope. When using schema_name (or schema_name + table_name), database_name is required for fully-qualified scope.

NameTypeRequiredDescription
database_namestringoptionalOptional database name for scope (required when schema_name is set)
rolestringoptionalOptional role
schema_namestringoptionalOptional schema name for scope
table_namestringoptionalOptional table name for scope
warehousestringoptionalOptional warehouse
snowflakekeyauth_show_warehouses#Run SHOW WAREHOUSES.3 params

Run SHOW WAREHOUSES.

NameTypeRequiredDescription
like_patternstringoptionalOptional LIKE pattern
rolestringoptionalOptional role
warehousestringoptionalOptional warehouse