Skip to content

Aws profile support#3169

Draft
phoebusm wants to merge 3 commits into
masterfrom
aws_profile_support
Draft

Aws profile support#3169
phoebusm wants to merge 3 commits into
masterfrom
aws_profile_support

Conversation

@phoebusm

@phoebusm phoebusm commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Reference Issues/PRs

What does this implement or fix?

Any other comments?

Depends on #3153

Checklist

Checklist for code changes...
  • Have you updated the relevant docstrings, documentation and copyright notice?
  • Is this contribution tested against all ArcticDB's features?
  • Do all exceptions introduced raise appropriate error messages?
  • Are API changes highlighted in the PR description?
  • Is the PR labelled as enhancement or bug so it appears in autogenerated release notes?

Alex Seaton and others added 3 commits June 5, 2026 16:46
Bump the AWS SDK and its CRT dependency stack to the latest versions
resolvable from vcpkg. This advances the vcpkg submodule and
builtin-baseline together (bb14c5ab24 -> cea592f477) because vcpkg
resolves dependency versions against the commit named by
builtin-baseline, not the submodule working tree; the override versions
for aws-crt-cpp and the aws-c-* libraries only exist in the newer
version database.

Overrides updated to the CRT set that aws-sdk-cpp 1.11.820 bundles as
submodules (crt-cpp 0.39.1, aws-c-common 0.13.1, aws-c-io 0.26.3,
aws-c-s3 0.12.4, aws-c-http 0.11.0, aws-c-auth 0.10.3, aws-c-cal
0.9.14, aws-c-mqtt 0.15.2, aws-c-event-stream 0.7.1, aws-c-sdkutils
0.2.4, aws-checksums 0.2.10), keeping our pins aligned with the
versions AWS tested together.

The overlay vcpkg.json was regenerated from the 1.11.820 source
(435 service features, up from 414) and the portfile SHA512 updated to
the 1.11.820 tarball (verified against the upstream vcpkg port hash and
a direct download).

Patch changes
-------------

Removed fix-refresh.patch. It changed RefreshIfExpired() in
STSProfileCredentialsProvider.cpp from "||" to "&&" so a non-expired
credential would not be refreshed merely because the reload interval had
elapsed. Upstream has since adopted exactly this logic and gone further:
1.11.820 reads "!IsTimeToRefresh(...) && !m_credentials.IsEmpty() &&
!m_credentials.ExpiresSoon(...)". The fix is upstream, and the patch's
context lines no longer exist, so it would fail to apply.

Removed fix-win-https-conn.patch (Windows only). It dropped the
"&& m_verifySSL" guard in WinHttpSyncHttpClient::OpenRequest so HTTPS
requests always set WINHTTP_FLAG_SECURE regardless of verifySSL.
1.11.820 already sets the flag unconditionally for HTTPS
("if (scheme == HTTPS) requestFlags |= WINHTTP_FLAG_SECURE;"), so the
patch is redundant and, again, no longer applies to the refactored code.

Added configure-binary-dir.patch (symlinked from the upstream vcpkg
port, aws/aws-sdk-cpp#3459). 1.11.820 generates VersionConfig.h and
SDKConfig.h into the source tree during configure; the patch redirects
them to the binary dir and reads the version from the VERSION file. This
is part of upstream's own patch list for 1.11.820 and is required to
build against a read-only source tree.

The >=1.11.486 default data-integrity (checksum) behaviour change that
previously blocked this upgrade is already neutralised in
s3_storage.hpp::configure_s3_checksum_validation, which forces
when_required unless the user opts in; the override note is updated to
record this.

Other dependencies without explicit overrides move to the new baseline
(e.g. boost 1.91.0, curl 8.20.0). vcpkg dry-run confirms the full plan
resolves and selects aws-sdk-cpp 1.11.820 with [s3, identity-management,
sts, cognito-identity, core].
The aws-sdk-cpp baseline bump floated thrift (a transitive dependency of
the pinned arrow) from 0.22.0 to 0.23.0. thrift 0.23.0 builds locally but
fails to compile in the manylinux CI wheel-build container. Pin it back to
0.22.0#2, the version arrow 21.0.0#2 was tested against, which is still
present in the new baseline version database.
config_dir = os.path.dirname(config_file_path)
os.makedirs(config_dir, exist_ok=True)
with open(config_file_path, "w") as config_file:
config_file.write(aws_config)
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