Expert-backed guidance for Snowflake setup
Blueprints are step-by-step workflows built by Snowflake SMEs that guide you through environment configuration. Best practices are built into every blueprint—so you can configure with confidence that it follows proven patterns and will scale with your needs.
Self-service platform configuration, guided by experts
Blueprint Manager walks you through each decision, captures your answers, and generates the SQL and configuration tailored to your environment. No guesswork, no waiting for help—just clear direction to get productive faster.
Expert-backed guidance so you can configure your environment knowing it follows best practices and will scale with your needs.
- Confidence - Expert-defined workflows ensure you're doing it right
- Best Practices - Start with an architecture that scales
- Speed - Get productive faster with guided setup
- Self-Service - Move at your own pace
Blueprints
Blueprints are templates for best-practice Snowflake implementation and setup containing expert guidance, prescriptive configurations, validation rules, and generation logic. Blueprints will prompt you for business requirements via Cortex Code, then generate ready-to-execute SQL scripts to implement best-practice configurations, and provide curated documentation recording your decisions.
Cortex Code Skills
Blueprints run inside Cortex Code via the $blueprint-builder skill and the $best-practices-skill. Skills are instructions that tell Cortex Code how to navigate and execute Blueprints, and guide the AI to the right best practices based on your inputs to ensure correct outputs for your specific requirements.
Think of Blueprints as the "cookbook" containing all the implementation recipes and expertise, and Skills as the "index" that helps Cortex Code find and follow the right recipe for your needs.
This repository contains infrastructure-as-code templates and blueprints for setting up Snowflake blueprints.
definitions/- Question definitions for configurationblueprints/- Available blueprint configurationsscripts/- Utility scripts for rendering templatesprojects/- Project workspaces for organizing answers and outputsoutput/- Generated infrastructure code and documentation
The easiest way to configure your Snowflake Blueprint is using the Blueprint Builder skill with Snowflake Cortex. This provides a guided, interactive experience.
- Pre-requisite: Cortex Code CLI
In order to get the guided Cortex Code experience you will first need to setup the command line interface on your machine. Those instructions can be found here: https://docs.snowflake.com/LIMITEDACCESS/cortex-code/cortex-code-overview.
- Clone the repository:
git clone https://github.com/Snowflake-Labs/blueprint-manager.git
cd blueprint-manager- Start Cortex CLI:
cortex- Launch the Blueprint Builder:
/blueprints:build platform-foundation-setup-
Choose your approach:
- Option A: Provide a description of your organization (size, use case, security requirements, etc.) and Cortex will intelligently configure as many settings as possible
- Option B: Go through each question step-by-step with full guidance
-
Review the configuration — Cortex shows you:
- ✅ Questions it answered automatically (with reasoning)
- ❓ Questions that need your input (account names, emails, etc.)
⚠️ Questions that need more context from you
-
Generate SQL — once your answers are complete, Cortex runs the render script to produce ready-to-execute Snowflake SQL
- No need to understand the answer file format
- Intelligent defaults based on your organization profile
- Clear explanation of each configuration decision
- Validation and guidance throughout the process
The following commands are available when using Cortex Code in this repository:
| Command | Description |
|---|---|
/blueprints:list |
List available blueprints with metadata |
/blueprints:describe <name> |
Show blueprint details including task/step tree |
/blueprints:build <name> |
Start the interactive blueprint building process |
/blueprints:validate <file> --blueprint <name> |
Check answer file completeness |
/blueprints:render <file> --blueprint <name> |
Generate SQL/Terraform/Documentation from answers |
| Command | Description |
|---|---|
/blueprints:projects:list |
List existing projects |
/blueprints:projects:create <name> |
Create a new project directory structure |
/blueprints:projects:describe <name> |
Show project status (answers, outputs, history) |
| Command | Description |
|---|---|
/blueprints:answers:init <name> |
Generate a skeleton answer file with all questions |
/blueprints:answers:validate <file> |
Check for missing/invalid values |
/blueprints:answers:diff <file1> <file2> |
Compare two answer files |
# 1. List available blueprints
/blueprints:list
# 2. Create a project for your work
/blueprints:projects:create my-company
# 3. Start building interactively
/blueprints:build platform-foundation-setup --project my-company
# 4. Or generate a skeleton and fill manually
/blueprints:answers:init platform-foundation-setup --project my-company
# 5. Validate your answers
/blueprints:validate answers.yaml --blueprint platform-foundation-setup
# 6. Generate SQL output
/blueprints:render answers.yaml --blueprint platform-foundation-setup --project my-companyThis repository includes two Cortex Code skills that are automatically activated:
Guides users through constructing answer files interactively. Triggered when you:
- Ask to set up or configure a blueprint
- Want to create your Snowflake environment
- Need help with blueprint configuration
Provides curated guidance from Snowflake SMEs. Triggered when you ask about:
- Best practices or recommendations
- Account strategy, RBAC, security patterns
- Cost management and resource monitoring
- Naming conventions and architecture decisions
Each blueprint contains a meta.yaml file that defines its structure. The schema supports both flat (steps-only) and nested (tasks with steps) formats for backwards compatibility.
| Field | Type | Description |
|---|---|---|
blueprint_id |
string | Unique identifier for the blueprint |
name |
string | Display name for the blueprint |
summary |
string | Brief description of the blueprint's purpose |
overview |
string | Detailed description of what the blueprint accomplishes |
steps |
list | List of step slugs (references to step directories) |
| Field | Type | Description |
|---|---|---|
is_repeatable |
boolean | Whether the blueprint can be run multiple times (default: false) |
tasks |
list | Groupings of steps with metadata (see below) |
The tasks field enables grouping steps into logical units with explicit metadata. This provides context about what each group accomplishes, who should perform it, and what prerequisites are required.
tasks:
- slug: string # Unique identifier for the task (e.g., "platform-planning")
title: string # Display title for the task
summary: string # Short summary of what will be accomplished
role_requirements: # Snowflake role requirements
- string
external_requirements: # External requirements (SSO, data integration sources, etc.)
- string
personas: # Personas/roles needed for this task
- string
description: string # Optional detailed content for the Skill and future UI
steps: # Steps that belong to this task
- slug: string # Reference to step slug in the blueprint's steps list
title: string # Display title for the step within this taskblueprint_id: blueprint_abc123
name: Simple Setup
summary: Basic configuration workflow
overview: A straightforward setup process.
steps:
- step-one
- step-two
- step-threeblueprint_id: blueprint_def456
name: Platform Foundation Setup
summary: Establish core platform infrastructure
overview: Complete platform setup workflow.
is_repeatable: false
steps:
- determine-account-strategy
- configure-organization-name
- create-infrastructure-database
tasks:
- slug: platform-foundation
title: Platform Foundation
summary: Define account strategy and create shared infrastructure.
external_requirements:
- Snowflake account (trial or provisioned)
- Organization information
personas:
- Platform Administrator
- Cloud/Infrastructure Team
role_requirements:
- ORGADMIN or ACCOUNTADMIN privileges
steps:
- slug: determine-account-strategy
title: Determine Account Strategy
- slug: configure-organization-name
title: Configure Organization Name
- slug: create-infrastructure-database
title: Create Infrastructure DatabaseTask overview content can also be stored in separate markdown files using a flat directory structure:
blueprints/<blueprint-name>/
├── meta.yaml
├── overview.md
├── tasks/
│ ├── platform-planning.md # Flat structure (recommended)
│ ├── security-setup.md
│ └── cost-management.md
└── <step-slug>/
├── overview.md
├── code.sql.jinja
└── dynamic.md.jinja
The task markdown files can include additional details like time estimates, key decisions, and deliverables that supplement the structured fields in meta.yaml.
If you prefer to manage files directly without the guided experience:
ls blueprints/Review the blueprint's meta.yaml and step overview.md files to understand what will be configured.
Create a project directory structure:
# Create project structure
mkdir -p projects/my-project/answers/<blueprint_id>
mkdir -p projects/my-project/output/iac/sql
mkdir -p projects/my-project/output/documentationCreate an answer file (e.g., projects/my-project/answers/<blueprint_id>/my_answers.yaml) and provide values for each question. See definitions/questions.yaml for question details and valid options.
python scripts/render_journey.py \
projects/my-project/answers/<blueprint_id>/my_answers.yaml \
--blueprint <blueprint_id> \
--project my-project \
--lang sqlOptions:
--lang sqlor--lang terraform— choose output language--project <name>— project name for organizing outputs--skip-guidance— skip generating documentation
Output:
- SQL/Terraform files in
projects/<project>/output/iac/sql/ - Documentation in
projects/<project>/output/documentation/
Review the generated SQL file, then execute it in your Snowflake worksheet. The SQL is idempotent — safe to run multiple times.
License Copyright (c) 2026 Snowflake Inc. All rights reserved. This repo is source-available and licensed under these terms.