{"id":22281092,"url":"https://github.com/snowflakedb/snowflake-connector-net","last_synced_at":"2025-05-14T08:10:29.177Z","repository":{"id":37550431,"uuid":"96471084","full_name":"snowflakedb/snowflake-connector-net","owner":"snowflakedb","description":"Snowflake Connector for .NET","archived":false,"fork":false,"pushed_at":"2025-05-13T16:15:42.000Z","size":4478,"stargazers_count":189,"open_issues_count":57,"forks_count":147,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-05-13T17:30:15.016Z","etag":null,"topics":["csharp","database","dotnet","sql"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snowflakedb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-07-06T20:52:43.000Z","updated_at":"2025-05-11T13:45:33.000Z","dependencies_parsed_at":"2023-12-22T16:07:10.500Z","dependency_job_id":"346e58ec-2cc4-4032-9cd2-b7c682f2b886","html_url":"https://github.com/snowflakedb/snowflake-connector-net","commit_stats":{"total_commits":441,"total_committers":66,"mean_commits":6.681818181818182,"dds":0.7528344671201814,"last_synced_commit":"2bd43ee4bac0436ee1889ce1f3b8b573e4082706"},"previous_names":[],"tags_count":77,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowflakedb%2Fsnowflake-connector-net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowflakedb%2Fsnowflake-connector-net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowflakedb%2Fsnowflake-connector-net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowflakedb%2Fsnowflake-connector-net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snowflakedb","download_url":"https://codeload.github.com/snowflakedb/snowflake-connector-net/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254005419,"owners_count":21998245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["csharp","database","dotnet","sql"],"created_at":"2024-12-03T16:13:54.402Z","updated_at":"2025-05-14T08:10:24.171Z","avatar_url":"https://github.com/snowflakedb.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Snowflake Connector for .NET\n\n[![codecov](https://codecov.io/github/snowflakedb/snowflake-connector-net/coverage.svg?branch=master)](https://codecov.io/github/snowflakedb/snowflake-connector-net?branch=master)\n[![NuGet](https://img.shields.io/nuget/v/Snowflake.Data.svg)](https://www.nuget.org/packages/Snowflake.Data/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nThe Snowflake .NET connector supports the following .NET framework and libraries versions:\n\n- .NET Framework 4.6.2\n- .NET Framework 4.7.1\n- .NET Framework 4.7.2\n- .NET Framework 4.8\n- .NET Framework 4.8.1\n- .NET 6.0\n- .NET 7.0\n- .NET 8.0\n- .NET 9.0\n\nDisclaimer: While the connector targets netstandard2.0 and may work with versions in its [support matrix](https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0#select-net-standard-version), only the versions listed above are supported and tested by the connector\n\nPlease refer to the [Notice](#notice) section below for information about safe usage of the .NET Driver\n\n# Coding conventions for the project\n\nIf you would like to contribute to this project, please get to know coding conventions we would like to follow:\n[Coding conventions](CodingConventions.md).\n\n# Building the Package\n\nYou can build Snowflake .NET connector applications for Window, Macintosh, and Linux operating systems. For information about supported operating system versions, refer to the [Client Versions and Support Policy](https://docs.snowflake.com/release-notes/requirements).\n\n## Prerequisites\n\nThis project is developed under Visual Studio 2017. Earlier versions of Visual Studio are not supported.\n\n## Steps\n\nPrerequisites: Install dotnet, git, nuget, and mono (Only on Mac)\n\n1. Check out the source code from GitHub:\n\n```{r, engine='bash', code_block_name}\ngit clone git@github.com:snowflakedb/snowflake-connector-net snowflake-connector-net\n```\n\n2. Pull down the dependency:\n\n```{r, engine='bash', code_block_name}\ncd snowflake-connector-net\nnuget restore\n```\n\n3. Build the solution file\n- To build the connector only:\n```{r, engine='bash', code_block_name}\ncd Snowflake.Data\ndotnet build --configuration Release\n```\n- To build the connector and test project:\n```\nAdd a parameters.json file to Snowflake.Data.Tests\ndotnet build\n```\n\n# Installing the Package\n\nPackage ID for Snowflake Connector for .Net is Snowflake.Data.\n\nPackages can be directly downloaded from [nuget.org](https://www.nuget.org/).\n\nIt can also be downloaded using Visual Studio UI (Tools \u003e NuGet Package Manager \u003e Manage NuGet Packages for Solution and search for \"Snowflake.Data\")\n\nAlternatively, packages can also be downloaded using Package Manager Console:\n\n```{r, engine='bash', code_block_name}\nPM\u003e Install-Package Snowflake.Data\n```\n\n# Verifying the package signature\n\nStarting from version v4.2.0 the driver package is signed with a signature allowing to verify its authenticity and integrity.\nSteps to verify the signature:\n1. Install `cosign`\n2. Download the driver package file (`.nupkg`) from nuget, e.g.: https://www.nuget.org/packages/Snowflake.Data/4.2.0\n3. Download the signatures file from the release, e.g.: https://github.com/snowflakedb/snowflake-connector-net/releases/tag/v4.2.0\n4. Verify the signature, e.g:\n```shell\ncosign verify-blob snowflake.data.4.2.0.nupkg \\\n--key snowflake-connector-net-v4.2.0.pub \\\n--signature Snowflake.Data.4.2.0.nupkg.sig\n\nVerified OK\n```\n\n# Testing and Code Coverage\n\n[Running tests](doc/Testing.md)\n\n[Code coverage](doc/CodeCoverage.md)\n\n---\n\n# Usage\n\n## Create a Connection\n\nTo create a connection get familiar with: [Connecting and Authentication Methods](doc/Connecting.md)\n\n## Using Connection Pools\n\nConnection pooling description: [Multiple Connection Pools](doc/ConnectionPooling.md).\n\nPooling prior to v4.0.0 is described: [Single Connection Pool](doc/ConnectionPoolingDeprecated.md) - `deprecated`\n\n## Data Types and Formats\n\nSnowflake data types and their .NET types is covered in: [Data Types and Data Formats](doc/DataTypes.md)\n\n## Querying Data\n\nHow execute a query, use query bindings, run queries synchronously and asynchronously:\n[Running Queries and Reading Results](doc/QueryingData.md)\n\n## Structured types\n\nUsing structured types: [Structured types](doc/StructuredTypes.md)\n\n## Vector type\n\nUsing vector type: [Vector type](doc/VectorType.md)\n\n## Stage Files\n\nUsing stage files within PUT/GET commands:\n[PUT and GET Files to/from Stage](doc/StageFiles.md)\n\n## Logging\n\nLogging description and configuration:\n[Logging and Easy Logging](doc/Logging.md)\n\n## Certificate validation\nMethod of validating the connection's certificates in the .NET driver differs from the rest of the Snowflake drivers.\nRead more in [certificate validation](doc/CertficateValidation.md) docs.\n\n## Cache\n\nStoring tokens in cache for SSO/MFA authentication.\n\nRead more in [cache](doc/Cache.md) docs.\n\n---------------\n\n## Notice\n\n1.  CVE-2019-0820 -\n    This CVE has been reported in systems.text.regularexpressions.dll which is used by the regular expressions packages - systems.text.regularexpressions.4.3.1.nupkg. This vulnerability manifests itself ONLY when the following .NET runtime environments are being used:\n\n        * v1.0 branch: 1.0 - 1.0.16 (exclusive)\n        * v1.1 branch: 1.1 - 1.1.13 (exclusive)\n        * v2.1 branch: 2.1 - 2.1.11 (exclusive)\n        * v2.2 branch: 2.2 - 2.2.5  (exclusive)\n\n        In order to mitigate this vulnerability, we recommend to update to higher Runtime versions. If you're already running on a .NET Runtime version higher than the ones listed above, you're not going to be affected by this vulnerability.\n\n2.  Logging -\n    Snowflake has identified an issue on Feb 20, 2020, with our logging code for the .NET drivers in which we write Master and Session tokens in the clear to the debug logs. The debug logs are collected locally on the drive where your programs are running. This issue impacts only those instances where the programs are run with debug flags enabled, i.e. setting the log level value= \"Debug” or “All\" in the log4Net config\n\n    Under normal conditions, the Master and Session tokens captured in the log files are short-lived for about 4 and 1 hours, respectively. They will expire after the 4-hour window unless explicitly refreshed, in which case they could be refreshed indefinitely.\n\n    If you are using the .NET driver please take the following action:\n\n    - Upgrade to the latest version(v1.1.0) as soon as possible.\n    - Remove all “Debugging” options for any existing .NET drivers in use.\n    - Delete any logs collected thus far and make sure that all copies are deleted.\n    - If you cannot upgrade for any reason, please ensure all debugging is disabled\n    - If you are concerned about a potential compromise, contact Snowflake Customer Support for assistance with invalidating all active sessions/tokens.\n\n3.  Global HTTP connection settings -\n    Snowflake has identified an issue where the driver is globally enforcing TLS 1.2 and certificate revocation checks with the .NET Driver v1.2.1 and earlier versions.\n    Starting with v2.0.0, the driver will set these locally.\n\n4.  Certificate Revocation List not performed where insecureMode was disabled -\n    Snowflake has identified vulnerability where the checks against the Certificate Revocation List (CRL)\n    were not performed where the insecureMode flag was set to false, which is the default setting.\n    From version v2.1.5 CRL is working back as intended.\n\n5.  This driver currently does not support GCP regional endpoints. Please ensure that any workloads using through this driver do not require support for regional endpoints on GCP. If you have questions about this, please contact Snowflake Support.\n\nNote that the driver is now targeting .NET Standard 2.0. When upgrading, you might also need to run “Update-Package -reinstall” to update the dependencies.\n\nSee more:\n* [Security Policy](SECURITY.md)\n* [Security Advisories](/security/advisories)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnowflakedb%2Fsnowflake-connector-net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnowflakedb%2Fsnowflake-connector-net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnowflakedb%2Fsnowflake-connector-net/lists"}