Snowflake Data Clean Rooms: Developer APIs overview¶

A Snowflake Data Clean Room provides first-in-class developer APIs that enable you to develop applications using a clean room. You can leverage these powerful APIs to manage the lifecycle of a clean room, create and run various secure analytics, and then share them with consumers.

Concepts¶

This section introduces concepts central to working with the developer APIs of a Snowflake Data Clean Room.

Clean room¶

A clean room is a cryptographically secure environment that protects the data inside it. Clean rooms only run specific analyses and algorithms enabled by the creator of the clean room. Additionally, a layer of protection is added through differential privacy techniques that only expose aggregated results externally. Clean rooms guarantee that no user or process can read or write data except for algorithms provided by the clean room creator.

Collaborators¶

There are generally two parties involved in the lifecycle of a clean room who are collaborating together:

  • A provider creates a clean room, adds the necessary data, sets up the policies, adds the relevant analyses, and then shares it with the consumer.

  • A consumer receives a clean room shared from a provider. Consumers can install a clean room, add their data, and run any analysis supported with appropriate arguments passed to the analysis templates contained inside the clean room.

Analyses¶

Analyses are algorithms that run inside a clean room. The provider chooses some analyses and enables them for a specific clean room, and then the consumer can choose to run one or more of those analyses.

Prerequisites¶

Before you can use the developer APIs of a Snowflake Data Clean Room, an administrator must configure the clean room environment and add you as a user. For details, see Getting started with a Snowflake Data Clean Room.

You must use the SAMOOHA_APP_ROLE role to execute the developer APIs. Add the following to your Snowflake worksheet before executing the API:

use role samooha_app_role;
Copy

API reference documentation¶

To obtain the descriptions and signatures of the developer APIs, see the following:

Next steps & supported flows¶

The developer APIs enable users to leverage advanced flows in addition to securely and privately running analyses on linked datasets.

You can easily get started by signing in to your Snowflake account and opening up a new worksheet.

Supported flows include the following:

End-to-End: Provider Data Analysis

  • A provider can define join and other column policies over datasets that they have linked to the clean room and then add a predefined, secure data analysis template to the clean room.

  • A consumer can use the clean room shared by the provider and run exploratory analyses within it. The consumer must abide by the join and column policies set by the provider.

For more information, see the End-to-End: Provider Data Analysis.

End-to-End: Overlap Analysis

  • A provider can link multiple datasets and add a predefined analysis template that carries out an overlap analysis over the datasets to the clean room.

  • The consumer can link more datasets and perform the overlap analysis jointly over all the available provider and consumer datasets in the clean room.

For more information, see the End-to-End: Overlap Analysis.

Custom Analysis Templates

  • A provider can define and add a custom analysis template to a clean room, which allows consumers to run the custom analytics.

  • These custom analysis templates can be made generic by leveraging powerful SQL Jinja templates, and can also support Privacy Enhancing Technologies like differential privacy.

For more information, see the Custom Analysis Templates.

Secure Python Based Templates

  • Providers can load custom Python code to be run inside custom analysis templates.

  • All Python code loaded into the clean room remains completely confidential and cannot be seen by the consumers using it.

For more information, see the Secure Python Based Templates.

Machine Learning

  • Providers can define advanced machine learning models that users can run securely inside clean rooms.

  • Secure Python code that is not visible to consumers can be used to define complex ML models that can run in a fully secure environment inside the clean room.

For more information, see the Machine Learning.

Secure Python UDTF-Based Templates

  • Providers can create secure Python UDTFs using a simple API and share them with consumers.

  • Consumers can use the Python UDTF using a simple template provided by the provider.

For more information, see the Secure Python UDTF-Based Templates.

Registering developer API clean rooms into the web app

  • Providers can register clean rooms loaded with custom analyses and templates into the web app of a Snowflake Data Clean Room, which allows their collaborators to work with the clean room in a user interface.

  • Collaborators can interact with these complex, custom clean rooms entirely through the web app.

For more information, see the Registering developer API clean rooms into the web app.

Secure Snowpark Procedures

  • Providers can define their own Snowpark procedures and share them securely with a consumer.

  • Consumers can call these Snowpark procedures using the usual run_analysis workflow.

For more information, see the Secure Snowpark Procedures.