fix: reuse the boto3 session to sign request #122
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
instead of creating a new session to sign every request
Summary
Changes
Previously, the httpx client factory creates a new aws session object to sign the request with sigv4. This works with plain credentials, but not with assume-role credentials provider, which uses a different session role name with timestamp when the credentials is assumed.
Since the owner of the MCP session is the actors User ID (in the form of
<principal-id>:session-name>, the users creates a session (mcpinitialize), but will fail the following up requests when trying to access the MCP session ID with a different role session name.fixes: #117
User experience
User should be able to user their aws profile with assume role credentials provider.
Checklist
If your change doesn't seem to apply, please leave them unchecked.
Is this a breaking change? (Y/N)
Please add details about how this change was tested.
Tested with a profile with assume-role credentials
Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.