For Data Engineers
This is the path for engineers who need programmatic access: SnowSQL, dbt, and a local development workflow. If you only need to read curated data in the browser, use For Researchers & Analysts instead.
Prerequisites
- A Natera email address (
your_name@natera.com) - GitLab access to the
eng/cgdbgroup ongitlab.natera.com - AWS CLI configured with the appropriate profiles (
cgdb-sbx,cgdb-qa,cgdb-prod)
Step 1: Get provisioned in Snowflake
An admin adds your user to the ndp-account-request repo under accounts/rwd/{env}/teams/rwd/users.json. Once the MR merges, Terraform creates your Snowflake user and provisions the Okta SSO tile. See How to Grant Access for the full workflow.
Step 2: Set up authentication for CLI access
Programmatic Access Tokens (PATs) are the simplest way to authenticate SnowSQL — no key generation or admin involvement. In Snowsight: your name → Settings → Authentication → Programmatic Access Tokens → Generate. Copy the token (you won’t see it again) and add it to ~/.snowsql/config.
Step 3: Install and configure SnowSQL
brew install --cask snowflake-snowsqlAdd a connection profile per environment to ~/.snowsql/config:
[connections.rwd_dev]accountname = WA16250-NATERA_RWD_DEVELOPMENTusername = YOUR_EMAIL@NATERA.COMpassword = <your-dev-PAT>rolename = RWD_DATA_ENGINEER_ROLEdbname = CLINICOGENOMICSAlways pass -c (connection), -w (warehouse — required), and --noup (suppress upgrade prompts):
snowsql -c rwd_dev -w RWD_DEVELOPMENT_QUERY_INTERACTIVE_WH --noup \ -q "SELECT COUNT(*) FROM CLINICOGENOMICS.LIMS_PUB.CASEFILE_FILTERED;"Step 4: Install and configure dbt
uv tool install dbt-core --with dbt-snowflake --python 3.12Configure ~/.dbt/profiles.yml with dev, qa, and prod targets, then test the connection:
cd snowflake/dbt && dbt debug --target devStep 5: Development workflow
- Clone the
cgdbrepo from GitLab. - Create a worktree for your feature branch.
- Make changes to dbt models in
snowflake/dbt/. - Test locally against dev.
- Create a Merge Request, get review, and merge to master.
- CI/CD deploys to environments based on maturity tags.
git worktree add ../cgdb-CGDB-XXXX -b CGDB-XXXX-description origin/mastercd snowflake/dbt && dbt run --select my_model --target devMCP connections (Claude Code / Cursor)
If you use Claude Code or Cursor, Snowflake MCP servers can be configured in ~/.claude/mcp.json. Default to the dev MCP server for all development; use preprod/prod only when explicitly targeting those environments.