aspera-cli 4.25.3 → 4.25.5

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 +40 -6
  4. data/CONTRIBUTING.md +122 -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 +15 -14
  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 +27 -20
  14. data/lib/aspera/api/httpgw.rb +19 -3
  15. data/lib/aspera/api/node.rb +122 -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 +1 -88
  24. data/lib/aspera/cli/plugins/config.rb +2 -1
  25. data/lib/aspera/cli/plugins/faspex.rb +6 -6
  26. data/lib/aspera/cli/plugins/faspex5.rb +64 -64
  27. data/lib/aspera/cli/plugins/node.rb +33 -78
  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 +39 -54
  38. data/lib/aspera/rest_list.rb +121 -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: a886cb3a02f285c84728b216f1cd906b8440db041a8240ed09ed1969d81ec6c3
4
+ data.tar.gz: a05a7d9fc94a5d748c52d659426a18cf567a9e303231c86d1ec2312abc3465ae
5
5
  SHA512:
6
- metadata.gz: 01ba11f7c24c0f9f869770c9035edd0e2d7d06b77fb71ca00a16cf59829e6abaf758fe5c9a0e131019e6a11e09a58b1c1e9fb4cc9a7818bcda63fdf3ef8e8969
7
- data.tar.gz: a70ffa0f67294841bb18a53720c656c2eea4d904cf0c14db259203cf75aa05090a2c64b040807d1d5bfd7eb7288969feb1756adc97415bc3b142cf3b55d2d48d
6
+ metadata.gz: 87988d7b4252134e772c7c5420e59471cfb89355627cb3bf49fe6f5cf19382644856dfee3494adb3db2a879fc42b77f5754f8fee995eae8ca45229fc68ccd769
7
+ data.tar.gz: ace70306ca85a12b17d12dcf146f280d313dcbef491576c265a5a20f70199d1c03ef3834cc62de30b20949f2cfdea39821b09b232c8bd826709f5622c7f631c3
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -2,6 +2,40 @@
2
2
 
3
3
  <!-- markdownlint-configure-file { "no-duplicate-heading": { "siblings_only": true } } -->
4
4
 
5
+ ## 4.25.5
6
+
7
+ Released: 2026-03-25
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
+ * `config`: Fixed `preset update` with dot-path options.
16
+ * `sync`: #251 in `admin` command: Fixed database path on Windows: Use `~private-asp` instead of `.private-asp`.
17
+ * `httpgw`: #252 HTTPGW transfer showed success even in case of error code `403`. Now raises error with message.
18
+
19
+ ### Breaking Changes
20
+
21
+ ## 4.25.4
22
+
23
+ Released: 2026-03-04
24
+
25
+ ### New Features
26
+
27
+ * **general**: If `@:` is used, then marker `END` optionally marks the end of collected arguments.
28
+ * `format`: `display` defaults to `info` only if `format` is set to `table`, else defaults to `data`.
29
+ * `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.
30
+
31
+ ### Issues Fixed
32
+
33
+ * `faspex5`: Listing content, or receiving a package requires API parameter: `recipient_user_id` or `recipient_workgroup_id`, else error `Not authorized` is returned.
34
+
35
+ ### Breaking Changes
36
+
37
+ * `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`.
38
+
5
39
  ## 4.25.3
6
40
 
7
41
  Released: 2026-02-18
@@ -283,7 +317,7 @@ Released: 2025-01-21
283
317
 
284
318
  * Internal: Basic REST calls now return data directly. (no more `data` key). For advanced calls, use `call`.
285
319
  * 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`.
320
+ * **global**: Option `format=multi` is replaced with option `multi_table=yes`.
287
321
  * `faspex5`: Removed deprecated option `value` replaced with positional parameter.
288
322
 
289
323
  ## 4.19.0
@@ -1047,7 +1081,7 @@ Released: 2021-02-03
1047
1081
 
1048
1082
  ### New Features
1049
1083
 
1050
- * The option `value` of command `find`, to filter on name, is not optional.
1084
+ * The option `value` of command `find` to filter on name is mandatory.
1051
1085
  * `find` now also reports all types (file, folder, link).
