Snowflake's new Notebooks in Workspaces introduces Notebook Project Objects (NPOs), a versioned deployment primitive that enables proper CI/CD for notebooks. A full pipeline is described using GitHub Actions and Terraform: developers work in Snowsight Workspaces with Git integration, commit to feature branches, open PRs, and on merge the pipeline provisions Snowflake infrastructure via Terraform and deploys versioned NPOs via a Python script. Key gotchas covered include mandatory RUNTIME and COMPUTE_POOL parameters, caller's rights execution model, network policy issues with GitHub-hosted runners, fully qualified table names in headless execution, and version accumulation over time. Code templates are provided for Terraform NPO provisioning, the deploy script, GitHub Actions workflow, and scheduled Task execution.
Table of contents
Why This MattersThe ArchitectureHow Terraform Fits InGit Integration: Use PRs, Not Direct PushesRunning the Deployed NotebookEnvironment PromotionGet Firvin Janardanan’s stories in your inboxThings That Will Bite YouDid You KnowWhat I’d Do DifferentlyCode TemplatesWrapping UpSort: