Skip to main content

Privacy & Data Handling

Metatate processes all data within the consumer's Snowflake account. No consumer data is transmitted externally, and the application is designed to minimize the data it accesses and retains.

Core Principle: No External Data Transmission

Nothing leaves the consumer's Snowflake account:

  • No outbound network connections (no EAIs configured)
  • No telemetry or usage analytics sent to the provider
  • No data shared with third-party services
  • No API calls to external endpoints
  • AI processing uses Snowflake Cortex, which runs inside Snowflake

This is enforced architecturally, not just by policy. The application has no External Access Integrations and therefore cannot make outbound network calls even if it attempted to.

What Consumer Data the App Accesses

From DATABASE_CATALOG (consumer tables)

The application reads metadata only from consumer tables granted through the DATABASE_CATALOG reference:

Data AccessedPurposeRetained?
Table namesDisplay in governance catalogNo (read on demand)
Column namesClassification, policy targetingNo (read on demand)
Column data typesClassification assistanceNo (read on demand)
Row countsCatalog displayNo (read on demand)

The application does not access:

  • Row-level data (individual records)
  • Column values or samples
  • Query results from consumer tables
  • Historical data or change data capture

From Snowflake System Tables

Data AccessedPurpose
INFORMATION_SCHEMA.COLUMNSColumn enumeration for catalog
INFORMATION_SCHEMA.TABLESTable enumeration for catalog

What Data the App Creates and Retains

All data created by Metatate is stored in the app_data schema within the application's scope in the consumer account.

tenant_config

ContentRetention
Display preferences, feature flags, tenant namePersists until consumer changes settings or uninstalls

Contains no consumer data — only application configuration values.

Governance Tables (6 core + 6 staging)

ContentRetention
Policy-derived metadata: table names, column names, classification labels, masking rules, usage rules, business contextPersists as long as policies are deployed

These tables contain governance rules derived from policies authored by the consumer. They do not contain consumer row data. The content is:

  • Table and column names (from policy scope definitions)
  • Classification labels and sensitivity levels (from policy instructions)
  • Masking configurations (from policy instructions)
  • Usage rules and restrictions (from policy instructions)
  • Business context and lineage metadata (from policy instructions)

activity_log

ContentRetention
User actions: who did what and when (policy edits, deployments, config changes)Persists indefinitely (append-only)

Contains Snowflake usernames and action descriptions. No consumer row data.

governance_decision_log

ContentRetention
Authorization decisions: request context, outcome, reason codes, evidence chainPersists indefinitely (append-only)

Contains table names, column names, requested purposes, and decision outcomes. No consumer row data.

governance_snapshots

ContentRetention
Point-in-time summaries of governance state after each deploymentPersists indefinitely

Contains aggregate metadata (table counts, policy counts, timestamps). No consumer row data.

Container Logs

ContentRetention
Application logs from Flask backend and nginx routerManaged by SPCS (standard Snowflake container log retention)

May contain table names and column names in log messages. No consumer row data is logged.

AI Data Handling

What Is Sent to Cortex

When AI features are used, the following metadata is included in Cortex prompts:

Data in PromptExample
Table namesANALYTICS_DB.PUBLIC.CUSTOMERS
Column namesEMAIL, PHONE_NUMBER, SSN
Column data typesVARCHAR, NUMBER, TIMESTAMP
Policy textUser-authored policy descriptions and instructions
User's natural language input"Create a policy to protect PII in the customers table"

What Is NOT Sent to Cortex

  • Row data (individual records from consumer tables)
  • Column values or data samples
  • Query results
  • Credentials or connection strings
  • Other users' data or policies

Where Cortex Processes Data

All Cortex processing occurs within the Snowflake infrastructure. The SNOWFLAKE.CORTEX.COMPLETE() function is an internal Snowflake service — it does not make external API calls. The consumer's Snowflake region determines where the processing occurs.

AI prompts and responses are not persisted by Metatate. They are used in-memory for the duration of the request and discarded.

Data on Uninstall

When the consumer uninstalls (drops) the Metatate application:

  • All application schemas and their contents are dropped
  • All governance tables, logs, and configuration are deleted
  • Compute pools are released
  • Container services are terminated
  • No data persists after uninstall

The consumer's own tables (those in DATABASE_CATALOG) are unaffected by uninstall.

Summary

QuestionAnswer
Does data leave my Snowflake account?No
Does the provider see my data?No
Is row data sent to AI?No, only metadata (table/column names, data types, policy text)
Where is AI processing done?Inside Snowflake via Cortex
What is retained?Governance rules, activity logs, decision logs, configuration
What happens on uninstall?All application data is deleted
Are there external API calls?No (no EAIs)
Is telemetry collected?No