-
Notifications
You must be signed in to change notification settings - Fork 61
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
fix: issue with aws credentials not being passed in correctly #1266
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
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.
👍 Looks good to me! Reviewed everything up to bf6fc64 in 13 seconds
More details
- Looked at
150
lines of code in3
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. integ-tests/python/pyproject.toml:23
- Draft comment:
Thepatchelf
dependency was removed, but this change is not mentioned in the PR description. Ensure that this removal is intentional and won't affect the build or tests. - Reason this comment was not posted:
Comment did not seem useful.
Workflow ID: wflow_3s2dnsisE8SqGCOR
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
Findings: When assuming an IAM role, it’s required by the AWS credentials chain to supply the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, as well as AWS_SESSION_TOKEN. Previously, we did not pass the AWS_SESSION_TOKEN into the credentials chain. I updated the code to do so. Additionally, fix another issue with AWS_PROFILE and SSO. There is now separate logic for when AWS_PROFILE is passed in that will use the credentials chain to grab the SSO token from disk (not available in WASM).
bf6fc64
to
b7a18c2
Compare
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.
👍 Looks good to me! Incremental review on b7a18c2 in 47 seconds
More details
- Looked at
413
lines of code in6
files - Skipped
0
files when reviewing. - Skipped posting
2
drafted comments based on config settings.
1. engine/baml-lib/llm-client/src/clients/aws_bedrock.rs:100
- Draft comment:
Consider usingunwrap_or
instead ofunwrap_or_else
for string literals to improve readability. This applies to other similar instances in this file. - Reason this comment was not posted:
Confidence changes required:20%
The code inaws_bedrock.rs
andaws_client.rs
has multiple instances whereunwrap_or_else
is used with a closure that returns a string. This can be simplified usingunwrap_or
. This is a minor optimization but improves readability.
2. engine/baml-runtime/src/internal/llm_client/primitive/aws/aws_client.rs:192
- Draft comment:
Remove the redundant comma afterawait
in theloader.credentials_provider
call. - Reason this comment was not posted:
Confidence changes required:10%
Inaws_client.rs
, theclient_anyhow
function has a redundant comma in theawait
call. This is a minor issue but should be corrected for consistency.
Workflow ID: wflow_lRFF8wsMhgDmak34
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
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.
👍 Looks good to me! Incremental review on 9a3efc3 in 53 seconds
More details
- Looked at
1522
lines of code in17
files - Skipped
0
files when reviewing. - Skipped posting
1
drafted comments based on config settings.
1. integ-tests/typescript/tests/integ-tests.test.ts:45
- Draft comment:
The test for handling invalid AWS profile is currently skipped. Ensure there's a valid reason for this, or consider enabling it to verify the functionality. - Reason this comment was not posted:
Confidence changes required:50%
The test case for handling invalid AWS profile is currently skipped. This might be intentional, but it's important to ensure that all test cases are active unless there's a specific reason to skip them. The test should be reviewed to determine if it can be enabled or if there's a valid reason for it to remain skipped.
Workflow ID: wflow_PnhJNYHLiMXRAAxL
You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet
mode, and more.
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.
Skipped PR review on 6370553 because no changed files had a supported extension. If you think this was in error, please contact us and we'll fix it right away.
Issue
Lendflow caught a bug where they were getting the error
The security token included in the request is invalid
when calling the baml client functions within the playground as well as their local environment while trying to use an assumed role. They were setting theAWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
but did not have the ability to also setAWS_SESSION_TOKEN
which is required in the aws credentials chain.Root cause and fix
When assuming an IAM role, it’s required by the AWS credentials chain to supply the
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
, as well asAWS_SESSION_TOKEN
. Previously, we did not pass theAWS_SESSION_TOKEN
into the credentials chain. I updated the code to do so.Additionally, I fixed another issue with
AWS_PROFILE
and SSO. There is now separate logic for whenAWS_PROFILE
is passed in that will use the credentials chain to grab the SSO token from disk (not available in WASM).Important
Fix AWS credentials handling by including
AWS_SESSION_TOKEN
and addingAWS_PROFILE
logic for SSO, with updates to integration tests.AWS_SESSION_TOKEN
in credentials chain inaws_bedrock.rs
andaws_client.rs
.AWS_PROFILE
handling for SSO inaws_client.rs
.UnresolvedAwsBedrock
andResolvedAwsBedrock
structs to includesession_token
andprofile
.AwsClient::client_anyhow()
to set credentials provider withsession_token
.integ-tests/typescript/tests/integ-tests.test.ts
.patchelf
dependency frompyproject.toml
.This description was created by for 9a3efc3. It will automatically update as commits are pushed.