aspera-cli 4.25.3 → 4.26.0.pre

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 (45) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +39 -6
  4. data/CONTRIBUTING.md +119 -111
  5. data/README.md +9 -7
  6. data/lib/aspera/agent/direct.rb +10 -8
  7. data/lib/aspera/agent/factory.rb +3 -3
  8. data/lib/aspera/agent/node.rb +1 -1
  9. data/lib/aspera/api/alee.rb +1 -0
  10. data/lib/aspera/api/aoc.rb +13 -12
  11. data/lib/aspera/api/ats.rb +1 -1
  12. data/lib/aspera/api/cos_node.rb +5 -0
  13. data/lib/aspera/api/faspex.rb +15 -2
  14. data/lib/aspera/api/httpgw.rb +2 -0
  15. data/lib/aspera/api/node.rb +82 -29
  16. data/lib/aspera/ascp/installation.rb +9 -10
  17. data/lib/aspera/cli/error.rb +8 -0
  18. data/lib/aspera/cli/formatter.rb +27 -11
  19. data/lib/aspera/cli/info.rb +2 -1
  20. data/lib/aspera/cli/main.rb +30 -12
  21. data/lib/aspera/cli/manager.rb +43 -31
  22. data/lib/aspera/cli/plugins/aoc.rb +7 -5
  23. data/lib/aspera/cli/plugins/base.rb +2 -79
  24. data/lib/aspera/cli/plugins/config.rb +2 -1
  25. data/lib/aspera/cli/plugins/faspex.rb +1 -1
  26. data/lib/aspera/cli/plugins/faspex5.rb +51 -51
  27. data/lib/aspera/cli/plugins/node.rb +9 -14
  28. data/lib/aspera/cli/plugins/shares.rb +4 -2
  29. data/lib/aspera/cli/special_values.rb +1 -0
  30. data/lib/aspera/cli/transfer_agent.rb +3 -0
  31. data/lib/aspera/cli/version.rb +1 -1
  32. data/lib/aspera/cli/wizard.rb +2 -1
  33. data/lib/aspera/dot_container.rb +10 -10
  34. data/lib/aspera/log.rb +1 -1
  35. data/lib/aspera/markdown.rb +1 -1
  36. data/lib/aspera/persistency_folder.rb +1 -1
  37. data/lib/aspera/rest.rb +34 -49
  38. data/lib/aspera/rest_list.rb +116 -0
  39. data/lib/aspera/sync/operations.rb +1 -1
  40. data/lib/aspera/transfer/parameters.rb +8 -8
  41. data/lib/aspera/transfer/spec.rb +1 -0
  42. data/lib/aspera/yaml.rb +1 -1
  43. data.tar.gz.sig +0 -0
  44. metadata +4 -3
  45. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d01aecb4590218d1028c4d4653c255394294cca477508cd802cf53b72acee927
4
- data.tar.gz: 0ecb307d12fcc0daaa6d465928533d5fc95ac3f66218cc5b6c552d7e044aa822
3
+ metadata.gz: fc6adc843448ed8b76da0786b419be39fe4531daa0da0254f8cdb7503a131f4f
4
+ data.tar.gz: 217a266117e6a2ac2f0512016d71a7fa4e9a1b67924e3e73ca5b7a29cc54a76a
5
5
  SHA512:
6
- metadata.gz: 01ba11f7c24c0f9f869770c9035edd0e2d7d06b77fb71ca00a16cf59829e6abaf758fe5c9a0e131019e6a11e09a58b1c1e9fb4cc9a7818bcda63fdf3ef8e8969
7
- data.tar.gz: a70ffa0f67294841bb18a53720c656c2eea4d904cf0c14db259203cf75aa05090a2c64b040807d1d5bfd7eb7288969feb1756adc97415bc3b142cf3b55d2d48d
6
+ metadata.gz: 8977f967425a7a53c585d64902619366c197b6897231515ec84dd1b76e4a70eb767da6ce5cbe32f0f3005e70d222e1dc5d65fcf3bfe2c8044d4cf7349396e692
7
+ data.tar.gz: 7ac9b790563f1f8d11c1156f337ed4fb81313c64b11e1dc7b85909b91c87f06d0a6024176352a01c51397626d75ec20a66c9311dd8a5f88042cff7b0a23fdc44
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  <!-- markdownlint-configure-file { "no-duplicate-heading": { "siblings_only": true } } -->
4
4
 
