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>_primarySingle-node XSMALL warehouse shared by all services.5 minutes

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

Warehouse utilization

The <APP>_primary warehouse has two primary uses:

  1. Resource management, the Configuration UI, and other internal tasks. These are infrequent and generally only consume resources when an asset is created/modified.
  2. The Variant API service for serving/setting experiment assignments. This is so assignment creation/lookups are not hindered by other internal tasks. Configuration updates are pushed to this service in real time, but by default, this service will refresh its configuration from tables every 6 hours, which will cause the warehouse to wake up even if the service isn’t being used.

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

-- Auto-suspend after 1 hour
ALTER WAREHOUSE <APP>_primary 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.