---
title: "Snowflake Protocol Configuration"
---

# Snowflake Protocol Configuration

:::caution[Planned: not in the current release]
Snowflake SQL API compatibility for HeliosDB Full is planned. Today, the HTTP gateway answers `/snowflake/` paths with `501 Not Implemented`. Reach
the same data over the PostgreSQL listener or `POST /api/v1/query` today. This page
describes the planned interface.
:::

Complete configuration reference for Snowflake protocol compatibility in HeliosDB.

## Server Configuration

### Basic Settings

```toml
[snowflake]
# Enable Snowflake protocol
enabled = true

# API endpoint path
api_path = "/api/v2/sql"

# Maximum query timeout (seconds)
query_timeout = 3600

# Default warehouse
default_warehouse = "COMPUTE_WH"

# Default database
default_database = "PUBLIC"
```

### Virtual Warehouse Settings

```toml
[snowflake.warehouse]
# Default warehouse size
default_size = "MEDIUM"

# Auto-suspend timeout (seconds)
auto_suspend = 300

# Auto-resume on query
auto_resume = true

# Maximum warehouses
max_warehouses = 100

# Available sizes
sizes = ["XSMALL", "SMALL", "MEDIUM", "LARGE", "XLARGE", "2XLARGE", "3XLARGE", "4XLARGE"]
```

### Time Travel Settings

```toml
[snowflake.time_travel]
# Enable time travel
enabled = true

# Maximum retention period (days)
max_retention_days = 90

# Default retention period (days)
default_retention_days = 1

# Enable fail-safe
fail_safe_enabled = true
```

### VARIANT Data Type

```toml
[snowflake.variant]
# Maximum VARIANT size (bytes)
max_size = 16777216  # 16MB

# Path notation separator
path_separator = ":"

# Array index notation
array_notation = "brackets"  # brackets or dot
```

### COPY INTO Settings

```toml
[snowflake.copy]
# Supported file formats
formats = ["CSV", "JSON", "PARQUET", "AVRO", "ORC", "XML"]

# Maximum file size (bytes)
max_file_size = 5368709120  # 5GB

# Default compression
default_compression = "GZIP"

# Stage location
internal_stage_path = "/data/stages"

# External stages enabled
external_stages_enabled = true
```

### Cloud Integration

```toml
[snowflake.cloud]
# AWS S3 integration
[snowflake.cloud.s3]
enabled = true
default_region = "us-east-1"

# Azure Blob integration
[snowflake.cloud.azure]
enabled = true
default_account = ""

# GCP GCS integration
[snowflake.cloud.gcs]
enabled = true
default_project = ""
```

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `HELIOSDB_SNOWFLAKE_ENABLED` | Enable Snowflake protocol | true |
| `HELIOSDB_SNOWFLAKE_DEFAULT_WH` | Default warehouse | COMPUTE_WH |
| `HELIOSDB_SNOWFLAKE_QUERY_TIMEOUT` | Query timeout (sec) | 3600 |
| `HELIOSDB_SNOWFLAKE_TIME_TRAVEL_DAYS` | Time travel retention | 1 |
| `HELIOSDB_SNOWFLAKE_AUTO_SUSPEND` | Auto-suspend timeout | 300 |

## Connection Parameters

| Parameter | Description | Default |
|-----------|-------------|---------|
| `account` | Account identifier | required |
| `user` | Username | required |
| `password` | Password | required |
| `warehouse` | Virtual warehouse | COMPUTE_WH |
| `database` | Default database | - |
| `schema` | Default schema | PUBLIC |
| `role` | User role | - |

## Warehouse Sizes

| Size | Credit/Hour | Approx. CPUs |
|------|-------------|--------------|
| X-Small | 1 | 1 |
| Small | 2 | 2 |
| Medium | 4 | 4 |
| Large | 8 | 8 |
| X-Large | 16 | 16 |
| 2X-Large | 32 | 32 |
| 3X-Large | 64 | 64 |
| 4X-Large | 128 | 128 |

---

