# Snowflake

Snowflake is a cloud-based data warehouse offering elastic scaling, secure data sharing, and SQL analytics across multiple cloud environments

- **Category:** databases
- **Auth:** OAUTH2
- **Composio Managed App Available?** No
- **Tools:** 15
- **Triggers:** 0
- **Slug:** `SNOWFLAKE`
- **Version:** 20260429_00

## Frequently Asked Questions

### How do I set up custom OAuth credentials for Snowflake?

For a step-by-step guide on creating and configuring your own Snowflake OAuth credentials with Composio, see [How to create OAuth credentials for Snowflake](https://composio.dev/auth/snowflake).

### How do I create a Snowflake OAuth app?

Example Snowflake SQL to create a security integration for OAuth:

```sql
CREATE SECURITY INTEGRATION oauth_custom_all_roles
  TYPE = oauth
  ENABLED = true
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://your-app.com/oauth/callback'
  OAUTH_REFRESH_TOKEN_VALIDITY = 7776000;
```

### How do I configure roles and permissions for Snowflake?

Ensure the OAuth app and Snowflake roles, databases, and schemas are configured correctly for the integration.

### Does Snowflake require per-customer OAuth credentials?

Yes. Snowflake typically requires per-customer OAuth credentials. Customers often supply their own credentials when integrating with Composio.

---

## Tools

### Cancel Statement Execution

**Slug:** `SNOWFLAKE_CANCEL_STATEMENT_EXECUTION`

Cancels the execution of a running SQL statement. Use this action to stop a long-running query.

### Check Statement Status

**Slug:** `SNOWFLAKE_CHECK_STATEMENT_STATUS`

Retrieves the status and results of a previously submitted SQL statement using its statement handle. Use this to poll async queries submitted via SNOWFLAKE_SUBMIT_SQL_STATEMENT; call repeatedly until status is no longer pending. Use SNOWFLAKE_CANCEL_STATEMENT to abort a hanging query.

### Execute SQL

**Slug:** `SNOWFLAKE_EXECUTE_SQL`

Execute SQL statements in Snowflake and retrieve results. Supports SELECT queries for data retrieval, DDL statements (CREATE, ALTER, DROP) for schema management, and DML statements (INSERT, UPDATE, DELETE) for data modification. Returns comprehensive result metadata including column types, row counts, and execution status. Unquoted SQL identifiers are auto-uppercased by Snowflake — use matching case in `database`, `schema_name`, `warehouse`, and `role` parameters to avoid 'object not found' errors. Always apply explicit time-range filters and a LIMIT clause to unbounded SELECT queries to prevent large, slow result sets.

### Fetch Catalog Integration

**Slug:** `SNOWFLAKE_FETCH_CATALOG_INTEGRATION`

Retrieves detailed configuration and metadata for a specific catalog integration. Catalog integrations allow Snowflake to connect to external Apache Iceberg catalogs (AWS Glue, Snowflake Open Catalog/Polaris, or Apache Iceberg REST catalogs) to query Iceberg tables managed by those external systems.

### Get Active Scheduled Maintenances

**Slug:** `SNOWFLAKE_GET_ACTIVE_SCHEDULED_MAINTENANCES`

Retrieves a list of any active scheduled maintenances currently in the In Progress or Verifying state.

### Get All Scheduled Maintenances

**Slug:** `SNOWFLAKE_GET_ALL_SCHEDULED_MAINTENANCES`

Retrieves a list of the 50 most recent scheduled maintenances, including those in the Completed state.

### Get Component Status

**Slug:** `SNOWFLAKE_GET_COMPONENT_STATUS`

Retrieves the status of individual components, each listed with its current status.

### Get Status Rollup

**Slug:** `SNOWFLAKE_GET_STATUS_ROLLUP`

Retrieves the status rollup for the entire page, including indicators and human-readable descriptions of the blended component status.

### Get Status Summary

**Slug:** `SNOWFLAKE_GET_STATUS_SUMMARY`

Retrieves the current status summary from Snowflake's public status page (status.snowflake.com). Returns overall system status, operational status of all regional components (AWS, Azure, GCP regions), any unresolved incidents, and upcoming or in-progress scheduled maintenances. This is a public endpoint that provides global Snowflake service status, not account-specific information.

### Get Unresolved Incidents

**Slug:** `SNOWFLAKE_GET_UNRESOLVED_INCIDENTS`

Retrieves a list of any unresolved incidents from the Snowflake status page. This endpoint returns incidents currently in the Investigating, Identified, or Monitoring state. Returns an empty list if there are no active incidents. This is a public status page API that does not require authentication.

### Get Upcoming Scheduled Maintenances

**Slug:** `SNOWFLAKE_GET_UPCOMING_SCHEDULED_MAINTENANCES`

Retrieves upcoming scheduled maintenances from Snowflake's public status page. This action queries the Snowflake status API to get a list of any scheduled maintenance events that are still in the 'Scheduled' state (not yet started or completed). The response includes maintenance details such as impact level, scheduled time windows, incident updates, and direct links to the maintenance notices. Note: This uses Snowflake's public status API and does not require authentication.

### Show Databases

**Slug:** `SNOWFLAKE_SHOW_DATABASES`

Lists all databases for which you have access privileges. Shows database metadata including name, creation date, owner, retention time, and more. Can filter results and include dropped databases within Time Travel retention period.

### Show Schemas

**Slug:** `SNOWFLAKE_SHOW_SCHEMAS`

Lists all schemas for which you have access privileges. Shows schema metadata including name, creation date, owner, database, retention time, and more. Can filter results and include dropped schemas within Time Travel retention period.

### Show Tables

**Slug:** `SNOWFLAKE_SHOW_TABLES`

Lists all tables for which you have access privileges. Shows table metadata including name, creation date, owner, database, schema, row count, size in bytes, clustering keys, and more. Can filter results and include dropped tables within Time Travel retention period.

### Submit SQL Statement (Deprecated)

**Slug:** `SNOWFLAKE_SUBMIT_SQL_STATEMENT`

DEPRECATED: Use ExecuteSql instead. Submits a SQL statement for execution. Execution is asynchronous; monitor status with SNOWFLAKE_CHECK_STATEMENT_STATUS for long-running queries.
