-
Notifications
You must be signed in to change notification settings - Fork 868
Add Support for Multiple Auth Schemes and SigV4a #3999
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
Changes from all commits
5a8d2fb
c591ddd
1201ab6
20730ab
c33aa26
fb989a0
1490cdb
c6c4013
f1cf998
baa0916
4659c51
1327bbe
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"core": { | ||
"changeLogMessages": [ | ||
"Added ability to configure authentication scheme preferences (e.g., prioritize SigV4a over SigV4)", | ||
"Added support for AWS_AUTH_SCHEME_PREFERENCE environment variable and auth_scheme_preference configuration file setting", | ||
"Added support for AWS_SIGV4A_SIGNING_REGION_SET environment variable and sigv4a_signing_region_set profile key to configure SigV4a signing region set" | ||
], | ||
"type": "minor", | ||
"updateMinimum": true, | ||
"backwardIncompatibilitiesToIgnore": [ | ||
"Amazon.Runtime.Internal.IRequest/MethodAbstractMethodAdded", | ||
"Amazon.Runtime.IClientConfig/MethodAbstractMethodAdded", | ||
"Amazon.Runtime.IRequestContext/MethodAbstractMethodAdded" | ||
] | ||
} | ||
} | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -163,6 +163,20 @@ public partial interface IClientConfig | |
/// </summary> | ||
string AuthenticationServiceName { get; } | ||
|
||
/// <summary> | ||
/// Gets the AuthSchemePreference property. | ||
/// A comma-separated list of authentication scheme names to use in order of preference. | ||
/// For example: "sigv4a,sigv4" to prefer SigV4a over SigV4. | ||
/// </summary> | ||
string AuthSchemePreference { get; } | ||
|
||
/// <summary> | ||
/// Gets the SigV4aSigningRegionSet property. | ||
/// A comma-separated list of regions that a SigV4a signature will be valid for. | ||
/// Use "*" to indicate all regions. | ||
/// </summary> | ||
string SigV4aSigningRegionSet { get; } | ||
Comment on lines
+166
to
+178
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [nitpick] Consider explicitly documenting the corresponding environment variables (AWS_AUTH_SCHEME_PREFERENCE, AWS_SIGV4A_SIGNING_REGION_SET) and profile keys (auth_scheme_preference, sigv4a_signing_region_set) in these summaries to improve discoverability for users configuring these options outside code. Copilot uses AI. Check for mistakes. Positive FeedbackNegative Feedback
Comment on lines
+166
to
+178
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Adding new members to a public interface is a breaking change for consumers implementing IClientConfig. To maintain backward compatibility per project guidelines, consider: (1) implementing these as extension methods over an internal accessor, (2) introducing a new derived interface while keeping the original stable, or (3) using default interface implementations (only if all supported target frameworks allow it) with safe defaults. Current approach requires a recompilation and will break third-party custom clients. Copilot generated this review using guidance from repository custom instructions. Positive FeedbackNegative Feedback |
||
|
||
/// <summary> | ||
/// Gets the UserAgent property. | ||
/// </summary> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Public interface members were added (IClientConfig, IRequest, IRequestContext) which is a breaking change for any external implementers. Classifying this as a minor version while explicitly ignoring the incompatibilities does not align with the project's API compatibility guideline; either (a) avoid modifying existing public interfaces (e.g., use extension methods, wrapper abstractions, or default interface members with backward-compatible defaults if allowed), or (b) bump the version appropriately (major) instead of suppressing. Recommend reworking to preserve binary/source compatibility or reclassifying the dev config.
Copilot generated this review using guidance from repository custom instructions.