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.