5
+ ## 4.26.0.pre
6
+
7
+ Released: [Place date of release here]
8
+
9
+ ### New Features
10
+
11
+ * `faspex5`: When sending a package, recipients specified in fields `private_recipients`, `notified_on_upload`, `notified_on_download` and `notified_on_receipt` are now also expanded like field `recipients`.
12
+
13
+ ### Issues Fixed
14
+
15
+ * `sync`: #251 in `admin` command: Fixed database path on Windows: Use `~private-asp` instead of `.private-asp`.
16
+ * `config`: Fixed `preset update` with dot-path options.
17
+
18
+ ### Breaking Changes
19
+
20
+ ## 4.25.4
21
+
22
+ Released: 2026-03-04
23
+
24
+ ### New Features
25
+
26
+ * **general**: If `@:` is used, then marker `END` optionally marks the end of collected arguments.
27
+ * `format`: `display` defaults to `info` only if `format` is set to `table`, else defaults to `data`.
28
+ * `node`: Parameter `accept_v4` of option `node_api` (boolean, defaults to `true`) allows using gen4 browsing with `Accept-Version: 4.0` for best performance when there are thousands of files.
29
+
30
+ ### Issues Fixed
31
+
32
+ * `faspex5`: Listing content, or receiving a package requires API parameter: `recipient_user_id` or `recipient_workgroup_id`, else error `Not authorized` is returned.
33
+
34
+ ### Breaking Changes
35
+
36
+ * `node`: Options `node_cache` and `default_ports` are replaced with option: `node_api` (`Hash`) with boolean parameters (keys): `cache` and `standard_ports` with default value `true`.
37
+
5
38
  ## 4.25.3
6
39
 
7
40
  Released: 2026-02-18
@@ -283,7 +316,7 @@ Released: 2025-01-21
283
316
 
284
317
  * Internal: Basic REST calls now return data directly. (no more `data` key). For advanced calls, use `call`.
285
318
  * Internal: Transfer SDK download is now a 2-step procedure: First get the YAML file from GitHub with URLs for the various platforms and versions, and then download the archive from the official IBM repository.
286
- **global**: Option `format=multi` is replaced with option `multi_table=yes`.
319
+ * **global**: Option `format=multi` is replaced with option `multi_table=yes`.
287
320
  * `faspex5`: Removed deprecated option `value` replaced with positional parameter.
288
321
 
289
322
  ## 4.19.0
@@ -1047,7 +1080,7 @@ Released: 2021-02-03
1047
1080
 
1048
1081
  ### New Features
1049
1082
 
1050
- * The option `value` of command `find`, to filter on name, is not optional.
1083
+ * The option `value` of command `find` to filter on name is mandatory.
1051
1084
  * `find` now also reports all types (file, folder, link).
1052
1085
  * `find` now is able to report all fields (type, size, etc...).
1053
1086
 
@@ -1077,7 +1110,7 @@ Released: 2021-02-03
1077
1110
  ### New Features
1078
1111
 
1079
1112
  * Improved wizard (prepare for AoC global client id).
1080
- * Preview generator: Added option : --skip-format=&lt;png,mp4&gt;.
1113
+ * Preview generator: Added option : `skip_format` with values `png`, `mp4`.
1081
1114
  * Removed outdated pictures from this doc.
1082
1115
 
1083
1116
  ## 0.9.19
@@ -1145,7 +1178,7 @@ Released: 2021-02-03
1145
1178
 
1146
1179
  ### New Features
1147
1180
 
1148
- * `faspex`: Use option `once_only` set to `yes` to enable cargo like function. id=NEW deprecated.
1181
+ * `faspex`: Use option `once_only` set to `yes` to enable cargo like function. `id=NEW` deprecated.
1149
1182
  * `aoc`: Share to share transfer with command `transfer`.
1150
1183
 
1151
1184
  ## 0.9.7
@@ -1154,8 +1187,8 @@ Released: 2021-02-03
1154
1187
 
