From 9fde68045ea1252378e2cca320d21b9972a0f74b Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 15 Jul 2024 17:14:14 -0500 Subject: [PATCH 1/2] Bump version and changelog for release --- ...40223_153006_sirosen_gcs_connector_map.rst | 12 -- ...121733_derek_token_validation_sc_30852.rst | 7 -- ...425_090230_aaschaer_storage_adapter_v2.rst | 14 --- ...430_164920_aaschaer_authorizer_factory.rst | 7 -- ...240508_113916_sirosen_add_query_params.rst | 6 - .../20240528_140823_aaschaer_globus_app.rst | 5 - ...kee_howto_disable_v4_warnings_sc_29682.rst | 4 - ...155545_aaschaer_globus_app_integration.rst | 25 ---- ...a_allow_empty_authorization_parameters.rst | 5 - ...40621_130106_sirosen_globus_clientinfo.rst | 7 -- ...40628_152312_derek_auto_run_login_flow.rst | 5 - .../20240705_084048_sirosen_drop_py37.rst | 11 -- ...1157_derek_auto_create_json_token_path.rst | 5 - ...rek_globus_app_dependent_token_support.rst | 11 -- ...ek_globus_app_configurable_environment.rst | 6 - ...rek_globus_app_fix_infinite_login_loop.rst | 6 - ...10_derek_fix_local_server_login_on_mac.rst | 6 - changelog.rst | 115 ++++++++++++++++++ src/globus_sdk/version.py | 2 +- 19 files changed, 116 insertions(+), 143 deletions(-) delete mode 100644 changelog.d/20240223_153006_sirosen_gcs_connector_map.rst delete mode 100644 changelog.d/20240416_121733_derek_token_validation_sc_30852.rst delete mode 100644 changelog.d/20240425_090230_aaschaer_storage_adapter_v2.rst delete mode 100644 changelog.d/20240430_164920_aaschaer_authorizer_factory.rst delete mode 100644 changelog.d/20240508_113916_sirosen_add_query_params.rst delete mode 100644 changelog.d/20240528_140823_aaschaer_globus_app.rst delete mode 100644 changelog.d/20240606_181744_kurtmckee_howto_disable_v4_warnings_sc_29682.rst delete mode 100644 changelog.d/20240611_155545_aaschaer_globus_app_integration.rst delete mode 100644 changelog.d/20240612_130031_ada_allow_empty_authorization_parameters.rst delete mode 100644 changelog.d/20240621_130106_sirosen_globus_clientinfo.rst delete mode 100644 changelog.d/20240628_152312_derek_auto_run_login_flow.rst delete mode 100644 changelog.d/20240705_084048_sirosen_drop_py37.rst delete mode 100644 changelog.d/20240709_111157_derek_auto_create_json_token_path.rst delete mode 100644 changelog.d/20240710_122120_derek_globus_app_dependent_token_support.rst delete mode 100644 changelog.d/20240711_090442_derek_globus_app_configurable_environment.rst delete mode 100644 changelog.d/20240712_101420_derek_globus_app_fix_infinite_login_loop.rst delete mode 100644 changelog.d/20240712_133910_derek_fix_local_server_login_on_mac.rst diff --git a/changelog.d/20240223_153006_sirosen_gcs_connector_map.rst b/changelog.d/20240223_153006_sirosen_gcs_connector_map.rst deleted file mode 100644 index f277e69ef..000000000 --- a/changelog.d/20240223_153006_sirosen_gcs_connector_map.rst +++ /dev/null @@ -1,12 +0,0 @@ -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`) - -Deprecated -~~~~~~~~~~ - -- ``GCSClient.connector_id_to_name`` has been deprecated. Use - ``ConnectorTable.lookup`` instead. (:pr:`955`) diff --git a/changelog.d/20240416_121733_derek_token_validation_sc_30852.rst b/changelog.d/20240416_121733_derek_token_validation_sc_30852.rst deleted file mode 100644 index 04d96076f..000000000 --- a/changelog.d/20240416_121733_derek_token_validation_sc_30852.rst +++ /dev/null @@ -1,7 +0,0 @@ - -Added -~~~~~ - -- A new experimental storage adapter (``ValidatingStorageAdapter``) which validates that - identity is maintained and scope requirements are met on token storage/retrieval. - (:pr:`978`) diff --git a/changelog.d/20240425_090230_aaschaer_storage_adapter_v2.rst b/changelog.d/20240425_090230_aaschaer_storage_adapter_v2.rst deleted file mode 100644 index e267929dd..000000000 --- a/changelog.d/20240425_090230_aaschaer_storage_adapter_v2.rst +++ /dev/null @@ -1,14 +0,0 @@ -Added -~~~~~ - -- Added ``TokenStorage`` to experimental along with ``FileTokenStorage``, - ``JSONTokenStorage``, ``MemoryTokenStorage`` and ``SQLiteTokenStorage`` which - implement it. ``TokenStorage`` expands the functionality of ``StorageAdapter`` - but is not fully backwards compatible. (:pr:`980`) - -Changed -~~~~~~~ - -- The experimental class ``ValidatingStorageAdapater`` has been renamed to - ``ValidatingTokenStorage`` and now implements ``TokenStorage`` instead of - ``StorageAdapter`` (:pr:`980`) diff --git a/changelog.d/20240430_164920_aaschaer_authorizer_factory.rst b/changelog.d/20240430_164920_aaschaer_authorizer_factory.rst deleted file mode 100644 index 7cb9a4ac7..000000000 --- a/changelog.d/20240430_164920_aaschaer_authorizer_factory.rst +++ /dev/null @@ -1,7 +0,0 @@ -Added -~~~~~ - -- Added ``AuthorizerFactory``, an interface for getting a ``GlobusAuthorizer`` - from a ``ValidatingTokenStorage`` to experimental along with - ``AccessTokenAuthorizerFactory``, ``RefreshTokenAuthorizerFactory``, and - ``ClientCredentialsAuthorizerFactory`` that implement it (:pr:`985`) diff --git a/changelog.d/20240508_113916_sirosen_add_query_params.rst b/changelog.d/20240508_113916_sirosen_add_query_params.rst deleted file mode 100644 index 5e437e62c..000000000 --- a/changelog.d/20240508_113916_sirosen_add_query_params.rst +++ /dev/null @@ -1,6 +0,0 @@ -Added -~~~~~ - -- Add support for added query parameters to - ``ConfidentialAppAuthClient.oauth2_token_introspect`` via a ``query_params`` - argument. (:pr:`984`) diff --git a/changelog.d/20240528_140823_aaschaer_globus_app.rst b/changelog.d/20240528_140823_aaschaer_globus_app.rst deleted file mode 100644 index 639b536db..000000000 --- a/changelog.d/20240528_140823_aaschaer_globus_app.rst +++ /dev/null @@ -1,5 +0,0 @@ -Added -~~~~~ - -- Added ``GlobusApp`` to experimental along with ``UserApp`` and ``ClientApp`` that - implement it and ``GlobusAppConfig`` that allows configuring behavior (:pr:`986`) diff --git a/changelog.d/20240606_181744_kurtmckee_howto_disable_v4_warnings_sc_29682.rst b/changelog.d/20240606_181744_kurtmckee_howto_disable_v4_warnings_sc_29682.rst deleted file mode 100644 index cfce5f616..000000000 --- a/changelog.d/20240606_181744_kurtmckee_howto_disable_v4_warnings_sc_29682.rst +++ /dev/null @@ -1,4 +0,0 @@ -Documentation -~~~~~~~~~~~~~ - -- Document how to manage Globus SDK warnings. (:pr:`988`) diff --git a/changelog.d/20240611_155545_aaschaer_globus_app_integration.rst b/changelog.d/20240611_155545_aaschaer_globus_app_integration.rst deleted file mode 100644 index b5abeb65e..000000000 --- a/changelog.d/20240611_155545_aaschaer_globus_app_integration.rst +++ /dev/null @@ -1,25 +0,0 @@ -Added -~~~~~ - -- 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 an abstract property to ``BaseClient`` - for subclasses to define scopes to automatically be used with an ``app``. -- 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``. -- 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``. - - -Changed -~~~~~ - -- ``GCSClient`` instances now have a non-None ``resource_server`` property. diff --git a/changelog.d/20240612_130031_ada_allow_empty_authorization_parameters.rst b/changelog.d/20240612_130031_ada_allow_empty_authorization_parameters.rst deleted file mode 100644 index 5fd03c172..000000000 --- a/changelog.d/20240612_130031_ada_allow_empty_authorization_parameters.rst +++ /dev/null @@ -1,5 +0,0 @@ -Changed -~~~~~~~ - -- ``GlobusAuthorizationParameters`` no longer enforces that at least one - field is set. (:pr:`989`) diff --git a/changelog.d/20240621_130106_sirosen_globus_clientinfo.rst b/changelog.d/20240621_130106_sirosen_globus_clientinfo.rst deleted file mode 100644 index 52952dc4a..000000000 --- a/changelog.d/20240621_130106_sirosen_globus_clientinfo.rst +++ /dev/null @@ -1,7 +0,0 @@ -Added -~~~~~ - -- 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_clientinfo`` object - attached to the transport object. (:pr:`990`) diff --git a/changelog.d/20240628_152312_derek_auto_run_login_flow.rst b/changelog.d/20240628_152312_derek_auto_run_login_flow.rst deleted file mode 100644 index 8b98a3e98..000000000 --- a/changelog.d/20240628_152312_derek_auto_run_login_flow.rst +++ /dev/null @@ -1,5 +0,0 @@ - -Added -~~~~~ - -- Auto-login (overridable in config) GlobusApp login retry on token validation error.(:pr:`994`) diff --git a/changelog.d/20240705_084048_sirosen_drop_py37.rst b/changelog.d/20240705_084048_sirosen_drop_py37.rst deleted file mode 100644 index 5ed6eeef3..000000000 --- a/changelog.d/20240705_084048_sirosen_drop_py37.rst +++ /dev/null @@ -1,11 +0,0 @@ -Python Support -~~~~~~~~~~~~~~ - -- Removed support for Python 3.7. (:pr:`997`) - -Changed -~~~~~~~ - -- Improved the validation and checking used inside of - ``globus_sdk.tokenstorage.SimpleJSONFileAdapter`` and - ``globus_sdk.experimental.tokenstorage.JSONTokenStorage``. (:pr:`997`) diff --git a/changelog.d/20240709_111157_derek_auto_create_json_token_path.rst b/changelog.d/20240709_111157_derek_auto_create_json_token_path.rst deleted file mode 100644 index ad1741b15..000000000 --- a/changelog.d/20240709_111157_derek_auto_create_json_token_path.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fixed -~~~~~ - -- When a JSONTokenStorage is used, the containing directory will be automatically be - created if it doesn't exist. (:pr:`998`) diff --git a/changelog.d/20240710_122120_derek_globus_app_dependent_token_support.rst b/changelog.d/20240710_122120_derek_globus_app_dependent_token_support.rst deleted file mode 100644 index b0bdcc31c..000000000 --- a/changelog.d/20240710_122120_derek_globus_app_dependent_token_support.rst +++ /dev/null @@ -1,11 +0,0 @@ - -Fixed -~~~~~ - -- ``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`) diff --git a/changelog.d/20240711_090442_derek_globus_app_configurable_environment.rst b/changelog.d/20240711_090442_derek_globus_app_configurable_environment.rst deleted file mode 100644 index 5c97859b6..000000000 --- a/changelog.d/20240711_090442_derek_globus_app_configurable_environment.rst +++ /dev/null @@ -1,6 +0,0 @@ - -Added -~~~~~ - -- Added the configuration parameter ``GlobusAppConfig.environment``. (:pr:`1001`) - diff --git a/changelog.d/20240712_101420_derek_globus_app_fix_infinite_login_loop.rst b/changelog.d/20240712_101420_derek_globus_app_fix_infinite_login_loop.rst deleted file mode 100644 index 5a1a51554..000000000 --- a/changelog.d/20240712_101420_derek_globus_app_fix_infinite_login_loop.rst +++ /dev/null @@ -1,6 +0,0 @@ - -Fixed -~~~~~ - -- Fixed a bug where specifying dependent tokens in a new GlobusApp would cause the app - to infinitely prompt for log in. (:pr:`1002`) diff --git a/changelog.d/20240712_133910_derek_fix_local_server_login_on_mac.rst b/changelog.d/20240712_133910_derek_fix_local_server_login_on_mac.rst deleted file mode 100644 index 55b318921..000000000 --- a/changelog.d/20240712_133910_derek_fix_local_server_login_on_mac.rst +++ /dev/null @@ -1,6 +0,0 @@ - -Fixed -~~~~~ - -- Fixed a GlobusApp bug which would cause LocalServerLoginFlowManager to error on - MacOS when versions earlier than Python 3.11. (:pr:`1003`) diff --git a/changelog.rst b/changelog.rst index 6caec6f01..1dda83b51 100644 --- a/changelog.rst +++ b/changelog.rst @@ -12,6 +12,121 @@ 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`) + +- A new experimental storage adapter (``ValidatingStorageAdapter``) which validates that + identity is maintained and scope requirements are met on token storage/retrieval. + (:pr:`978`) + +- Add ``TokenStorage`` to experimental along with ``FileTokenStorage``, + ``JSONTokenStorage``, ``MemoryTokenStorage`` and ``SQLiteTokenStorage`` which + implement it. ``TokenStorage`` expands the functionality of ``StorageAdapter`` + but is not fully backwards compatible. (:pr:`980`) + +- Add ``AuthorizerFactory``, an interface for getting a ``GlobusAuthorizer`` + from a ``ValidatingTokenStorage`` to experimental along with + ``AccessTokenAuthorizerFactory``, ``RefreshTokenAuthorizerFactory``, and + ``ClientCredentialsAuthorizerFactory`` that implement it. (:pr:`985`) + +- Support adding query parameters to ``ConfidentialAppAuthClient.oauth2_token_introspect`` + via a ``query_params`` argument. (:pr:`984`) + +- Add ``GlobusApp`` to experimental along with ``UserApp`` and ``ClientApp`` + that implement it and ``GlobusAppConfig`` that allows configuring behavior. (:pr:`986`) + +- 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 an abstract property to ``BaseClient`` + for subclasses to define scopes to automatically be used with an ``app``. + +- 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``. + +- 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`) + +- Auto-login (overridable in config) GlobusApp login retry on token validation error. (:pr:`994`) + +- Added the configuration parameter ``GlobusAppConfig.environment``. (:pr:`1001`) + +Changed +~~~~~~~ + +- The experimental class ``ValidatingStorageAdapter`` has been renamed to + ``ValidatingTokenStorage`` and now implements ``TokenStorage`` instead of + ``StorageAdapter``. (:pr:`980`) + +- ``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 +~~~~~ + +- 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) diff --git a/src/globus_sdk/version.py b/src/globus_sdk/version.py index 553fcb62f..081ebc7d4 100644 --- a/src/globus_sdk/version.py +++ b/src/globus_sdk/version.py @@ -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" From acbaef68bd5d474106d9127aa68418385b181023 Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Mon, 15 Jul 2024 17:41:25 -0500 Subject: [PATCH 2/2] Improve the v3.42.0 changelog to show experimental Using rubrics as dividers and by coalescing related changes, this alteration aims to make the changelog more digestible. A small number of clarifying edits were made: - Some very long (perhaps technically grammatical, but hard to parse) sentences were split into several shorter sentences. Sub-bullets were used for some items. - `default_scope_requirements` is not described as an abstract property, but rather as a property whose default implementation raises an error. The distinction is very significant for developers who are implementing subclasses of BaseClient. This change seeks to reduce their potential level of alarm when reading the changelog. - Opportunistically, code-quoting was added to elements where it was missing. - PRs #978 and #980 were combined into a single item in the changelog. No other obvious opportunities for combinations were found, but perhaps this would be possible with a greater investment of effort. --- changelog.rst | 84 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/changelog.rst b/changelog.rst index 1dda83b51..19e314ee2 100644 --- a/changelog.rst +++ b/changelog.rst @@ -28,32 +28,58 @@ 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`) -- A new experimental storage adapter (``ValidatingStorageAdapter``) which validates that - identity is maintained and scope requirements are met on token storage/retrieval. - (:pr:`978`) +- Support adding query parameters to ``ConfidentialAppAuthClient.oauth2_token_introspect`` + via a ``query_params`` argument. (:pr:`984`) -- Add ``TokenStorage`` to experimental along with ``FileTokenStorage``, - ``JSONTokenStorage``, ``MemoryTokenStorage`` and ``SQLiteTokenStorage`` which - implement it. ``TokenStorage`` expands the functionality of ``StorageAdapter`` - but is not fully backwards compatible. (:pr:`980`) +- Add ``get_gcs_info`` as a helper method to ``GCSClient`` for getting information + from a Globus Connect Server's ``info`` API route. -- Add ``AuthorizerFactory``, an interface for getting a ``GlobusAuthorizer`` - from a ``ValidatingTokenStorage`` to experimental along with - ``AccessTokenAuthorizerFactory``, ``RefreshTokenAuthorizerFactory``, and - ``ClientCredentialsAuthorizerFactory`` that implement it. (:pr:`985`) +- Add ``endpoint_client_id`` as a property to ``GCSClient``. -- Support adding query parameters to ``ConfidentialAppAuthClient.oauth2_token_introspect`` - via a ``query_params`` argument. (:pr:`984`) +- 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 ``GlobusApp`` to experimental along with ``UserApp`` and ``ClientApp`` - that implement it and ``GlobusAppConfig`` that allows configuring behavior. (:pr:`986`) +- 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 an abstract property to ``BaseClient`` - for subclasses to define scopes to automatically be used with an ``app``. +- 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``. @@ -66,16 +92,6 @@ Added for adding a dependent data access scope requirements needed for interacting with standard Globus Connect Server mapped collections to its ``app``. -- 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`) - - Auto-login (overridable in config) GlobusApp login retry on token validation error. (:pr:`994`) - Added the configuration parameter ``GlobusAppConfig.environment``. (:pr:`1001`) @@ -83,10 +99,6 @@ Added Changed ~~~~~~~ -- The experimental class ``ValidatingStorageAdapter`` has been renamed to - ``ValidatingTokenStorage`` and now implements ``TokenStorage`` instead of - ``StorageAdapter``. (:pr:`980`) - - ``GCSClient`` instances now have a non-None ``resource_server`` property. - ``GlobusAuthorizationParameters`` no longer enforces that at least one @@ -105,21 +117,25 @@ Deprecated Fixed ~~~~~ -- When a JSONTokenStorage is used, the containing directory will be automatically be +.. 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 +- 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 +- Fixed a ``GlobusApp`` bug which would cause LocalServerLoginFlowManager to error on MacOS when versions earlier than Python 3.11. (:pr:`1003`) Documentation