About Declarative Sharing in the Native Application Framework

About Declarative Sharing

Declarative Sharing in the Snowflake Native App Framework enables providers to share and sell data products, and to enhance those apps by including notebooks that help Snowflake consumers visualize and explore the data.

Declarative Sharing introduces a simplified creation experience, similar to setting up Secured Data Shares, making it easier to get started quickly.

The Declarative Native Apps development experience provides the following features:

  • A declarative sharing model that allows you to define shared objects using a simple text-based YAML file.

  • Streamlined testing, so developers can work directly with the content in a live environment.

  • Automatic versioning and updates of the app.

  • Capabilities to prepare multiple views of data, including filtered data views, that are optimized for different consumer types.

  • Capabilities to protect sensitive data by categorizing data into application roles. Consumers can delegate these app roles to teams, so that team members only see data that’s relevant to their work.

  • Runs in the consumer account, allowing the customer to manage their resource usage and costs.

Security

Declarative Native Apps have a similar security model to secure data sharing:

  • Apps only have access to the data included in the app.

  • Apps can’t access the consumer’s private data.

  • Apps aren’t allowed to make external calls or to access data outside of the Snowflake account.

Data product types

Choosing the right data product for your organization is determined by your business needs. Do you want to get started quickly? Do you need an app with advanced features? The following table lists the available Snowflake data products and provides their typical use cases. An overview of Snowflake data products.

Data product best uses

Data product

Description

Best for

Secure Data Sharing

Traditional read-only sharing of tables and views.

Organizations beginning data monetization or with simple sharing needs.

Declarative Native Apps

Enhanced sharing with notebooks, role-based access control (RBAC), and declarative configuration.

Data providers ready to add value through guided experiences and documentation

Full Native Apps

Apps running fully inside of a consumer account with complex business logic and interfaces.

Organizations building complex data products with advanced capabilities.

Choosing a data product

Before choosing a data product, consider the following:

Data product types

Data product

Description

Provider Builds

Security and Functionality Balance

Best provider use cases

Secure Data Sharing

Traditional read-only sharing of tables and views

  • Technical Expertise: Basic Snowflake

  • Development Skills: SQL knowledge

  • Maintenance Effort: Low - SQL updates only

SQL grants for tables, views

  • Data stays within Snowflake

  • Providers focusing on datasets only

  • Initial marketplace entry

Declarative Native App

Enhanced sharing

  • Technical Expertise: Intermediate Snowflake

  • Development Skills: SQL, YAML, notebooks

  • Maintenance Effort: Low - declarative updates, notebook/ SQL changes

Application package

  • Data stays within Snowflake

  • Limited functionality, that is, notebooks, Streamlit, and stored procedures

  • Complex data requiring explanation

  • Demonstrating data value through examples

  • Reducing support burden through better documentation

Full Native Apps

Apps running fully inside the Snowflake customer’s account with complex business logic and interfaces

  • Technical Expertise: Advanced Snowflake

  • Development Skills: SQL, containers, programming languages

  • Maintenance Effort: High - containers, security reviews

Application package, services (in Containers)

  • Data by default within Snowflake, can leave Snowflake with consumer consent

  • Snowflake primitives and container runtime

  • Data requiring complex logic and workflows

  • Complex visualization needs

  • Re-use of SaaS application components

Declarative Native Apps resources

In the following topics, you’ll find information you need to get started with Declarative Native Apps.