aspera-cli 4.25.0.pre → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +23 -17
  4. data/CONTRIBUTING.md +119 -47
  5. data/README.md +325 -239
  6. data/lib/aspera/agent/direct.rb +14 -12
  7. data/lib/aspera/agent/factory.rb +9 -6
  8. data/lib/aspera/agent/transferd.rb +8 -8
  9. data/lib/aspera/api/aoc.rb +33 -24
  10. data/lib/aspera/api/ats.rb +1 -0
  11. data/lib/aspera/api/faspex.rb +11 -5
  12. data/lib/aspera/ascmd.rb +1 -1
  13. data/lib/aspera/ascp/installation.rb +7 -7
  14. data/lib/aspera/ascp/management.rb +9 -5
  15. data/lib/aspera/assert.rb +3 -3
  16. data/lib/aspera/cli/extended_value.rb +10 -2
  17. data/lib/aspera/cli/formatter.rb +15 -62
  18. data/lib/aspera/cli/manager.rb +9 -43
  19. data/lib/aspera/cli/plugins/aoc.rb +71 -66
  20. data/lib/aspera/cli/plugins/ats.rb +30 -36
  21. data/lib/aspera/cli/plugins/base.rb +11 -6
  22. data/lib/aspera/cli/plugins/config.rb +21 -16
  23. data/lib/aspera/cli/plugins/console.rb +2 -1
  24. data/lib/aspera/cli/plugins/faspex.rb +7 -4
  25. data/lib/aspera/cli/plugins/faspex5.rb +12 -9
  26. data/lib/aspera/cli/plugins/faspio.rb +5 -2
  27. data/lib/aspera/cli/plugins/httpgw.rb +2 -1
  28. data/lib/aspera/cli/plugins/node.rb +10 -6
  29. data/lib/aspera/cli/plugins/oauth.rb +12 -11
  30. data/lib/aspera/cli/plugins/orchestrator.rb +2 -1
  31. data/lib/aspera/cli/plugins/preview.rb +2 -2
  32. data/lib/aspera/cli/plugins/server.rb +3 -2
  33. data/lib/aspera/cli/plugins/shares.rb +59 -20
  34. data/lib/aspera/cli/transfer_agent.rb +1 -2
  35. data/lib/aspera/cli/version.rb +1 -1
  36. data/lib/aspera/command_line_builder.rb +5 -5
  37. data/lib/aspera/coverage.rb +5 -1
  38. data/lib/aspera/dot_container.rb +108 -0
  39. data/lib/aspera/environment.rb +69 -89
  40. data/lib/aspera/faspex_postproc.rb +1 -1
  41. data/lib/aspera/id_generator.rb +7 -10
  42. data/lib/aspera/keychain/macos_security.rb +2 -2
  43. data/lib/aspera/log.rb +2 -1
  44. data/lib/aspera/oauth/base.rb +25 -38
  45. data/lib/aspera/oauth/factory.rb +5 -6
  46. data/lib/aspera/oauth/generic.rb +1 -1
  47. data/lib/aspera/oauth/jwt.rb +1 -1
  48. data/lib/aspera/oauth/url_json.rb +4 -3
  49. data/lib/aspera/oauth/web.rb +2 -2
  50. data/lib/aspera/preview/file_types.rb +1 -1
  51. data/lib/aspera/preview/terminal.rb +95 -29
  52. data/lib/aspera/preview/utils.rb +6 -5
  53. data/lib/aspera/rest.rb +5 -2
  54. data/lib/aspera/ssh.rb +6 -5
  55. data/lib/aspera/sync/conf.schema.yaml +2 -2
  56. data/lib/aspera/sync/operations.rb +3 -3
  57. data/lib/aspera/transfer/parameters.rb +6 -6
  58. data/lib/aspera/transfer/spec.schema.yaml +4 -4
  59. data/lib/aspera/transfer/spec_doc.rb +11 -21
  60. data/lib/aspera/uri_reader.rb +17 -3
  61. data.tar.gz.sig +0 -0
  62. metadata +17 -2
  63. metadata.gz.sig +0 -0
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <!--
3
3
  DO NOT EDIT: THIS FILE IS GENERATED, edit docs/README.erb.md, for details, read docs/README.md
4
4
  PANDOC_META_BEGIN
5
- subtitle: "ascli 4.25.0.pre"
5
+ subtitle: "ascli 4.25.0"
6
6
  author: "Laurent MARTIN"
7
7
  PANDOC_META_END
8
8
  -->
@@ -22,7 +22,7 @@ PANDOC_META_END
22
22
 
23
23
  Hootput lives in the terminal, watching over every command with wide, unblinking eyes.
24
24
  Known for concise output and sharp insight, this owl thrives where others get lost in the dark.
25
- It doesn’t chatter; it hootsclear, precise, and always on time.
25
+ It doesn’t chatter; it hoots-clear, precise, and always on time.
26
26
 
27
27
  Like `ascli`, Hootput is built for action: launching transfers, parsing options, and navigating APIs without hesitation.
28
28
  Light on feathers but heavy on wisdom, it turns complexity into simple one-liners.
@@ -30,7 +30,7 @@ When you hear Hootput’s call, you know your data is already in flight.
30
30
 
31
31
  ---
32
32
 
33
- "Hey, I’m `ascli` your data’s personal courier.
33
+ "Hey, I’m `ascli` - your data’s personal courier.
34
34
  I don’t do flashy dashboards; I’m happiest in a terminal window.
35
35
  Hand me a command, and I’ll zip your files across the network faster than you thought possible.
36
36
 
@@ -42,7 +42,7 @@ Need to debug? I’ll show you what’s going on under the hood.
42
42
 
43
43
  Think of me as Aspera’s command-line sidekick: quick, reliable, and a little no-nonsense. You bring the files; I’ll bring the horsepower."
44
44
 
45
- Version : 4.25.0.pre
45
+ Version : 4.25.0
46
46
 
47
47
  Laurent/2016-2026
48
48
 
@@ -76,6 +76,10 @@ For debugging, use `--log-level=debug` to view the underlying API calls.
76
76
 
77
77
  ### When to use and when not to use
78
78
 
79
+ > [!NOTE]
80
+ > If you are scripting or automating transfers from the command line, `ascli` is the right choice.
81
+ > If you are developing an application, prefer the APIs or SDKs instead.
82
+
79
83
  The `ascli` tool is designed for command-line interaction with IBM Aspera products, enabling users to execute remote commands and perform file transfers efficiently.
80
84
  It supports both interactive terminal operations (e.g., maintenance tasks on VT100-compatible terminals) and scripting use cases (e.g., batch jobs via shell scripts or cron).
81
85
 
@@ -95,7 +99,7 @@ These include:
95
99
  Using these APIs is generally more suitable for long-term development and maintenance.
96
100
  Example implementations can be found at: <https://github.com/laurent-martin/aspera-api-examples>.
97
101
 
