-
The
--exclude
option forglobus transfer
now only applies to files to better support excluding files within a directory structure
Bugfixes:
-
Fix the handling of multiple
-Q
parameters with the same name for theglobus api
commands. Such usages were only sending the last value used, but now correctly send all parameters. -
Certain combinations of options for
globus task list
could, generate invalid or useless filters. These behaviors are fixed. -
Strip single quotes from scope strings passed to
globus session consent
, fixing the behavior of this command when run from Windows Command Prompt
Enhancements:
-
Add
globus timer create transfer
as a new command for creating new timers-
The command prompts for login if data_access consents are detected as a requirement
-
-
globus session consent
now supports a--timer-data-access
flag, specifically to help support timer creation -
The CLI now has stronger requirements around the scope used for the Timer service, and will treat past Timer tokens as invalid. Users running
globus timer
commands will find that they must login again. -
Add
globus timer delete
as a command for deleting timers -
When showing login requirements for known Globus services, the error message instructing users to run
globus login
will use recognizable nice names for those services, e.g.Globus Timers
Other:
-
The CLI’s handling of changes to its scope requirements over time has been improved. After CLI updates which change the required scopes, users will be prompted to login again, ensuring that the most up-to-date set of scopes are in use.
-
Changes to the CLI which adjust scopes, and therefore force this re-login behavior, will note this in the changelog.
-
This change, in itself, will not force re-login for any users.
-
-
globus-cli
now usespackaging
for version parsing. This improves compatibility with python 3.12
Enhancements:
-
Add
--policy
option toglobus session update
which takes a comma delimited list of Globus Auth policy IDs and starts an auth flow to meet the policies. -
Whenever an error is hit due to not meeting a Globus Auth policy, helptext is displayed with a
globus session update
command to resolve the error. -
Support
--user-message
and--user-message-link
forglobus endpoint update
andglobus gcp create mapped
Other:
-
Improve the uniformity of endpoint and collection option parsing.
-
The
--sharing-restrict-paths
option toglobus collection update
now checks for invalid types (non-dict, non-null data) -
globus endpoint update
now treats the empty string as null for the following options:--contact-email
,--contact-info
,--default-directory
,--department
,--description
,--info-link
, and--organization
. This behavior matchesglobus collection update
.--no-default-directory
is still supported, but is equivalent to--default-directory ""
-
globus gcp create guest
andglobus gcp create mapped
now accept--verify [force|disable|default]
for verification options. This replaces--disable-verify/--no-disable-verify
, which is now deprecated
-
Bugfixes:
-
Fix a typo in the
globus endpoint permission update
command -
Fixed an AttributeError preventing text output of
globus session show
Bugfixes:
-
Fix a bug which caused
globus list-commands
not to show proper information
Enhancements:
-
Add the
globus api flows
command for direct interactions with the Globus Flows service -
Added commands for interacting with GCSv5 user credentials
-
globus endpoint user-credential list
-
globus endpoint user-credential show
-
globus endpoint user-credential delete
-
globus endpoint user-credential create
-
globus endpoint user-credential create from-json
-
globus endpoint user-credential create posix
-
globus endpoint user-credential create s3
-
-
-
Added
globus endpoint storage-gateway list
-
Add
globus flows delete
to delete a flow by ID -
Add a new command,
globus flows show
which displays information about a single flow -
Add
globus flows start
as a new command for starting a flow. -
Add
globus login --flow <flow_id>
to trigger a login that asks for consent to start a flow. -
globus ls
has improved behavior when the--filter
and--recursive
options are used in combination-
directory names are not matched against the filter, allowing the operation to traverse directories regardless of their names
-
the
--filter
is still applied to filenames in all directories traversed by thels
operation -
directory names can be filtered out of the text output by eliminating lines which end in
/
-
the behaviors of
globus ls
commands with--recursive
or--filter
, but not both, are unchanged
-
Other:
-
globus endpoint create
is now hidden and displays a deprecation warning when used -
Support Python 3.11.
-
Endpointish now uses
entity_type
for determining EntityType
Bugfixes:
-
Fix a bug in text output for
globus transfer --dry-run
which crashed with aKeyError
if--external-checksum
was omitted
Enhancements:
-
A new command,
globus flows list
, allows users to list Flow objects in Globus Flows -
New commands for creating Globus Connect Personal endpoints and collections
-
globus gcp create mapped
creates a GCP Mapped Collection -
globus gcp create guest
creates a GCP Guest Collection
-
In GCP, the Mapped Collection and Endpoint are synonymous. Therefore,
globus gcp create mapped
replaces the functionality previously only available
via globus endpoint create --personal
.
Note
|
Neither of the globus gcp create commands automatically installs Globus
Connect Personal on the local machine. These commands complement and interact with
an existing installation.
|
Other:
-
globus endpoint create
is now documented as deprecated. Users are encouraged to useglobus gcp create
for Globus Connect Personal, and the Globus Connect Server CLI for Globus Connect Server -
globus endpoint create
no longer accepts--no-default-directory
as an option. It previously did nothing when used.
Enhancements:
-
The globus CLI is now faster to start in many cases. Tab completions are most significantly improved, but other commands may demonstrate an improvement as well
-
Add the
globus api timer
command for direct interactions with the Globus Timer service -
Order
globus task list
by descending request time to prioritise newer tasks in default output
Bugfixes:
-
Fix
globus session update
help text not handling missing domain errors from Transfer
Enhancements:
-
globus group member invite
now supports provisioning new identities in Globus Auth in order to support inviting new users who have not created Globus accounts. Use--provision-identity
to indicate that new users should be auto-provisioned in Globus Auth -
Add new
globus timer
commands for interacting with the Timer service:-
globus timer list
to list jobs -
globus timer show
to show a particular job
-
-
Add
globus search index delete
command
Enhancements:
-
Commands which have required arguments will print their helptext if invoked with no arguments. They still
exit(2)
(usage error). This only applies to the case of a command with required arguments being called with no arguments at all.
Bugfixes:
-
Fix behavior of
globus api
to respect formatting options.--jmespath
can be used on results, and-Fjson
will pretty-print JSON responses if the original response body is compact JSON
Other:
-
Increase the maximum width of help output to 80% of the terminal size.
-
Remove support for python3.6 . Users on python3.6 should still be able to install
globus-cli
but will not be able to update to the latest version.
Bugfixes:
-
globus endpoint activate --web
now correctly respects the environment when it is set
Enhancements:
-
Add a new command,
globus api
, which can be used to make requests to curl-like requests to Globus services using the credentials from a globus-cli login -
Add commands for interacting with individual documents in Globus Search:
globus search subject show
andglobus search subject delete
Enhancements:
-
New commands for interacting with Globus Groups
-
globus groups set-policies
to manage a group’s policies -
globus group member list
to list members of a group -
globus group member invite
to invite a member to join a group -
globus group member approve
to approve a member who has requested to join a group -
globus group member reject
to reject a member who has requested to join a group -
globus group invite accept
to accept an invitation to a group -
globus group invite decline
to decline an invitation to a group -
globus group join
to join a group, with an option--request
for groups which require approval for members -
globus group leave
to leave a group
-
-
globus group member add
now supports the--role
argument for adding members with themanager
andadmin
roles -
A new command for interacting with Globus Search,
globus search delete-by-query
to bulk-delete data from a Globus Search index
Bugfixes:
-
Fix an issue which caused certain commands like
globus mkdir
to retry incorrectly when failing, leading to unnecessary delays on failure
Enhancements:
-
Add Globus Search commands for managing index roles. These are
globus search index role list
,globus search index role create
, andglobus search index role delete
-
Added new commands for manipulating groups
-
globus group create
creates a new group -
globus group show
shows group information -
globus group update
updates group name or description -
globus group delete
deletes a group
-
Bugfixes:
-
Update the version of
globus-sdk
used, fixing an issue which causedglobus task show --skipped-errors
andglobus task show --successful-transfers
to only show partial output
Enhancements:
-
Add a
globus group member add
command to add users to a group -
Add a
globus group member remove
command to remove a user from a group -
Add a new
globus search index show
command which displays an index by ID -
Add a new
globus search index list
command which lists indices for which the current user has permissions -
Add a new
globus search index create
command which creates a new Globus Search index. Note that because the index creation API is in public beta, the command is also labeled as "beta" -
Add docs on
GLOBUS_PROFILE
setting to help for login and logout commands -
Add support for client credentials for authentication in the Globus CLI by setting
GLOBUS_CLI_CLIENT_ID
andGLOBUS_CLI_CLIENT_SECRET
environment variables-
Both variables must be set to enable this behavior
-
Tokens generated with client credentials are cached in the current user’s home directory, but isolated from any user credentials
-
With client credentials,
globus login
is invalid, butglobus logout
can be used to revoke any cached tokens -
Attempting to run
globus login
while using client credentials will show an appropriate error message
-
-
A new command,
globus cli-profile-list
can be used to list values forGLOBUS_PROFILE
andGLOBUS_CLI_CLIENT_ID
("client profiles") which have been used. By default, the listing is restricted to the current environment. A hidden option (--all
) can be used to list all environments
Bugfixes:
-
globus session consent
was reducing the scopes of the Auth token provided by login, resulting in errors onlogout
andwhoami
Enhancements:
-
The
--help
text forglobus endpoint create
now clarifies the meaning of--personal
. -
Errors for use of mutually exclusive options to
globus endpoint create
have been improved.
Bugfixes:
-
Fix an error when
globus ls --recursive
is used on an empty directory, or filtered such that a recursive listing has no results -
The help text printed by
--batch
when stdin is a tty has been removed. This text explained CLI v2.x behavior, and is not accurate for CLI v3.x -
Fix a bug in
globus session consent
in which anid_token
was expected as part of the token data, but theopenid
scope was not provided to the login flow -
Fix a crash that occurs when running
globus task event-list {task-id}
Bugfixes:
-
Fix a typo in the word "latitude" for
--location
arguments. -
Fix the handling of the legacy-line of
virtualenv
, versions below20.0.0
. When theglobus-cli
was installed under these versions ofvirtualenv
, all commands would fail at import-time due to an API difference between stdlibsite
module and thevirtualenv
-generatedsite
Bugfixes:
-
The behavior of
globus update
when operating under apipx
install has been fixed, so that--user
will not be passed to thepip
invocation -
Fix
TypeError
inglobus endpoint activate
resulting from the v3 upgrade
Other:
-
Cleanup internal and undocumented behaviors of
globus update
Enhancements:
-
Add the new
globus search
command group for interacting with the Globus Search service.globus search
commands may prompt users to login again if they have not previously used aglobus search
command. -
Add the
globus search query
command for executing searches on Globus Search indices. -
Add the
globus search ingest
command for ingesting data into a Globus Search index. You must havewriter
permissions on the index in order to use this operation. -
Add the
globus search task show
andglobus search task list
commands. To use these commands, you must havewriter
permissions on the index whose tasks are being displayed.
Bugfixes:
-
Fix
TypeError
when runningglobus endpoint set-subscription-id
Bugfixes:
-
Update dependency specification to avoid an issue in which old versions of
cryptography
were not updated when an existing installation was updated
This is a major release of the CLI and has several backwards incompatible changes. See the Backwards Incompatible Changes list below.
Bugfixes:
-
Fix a bug in which some error outputs could be sent to stdout
Enhancements:
-
globus endpoint show
now includes the description field. Formatting of the description may wrap -
globus session update
now supports domains forsession_required_single_domain
requirements -
globus-cli now uses more advanced token storage, and does not use
~/.globus.cfg
. Aglobus login
with this version will invalidate any CLI tokens found in~/.globus.cfg
-
Note: this version of the CLI will not modify the
~/.globus.cfg
file, only invalidate CLI version 2 tokens. After the upgrade, you may remove this file if you are not using it for other purposes.
-
-
globus-cli now supports use of the
GLOBUS_PROFILE
environment variable, which lets users name sets of credentials and switch between accounts -
globus-cli commands can now direct the user to login to a specific Globus Connect Server v5 Endpoint. When the requirements for running a command are not met, a message with the correct login command will be shown.
-
A new environment variable,
GLOBUS_CLI_INTERACTIVE
can be used to instruct the CLI to behave as though it is or is not in an interactive shell. SetGLOBUS_CLI_INTERACTIVE=0
to force non-interactive behavior, andGLOBUS_CLI_INTERACTIVE=1
to force interactive behavior -
Add new collection-related commands for Mapped and Guest Collections
-
globus collection list
-
globus collection show
-
globus collection update
-
globus collection delete
-
-
globus endpoint …
andglobus collection …
commands may exit with an error instructing the user to use a corresponding command whenglobus endpoint
commands are used on collections orglobus collection
commands are used on non-collection endpoint types -
Add new
globus group list
command for listing your group memberships
Backwards Incompatible Changes:
-
Remove the
--version
flag. Useglobus version
instead -
globus endpoint server add
now takes the server as a positional argument, not a required option -
globus rename
has changed to take the endpoint ID once and two separate paths, instead of twoendpoint:path
arguments which require the endpoint ID to match -
Remove the
globus config
commands -
globus transfer --batch
andglobus delete --batch
now accept filenames to specify batches. To use stdin (as in v2), pass a single dash for the filename, as in--batch -
-
Two new exit statuses, in addition to 0, 1, and 2, are now used by the CLI to indicate specific error conditions
-
An
exit(3)
is used whenever the type of an object does not match the expectations of a command. For example,globus collection list
on a Collection is incorrect — that command should be used on Endpoints -
An
exit(4)
is used whenever the authentication or authorization requirements of a command are not met. For example, if your session does not satisfy theauthentication_timeout
for an HA endpoint.
-
Enhancements:
-
globus transfer
now supports an option,--exclude
, which can be used to skip files matching a pattern or set of patterns when submitting a recursive directory transfer
Enhancements:
-
globus transfer
now supports two new flags,--skip-source-errors
and--fail-on-quota-errors
, which allow you to better control error behaviors -
globus task show --skipped-errors
is a new flag which will show skipped transfer errors (for transfers which support them)
Bugfixes:
-
The
disable_verify
option will no longer be set toFalse
when left unspecified inglobus endpoint update
Enhancements:
-
globus update
now restricts updates to python2-compatible versions when running under python2
Bugfixes:
-
Fix some help options not being correctly populated
Enhancements:
-
Add handling for ConsentRequired errors when interacting with newer versions of Globus Connect Server
Other:
-
Web documentation is now autogenerated as part of the release process
Enhancements:
-
Add a new command,
globus endpoint set-subscription-id
, which allows Subscription Managers to set the subscription on Endpoints where they may not have administrative privileges
Bugfixes:
-
If a new
refresh_token
is issued when a token refreshes, it will be stored correctly. -
Paths being joined for
--batch
mode forglobus transfer
andglobus delete
on Windows were joined incorrectly with the platform path separator (\
). They are now joined correctly with/
Enhancements:
-
Error and hint outputs are styled using colors when the output is being written to a terminal.
-
Supports macOS and Linux by default using ANSI colors.
-
You can install colorama (
pip install colorama
) in the same environment as the CLI to get color support on Windows.
-
-
Endpoints whose activation requirements do not include any myproxy requirements now give an informative error message if myproxy activation is attempted
-
Add support for
--external-checksum
and--checksum-algorithm
inglobus transfer
commands
Other:
-
Internally, use the
globus_sdk.IdentityMap
construct, not a custom mapping type. -
Remove official support for python3.4, add support for python3.8
-
Improvements to help text
Enhancements:
-
Add
--limit <count>
option toglobus endpoint search
command.
Other:
-
Upgrade to click version 7.
Enhancements:
-
Add
--timeout-exit-code
option to override the default exit code (1) for commands that wait on tasks. For example,globus task wait <task_id> --timeout 60 --timeout-exit-code 0
.
Enhancements:
-
Add support for using high assurance collections (434)
Enhancements:
-
Add the
--no-default-directory
flag toglobus endpoint create
andglobus endpoint update
which unsets the default directory setting (428)
Bugfixes:
-
Fix handling of Groups in
globus endpoint role list
(417)
Enhancements:
-
Add
--notify
option toglobus transfer
andglobus delete
to turn notifications on or off (383) -
Add
--filter
option toglobus ls
(384) -
Add
globus endpoint local-id
command to get the endpoint ID of a local Globus Connect Personal installation (382) -
Add
--notify-email
and--notify-message
options toglobus endpoint permission create
(381) -
globus delete
will now prompt when the last character is a wildcard*
(interactive only) (380)-
globus delete --star-silent
orglobus delete --unsafe
can be used to skip the prompt
-
-
Minor documentation improvements
Bugfixes:
-
Fix error rendering with
--format json
(377)
Bugfixes:
-
Improve handling of non-ascii user names (354)
Enhancements:
-
Allow enabling or disabling the "managed" state of an endpoint via the
--managed
,--no-managed
, and--subscription-id
options to theglobus endpoint update
command.
Enhancements:
-
Use the
cryptography
package instead ofM2Crypto
for thedelegate-proxy
feature.-
Note: If you are using the
delegate-proxy
feature and previously installed the CLI along withM2Crypto
, you will need to activate the CLI’s virtualenv and install thecryptography
dependency:
-
source $HOME/.globus-cli-virtualenv/bin/activate
pip install globus-cli[delegate-proxy] --upgrade
deactivate
Enhancements:
-
Add Delegate Proxy Activation to 'globus endpoint activate' (requires M2Crypto for options to be displayed) (306)
-
Allow 'globus bookmark rename' and 'globus bookmark delete' to accept either a bookmark name or id. (292)
-
Validate tokens upon login. (286)
-
Raise more helpful error messages on missing / invalid tokens. (299)
-
Display additional helptext with 'globus login'. (289)
-
Display additional fields with 'globus task show'. (301)
-
Make conflicting filters mutually exclusive in 'globus task event-list' (294)
Bugfixes: