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.

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.)

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.

Language: English