98
- For scripting and ad hoc command-line tasks, `ascli` is ideal.
102
+ For scripting and ad-hoc command-line tasks, `ascli` is ideal.
99
103
  It is developer-friendly and well-suited for quickly testing and learning Aspera APIs (See [Logging, Debugging](#logging-debugging)).
100
104
 
101
105
  Clarifying the CLI landscape:
@@ -135,7 +139,7 @@ ascli --version
135
139
  ```
136
140
 
137
141
  ```text
138
- 4.25.0.pre
142
+ 4.25.0
139
143
  ```
140
144
 
141
145
  > [!NOTE]
@@ -430,6 +434,7 @@ One can remove all installed gems, for example to start fresh:
430
434
 
431
435
  ```shell
432
436
  ls $(gem env gemdir)/gems/|sed -e 's/-[^-]*$//'|sort -u|xargs gem uninstall -axI
437
+ rm -f Gemfile.lock
433
438
  ```
434
439
 
435
440
  #### Unix-like: RVM: Single user installation (not root)
@@ -587,33 +592,57 @@ Those are not installed as part of dependencies because they involve compilation
587
592
  See [Gemfile](Gemfile):
588
593
 
589
594
  | name | version | comment |
590
- |----------------------|---------|-----------------------------------------------------|
595
+ |----------------------|----------|-----------------------------------------------------|
591
596
  | grpc | ~> 1.71 | (no jruby) for Aspera Transfer Daemon |
592
597
  | marcel | ~> 1.1 | for preview |
593
- | rmagick | ~> 6.1 | (no jruby) for terminal view |
594
598
  | symmetric-encryption | ~> 4.6 | for encrypted hash file secrets |
595
599
  | bigdecimal | ~> 3.1 | if RUBY_VERSION >= '3.4' for symmetric-encryption ? |
600
+ | base64 | ~> 0.3 | if RUBY_VERSION >= '3.4' remove from standard gems |
596
601
  | sqlite3 | ~> 2.7 | (no jruby) for async DB |
597
602
  | jdbc-sqlite3 | ~> 3.46 | (jruby) for async DB |
598
603
  | sequel | ~> 5.96 | (jruby) for async DB |
599
604
  | ed25519 | ~> 1.4 | (no jruby) for ed25519 and OpenSSH file format |
600
605
  | bcrypt_pbkdf | ~> 1.1 | (no jruby) for ed25519 and OpenSSH file format |
601
606
  | syslog | ~> 0.3 | (no jruby) for logger=syslog |
607
+ | rmagick | ~> 6.1 | (no jruby) for terminal view |
608
+ | debug | ~> 1.11 | (no jruby) |
609
+ | grpc-tools | ~> 1.67 | |
610
+ | rake | ~> 13.0 | |
611
+ | reek | ~> 6.5.0 | |
612
+ | rspec | ~> 3.0 | |
613
+ | rubocop | ~> 1.75 | |
614
+ | rubocop-ast | ~> 1.4 | |
615
+ | rubocop-performance | ~> 1.10 | (no jruby) |
616
+ | rubocop-shopify | ~> 2.0 | |
617
+ | simplecov | ~> 0.22 | |
618
+ | solargraph | ~> 0.48 | (no jruby) |
602
619
 
603
620
  Install like this:
604
621
 
605
622
  ```shell
606
623
  gem install grpc -v '~> 1.71'
607
624
  gem install marcel -v '~> 1.1'
608
- gem install rmagick -v '~> 6.1'
609
625
  gem install symmetric-encryption -v '~> 4.6'
610
626
  gem install bigdecimal -v '~> 3.1'
627
+ gem install base64 -v '~> 0.3'
611
628
  gem install sqlite3 -v '~> 2.7'
612
629
  gem install jdbc-sqlite3 -v '~> 3.46'
613
630
  gem install sequel -v '~> 5.96'
614
631
  gem install ed25519 -v '~> 1.4'
615
632
  gem install bcrypt_pbkdf -v '~> 1.1'
616
633
  gem install syslog -v '~> 0.3'
634
+ gem install rmagick -v '~> 6.1'
635
+ gem install debug -v '~> 1.11'
636
+ gem install grpc-tools -v '~> 1.67'
637
+ gem install rake -v '~> 13.0'
638
+ gem install reek -v '~> 6.5.0'
639
+ gem install rspec -v '~> 3.0'
640
+ gem install rubocop -v '~> 1.75'
641
+ gem install rubocop-ast -v '~> 1.4'
642
+ gem install rubocop-performance -v '~> 1.10'
643
+ gem install rubocop-shopify -v '~> 2.0'
644
+ gem install simplecov -v '~> 0.22'
645
+ gem install solargraph -v '~> 0.48'
617
646
  ```
618
647
 
619
648
  ### Ruby Gem: `aspera-cli`
@@ -621,7 +650,7 @@ gem install syslog -v '~> 0.3'
621
650
  Once you have Ruby and rights to install gems, install the `aspera-cli` gem and its dependencies:
622
651
 
623
652
  ```shell
624
- gem install aspera-cli --pre
653
+ gem install aspera-cli
625
654
  ```
626
655
 
627
656
  To upgrade to the latest version:
@@ -777,11 +806,11 @@ Necessary gems can be packed in a `tar.gz` like this:
777
806
 
778
807
  ```bash
779
808
  mkdir temp_folder
780
- gem install aspera-cli:4.25.0.pre --no-document --install-dir temp_folder
809
+ gem install aspera-cli:4.25.0 --no-document --install-dir temp_folder
781
810
  find temp_folder
782
- mv temp_folder/cache aspera-cli-4.25.0.pre-gems
811
+ mv temp_folder/cache aspera-cli-4.25.0-gems
783
812
  rm -fr temp_folder
784
- tar zcvf aspera-cli-4.25.0.pre-gems aspera-cli-4.25.0.pre-gems.tgz
813
+ tar zcvf aspera-cli-4.25.0-gems aspera-cli-4.25.0-gems.tgz
785
814
  ```
786
815
 
787
816
  #### Unix-like
@@ -926,7 +955,7 @@ ascli -v
926
955
  ```
927
956
 
928
957
  ```text
929
- 4.25.0.pre
958
+ 4.25.0
930
959
  ```
931
960
 
932
961
  In order to keep persistency of configuration on the host, you should specify your user's configuration folder as a volume for the container.
@@ -1366,7 +1395,7 @@ Details can be found here:
1366
1395
 
1367
1396
  - [quoting rules](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules)
1368
1397
 
1369
- ##### PowserShell 5
1398
+ ##### PowerShell 5
1370
1399
 
1371
1400
  - Check your powershell version:
1372
1401
 
@@ -1408,9 +1437,9 @@ $var="v"
1408
1437
  ascli conf echo $('@json:{"""k""":"""' + $var + '""","""x""":true}')
1409
1438
  ```
1410
1439
 
1411
- ##### PowserShell 7
1440
+ ##### PowerShell 7
1412
1441
 
1413
- - Check your powershell version:
1442
+ - Check your PowerShell version:
1414
1443
 
1415
1444
  ```powershell
1416
1445
  $psversiontable.psversion.Major
@@ -1684,14 +1713,14 @@ ascli config ascp info
1684
1713
  - `ascli` is the executable executed by the shell
1685
1714
  - `conf` is the first level command: name of the plugin to be used
1686
1715
  - `ascp` is the second level command: name of the component (singleton)
1687
- - `info` is the third level command: action to be performed
1716
+ - `info` is the third level command: action to be performed (verb)
1688
1717
 
1689
1718
  Typically, **Commands** are located at the **beginning** of the command line.
1690
1719
  The provided command must match one of the supported commands in the given context.
1691
1720
  If wrong, or no command is provided when expected, an error message is displayed and the list of supported commands is displayed.
1692
1721
 
1693
1722
  Standard **Commands** are: `create`, `show`, `list`, `modify`, `delete`.
1694
- Some entities also support additional commands.
1723
+ Some entities also support additional commands, especially to select sub-entities.
1695
1724
  When those additional commands are related to an entity also reachable in another context, then those commands are located below command `do`.
1696
1725
  For example sub-commands appear after entity selection (identifier), e.g. `ascli aoc admin node do <node_id> browse /`: `browse` is a sub-command of `node`.
1697
1726
 
@@ -1731,6 +1760,18 @@ ascli conf echo @: a.b=1 a.c=2 a.d.0=hello a.d.1=world --format=json
1731
1760
  {"a":{"b":1,"c":2,"d":["hello","world"]}}
1732
1761
  ```
1733
1762
 
1763
+ The general structure of positional arguments is:
1764
+
1765
+ ```text
1766
+ ascli <plugin> <entity> <command> [<ID>] [<parameters>]
1767
+ ```
1768
+
1769
+ If a sub-entity is used:
1770
+
1771
+ ```text
1772
+ ascli <plugin> <entity1> <sub-entity> [<ID>1] <command2> [<ID2>] [<parameters>]
1773
+ ```
1774
+
1734
1775
  #### Options
1735
1776
 
1736
1777
  Command-line options, such as `--log-level=debug`, follow these conventions:
@@ -1769,7 +1810,7 @@ Exceptions and Special Cases:
1769
1810
  If a specific type is required, it can be specified using the `@json:` or `@ruby:` syntax.
1770
1811
  For example, `--a.b.c=1` is equivalent to `--a=@json'{"b":{"c":1}}'`.
1771
1812
  This allows specifying nested keys directly on the command line using a concise **dot-separated** syntax.
1772
- - **Cummulative Hashes**:
1813
+ - **Cumulative Hashes**:
1773
1814
  When an option of type `Hash` is set, the value is deep-merged to an existing or default value.
1774
1815
  Setting to `@none:` is equivalent to setting to `@json:{}`, i.e. an empty `Hash`.
1775
1816
  This can be used to start from an empty value, and not used existing default value.
@@ -1878,17 +1919,17 @@ ascli config echo @json:'{"ni":null,"es":"","ea":[],"eh":{}}'
1878
1919
 
1879
1920
  The style of output can be set using the `format` option:
1880
1921
 
1881
- | `format` | Output formatting |
1882
- |----------|-------------------------|
1883
- | `table` | Text table (default) |
1884
- | `text` | Value as `String` |
1885
- | `ruby` | Ruby code |
1886
- | `json` | JSON code |
1887
- | `jsonpp` | JSON pretty printed |
1888
- | `yaml` | YAML |
1889
- | `csv` | Comma Separated Values |
1890
- | `image` | Image URL or data |
1891
- | `nagios` | Suitable for Nagios |
1922
+ | `format` | Output formatting |
1923
+ |----------|---------------------------|
1924
+ | `table` | Text table (default) |
1925
+ | `text` | Value as `String` |
1926
+ | `ruby` | Ruby code |
1927
+ | `json` | JSON code |
1928
+ | `jsonpp` | JSON pretty printed |
1929
+ | `yaml` | YAML |
1930
+ | `csv` | Comma Separated Values |
1931
+ | `image` | URL or data for a [picture/video](#image-and-video-thumbnails) |
1932
+ | `nagios` | Suitable for Nagios |
1892
1933
 
1893
1934
  By default, result of type `single_object` and `object_list` are displayed using format `table`.
1894
1935
 
@@ -2192,8 +2233,7 @@ The following decoders are supported:
2192
2233
  | `re` | `String` | `Regexp` | Ruby Regular Expression (short for `@ruby:/.../`) |
2193
2234
  | `ruby` | `String` | Any | Execute specified Ruby code. |
2194
2235
  | `secret` | None | `String` | Ask password interactively (hides input). |
2195
- | `stdin` | None | `String` | Read from stdin in text mode (no value on right). |
2196
- | `stdbin` | None | `String` | Read from stdin in binary mode (no value on right). |
2236
+ | `stdin` | None | `String` | Read from stdin in text mode (with arg: empty, `bin` or `chomp`). |
2197
2237
  | `uri` | `String` | `String` | Read value from specified URL. e.g. `--fpac=@uri:http://serv/f.pac` |
2198
2238
  | `val` | `String` | `String` | Prevent decoders on the right to be decoded. e.g. `--key=@val:@file:foo` sets the option `key` to value `@file:foo`. |
2199
2239
  | `yaml` | `String` | Any | Decode YAML. |
@@ -2209,7 +2249,7 @@ To display the result of an extended value, use the `config echo` command.
2209
2249
  The `extend` decoder is useful to evaluate embedded extended value syntax in a string.
2210
2250
  It expects a `@` to close the embedded extended value syntax.
2211
2251
 
2212
- Option `parser` allows definition of a default parser when the positinal parameter or option expects a `Hash` or `Array`.
2252
+ Option `parser` allows definition of a default parser when the positional parameter or option expects a `Hash` or `Array`.
2213
2253
  For example, with `--parser=json`, the parameter `{}` will be parsed as an empty JSON Hash, even without prefix `@json:`.
2214
2254
 
2215
2255
  Example: Create a `Hash` value with the convenient `@json:` decoder:
@@ -2357,7 +2397,7 @@ The option `invalid_characters` allows specifying a replacement character for a
2357
2397
 
2358
2398
  The first character specifies the replacement character, and the following characters are the invalid ones.
2359
2399
  This is used when a folder or file is created from a value that potentially contains invalid characters.
2360
- For example, using the option `package_folder`.
2400
+ For example, using the option `package_folder`, a package name may contain characters not allowed, such as `/`.
2361
2401
  The default value is `_<>:"/\|?*`, corresponding to replacement character `_` and characters not allowed on Windows.
2362
2402
 
2363
2403
  > [!NOTE]
@@ -2551,7 +2591,7 @@ detect https://tst.example.com/path httpgw
2551
2591
  detect my_org aoc
2552
2592
  doc
2553
2593
  doc transfer-parameters
2554
- echo '<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50" fill="#006699"/></svg>' --format=image
2594
+ echo '<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50" fill="#069"/></svg>' --format=image --image.text=true
2555
2595
  echo -- --special-string
2556
2596
  echo @base64:SGVsbG8gV29ybGQK
2557
2597
  echo @csvt:@stdin:
@@ -2561,7 +2601,7 @@ echo @json:'[{"user":{"id":1,"name":"foo"},"project":"bar"}]' --multi-single=yes
2561
2601
  echo @lines:@stdin:
2562
2602
  echo @list:,1,2,3
2563
2603
  echo @secret:
2564
- echo @stdbin:
2604
+ echo @stdin:bin
2565
2605
  echo @uri:/etc/hosts
2566
2606
  echo @uri:file:/etc/hosts
2567
2607
  echo @uri:http://ifconfig.me
@@ -2591,6 +2631,8 @@ preset delete conf_name
2591
2631
  preset initialize conf_name @json:'{"p1":"v1","p2":"v2"}'
2592
2632
  preset list
2593
2633
  preset overview
2634
+ preset set GLOBAL vault @: type=file file=/secure/vault_file
2635
+ preset set GLOBAL vault_password _simple_one_
2594
2636
  preset set GLOBAL version_check_days 0
2595
2637
  preset set conf_name param value
2596
2638
  preset set default shares conf_name
@@ -2608,7 +2650,8 @@ tokens flush
2608
2650
  tokens list
2609
2651
  transferd install
2610
2652
  transferd list
2611
- vault create @json:'{"label":"my_label","password":"my_password_here","description":"my secret"}'
2653
+ vault create @: label=my_label password=my_password_here 'description=my secret'
2654
+ vault delete foo --vault.type=system
2612
2655
  vault delete my_label
2613
2656
  vault info
2614
2657
  vault list
@@ -2923,7 +2966,7 @@ ascli config vault create @json:'{"label":"mylabel","password":"my_password_here
2923
2966
 
2924
2967
  #### Configuration Finder
2925
2968
 
2926
- When a secret is needed by a sub command, the command can search for existing configurations in the configuration file.
2969
+ When a secret is needed by a sub command, the command can search for existing configurations in the configuration file by setting option `secret` to the special value `PRESET`.
2927
2970
 
2928
2971
  The lookup is done by comparing the service URL and username (or access key).
2929
2972
 
@@ -3067,33 +3110,42 @@ Parameter `url` (base URL) defines:
3067
3110
 
3068
3111
  ### Image and video thumbnails
3069
3112
 
3070
- `ascli` can display thumbnails for images and videos in the terminal.
3071
- This is available:
3113
+ `ascli` can display thumbnails for images and videos in the **terminal**, using [iTerm2 inline image protocol](https://iterm2.com/documentation-images.html) or through colorized text.
3114
+
3115
+ This feature can be used:
3072
3116
 
3073
3117
  - In the `thumbnail` command of `node` when using **gen4/access key** API.
3074
3118
  - When using the `show` command of `preview` plugin.
3075
3119
  - `coffee` and `image` commands of `config` plugin.
3076
3120
  - Any displayed value which is a URL to image can be displayed with option `format` set to `image`
3077
3121
 
3078
- The following options can be specified in the option `image`:
3122
+ The following options can be specified in the `image` option:
3079
3123
 
3080
- | Option | Type | Description |
3124
+ | Option | Type | Description |
3081
3125
  |------------|-----------|---------------------------------------------------|
3082
- | reserve | `Integer` | Lines reserved to display a status. |
3083
- | text | `Bool` | Display text instead of image. |
3084
- | double | `Bool` | Display double text resolution (half characters). |
3085
- | font_ratio | `Float` | Font height/width ratio in terminal. |
3126
+ | reserve | `Integer` | Lines reserved to display a status.<br/>Default: `3` |
3127
+ | text | `Bool` | Display text instead of image (iTerm).<br/>Default: `false` |
3128
+ | double | `Bool` | Display double text resolution (half characters).<br/>Default: `true` |
3129
+ | font_ratio | `Float` | Font height/width ratio in terminal.<br/>Default: `2.3` |
3130
+
3131
+ Examples:
3132
+
3133
+ - Display image as colorized text (requires `rmagick`)
3086
3134
 
3087
3135
  ```shell
3088
- ascli config image https://eudemo.asperademo.com/wallpaper.jpg --ui=text --image=@json:'{"text":true}'
3136
+ ascli config image https://eudemo.asperademo.com/wallpaper.jpg --ui=text --image.text=true
3089
3137
  ```
3090
3138
 
3139
+ - Display image from byte stream as image in terminal (requires iTerm2-compatible terminal)
3140
+
3091
3141
  ```shell
3092
- curl -so - https://eudemo.asperademo.com/wallpaper.jpg | ascli config image @stdbin:
3142
+ curl -so - https://eudemo.asperademo.com/wallpaper.jpg | ascli config image @stdin:bin
3093
3143
  ```
3094
3144
 
3145
+ - Display image from file (requires iTerm2-compatible terminal)
3146
+
3095
3147
  ```shell
3096
- echo -n https://eudemo.asperademo.com/wallpaper.jpg | ascli config image @uri:@stdin:
3148
+ ascli config image @stdin:bin < A-team.jpg
3097
3149
  ```
3098
3150
 
3099
3151
  ### Graphical Interactions: Browser and Text Editor
@@ -3193,22 +3245,22 @@ To disable this warning, set the option `warn_insecure` to `no`.
3193
3245
 
3194
3246
  HTTP connection parameters (not `ascp` WSS) can be adjusted using option `http_options`:
3195
3247
 
3196
- | Parameter | Type | Default | Handler |
3248
+ | Parameter | Type | Default | Handler |
3197
3249
  |-------------------------|---------|---------------|---------------|
3198
- | `read_timeout` | `Integer` | `60` | Ruby |
3199
- | `write_timeout` | `Integer` | `60` | Ruby |
3200
- | `open_timeout` | `Integer` | `60` | Ruby |
3201
- | `keep_alive_timeout` | `Integer` | `2` | Ruby |
3202
- | `ssl_options` | `Array` | See below | Ruby |
3203
- | `user_agent` | `Integer` | `ascli` | `ascli` Rest |
3204
- | `download_partial_suffix` | `Integer` | `.http_partial` | `ascli` Rest |
3205
- | `retry_on_error` | `Bool` | `false` | `ascli` Rest |
3206
- | `retry_on_timeout` | `Bool` | `true` | `ascli` Rest |
3207
- | `retry_on_unavailable` | `Bool` | `true` | `ascli` Rest |
3208
- | `retry_max` | `Integer` | `1` | `ascli` Rest |
3209
- | `retry_sleep` | `Integer` | `4` | `ascli` Rest |
3210
- | `token_cache_max_age` | `Integer` | `1800` | `ascli` OAuth |
3211
- | `token_refresh_threshold` | `Integer` | `120` | `ascli` OAuth |
3250
+ | `read_timeout` | `Integer` | `60` | Ruby |
3251
+ | `write_timeout` | `Integer` | `60` | Ruby |
3252
+ | `open_timeout` | `Integer` | `60` | Ruby |
3253
+ | `keep_alive_timeout` | `Integer` | `2` | Ruby |
3254
+ | `ssl_options` | `Array` | See below | Ruby |
3255
+ | `user_agent` | `Integer` | `ascli` | `Rest` class |
3256
+ | `download_partial_suffix` | `Integer` | `.http_partial` | `Rest` class |
3257
+ | `retry_on_error` | `Bool` | `false` | `Rest` class |
3258
+ | `retry_on_timeout` | `Bool` | `true` | `Rest` class |
3259
+ | `retry_on_unavailable` | `Bool` | `true` | `Rest` class |
3260
+ | `retry_max` | `Integer` | `1` | `Rest` class |
3261
+ | `retry_sleep` | `Integer` | `4` | `Rest` class |
3262
+ | `token_cache_max_age` | `Integer` | `1800` | `OAuth` class |
3263
+ | `token_refresh_threshold` | `Integer` | `120` | `OAuth` class |
3212
3264
 
3213
3265
  Time values are in set **seconds** and can be of type either `Integer` or `Float`.
3214
3266
  Default values are the ones of Ruby:
@@ -3396,7 +3448,7 @@ If the path has spaces, read section: [Shell and Command line parsing](#command-
3396
3448
 
3397
3449
  A special value `product:<product name>` can be used for option `ascp_path`.
3398
3450
  It specifies to use `ascp` from the given product name.
3399
- A special valuefor product name is `FIRST`, which means: use the first found.
3451
+ A special value for product name is `FIRST`, which means: use the first found.
3400
3452
 
3401
3453
  Locally installed Aspera products can be listed with:
3402
3454
 
@@ -3538,15 +3590,15 @@ The `transfer_info` option accepts the following optional parameters to control
3538
3590
  | Name | Type | Description |
3539
3591
  |------------------------|-----------|-----------------------------------------------------------------------------|
3540
3592
  | `wss` | `Bool` | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: `true` |
3541
- | `quiet` | `Bool` | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
3542
- | `trusted_certs` | `Array` | List of repositories for trusted certificates. |
3593
+ | `quiet` | `Bool` | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
3594
+ | `trusted_certs` | `Array` | List of repositories for trusted certificates. |
3543
3595
  | `client_ssh_key` | `String` | SSH Keys to use for token-based transfers.<br/>One of: `dsa_rsa`, `rsa`, `per_client`.<br/>Default: `rsa` |
3544
- | `ascp_args` | `Array` | `Array` of strings with native `ascp` arguments.<br/>Default: `[]` |
3596
+ | `ascp_args` | `Array` | `Array` of strings with native `ascp` arguments.<br/>Default: `[]` |
3545
3597
  | `spawn_timeout_sec` | `Float` | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
3546
- | `spawn_delay_sec` | `Float` | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
3598
+ | `spawn_delay_sec` | `Float` | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
3547
3599
  | `multi_incr_udp` | `Bool` | Multi Session<br/>Increment UDP port on multi-session<br/>If `true`, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: `true` on Windows, else `false` |
3548
- | `resume` | `Hash` | Resume parameters. See below. |
3549
- | `resume.iter_max` | `Integer` | Max number of retry on error<br/>Default: `7` |
3600
+ | `resume` | `Hash` | Resume parameters. See below. |
3601
+ | `resume.iter_max` | `Integer` | Max number of retry on error<br/>Default: `7` |
3550
3602
  | `resume.sleep_initial` | `Integer` | First Sleep before retry<br/>Default: `2` |
3551
3603
  | `resume.sleep_factor` | `Integer` | Multiplier of sleep period between attempts<br/>Default: `2` |
3552
3604
  | `resume.sleep_max` | `Integer` | Default: `60` |
@@ -3628,12 +3680,12 @@ In addition to standard methods described in section [File List](#list-of-files-
3628
3680
  ##### Agent: Direct: Management messages
3629
3681
 
3630
3682
  By default, `ascli` gets notification from `ascp` on its management port.
3631
- This can be de-activated with parameter: `monitor=false` of `transfer_info`.
3683
+ This can be disabled with parameter: `monitor=false` of `transfer_info`.
3632
3684
 
3633
- It is also possible to send local messages to this management port.
3685
+ It is also possible to send messages to `ascp` using this management port.
3634
3686
  A typical use is to change the target rate of a running transfer.
3635
3687
 
3636
- The communication is done through a flat JSON file that shall be created in `ascli` config folder as displayed with:
3688
+ The communication is done through a JSON file that shall be created in `ascli`'s config folder as displayed with:
3637
3689
 
3638
3690
  ```shell
3639
3691
  ascli config folder
@@ -3655,6 +3707,11 @@ echo '{"type":"RATE","Rate":300000}' > ~/.aspera/ascli/send_67470
3655
3707
 
3656
3708
  When `ascli` detects this file, it uses it during a transfer and then deletes it.
3657
3709
 
3710
+ > [!NOTE]
3711
+ > The JSON's keys use **snake case**, i.e. lower case with `_` as word separator.
3712
+ > The list of message `type` can be found in `aspera/ascp/management.rb` : `OPERATIONS`.
3713
+ > The list of parameters (capitalized) is `PARAMETERS`.
3714
+
3658
3715
  ##### Agent: Direct: `aspera.conf`: Virtual Links
3659
3716
 
3660
3717
  This agent supports a local configuration file: `aspera.conf` where Virtual links can be configured:
@@ -3662,8 +3719,8 @@ This agent supports a local configuration file: `aspera.conf` where Virtual link
3662
3719
  On a server (HSTS), the following commands can be used to set a global virtual link:
3663
3720
 
3664
3721
  ```shell
3665
- asconfigurator -x 'set_trunk_data;id,1;trunk_name,in;trunk_capacity,45000;trunk_on,true'
3666
- asconfigurator -x 'set_trunk_data;id,2;trunk_name,out;trunk_capacity,45000;trunk_on,true'
3722
+ asconfigurator -x 'set_trunk_data;id,1;trunk_name,in;trunk_capacity,100000;trunk_on,true'
3723
+ asconfigurator -x 'set_trunk_data;id,2;trunk_name,out;trunk_capacity,100000;trunk_on,true'
3667
3724
  asconfigurator -x 'set_node_data;transfer_in_bandwidth_aggregate_trunk_id,1'
3668
3725
  asconfigurator -x 'set_node_data;transfer_out_bandwidth_aggregate_trunk_id,2'
3669
3726
  ```
@@ -3928,7 +3985,18 @@ ascli config ascp info --fields=ts --flat-hash=no
3928
3985
  ```
3929
3986
 
3930
3987
  It is possible to specify `ascp` options when the `transfer` option is set to [`direct`](#agent-direct) using `transfer_info` option parameter: `ascp_args`.
3931
- Example: `--transfer-info=@json:'{"ascp_args":["-l","100m"]}'`.
3988
+ Example:
3989
+
3990
+ ```json
3991
+ --transfer-info=@json:'{"ascp_args":["-l","100m"]}'
3992
+ ```
3993
+
3994
+ Or an equivalent (using dotted expression):
3995
+
3996
+ ```json
3997
+ --transfer-info.ascp_args=@list:' -l 100m'
3998
+ ```
3999
+
3932
4000
  This is especially useful for `ascp` command line parameters not supported in the transfer spec.
3933
4001
 
3934
4002
  The use of a [**transfer-spec**](#transfer-specification) instead of `ascp` command line arguments has the advantage of:
@@ -3990,7 +4058,7 @@ ascli config ascp schema transferd --format=jsonpp
3990
4058
  | cookie | string | Metadata for transfer specified by application.<br/>(env:`ASPERA_SCP_COOKIE`) |
3991
4059
  | create_dir | boolean | Create target directory if it doesn't already exist.<br/>If **all** the following conditions are met, then the `destination_root` specifies a filename instead of destination folder:<br/>- `create_dir` is `false`<br/>- A single source file is given on **command line**<br/>- The target folder specified by `destination_root` does not exist<br/>In all other cases, `destination_root` specifies a folder, and it is created if it does not already exist. I.e. if **any** of those conditions is met:<br/>- `create_dir` is `true`<br/>- Multiple source files are provided<br/>- List of source files are provided in a file (list or pair), default for Node API and `ascli`.<br/>- The target folder exists<br/>(`-d`) |
3992
4060
  | delete_before_transfer | boolean | Before transfer, delete files that exist at the destination but not at the source.<br/>The source and destination arguments must be directories that have matching names.<br/>Objects on the destination that have the same name but different type or size as objects on the source are not deleted.<br/>(`--delete-before-transfer`) |
3993
- | delete_source | boolean | Remove transfered source files after transfer success. Equivalent to `remove_after_transfer` + `remove_empty_directories` + `remove_empty_source_directory`. Take precedence over those.<br/>(A, N, T) |
4061
+ | delete_source | boolean | Remove transferred source files after transfer success. Equivalent to `remove_after_transfer` + `remove_empty_directories` + `remove_empty_source_directory`. Take precedence over those.<br/>(A, N, T) |
3994
4062
  | destination_root | string | Destination root directory. |
3995
4063
  | destination_root_id | string | The file ID of the destination root directory.<br/>Required when using Bearer token auth for the destination node.<br/>(T) |
3996
4064
  | dgram_size | integer | UDP datagram size in bytes.<br/>(`-Z {integer}`) |
@@ -4070,7 +4138,7 @@ ascli config ascp schema transferd --format=jsonpp
4070
4138
  | use_system_ssh | boolean | Use an external `ssh` program instead of the built-in `libssh2` implementation to establish the connection to the remote host. The desired `ssh` program must be in the environment's `PATH`.<br/>To enable debugging of the `ssh` process, supply `-DD` and `--ssh-arg=-vv` arguments to `ascp`.<br/>(A, T)<br/>(`-SSH`) |
4071
4139
  | wss_enabled | boolean | Server has Web Socket service enabled.<br/>(special:`--ws-connect`) |
4072
4140
  | wss_port | integer | TCP port used for Web Socket service feed. |
4073
- | xfer_max_retries | integer | Maximum number of retries, for node API initiated transfers. Shall not exceed aspera.conf `transfer_manager_max_retries` (default 5).<br/>(N) |
4141
+ | xfer_max_retries | integer | Maximum number of retries, for node API initiated transfers. Shall not exceed `aspera.conf` parameter `transfer_manager_max_retries` (default 5).<br/>(N) |
4074
4142
 
4075
4143
  #### Destination folder for transfers
4076
4144
 
@@ -4263,7 +4331,7 @@ When multi-session is used, one separate UDP port is used per session (refer to
4263
4331
 
4264
4332
  #### Content protection
4265
4333
 
4266
- Content protection (Client-Side Encryption at Rest, CSEAR)) ensures that files remain encrypted while stored on the server.
4334
+ Content protection (Client-Side Encryption at REST, CSEAR)) ensures that files remain encrypted while stored on the server.
4267
4335
  With CSEAR, the client encrypts files during upload and decrypts files during download, using a passphrase known only to the users sharing the files.
4268
4336
 
4269
4337
  - Upload: Files are encrypted on the client side before being sent to the server.
@@ -4594,8 +4662,9 @@ ascli server upload "faux:///mydir?file=testfile&count=1000&size=1" --to-folder=
4594
4662
 
4595
4663
  ```text
4596
4664
  ascli -h
4665
+ WARN No config file found. New configuration file: /home/runner/.aspera/ascli/config.yaml
4597
4666
  NAME
4598
- ascli -- a command line tool for Aspera Applications (v4.25.0.pre)
4667
+ ascli -- a command line tool for Aspera Applications (v4.25.0)
4599
4668
 
4600
4669
  SYNOPSIS
4601
4670
  ascli COMMANDS [OPTIONS] [ARGS]
@@ -4617,7 +4686,7 @@ COMMANDS
4617
4686
  OPTIONS
4618
4687
  Options begin with a '-' (minus), and value is provided on command line.
4619
4688
  Special values are supported beginning with special prefix @pfx:, where pfx is one of:
4620
- val, base64, csvt, env, file, uri, json, lines, list, none, path, re, ruby, secret, stdin, stdbin, yaml, zlib, extend, preset, vault,
4689
+ val, base64, csvt, env, file, uri, json, lines, list, none, path, re, ruby, secret, stdin, yaml, zlib, extend, preset, vault,
4621
4690
  Dates format is 'DD-MM-YY HH:MM:SS', or 'now' or '-<num>h'
4622
4691
 
4623
4692
  ARGS
@@ -4640,7 +4709,7 @@ OPTIONS: global
4640
4709
  --bash-comp Generate bash completion for command
4641
4710
  --show-config Display parameters used for the provided action
4642
4711
  -v, --version Display version
4643
- --ui=ENUM Method to start browser: text, [graphical]
4712
+ --ui=ENUM Method to start browser: [text], graphical
4644
4713
  --invalid-characters=VALUE Replacement character and invalid filename characters
4645
4714
  --log-level=ENUM Log level: trace2, trace1, debug, info, [warn], error, fatal, unknown
4646
4715
  --log-format=VALUE Log formatter (Proc, Logger::Formatter)
@@ -4689,15 +4758,38 @@ OPTIONS: global
4689
4758
  --to-folder=VALUE Destination folder for transferred files
4690
4759
  --sources=VALUE How list of transferred files is provided (@args,@ts,Array)
4691
4760
  --src-type=ENUM Type of file list: [list], pair
4692
- --transfer=ENUM Type of transfer agent: desktop, node, [direct], transferd, httpgw, connect
4761
+ --transfer=ENUM Type of transfer agent: httpgw, transferd, node, desktop, [direct], connect
4693
4762
  --transfer-info=VALUE Parameters for transfer agent (Hash)
4694
4763
 
4695
4764
  COMMAND: config
4696
4765
  SUBCOMMANDS: ascp check_update coffee detect documentation download echo email_test file folder gem genkey image initdemo open platform plugins preset proxy_check pubkey remote_certificate smtp_settings sync test tokens transferd vault wizard
4697
4766
 
4698
4767
 
4699
- COMMAND: shares
4700
- SUBCOMMANDS: admin files health
4768
+ COMMAND: httpgw
4769
+ SUBCOMMANDS: health info
4770
+ OPTIONS:
4771
+ --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4772
+
4773
+
4774
+ COMMAND: faspex5
4775
+ SUBCOMMANDS: admin bearer_token gateway health invitations packages postprocessing shared_folders user version
4776
+ OPTIONS:
4777
+ --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4778
+ --username=VALUE User's identifier
4779
+ --password=VALUE User's password
4780
+ --auth=ENUM OAuth type of authentication: web, [jwt], boot
4781
+ --client-id=VALUE OAuth client identifier
4782
+ --client-secret=VALUE OAuth client secret
4783
+ --redirect-uri=VALUE OAuth (Web) redirect URI for web authentication
4784
+ --private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
4785
+ --passphrase=VALUE OAuth (JWT) RSA private key passphrase
4786
+ --box=VALUE Package inbox, either shared inbox name or one of: inbox, inbox_history, inbox_all, inbox_all_history, outbox, outbox_history, pending, pending_history, all or ALL
4787
+ --shared-folder=VALUE Send package with files from shared folder
4788
+ --group-type=ENUM Type of shared box: [shared_inboxes], workgroups
4789
+
4790
+
4791
+ COMMAND: alee
4792
+ SUBCOMMANDS: entitlement health
4701
4793
  OPTIONS:
4702
4794
  --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4703
4795
  --username=VALUE User's identifier
@@ -4718,36 +4810,33 @@ OPTIONS:
4718
4810
  --dynamic-key=VALUE Private key PEM to use for dynamic key auth
4719
4811
 
4720
4812
 
4721
- COMMAND: faspio
4722
- SUBCOMMANDS: bridges health
4813
+ COMMAND: aoc
4814
+ SUBCOMMANDS: admin automation bearer_token files gateway organization packages reminder servers tier_restrictions user
4723
4815
  OPTIONS:
4724
4816
  --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4725
4817
  --username=VALUE User's identifier
4726
4818
  --password=VALUE User's password
4727
- --auth=ENUM OAuth type of authentication: jwt, basic
4819
+ --auth=ENUM OAuth type of authentication: web, [jwt], boot
4728
4820
  --client-id=VALUE OAuth client identifier
4729
- --private-key=VALUE OAuth JWT RSA private key PEM value (prefix file path with @file:)
4730
- --passphrase=VALUE OAuth JWT RSA private key passphrase
4731
-
4732
-
4733
- COMMAND: orchestrator
4734
- SUBCOMMANDS: health info monitors plugins processes workflows workorders workstep
4735
- OPTIONS:
4736
- --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4737
- --username=VALUE User's identifier
4738
- --password=VALUE User's password
4739
- --result=VALUE Specify result value as: 'work_step:parameter'
4740
- --synchronous=ENUM Wait for completion: [no], yes
4741
- --ret-style=ENUM How return type is requested in api: header, [arg], ext
4742
- --auth-style=ENUM Authentication type: arg_pass, [head_basic], apikey
4821
+ --client-secret=VALUE OAuth client secret
4822
+ --redirect-uri=VALUE OAuth (Web) redirect URI for web authentication
4823
+ --private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
4824
+ --passphrase=VALUE OAuth (JWT) RSA private key passphrase
4825
+ --workspace=VALUE Name of workspace
4826
+ --new-user-option=VALUE New user creation option for unknown package recipients (Hash)
4827
+ --validate-metadata=ENUM Validate shared inbox metadata: no, [yes]
4828
+ --package-folder=VALUE Handling of reception of packages in folders (Hash)
4743
4829
 
4744
4830
 
4745
- COMMAND: alee
4746
- SUBCOMMANDS: entitlement health
4831
+ COMMAND: server
4832
+ SUBCOMMANDS: browse cp delete df download du health info ls md5sum mkdir mv rename rm sync upload
4747
4833
  OPTIONS:
4748
4834
  --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4749
4835
  --username=VALUE User's identifier
4750
4836
  --password=VALUE User's password
4837
+ --ssh-keys=VALUE SSH key path list (Array)
4838
+ --passphrase=VALUE SSH private key passphrase
4839
+ --ssh-options=VALUE SSH options (Hash)
4751
4840
 
4752
4841
 
4753
4842
  COMMAND: ats
@@ -4761,56 +4850,6 @@ OPTIONS:
4761
4850
  --region=VALUE Cloud region
4762
4851
 
4763
4852
 
4764
- COMMAND: faspex5
4765
- SUBCOMMANDS: admin bearer_token gateway health invitations packages postprocessing shared_folders user version
4766
- OPTIONS:
4767
- --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4768
- --username=VALUE User's identifier
4769
- --password=VALUE User's password
4770
- --auth=ENUM OAuth type of authentication: web, [jwt], boot
4771
- --client-id=VALUE OAuth client identifier
4772
- --client-secret=VALUE OAuth client secret
4773
- --redirect-uri=VALUE OAuth (Web) redirect URI for web authentication
4774
- --private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
4775
- --passphrase=VALUE OAuth (JWT) RSA private key passphrase
4776
- --scope=VALUE OAuth scope for API calls
4777
- --box=VALUE Package inbox, either shared inbox name or one of: inbox, inbox_history, inbox_all, inbox_all_history, outbox, outbox_history, pending, pending_history, all or ALL
4778
- --shared-folder=VALUE Send package with files from shared folder
4779
- --group-type=ENUM Type of shared box: [shared_inboxes], workgroups
4780
-
4781
-
4782
- COMMAND: cos
4783
- SUBCOMMANDS: node
4784
- OPTIONS:
4785
- --bucket=VALUE Bucket name
4786
- --endpoint=VALUE Storage endpoint (URL)
4787
- --apikey=VALUE Storage API key
4788
- --crn=VALUE Resource instance id (CRN)
4789
- --service-credentials=VALUE IBM Cloud service credentials (Hash)
4790
- --region=VALUE Storage region
4791
- --identity=VALUE Authentication URL (https://iam.cloud.ibm.com/identity)
4792
-
4793
-
4794
- COMMAND: httpgw
4795
- SUBCOMMANDS: health info
4796
- OPTIONS:
4797
- --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4798
-
4799
-
4800
- COMMAND: faspex
4801
- SUBCOMMANDS: address_book dropbox health login_methods me package source v4
4802
- OPTIONS:
4803
- --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4804
- --username=VALUE User's identifier
4805
- --password=VALUE User's password
4806
- --link=VALUE Public link for specific operation
4807
- --delivery-info=VALUE Package delivery information (Hash)
4808
- --remote-source=VALUE Remote source for package send (id or %name:)
4809
- --storage=VALUE Faspex local storage definition (for browsing source)
4810
- --recipient=VALUE Use if recipient is a dropbox (with *)
4811
- --box=ENUM Package box: [inbox], archive, sent
4812
-
4813
-
4814
4853
  COMMAND: preview
4815
4854
  SUBCOMMANDS: check events scan show test trevents
4816
4855
  OPTIONS:
@@ -4846,44 +4885,72 @@ OPTIONS:
4846
4885
  --clips-length=VALUE Mp4: clips: length in seconds of each clips
4847
4886
 
4848
4887
 
4849
- COMMAND: aoc
4850
- SUBCOMMANDS: admin automation bearer_token files gateway organization packages reminder servers tier_restrictions user
4888
+ COMMAND: orchestrator
4889
+ SUBCOMMANDS: health info monitors plugins processes workflows workorders workstep
4851
4890
  OPTIONS:
4852
4891
  --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4853
4892
  --username=VALUE User's identifier
4854
4893
  --password=VALUE User's password
4855
- --auth=ENUM OAuth type of authentication: web, [jwt], boot
4856
- --client-id=VALUE OAuth client identifier
4857
- --client-secret=VALUE OAuth client secret
4858
- --redirect-uri=VALUE OAuth (Web) redirect URI for web authentication
4859
- --private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
4860
- --passphrase=VALUE OAuth (JWT) RSA private key passphrase
4861
- --scope=VALUE OAuth scope for API calls
4862
- --workspace=VALUE Name of workspace
4863
- --new-user-option=VALUE New user creation option for unknown package recipients (Hash)
4864
- --validate-metadata=ENUM Validate shared inbox metadata: no, [yes]
4865
- --package-folder=VALUE Field of package to use as folder name, or @none:
4894
+ --result=VALUE Specify result value as: 'work_step:parameter'
4895
+ --synchronous=ENUM Wait for completion: [no], yes
4896
+ --ret-style=ENUM How return type is requested in api: header, [arg], ext
4897
+ --auth-style=ENUM Authentication type: arg_pass, [head_basic], apikey
4866
4898
 
4867
4899
 
4868
- COMMAND: server
4869
- SUBCOMMANDS: browse cp delete df download du health info ls md5sum mkdir mv rename rm sync upload
4900
+ COMMAND: console
4901
+ SUBCOMMANDS: health transfer
4870
4902
  OPTIONS:
4871
4903
  --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4872
4904
  --username=VALUE User's identifier
4873
4905
  --password=VALUE User's password
4874
- --ssh-keys=VALUE SSH key path list (Array)
4875
- --passphrase=VALUE SSH private key passphrase
4876
- --ssh-options=VALUE SSH options (Hash)
4877
4906
 
4878
4907
 
4879
- COMMAND: console
4880
- SUBCOMMANDS: health transfer
4908
+ COMMAND: shares
4909
+ SUBCOMMANDS: admin files health
4881
4910
  OPTIONS:
4882
4911
  --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4883
4912
  --username=VALUE User's identifier
4884
4913
  --password=VALUE User's password
4885
4914
 
4886
4915
 
4916
+ COMMAND: cos
4917
+ SUBCOMMANDS: node
4918
+ OPTIONS:
4919
+ --bucket=VALUE Bucket name
4920
+ --endpoint=VALUE Storage endpoint (URL)
4921
+ --apikey=VALUE Storage API key
4922
+ --crn=VALUE Resource instance id (CRN)
4923
+ --service-credentials=VALUE IBM Cloud service credentials (Hash)
4924
+ --region=VALUE Storage region
4925
+ --identity=VALUE Authentication URL (https://iam.cloud.ibm.com/identity)
4926
+
4927
+
4928
+ COMMAND: faspio
4929
+ SUBCOMMANDS: bridges health
4930
+ OPTIONS:
4931
+ --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4932
+ --username=VALUE User's identifier
4933
+ --password=VALUE User's password
4934
+ --auth=ENUM OAuth type of authentication: jwt, basic
4935
+ --client-id=VALUE OAuth client identifier
4936
+ --private-key=VALUE OAuth JWT RSA private key PEM value (prefix file path with @file:)
4937
+ --passphrase=VALUE OAuth JWT RSA private key passphrase
4938
+
4939
+
4940
+ COMMAND: faspex
4941
+ SUBCOMMANDS: address_book dropbox health login_methods me package source v4
4942
+ OPTIONS:
4943
+ --url=VALUE URL of application, e.g. https://app.example.com/aspera/app
4944
+ --username=VALUE User's identifier
4945
+ --password=VALUE User's password
4946
+ --link=VALUE Public link for specific operation
4947
+ --delivery-info=VALUE Package delivery information (Hash)
4948
+ --remote-source=VALUE Remote source for package send (id or %name:)
4949
+ --storage=VALUE Faspex local storage definition (for browsing source)
4950
+ --recipient=VALUE Use if recipient is a dropbox (with *)
4951
+ --box=ENUM Package box: [inbox], archive, sent
4952
+
4953
+
4887
4954
  ```
4888
4955
 
4889
4956
  > [!NOTE]
@@ -5261,7 +5328,7 @@ empty
5261
5328
 
5262
5329
  ### Calling AoC APIs from command line
5263
5330
 
5264
- The command `ascli aoc bearer` can be used to generate an OAuth token suitable to call any AoC API (use the `scope` option to change the scope, default is `user:all`).
5331
+ The command `ascli aoc bearer` can be used to generate an OAuth token suitable to call any AoC API.
5265
5332
  This can be useful when a command is not yet available.
5266
5333
 
5267
5334
  Example:
@@ -5928,39 +5995,38 @@ Option `once_only` is supported, see below.
5928
5995
  To download only some files from the package, just add the path of the files on the command line: `[<file> ...]`, see option `sources`.
5929
5996
  By default, all files in the package are downloaded, i.e. `.` is used as the file list.
5930
5997
 
5931
- Option `package_folder` defines the attribute of folder used as destination sub folder in the `to_folder` path (see description earlier).
5932
- The following syntax is supported
5998
+ ##### Option `package_folder`
5933
5999
 
5934
- | Syntax | Description |
5935
- |----------------------|----------------------------------------------------------------------------------------|
5936
- | `@none:` | No subfolder is created, files are downloaded directly into the specified `to_folder`. |
5937
- | `<field>` | A subfolder named after the package's specified field is created inside `to_folder`. |
5938
- | `<field1>+<field2>` | A subfolder named after the combination of two package fields with a `.` is created inside `to_folder`. |
5939
- | `<field1>+<field2>?` | A subfolder named after the package's specified field1 is created, unless it already exists.<br/>Else it falls back to the combination of both fields with `.`. |
6000
+ The option `package_folder` (Hash) allows downloading packages in sub-folders of the `to_folder` path (see description earlier).
6001
+ If this option is not specified (or Hash is empty), then packages are downloaded in the folder specified by the `to_folder` option.
5940
6002
 
5941
- The special value `seq` for `<field2>` will append an incrementing number to the folder name starting at `1`.
5942
- If `?` is used, then the sequence number is used only if the folder already exists.
6003
+ The following fields are supported to define the name of the sub-folder:
5943
6004
 
5944
- Examples:
6005
+ | Field | Type | Description |
6006
+ |-------|---------|---------------------------------------------------------------------------|
6007
+ | none | - | (Default) No subfolder. |
6008
+ | `fld` | `Array` | The package's specified fields (`.`-joined). (max size: 2) |
6009
+ | `seq` | `Bool` | If `true`, add an incrementing number to the folder name starting at `1`. |
6010
+ | `opt` | `Bool` | If `false` (default), then all fields are used.<br/>Else, only if the folder does not already exist. |
6011
+ | `inf` | `Bool` | If `true`, then a file is created (`<ID>.info.json`) with package information (metadata, same information as sidecar file). |
5945
6012
 
5946
- - `id` :
5947
- Subfolder named after package ID.
6013
+ Examples (JSON):
6014
+
6015
+ - `{"fields":["id"]}` :
6016
+ Subfolder is the package ID.
5948
6017
  If the same package is downloaded several times, it will always be placed in the same folder.
5949
- - `name` :
5950
- Subfolder named after package name.
6018
+ - `{"fields":["name"]}` :
6019
+ Subfolder is the package name.
5951
6020
  If two packages with the same name are downloaded, they will be combined in the same folder.
5952
- - `name+id` :
5953
- Subfolder named after the combination of package name and ID.
5954
- - `name+id?` :
5955
- Subfolder named after the package's name is created, unless it already exists.
5956
- Else it falls back to the combination of both fields with `.`.
5957
- - `name+seq?` :
5958
- Subfolder named after the package's name is created, unless it already exists.
5959
- Else it falls back to the combination of name and sequence number.
5960
-
5961
- > [!NOTE]
5962
- > When `<field1>+<field2>?` is used, if two packages are downloaded and have the same fields, they will be downloaded in the same folder.
5963
- > If `name+seq?` is used, if the same package is downloaded multiple times, it will be placed in different folders with a sequence number.
6021
+ - `{"fields":["name","id"]}` :
6022
+ Subfolder is the combination of package name and ID.
6023
+ - `{"fields":["name","id"],"opt":true}` :
6024
+ Subfolder is the package's name is created, unless it already exists.
6025
+ If it exists, then the combination of both fields joined with `.` is used.
6026
+ - `{"fields":["name"],"seq":true,"opt":true}` :
6027
+ Subfolder is the package's name, unless it already exists.
6028
+ If it exists, then the combination of name and sequence number.
6029
+ If the same package is downloaded multiple times, it will be placed in different folders with a sequence number.
5964
6030
 
5965
6031
  ##### Example: Receive all packages from a given shared inbox
5966
6032
 
@@ -6371,6 +6437,7 @@ For instructions, refer to section `find` for plugin `node`.
6371
6437
  > Add `ascli aoc` in front of the following commands:
6372
6438
 
6373
6439
  ```bash
6440
+ admin analytics application_events
6374
6441
  admin analytics files organization '' aoc_transfer_id
6375
6442
  admin analytics transfers organization --query=@json:'{"status":"completed","direction":"receive","limit":2}' --notify-to=my_email_external --notify-template=@ruby:'%Q{From: <%=from_name%> <<%=from_email%>>\nTo: <<%=to%>>\nSubject: <%=ev["files_completed"]%> files received\n\n<%=ev.to_yaml%>}'
6376
6443
  admin analytics transfers users --once-only=yes
@@ -6385,6 +6452,7 @@ admin ats cluster list
6385
6452
  admin ats cluster show --cloud=aws --region=eu-west-1
6386
6453
  admin ats cluster show 1f412ae7-869a-445c-9c05-02ad16813be2
6387
6454
  admin auth_providers list
6455
+ admin bearer_token --display=data
6388
6456
  admin client list
6389
6457
  admin client_access_key list
6390
6458
  admin client_registration_token create @json:'{"data":{"name":"test_client_reg1","client_subject_scopes":["alee","aejd"],"client_subject_enabled":true}}'
@@ -6394,7 +6462,9 @@ admin contact list
6394
6462
  admin dropbox list
6395
6463
  admin dropbox_membership list
6396
6464
  admin group list
6465
+ admin group_membership list --fields=ALL --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
6397
6466
  admin kms_profile list
6467
+ admin node bearer_token %name:my_node_name
6398
6468
  admin node do %name:my_node_name --secret=my_ak_secret browse /
6399
6469
  admin node do %name:my_node_name --secret=my_ak_secret browse /folder_sub --node-cache=no
6400
6470
  admin node do %name:my_node_name --secret=my_ak_secret delete /folder1
@@ -6431,9 +6501,9 @@ automation workflow action wf_id create @json:'{"name":"toto"}'
6431
6501
  automation workflow create @json:'{"name":"test_workflow"}'
6432
6502
  automation workflow delete wf_id
6433
6503
  automation workflow list
6434
- automation workflow list --query=@json:'{"show_org_workflows":"true"}' --scope=admin:all
6504
+ automation workflow list --query=@json:'{"show_org_workflows":"true"}'
6435
6505
  automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id
6436
- bearer_token --display=data --scope=user:all
6506
+ bearer_token --display=data
6437
6507
  files bearer /
6438
6508
  files bearer_token_node / --cache-tokens=no
6439
6509
  files browse /
@@ -6448,9 +6518,9 @@ files delete /testsrc
6448
6518
  files download --to-folder=. testdst/test_file.bin testdst/test_file.bin
6449
6519
  files download --transfer=connect testdst/test_file.bin
6450
6520
  files download --transfer=desktop testdst/test_file.bin
6451
- files find /
6452
- files find / '\.partial$'
6453
- files find / @ruby:'->(f){f["type"].eql?("file")}'
6521
+ files find /sample_video
6522
+ files find /sample_video '\.partial$'
6523
+ files find /sample_video @ruby:'->(f){f["type"].eql?("file")}'
6454
6524
  files mkdir /testsrc
6455
6525
  files modify /some_folder @json:'{"mount_point":false}'
6456
6526
  files permission my_test_folder list
@@ -6470,18 +6540,18 @@ files upload --to-folder=/ test_file.bin --url=my_public_link_folder_no_pass
6470
6540
  files upload --to-folder=/testsrc test_file.bin
6471
6541
  files upload --to-folder=/testsrc test_file.bin test_file.bin
6472
6542
  files v3 info
6473
- gateway @json:'{"url":"https://localhost:12345/aspera/faspex"}'
6543
+ gateway @json:'{"url":"https://localhost:12346/aspera/faspex"}'
6474
6544
  organization
6475
6545
  organization --format=image --fields=background_image_url --ui=text
6476
6546
  organization --url=my_public_link_recv_from_aoc_user
6477
6547
  packages browse package_id3 /
6478
6548
  packages list
6479
6549
  packages list --query=@json:'{"dropbox_name":"my_shared_inbox_name","sort":"-received_at","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false}'
6480
- packages receive ALL --once-only=yes --to-folder=. --lock-port=12345
6481
- packages receive ALL --once-only=yes --to-folder=. --lock-port=12345 --query=@json:'{"dropbox_name":"my_shared_inbox_name","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false,"include_draft":false}' --ts=@json:'{"resume_policy":"sparse_csum","target_rate_kbps":50000}'
6550
+ packages receive ALL --once-only=yes --to-folder=. --lock-port=50101 --package-folder.fld.0=name --package-folder.fld.1=id --package-folder.opt=true
6551
+ packages receive ALL --once-only=yes --to-folder=. --lock-port=50101 --query=@json:'{"dropbox_name":"my_shared_inbox_name","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false,"include_draft":false}' --ts=@json:'{"resume_policy":"sparse_csum","target_rate_kbps":50000}'
6482
6552
  packages receive INIT --once-only=yes --query=@json:'{"dropbox_name":"my_shared_inbox_name"}'
6483
6553
  packages receive package_id3 --to-folder=.
6484
- packages receive package_id3 --to-folder=. / --package-folder=name
6554
+ packages receive package_id3 --to-folder=. /
6485
6555
  packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"package title","recipients":["my_shared_inbox_meta"],"metadata":[{"input_type":"single-text","name":"Project Id","values":["123"]},{"input_type":"single-dropdown","name":"Type","values":["Opt2"]},{"input_type":"multiple-checkbox","name":"CheckThose","values":["Check1","Check2"]},{"input_type":"date","name":"Optional Date","values":["2021-01-13T15:02:00.000Z"]}]}' test_file.bin
6486
6556
  packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"package title","recipients":["my_shared_inbox_meta"],"metadata":{"Project Id":"456","Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' test_file.bin
6487
6557
  packages send --workspace=my_workspace_shared_inbox @json:'{"name":"package title","recipients":["my_shared_inbox_name"]}' test_file.bin
@@ -6513,8 +6583,11 @@ ATS is usable either :
6513
6583
 
6514
6584
  ### IBM Cloud ATS : Creation of API key
6515
6585
 
6586
+ > [!NOTE]
6587
+ > If you are using ATS as part of AoC, then authentication is through AoC, not IBM Cloud.
6588
+ > Refer to the AoC section instead.
6589
+
6516
6590
  This section is about using ATS with an IBM cloud subscription.
6517
- If you are using ATS as part of AoC, then authentication is through AoC, not IBM Cloud.
6518
6591
 
6519
6592
  First get your IBM Cloud API key.
6520
6593
  For instance, it can be created using the IBM Cloud web interface, or using command line:
@@ -6645,6 +6718,7 @@ access_key show ak2ibmcloud
6645
6718
  api_key create
6646
6719
  api_key instances
6647
6720
  api_key list
6721
+ aws_trust_policy --region=us-east-1
6648
6722
  cluster clouds
6649
6723
  cluster list
6650
6724
  cluster show --cloud=aws --region=eu-west-1
@@ -6699,13 +6773,14 @@ sync admin overview /data/local_sync
6699
6773
  sync admin status /data/local_sync
6700
6774
  sync pull my_inside_folder --to-folder=/data/local_sync @json:'{"name":"serv_sync_pull_conf","reset":true,"transport":{"target_rate":my_bps}}'
6701
6775
  sync pull my_inside_folder --to-folder=/data/local_sync @json:'{"name":"serv_sync_pull_conf"}'
6776
+ upload 'faux:///test.bin?1k' --to-folder=my_upload_folder
6702
6777
  upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-list","filelist.txt"]}' --to-folder=my_inside_folder
6703
6778
  upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-pair-list","file_pair_list.txt"]}'
6704
6779
  upload --sources=@ts --ts=@json:'{"paths":[{"source":"test_file.bin","destination":"my_inside_folder/other_name_4"}]}' --transfer=transferd
6705
6780
  upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info.quiet=false --progress=no
6706
- upload --src-type=pair test_file.bin my_inside_folder/other_name_2 --notify-to=my_email_external --transfer-info=@json:'{"ascp_args":["-l","100m"]}'
6707
- upload --src-type=pair test_file.bin my_upload_folder/other_name_5 --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"my_secret_here","cookie":"biscuit","create_dir":true,"delete_before_transfer":false,"delete_source":false,"exclude_newer_than":"-1","exclude_older_than":"-10000","fasp_port":33001,"http_fallback":false,"multi_session":0,"overwrite":"diff+older","precalculate_job_size":true,"preserve_access_time":true,"preserve_creation_time":true,"rate_policy":"fair","resume_policy":"sparse_csum","symlink_policy":"follow"}'
6708
- upload --to-folder=my_upload_folder/target_hot --lock-port=12345 --transfer-info=@json:'{"ascp_args":["--remove-after-transfer","--remove-empty-directories","--exclude-newer-than=-8","--src-base","source_hot"]}' source_hot
6781
+ upload --src-type=pair test_file.bin my_inside_folder/other_name_2 --notify-to=my_email_external '--transfer-info.ascp_args=@list: -l 100m'
6782
+ upload --src-type=pair test_file.bin my_upload_folder/other_name_5 --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"my_secret_here","cookie":"biscuit","create_dir":true,"delete_before_transfer":false,"delete_source":false,"exclude_newer_than":"-1","exclude_older_than":"-10000","fasp_port":33001,"http_fallback":false,"multi_session":0,"overwrite":"diff+older","precalculate_job_size":true,"preserve_access_time":true,"preserve_creation_time":true,"rate_policy":"fair","resume_policy":"sparse_csum"}'
6783
+ upload --to-folder=my_upload_folder/target_hot --lock-port=50101 --transfer-info=@json:'{"ascp_args":["--remove-after-transfer","--remove-empty-directories","--exclude-newer-than=-8","--src-base","hot_folder"]}' hot_folder
6709
6784
  upload test_file.bin --to-folder=my_inside_folder --ts=@json:'{"multi_session":3,"multi_session_threshold":1,"resume_policy":"none","target_rate_kbps":100000}' --transfer-info=@json:'{"spawn_delay_sec":2.5,"multi_incr_udp":false}' --progress-bar=yes
6710
6785
  ```
6711
6786
 
@@ -7253,20 +7328,21 @@ ascli node -N --url=https://... --password="Bearer $(cat bearer.txt)" --root-id=
7253
7328
  --url=https://tst.example.com/path --password='Bearer node_bearer_token' --root-id=bearer_root_id access_key do self browse /
7254
7329
  access_key create @json:'{"id":"my_username","secret":"my_password_here","storage":{"type":"local","path":"/"}}'
7255
7330
  access_key delete my_username
7256
- access_key do my_ak_name browse /
7257
- access_key do my_ak_name delete /test_nd_ak2
7258
- access_key do my_ak_name delete test_nd_ak3
7259
- access_key do my_ak_name download test_nd_ak3 --to-folder=.
7260
- access_key do my_ak_name find my_test_folder
7261
- access_key do my_ak_name find my_test_folder @re:'\.jpg$'
7331
+ access_key do my_ak_name browse / --secret=my_ak_secret
7332
+ access_key do my_ak_name delete /test_nd_ak2 --secret=my_ak_secret
7333
+ access_key do my_ak_name delete test_nd_ak3 --secret=my_ak_secret
7334
+ access_key do my_ak_name download test_nd_ak3 --to-folder=. --secret=my_ak_secret
7335
+ access_key do my_ak_name find my_test_folder --secret=my_ak_secret
7336
+ access_key do my_ak_name find my_test_folder @re:'\.jpg$' --secret=my_ak_secret
7262
7337
  access_key do my_ak_name find my_test_folder @ruby:'->(f){f["name"].end_with?(".jpg")}'
7263
- access_key do my_ak_name mkdir /tst_nd_ak
7264
- access_key do my_ak_name mkfile /mkfile.txt 'hello world'
7265
- access_key do my_ak_name mklink /mklink.txt --query=@json:'{"target":"/mkfile.txt","target_node_id":"123"}'
7266
- access_key do my_ak_name node_info /
7267
- access_key do my_ak_name rename /tst_nd_ak test_nd_ak2
7268
- access_key do my_ak_name show %id:1
7269
- access_key do my_ak_name upload 'faux:///test_nd_ak3?100k' --default-ports=no
7338
+ --secret=my_ak_secret
7339
+ access_key do my_ak_name mkdir /tst_nd_ak --secret=my_ak_secret
7340
+ access_key do my_ak_name mkfile /mkfile.txt 'hello world' --secret=my_ak_secret
7341
+ access_key do my_ak_name mklink /mklink.txt --query=@json:'{"target":"/mkfile.txt","target_node_id":"123"}' --secret=my_ak_secret
7342
+ access_key do my_ak_name node_info / --secret=my_ak_secret
7343
+ access_key do my_ak_name rename /tst_nd_ak test_nd_ak2 --secret=my_ak_secret
7344
+ access_key do my_ak_name show %id:1 --secret=my_ak_secret
7345
+ access_key do my_ak_name upload 'faux:///test_nd_ak3?100k' --default-ports=no --secret=my_ak_secret
7270
7346
  access_key do self permission %id:bearer_root_id create @json:'{"access_type":"user","access_id":"666"}'
7271
7347
  access_key do self permission / delete 1
7272
7348
  access_key do self permission / show 1
@@ -7639,7 +7715,7 @@ packages show --box=my_workgroup --group-type=workgroups workgroup_package_id1
7639
7715
  packages show f5_package_id
7640
7716
  packages status f5_p3a @list:,failed,completed
7641
7717
  packages status f5_package_id
7642
- postprocessing @json:'{"url":"https://localhost:8553/asclihook","script_folder":"$(TST)","cert":"$(TMP / "localhost.p12")","key":"changeit"}'
7718
+ postprocessing @json:'{"url":"https://localhost:8553/asclihook","script_folder":"$(PATH_SCRIPTS)","cert":"$(TMP / "localhost.p12")","key":"changeit"}'
7643
7719
  shared browse %name:my_src
7644
7720
  shared list
7645
7721
  shared_folders browse %name:my_shared_folder_name
@@ -8246,12 +8322,12 @@ health
8246
8322
  login_methods
8247
8323
  me
8248
8324
  package list --query.max=5
8249
- package receive ALL --once-only=yes --to-folder=. --query=@json:'{"max":10}'
8250
- package receive f4_db1c --recipient='*my_dbx' --to-folder=.
8251
- package receive f4_db1g --recipient='*my_wkg' --to-folder=.
8252
- package receive f4_pria --to-folder=.
8253
- package receive f4_prs --to-folder=.
8254
- package receive f4_prsc --to-folder=. --box=sent
8325
+ package receive ALL --once-only=yes --to-folder=. --query.max=10
8326
+ package receive f4_package_id --to-folder=.
8327
+ package receive f4_package_id2 --to-folder=. --box=sent
8328
+ package receive f4_package_id3 --to-folder=.
8329
+ package receive f4_package_id4 --recipient='*my_dbx' --to-folder=.
8330
+ package receive f4_package_id5 --recipient='*my_wkg' --to-folder=.
8255
8331
  package send --delivery-info=@json:'{"title":"package title","recipients":["my_email_internal","my_username"]}' test_file.bin
8256
8332
  package send --delivery-info=@json:'{"title":"package title","recipients":["my_email_internal"]}' --remote-source=%name:my_src sample_source.txt
8257
8333
  package send --delivery-info=@json:'{"title":"package title","recipients":[*my_dbx]}' test_file.bin
@@ -8375,16 +8451,26 @@ transfer smart sub my_smart_id @: source.paths.0=my_smart_file source_type=user_
8375
8451
  ```bash
8376
8452
  health
8377
8453
  info
8454
+ monitors
8378
8455
  plugins
8379
8456
  processes
8380
8457
  workflow details my_workflow_id
8381
8458
  workflow export my_workflow_id
8382
8459
  workflow inputs my_workflow_id
8383
8460
  workflow list
8461
+ workflow outputs my_workflow_id
8384
8462
  workflow start my_workflow_id @json:'{"Param":"world !"}'
8385
8463
  workflow start my_workflow_id @json:'{"Param":"world !"}' --result=ResultStep:Complete_status_message
8386
8464
  workflow status ALL
8387
8465
  workflow status my_workflow_id
8466
+ workflow workorders my_workflow_id
8467
+ workflow workorders my_workflow_id --fields=id --query.max_results=1
8468
+ workorder cancel orch_workorder_id
8469
+ workorder output orch_workorder_id
8470
+ workorder reset orch_workorder_id
8471
+ workorder status orch_workorder_id
8472
+ workstep cancel 1
8473
+ workstep status 1
8388
8474
  ```
8389
8475
 
8390
8476
  ## Plugin: `cos`: IBM Cloud Object Storage
@@ -8946,7 +9032,7 @@ Some `sync` parameters are filled by the related plugin using transfer spec para
8946
9032
 
8947
9033
  > [!NOTE]
8948
9034
  > All `sync` commands require an `async` enabled license and availability of the `async` executable (and `asyncadmin`).
8949
- >The Aspera Transfer Daemon 1.3+ includes this.
9035
+ > The Aspera Transfer Daemon 1.3+ includes this.
8950
9036
 
8951
9037
  ### Starting a sync session
8952
9038
 
@@ -8969,7 +9055,7 @@ An optional positional `Hash` argument (`sync_info`) can be provided in either `
8969
9055
 
8970
9056
  A single session can be specified using either formats.
8971
9057
 
8972
- If argument `<sync_info>` is not provided, then a default configuration is generated in the `conf` format as specified in the next sectin.
9058
+ If argument `<sync_info>` is not provided, then a default configuration is generated in the `conf` format as specified in the next section.
8973
9059
 
8974
9060
  If argument `<sync_info>` is provided, it defines the format to use.
8975
9061
  If parameter `sessions` or `instance` is present, then `args` is used, else `conf` is used.