Skip to content

Commit

Permalink
Merge branch 'main' into Task-28274-Update-API-Documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
H-Yeo committed Feb 7, 2024
2 parents eed5b4b + 507e8dd commit 3ca9b7e
Show file tree
Hide file tree
Showing 11 changed files with 175 additions and 20 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Expand Up @@ -131,6 +131,19 @@ This update brings the below changes over the previous release:
- Added Microsoft.SqlServer.Types to verify support for SqlHierarchyId and Spatial for .NET Core. [#1848](https://github.com/dotnet/SqlClient/pull/1848)
- Code health improvements:[#1943](https://github.com/dotnet/SqlClient/pull/1943)[#1949](https://github.com/dotnet/SqlClient/pull/1949)[#1198](https://github.com/dotnet/SqlClient/pull/1198)[#1829](https://github.com/dotnet/SqlClient/pull/1829)

## [Stable release 5.1.5] - 2024-01-29

This update brings the below changes over the previous release:

### Fixed

- Fixed connection to unsubscribe from transaction completion events before returning it to the connection pool [#2321](https://github.com/dotnet/SqlClient/pull/2321)
- Fixed InvalidCastException when reading an Always Encrypted date or time column [#2324](https://github.com/dotnet/SqlClient/pull/2324)

### Changed

- Changed Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Protocols.OpenIdConnect version 6.24.0 to 6.35.0 [#2320](https://github.com/dotnet/SqlClient/pull/2320) to address [CVE-2024-21319](https://www.cve.org/CVERecord?id=CVE-2024-21319)

## [Stable release 5.1.4] - 2024-01-09

This update brings the below changes over the previous release:
Expand Down
68 changes: 68 additions & 0 deletions release-notes/5.1/5.1.5.md
@@ -0,0 +1,68 @@
# Release Notes

## Microsoft.Data.SqlClient 5.1.5 released 29 January 2024

This update includes the following changes over the previous release:

### Fixed

- Fixed connection to unsubscribe from transaction completion events before returning it to the connection pool [#2321](https://github.com/dotnet/SqlClient/pull/2321)
- Fixed InvalidCastException when reading an Always Encrypted date or time column [#2324](https://github.com/dotnet/SqlClient/pull/2324)

### Changed

- Changed Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Protocols.OpenIdConnect version 6.24.0 to 6.35.0 [#2320](https://github.com/dotnet/SqlClient/pull/2320) to address [CVE-2024-21319](https://www.cve.org/CVERecord?id=CVE-2024-21319)

## Target Platform Support

- .NET Framework 4.6.2+ (Windows x86, Windows x64)
- .NET 6.0+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS)
- .NET Standard 2.0+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS)

### Dependencies

#### .NET Framework

- Microsoft.Data.SqlClient.SNI 5.1.1
- Azure.Identity 1.10.3
- Microsoft.Identity.Client 4.56.2
- Microsoft.IdentityModel.JsonWebTokens 6.35.0
- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
- System.Buffers 4.5.1
- System.Configuration.ConfigurationManager 6.0.1
- System.Runtime.InteropServices.RuntimeInformation 4.3.0
- System.Text.Encoding.Web 6.0.0

#### .NET

- Microsoft.Data.SqlClient.SNI 5.1.1
- Azure.Identity 1.10.3
- Microsoft.Identity.Client 4.56.2
- Microsoft.IdentityModel.JsonWebTokens 6.35.0
- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
- Microsoft.SqlServer.Server 1.0.0
- System.Configuration.ConfigurationManager 6.0.1
- System.Diagnostics.DiagnosticSource 6.0.0
- System.Runtime.Caching 6.0.0
- System.Text.Encoding.CodePages 6.0.0
- System.Text.Encodings.Web 6.0.0
- System.Security.Cryptography.Cng 5.0.0
- System.Security.Principal.Windows 5.0.0

#### .NET Standard

- Microsoft.Data.SqlClient.SNI 5.1.1
- Azure.Identity 1.10.3
- Microsoft.Identity.Client 4.56.2
- Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
- Microsoft.IdentityModel.JsonWebTokens 6.35.0
- Microsoft.SqlServer.Server 1.0.0
- Microsoft.Win32.Registry 5.0.0
- System.Buffers 4.5.1
- System.Configuration.ConfigurationManager 6.0.1
- System.Runtime.Caching 6.0.0
- System.Text.Encoding.CodePages 6.0.0
- System.Text.Encodings.Web 6.0.0
- System.Runtime.Loader 4.3.0
- System.Security.Cryptography.Cng 5.0.0
- System.Security.Principal.Windows 5.0.0
1 change: 1 addition & 0 deletions release-notes/5.1/5.1.md
Expand Up @@ -4,6 +4,7 @@ The following Microsoft.Data.SqlClient 5.1 stable releases have been shipped:

| Release Date | Version | Notes |
| :-- | :-- | :--: |
| 2024/01/29 | 5.1.5 | [release notes](5.1.5.md) |
| 2024/01/09 | 5.1.4 | [release notes](5.1.4.md) |
| 2024/01/09 | 5.1.3 | [release notes](5.1.3.md) |
| 2023/10/26 | 5.1.2 | [release notes](5.1.2.md) |
Expand Down
1 change: 1 addition & 0 deletions release-notes/5.1/README.md
Expand Up @@ -4,6 +4,7 @@ The following Microsoft.Data.SqlClient 5.1 stable releases have been shipped:

| Release Date | Version | Notes |
| :-- | :-- | :--: |
| 2024/01/29 | 5.1.5 | [release notes](5.1.5.md) |
| 2024/01/09 | 5.1.4 | [release notes](5.1.4.md) |
| 2024/01/09 | 5.1.3 | [release notes](5.1.3.md) |
| 2023/10/26 | 5.1.2 | [release notes](5.1.2.md) |
Expand Down
1 change: 1 addition & 0 deletions release-notes/README.md
Expand Up @@ -22,6 +22,7 @@ The latest stable release is [Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyV

## Release Information

- [Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 5.1](add-ons/AzureKeyVaultProvider/5.1)
- [Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 3.0](add-ons/AzureKeyVaultProvider/3.0)
- [Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 2.0](add-ons/AzureKeyVaultProvider/2.0)
- [Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 1.2](add-ons/AzureKeyVaultProvider/1.2)
Expand Down
72 changes: 72 additions & 0 deletions release-notes/add-ons/AzureKeyVaultProvider/5.1/5.1.0.md
@@ -0,0 +1,72 @@
# Release Notes

## General Availability of Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider

_**5.1.0 released 01 February 2024**_

This library contains the implementation of `Microsoft.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider` for accessing Azure Key Vault, and the provider class is named `SqlColumnEncryptionAzureKeyVaultProvider`.

### Changed

- Changed Microsoft.Data.SqlClient version 3.0.0 to 5.1.5 [#2330](https://github.com/dotnet/SqlClient/pull/2330)
- Changed Azure.Core version 1.6.0 to 1.35.0 [#2330](https://github.com/dotnet/SqlClient/pull/2330)
- Changed Azure.Security.KeyVault.Keys 4.0.3 to 4.5.0 [#2330](https://github.com/dotnet/SqlClient/pull/2330)
- Changed Microsoft.Extensions.Caching.Memory 5.0.0 to 8.0.0 for .Net 8.0 and 6.0.1 for other Target frameworks [#2330](https://github.com/dotnet/SqlClient/pull/2330)

### Working with SQLColumnEncryptionAzureKeyVaultProvider

`SqlColumnEncryptionAzureKeyVaultProvider` **v5.1** is implemented against `Microsoft.Data.SqlClient` **v5.1** and supports .NET Framework 4.6.2+, .NET Core 6.0+, and .NET Standard 2.0+. The provider name identifier for this library is "**AZURE_KEY_VAULT**" and it is not registered in the driver by default. Client applications may initialize this provider by providing an `Azure.Core.TokenCredential` and registering it with the driver using any of the below APIs:

- [SqlConnection.RegisterColumnEncryptionKeyStoreProviders](https://docs.microsoft.com/dotnet/api/microsoft.data.sqlclient.sqlconnection.registercolumnencryptionkeystoreproviders?view=sqlclient-dotnet-5.1)
- [SqlConnection.RegisterColumnEncryptionKeyStoreProvidersOnConnection](https://docs.microsoft.com/dotnet/api/microsoft.data.sqlclient.sqlconnection.registercolumnencryptionkeystoreprovidersonconnection?view=sqlclient-dotnet-5.1) (Added in version 3.0.0)
- [SqlCommand.RegisterColumnEncryptionKeyStoreProvidersOnCommand](https://docs.microsoft.com/dotnet/api/microsoft.data.sqlclient.sqlcommand.registercolumnencryptionkeystoreprovidersoncommand?view=sqlclient-dotnet-5.1) (Added in version 3.0.0)

Once the provider is registered, it can be used to perform Always Encrypted operations by creating a Column Master Key using the Azure Key Vault Key Identifier URL.

The linked C# samples below demonstrate using Always Encrypted with secure enclaves with Azure Key Vault:

- Legacy API support (Always Encrypted): [AzureKeyVaultProviderExample.cs](https://github.com/dotnet/SqlClient/blob/main/doc/samples/AzureKeyVaultProviderLegacyExample_2_0.cs)
- New API support (Always Encrypted): [AzureKeyVaultProviderExample.cs](https://github.com/dotnet/SqlClient/blob/main/doc/samples/AzureKeyVaultProviderExample_2_0.cs)
- Legacy API support (Always Encrypted with secure enclaves): [AzureKeyVaultProviderExample.cs](https://github.com/dotnet/SqlClient/blob/main/doc/samples/doc\samples\AzureKeyVaultProviderWithEnclaveProviderExample.cs)
- New API support (Always Encrypted with secure enclaves): [AzureKeyVaultProviderExample.cs](https://github.com/dotnet/SqlClient/blob/main/doc/samples/doc\samples\AzureKeyVaultProviderWithEnclaveProviderExample_2_0.cs)
- Column Encryption Key cache scope example: [AzureKeyVaultProvider_ColumnEncryptionKeyCacheScope.cs](https://github.com/dotnet/SqlClient/blob/main/doc/samples/AzureKeyVaultProvider_ColumnEncryptionKeyCacheScope.cs)
- Registering custom key store provider - Connection Precedence: [RegisterCustomKeyStoreProvider_ConnectionPrecedence.cs](https://github.com/dotnet/SqlClient/blob/main/doc/samples/RegisterCustomKeyStoreProvider_ConnectionPrecedence.cs)
- Registering custom key store provider - Command Precedence: [RegisterCustomKeyStoreProvider_CommandPrecedence.cs](https://github.com/dotnet/SqlClient/blob/main/doc/samples/RegisterCustomKeyStoreProvider_CommandPrecedence.cs)

For further details, refer to [Using the Azure Key Vault provider](https://docs.microsoft.com/sql/connect/ado-net/sql/sqlclient-support-always-encrypted#using-the-azure-key-vault-provider)

## Target Platform Support

- .NET Framework 4.6.2+
- .NET Core 6.0+ (Windows x86, Windows x64, Linux, macOS)
- .NET Standard 2.0+

### Dependencies

#### .NET Framework

- Azure.Core 1.35.0
- Azure.Security.KeyVault.Keys 4.5.0
- Microsoft.Data.SqlClient 5.1.5
- Microsoft.Extensions.Caching.Memory 6.0.1

##### .NET 6

- Azure.Core 1.35.0
- Azure.Security.KeyVault.Keys 4.5.0
- Microsoft.Data.SqlClient 5.1.5
- Microsoft.Extensions.Caching.Memory 6.0.1

#### .NET 8

- Azure.Core 1.35.0
- Azure.Security.KeyVault.Keys 4.5.0
- Microsoft.Data.SqlClient 5.1.5
- Microsoft.Extensions.Caching.Memory 8.0.0

#### .NET Standard

- Azure.Core 1.35.0
- Azure.Security.KeyVault.Keys 4.5.0
- Microsoft.Data.SqlClient 5.1.5
- Microsoft.Extensions.Caching.Memory 6.0.1
7 changes: 7 additions & 0 deletions release-notes/add-ons/AzureKeyVaultProvider/5.1/README.md
@@ -0,0 +1,7 @@
# Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 5.1 Releases

The following Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 5.1 stable releases have been shipped:

| Release Date | Description | Notes |
| :-- | :-- | :--: |
| 2024/02/01 | 5.1.0 | [release notes](5.1.0.md) |
1 change: 1 addition & 0 deletions tools/props/VersionsNet8OrLater.props
Expand Up @@ -4,5 +4,6 @@
<PropertyGroup>
<SystemConfigurationConfigurationManagerVersion>8.0.0</SystemConfigurationConfigurationManagerVersion>
<SystemRuntimeCachingVersion>8.0.0</SystemRuntimeCachingVersion>
<MicrosoftExtensionsCachingMemoryVersion>8.0.0</MicrosoftExtensionsCachingMemoryVersion>
</PropertyGroup>
</Project>
5 changes: 0 additions & 5 deletions tools/specs/Microsoft.Data.SqlClient.nuspec
Expand Up @@ -128,25 +128,20 @@ When using NuGet 3.x this package requires at least version 3.4.</description>

<!-- ref NetFx -->
<file src="..\..\artifacts\Project\bin\Windows_NT\$Configuration$\Microsoft.Data.SqlClient\ref\net462\Microsoft.Data.SqlClient.dll" target="ref\net462\" exclude="" />
<file src="..\..\artifacts\Project\bin\Windows_NT\$Configuration$\Microsoft.Data.SqlClient\ref\net462\Microsoft.Data.SqlClient.pdb" target="ref\net462\" exclude="" />
<file src="..\..\artifacts\Project\bin\Windows_NT\$Configuration$\Microsoft.Data.SqlClient\ref\net462\Microsoft.Data.SqlClient.xml" target="ref\net462\" exclude="" />

<!-- ref NetCore -->
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\net8.0\Microsoft.Data.SqlClient.dll" target="ref\net8.0\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\net8.0\Microsoft.Data.SqlClient.pdb" target="ref\net8.0\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\net8.0\Microsoft.Data.SqlClient.xml" target="ref\net8.0\" exclude="" />

<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\net6.0\Microsoft.Data.SqlClient.dll" target="ref\net6.0\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\net6.0\Microsoft.Data.SqlClient.pdb" target="ref\net6.0\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\net6.0\Microsoft.Data.SqlClient.xml" target="ref\net6.0\" exclude="" />

<!-- ref NetStandard -->
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\netstandard2.0\Microsoft.Data.SqlClient.dll" target="ref\netstandard2.0\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\netstandard2.0\Microsoft.Data.SqlClient.pdb" target="ref\netstandard2.0\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\netstandard2.0\Microsoft.Data.SqlClient.xml" target="ref\netstandard2.0\" exclude="" />

<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\netstandard2.1\Microsoft.Data.SqlClient.dll" target="ref\netstandard2.1\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\netstandard2.1\Microsoft.Data.SqlClient.pdb" target="ref\netstandard2.1\" exclude="" />
<file src="..\..\artifacts\Project\bin\AnyOS\$Configuration$\Microsoft.Data.SqlClient\ref\netstandard2.1\Microsoft.Data.SqlClient.xml" target="ref\netstandard2.1\" exclude="" />

<!-- Localized Resource Files for NetFx -->
Expand Down
2 changes: 1 addition & 1 deletion tools/specs/Microsoft.SqlServer.Server.nuspec
Expand Up @@ -9,7 +9,7 @@
<license type="expression">MIT</license>
<projectUrl>https://aka.ms/sqlclientproject</projectUrl>
<icon>dotnet.png</icon>
<repository type="git" url="https://github.com/dotnet/sqlclient" />
<repository type="git" url="https://github.com/dotnet/sqlclient" commit="$COMMITID$" />
<description>This is a helper library for Microsoft.Data.SqlClient enabling cross framework support of UDT types.

Available Types:
Expand Down
Expand Up @@ -9,7 +9,7 @@
<license type="expression">MIT</license>
<projectUrl>https://aka.ms/sqlclientproject</projectUrl>
<icon>dotnet.png</icon>
<repository type="git" url="https://github.com/dotnet/sqlclient" />
<repository type="git" url="https://github.com/dotnet/sqlclient" commit="$COMMITID$"/>
<description>Always Encrypted Azure Key Vault Provider for Microsoft.Data.SqlClient.

This library enables .NET Core and .NET Framework applications to use Microsoft Azure Key Vault with Always Encrypted in Microsoft Azure SQL Database and Microsoft SQL Server. The library includes the column master key store provider that allows client applications to access data when a column master key is stored in Microsoft Azure Key Vault. For more information on Always Encrypted, please refer to: https://aka.ms/AlwaysEncrypted.
Expand All @@ -25,31 +25,27 @@ Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyStoreProvider.SqlColumnEncrypti
<tags>sqlclient microsoft.data.sqlclient azurekeyvaultprovider akvprovider alwaysencrypted</tags>
<dependencies>
<group targetFramework="net462">
<dependency id="Microsoft.Data.SqlClient" version="5.1.2" />
<dependency id="Microsoft.Data.SqlClient" version="5.1.5" />
<dependency id="Azure.Core" version="[1.35.0,2.0.0)" />
<dependency id="System.Text.Encodings.Web" version="6.0.0" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.4.0,5.0.0)" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.5.0,5.0.0)" />
<dependency id="Microsoft.Extensions.Caching.Memory" version="6.0.1" />
</group>
<group targetFramework="net8.0">
<dependency id="Microsoft.Data.SqlClient" version="5.1.2" />
<dependency id="Microsoft.Data.SqlClient" version="5.1.5" />
<dependency id="Azure.Core" version="[1.35.0,2.0.0)" />
<dependency id="System.Text.Encodings.Web" version="6.0.0" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.4.0,5.0.0)" />
<dependency id="Microsoft.Extensions.Caching.Memory" version="6.0.1" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.5.0,5.0.0)" />
<dependency id="Microsoft.Extensions.Caching.Memory" version="8.0.0" />
</group>
<group targetFramework="net6.0">
<dependency id="Microsoft.Data.SqlClient" version="5.1.2" />
<dependency id="Microsoft.Data.SqlClient" version="5.1.5" />
<dependency id="Azure.Core" version="[1.35.0,2.0.0)" />
<dependency id="System.Text.Encodings.Web" version="6.0.0" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.4.0,5.0.0)" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.5.0,5.0.0)" />
<dependency id="Microsoft.Extensions.Caching.Memory" version="6.0.1" />
</group>
<group targetFramework="netstandard2.0">
<dependency id="Microsoft.Data.SqlClient" version="5.1.2" />
<dependency id="Microsoft.Data.SqlClient" version="5.1.5" />
<dependency id="Azure.Core" version="[1.35.0,2.0.0)" />
<dependency id="System.Text.Encodings.Web" version="6.0.0" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.4.0,5.0.0)" />
<dependency id="Azure.Security.KeyVault.Keys" version="[4.5.0,5.0.0)" />
<dependency id="Microsoft.Extensions.Caching.Memory" version="6.0.1" />
</group>
</dependencies>
Expand Down

0 comments on commit 3ca9b7e

Please sign in to comment.