Skip to content

Commit

Permalink
Merge pull request #1005 from globus/release-3.42.0
Browse files Browse the repository at this point in the history
Release v3.42.0
  • Loading branch information
kurtmckee authored Jul 15, 2024
2 parents 32492ff + cfcdbae commit 66e0070
Show file tree
Hide file tree
Showing 19 changed files with 132 additions and 143 deletions.
12 changes: 0 additions & 12 deletions changelog.d/20240223_153006_sirosen_gcs_connector_map.rst

This file was deleted.

This file was deleted.

14 changes: 0 additions & 14 deletions changelog.d/20240425_090230_aaschaer_storage_adapter_v2.rst

This file was deleted.

7 changes: 0 additions & 7 deletions changelog.d/20240430_164920_aaschaer_authorizer_factory.rst

This file was deleted.

6 changes: 0 additions & 6 deletions changelog.d/20240508_113916_sirosen_add_query_params.rst

This file was deleted.

5 changes: 0 additions & 5 deletions changelog.d/20240528_140823_aaschaer_globus_app.rst

This file was deleted.

This file was deleted.

25 changes: 0 additions & 25 deletions changelog.d/20240611_155545_aaschaer_globus_app_integration.rst

This file was deleted.

This file was deleted.

7 changes: 0 additions & 7 deletions changelog.d/20240621_130106_sirosen_globus_clientinfo.rst

This file was deleted.

5 changes: 0 additions & 5 deletions changelog.d/20240628_152312_derek_auto_run_login_flow.rst

This file was deleted.

11 changes: 0 additions & 11 deletions changelog.d/20240705_084048_sirosen_drop_py37.rst

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

131 changes: 131 additions & 0 deletions changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,137 @@ to a major new version of the SDK.

.. scriv-insert-here
.. _changelog-3.42.0:

v3.42.0 (2024-07-15)
--------------------

Python Support
~~~~~~~~~~~~~~

- Remove support for Python 3.7. (:pr:`997`)

Added
~~~~~

- Add ``globus_sdk.ConnectorTable`` which provides information on supported
Globus Connect Server connectors. This object maps names to IDs and vice versa. (:pr:`955`)

- Support adding query parameters to ``ConfidentialAppAuthClient.oauth2_token_introspect``
via a ``query_params`` argument. (:pr:`984`)

- Add ``get_gcs_info`` as a helper method to ``GCSClient`` for getting information
from a Globus Connect Server's ``info`` API route.

- Add ``endpoint_client_id`` as a property to ``GCSClient``.

- Clients will now emit a ``X-Globus-Client-Info`` header which reports the
version of the ``globus-sdk`` which was used to send a request. Users may
customize this header further by modifying the ``globus_client_info`` object
attached to the transport object. (:pr:`990`)

.. rubric:: Experimental

- Add a new abstract class, ``TokenStorage``, to ``experimental``.
``TokenStorage`` expands the functionality of ``StorageAdapter`` but is not
fully backwards compatible. (:pr:`980`)

- ``FileTokenStorage``, ``JSONTokenStorage``, ``MemoryTokenStorage`` and
``SQLiteTokenStorage`` are new concrete implementations of ``TokenStorage``.

- Add ``ValidatingStorageAdapter`` to ``experimental``, which validates that
identity is maintained and scope requirements are met on token
storage/retrieval. (:pr:`978`, :pr:`980`)

- Add a new abstract class, ``AuthorizerFactory`` to ``experimental``.
``AuthorizerFactory`` provides an interface for getting a
``GlobusAuthorizer`` from a ``ValidatingTokenStorage``. (:pr:`985`)

- ``AccessTokenAuthorizerFactory``, ``RefreshTokenAuthorizerFactory``, and
``ClientCredentialsAuthorizerFactory`` are new concrete implementations
of ``AuthorizerFactory``.

- Add a new abstract class, ``GlobusApp`` to ``experimental``. A ``GlobusApp``
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. (:pr:`986`)

- ``UserApp`` and ``ClientApp`` are new implementations of ``GlobusApp``
which handle authentications for user-login and client-credentials.

- ``GlobusAppConfig`` is an object which can be used to control
``GlobusApp`` behaviors.

- Add ``app`` as an optional argument to ``BaseClient`` which will accept a
``GlobusApp`` to handle authentication, token validation, and token storage when
using the client.

- Add ``default_scope_requirements`` as a property to ``BaseClient``
for subclasses to define scopes to automatically be used with a ``GlobusApp``. The
default implementation raises a ``NotImplementedError``.

- Add ``add_app_scope`` to ``BaseClient`` as an interface for adding additional
scope requirements to its ``app``.

- ``AuthClient``, ``FlowsClient``, ``GCSClient``, ``GroupsClient``, ``SearchClient``,
``TimerClient``, and ``TransferClient`` all add ``app`` as an optional argument and
define ``default_scope_requirements`` so that they can be used with a ``GlobusApp``.

- Add ``add_app_data_access_scope`` to ``TransferClient`` as an interface
for adding a dependent data access scope requirements needed for interacting
with standard Globus Connect Server mapped collections to its ``app``.

- Auto-login (overridable in config) GlobusApp login retry on token validation error. (:pr:`994`)

- Added the configuration parameter ``GlobusAppConfig.environment``. (:pr:`1001`)

Changed
~~~~~~~

- ``GCSClient`` instances now have a non-None ``resource_server`` property.

- ``GlobusAuthorizationParameters`` no longer enforces that at least one
field is set. (:pr:`989`)

- Improved the validation and checking used inside of
``globus_sdk.tokenstorage.SimpleJSONFileAdapter`` and
``globus_sdk.experimental.tokenstorage.JSONTokenStorage``. (:pr:`997`)

Deprecated
~~~~~~~~~~

- ``GCSClient.connector_id_to_name`` has been deprecated.
Use ``ConnectorTable.lookup`` instead. (:pr:`955`)

Fixed
~~~~~

.. rubric:: Experimental

- When a ``JSONTokenStorage`` is used, the containing directory will be automatically be
created if it doesn't exist. (:pr:`998`)

- ``GlobusApp.add_scope_requirements`` now has the side effect of clearing the
authorizer cache for any referenced resource servers. (:pr:`1000`)

- ``GlobusAuthorizer.scope_requirements`` was made private and a new method for
accessing scope requirements was added at ``GlobusAuthorizer.get_scope_requirements``.
(:pr:`1000`)

- A ``GlobusApp`` will now auto-create an Auth consent client for dependent scope
evaluation against consents as a part of instantiation. (:pr:`1000`)

- Fixed a bug where specifying dependent tokens in a new ``GlobusApp`` would cause the app
to infinitely prompt for log in. (:pr:`1002`)

- Fixed a ``GlobusApp`` bug which would cause LocalServerLoginFlowManager to error on
MacOS when versions earlier than Python 3.11. (:pr:`1003`)

Documentation
~~~~~~~~~~~~~

- Document how to manage Globus SDK warnings. (:pr:`988`)

.. _changelog-3.41.0:

v3.41.0 (2024-04-26)
Expand Down
2 changes: 1 addition & 1 deletion src/globus_sdk/version.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# single source of truth for package version,
# see https://packaging.python.org/en/latest/single_source_version/
__version__ = "3.41.0"
__version__ = "3.42.0"

0 comments on commit 66e0070

Please sign in to comment.