Releases: mindbody/Conduit
Releases · mindbody/Conduit
Release list
1.5.0
Enhancements
- Support public OAuth2 clients that hold no client secret (#178).
OAuth2ClientConfigurationgainsinit(publicClientIdentifier:environment:guestUsername:guestPassword:)and a read-onlyisPublicClientflag. A public client identifies itself withclient_idin the token grant body and sends noAuthorization: Basicheader across every grant type. Confidential clients are unchanged.- Client-level authorization for a public client through
OAuth2RequestPipelineMiddlewarerequires guest credentials. Client-level basic, and client-level bearer without guest credentials, fail withOAuth2Error.internalFailureinstead of sending a request with no credential. - A public client using
authorization_codemust use PKCE and the authorization server must enforce it (RFC 8252 §6). Passcode_challengeviaOAuth2AuthorizationRequest.additionalParametersandcode_verifierviatokenGrantRequestAdditionalBodyParameters.
1.4.6
Bug Fixes
- Make
OAuth2RequestPipelineMiddleware.refreshClaimCoordinationEnabledthread-safe for runtime toggling (#176).- Backs the process-wide kill switch with a shared lock while preserving its public API and default-enabled behavior.
- Normalize native
URLError.timedOuterrors to the blocking client's documentedURLSessionClientError.requestTimeoutresult (#176).- Uses a stalled
URLProtocolto keep the timeout test deterministic and independent of a live endpoint.
- Uses a stalled
1.4.5
Bug Fixes
- Serialize concurrent token refreshes to prevent one-time refresh token double-spend (#174)
- Adds an in-process atomic refresh claim (
OAuth2RefreshClaimRegistry) so only one refresh grant is issued per client at a time; concurrent callers wait and reuse the winner's persisted token. - The winner re-reads the stored token after claiming and skips the grant if it was already refreshed; new tokens are persisted before waiters are woken.
- Kill switch:
OAuth2RequestPipelineMiddleware.refreshClaimCoordinationEnabled(defaults totrue); setting it tofalserestores the previous refresh behavior.
- Adds an in-process atomic refresh claim (
Other
- Replace httpbin with httpbingo in tests (#175)
1.4.4
What's Changed
- T 1404619: Update new network error condition in OAuth2Error by @amrutakamat-mindbody in #171
Full Changelog: 1.4.3...1.4.4
1.4.3
What's Changed
- T 1377658: Updated Refresh Token API minimumExpirationTime to 6 minutes by @AnshulMindbody in #170
Full Changelog: 1.4.2...1.4.3
1.4.2
What's Changed
- T 1331575: Updated Refresh Token API minimumExpirationTime to 5 minutes by @amrutakamat-mindbody in #169
New Contributors
- @amrutakamat-mindbody made their first contribution in #169
Full Changelog: 1.4.1...1.4.2
Release 1.4.1
Breaking
- None
Enhancements
- #168 (Task AB#1268089) | Defer token store unlock until token refresh response action occurs
Bug Fixes
- None
Other
- None