Skip to content

Releases: globus/globus-sdk-python

v3.30.0

27 Oct 16:57
3.30.0
Compare
Choose a tag to compare

Added

  • TransferClient.operation_ls now supports the limit and offset parameters (#868)

  • A new sentinel value, globus_sdk.MISSING, has been introduced.
    It is used for method calls which need to distinguish missing parameters from an explicit None used to signify null (#885)

    • globus_sdk.MISSING is now supported in payload data for all methods, and will be automatically removed from the payload before sending to the server

Changed

  • GroupPolicies objects now treat an explicit instantiation with high_assurance_timeout=None as setting the timeout to null (#885)

v3.29.0

12 Oct 22:33
3.29.0
5abe5a0
Compare
Choose a tag to compare

Changed

  • The inheritance structure used for Globus Auth client classes has changed.
    (#849)

    • A new class, AuthLoginClient, is the base for NativeAppAuthClient
      and ConfidentialAppAuthClient. These classes no longer inherit from
      AuthClient, and therefore no longer inherit certain methods which would
      never succeed if called.

    • AuthClient is now the only class which provides functionality
      for accessing Globus Auth APIs.

    • AuthClient no longer includes methods for OAuth 2 login flows which
      would only be valid to call on AuthLoginClient subclasses.

Deprecated

  • Several features of Auth client classes are now deprecated. (#849)

    • Setting AuthClient.client_id or accessing it as an attribute
      is deprecated and will emit a warning.

    • ConfidentialAppAuthClient.get_identities has been preserved as a valid
      call, but will emit a warning. Users wishing to access this API via client
      credentials should prefer to get an access token using a client credential
      callout, and then use that token to call AuthClient.get_identities().

  • The AuthClient.oauth2_userinfo method has been deprecated in favor of
    AuthClient.userinfo. Callers should prefer the new method name. (#865)

v3.28.0

30 Aug 21:25
3.28.0
09aae87
Compare
Choose a tag to compare

Python Support

  • Add support for Python 3.12. (#808)

Added

  • Add a prompt keyword parameter to AuthClient.oauth2_get_authorize_url(). (#813)

    Setting this parameter requires users to authenticate with an identity provider, even if they are already logged in. Doing so can help avoid errors caused by unexpected session required policies, which would otherwise require a second, follow-up login flow.

    prompt could previously only be set via the query_params keyword parameter. It is now more discoverable.

  • Add TimerClient.pause_job and TimerClient.resume_job for pausing and resuming timers. (#827)

Documentation

  • Add an example script which handles creating and running a flow. (#826)

Development

  • Added responses to _testing reflecting an inactive Timers job (#828)

v3.27.0

14 Aug 16:02
3.27.0
4f8e3e0
Compare
Choose a tag to compare

Added

  • Add a FlowsClient.get_run_definition() method. (#799)

Changed

  • FlowsClient.get_run_logs() now uses an IterableRunLogsResponse. (#797)

v3.26.0

07 Aug 20:52
3.26.0
Compare
Choose a tag to compare

Added

  • New components are introduced to the experimental subpackage. See the SDK Experimental documentation for more details.

    • Add tools which manipulate Globus Auth Requirements error data. globus_sdk.experimental.auth_requirements_error provides a data container class, GlobusAuthRequirementsError, and functions for converting and validating data against this shape. (#768)

    • Introduce an experimental Globus Auth scope parser in globus_sdk.experimental.scope_parser (#752)

Changed

  • The scopes class attribute of SpecificFlowClient is now specialized to ensure that type checkers will allow access to SpecificFlowClient scopes and resource_server values without casting. The value used is a specialized stub which raises useful errors when class-based access is performed. The scopes instance attribute is unchanged. (#793)

v3.25.0

20 Jul 20:15
3.25.0
Compare
Choose a tag to compare

Added

  • The jwt_params argument to decode_id_token() now allows "leeway" to be included to pass a leeway parameter to pyjwt. (#790)

Fixed

  • decode_id_token() defaulted to having no tolerance for clock drift. Slight clock drift could lead to JWT claim validation errors. The new default is 0.5s which should be sufficient for most cases. (#790)

Documentation

  • New scripts in the example gallery demonstrate usage of the Globus Auth Developer APIs to List, Create, Delete, and Update Projects. (#777)

v3.24.0

18 Jul 19:36
3.24.0
Compare
Choose a tag to compare

Added

  • Add FlowsClient.list_runs as a method for listing all runs for the current user, with support for pagination. (#782)

  • Add SearchClient methods for managing search index lifecycle: create_index, delete_index, and reopen_index (#785)

Changed

  • The enforcement logic for URLs in BaseClient instantiation has been improved to only require that service_name be set if base_url is not provided. (#786)

    • This change primarily impacts subclasses, which no longer need to set the service_name class variable if they ensure that the base_url is always passed with a non-null value.

    • Direct instantiation of BaseClient is now possible, although not recommended for most use-cases.

v3.23.0

06 Jul 18:20
3.23.0
Compare
Choose a tag to compare

Added

  • Add AuthClient methods to support the Projects APIs for listing, creating, updating, and deleting projects.

    • AuthClient.get_projects (#766)
    • AuthClient.create_project (#772)
    • AuthClient.update_project (#774)
    • AuthClient.delete_project (#776)
  • globus_sdk._testing now exposes a method, construct_error which makes it simpler to explicitly construct and return a Globus SDK error object for testing. This is used in the SDK's own testsuite and is available for _testing users. (#770)

  • AuthClient.oauth2_get_authorize_url now supports the following parameters for session management: session_required_identities, session_required_single_domain, and session_required_policies. Each of these accept list inputs, as returned by ErrorInfo.authorization_parameters. (#773)

Changed

  • AuthClient, NativeAppAuthClient, and ConfidentialAppAuthClient have had their init signatures updated to explicitly list available parameters. (#764)

    • Type annotations for these classes are now more accurate

    • The NativeAppAuthClient and ConfidentialAppAuthClient classes do not accept authorizer in their init signatures. Previously this was accepted but raised a GlobusSDKUsageError. Attempting to pass an authorizer will now result in a TypeError.

  • session_required_policies parsing in AuthorizationParameterInfo now supports the policies being returned as a list[str] in addition to supporting str (#769)

Fixed

  • AuthorizationParameterInfo is now more type-safe, and will not return parsed data from a response without checking that the data has correct types (#769)

  • Adjust the FlowsClient.get_run() include_flow_description parameter so it is submitted only when it has a value. (#778)

Documentation

  • The _testing documentation has been expanded with a dropdown view of the response contents for each method. In support of this, client method testing docs have been reorganized into a page per service. (#767)

v3.22.0

22 Jun 22:01
3.22.0
7a70093
Compare
Choose a tag to compare
  • Add support for AuthClient.get_identity_providers for looking up Identity
    Providers by domain or ID in Globus Auth (#757)

  • Add a method to the Globus Search client, SearchClient.batch_delete_by_subject (#760)

  • Add AuthScopes.manage_projects to scope data. This is also accessible as
    AuthClient.scopes.manage_projects (#761)

  • Alpha features of globus-sdk are now documented in the "Unstable" doc section (#753)

v3.21.0

16 Jun 21:46
3.21.0
560a22d
Compare
Choose a tag to compare
  • AuthAPIError will now parse a unique id found in the error subdocuments as the request_id attribute (#749)

  • Add a FlowsClient.update_run() method. (#744)

  • Add a FlowsClient.delete_run() method. (#747)

  • Add a FlowsClient.cancel_run() method. (#747)

  • Add an experimental subpackage. (#751)