1052
1086
  * `find` now is able to report all fields (type, size, etc...).
1053
1087
 
@@ -1077,7 +1111,7 @@ Released: 2021-02-03
1077
1111
  ### New Features
1078
1112
 
1079
1113
  * Improved wizard (prepare for AoC global client id).
1080
- * Preview generator: Added option : --skip-format=&lt;png,mp4&gt;.
1114
+ * Preview generator: Added option : `skip_format` with values `png`, `mp4`.
1081
1115
  * Removed outdated pictures from this doc.
1082
1116
 
1083
1117
  ## 0.9.19
@@ -1145,7 +1179,7 @@ Released: 2021-02-03
1145
1179
 
1146
1180
  ### New Features
1147
1181
 
1148
- * `faspex`: Use option `once_only` set to `yes` to enable cargo like function. id=NEW deprecated.
1182
+ * `faspex`: Use option `once_only` set to `yes` to enable cargo like function. `id=NEW` deprecated.
1149
1183
  * `aoc`: Share to share transfer with command `transfer`.
1150
1184
 
1151
1185
  ## 0.9.7
@@ -1154,8 +1188,8 @@ Released: 2021-02-03
1154
1188
 
1155
1189
  * Homogeneous transfer spec for `node` and [`direct`](README.md#agt_direct) transfer agents.
1156
1190
  * 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.
1191
+ * Catch `mxf` extension in preview as video.
1192
+ * Faspex: Possibility to download all packages by specifying `id=ALL`.
1159
1193
  * Faspex: To come: Cargo-like function to download only new packages with id=NEW.
1160
1194
 
1161
1195
  ## 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,101 @@ 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
+ | `LOG_SECRETS` | `yes`/`no` | Toggles the logging of secrets in `rake` tasks. |
113
+ | `LOG_LEVEL` | `debug`, ... | Sets the logging verbosity for `rake` tasks. |
114
+ | `ENABLE_COVERAGE` | set/unset | Enables test coverage analysis when defined. |
115
+ | `SIGNING_KEY` | File path | Path to the signing key used for building the gem file. |
116
+ | `SIGNING_KEY_PEM` | PEM Value | The PEM content of the signing key. |
117
117
 
118
- These can be set either as environment variables or directly on the `rake` command line.
118
+ These values can be set as standard environment variables or passed directly to the `rake` command.
119
119
 
120
- Setting `SIGNING_KEY_PEM` creates file `$HOME/.gem/signing_key.pem` and sets `SIGNING_KEY` to that path.
120
+ Setting `SIGNING_KEY_PEM` automatically generates a file at `$HOME/.gem/signing_key.pem` and sets the `SIGNING_KEY` variable accordingly.
121
121
 
122
122
  > [!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.
123
+ > `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
124
 
126
- To use the CLI directly from the development environment, add this to your shell profile (adapt the real path):
125
+ To run the CLI directly from your source directory, add the following to your shell profile (adjust the path as necessary):
127
126
 
128
- ```bash
127
+ ```shell
129
128
  dev_ascli=$HOME/github/aspera-cli
130
129
  export PATH=$dev_ascli/bin:$PATH
131
130
  export RUBYLIB=$dev_ascli/lib:$RUBYLIB
@@ -135,83 +134,87 @@ export RUBYLIB=$dev_ascli/lib:$RUBYLIB
135
134
 
136
135
  Documentation is generated with `pandoc` and `LaTeX`.
137
136
 
138
- The IBM `Plex` font is used; for installation instructions, see [IBM Plex](https://www.ibm.com/plex/).
137
+ The project utilizes the **IBM Plex font**.
138
+ Installation instructions can be found at [IBM Plex](https://www.ibm.com/plex/).
139
139
 
140
- On macOS, to install `lualatex` and all packages:
140
+ On macOS, install `lualatex` and required packages via Homebrew:
141
141
 
142
- ```bash
142
+ ```shell
143
143
  brew install texlive
144
144
  ```
145
145
 
146
- If `lualatex` is installed using another method, ensure that the following packages are installed:
146
+ If using an alternative installation method, ensure the following packages are present:
147
147
 
148
- ```bash
148
+ ```shell
149
149
  tlmgr update --self
150
150
  tlmgr install fvextra selnolig lualatex-math
151
151
  ```
152
152
 
153
- To check URLs during documentation generation, set the environment variable: `ASPERA_CLI_DOC_CHECK_LINKS=1`.
153
+ - Validate URLs during generation with:
154
154
 
155
- To debug documentation generation, set the environment variable: `ASPERA_CLI_DOC_DEBUG=debug`.
155
+ ```shell
156
+ rake doc:check_links
157
+ ```
158
+
159
+ - Debug the generation process: `ASPERA_CLI_DOC_DEBUG=debug`.
156
160
 
157
- To generate documentation:
161
+ - Build the documentation:
158
162
 
159
- ```bash
163
+ ```shell
160
164
  rake doc:build
161
165
  ```
162
166
 
163
167
  ## Test Environment
164
168
 
165
- Refer to <tests/README.md>.
169
+ Detailed testing information can be found in <tests/README.md>.
166
170
 
167
171
  ## Build
168
172
 
169
- The unsigned gem is built with:
173
+ To build an unsigned gem:
170
174
 
171
- ```bash
175
+ ```shell
172
176
  bundle install
173
177
  bundle exec rake unsigned
174
178
  ```
175
179
 
176
- If you don't want to install optional gems:
180
+ To exclude optional gems from the installation:
177
181
 
178
- ```bash
182
+ ```shell
179
183
  bundle config set without optional
180
184
  ```
181
185
 
182
186
  ### Signed gem
183
187
 
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).
188
+ Generating a signed gem requires a **private key**, specified via the `SIGNING_KEY` environment variable.
189
+ The gem is signed using the public certificate in `certs` and the **private key**.
187
190
 
188
- ```bash
191
+ ```shell
189
192
  bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
190
193
  ```
191
194
 
192
- Refer to <certs/README.md>.
195
+ For more details, see <certs/README.md>.
193
196
 
194
- ### gRPC stubs for transfer SDK
197
+ ### gRPC stubs for Transfer SDK
195
198
 
196
- Update with:
199
+ To update the stubs:
197
200
 
198
- ```bash
201
+ ```shell
199
202
  bundle exec rake tools:grpc
200
203
  ```
201
204
 
202
- It downloads the latest `proto` file and then compiles it into ruby sources included in the repo.
205
+ This task downloads the latest `.proto` files and compiles them into the Ruby source files included in the repository.
203
206
 
204
207
  ## Container image build
205
208
 
206
- See [Container build](./container/README.md).
209
+ Refer to the [Container build guide](./container/README.md).
207
210
 
208
211
  ## Single executable build
209
212
 
210
- See [Executable build](build/binary/README.md).
213
+ Refer to the [Executable build guide](build/binary/README.md).
211
214
 
212
- To list operations:
215
+ To list related `rake` tasks:
213
216
 
214
- ```bash
217
+ ```shell
215
218
  bundle exec rake -T ^binary:
216
219
  ```
217
220
 
@@ -219,87 +222,95 @@ bundle exec rake -T ^binary:
219
222
 
220
223
  ### Branching Strategy
221
224
 
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.
225
+ This project maintains a single `main` branch.
226
+ During development, the version in `lib/aspera/cli/version.rb` includes a `.pre` suffix (e.g., `x.y.z.pre`).
224
227
 
225
- Feature development and bug fixes can be done either:
228
+ Contributions are handled as follows:
226
229
 
227
- - Directly on `main` for small changes
228
- - Via feature branches with pull requests for larger changes
230
+ - **Direct commits** to `main`: Permitted for minor changes.
229
231
 
230
- ### Checklist Before a New Release
232
+ - **Feature branches**: Required for significant changes via pull requests.
231
233
 
232
- When preparing for a new release, do the following:
234
+ ### Pre-Release Checklist
233
235
 
234
- - Run the test suite:
236
+ Before a new release, ensure the following:
235
237
 
236
- ```bash
238
+ - **Pass all tests**:
239
+
240
+ ```shell
237
241
  bundle exec rake test:run
238
242
  ```
239
243
 
240
- - Verify that the container builds successfully (using the local gem file):
244
+ - **Verify container builds** (using the local gem):
241
245
 
242
- ```bash
246
+ ```shell
243
247
  bundle exec rake container:build'[local]'
244
248
  bundle exec rake container:test
245
249
  ```
246
250
 
251
+ - **Check documentation links**:
252
+
253
+ ```shell
254
+ bundle exec rake doc:check_links
255
+ ```
256
+
247
257
  ### Automated Release Process
248
258
 
249
- Releases are triggered via the GitHub Actions UI using the **Release** workflow (`.github/workflows/release.yml`).
259
+ Releases are managed through the GitHub Actions UI via the **New Release on GitHub** workflow (`.github/workflows/release.yml`).
260
+
261
+ 1. Navigate to **Actions** > **New Release on GitHub**
262
+ 2. Select **Run workflow**
263
+ 3. (Optionally) Specify:
264
+ - **Release version**: Defaults to the current `version.rb` value (minus the `.pre` suffix).
250
265
 
251
- To create a release:
266
+ e.g. current `a.b.c.pre` &rarr; `a.b.c`.
267
+ - **Next development version**: Defaults to an incremented minor version with the `.pre` suffix.
252
268
 
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.
269
+ e.g. release `a.b.c` &rarr; `a.(b+1).0.pre`.
258
270
  4. Click **Run workflow**
259
271
 
260
- The workflow automatically:
272
+ The automated workflow performs the following:
261
273
 
262
- 1. Updates `version.rb` with the release version
263
- 2. Rebuilds documentation (PDF manual, Markdown README)
274
+ 1. Updates `version.rb` to the release version
275
+ 2. Rebuilds all documentation (PDF and Markdown)
264
276
  3. Commits the changes
265
277
  4. Creates and pushes the release tag
266
278
  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.
279
+ 6. Increments `version.rb` to the next development version.
280
+ 7. Commits and pushes the version bump to `main`.
269
281
 
270
282
  ### Manual Release Process (Alternative)
271
283
 
272
- If needed, releases can still be done manually.
273
- Basically, follow the same procedure as in the GitHub action:
284
+ If necessary, you can mirror the automated process manually:
274
285
 
275
286
  - Update the version in `lib/aspera/cli/version.rb` (remove `.pre` suffix)
276
287
 
277
- - Build the PDF manual in `pkg`:
288
+ - Build the PDF manual:
278
289
 
279
290
  ```shell
280
291
  bundle exec rake doc:build
281
292
  ```
282
293
 
283
- - Build the signed `.gem` in `pkg`:
294
+ - Build the signed gem:
284
295
 
285
296
  ```shell
286
297
  bundle exec rake SIGNING_KEY=/path/to/vault/gem-private_key.pem
287
298
  ```
288
299
 
289
- - Create the release version tag and push it to GitHub:
300
+ - Tag the release and push to GitHub:
290
301
 
291
302
  ```shell
292
303
  bundle exec rake release_tag
293
304
  ```
294
305
 
295
- This will trigger the action `.github/workflows/deploy.yml`, which builds the gem file and pushes it to RubyGems.
306
+ This triggers the `.github/workflows/deploy.yml` action to publish to RubyGems.
296
307
 
297
- - After release, update `version.rb` to the next development version with `.pre` suffix
308
+ - Update `version.rb` to the next `.pre` development version.
298
309
 
299
310
  ## Future Improvements
300
311
 
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>
312
+ - Evaluate replacing custom REST and OAuth implementations with standard gems:
313
+ - [rest-client](https://github.com/rest-client/rest-client)
314
+ - [oauth2](https://github.com/oauth-xx/oauth2)
315
+ - Integrate `thor` <http://whatisthor.com/> or another standard Ruby CLI framework.
316
+ - 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(