1155
1188
  * Homogeneous transfer spec for `node` and [`direct`](README.md#agt_direct) transfer agents.
1156
1189
  * Preview persistency goes to unique file by default.
1157
- * Catch mxf extension in preview as video.
1158
- * Faspex: Possibility to download all packages by specifying id=ALL.
1190
+ * Catch `mxf` extension in preview as video.
1191
+ * Faspex: Possibility to download all packages by specifying `id=ALL`.
1159
1192
  * Faspex: To come: Cargo-like function to download only new packages with id=NEW.
1160
1193
 
1161
1194
  ## 0.9.6
data/CONTRIBUTING.md CHANGED
@@ -2,24 +2,25 @@
2
2
 
3
3
  ## Reporting Issues and Vulnerabilities
4
4
 
5
- If you encounter a problem or a security vulnerability, please report it on [GitHub Issues](https://github.com/IBM/aspera-cli/issues).
5
+ If you encounter a bug or a security vulnerability, please report it via [GitHub Issues](https://github.com/IBM/aspera-cli/issues).
6
6
 
7
- Before submitting a new issue:
7
+ Before submitting a new report:
8
8
 
9
- - Search existing issues to see if your problem has already been reported or resolved.
9
+ - **Search existing issues** to determine if the problem has already been documented or resolved.
10
10
 
11
- To help us assist you efficiently, include the following in your report:
11
+ To help us diagnose and resolve the issue efficiently, please include the following in your report:
12
12
 
13
- - The version of `ascli` you are using:
13
+ - The `ascli` version you are using:
14
14
 
15
- ```bash
16
- ascli version
15
+ ```shell
16
+ ascli -v
17
17
  ```
18
18
 
19
- - Confirmation that you are using the latest version (update it if needed).
20
- - Your Ruby version information:
19
+ - **Update confirmation**: Verify that you are running the latest version.
21
20
 
22
- ```bash
21
+ - **Your Ruby environment details**:
22
+
23
+ ```shell
23
24
  ruby -v
24
25
  ```
25
26
 
@@ -29,103 +30,102 @@ We welcome contributions to improve the `aspera-cli` project!
29
30
 
30
31
  ### Getting Started
31
32
 
32
- Clone the repository and navigate to the project's root directory:
33
+ Clone the repository to initialize the development environment:
33
34
 
34
- ```bash
35
+ ```shell
35
36
  git clone https://github.com/IBM/aspera-cli.git
36
37
  cd aspera-cli
37
38
  bundle install
38
39
  bundle exec rake -T
39
40
  ```
40
41
 
41
- For testing instructions, refer to [Running Tests](#running-tests).
42
+ For detailed testing instructions, please refer to [Running Tests](#running-tests).
42
43
 
43
44
  ### How to Contribute
44
45
 
45
- To submit a contribution:
46
+ To submit a contribution, follow these steps:
46
47
 
47
48
  1. **Fork** the repository on GitHub.
48
49
 
49
- 1. **Create a feature branch** for your changes.
50
+ 1. **Create a feature branch** specifically for your changes.
50
51
 
51
52
  1. **Implement** your feature or bug fix.
52
53
 
53
54
  1. **Write tests** to ensure your changes are robust and prevent regressions.
54
55
 
55
- 1. Run `rubocop` to ensure your code follows the Ruby style guide.
56
+ 1. **Run** `rubocop` to ensure your code adheres to the Ruby style guide.
56
57
 
57
- 1. Update `CHANGELOG.md` with a summary of your changes.
58
+ 1. **Update** `CHANGELOG.md` with a concise summary of your changes.
58
59
 
59
- 1. Submit a **pull request** with a clear description of your contribution.
60
+ 1. **Submit a pull request** with a detailed description of your work.
60
61
 
61
62
  > [!TIP]
62
- > Make sure your pull request is focused and includes only relevant changes.
63
+ > Keep pull requests focused; include only changes relevant to the specific feature or fix.
63
64
 
64
65
  ## Architecture
65
66
 
66
- The overall architecture of `aspera-cli` is modular and extensible.
67
+ The `aspera-cli` architecture is designed to be modular and extensible.
67
68
 
68
69
  ![Architecture](docs/architecture.png)
69
70
 
70
71
  ### Structure Highlights
71
72
 
72
- - Entry Point:
73
+ - **Entry Point**:
73
74
 
74
- `lib/aspera/cli/main.rb`, CLI startup logic.
75
+ `lib/aspera/cli/main.rb` contains the core CLI startup logic.
75
76
 
76
- - Plugins:
77
+ - **Plugins**:
77
78
 
78
- Located in `lib/aspera/cli/plugins`; plugins extend CLI functionality and encapsulate specific features.
79
+ Located in `lib/aspera/cli/plugins`, these extend CLI functionality and encapsulate specific features.
79
80
 
80
- - Transfer Agents:
81
+ - **Transfer Agents**:
81
82
 
82
- Found in `lib/aspera/agent`, these handle data transfer operations.
83
+ Located in `lib/aspera/agent`, these components manage data transfer operations.
83
84
 
84
- Class diagrams are provided in <docs/uml.png>
85
+ Detailed class diagrams are available in <docs/uml.png>
85
86
 
86
87
  ## Ruby Environment
87
88
 
88
- `aspera-cli` is written in Ruby.
89
- You can install Ruby using any method you prefer (e.g., `rbenv`, `rvm`, system package manager).
89
+ `aspera-cli` is built with Ruby.
90
+ You can manage your Ruby installation using your preferred tool (e.g., `rbenv`, `rvm`, or a system package manager).
90
91
 
91
92
  To start with a clean state and remove all installed gems:
92
93
 
93
- ```bash
94
+ ```shell
94
95
  bundle exec rake tools:clean_gems
95
96
  ```
96
97
 
97
98
  > [!TIP]
98
- > This is especially useful before testing across different Ruby versions or preparing for a release.
99
+ > This is particularly useful when testing across different Ruby versions or preparing for a new release.
99
100
 
100
101
  ## Toolchain
101
102
 
102
- The build system uses Ruby's `rake`.
103
+ The build system is powered by Ruby's `rake`.
103
104
 
104
- ### Environment
105
+ ### Environment Configuration
105
106
 
106
- A few macros and environment variables control certain aspects of the build:
107
+ The following environment variables and macros control specific build behaviors:
107
108
 
108
- | Environment variable | Description |
109
- |-----------------------------|-----------------------------------------------------|
110
- | `ASPERA_CLI_TEST_CONF_URL` | URL for configuration file with secrets for tests. |
111
- | `ASPERA_CLI_DOC_CHECK_LINKS`| Check links still exist during doc generation. |
112
- | `LOG_LEVEL` | Change log level in `rake` tasks. |
113
- | `LOG_SECRETS` | Change log secrets in `rake` tasks. |
114
- | `ENABLE_COVERAGE` | Enable test coverage analysis when set. |
115
- | `SIGNING_KEY` | Path to the signing key used to build the gem file. |
116
- | `SIGNING_KEY_PEM` | PEM of signing key. |
109
+ | Environment variable | Contents | Description |
110
+ |-----------------------------|------------| -------------------------------------------------------------|
111
+ | `ASPERA_CLI_TEST_CONF_URL` | URL | URL for the configuration file containing secrets for tests. |
112
+ | `ASPERA_CLI_DOC_CHECK_LINKS`| `yes`/`no` | Validates that links exist during documentation generation. |
113
+ | `LOG_SECRETS` | `yes`/`no` | Toggles the logging of secrets in `rake` tasks. |
114
+ | `LOG_LEVEL` | `debug`, ... | Sets the logging verbosity for `rake` tasks. |
115
+ | `ENABLE_COVERAGE` | set/unset | Enables test coverage analysis when defined. |
116
+ | `SIGNING_KEY` | File path | Path to the signing key used for building the gem file. |
117
+ | `SIGNING_KEY_PEM` | PEM Value | The PEM content of the signing key. |
117
118
 
118
- These can be set either as environment variables or directly on the `rake` command line.
119
+ These values can be set as standard environment variables or passed directly to the `rake` command.
119
120
 
120
- Setting `SIGNING_KEY_PEM` creates file `$HOME/.gem/signing_key.pem` and sets `SIGNING_KEY` to that path.
121
+ Setting `SIGNING_KEY_PEM` automatically generates a file at `$HOME/.gem/signing_key.pem` and sets the `SIGNING_KEY` variable accordingly.
121
122
 
122
123
  > [!NOTE]
123
- > Environment variables `ASPERA_CLI_*` are typically set in the user’s shell profile for development.
124
- > Others are intended for use on the command line.
124
+ > `ASPERA_CLI_TEST_CONF_URL` is typically defined in your shell profile for development, while others are usually for ad-hoc command-line use.
125
125
 
126
- To use the CLI directly from the development environment, add this to your shell profile (adapt the real path):
126
+ To run the CLI directly from your source directory, add the following to your shell profile (adjust the path as necessary):
127
127
 
128
- ```bash
128
+ ```shell
129
129
  dev_ascli=$HOME/github/aspera-cli
130
130
  export PATH=$dev_ascli/bin:$PATH
131
131
  export RUBYLIB=$dev_ascli/lib:$RUBYLIB
@@ -135,83 +135,83 @@ export RUBYLIB=$dev_ascli/lib:$RUBYLIB
135
135
 
136
136
  Documentation is generated with `pandoc` and `LaTeX`.
137
137
 
138
- The IBM `Plex` font is used; for installation instructions, see [IBM Plex](https://www.ibm.com/plex/).
138
+ The project utilizes the **IBM Plex font**.
139
+ Installation instructions can be found at [IBM Plex](https://www.ibm.com/plex/).
139
140
 
140
- On macOS, to install `lualatex` and all packages:
141
+ On macOS, install `lualatex` and required packages via Homebrew:
141
142
 
142
- ```bash
143
+ ```shell
143
144
  brew install texlive
144
145
  ```
145
146
 
146
- If `lualatex` is installed using another method, ensure that the following packages are installed:
147
+ If using an alternative installation method, ensure the following packages are present:
147
148
 
148
- ```bash
149
+ ```shell
149
150
  tlmgr update --self
150
151
  tlmgr install fvextra selnolig lualatex-math
151
152
  ```
152
153
 
153
- To check URLs during documentation generation, set the environment variable: `ASPERA_CLI_DOC_CHECK_LINKS=1`.
154
+ - Validate URLs during generation: `ASPERA_CLI_DOC_CHECK_LINKS=yes`.
154
155
 
155
- To debug documentation generation, set the environment variable: `ASPERA_CLI_DOC_DEBUG=debug`.
156
+ - Debug the generation process: `ASPERA_CLI_DOC_DEBUG=debug`.
156
157
 
157
- To generate documentation:
158
+ - Build the documentation:
158
159
 
159
- ```bash
160
+ ```shell
160
161
  rake doc:build
161
162
  ```
162
163
 
163
164
  ## Test Environment
164
165
 
165
- Refer to <tests/README.md>.
166
+ Detailed testing information can be found in <tests/README.md>.
166
167
 
167
168
  ## Build
168
169
 
169
- The unsigned gem is built with:
170
+ To build an unsigned gem:
170
171
 
171
- ```bash
172
+ ```shell
172
173
  bundle install
173
174
  bundle exec rake unsigned
174
175
  ```
175
176
 
176
- If you don't want to install optional gems:
177
+ To exclude optional gems from the installation:
177
178
 
178
- ```bash
179
+ ```shell
179
180
  bundle config set without optional
180
181
  ```
181
182
 
182
183
  ### Signed gem
183
184
 
184
- A private key is required to generate a signed gem.
185
- Its path must be set using environment variable `SIGNING_KEY`.
186
- The gem is signed with the public certificate found in `certs` and the private key specified by `SIGNING_KEY` (kept secret by the maintainer).
185
+ Generating a signed gem requires a **private key**, specified via the `SIGNING_KEY` environment variable.
186
+ The gem is signed using the public certificate in `certs` and the **private key**.
187
187
 
188
- ```bash
188
+ ```shell
189
189
  bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
190
190
  ```
191
191
 
192
- Refer to <certs/README.md>.
192
+ For more details, see <certs/README.md>.
193
193
 
194
- ### gRPC stubs for transfer SDK
194
+ ### gRPC stubs for Transfer SDK
195
195
 
196
- Update with:
196
+ To update the stubs:
197
197
 
198
- ```bash
198
+ ```shell
199
199
  bundle exec rake tools:grpc
200
200
  ```
201
201
 
202
- It downloads the latest `proto` file and then compiles it into ruby sources included in the repo.
202
+ This task downloads the latest `.proto` files and compiles them into the Ruby source files included in the repository.
203
203
 
204
204
  ## Container image build
205
205
 
206
- See [Container build](./container/README.md).
206
+ Refer to the [Container build guide](./container/README.md).
207
207
 
208
208
  ## Single executable build
209
209
 
210
- See [Executable build](build/binary/README.md).
210
+ Refer to the [Executable build guide](build/binary/README.md).
211
211
 
212
- To list operations:
212
+ To list related `rake` tasks:
213
213
 
214
- ```bash
214
+ ```shell
215
215
  bundle exec rake -T ^binary:
216
216
  ```
217
217
 
@@ -219,87 +219,95 @@ bundle exec rake -T ^binary:
219
219
 
220
220
  ### Branching Strategy
221
221
 
222
- This project uses a single `main` branch for development.
223
- During the development cycle, the version in `lib/aspera/cli/version.rb` uses a `.pre` suffix (e.g., `x.y.z.pre`) to indicate a pre-release state.
222
+ This project maintains a single `main` branch.
223
+ During development, the version in `lib/aspera/cli/version.rb` includes a `.pre` suffix (e.g., `x.y.z.pre`).
224
+
225
+ Contributions are handled as follows:
224
226
 
225
- Feature development and bug fixes can be done either:
227
+ - **Direct commits** to `main`: Permitted for minor changes.
226
228
 
227
- - Directly on `main` for small changes
228
- - Via feature branches with pull requests for larger changes
229
+ - **Feature branches**: Required for significant changes via pull requests.
229
230
 
230
- ### Checklist Before a New Release
231
+ ### Pre-Release Checklist
231
232
 
232
- When preparing for a new release, do the following:
233
+ Before a new release, ensure the following:
233
234
 
234
- - Run the test suite:
235
+ - **Pass all tests**:
235
236
 
236
- ```bash
237
+ ```shell
237
238
  bundle exec rake test:run
238
239
  ```
239
240
 
240
- - Verify that the container builds successfully (using the local gem file):
241
+ - **Verify container builds** (using the local gem):
241
242
 
242
- ```bash
243
+ ```shell
243
244
  bundle exec rake container:build'[local]'
244
245
  bundle exec rake container:test
245
246
  ```
246
247
 
248
+ - **Check documentation links**:
249
+
250
+ ```shell
251
+ bundle exec rake doc:build ASPERA_CLI_DOC_CHECK_LINKS=yes
252
+ ```
253
+
247
254
  ### Automated Release Process
248
255
 
249
- Releases are triggered via the GitHub Actions UI using the **Release** workflow (`.github/workflows/release.yml`).
256
+ Releases are managed through the GitHub Actions UI via the **New Release on GitHub** workflow (`.github/workflows/release.yml`).
257
+
258
+ 1. Navigate to **Actions** > **New Release on GitHub**
259
+ 2. Select **Run workflow**
260
+ 3. (Optionally) Specify:
261
+ - **Release version**: Defaults to the current `version.rb` value (minus the `.pre` suffix).
250
262
 
251
- To create a release:
263
+ e.g. current `a.b.c.pre` &rarr; `a.b.c`.
264
+ - **Next development version**: Defaults to an incremented minor version with the `.pre` suffix.
252
265
 
253
- 1. Navigate to **Actions** > **Release** in the GitHub repository
254
- 2. Click **Run workflow**
255
- 3. Optionally specify:
256
- - **Release version**: The version to release. If left empty, uses the current version from `version.rb` without the `.pre` suffix.
257
- - **Next development version**: The next version to prepare for. If left empty, auto-increments the minor version. The `.pre` suffix is added automatically.
266
+ e.g. release `a.b.c` &rarr; `a.(b+1).0.pre`.
258
267
  4. Click **Run workflow**
259
268
 
260
- The workflow automatically:
269
+ The automated workflow performs the following:
261
270
 
262
- 1. Updates `version.rb` with the release version
263
- 2. Rebuilds documentation (PDF manual, Markdown README)
271
+ 1. Updates `version.rb` to the release version
272
+ 2. Rebuilds all documentation (PDF and Markdown)
264
273
  3. Commits the changes
265
274
  4. Creates and pushes the release tag
266
275
  5. Triggers the `deploy` workflow to publish to [rubygems.org](https://rubygems.org/gems/aspera-cli)
267
- 6. Updates `version.rb` to the next development version with `.pre` suffix
268
- 7. Commits and pushes the version bump in main branch.
276
+ 6. Increments `version.rb` to the next development version.
277
+ 7. Commits and pushes the version bump to `main`.
269
278
 
270
279
  ### Manual Release Process (Alternative)
271
280
 
272
- If needed, releases can still be done manually.
273
- Basically, follow the same procedure as in the GitHub action:
281
+ If necessary, you can mirror the automated process manually:
274
282
 
275
283
  - Update the version in `lib/aspera/cli/version.rb` (remove `.pre` suffix)
276
284
 
277
- - Build the PDF manual in `pkg`:
285
+ - Build the PDF manual:
278
286
 
279
287
  ```shell
280
288
  bundle exec rake doc:build
281
289
  ```
282
290
 
283
- - Build the signed `.gem` in `pkg`:
291
+ - Build the signed gem:
284
292
 
285
293
  ```shell
286
294
  bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
287
295
  ```
288
296
 
289
- - Create the release version tag and push it to GitHub:
297
+ - Tag the release and push to GitHub:
290
298
 
291
299
  ```shell
292
300
  bundle exec rake release_tag
293
301
  ```
294
302
 
295
- This will trigger the action `.github/workflows/deploy.yml`, which builds the gem file and pushes it to RubyGems.
303
+ This triggers the `.github/workflows/deploy.yml` action to publish to RubyGems.
296
304
 
297
- - After release, update `version.rb` to the next development version with `.pre` suffix
305
+ - Update `version.rb` to the next `.pre` development version.
298
306
 
299
307
  ## Future Improvements
300
308
 
301
- - Replace custom REST and OAuth classes with standard Ruby gems ?
302
- - <https://github.com/rest-client/rest-client>
303
- - <https://github.com/oauth-xx/oauth2>
304
- - Use the `thor` gem <http://whatisthor.com/> (or other standard Ruby CLI manager)
305
- - Look at <https://github.com/phusion/traveling-ruby>
309
+ - Evaluate replacing custom REST and OAuth implementations with standard gems:
310
+ - [rest-client](https://github.com/rest-client/rest-client)
311
+ - [oauth2](https://github.com/oauth-xx/oauth2)
312
+ - Integrate `thor` <http://whatisthor.com/> or another standard Ruby CLI framework.
313
+ - Explore [Traveling Ruby](https://github.com/phusion/traveling-ruby) for distribution.
data/README.md CHANGED
@@ -5,6 +5,8 @@
5
5
  [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5861/badge)](https://bestpractices.coreinfrastructure.org/projects/5861)
6
6
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
7
7
 
8
+ ![Hootput the Owl](docs/mascot.svg)
9
+
8
10
  **`ascli`** is the command-line interface for IBM Aspera products.
9
11
  Use it from the terminal or in scripts to:
10
12
 
@@ -18,8 +20,8 @@ Choose what best suits you:
18
20
 
19
21
  | Resource | Link |
20
22
  | -------- | ---- |
21
- | **Online manual** | [docs/README.md](docs/README.md) |
22
- | **PDF manual** | In [releases](https://github.com/IBM/aspera-cli/releases) |
23
+ | **Online manual** | [GitHub docs/README.md](https://github.com/IBM/aspera-cli/blob/main/docs/README.md) |
24
+ | **PDF manual** | In [GitHub Releases](https://github.com/IBM/aspera-cli/releases) |
23
25
  | **RubyGems** | [rubygems.org/gems/aspera-cli](https://rubygems.org/gems/aspera-cli) |
24
26
  | **RubyDoc** | [rubydoc.info/gems/aspera-cli](https://www.rubydoc.info/gems/aspera-cli) |
25
27
  | **Docsify** | [online](https://docsify-this.net/?basePath=https://raw.githubusercontent.com/IBM/aspera-cli/main/docs&homepage=README.md&sidebar=true&browser-tab-title=Aspera%20CLI%20Manual&hide-credits=true&maxLevel=4&externalLinkTarget=_blank&image-captions=true&dark-mode=auto) |
@@ -34,7 +36,7 @@ ascli config transferd install
34
36
  ```
35
37
 
36
38
  The second command installs the **FASP** transfer engine (`ascp`).
37
- For other install methods (single executable, Docker, Chocolatey, Homebrew), see the [user manual](docs/README.md#installation).
39
+ For other install methods (single executable, Docker, Chocolatey, Homebrew), see the [user manual](https://github.com/IBM/aspera-cli/blob/main/docs/README.md#installation).
38
40
 
39
41
  **Quick check:**
40
42
 
@@ -44,13 +46,13 @@ ascli -v
44
46
 
45
47
  ## Contributing
46
48
 
47
- - **Bugs & features:** [BUGS.md](BUGS.md)
48
- - **How to contribute:** [CONTRIBUTING.md](CONTRIBUTING.md)
49
- - **Release notes:** [CHANGELOG.md](CHANGELOG.md)
49
+ - **Bugs & features:** [BUGS.md](https://github.com/IBM/aspera-cli/blob/main/BUGS.md)
50
+ - **How to contribute:** [CONTRIBUTING.md](https://github.com/IBM/aspera-cli/blob/main/CONTRIBUTING.md)
51
+ - **Release notes:** [CHANGELOG.md](https://github.com/IBM/aspera-cli/blob/main/CHANGELOG.md)
50
52
 
51
53
  Commands map to Aspera REST APIs; see the manual for options.
52
54
  For debugging, use `--log-level=debug`.
53
55
 
54
56
  ## License
55
57
 
56
- [Apache-2.0](LICENSE)
58
+ [Apache-2.0](https://github.com/IBM/aspera-cli/blob/main/LICENSE)
@@ -25,25 +25,27 @@ module Aspera
25
25
  private_constant :LISTEN_LOCAL_ADDRESS, :SELECT_AVAILABLE_PORT
26
26
 
27
27
  # Options: same as values in option `transfer_info`
28
- # @param ascp_args [Array] (Params) Optional Additional arguments to ascp
29
- # @param wss [Boolean] (Params) `true`: if both SSH and wss in ts: prefer wss
30
- # @param quiet [Boolean] (Params) By default no native `ascp` progress bar
31
- # @param monitor [Boolean] (Params) Set to `false` to eliminate management port
32
- # @param trusted_certs [Array] (Params) Optional list of files with trusted certificates (stores)
33
- # @param client_ssh_key [String] (Params) Client SSH key option (from CLIENT_SSH_KEY_OPTIONS)
34
- # @param check_ignore_cb [Proc] (Params) Callback with host,port
28
+ # (Args) : Options that influence `ascp` arguments.
29
+ #
30
+ # @param ascp_args [Array] (Args) Optional Additional arguments to ascp
31
+ # @param wss [Boolean] (Args) `true`: if both SSH and wss in ts: prefer wss
32
+ # @param quiet [Boolean] (Args) By default no native `ascp` progress bar
33
+ # @param client_ssh_key [String] (Args) Client SSH key option (from CLIENT_SSH_KEY_OPTIONS)
34
+ # @param trusted_certs [Array<String>] (Args) (WSS) Optional list of files with trusted certificates (stores)
35
+ # @param check_ignore_cb [Proc] (Args) (WSS) Callback with host,port to check if WSS connection shall ignore certificate validity
35
36
  # @param spawn_timeout_sec [Integer] Timeout for ascp spawn
36
37
  # @param spawn_delay_sec [Integer] Optional delay to start between sessions
37
38
  # @param multi_incr_udp [Boolean] Optional `true`: increment UDP port for each session
38
39
  # @param resume [Hash] Optional Resume policy
40
+ # @param monitor [Boolean] Set to `false` to eliminate management port
39
41
  # @param management_cb [Proc] callback for management events
40
42
  # @param base_options [Hash] other options for base class
41
43
  def initialize(
42
44
  ascp_args: nil,
43
45
  wss: true,
44
46
  quiet: true,
45
- trusted_certs: nil,
46
47
  client_ssh_key: nil,
48
+ trusted_certs: nil,
47
49
  check_ignore_cb: nil,
48
50
  spawn_timeout_sec: 2,
49
51
  spawn_delay_sec: 2,
@@ -22,11 +22,11 @@ module Aspera
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)}.each_with_object({}) do |agent_sym, hash|
26
- hash[agent_sym] = {
25
+ .reject{ |item| IGNORED_ITEMS.include?(item)}.to_h do |agent_sym|
26
+ [agent_sym, {
27
27
  long: agent_sym.to_s.capitalize,
28
28
  short: agent_sym.eql?(:direct) ? :a : agent_sym.to_s[0].to_sym
29
- }.freeze
29
+ }.freeze]
30
30
  end.freeze
31
31
  private_constant :IGNORED_ITEMS
32
32
  end
@@ -59,7 +59,7 @@ module Aspera
59
59
  ts_tags = transfer_spec['tags']
60
60
  ts_tags[Transfer::Spec::TAG_RESERVED]['xfer_retry'] ||= 150 if ts_tags.is_a?(Hash) && ts_tags[Transfer::Spec::TAG_RESERVED].is_a?(Hash)
61
61
  # Optimization in case of sending to the same node
62
- # TODO: probably remove this, as /etc/hosts shall be used for that
62
+ # TODO: probably remove this, as /etc/hosts shall be used for that on server side.
63
63
  transfer_spec['remote_host'] = '127.0.0.1' if !transfer_spec['wss_enabled'] && transfer_spec['remote_host'].eql?(URI.parse(node_api_.base_url).host)
64
64
  resp = node_api_.create('ops/transfers', transfer_spec)
65
65
  @transfer_id = resp['id']
@@ -3,6 +3,7 @@
3
3
  require 'aspera/api/aoc.rb'
4
4
  module Aspera
5
5
  module Api
6
+ # Aspera License Entitlement Engine API client
6
7
  class Alee < Aspera::Rest
7
8
  def initialize(entitlement_id, customer_id, api_domain: AoC::SAAS_DOMAIN_PROD, version: 'v1')
8
9
  super(