New Features
orchestrator: Add JWT-based bearer token authentication (default) and API key support via options--auth_style(token,basic,query) and--apikey.aoc:short_link listsupports--query=help, help ofshort_link create|modifyshows the request body.node:emulatorexecutes transfers withtransferd, and supports more of the Node API. See the manual.- general: Linux portable package
aspera-cli-<version>-linux-x86_64-glibc<version>-portable.tgz: Ruby, gems and Transfer SDK, extract and run, like the Windows portable package. shares:admin share user_permissions|group_permissionssupportcreate,modifyanddelete(identified by user or group id, e.g.%username:john@example.com).config:commandsaccepts aliases in the command path (e.g.config commands server browse).
Issues Fixed
preview: Generator options with a numeric value given on command line (e.g.--thumb-vid-fraction=0.3,--blend-pauseframes=2) were failing.aoc:short_link showalways failed withnot found.faspex5:packages receivewith a public link now works with a list of files, andALL.faspex5:packages sendnow returns the package information (likeaoc).config:commandsfailed withno such commandwhen the command path included positional arguments (e.g.faspex5 packages receive ALL): arguments are now skipped, and an unknown command shows the list of sub-commands.aoc:files short_link public modifywithaccess_levelsset full access (edit) instead of the given levels.aoc:packages shared_inboxes short_link publiccommands were failing (wrong short link purpose, parameters of shared folder links). Link typeprivateis removed: AoC supports it only for shared folders.- general: Agent
nodewas failing when the transfer was canceled or paused on the node. - general: When the default CA certificate locations of Ruby's OpenSSL do not exist (e.g. single executable built on another Linux distribution), the system CA bundle is used.
- general: Windows portable package displayed
Ignoring bigdecimal-... because its extensions are not builtat each start. - general: Fixed #265 #266: Linux single executable of 4.27.3 ran every command as
config commands <command>: e.g.config transferd installonly displayed its syntax, andfaspex5 packages receive ALLfailed withno such command. config:transferd installwith--sdk-url=file:///...tar.gz(local SDK archive, Linux) failed withnot in gzip format.- general: Linux single executable: commands could fail with
cannot load such file(e.g.config transferd install:rubygems/package): it now includes the whole Ruby standard library and all files of gems. - general: Progress bar: stayed at 0% when the total size was not known (the transferred size is now shown), rate was underestimated (it included connection time: now averaged over the last 5 seconds, in decimal
Mbpslikeascp), a resumed session doubled the total size or failed the transfer, a second HTTP download accumulated the first one, multi-session state was shared between sessions in agentdirect. Errors in the progress bar no longer fail the transfer. - general: Progress bar: a failed transfer was displayed as completed (the bar now stops at the reached progress, with
failed), log lines were mixed with the progress bar (they are now displayed above it), files already at destination (whole or partially, when resumed) were not counted in progress, multi-session progress exceeded the total size (agentdirect), agenthttpgwdid not terminate the progress bar. - general: Agent
direct: whenascpended without final status (e.g. killed),asclifailed withwrong number of arguments: the transfer is now resumed. shares: Help ofadmin share create|modifyshowed fieldspathanddescription, rejected by Shares (error 500): fields aredirectoryandcreate_directory. Same fordescriptioninadmin group local create|modify.aoc:admin user preferences|notifications show|modifyfailed withundefined method 'setup_admin_user_instance'.- general: With
--bulk=yes, commands under a node with an identifier (e.g.node access_keys do <id> delete,faspex5 admin nodes shared_folders <id> delete,shares admin share user_permissions <id> delete) failed withMissing argument: command: only arguments supporting bulk operations are read as a list. server: Aliasesbrowse,deleteandrenameexecutedls,rmandmveven whenascmdis not available.config:wizarddisplayed a test command that does not exist forfaspio,orchestrator,consoleandserver.faspex5: With a public link to a package, the first argument ofpackages browse,statusandreceivewas ignored (e.g. the folder ofbrowse, the first file ofreceive).- general: A multi-line value was evaluated as an extended value when any of its lines, not only the first one, started with a decoder (e.g.
@ruby:): such a value is now taken as is. - general:
@stdin:chompwas failing. - general: A configuration file with an error to fix (e.g. duplicate keys) was renamed
*.manual_conversion_needed, and a new empty configuration file was created on next execution: the file is now left untouched, and the error is displayed. - general:
--out.levelwas overridden by--formatgiven after it, or in the same--outvalue: e.g.--out.level=info --format=jsondisplayed secrets. - general: Integers with a leading zero were rejected in options (e.g.
--version-check-days=08) and arguments, or read as octal in dotted values (e.g.--query.page=010). An invalid number in an option now gives the name of the option. faspex5:admin shared_inboxes|workgroups saml_groups modify|deletewith a percent selector (e.g.%name:my_group) failed withassertion failed.faspex5: Lists were read endlessly if the server returned an empty page before the total count, and failed without total count.config:vaultof typefilewithoutnamefailed withno implicit conversion of nil into String(default name:vault.bin).- general: Interactive prompts were displayed on
stdout, mixed with results (e.g. when redirected to a file): they are now displayed onstderr. - general: Security: the encrypted vault file was readable by other users, and files with secrets (configuration, persistency, generated private key) were readable by other users until access was restricted, just after creation: they are now created with restricted access.
- general: Security: secrets of transfer agent parameters (e.g.
passwordof agentnode) were saved in clear with asynchronous transfers:config transfer statusnow takes them from the currenttransferoption.
Breaking Changes
- general: With
--format=json,jsonpp,yamlorruby, the output is always valid in this format: a status is a string (e.g."complete"), an empty list is[], and no result isnull(were displayed as plain text, e.g.complete,empty,nothing). node:emulatorrequirestransferdand the gemgrpc, instead ofascp.node:simulatoris not renamed and is an alias ofemulator.node:emulatorparameterbrowse_rootis renameddocroot.- general: Release archives are named
aspera-cli-<version>-<os>-<cpu>...: single executableaspera-cli-<version>-linux-x86_64-glibc<version>-ocran.tgz(wasascli-...), Windows portableaspera-cli-<version>-windows-x86_64-portable.zip(waswindows-amd64). orchestrator: Commandpluginsis nowplugins list.orchestrator: Default authentication is now JWT token.- general: The progress bar is displayed on standard error (was standard output), by default if standard error is a terminal: it is displayed even if the output of the command is redirected to a file. Agent
direct: iftransferparameterquietisfalse(native progress bar ofascp), the progress bar ofascliis not displayed, unless optionprogress_baris set.
Server Versions
| Plugin | Product | Version |
|---|---|---|
aoc
| Aspera on Cloud | SaaS |
console
| IBM Aspera Console | 3.4.4 |
faspex5
| Faspex v5 | F5.0.17 |
httpgw
| HTTP Gateway | 2.3.4 |
node
| HSTS Node API | 4.4.8.2596 |
orchestrator
| Orchestrator | 4.1.6.2036-00000 |
shares
| IBM Aspera Shares | 1.9.14 |
Transfer Agent Versions
| Agent | Product | Version |
|---|---|---|
connect
| IBM Aspera Connect Client | 4.2.14 |
desktop
| IBM Aspera Desktop Client | 4.4.3 |
direct
| IBM Aspera Transfer SDK (ascp) | 1.1.9 |
httpgw
| IBM Aspera HTTP Gateway Agent | 1.3.0 |
node
| IBM Aspera Node API Agent | 4.4.3 |
transferd
| IBM Aspera transferd daemon | 1.1.9 |