Skip to main content

snowcap - Snowflake infrastructure as code

PyPI Python 3.10+ License

Brought to you by Datacoves

Datacoves

Snowcap helps you provision, deploy, and secure resources in Snowflake. Datacoves takes it further: a managed DataOps platform for dbt and Airflow where governance and best practices are built into every layer.

  • Private cloud or SaaS – your data, your choice
  • Managed dbt + Airflow – production-ready from day one
  • In-browser VS Code – onboard developers in minutes
  • Bring your own tools – integrates with your existing stack, no lock-in
  • AI-assisted development – connect your organization's approved LLM (Anthropic, OpenAI, Azure, Gemini, and more)
  • Built-in governance – CI/CD, guardrails, and best practices included

Snowcap is the power tools. Datacoves is the workshop.

Explore the platform →


Why Snowcap?

Snowcap replaces Terraform, Schemachange, or Permifrost with a single, purpose-built tool for Snowflake.

Feature Snowcap Terraform SnowDDL Permifrost
Snowflake-native
No state file
YAML + Python HCL only YAML only YAML only
Speed 50%+ faster Baseline Fast Slow
60+ resource types Most Most Grants only
Templating / loops Limited
Export existing resources Import only
Actively maintained ✅ Datacoves ✅ Snowflake ⚠️ Single maintainer ⚠️ Infrequent

Key Features

  • Declarative — Generates the right SQL to make your config match your account
  • Comprehensive — 60+ Snowflake resource types supported
  • Flexible — Write configuration in YAML or Python
  • Fast — 50%+ faster than Terraform and Permifrost
  • Migration-friendly — Export existing resources with the CLI

Quick Start

Run with uv (no install needed):

uvx snowcap plan --config snowcap.yml

Or install from PyPI:

pip install snowcap

Create snowcap.yml:

warehouses:
  - name: analytics
    warehouse_size: xsmall
    auto_suspend: 60

Run:

# Set credentials
export SNOWFLAKE_ACCOUNT=my-account
export SNOWFLAKE_USER=my-user
export SNOWFLAKE_PASSWORD=my-password
export SNOWFLAKE_ROLE=SYSADMIN

# Preview changes
snowcap plan --config snowcap.yml

# Apply changes
snowcap apply --config snowcap.yml

Documentation

Full documentation, examples, and resource reference at snowcap.datacoves.com

Development

Contributor setup uses uv. One command creates .venv, installs snowcap editable, and installs the pinned dev dependencies from uv.lock:

make install-dev

This removes stale pip install -e . metadata (which would shadow the uv-managed install) and runs uv sync. Run tools through uv so the environment can never drift from the checkout:

uv run pytest          # unit tests
make lint              # black --check, codespell, ruff
make typecheck         # mypy

See TESTING.md for integration test setup.

Background

Snowcap is a fork of Titan Core. The original project appeared unmaintained, so Datacoves forked it to continue active development, fix bugs, and add new features. We're grateful to the Titan Systems team for creating and open-sourcing the original project under the Apache 2.0 license.

Support

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snowcap-1.0.27.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snowcap-1.0.27-py3-none-any.whl (275.3 kB view details)

Uploaded Python 3

File details

Details for the file snowcap-1.0.27.tar.gz.

File metadata

  • Download URL: snowcap-1.0.27.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for snowcap-1.0.27.tar.gz
Algorithm Hash digest
SHA256 de33e9cf66b0c262a93503bba9a220c19802fb656226a69dda0984c33ddc21bc
MD5 ca3073a4dfdb66b47d301cb8d4b21765
BLAKE2b-256 f8b5c93cf7e8979e08bcaf4b16e4334c5d1ecd7a75c1b3b1150d50a88f145819

See more details on using hashes here.

File details

Details for the file snowcap-1.0.27-py3-none-any.whl.

File metadata

  • Download URL: snowcap-1.0.27-py3-none-any.whl
  • Upload date:
  • Size: 275.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for snowcap-1.0.27-py3-none-any.whl
Algorithm Hash digest
SHA256 acb8cfcb4226ac0f055c2a0153bda7b135be58a543f8f32da415d2ac68455f56
MD5 cc435e36cf78e4e2e2f811a1ed7e20aa
BLAKE2b-256 b404b753d9fe2387a6be0bc2b5576ef9b26ff345d5b8914824d8b4328cf9fb46

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.28

2 files

This release

1.0.27 This release

2 files

1.0.26

2 files

1.0.25

2 files

1.0.23

2 files

1.0.22

2 files

1.0.21

2 files

1.0.20

2 files

1.0.19

2 files

1.0.18

2 files

1.0.17

2 files

1.0.16

2 files

1.0.15

2 files

1.0.14

2 files

1.0.13

2 files

1.0.12

2 files

1.0.11

2 files

1.0.10

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page