> ## Documentation Index
> Fetch the complete documentation index at: https://docs.winningvariant.com/llms.txt
> Use this file to discover all available pages before exploring further.

# App Details

> Understand what's going on under the hood of the Winning Variant Snowflake Native App.

## 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.                       |
| `scientist` | For users needing to read/write assignments.               | Can access `experimentation.assignments` table and `experimentation.create_assignment` function.                                   |
| `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. |
| `wvusage`   | For 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.

| Type         | Name            | Description                                                      | Auto-suspend |
| ------------ | --------------- | ---------------------------------------------------------------- | ------------ |
| Compute Pool | `<APP>_pool`    | Single-node `CPU_X64_S` compute pool shared across all services. | 1 hour       |
| Warehouse    | `<APP>_primary` | Single-node `XSMALL` warehouse shared by all services.           | 30 seconds   |

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. Loading of assignments. By default, this task runs every 30 minutes.
3. Other internal maintenance tasks, such as a daily assignment counter and daily block storage snapshots.

## 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](/assignments/api). See your application details or contact your Winning Variant team for your specific URL.

### **Block Storage**

The Variant API creates a block storage volume of 100GB with the lowest IOPS option by default. A snapshot is generated nightly, replacing the one from the previous day. If you need to preserve each nightly snapshot, a task will need to be confirmed to make a copy of the snapshot.

<Note>
  **Caveat for Tri-Secret Secure accounts** ([read on Snowflake](https://docs.snowflake.com/en/developer-guide/snowpark-container-services/block-storage-volume#guidelines-and-limitations)):

  Block storage volumes do not support [Tri-Secret Secure](https://docs.snowflake.com/en/user-guide/security-encryption-tss) and [Periodic rekeying](https://docs.snowflake.com/en/user-guide/security-encryption-manage.html#label-periodic-rekeying). This means that if your account has enabled Tri-Secret Secure or periodic rekeying, while all other Snowflake data will continue to have added security, any images stored in your Snowpark Container Services block storage volumes will not benefit from this added security.

  To create a block storage volume in an account with Tri-Secret Secure or periodic rekeying, you must first confirm that you understand and agree to continue without the benefit from this additional security for your block storage volumes. To confirm agreement, an account administrator (user with the ACCOUNTADMIN role) will need to set the account-level parameter [ENABLE\_TRI\_SECRET\_AND\_REKEY\_OPT\_OUT\_FOR\_SPCS\_BLOCK\_STORAGE](https://docs.snowflake.com/en/sql-reference/parameters.html#label-enable-tri-secret-and-rekey-opt-out-for-spcs-block-storage) to `TRUE`.
</Note>

## Snowflake Credit Usage

Our internal observations show that, while running and idle (no active use) under default configuration settings, the app consumes just \~3.05 credits per day. Actual consumption cannot be guaranteed and will vary upon use.
