Skip to content

feat!: Improve error handling when signing with the IAM service #2809

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 5, 2024

Conversation

amanda-tarafa
Copy link
Contributor

BREAKING CHANGE: The ComputeCredential and ImpersonatedCredential SignBlobAsync methods will throw a GoogleApiException instead of a HttpRequestExtension. The GoogleApiException makes the HttpResponseMessage content available, which usually includes details about the error.

@amanda-tarafa amanda-tarafa requested a review from jskeet August 3, 2024 07:12
@amanda-tarafa amanda-tarafa requested a review from a team as a code owner August 3, 2024 07:12
@amanda-tarafa
Copy link
Contributor Author

@jskeet happy to chat about this on Monday.

Copy link
Collaborator

@jskeet jskeet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that this is only for blob signing, my gut feeling is that it makes sense to take the breaking change. But yes, let's chat about it on Monday.

@@ -34,9 +38,9 @@ internal static class HttpResponseMessageExtensions
/// </list>
/// Any exception thrown while reading the <paramref name="response"/> <see cref="HttpResponseMessage.Content"/>
/// will be bubbled up.
/// Otherwie this method will returned the deserialized <see cref="RequestError"/>.
/// Otherwie this method will return the deserialized <see cref="RequestError"/>.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Otherwie => Otherwise (existing typo, but let's fix both at the same time)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

BREAKING CHANGE: The ComputeCredential and ImpersonatedCredential SignBlobAsync methods will throw a GoogleApiException instead of a HttpRequestExtension. The GoogleApiException makes the HttpResponseMessage content available, which usually includes details about the error.
@amanda-tarafa
Copy link
Contributor Author

We've chatted online and we'll take the breaking change in a minor for this,

@amanda-tarafa amanda-tarafa merged commit f96aa4a into main Aug 5, 2024
5 checks passed
@amanda-tarafa amanda-tarafa deleted the signing-error branch August 5, 2024 16:08
amanda-tarafa added a commit to amanda-tarafa/google-api-dotnet-client that referenced this pull request Jan 23, 2025
Fixes:

- googleapis#2869 Use universe-domain instead of universe_domain as the MDS endpoint
- googleapis#2870 BaseClientService.UniverDomain setter is obsolete
- googleapis#2871 Pause automatic requests to MDS Universe Domain endpoint

Features:

- googleapis#2746 Simplify setting the HttpClient timeout
- googleapis#2809 Improve error handling when signing with the IAM service

  BREAKING CHANGE: The ComputeCredential and ImpersonatedCredential SignBlobAsync methods will throw a GoogleApiException instead of a HttpRequestExtension. The GoogleApiException makes the HttpResponseMessage content available, which usually includes details about the error.
  We consider the risk of this change breaking users  lower than the risk of disrupting all users with a new major version so we've decided to release this breaking change on a minor version of the library. Please create an issue on this repo if you are affected and we will e happy to help.

- googleapis#2879 Use recommended retries for token and IAM sign blob endpoints
- googleapis#2913 Support GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable

Dependencies:

- googleapis#2730 Remove unused dependency Microsoft.AspNetCore.Authorization from Google.Apis.Auth.AspNetCore3

  BREAKING CHANGE: Projects using Google.Apis.Auth.AspNetCore3 that transitively depend on Microsoft.AspNetCore.Authorization may be broken. They only need to add an implicit dependency themselves. We consider the risk of this change breaking users  lower than the risk of disrupting all users with a new major version so we've decided to release this breaking change on a minor version of the library. Please create an issue on this repo if you are affected and we will e happy to help.

Documentation:

- googleapis#2916 Add warning note about user provided credential configurations
amanda-tarafa added a commit that referenced this pull request Jan 23, 2025
Fixes:

- #2869 Use universe-domain instead of universe_domain as the MDS endpoint
- #2870 BaseClientService.UniverDomain setter is obsolete
- #2871 Pause automatic requests to MDS Universe Domain endpoint

Features:

- #2746 Simplify setting the HttpClient timeout
- #2809 Improve error handling when signing with the IAM service

  BREAKING CHANGE: The ComputeCredential and ImpersonatedCredential SignBlobAsync methods will throw a GoogleApiException instead of a HttpRequestExtension. The GoogleApiException makes the HttpResponseMessage content available, which usually includes details about the error.
  We consider the risk of this change breaking users  lower than the risk of disrupting all users with a new major version so we've decided to release this breaking change on a minor version of the library. Please create an issue on this repo if you are affected and we will e happy to help.

- #2879 Use recommended retries for token and IAM sign blob endpoints
- #2913 Support GOOGLE_CLOUD_UNIVERSE_DOMAIN environment variable

Dependencies:

- #2730 Remove unused dependency Microsoft.AspNetCore.Authorization from Google.Apis.Auth.AspNetCore3

  BREAKING CHANGE: Projects using Google.Apis.Auth.AspNetCore3 that transitively depend on Microsoft.AspNetCore.Authorization may be broken. They only need to add an implicit dependency themselves. We consider the risk of this change breaking users  lower than the risk of disrupting all users with a new major version so we've decided to release this breaking change on a minor version of the library. Please create an issue on this repo if you are affected and we will e happy to help.

Documentation:

- #2916 Add warning note about user provided credential configurations
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants