# Configure Snowflake Lineage Tag Propagation

{% hint style="info" %}
**Private preview**: This feature is only available to select accounts. Reach out to your Immuta representative to enable this feature.
{% endhint %}

Contact your Immuta representative to enable this feature in your Immuta tenant.

## Configure the Snowflake integration

1. Navigate to the **App Setting** page and click the **Integration** tab.
2. Click **+Add Integration** and select **Snowflake** from the dropdown menu.
3. Complete the **Host**, **Port**, and **Default Warehouse** fields.
4. Enable **Query Audit**.
5. Enable **Lineage** and complete the following fields:
   * **Ingest Batch Sizes**: This setting configures the number of rows Immuta ingests per batch when streaming Access History data from your Snowflake instance.
   * **Table Filter**: This filter determines which tables Immuta will ingest lineage for. Enter a regular expression that excludes `/` from the beginning and end to filter tables. Without this filter, Immuta will attempt to ingest lineage for every table on your Snowflake instance.
   * **Tag Filter**: This filter determines which tags to propagate using lineage. Enter a regular expression that excludes `/` from the beginning and end to filter tags. Without this filter, Immuta will ingest lineage for every tag on your Snowflake instance.
6. Select **Manual** or **Automatic Setup** and [follow the steps in this guide to configure the Snowflake integration](/2024.3/integrations/snowflake/how-to-guides/enterprise.md#select-your-configuration-method)

## Trigger Snowflake lineage sync job

### Prerequisite

[Authenticate with the Immuta API](/2024.3/developer-guides/api-intro/immuta-v1-api/authentication.md).

### Trigger the lineage job

The Snowflake lineage sync endpoint triggers the lineage ingestion job that allows Immuta to propagate Snowflake tags added through lineage to Immuta data sources.

1. Copy the example and replace the **Immuta URL** and **API key** with your own.
2. Change the payload attribute values to your own, where

   * `tableFilter` (string): This regular expression determines which tables Immuta will ingest lineage for. Enter a regular expression that excludes `/` from the beginning and end to filter tables. Without this filter, Immuta will attempt to ingest lineage for every table on your Snowflake instance.
   * `batchSize` (integer): This parameter configures the number of rows Immuta ingests per batch when streaming Access History data from your Snowflake instance. Minimum 1.
   * `lastTimestamp` (string): Setting this parameter will only return lineage events later than the value provided. Use a format like 2022-06-29T09:47:06.012-07:00.

   ```shell
   curl -X 'POST' \
       'https://www.organization.immuta.com/lineage/ingest/snowflake' \
       -H 'accept: application/json' \
       -H 'Content-Type: application/json' \
       -H 'Authorization: 846e9e43c86a4ct1be14290d95127d13f' \
       -d '{
       "tableFilter": "MY_DATABASE\\MY_SCHEMA\\..*",
       "batchSize": 1,
       "lastTimestamp": "2022-06-29T09:47:06.012-07:00"
       }'
   ```

## Next steps

Once the sync job is complete, you can complete the following steps:

* [Register Snowflake data sources](/2024.3/data-and-integrations/registering-metadata/register-data-sources/query-backed-tutorial.md)
* [Build policies](/2024.3/secure-your-data/authoring-policies-in-secure/policies-explained.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.immuta.com/2024.3/integrations/snowflake/how-to-guides/integration-settings/configure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
