{"id":37104687,"url":"https://github.com/better/terraform-provider-snowflake","last_synced_at":"2026-01-14T12:38:52.354Z","repository":{"id":42045564,"uuid":"470716284","full_name":"better/terraform-provider-snowflake","owner":"better","description":"Terraform provider for managing Snowflake accounts","archived":false,"fork":true,"pushed_at":"2023-04-07T10:24:05.000Z","size":37909,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-06-21T09:49:53.459Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/providers/chanzuckerberg/snowflake/latest","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Snowflake-Labs/terraform-provider-snowflake","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/better.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2022-03-16T19:01:30.000Z","updated_at":"2022-03-16T20:44:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/better/terraform-provider-snowflake","commit_stats":null,"previous_names":[],"tags_count":100,"template":false,"template_full_name":null,"purl":"pkg:github/better/terraform-provider-snowflake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/better%2Fterraform-provider-snowflake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/better%2Fterraform-provider-snowflake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/better%2Fterraform-provider-snowflake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/better%2Fterraform-provider-snowflake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/better","download_url":"https://codeload.github.com/better/terraform-provider-snowflake/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/better%2Fterraform-provider-snowflake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28420814,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T12:38:51.550Z","updated_at":"2026-01-14T12:38:52.337Z","avatar_url":"https://github.com/better.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform Provider: Snowflake\n\n**Please note**: If you believe you have found a security issue, _please responsibly disclose_ by contacting us at [security@chanzuckerberg.com](mailto:security@chanzuckerberg.com).\n\n----\n\n![.github/workflows/ci.yml](https://github.com/chanzuckerberg/terraform-provider-snowflake/workflows/.github/workflows/ci.yml/badge.svg)\n\nThis is a terraform provider plugin for managing [Snowflake](https://www.snowflake.com/) accounts.\n\n## Getting Help\n\nIf you need help, try the [discussions area](https://github.com/chanzuckerberg/terraform-provider-snowflake/discussions) of this repo.\n\n## Install\n\nThe easiest way is to run this command:\n\n```shell\ncurl https://raw.githubusercontent.com/chanzuckerberg/terraform-provider-snowflake/main/download.sh | bash -s -- -b $HOME/.terraform.d/plugins\n```\n\n**Note that this will only work with recent releases, for older releases, use the version of download.sh that corresponds to that release (replace main in that curl with the version).**\n\nIt runs a script generated by [godownloader](https://github.com/goreleaser/godownloader) which installs into the proper directory for terraform (~/.terraform.d/plugins).\n\nYou can also just download a binary from our [releases](https://github.com/chanzuckerberg/terraform-provider-snowflake/releases) and follow the [Terraform directions for installing 3rd party plugins](https://www.terraform.io/docs/configuration/providers.html#third-party-plugins).\n\n### For Terraform v0.13+ users\n\n\u003e We are now (7/29/2021) using Terraform 0.13 for testing purposes due to an issue for data sources for versions \u003c0.13. Related PR for this change [here](https://github.com/chanzuckerberg/terraform-provider-snowflake/pull/622#issuecomment-888879621).\n\nYou can use [Explicit Provider Source Locations](https://www.terraform.io/upgrade-guides/0-13.html#explicit-provider-source-locations).\n\nThe following maybe work well.\n\n```terraform\nterraform {\n  required_providers {\n    snowflake = {\n      source = \"chanzuckerberg/snowflake\"\n      version = \"0.20.0\"\n    }\n  }\n}\n```\n\n## Usage\n\nAn [introductory tutorial](https://guides.snowflake.com/guide/terraforming_snowflake/#0) is available from Snowflake.\n\nIn-depth docs are available [on the Terraform registry](https://registry.terraform.io/providers/chanzuckerberg/snowflake/latest).\n\n## Development\n\nIf you do not have Go installed:\n\n1. Install Go `brew install golang`\n2. Make a Go development directory wherever you like `mkdir go_projects`\n3. Add the following config to your profile\n\n   ```shell\n   export GOPATH=$HOME/../go_projects # edit with your go_projects dir\n   export PATH=$PATH:$GOPATH/bin\n   ```\n\n4. Fork this repo and clone it into `go_projects`\n5. cd to `terraform-provider-snowflake` and install all the required packages with `make setup`\n6. Finally install goimports with `(cd \u0026\u0026 go install golang.org/x/tools/cmd/goimports@latest)`.\n7. You should now be able to successfully run the tests with `make test`\n\nIt has not been tested on Windows, so if you find problems let us know.\n\nIf you want to build and test the provider locally there is a make target `make install-tf` that will build the provider binary and install it in a location that terraform can find.\n\n## Testing\n\n**Note: PRs for new resources will not be accepted without passing acceptance tests.**\n\nFor the Terraform resources, there are 3 levels of testing - internal, unit and acceptance tests.\n\nThe 'internal' tests are run in the `github.com/chanzuckerberg/terraform-provider-snowflake/pkg/resources` package so that they can test functions that are not exported. These tests are intended to be limited to unit tests for simple functions.\n\nThe 'unit' tests are run in  `github.com/chanzuckerberg/terraform-provider-snowflake/pkg/resources_test`, so they only have access to the exported methods of `resources`. These tests exercise the CRUD methods that on the terraform resources. Note that all tests here make use of database mocking and are run locally. This means the tests are fast, but are liable to be wrong in subtle ways (since the mocks are unlikely to be perfect).\n\nYou can run these first two sets of tests with `make test`.\n\nThe 'acceptance' tests run the full stack, creating, modifying and destroying resources in a live snowflake account. To run them you need a snowflake account and the proper authentication set up. These tests are slower but have higher fidelity.\n\nTo run all tests, including the acceptance tests, run `make test-acceptance`.\n\n### Pull Request CI\n\nOur CI jobs run the full acceptence test suite, which involves creating and destroying resources in a live snowflake account. Github Actions is configured with environment variables to authenticate to our test snowflake account. For security reasons, those variables are not available to forks of this repo.\n\nIf you are making a PR from a forked repo, you can create a new Snowflake Enterprise trial account and set up Travis to build it by setting these environment variables:\n\n* `SNOWFLAKE_ACCOUNT` - The account name\n* `SNOWFLAKE_USER` - A snowflake user for running tests.\n* `SNOWFLAKE_PASSWORD` - Password for that user.\n* `SNOWFLAKE_ROLE` - Needs to be ACCOUNTADMIN or similar.\n* `SNOWFLAKE_REGION` - Default is us-west-2, set this if your snowflake account is in a different region.\n\nYou will also need to generate a Github API token and add the secret:\n\n* `REVIEWDOG_GITHUB_API_TOKEN` - A token for reviewdog to use to access your github account with privileges to read/write discussion.\n\n## Releasing\n\n## Running a release\n\n**Note: releases can only be done by those with keybase pgp keys allowed in the terraform registry.**\n\nReleases will be performed once a week on **Monday around 11am PST**. If your change is more urgent and you need to use it sooner, use the commit hash.\n\nReleases are done by [goreleaser](https://goreleaser.com/) and run by our make files. There two goreleaser configs, `.goreleaser.yml` for regular releases and `.goreleaser.prerelease.yml` for doing prereleases (for testing).\n\nReleases are [published to the terraform registry](https://registry.terraform.io/providers/chanzuckerberg/snowflake/latest), which requires that releases by signed.\n\n## Adding a new releaser\n\nTo set up a new person for releasing, there are a few steps–\n\n1. releaser: a [keybase account](https://keybase.io/) and a workstation set up with their [Keybase app](https://keybase.io/download).\n2. releaser: a pgp key - `keybase pgp gen`\n3. releaser: export public key.\n   1. If you have a single key in keybase–\n      1. `keybase pgp export`\n   2. If you have more than one key–\n      1. `keybase pgp export` to find id if key you want to export\n      2. `keybase pgp export -q KEY_ID`\n4. github admin for chanzuckerberg: take public key exported above and add it [in the registry](https://registry.terraform.io/settings/gpg-keys)\n5. releaser: set `KEYBASE_KEY_ID` environment variable. Note that this is different from the previous id. Get this one from `keybase pgp list`. It should be like ~70 characters long.\n6. set `GITHUB_TOKEN` environment variable with a personal access token\n7. releaser: run `make release-prerelease` to test that releases are working correctly\n8. releaser: run `make release` to release for real\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbetter%2Fterraform-provider-snowflake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbetter%2Fterraform-provider-snowflake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbetter%2Fterraform-provider-snowflake/lists"}