- Add globus_sdk.IdentityMap, a mapping-like object for Auth ID lookups (#367)
- Minor documentation and build improvements (#369, #362)
- Don't append trailing slashes when no path is given to a low-level client method like get() (#364)
- Add external_checksum and checksum_algorithm to TransferData.add_item() named arguments (#365)
- Add a property to paginated results which shows if more results are available (#346)
- Update docs to state that Globus SDK uses semver (#357)
- Fix RefreshTokenAuthorizer to handle a new refresh_token being sent back by Auth (#359)
- Fix typo in endpoint_search log message (#355)
- Fix Globus Web App activation links in docs (#356)
- Allow arbitrary keyword args to TransferData.add_item() and DeleteData.add_item(), which passthrough to the item bodies (#339)
- Minor internal improvements (#342, #343)
- Add get_task and get_task_list to SearchClient (#335, #336)
- Internal maintenance and testing improvements (#331, #334, #333)
- Replace egg distribution format with wheels (#314)
- Internal maintenance
- Correct handling of environment="production" as an argument to client construction (#307)
- RenewingAuthorizer and its subclasses now expose the check_expiration_time method (#309)
- Allow parameters to be passed to customize the request body of ConfidentialAppAuthClient.oauth2_get_dependent_tokens (#308)
- Use sha256 hashes of tokens (instead of last 5 chars) in debug logging (#305)
- Add the patch() method to BaseClient and its subclasses, sending an HTTP PATCH request (#302)
- Officially add support for python 3.7 (#300)
- Make pickling SDK objects safer (but still not officially supported!) (#284)
- Malformed SDK usage may now raise GlobusSDKUsageError instead of ValueError. GlobusSDKUsageError inherits from ValueError (#281)
- Numerous documentation improvements (#279, #294, #296, #297)
- Add support for retrieving a local Globus Connect Personal endpoint's UUID (#276)
- Fix bug in search client parameter handling (#274)
- Send Content-Type: application/json on requests with JSON request bodies (#266)
- Support connection timeouts. Default timeout of 60 seconds (#264)
- Access token response data by way of scope name (#261)
- Make cryptography a strict requirement, globus-sdk[jwt] is no longer necessary (#257, #260)
- Simplify OAuthTokenResponse.decode_id_token to not require the client as an argument (#255)
- Add (beta) SearchClient class (#259)
- Improve error message when installation onto python2.6 is attempted (#245)
- Raise errors on client instantiation when GLOBUS_SDK_ENVIRONMENT appears to be invalid, support GLOBUS_SDK_ENVIRONMENT=preview (#247)
- Allow client classes to accept base_url as an argument to __init__() (#241)
- Fix packaging to not include testsuite (#232)
- Improve docs on TransferClient helper classes (#231, #233)
- Use PyJWT instead of python-jose for JWT support (#227)
- Add Transfer symlink support (#218)
- Better handle UTF-8 inputs (#208)
- Fix endpoint manager resume (#224)
- Doc Updates & Minor Improvements
- Use correct paging style when making endpoint_manager_task_list calls (#210)
- Add endpoint_manager methods to TransferClient (#191, #199, #200, #201, #203)
- Change "identities_set" to "identity_set" for token introspection (#163)
- Fix docs references to oauth2_start_flow_* (#190)
- Support iterable requested_scopes everywhere (#185)
- Add python 3.6 to supported platforms (#180)
- Remove "Beta" from docs (#179)
- Update dev status classifier to 5, prod (#178)
- Numerous improvements to testsuite
- Adds AuthAPIError with more flexible error payload handling (#175)
- Add AuthClient.validate_token (#172)
- Bugfix for on_refresh users of RefreshTokenAuthorizer and ClientCredentialsAuthorizer (#173)
- Remove deprecated oauth2_start_flow_* methods (#170)
- Add the ClientCredentialsAuthorizer (#164)
- Add jwt extra install target. pip install "globus_sdk[jwt]" installs python-jose (#169)
- Make OAuthTokenResponse.decode_id_token() respect ssl_verify=no configuration (#161)
- Remove all properties of OAuthTokenResponse other than by_resource_server (#162)
- Opt out of the Globus Auth behavior where a GET of an identity username will provision that identity (#145)
- Fixup OAuth2 PKCE to be spec-compliant (#154)
- Wrap some requests network-related errors in custom exceptions (#155)
- Add deadline support to TransferData and DeleteData (#159)