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:

RoleDescriptionAccess
adminAdministratorAn admin can do everything!
analystExperimentation analystSELECT on all tables in the experimentation and consumption schemas as well as run stored procedures related to output data.
editorWinning variant resource editorInherits analyst, can use the Configuration UI, and can run all stored procedures for resource management.
scientistFor users needing to read/write assignments.Can access experimentation.assignments table and experimentation.create_assignment function.
proxyReverse proxy for Variant APIUsage on Variant API service endpoint. This role is designed specifically for a reverse proxy sitting in front of the Variant API.
wvusageFor users needing limited access to aggregated usage data.Can SELECT from experimentation.assignments_per_day and experimentation.assignments_per_experiment.

Account-level Assets

A few assets are created on the account automatically and used internally by the app.

TypeNameDescriptionAuto-suspend
Compute Pool<APP>_poolSingle-node CPU_X64_XS compute pool shared across all services.1 hour
Warehouse<APP>_configSingle-node XSMALL warehouse used for configuration services.5 minutes
Warehouse<APP>_variantSingle-node XSMALL warehouse dedicated to the Variant API.5 minutes

The admin role is granted MODIFY on all assets to adjust sizing, if necessary.

Warehouse utilization

The <APP>_config warehouse is used for resource management, the Configuration UI, and other internal tasks. It is mostly idle unless needed for such a task.

The <APP>_variant warehouse is dedicated to the Variant API service. This is so assignment creation/lookups are not hindered by other internal tasks. This warehouse will remain active as long as the Variant API is active. The Variant API refreshes its configuration every 15 minutes, which will wake up the warehouse. This causes the warehouse to be utilized at least 4 times each hour, even if there’s no traffic to the Variant API.

For business-critical use cases, we suggest increasing the auto-suspend for the <APP>_variant warehouse so it’s readily available when assignment requests come in:

-- Auto-suspend after 1 hour
ALTER WAREHOUSE <APP>_variant SET AUTO_SUSPEND = 3600;

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.