Skip to content

Commit b4e620f

Browse files
Release v3.4.0 changes (#522)
- Added Change log for the release 3.4.0. - Updated versions from 3.3.0 to 3.4.0 for release.
1 parent 14996a2 commit b4e620f

6 files changed

Lines changed: 29 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Okta Python SDK Changelog
22

3+
# 3.4.0
4+
5+
## Added
6+
* Implemented Demonstrating Proof-of-Possession (DPoP) for OAuth 2.0 (RFC 9449 compliant) to cryptographically bind access tokens to client keys and prevent token theft and replay attacks.
7+
* Added a thread-safe `DPoPProofGenerator` class featuring automatic key rotation, nonce management with auto-retry, and access token hash computation.
8+
* Introduced a new `get_oauth_token()` method that returns a 3-tuple including `token_type`.
9+
* Added support for a new tuple-based file upload format `[(field_name, (filename, filedata, mimetype))]` for multipart requests.
10+
* Added `Pillow` as an optional dependency, allowing users to install it via `pip install okta[images]`.
11+
* Added the `CAA` DNS record type to the `DNSRecordTypeDomains` enum to support custom domain operations returning CAA records.
12+
13+
## Changed
14+
* Maintained backward compatibility for the legacy `get_access_token()` method, which continues to return a 2-tuple.
15+
* Replaced bare `except` clauses with specific exceptions and swapped bypassable `assert` statements for proper security exceptions.
16+
* Updated Mustache templates to preserve DPoP configurations in code generation.
17+
18+
## Fixed
19+
* Fixed multipart file upload handling (such as theme image uploads) by removing the manual `Content-Type` header, which allows `aiohttp` to automatically set the proper boundary parameters.
20+
* Removed the `minLength: 5` constraint from `UserProfile.secondEmail` in the OpenAPI spec and Pydantic models to correctly deserialize user profiles with empty string secondary emails.
21+
* Fixed critical Pydantic validation errors on custom domain API endpoints (`create`, `get`, `replace`, `verify`, and `list`) by properly deserializing `CAA` records.
22+
* Fixed a bug where the `request_executor` timeout returned a raw string instead of an `Exception`.
23+
* Fixed invalid default parameter usage in `cache.get()` and restored cache cleanup logic to prevent the reuse of expired tokens.
24+
* Removed `threading.RLock` to prevent `asyncio` deadlocks and consolidated duplicate access token hash computations.
25+
* Fixed a redundant `get_dpop_error_message()` call in the `oauth` module.
26+
327
# 3.3.0
428

529
## Features & Enhancements

okta/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
""" # noqa: E501
2222

2323

24-
__version__ = "3.3.0"
24+
__version__ = "3.4.0"
2525

2626
import importlib as _importlib
2727
import threading as _threading

openapi/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
templateDir: ./templates
22
outputDir: ..
33
packageName: okta
4-
packageVersion: 3.3.0
4+
packageVersion: 3.4.0
55
useOneOfDiscriminatorLookup: true
66
files:
77
okta/okta_configuration.mustache:

openapi/templates/setup.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ setup(
7070
"Topic :: Software Development :: Libraries :: Python Modules",
7171
],
7272
name=NAME,
73-
version="3.3.0",
73+
version="3.4.0",
7474
description="Python SDK for the Okta Management API",
7575
author="Okta, Inc.",
7676
author_email="developer-community-products@okta.com",

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "okta"
3-
version = "3.3.0"
3+
version = "3.4.0"
44
description = "Okta Admin Management"
55
authors = ["Okta Developer Team <devex-public@okta.com>"]
66
license = "Apache-2.0"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def get_version():
7070
"Topic :: Software Development :: Libraries :: Python Modules",
7171
],
7272
name=NAME,
73-
version="3.3.0",
73+
version="3.4.0",
7474
description="Python SDK for the Okta Management API",
7575
author="Okta, Inc.",
7676
author_email="developer-community-products@okta.com",

0 commit comments

Comments
 (0)