aspera-cli 4.25.0.pre2 → 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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +3 -0
- data/CONTRIBUTING.md +60 -18
- data/README.md +164 -133
- data/lib/aspera/agent/factory.rb +9 -6
- data/lib/aspera/agent/transferd.rb +4 -4
- data/lib/aspera/api/aoc.rb +33 -24
- data/lib/aspera/api/ats.rb +1 -0
- data/lib/aspera/api/faspex.rb +11 -5
- data/lib/aspera/ascmd.rb +1 -1
- data/lib/aspera/ascp/installation.rb +5 -5
- data/lib/aspera/cli/formatter.rb +15 -62
- data/lib/aspera/cli/manager.rb +8 -42
- data/lib/aspera/cli/plugins/aoc.rb +48 -30
- data/lib/aspera/cli/plugins/ats.rb +30 -36
- data/lib/aspera/cli/plugins/base.rb +6 -6
- data/lib/aspera/cli/plugins/config.rb +5 -4
- data/lib/aspera/cli/plugins/faspex.rb +5 -3
- data/lib/aspera/cli/plugins/faspex5.rb +10 -8
- data/lib/aspera/cli/plugins/faspio.rb +3 -1
- data/lib/aspera/cli/plugins/node.rb +9 -6
- data/lib/aspera/cli/plugins/oauth.rb +12 -11
- data/lib/aspera/cli/plugins/preview.rb +2 -2
- data/lib/aspera/cli/transfer_agent.rb +1 -2
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +5 -5
- data/lib/aspera/dot_container.rb +108 -0
- data/lib/aspera/id_generator.rb +7 -10
- data/lib/aspera/oauth/base.rb +25 -38
- data/lib/aspera/oauth/factory.rb +5 -6
- data/lib/aspera/oauth/generic.rb +1 -1
- data/lib/aspera/oauth/jwt.rb +1 -1
- data/lib/aspera/oauth/url_json.rb +4 -3
- data/lib/aspera/oauth/web.rb +2 -2
- data/lib/aspera/preview/file_types.rb +1 -1
- data/lib/aspera/rest.rb +5 -2
- data/lib/aspera/ssh.rb +6 -5
- data/lib/aspera/sync/conf.schema.yaml +2 -2
- data/lib/aspera/transfer/parameters.rb +6 -6
- data/lib/aspera/transfer/spec.schema.yaml +3 -3
- data/lib/aspera/transfer/spec_doc.rb +11 -21
- data/lib/aspera/uri_reader.rb +17 -3
- data.tar.gz.sig +0 -0
- metadata +2 -1
- 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
|
|
5
|
+
subtitle: "ascli 4.25.0"
|
|
6
6
|
author: "Laurent MARTIN"
|
|
7
7
|
PANDOC_META_END
|
|
8
8
|
-->
|
|
@@ -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
|
|
45
|
+
Version : 4.25.0
|
|
46
46
|
|
|
47
47
|
Laurent/2016-2026
|
|
48
48
|
|
|
@@ -139,7 +139,7 @@ ascli --version
|
|
|
139
139
|
```
|
|
140
140
|
|
|
141
141
|
```text
|
|
142
|
-
4.25.0
|
|
142
|
+
4.25.0
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
> [!NOTE]
|
|
@@ -592,33 +592,57 @@ Those are not installed as part of dependencies because they involve compilation
|
|
|
592
592
|
See [Gemfile](Gemfile):
|
|
593
593
|
|
|
594
594
|
| name | version | comment |
|
|
595
|
-
|
|
595
|
+
|----------------------|----------|-----------------------------------------------------|
|
|
596
596
|
| grpc | ~> 1.71 | (no jruby) for Aspera Transfer Daemon |
|
|
597
597
|
| marcel | ~> 1.1 | for preview |
|
|
598
|
-
| rmagick | ~> 6.1 | (no jruby) for terminal view |
|
|
599
598
|
| symmetric-encryption | ~> 4.6 | for encrypted hash file secrets |
|
|
600
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 |
|
|
601
601
|
| sqlite3 | ~> 2.7 | (no jruby) for async DB |
|
|
602
602
|
| jdbc-sqlite3 | ~> 3.46 | (jruby) for async DB |
|
|
603
603
|
| sequel | ~> 5.96 | (jruby) for async DB |
|
|
604
604
|
| ed25519 | ~> 1.4 | (no jruby) for ed25519 and OpenSSH file format |
|
|
605
605
|
| bcrypt_pbkdf | ~> 1.1 | (no jruby) for ed25519 and OpenSSH file format |
|
|
606
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) |
|
|
607
619
|
|
|
608
620
|
Install like this:
|
|
609
621
|
|
|
610
622
|
```shell
|
|
611
623
|
gem install grpc -v '~> 1.71'
|
|
612
624
|
gem install marcel -v '~> 1.1'
|
|
613
|
-
gem install rmagick -v '~> 6.1'
|
|
614
625
|
gem install symmetric-encryption -v '~> 4.6'
|
|
615
626
|
gem install bigdecimal -v '~> 3.1'
|
|
627
|
+
gem install base64 -v '~> 0.3'
|
|
616
628
|
gem install sqlite3 -v '~> 2.7'
|
|
617
629
|
gem install jdbc-sqlite3 -v '~> 3.46'
|
|
618
630
|
gem install sequel -v '~> 5.96'
|
|
619
631
|
gem install ed25519 -v '~> 1.4'
|
|
620
632
|
gem install bcrypt_pbkdf -v '~> 1.1'
|
|
621
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'
|
|
622
646
|
```
|
|
623
647
|
|
|
624
648
|
### Ruby Gem: `aspera-cli`
|
|
@@ -626,7 +650,7 @@ gem install syslog -v '~> 0.3'
|
|
|
626
650
|
Once you have Ruby and rights to install gems, install the `aspera-cli` gem and its dependencies:
|
|
627
651
|
|
|
628
652
|
```shell
|
|
629
|
-
gem install aspera-cli
|
|
653
|
+
gem install aspera-cli
|
|
630
654
|
```
|
|
631
655
|
|
|
632
656
|
To upgrade to the latest version:
|
|
@@ -782,11 +806,11 @@ Necessary gems can be packed in a `tar.gz` like this:
|
|
|
782
806
|
|
|
783
807
|
```bash
|
|
784
808
|
mkdir temp_folder
|
|
785
|
-
gem install aspera-cli:4.25.0
|
|
809
|
+
gem install aspera-cli:4.25.0 --no-document --install-dir temp_folder
|
|
786
810
|
find temp_folder
|
|
787
|
-
mv temp_folder/cache aspera-cli-4.25.0
|
|
811
|
+
mv temp_folder/cache aspera-cli-4.25.0-gems
|
|
788
812
|
rm -fr temp_folder
|
|
789
|
-
tar zcvf aspera-cli-4.25.0
|
|
813
|
+
tar zcvf aspera-cli-4.25.0-gems aspera-cli-4.25.0-gems.tgz
|
|
790
814
|
```
|
|
791
815
|
|
|
792
816
|
#### Unix-like
|
|
@@ -931,7 +955,7 @@ ascli -v
|
|
|
931
955
|
```
|
|
932
956
|
|
|
933
957
|
```text
|
|
934
|
-
4.25.0
|
|
958
|
+
4.25.0
|
|
935
959
|
```
|
|
936
960
|
|
|
937
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.
|
|
@@ -2607,6 +2631,8 @@ preset delete conf_name
|
|
|
2607
2631
|
preset initialize conf_name @json:'{"p1":"v1","p2":"v2"}'
|
|
2608
2632
|
preset list
|
|
2609
2633
|
preset overview
|
|
2634
|
+
preset set GLOBAL vault @: type=file file=/secure/vault_file
|
|
2635
|
+
preset set GLOBAL vault_password _simple_one_
|
|
2610
2636
|
preset set GLOBAL version_check_days 0
|
|
2611
2637
|
preset set conf_name param value
|
|
2612
2638
|
preset set default shares conf_name
|
|
@@ -2624,7 +2650,8 @@ tokens flush
|
|
|
2624
2650
|
tokens list
|
|
2625
2651
|
transferd install
|
|
2626
2652
|
transferd list
|
|
2627
|
-
vault create
|
|
2653
|
+
vault create @: label=my_label password=my_password_here 'description=my secret'
|
|
2654
|
+
vault delete foo --vault.type=system
|
|
2628
2655
|
vault delete my_label
|
|
2629
2656
|
vault info
|
|
2630
2657
|
vault list
|
|
@@ -2939,7 +2966,7 @@ ascli config vault create @json:'{"label":"mylabel","password":"my_password_here
|
|
|
2939
2966
|
|
|
2940
2967
|
#### Configuration Finder
|
|
2941
2968
|
|
|
2942
|
-
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`.
|
|
2943
2970
|
|
|
2944
2971
|
The lookup is done by comparing the service URL and username (or access key).
|
|
2945
2972
|
|
|
@@ -4031,7 +4058,7 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
4031
4058
|
| cookie | string | Metadata for transfer specified by application.<br/>(env:`ASPERA_SCP_COOKIE`) |
|
|
4032
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`) |
|
|
4033
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`) |
|
|
4034
|
-
| delete_source | boolean | Remove
|
|
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) |
|
|
4035
4062
|
| destination_root | string | Destination root directory. |
|
|
4036
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) |
|
|
4037
4064
|
| dgram_size | integer | UDP datagram size in bytes.<br/>(`-Z {integer}`) |
|
|
@@ -4635,8 +4662,9 @@ ascli server upload "faux:///mydir?file=testfile&count=1000&size=1" --to-folder=
|
|
|
4635
4662
|
|
|
4636
4663
|
```text
|
|
4637
4664
|
ascli -h
|
|
4665
|
+
WARN No config file found. New configuration file: /home/runner/.aspera/ascli/config.yaml
|
|
4638
4666
|
NAME
|
|
4639
|
-
ascli -- a command line tool for Aspera Applications (v4.25.0
|
|
4667
|
+
ascli -- a command line tool for Aspera Applications (v4.25.0)
|
|
4640
4668
|
|
|
4641
4669
|
SYNOPSIS
|
|
4642
4670
|
ascli COMMANDS [OPTIONS] [ARGS]
|
|
@@ -4681,7 +4709,7 @@ OPTIONS: global
|
|
|
4681
4709
|
--bash-comp Generate bash completion for command
|
|
4682
4710
|
--show-config Display parameters used for the provided action
|
|
4683
4711
|
-v, --version Display version
|
|
4684
|
-
--ui=ENUM Method to start browser: text,
|
|
4712
|
+
--ui=ENUM Method to start browser: [text], graphical
|
|
4685
4713
|
--invalid-characters=VALUE Replacement character and invalid filename characters
|
|
4686
4714
|
--log-level=ENUM Log level: trace2, trace1, debug, info, [warn], error, fatal, unknown
|
|
4687
4715
|
--log-format=VALUE Log formatter (Proc, Logger::Formatter)
|
|
@@ -4730,15 +4758,38 @@ OPTIONS: global
|
|
|
4730
4758
|
--to-folder=VALUE Destination folder for transferred files
|
|
4731
4759
|
--sources=VALUE How list of transferred files is provided (@args,@ts,Array)
|
|
4732
4760
|
--src-type=ENUM Type of file list: [list], pair
|
|
4733
|
-
--transfer=ENUM Type of transfer agent:
|
|
4761
|
+
--transfer=ENUM Type of transfer agent: httpgw, transferd, node, desktop, [direct], connect
|
|
4734
4762
|
--transfer-info=VALUE Parameters for transfer agent (Hash)
|
|
4735
4763
|
|
|
4736
4764
|
COMMAND: config
|
|
4737
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
|
|
4738
4766
|
|
|
4739
4767
|
|
|
4740
|
-
COMMAND:
|
|
4741
|
-
SUBCOMMANDS:
|
|
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
|
|
4742
4793
|
OPTIONS:
|
|
4743
4794
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4744
4795
|
--username=VALUE User's identifier
|
|
@@ -4759,36 +4810,33 @@ OPTIONS:
|
|
|
4759
4810
|
--dynamic-key=VALUE Private key PEM to use for dynamic key auth
|
|
4760
4811
|
|
|
4761
4812
|
|
|
4762
|
-
COMMAND:
|
|
4763
|
-
SUBCOMMANDS:
|
|
4813
|
+
COMMAND: aoc
|
|
4814
|
+
SUBCOMMANDS: admin automation bearer_token files gateway organization packages reminder servers tier_restrictions user
|
|
4764
4815
|
OPTIONS:
|
|
4765
4816
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4766
4817
|
--username=VALUE User's identifier
|
|
4767
4818
|
--password=VALUE User's password
|
|
4768
|
-
--auth=ENUM OAuth type of authentication: jwt,
|
|
4819
|
+
--auth=ENUM OAuth type of authentication: web, [jwt], boot
|
|
4769
4820
|
--client-id=VALUE OAuth client identifier
|
|
4770
|
-
--
|
|
4771
|
-
--
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
--
|
|
4778
|
-
--username=VALUE User's identifier
|
|
4779
|
-
--password=VALUE User's password
|
|
4780
|
-
--result=VALUE Specify result value as: 'work_step:parameter'
|
|
4781
|
-
--synchronous=ENUM Wait for completion: [no], yes
|
|
4782
|
-
--ret-style=ENUM How return type is requested in api: header, [arg], ext
|
|
4783
|
-
--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)
|
|
4784
4829
|
|
|
4785
4830
|
|
|
4786
|
-
COMMAND:
|
|
4787
|
-
SUBCOMMANDS:
|
|
4831
|
+
COMMAND: server
|
|
4832
|
+
SUBCOMMANDS: browse cp delete df download du health info ls md5sum mkdir mv rename rm sync upload
|
|
4788
4833
|
OPTIONS:
|
|
4789
4834
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4790
4835
|
--username=VALUE User's identifier
|
|
4791
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)
|
|
4792
4840
|
|
|
4793
4841
|
|
|
4794
4842
|
COMMAND: ats
|
|
@@ -4802,56 +4850,6 @@ OPTIONS:
|
|
|
4802
4850
|
--region=VALUE Cloud region
|
|
4803
4851
|
|
|
4804
4852
|
|
|
4805
|
-
COMMAND: faspex5
|
|
4806
|
-
SUBCOMMANDS: admin bearer_token gateway health invitations packages postprocessing shared_folders user version
|
|
4807
|
-
OPTIONS:
|
|
4808
|
-
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4809
|
-
--username=VALUE User's identifier
|
|
4810
|
-
--password=VALUE User's password
|
|
4811
|
-
--auth=ENUM OAuth type of authentication: web, [jwt], boot
|
|
4812
|
-
--client-id=VALUE OAuth client identifier
|
|
4813
|
-
--client-secret=VALUE OAuth client secret
|
|
4814
|
-
--redirect-uri=VALUE OAuth (Web) redirect URI for web authentication
|
|
4815
|
-
--private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
|
|
4816
|
-
--passphrase=VALUE OAuth (JWT) RSA private key passphrase
|
|
4817
|
-
--scope=VALUE OAuth scope for API calls
|
|
4818
|
-
--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
|
|
4819
|
-
--shared-folder=VALUE Send package with files from shared folder
|
|
4820
|
-
--group-type=ENUM Type of shared box: [shared_inboxes], workgroups
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
COMMAND: cos
|
|
4824
|
-
SUBCOMMANDS: node
|
|
4825
|
-
OPTIONS:
|
|
4826
|
-
--bucket=VALUE Bucket name
|
|
4827
|
-
--endpoint=VALUE Storage endpoint (URL)
|
|
4828
|
-
--apikey=VALUE Storage API key
|
|
4829
|
-
--crn=VALUE Resource instance id (CRN)
|
|
4830
|
-
--service-credentials=VALUE IBM Cloud service credentials (Hash)
|
|
4831
|
-
--region=VALUE Storage region
|
|
4832
|
-
--identity=VALUE Authentication URL (https://iam.cloud.ibm.com/identity)
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
COMMAND: httpgw
|
|
4836
|
-
SUBCOMMANDS: health info
|
|
4837
|
-
OPTIONS:
|
|
4838
|
-
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
COMMAND: faspex
|
|
4842
|
-
SUBCOMMANDS: address_book dropbox health login_methods me package source v4
|
|
4843
|
-
OPTIONS:
|
|
4844
|
-
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4845
|
-
--username=VALUE User's identifier
|
|
4846
|
-
--password=VALUE User's password
|
|
4847
|
-
--link=VALUE Public link for specific operation
|
|
4848
|
-
--delivery-info=VALUE Package delivery information (Hash)
|
|
4849
|
-
--remote-source=VALUE Remote source for package send (id or %name:)
|
|
4850
|
-
--storage=VALUE Faspex local storage definition (for browsing source)
|
|
4851
|
-
--recipient=VALUE Use if recipient is a dropbox (with *)
|
|
4852
|
-
--box=ENUM Package box: [inbox], archive, sent
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
4853
|
COMMAND: preview
|
|
4856
4854
|
SUBCOMMANDS: check events scan show test trevents
|
|
4857
4855
|
OPTIONS:
|
|
@@ -4887,42 +4885,70 @@ OPTIONS:
|
|
|
4887
4885
|
--clips-length=VALUE Mp4: clips: length in seconds of each clips
|
|
4888
4886
|
|
|
4889
4887
|
|
|
4890
|
-
COMMAND:
|
|
4891
|
-
SUBCOMMANDS:
|
|
4888
|
+
COMMAND: orchestrator
|
|
4889
|
+
SUBCOMMANDS: health info monitors plugins processes workflows workorders workstep
|
|
4892
4890
|
OPTIONS:
|
|
4893
4891
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4894
4892
|
--username=VALUE User's identifier
|
|
4895
4893
|
--password=VALUE User's password
|
|
4896
|
-
--
|
|
4897
|
-
--
|
|
4898
|
-
--
|
|
4899
|
-
--
|
|
4900
|
-
--private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
|
|
4901
|
-
--passphrase=VALUE OAuth (JWT) RSA private key passphrase
|
|
4902
|
-
--scope=VALUE OAuth scope for API calls
|
|
4903
|
-
--workspace=VALUE Name of workspace
|
|
4904
|
-
--new-user-option=VALUE New user creation option for unknown package recipients (Hash)
|
|
4905
|
-
--validate-metadata=ENUM Validate shared inbox metadata: no, [yes]
|
|
4906
|
-
--package-folder=VALUE Handling of reception of packages in folders (Hash)
|
|
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
|
|
4907
4898
|
|
|
4908
4899
|
|
|
4909
|
-
COMMAND:
|
|
4910
|
-
SUBCOMMANDS:
|
|
4900
|
+
COMMAND: console
|
|
4901
|
+
SUBCOMMANDS: health transfer
|
|
4911
4902
|
OPTIONS:
|
|
4912
4903
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4913
4904
|
--username=VALUE User's identifier
|
|
4914
4905
|
--password=VALUE User's password
|
|
4915
|
-
--ssh-keys=VALUE SSH key path list (Array)
|
|
4916
|
-
--passphrase=VALUE SSH private key passphrase
|
|
4917
|
-
--ssh-options=VALUE SSH options (Hash)
|
|
4918
4906
|
|
|
4919
4907
|
|
|
4920
|
-
COMMAND:
|
|
4921
|
-
SUBCOMMANDS: health
|
|
4908
|
+
COMMAND: shares
|
|
4909
|
+
SUBCOMMANDS: admin files health
|
|
4910
|
+
OPTIONS:
|
|
4911
|
+
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4912
|
+
--username=VALUE User's identifier
|
|
4913
|
+
--password=VALUE User's password
|
|
4914
|
+
|
|
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
|
|
4922
4930
|
OPTIONS:
|
|
4923
4931
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4924
4932
|
--username=VALUE User's identifier
|
|
4925
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
|
|
4926
4952
|
|
|
4927
4953
|
|
|
4928
4954
|
```
|
|
@@ -5302,7 +5328,7 @@ empty
|
|
|
5302
5328
|
|
|
5303
5329
|
### Calling AoC APIs from command line
|
|
5304
5330
|
|
|
5305
|
-
The command `ascli aoc bearer` can be used to generate an OAuth token suitable to call any AoC API
|
|
5331
|
+
The command `ascli aoc bearer` can be used to generate an OAuth token suitable to call any AoC API.
|
|
5306
5332
|
This can be useful when a command is not yet available.
|
|
5307
5333
|
|
|
5308
5334
|
Example:
|
|
@@ -6426,6 +6452,7 @@ admin ats cluster list
|
|
|
6426
6452
|
admin ats cluster show --cloud=aws --region=eu-west-1
|
|
6427
6453
|
admin ats cluster show 1f412ae7-869a-445c-9c05-02ad16813be2
|
|
6428
6454
|
admin auth_providers list
|
|
6455
|
+
admin bearer_token --display=data
|
|
6429
6456
|
admin client list
|
|
6430
6457
|
admin client_access_key list
|
|
6431
6458
|
admin client_registration_token create @json:'{"data":{"name":"test_client_reg1","client_subject_scopes":["alee","aejd"],"client_subject_enabled":true}}'
|
|
@@ -6437,7 +6464,7 @@ admin dropbox_membership list
|
|
|
6437
6464
|
admin group list
|
|
6438
6465
|
admin group_membership list --fields=ALL --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
|
|
6439
6466
|
admin kms_profile list
|
|
6440
|
-
admin node bearer_token %name:my_node_name
|
|
6467
|
+
admin node bearer_token %name:my_node_name
|
|
6441
6468
|
admin node do %name:my_node_name --secret=my_ak_secret browse /
|
|
6442
6469
|
admin node do %name:my_node_name --secret=my_ak_secret browse /folder_sub --node-cache=no
|
|
6443
6470
|
admin node do %name:my_node_name --secret=my_ak_secret delete /folder1
|
|
@@ -6474,9 +6501,9 @@ automation workflow action wf_id create @json:'{"name":"toto"}'
|
|
|
6474
6501
|
automation workflow create @json:'{"name":"test_workflow"}'
|
|
6475
6502
|
automation workflow delete wf_id
|
|
6476
6503
|
automation workflow list
|
|
6477
|
-
automation workflow list --query=@json:'{"show_org_workflows":"true"}'
|
|
6504
|
+
automation workflow list --query=@json:'{"show_org_workflows":"true"}'
|
|
6478
6505
|
automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id
|
|
6479
|
-
bearer_token --display=data
|
|
6506
|
+
bearer_token --display=data
|
|
6480
6507
|
files bearer /
|
|
6481
6508
|
files bearer_token_node / --cache-tokens=no
|
|
6482
6509
|
files browse /
|
|
@@ -6491,9 +6518,9 @@ files delete /testsrc
|
|
|
6491
6518
|
files download --to-folder=. testdst/test_file.bin testdst/test_file.bin
|
|
6492
6519
|
files download --transfer=connect testdst/test_file.bin
|
|
6493
6520
|
files download --transfer=desktop testdst/test_file.bin
|
|
6494
|
-
files find /
|
|
6495
|
-
files find / '\.partial$'
|
|
6496
|
-
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")}'
|
|
6497
6524
|
files mkdir /testsrc
|
|
6498
6525
|
files modify /some_folder @json:'{"mount_point":false}'
|
|
6499
6526
|
files permission my_test_folder list
|
|
@@ -6513,15 +6540,15 @@ files upload --to-folder=/ test_file.bin --url=my_public_link_folder_no_pass
|
|
|
6513
6540
|
files upload --to-folder=/testsrc test_file.bin
|
|
6514
6541
|
files upload --to-folder=/testsrc test_file.bin test_file.bin
|
|
6515
6542
|
files v3 info
|
|
6516
|
-
gateway @json:'{"url":"https://localhost:
|
|
6543
|
+
gateway @json:'{"url":"https://localhost:12346/aspera/faspex"}'
|
|
6517
6544
|
organization
|
|
6518
6545
|
organization --format=image --fields=background_image_url --ui=text
|
|
6519
6546
|
organization --url=my_public_link_recv_from_aoc_user
|
|
6520
6547
|
packages browse package_id3 /
|
|
6521
6548
|
packages list
|
|
6522
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}'
|
|
6523
|
-
packages receive ALL --once-only=yes --to-folder=. --lock-port=
|
|
6524
|
-
packages receive ALL --once-only=yes --to-folder=. --lock-port=
|
|
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}'
|
|
6525
6552
|
packages receive INIT --once-only=yes --query=@json:'{"dropbox_name":"my_shared_inbox_name"}'
|
|
6526
6553
|
packages receive package_id3 --to-folder=.
|
|
6527
6554
|
packages receive package_id3 --to-folder=. /
|
|
@@ -6556,8 +6583,11 @@ ATS is usable either :
|
|
|
6556
6583
|
|
|
6557
6584
|
### IBM Cloud ATS : Creation of API key
|
|
6558
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
|
+
|
|
6559
6590
|
This section is about using ATS with an IBM cloud subscription.
|
|
6560
|
-
If you are using ATS as part of AoC, then authentication is through AoC, not IBM Cloud.
|
|
6561
6591
|
|
|
6562
6592
|
First get your IBM Cloud API key.
|
|
6563
6593
|
For instance, it can be created using the IBM Cloud web interface, or using command line:
|
|
@@ -6750,7 +6780,7 @@ upload --sources=@ts --ts=@json:'{"paths":[{"source":"test_file.bin","destinatio
|
|
|
6750
6780
|
upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info.quiet=false --progress=no
|
|
6751
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'
|
|
6752
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"}'
|
|
6753
|
-
upload --to-folder=my_upload_folder/target_hot --lock-port=
|
|
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
|
|
6754
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
|
|
6755
6785
|
```
|
|
6756
6786
|
|
|
@@ -7298,20 +7328,21 @@ ascli node -N --url=https://... --password="Bearer $(cat bearer.txt)" --root-id=
|
|
|
7298
7328
|
--url=https://tst.example.com/path --password='Bearer node_bearer_token' --root-id=bearer_root_id access_key do self browse /
|
|
7299
7329
|
access_key create @json:'{"id":"my_username","secret":"my_password_here","storage":{"type":"local","path":"/"}}'
|
|
7300
7330
|
access_key delete my_username
|
|
7301
|
-
access_key do my_ak_name browse /
|
|
7302
|
-
access_key do my_ak_name delete /test_nd_ak2
|
|
7303
|
-
access_key do my_ak_name delete test_nd_ak3
|
|
7304
|
-
access_key do my_ak_name download test_nd_ak3 --to-folder=.
|
|
7305
|
-
access_key do my_ak_name find my_test_folder
|
|
7306
|
-
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
|
|
7307
7337
|
access_key do my_ak_name find my_test_folder @ruby:'->(f){f["name"].end_with?(".jpg")}'
|
|
7308
|
-
|
|
7309
|
-
access_key do my_ak_name
|
|
7310
|
-
access_key do my_ak_name
|
|
7311
|
-
access_key do my_ak_name
|
|
7312
|
-
access_key do my_ak_name
|
|
7313
|
-
access_key do my_ak_name
|
|
7314
|
-
access_key do my_ak_name
|
|
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
|
|
7315
7346
|
access_key do self permission %id:bearer_root_id create @json:'{"access_type":"user","access_id":"666"}'
|
|
7316
7347
|
access_key do self permission / delete 1
|
|
7317
7348
|
access_key do self permission / show 1
|
data/lib/aspera/agent/factory.rb
CHANGED
|
@@ -16,15 +16,18 @@ module Aspera
|
|
|
16
16
|
Aspera::Agent.const_get(agent.to_s.capitalize).new(**options)
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
#
|
|
21
|
-
|
|
19
|
+
IGNORED_ITEMS = %i[factory base]
|
|
20
|
+
# Available agents: :long : Capitalized name string, :short : single character symbol
|
|
21
|
+
ALL =
|
|
22
22
|
Dir.children(File.dirname(File.expand_path(__FILE__)))
|
|
23
23
|
.select{ |file| file.end_with?(Environment::RB_EXT)}
|
|
24
24
|
.map{ |file| File.basename(file, Environment::RB_EXT).to_sym}
|
|
25
|
-
.reject{ |item| IGNORED_ITEMS.include?(item)}
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
.reject{ |item| IGNORED_ITEMS.include?(item)}.each_with_object({}) do |agent_sym, hash|
|
|
26
|
+
hash[agent_sym] = {
|
|
27
|
+
long: agent_sym.to_s.capitalize,
|
|
28
|
+
short: agent_sym.eql?(:direct) ? :a : agent_sym.to_s[0].to_sym
|
|
29
|
+
}.freeze
|
|
30
|
+
end.freeze
|
|
28
31
|
private_constant :IGNORED_ITEMS
|
|
29
32
|
end
|
|
30
33
|
end
|
|
@@ -21,10 +21,10 @@ module Aspera
|
|
|
21
21
|
|
|
22
22
|
private_constant :LOCAL_SOCKET_ADDR, :PORT_SEP, :AUTO_LOCAL_TCP_PORT
|
|
23
23
|
|
|
24
|
-
# @param url [String]
|
|
25
|
-
# @param start [
|
|
26
|
-
# @param stop [
|
|
27
|
-
# @param base [Hash]
|
|
24
|
+
# @param url [String] URL of the transfer manager daemon
|
|
25
|
+
# @param start [Boolean] If `false`, expect that an external daemon is already running
|
|
26
|
+
# @param stop [Boolean] If `false`, do not shutdown daemon on exit
|
|
27
|
+
# @param base [Hash] Base class options
|
|
28
28
|
def initialize(
|
|
29
29
|
url: AUTO_LOCAL_TCP_PORT,
|
|
30
30
|
start: true,
|