Declarative Sharing in Native Apps: Limitations

Declarative sharing is a feature in Snowflake Native Apps that allows providers to quickly define and share objects across multiple databases using a simple YAML configuration file. While this feature significantly simplifies data sharing workflows, it has limitations that providers should understand before implementation.

Supported Object Types

Declarative sharing supports these object types:

  • Tables

  • Secure Views (including materialized views)

  • Notebooks

All other object types are not supported for sharing in Declarative Sharing in Native Apps.

Shared Objects

Object limit

A maximum of 1,000 objects can be defined in the shared content section of the manifest.yml file. To raise this limit, contact Snowflake Support.

Notebook Limitations

Read-only for consumers

Consumers can’t edit provider notebooks in place, nor can they clone them.

Network access

Notebooks cannot access external endpoints or consumer data when running in customer accounts.

Specialized libraries

Geospatial and other 3rd party libraries aren’t guaranteed to work out-of-the-box in notebooks.

External dependencies

Declarative Sharing apps have limited support for external libraries (Snowflake Anaconda channel and Python files in code stage.)

Non-interactive execution

Notebooks that are part of native applications cannot be executed non-interactively by worksheets or SQL commands.

Security and Access Control

Role definition

All application roles referenced in the shared content must be predefined in the roles field in the manifest.

Object-level Roles

Object roles must be subsets of their parent schema roles.

Missing role validation

Validating the manifest returns an error if roles referenced in the sharing configuration don’t exist.

Minimum privileges

The provider role committing the shared_content.yaml file must have at least the same privileges on shared objects as those being granted to consumers.

No REFERENCE_USAGE required

Unlike traditional data sharing, providers don’t need to grant REFERENCE_USAGE privileges to the application package.

Migration & Compatibility

Declarative Sharing migration

Migration support for switching from data shares to declarative sharing in native apps is unavailable.

Naming and Configuration Constraints

No wildcards

Object names must be explicitly specified; wildcard or regular expression matching is not supported.

Name collision prevention

No two shared objects can have the same DOMAIN and name.

Schema mapping

Schema mapping is not supported. Overlapping schema names from multiple databases are not allowed.

Monitoring

Auditability

Declarative Native Apps don’t provide monitoring resources (such as audit trails) to let the provider receive information from the consumer about how the shared data is being used. If a consumer has compliance or regulatory requirements that require auditing, the consumer must work with the provider to implement their own monitoring solutions.