Migrating Transfer Action Providers
Overview
This document is a how-to for flow authors using the Action Providers
leveraging the Transfer API hosted at actions.globus.org
to migrate to the new
Transfer Action Providers hosted at transfer.actions.globus.org
.
Specifically, the following Action Providers are deprecated and will be shut
down at a to-be-determined time. Other actions.globus.org
Action Providers
are not affected by this change.
-
https://actions.globus.org/transfer/collection_info
-
https://actions.globus.org/transfer/delete
-
https://actions.globus.org/transfer/ls
-
https://actions.globus.org/transfer/mkdir
-
https://actions.globus.org/transfer/set_permission
-
https://actions.globus.org/transfer/transfer
Scopes
Unlike the deprecated Action Providers, all Actions hosted at
transfer.actions.globus.org
use the same Globus Auth scope as the
Transfer API itself: urn:globus:auth:scope:transfer.api.globus.org:all
.
Some users may need to re-consent to continue using a flow after it has been updated to use the new Transfer Action Providers depending on their existing consents.
Action URLs
All Flows using the deprecated Transfer Action Providers will need to update
the ActionUrl
on states using those Actions.
For most Actions this will just be replacing actions.globus.org/transfer/
with
transfer.actions.globus.org/
. For example, a state with an ActionUrl
of
https://actions.globus.org/transfer/collection_info
should be changed to
https://transfer.actions.globus.org/collection_info
An exception to this is the "set_permission" Action Provider, which has been
renamed to "manage_permission". States using the
https://actions.globus.org/transfer/set_permission
ActionUrl
should be
changed to https://transfer.actions.globus.org/manage_permission
.
Input Schema Changes
Several of the Actions have had their input schemas changed to better align with the underlying Transfer API. These are split into breaking changes for fields that will need changes to migrate to the new Transfer Action Providers, and non-breaking changes that don’t require changes to migrate, but provide new functionality not present in the deprecated Transfer Action Providers.
Breaking Changes
-
/transfer
-
The
transfer_items
field has been renamed toDATA
. -
The
source_endpoint_id
field has been renamed tosource_endpoint
. -
The
destination_endpoint_id
field has been renamed todestination_endpoint
.
-
-
/delete
-
The
items
field has been renamed toDATA
. -
The
endpoint_id
field has been renamed toendpoint
.
-
-
/ls
-
the
path_only
field has been removed. If your flow needed it to determine if a path was a directory or not, note that Transfer now supports auto-detection of item type and therecursive
field is now optional for transfer items.
Non-breaking Changes
-
/transfer
-
The
recursive
field is now optional for individual transfer items. -
The optional fields
filter_rules
,perf_cc
,perf_p
,perf_pp
andperf_udt
are now supported.
-
-
/delete
-
The optional
deadline
field is now supported.
-
-
All documents that accept an optional
DATA_TYPE
field in the underlying Transfer API will accept that field in their input schema as well.
Removed Output Fields
Similar to the changes to input schemas, the outputs of the new Transfer Action Providers have been changed to better align with the underlying API. If your flow relies on these fields being present, it will need to be updated to use other fields that provide equivalent information.
-
The
is_managed
field has been removed from the output of the/collection_info
Action Provider. This functionality can be replaced by checking ifsubscription_id
is a non-null value, as it will always be non-null for subscribed endpoints/collections.
Globus Connect Personal can use some premium features (such as using
guest collections) when owned by a member of a Plus group. You may want to
treat collections with an entity_type
of "GCP_mapped_collection" or
especially "GCP_guest_collection" as potentially able to use premium
features even if they do not have a subscription_id
set.
-
The
is_folder
field has been removed from the output of/ls
. This functionality can be replaced by checking if the value of thetype
field is "dir".