Snowflake Key Pair Auth connector
Bearer TokenAnalyticsDatabasesConnect to Snowflake via Public Private Key Pair to manage and analyze your data warehouse workloads
Snowflake Key Pair Auth connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. 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> -
Make your first call
Section titled “Make your first call”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.actionsconst connector = 'snowflakekeyauth'const identifier = 'user_123'// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'snowflakekeyauth_cancel_query',toolInput: { statement_handle: 'YOUR_STATEMENT_HANDLE' },})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "snowflakekeyauth"identifier = "user_123"# Make your first callresult = actions.execute_tool(tool_input={"statement_handle":"YOUR_STATEMENT_HANDLE"},tool_name="snowflakekeyauth_cancel_query",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”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
Common workflows
Section titled “Common workflows”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);result = actions.request( connection_name='snowflakekeyauth', identifier='user_123', path="/api/v2/statements", method="POST", json={"statement": "SELECT CURRENT_USER()", "timeout": 60})print(result)Execute a tool
const result = await actions.executeTool({ connector: 'snowflakekeyauth', identifier: 'user_123', toolName: 'snowflakekeyauth_cancel_query', toolInput: {},});console.log(result);result = actions.execute_tool( tool_input={}, tool_name='snowflakekeyauth_cancel_query', connection_name='snowflakekeyauth', identifier='user_123',)print(result)Tool list
Section titled “Tool list”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.
statement_handlestringrequiredSnowflake statement handle to cancelrequest_idstringoptionalOptional request ID used when the statement was submittedsnowflakekeyauth_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.
statementstringrequiredSQL statement to execute. Use semicolons to send multiple statements in one request.asyncbooleanoptionalExecute statement asynchronously and return a statement handlebindingsobjectoptionalBind variables object for '?' placeholders in the SQL statementdatabasestringoptionalDatabase to use when executing the statementnullablebooleanoptionalWhen false, SQL NULL values are returned as the string "null"parametersobjectoptionalStatement-level Snowflake parameters as a JSON objectrequest_idstringoptionalUnique request identifier (UUID) used for idempotent retriesretrybooleanoptionalSet true when resubmitting a previously sent request with the same request_idrolestringoptionalRole to use when executing the statementschemastringoptionalSchema to use when executing the statementtimeoutintegeroptionalMaximum number of seconds to wait for statement executionwarehousestringoptionalWarehouse to use when executing the statementsnowflakekeyauth_get_columns#Query INFORMATION_SCHEMA.COLUMNS for column metadata.7 params
Query INFORMATION_SCHEMA.COLUMNS for column metadata.
databasestringrequiredDatabase namecolumn_name_likestringoptionalOptional column name patternlimitintegeroptionalMaximum rowsrolestringoptionalOptional roleschemastringoptionalOptional schema filtertablestringoptionalOptional table filterwarehousestringoptionalOptional warehousesnowflakekeyauth_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.
partitionintegerrequiredPartition index to fetch (0-based)statement_handlestringrequiredSnowflake statement handle returned by Execute Queryrequest_idstringoptionalOptional request ID used when the statement was submittedsnowflakekeyauth_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.
statement_handlestringrequiredSnowflake statement handle returned by Execute Queryrequest_idstringoptionalOptional request ID used when the statement was submittedsnowflakekeyauth_get_referential_constraints#Query INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS.6 params
Query INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS.
databasestringrequiredDatabase namelimitintegeroptionalMaximum rowsrolestringoptionalOptional roleschemastringoptionalOptional schema filtertablestringoptionalOptional table filterwarehousestringoptionalOptional warehousesnowflakekeyauth_get_schemata#Query INFORMATION_SCHEMA.SCHEMATA for schema metadata.5 params
Query INFORMATION_SCHEMA.SCHEMATA for schema metadata.
databasestringrequiredDatabase namelimitintegeroptionalMaximum rowsrolestringoptionalOptional roleschema_likestringoptionalOptional schema patternwarehousestringoptionalOptional warehousesnowflakekeyauth_get_table_constraints#Query INFORMATION_SCHEMA.TABLE_CONSTRAINTS.7 params
Query INFORMATION_SCHEMA.TABLE_CONSTRAINTS.
databasestringrequiredDatabase nameconstraint_typestringoptionalOptional constraint type filterlimitintegeroptionalMaximum rowsrolestringoptionalOptional roleschemastringoptionalOptional schema filtertablestringoptionalOptional table filterwarehousestringoptionalOptional warehousesnowflakekeyauth_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.
databasestringrequiredDatabase namelimitintegeroptionalMaximum number of rowsrolestringoptionalOptional roleschemastringoptionalOptional schema filtertable_name_likestringoptionalOptional table name patternwarehousestringoptionalOptional warehousesnowflakekeyauth_show_databases_schemas#Run SHOW DATABASES or SHOW SCHEMAS.5 params
Run SHOW DATABASES or SHOW SCHEMAS.
object_typestringrequiredObject type to showdatabase_namestringoptionalOptional database scope for SHOW SCHEMASlike_patternstringoptionalOptional LIKE patternrolestringoptionalOptional rolewarehousestringoptionalOptional warehousesnowflakekeyauth_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).
grant_viewstringrequiredSHOW GRANTS variantobject_namestringoptionalObject name for on_objectobject_typestringoptionalObject type for on_objectrolestringoptionalOptional execution rolerole_namestringoptionalRole name (for to_role/of_role)user_namestringoptionalUser name (for to_user)warehousestringoptionalOptional warehousesnowflakekeyauth_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).
key_directionstringrequiredWhich command to runtable_namestringrequiredTable name (use with schema_name and database_name for fully-qualified scope)database_namestringoptionalOptional database name (recommended with schema_name)rolestringoptionalOptional roleschema_namestringoptionalOptional schema name (recommended with database_name)warehousestringoptionalOptional warehousesnowflakekeyauth_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.
database_namestringoptionalOptional database name for scope (required when schema_name is set)rolestringoptionalOptional roleschema_namestringoptionalOptional schema name for scopetable_namestringoptionalOptional table name for scopewarehousestringoptionalOptional warehousesnowflakekeyauth_show_warehouses#Run SHOW WAREHOUSES.3 params
Run SHOW WAREHOUSES.
like_patternstringoptionalOptional LIKE patternrolestringoptionalOptional rolewarehousestringoptionalOptional warehouse