Release and Version History

Backlog

Features and Improvements

Minor Improvements

Bugfixes

Miscellaneous

  • Renamed the agent skill .claude/skills/bsm to .claude/skills/pypi-boto_session_manager, now generated by pywf-oss-write-pypi-skill: a short SKILL.md plus a full API reference in ref/public-api.md.

2.1.1 (2026-10-18)

Bugfixes

  • Fixed BotoSesManager.aws_account_alias on an account without an alias: it raised IndexError instead of returning None.

  • 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 call iam:ListAccountAliases. The aws_account_alias property 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-python is 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.Panorama and AwsServiceEnum.SimSpaceWeaver, with their iotevents_client, ioteventsdata_client, panorama_client and simspaceweaver_client properties. Code that still needs them can call bsm.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>_client property, e.g. LambdaCore (bsm.lambdacore_client), EventBridgeV2, AgentRegistry, CloudWatchOmni and ResilienceHubV2. Creating these clients needs a boto3 release that knows the service.

Bugfixes

  • Fixed BotoSesManager.assume_role(external_id=...): without auto_refresh=True the external id was sent to STS as external_id instead of ExternalId, 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-ci and removed by mise run teardown-aws-ci. They replace the CDK stack and the .env file. Every assume_role argument and the AWS CLI integration of awscli() are now tested.

  • Added mise run codegen to regenerate services.py and clients.py from the boto3 documentation.

  • Renamed the Claude Code agent skill that teaches agents how to use this library from .claude/skills/bsm to .claude/skills/pypi-boto_session_manager, now generated by pywf-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 format and mise run lint, newer GitHub Actions, httpx2 instead of httpx for 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 BotoSesManager instead of from boto_session_manager import BotoSesManager. All public symbols are now exported through the boto_session_manager.api module.

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 with boto_session_manager.

Minor Improvements

  • Updated type hints to use Python 3.10+ syntax (e.g., X | None instead of Optional[X]).

  • Modernized sentinel implementation to use Python 3 style.

  • Migrated build system from setup.py / requirements*.txt to pyproject.toml with uv package manager.

  • Added mise.toml for 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

Minor Improvements

  • add support for some edge case for the awscli() method. Also identified that duration_seconds, serial_number and token_code arguments 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

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}_client unavailable. We add alias for those old service name to maintain backward compatibility.

  • Add sagemaker_a2i_runtime_client alias.

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_name argument for assume_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 AssumeRoleCredentialFetcher and DeferredRefreshableCredentials from botocore, which is not public API officially supported by botocore.

Minor Improvements

  • Use Sentinel NOTHING instead of None to remove the ambiguity of None value.

1.4.3 (2023-04-14)

Miscellaneous

  • Add boto3 as 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_manager doesn’t force to install boto3 when installing itself. You have to manage your boto3 installation 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 delta arguments for is_expired() method. allow to check if the session will expire in X seconds.

0.0.4 (2022-05-20)

Features and Improvements

Miscellaneous

0.0.3 (2022-05-16)

Features and Improvements

0.0.2 (2022-04-30)

Features and Improvements

0.0.1 (2022-04-26)

Features and Improvements

  • First release

  • Add boto_session_manager.manager.BotoSessionManager class

  • Add boto_session_manager.services.BotoSessionManager class