You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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 requests to >=2.0.0 to prevent pulling in versions with known vulnerabilities.
[fix] Fixed a race condition in OAuth token creation and renewal under concurrent requests: TokenManagerBase now uses a lock with double-checked locking so the initial token is fetched exactly once, and a new refresh_auth_token(used_token) deduplicates concurrent renewals by only fetching when the stale token still matches the cached one.
[refactor]HTTPTransport now prepares and authenticates requests in request(), so the new send_request(request_data) receives an already-prepared HttpRequest and acts as a pure I/O primitive, simplifying subclassing.
[deprecation notice]HTTPTransport.send(endpoint) is deprecated in favour of send_request(request_data); the legacy method still works for backward compatibility, but will be removed in 3.0.
[deprecation notice]TokenManagerBase.invalidate_expired_token() and handle_invalid_token() (and the TokenState.EXPIRED value) are deprecated and will be removed in 3.0, as token renewal now goes through refresh_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 BaseModelConfiguration classes into three shared base classes in sinch.core.models.internal (BaseConfigModel, SnakeCaseExtrasModel, CamelCaseDumpModel).
[doc] Improve README structure and content.
SMS
[feature] SMS Groups API: create, list, get, update, replace, delete, and list_members operations, with full model, endpoint, and unit test coverage (see MIGRATION_GUIDE.md).
[feature] SMS Inbounds API: get and list operations, 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, and MediaItem removed from sinch_events; use InboundMessage (and its variants) from sinch.domains.sms.models.v1.types instead (see MIGRATION_GUIDE.md).
Numbers
[feature]NumberSinchEvent synchronized with the Numbers OAS spec: new internal_failure_code field, additional status values (IN_REVIEW, BLOCKED, COMPLETED, REJECTED, EXPIRED), a new NUMBER_ORDER_PROCESSING event type, and corrected event type DEPROVISIONING_FROM_VOICE_PLATFORM (previously DEPROVISIONING_TO_VOICE_PLATFORM).