Releases: sinch/sinch-sdk-python
Releases · sinch/sinch-sdk-python
Release list
v2.1.0
What's Changed
SDK
- [feature] OAuth token requests are now automatically retried (up to 3 times, with exponential backoff and jitter) when the authentication service is rate-limited (
HTTP 429). - [dependency] Set up minimum version for
requeststo>=2.0.0to prevent pulling in versions with known vulnerabilities. - [fix] Fixed a race condition in OAuth token creation and renewal under concurrent requests:
TokenManagerBasenow uses a lock with double-checked locking so the initial token is fetched exactly once, and a newrefresh_auth_token(used_token)deduplicates concurrent renewals by only fetching when the stale token still matches the cached one. - [refactor]
HTTPTransportnow prepares and authenticates requests inrequest(), so the newsend_request(request_data)receives an already-preparedHttpRequestand acts as a pure I/O primitive, simplifying subclassing. - [deprecation notice]
HTTPTransport.send(endpoint)is deprecated in favour ofsend_request(request_data); the legacy method still works for backward compatibility, but will be removed in 3.0. - [deprecation notice]
TokenManagerBase.invalidate_expired_token()andhandle_invalid_token()(and theTokenState.EXPIREDvalue) are deprecated and will be removed in 3.0, as token renewal now goes throughrefresh_auth_token(). - [tech] Removed unused GitHub environment secrets from CI workflow and simplified test fixtures to use hardcoded test values.
- [refactor] Consolidated the duplicated per-domain
BaseModelConfigurationclasses into three shared base classes insinch.core.models.internal(BaseConfigModel,SnakeCaseExtrasModel,CamelCaseDumpModel). - [doc] Improve README structure and content.
SMS
- [feature] SMS Groups API:
create,list,get,update,replace,delete, andlist_membersoperations, with full model, endpoint, and unit test coverage (see MIGRATION_GUIDE.md). - [feature] SMS Inbounds API:
getandlistoperations, with full model, endpoint, and unit test coverage (see MIGRATION_GUIDE.md). - [design] SMS Sinch Events inbound payload models unified with the Inbounds API:
MOTextSinchEvent,MOBinarySinchEvent,MOMediaSinchEvent,MediaBody, andMediaItemremoved fromsinch_events; useInboundMessage(and its variants) fromsinch.domains.sms.models.v1.typesinstead (see MIGRATION_GUIDE.md).
Numbers
- [feature]
NumberSinchEventsynchronized with the Numbers OAS spec: newinternal_failure_codefield, additionalstatusvalues (IN_REVIEW,BLOCKED,COMPLETED,REJECTED,EXPIRED), a newNUMBER_ORDER_PROCESSINGevent type, and corrected event typeDEPROVISIONING_FROM_VOICE_PLATFORM(previouslyDEPROVISIONING_TO_VOICE_PLATFORM).
v2.0.1
v2.0.0
What's Changed
SDK
- [design] Requires explicit
sms_regionandconversation_regiononSinchClientbefore using SMS and Conversation APIs (no silent US/EU defaults); runtime failure if unset (#49, #110). - [design] The v1 asynchronous client and httpx-based async stack were removed; only synchronous
SinchClientis supported (#55). - [feature] Automatic pagination via a shared
Paginatorpattern for paged list APIs (#46, #54). - [doc] README and configuration tests clarify which credentials apply to each API (#48).
Conversation
- [feature] Messages API refresh: convenience send methods (
send_text_message(),send_card_message(),send_carousel_message(),send_choice_message(),send_contact_info_message(),send_list_message(),send_location_message(),send_media_message(),send_template_message()),list()as a paginator,update(),event_destination_target(wirescallback_url), and asinch_client.conversation.sinch_events(...)helper for inbound event handling (#109–#120). - [feature] Conversation Sinch Events (webhooks) support (#122, #131, #132, #133).
- [design] Conversation webhook REST client removed; handle inbound traffic via Sinch Events (see MIGRATION_GUIDE.md) (#131, #132, #133).
Numbers
- [feature] Flatter API (
rent,list,event_destinations, and related entry points),event_destination_target, and a Numbers Sinch Events helper (#44, #53, #57, #58, #59, #62). - [feature] Available Regions endpoint (#56).
- [feature] Webhook helper validates the signing secret in
validate_signature_header()(#61). - [tech] Numbers Events payloads are passed through without client-side pre-processing (#63).
Number Lookup
SMS
- [design] SMS client configuration and authentication paths refactored for project vs service-plan credentials, including delivery-report flows (#90).
- [feature] SMS delivery reports models and pagination (#87).
groupsandinboundsare planned for a future release (see migration guide). - [feature] SMS Sinch Events (webhooks) support (#103).
- [doc] SMS migration guide and Sinch events quickstart material (#107, #108).
Verification
- [design] Verification V1 APIs are removed (#124). V2 Verification support is planned in a future release (see MIGRATION_GUIDE.md).
Voice
- [design] Voice V1 APIs are removed (#124). V2 Voice support is planned in a future release (see MIGRATION_GUIDE.md).
Others
- [dependency] Pydantic v2 (
pydantic = ">=2.0.0"). - [releasing] Ruff linter adoption (#84) and CI workflow updates (#121).
- [doc] Snippets and Getting Started live under
examples/(#95, #98, #105, #106, #115, #118, #125, #127). - [doc] Docstring updates across Numbers, SMS, and Conversation (#64, #65, #67, #96, #97).
- [refactor] Model, type, and class renames (#60, #70, #82).
- [tech] Conversation, Numbers, and SMS models and endpoints resynchronized with OpenAPI specification (#68, #75, #123, #128, #129, #134, #135).
- [test] E2E test infrastructure and refactoring (#45, #66, #102); SMS batches test coverage (#91, #93, #94).
v1.1.4
What's Changed
- Add python 3.13 and 3.14 spec by @vincentdavis in #86
- relese(ci): Add Python 3.13 and 3.14 support by @matsk-sinch in #89
New Contributors
- @vincentdavis made their first contribution in #86
Full Changelog: v1.1.3...v1.1.4
v1.1.3
What's Changed
- Fix DTMF options for conference call by @asein-sinch in #79
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
- DEVEXP-696: Disable E2E tests by @asein-sinch in #41
- DEVEXP-707: Fix README link by @matsk-sinch in #42
- DEVEXP-709: Clean Up tests and Update CI Pipeline by @matsk-sinch in #43
- Add missing implementations for async authentication by @asein-sinch in #74
Full Changelog: v1.1.1...v1.1.2
v1.1.1
v1.1.0
What's Changed
- CI: execution strategy changed by @650elx in #34
- DEVEXP-464 update verification API with backwards compat @650elx in #36
- DEVEXP-340/DEVEXP-471 - automated CI/CD release to PyPI and async library replacement in #29
- [SMS] service plan id version of the API @650elx in #17