> ## Documentation Index
> Fetch the complete documentation index at: https://docs.narrative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake Native App

> Reference documentation for the Snowflake Native App data plane operator

## Overview

The Snowflake Native App installs as a customer-hosted [data plane](/concepts/primitives/data-planes) within your Snowflake environment. It runs the operator component that bridges Narrative's control plane with your Snowflake data—polling for jobs, executing NQL queries, and returning results, all without your data leaving your Snowflake account.

## Capabilities

* Register Snowflake tables and views as Narrative datasets
* Register one or more Snowflake warehouses as [compute pools](/concepts/primitives/compute-pools)
* Execute NQL queries directly in your Snowflake environment
* Participate in cross-data-plane data collaboration
* Keep data within your Snowflake security perimeter

## Requirements

| Requirement         | Details                                                      |
| ------------------- | ------------------------------------------------------------ |
| Snowflake role      | ACCOUNTADMIN or equivalent                                   |
| Narrative account   | Required ([create account](/getting-started/create-account)) |
| API token           | With specific permissions (see below)                        |
| Snowflake warehouse | For query execution                                          |
| Marketplace access  | Access to the Narrative listing on the Snowflake Marketplace |

## Privileges

The app requires the following Snowflake privileges:

| Privilege               | Purpose                                                      |
| ----------------------- | ------------------------------------------------------------ |
| `EXECUTE TASK`          | Schedule and run jobs on behalf of Narrative's control plane |
| `CREATE COMPUTE POOL`   | Provision compute resources for query execution              |
| `BIND SERVICE ENDPOINT` | Communicate with Narrative's control plane API               |

## Registering warehouses as compute pools

To register a Snowflake warehouse as a [compute pool](/concepts/primitives/compute-pools), grant the app usage on the warehouse:

```sql theme={null}
GRANT USAGE ON WAREHOUSE <warehouse_name> TO APPLICATION NARRATIVE_DATA_COLLABORATION;
```

You can register multiple warehouses to separate workloads across different compute pools.

## API token permissions

Your Narrative API token must include the following permissions:

| Permission      | Access level   |
| --------------- | -------------- |
| Compute Pools   | Read and Write |
| Data Planes     | Read and Write |
| Data Plane Logs | Read and Write |
| Datasets        | Read and Write |
| Jobs            | Read and Write |
| Models          | Read           |

See [API Keys](/account-settings/api-keys) for instructions on creating and managing tokens.

## Dataset naming conventions

When registering a Snowflake table or view as a Narrative dataset, the dataset name must follow these rules:

* Uppercase letters only (A–Z)
* Numbers (0–9)
* Underscores (`_`)

For example: `MY_DATASET_NAME`, `CUSTOMER_EVENTS_2024`.

## Installation

For step-by-step installation instructions, see [Install the Snowflake Native App](/guides/data-planes/snowflake-native-app-installation).

***

## Related content

<CardGroup cols={2}>
  <Card title="Installation Guide" icon="download" href="/guides/data-planes/snowflake-native-app-installation">
    Step-by-step setup instructions
  </Card>

  <Card title="Data Planes" icon="database" href="/concepts/primitives/data-planes">
    Understand how data planes and operators work
  </Card>

  <Card title="Execution Context" icon="circle-play" href="/concepts/primitives/execution-context">
    Learn how queries are executed across data planes
  </Card>

  <Card title="API Keys" icon="key" href="/account-settings/api-keys">
    Manage API tokens and permissions
  </Card>
</CardGroup>
