v3.42.0
Python Support
- Remove support for Python 3.7. (#997)
Added
-
Add
globus_sdk.ConnectorTable
which provides information on supported Globus Connect Server connectors. This object maps names to IDs and vice versa. (#955) -
Support adding query parameters to
ConfidentialAppAuthClient.oauth2_token_introspect
via aquery_params
argument. (#984) -
Add
get_gcs_info
as a helper method toGCSClient
for getting information from a Globus Connect Server'sinfo
API route. -
Add
endpoint_client_id
as a property toGCSClient
. -
Clients will now emit a
X-Globus-Client-Info
header which reports the version of theglobus-sdk
which was used to send a request. Users may customize this header further by modifying theglobus_client_info
object attached to the transport object. (#990)
Experimental
-
Add a new abstract class,
TokenStorage
, toexperimental
.TokenStorage
expands the functionality ofStorageAdapter
but is not fully backwards compatible. (#980)FileTokenStorage
,JSONTokenStorage
,MemoryTokenStorage
andSQLiteTokenStorage
are new concrete implementations ofTokenStorage
.
-
Add
ValidatingStorageAdapter
toexperimental
, which validates that identity is maintained and scope requirements are met on token storage/retrieval. (#978, #980) -
Add a new abstract class,
AuthorizerFactory
toexperimental
.AuthorizerFactory
provides an interface for getting aGlobusAuthorizer
from aValidatingTokenStorage
. (#985)AccessTokenAuthorizerFactory
,RefreshTokenAuthorizerFactory
, andClientCredentialsAuthorizerFactory
are new concrete implementations ofAuthorizerFactory
.
-
Add a new abstract class,
GlobusApp
toexperimental
. AGlobusApp
is an abstraction which allows users to define their authorization requirements implicitly and explicitly, attach that state to their various clients, and drive login flows. (#986)-
UserApp
andClientApp
are new implementations ofGlobusApp
which handle authentications for user-login and client-credentials. -
GlobusAppConfig
is an object which can be used to controlGlobusApp
behaviors.
-
-
Add
app
as an optional argument toBaseClient
which will accept aGlobusApp
to handle authentication, token validation, and token storage when using the client. -
Add
default_scope_requirements
as a property toBaseClient
for subclasses to define scopes to automatically be used with aGlobusApp
. The default implementation raises aNotImplementedError
. -
Add
add_app_scope
toBaseClient
as an interface for adding additional scope requirements to itsapp
. -
AuthClient
,FlowsClient
,GCSClient
,GroupsClient
,SearchClient
,TimerClient
, andTransferClient
all addapp
as an optional argument and definedefault_scope_requirements
so that they can be used with aGlobusApp
. -
Add
add_app_data_access_scope
toTransferClient
as an interface for adding a dependent data access scope requirements needed for interacting with standard Globus Connect Server mapped collections to itsapp
. -
Auto-login (overridable in config) GlobusApp login retry on token validation error. (#994)
-
Added the configuration parameter
GlobusAppConfig.environment
. (#1001)
Changed
-
GCSClient
instances now have a non-Noneresource_server
property. -
GlobusAuthorizationParameters
no longer enforces that at least one field is set. (#989) -
Improved the validation and checking used inside of
globus_sdk.tokenstorage.SimpleJSONFileAdapter
andglobus_sdk.experimental.tokenstorage.JSONTokenStorage
. (#997)
Deprecated
GCSClient.connector_id_to_name
has been deprecated. UseConnectorTable.lookup
instead. (#955)
Fixed
Experimental
-
When a
JSONTokenStorage
is used, the containing directory will be automatically be created if it doesn't exist. (#998) -
GlobusApp.add_scope_requirements
now has the side effect of clearing the authorizer cache for any referenced resource servers. (#1000) -
GlobusAuthorizer.scope_requirements
was made private and a new method for accessing scope requirements was added atGlobusAuthorizer.get_scope_requirements
. (#1000) -
A
GlobusApp
will now auto-create an Auth consent client for dependent scope evaluation against consents as a part of instantiation. (#1000) -
Fixed a bug where specifying dependent tokens in a new
GlobusApp
would cause the app to infinitely prompt for log in. (#1002) -
Fixed a
GlobusApp
bug which would cause LocalServerLoginFlowManager to error on MacOS when versions earlier than Python 3.11. (#1003)
Documentation
- Document how to manage Globus SDK warnings. (#988)