Release and Version History¶
Backlog¶
Features and Improvements
Minor Improvements
Bugfixes
Miscellaneous
Renamed the agent skill
.claude/skills/bsmto.claude/skills/pypi-boto_session_manager, now generated bypywf-oss-write-pypi-skill: a shortSKILL.mdplus a full API reference inref/public-api.md.
2.1.1 (2026-10-18)¶
Bugfixes
Fixed
BotoSesManager.aws_account_aliason an account without an alias: it raisedIndexErrorinstead of returningNone.BotoSesManager.print_who_am_i()no longer fails because of the account alias: it prints<not set>when the account has no alias, and<unavailable: AccessDenied>(or the other error code) when the caller may not calliam:ListAccountAliases. Theaws_account_aliasproperty still raises the error, and does not cache it.
2.1.0 (2026-10-15)¶
Breaking Changes
Dropped Python 3.10, which reached end of life this month:
requires-pythonis now>=3.11. Python 3.10 users keep getting 2.0.1.Removed the services that are no longer listed in the boto3 documentation:
AwsServiceEnum.IoTEvents,AwsServiceEnum.IoTEventsData,AwsServiceEnum.PanoramaandAwsServiceEnum.SimSpaceWeaver, with theiriotevents_client,ioteventsdata_client,panorama_clientandsimspaceweaver_clientproperties. Code that still needs them can callbsm.get_client("iotevents")and the like, as long as the installed boto3 supports them.
Features and Improvements
Added 17 AWS services to
AwsServiceEnum, each with its typed<name>_clientproperty, e.g.LambdaCore(bsm.lambdacore_client),EventBridgeV2,AgentRegistry,CloudWatchOmniandResilienceHubV2. Creating these clients needs a boto3 release that knows the service.
Bugfixes
Fixed
BotoSesManager.assume_role(external_id=...): withoutauto_refresh=Truethe external id was sent to STS asexternal_idinstead ofExternalId, so every call that passed it failed with a parameter validation error.
Miscellaneous
The tests now run against a real AWS account, locally and on CI, with a dedicated IAM user and two IAM roles (one requiring an external id), created by the new
mise run setup-aws-ciand removed bymise run teardown-aws-ci. They replace the CDK stack and the.envfile. Everyassume_roleargument and the AWS CLI integration ofawscli()are now tested.Added
mise run codegento regenerateservices.pyandclients.pyfrom the boto3 documentation.Renamed the Claude Code agent skill that teaches agents how to use this library from
.claude/skills/bsmto.claude/skills/pypi-boto_session_manager, now generated bypywf-oss-write-pypi-skill. Copy that directory into your project’s.claude/skills/to use it.Upgraded the project to the pywf open-source template 2.0.0:
pywf-oss-*maintenance skills,mise run formatandmise run lint, newer GitHub Actions,httpx2instead ofhttpxfor the maintenance tasks, pytest 9, Sphinx 8 and newer docs dependencies.
2.0.1 (2026-04-24)¶
💥Breaking Changes
Public API namespace changed: use
from boto_session_manager.api import BotoSesManagerinstead offrom boto_session_manager import BotoSesManager. All public symbols are now exported through theboto_session_manager.apimodule.
Features and Improvements
Updated all AWS service clients to include every service available as of 2026-04-24.
Added automated code-generation script (
scripts/codegen/RUN_crawl_and_generate.py) to crawl official boto3 documentation and regenerate service client code, making future updates trivial.Added
.claude/skills/bsm— a portable Claude Code agent skill that teaches any coding agent how to use this library. Copy the skill directory into your project’s.claude/skills/to enable AI-assisted development withboto_session_manager.
Minor Improvements
Updated type hints to use Python 3.10+ syntax (e.g.,
X | Noneinstead ofOptional[X]).Modernized sentinel implementation to use Python 3 style.
Migrated build system from
setup.py/requirements*.txttopyproject.tomlwithuvpackage manager.Added
mise.tomlfor development task management and tool version pinning.Added comprehensive API reference documentation (Sphinx autodoc).
Miscellaneous
Significantly expanded test coverage and improved test infrastructure.
Added CDK infrastructure for automated IAM test user provisioning.
Added CI workflow improvements.
Project is now considered fully stable.
1.8.1 (2025-03-14)¶
Features and Improvements
Add support for a lot more AWS Service (primarily bedrock stuff).
1.7.2 (2024-01-14)¶
Bugfixes
fix a bug that the
clear_cache()method does not work properly.
1.7.1 (2023-12-20)¶
Features and Improvements
add
create_boto_ses()method.add
to_snapshot()method.add
from_snapshot()method.add
from_snapshot_file()method.add
temp_snapshot()method.add
PATH_DEFAULT_SNAPSHOTconstant to public API.add support and test for 3.11, 3.12.
drop support for 3.6. test only covers 3.7+, older versions may still work.
Minor Improvements
add support for some edge case for the
awscli()method. Also identified thatduration_seconds,serial_numberandtoken_codearguments should not be used in this method. It should set the credential as it is, it should not create a new session, these arguments will be removed in 2024-03-31
Miscellaneous
Improve doc string.
1.6.1 (2023-12-10)¶
Features and Improvements
add
aws_account_user_id()property method.add
masked_aws_account_user_id()property method.add
masked_aws_account_id()property method.add
principal_arn()property method.add
masked_principal_arn()property method.add
aws_account_alias()property method.add
print_who_am_i()method.
1.5.4 (2023-07-14)¶
Miscellaneous
AWS occasionally updates the boto3 client name on their website, making some of the old
bsm.${service_name}_clientunavailable. We add alias for those old service name to maintain backward compatibility.Add
sagemaker_a2i_runtime_clientalias.
1.5.3 (2023-05-25)¶
Bugfixes
fix bug that the
awscli()method doesn’t work properly when using profile name, or using IAM role on EC2, lambda, etc…
1.5.2 (2023-05-11)¶
Minor Improvements
add
region_nameargument forassume_role()method. If it is not given, then reuse the AWS region of the base session.
1.5.1 (2023-04-14)¶
Features and Improvements
Add auto refreshable session support (beta). Note that it is using
AssumeRoleCredentialFetcherandDeferredRefreshableCredentialsfrom botocore, which is not public API officially supported by botocore.
Minor Improvements
Use Sentinel
NOTHINGinstead ofNoneto remove the ambiguity ofNonevalue.
1.4.3 (2023-04-14)¶
Miscellaneous
Add
boto3as explicit dependency.Change license from MIT to Apache 2.0
1.4.2 (2023-03-24)¶
Bugfixes
Fix a bug that the client object cannot locate the right boto3 stubs.
1.4.1 (2023-03-24)¶
Features and Improvements
Now all the client and it’s methods support auto complete and type hint. You have to do
pip install "boto3-stubs[all]"to enable “Client method auto complete” and “Arguments type hint” features.
Bugfixes
Fix a bug that
awscli()`()context manager doesn’t work properly.
1.3.2 (2023-01-31)¶
Features and Improvements
Add boto3 documentation link in doc string
1.3.1 (2022-12-10)¶
Features and Improvements
Allow to call
clear_cache()to clear all cached boto session and client.Add ton’s of property method to access the cached boto client.
Update the list of AWS service to the latest (as of 2022-12-10), which are 333 services.
1.2.2 (2022-12-10)¶
Miscellaneous
Now
boto_session_managerdoesn’t force to installboto3when installing itself. You have to manage yourboto3installation separately.
1.2.1 (2022-11-20)¶
Features and Improvements
Add
awscli()context manager to pass boto session credential to AWS CLI.
1.1.1 (2022-11-20)¶
Features and Improvements
The first API stable version
Minor Improvements
Add
deltaarguments foris_expired()method. allow to check if the session will expire in X seconds.
0.0.4 (2022-05-20)¶
Features and Improvements
Add
default_client_kwargsargument forboto_session_manager.manager.BotoSesManager.
Miscellaneous
Use localstack for unit test.
0.0.3 (2022-05-16)¶
Features and Improvements
Add additional keyword arguments for
boto_session_manager.manager.BotoSesManager.get_client()method
0.0.2 (2022-04-30)¶
Features and Improvements
Now the public API becomes
boto_session_manager.manager.BotoSesManagerAdd
boto_session_manager.manager.BotoSesManager.get_resource()method
0.0.1 (2022-04-26)¶
Features and Improvements
First release
Add
boto_session_manager.manager.BotoSessionManagerclassAdd
boto_session_manager.services.BotoSessionManagerclass