Skip to content

Commit b0bdbd9

Browse files
committed
v2.4.0
1 parent ee02988 commit b0bdbd9

3 files changed

Lines changed: 52 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# Changelog
22

3+
## v2.4.0 [2026-06-03]
4+
5+
__What's New:__
6+
7+
* Added `awsstsjwt` federation provider support (OIDC-based AWS federation via STS `GetWebIdentityToken`)
8+
9+
__Enhancements:__
10+
11+
* Updated federation provider help text to list all valid providers including `awsstsjwt` parameter format
12+
13+
__Bug Fixes:__
14+
15+
* Added per-profile file locking to prevent concurrent duplicate checkouts, gated behind `checkout_lock` config flag
16+
17+
__Dependencies:__
18+
19+
* Bumped `britive` SDK requirement from `>=4.1.2` to `>=4.6.0`
20+
21+
__Other:__
22+
23+
* None
24+
325
## v2.3.2 [2026-04-07]
426

527
__What's New:__

docs/index.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,15 @@ The custom TLS certificate to use when making HTTP requests.
155155

156156
_Allowed value:_ the path to a custom TLS certificate, e.g. `/location/of/the/CA_BUNDLE_FILE.pem`
157157

158+
#### `checkout_lock`
159+
160+
Enable per-profile file locking to prevent concurrent duplicate checkouts. This is useful when tools like
161+
credential helpers or automation frameworks resolve credentials from multiple threads or processes simultaneously.
162+
When enabled, a file-based lock is acquired per profile before performing a checkout, ensuring only one checkout
163+
occurs at a time for a given profile. Locks are stored in `~/.britive/locks/`.
164+
165+
_Allowed value:_ `true` or `false`
166+
158167
#### `my_access_retrieval_limit`
159168

160169
Limit the number of "My Access" profiles to be retrieved.
@@ -266,7 +275,8 @@ At feature launch the following types of identity providers are supported for wo
266275
`pybritive` offers some native integrations with the following services.
267276

268277
* Github Actions
269-
* AWS
278+
* AWS (STS)
279+
* AWS (STS via OIDC JWT)
270280
* Bitbucket
271281
* Azure System Assigned Managed Identities
272282
* Azure User Assigned Managed Identities
@@ -318,6 +328,24 @@ pybritive checkout "profile" --federation-provider aws-profile_expirationseconds
318328
pybritive checkout "profile" --federation-provider aws_expirationseconds
319329
```
320330

331+
#### AWS STS via OIDC (JWT)
332+
333+
```sh
334+
# use awsstsjwt with an AWS CLI profile, audience, signing algorithm, and duration
335+
# format: awsstsjwt-<profile>|<audience>|<signing_algorithm>|<duration_seconds>
336+
pybritive checkout "profile" --federation-provider awsstsjwt-myprofile|sts.amazonaws.com|RS256|3600
337+
338+
# use awsstsjwt with only an AWS CLI profile (other params use defaults)
339+
pybritive checkout "profile" --federation-provider awsstsjwt-myprofile
340+
341+
# use awsstsjwt without an AWS CLI profile (source credentials via the standard credential discovery process)
342+
pybritive checkout "profile" --federation-provider awsstsjwt
343+
```
344+
345+
The `awsstsjwt` provider uses the AWS STS `AssumeRoleWithWebIdentity` API to federate using an OIDC JWT token.
346+
Parameters are pipe-delimited in the format `awsstsjwt-<profile>|<audience>|<signing_algorithm>|<duration_seconds>`.
347+
All parameters after the profile are optional.
348+
321349
#### Bitbucket
322350

323351
> _note: no additional options are available for bitbucket._

src/pybritive/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.3.2'
1+
__version__ = '2.4.0'

0 commit comments

Comments
 (0)