Snowflake App Details
Understand what’s going on under the hood.
Application roles
The following application roles are created and can be assigned to your own roles to manage access and usage of various Winning Variant features:
Role | Description | Access |
---|---|---|
admin | Administrator | An admin can do everything! |
analyst | Experimentation analyst | SELECT on all tables in the experimentation and consumption schemas as well as run stored procedures related to output data. |
editor | Winning variant resource editor | Inherits analyst , can use the Configuration UI, and can run all stored procedures for resource management. |
proxy | Reverse proxy for Variant API | Usage on Variant API service endpoint. This role is designed specifically for a reverse proxy sitting in front of the Variant API. |
Account-level Assets
A few assets are created on the account automatically and used internally by the app.
Type | Description | Auto-suspend |
---|---|---|
Compute Pool | Single-node CPU_X64_XS compute pool shared across all services. | 1 hour |
Warehouse | Single-node XSMALL warehouse used for configuration services. | 1 hour |
Warehouse | Single-node XSMALL warehouse dedicated to the Variant API. | 1 hour |
The admin
role is granted MODIFY
on all assets to adjust sizing, if necessary.
Snowpark Container Services
Winning Variant creates various services inside of the app, including:
Configuration UI
Your experimentation interface! See your application details or contact your Winning Variant team for your specific URL.
Variant API
The API used to get and make assignments (for experiments outside of Snowflake). Read more here. See your application details or contact your Winning Variant team for your specific URL.
Snowflake does not allow public internet access to any Snowpark Container Service. In order to allow applications, websites, etc. outside of Snowflake to use the Variant API, you must set up a reverse proxy that has access.
Manage Services
The above services can be managed by an admin using the following stored procedures:
Procedure | Description | Required Role |
---|---|---|
management.suspend_services() | Suspends all services. | admin |
management.resume_services() | Resumes all services. | admin |
management.get_service_status() | Gets the status of all services. | admin |
management.get_service_endpoints() | Shows ingress URLs for all services. | admin |
Examples
Assignment Consumption
The app provides various views specifically for monitoring assignment consumption within the app. The following are available in the experimentation
schema and available to the analyst
and admin
application roles.
View | Description |
---|---|
assignments_per_hour | Number of assignments aggregated by hour. |
assignments_per_day | Number of assignments aggregated by day. |
assignments_per_month | Number of assignments aggregated by month. |
assignments_per_experiment | Number of assignments aggregated by experiments. |
Examples