aspera-cli 4.9.0 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/BUGS.md +20 -0
  4. data/CHANGELOG.md +509 -0
  5. data/CONTRIBUTING.md +118 -0
  6. data/README.md +1241 -916
  7. data/bin/ascli +4 -4
  8. data/bin/asession +11 -11
  9. data/docs/test_env.conf +32 -21
  10. data/examples/aoc.rb +4 -4
  11. data/examples/dascli +16 -9
  12. data/examples/faspex4.rb +8 -8
  13. data/examples/node.rb +12 -12
  14. data/examples/server.rb +10 -10
  15. data/lib/aspera/aoc.rb +273 -266
  16. data/lib/aspera/ascmd.rb +56 -54
  17. data/lib/aspera/ats_api.rb +4 -4
  18. data/lib/aspera/cli/basic_auth_plugin.rb +15 -12
  19. data/lib/aspera/cli/extended_value.rb +5 -5
  20. data/lib/aspera/cli/formater.rb +64 -64
  21. data/lib/aspera/cli/info.rb +2 -2
  22. data/lib/aspera/cli/listener/line_dump.rb +1 -1
  23. data/lib/aspera/cli/listener/logger.rb +1 -1
  24. data/lib/aspera/cli/listener/progress.rb +5 -6
  25. data/lib/aspera/cli/listener/progress_multi.rb +14 -19
  26. data/lib/aspera/cli/main.rb +66 -67
  27. data/lib/aspera/cli/manager.rb +112 -110
  28. data/lib/aspera/cli/plugin.rb +57 -36
  29. data/lib/aspera/cli/plugins/alee.rb +4 -4
  30. data/lib/aspera/cli/plugins/aoc.rb +309 -670
  31. data/lib/aspera/cli/plugins/ats.rb +44 -46
  32. data/lib/aspera/cli/plugins/bss.rb +10 -10
  33. data/lib/aspera/cli/plugins/config.rb +497 -378
  34. data/lib/aspera/cli/plugins/console.rb +12 -12
  35. data/lib/aspera/cli/plugins/cos.rb +18 -20
  36. data/lib/aspera/cli/plugins/faspex.rb +112 -114
  37. data/lib/aspera/cli/plugins/faspex5.rb +71 -46
  38. data/lib/aspera/cli/plugins/node.rb +379 -283
  39. data/lib/aspera/cli/plugins/orchestrator.rb +46 -46
  40. data/lib/aspera/cli/plugins/preview.rb +122 -114
  41. data/lib/aspera/cli/plugins/server.rb +137 -83
  42. data/lib/aspera/cli/plugins/shares.rb +30 -29
  43. data/lib/aspera/cli/plugins/sync.rb +13 -33
  44. data/lib/aspera/cli/transfer_agent.rb +60 -59
  45. data/lib/aspera/cli/version.rb +1 -1
  46. data/lib/aspera/colors.rb +3 -3
  47. data/lib/aspera/command_line_builder.rb +27 -27
  48. data/lib/aspera/cos_node.rb +22 -20
  49. data/lib/aspera/data_repository.rb +1 -1
  50. data/lib/aspera/environment.rb +35 -15
  51. data/lib/aspera/fasp/agent_base.rb +15 -15
  52. data/lib/aspera/fasp/agent_connect.rb +23 -21
  53. data/lib/aspera/fasp/agent_direct.rb +66 -64
  54. data/lib/aspera/fasp/agent_httpgw.rb +141 -78
  55. data/lib/aspera/fasp/agent_node.rb +23 -21
  56. data/lib/aspera/fasp/agent_trsdk.rb +20 -20
  57. data/lib/aspera/fasp/error.rb +3 -2
  58. data/lib/aspera/fasp/error_info.rb +11 -8
  59. data/lib/aspera/fasp/installation.rb +79 -79
  60. data/lib/aspera/fasp/listener.rb +1 -1
  61. data/lib/aspera/fasp/parameters.rb +86 -71
  62. data/lib/aspera/fasp/parameters.yaml +7 -4
  63. data/lib/aspera/fasp/resume_policy.rb +8 -8
  64. data/lib/aspera/fasp/transfer_spec.rb +35 -2
  65. data/lib/aspera/fasp/uri.rb +7 -7
  66. data/lib/aspera/faspex_gw.rb +7 -5
  67. data/lib/aspera/hash_ext.rb +3 -3
  68. data/lib/aspera/id_generator.rb +5 -5
  69. data/lib/aspera/keychain/encrypted_hash.rb +38 -105
  70. data/lib/aspera/keychain/macos_security.rb +128 -57
  71. data/lib/aspera/log.rb +7 -7
  72. data/lib/aspera/nagios.rb +19 -18
  73. data/lib/aspera/node.rb +209 -35
  74. data/lib/aspera/oauth.rb +37 -36
  75. data/lib/aspera/open_application.rb +19 -11
  76. data/lib/aspera/persistency_action_once.rb +4 -4
  77. data/lib/aspera/persistency_folder.rb +16 -15
  78. data/lib/aspera/preview/file_types.rb +8 -8
  79. data/lib/aspera/preview/generator.rb +67 -67
  80. data/lib/aspera/preview/utils.rb +27 -27
  81. data/lib/aspera/proxy_auto_config.js +41 -41
  82. data/lib/aspera/proxy_auto_config.rb +21 -14
  83. data/lib/aspera/rest.rb +72 -67
  84. data/lib/aspera/rest_call_error.rb +2 -1
  85. data/lib/aspera/rest_error_analyzer.rb +18 -17
  86. data/lib/aspera/rest_errors_aspera.rb +16 -16
  87. data/lib/aspera/secret_hider.rb +15 -13
  88. data/lib/aspera/ssh.rb +11 -10
  89. data/lib/aspera/sync.rb +158 -44
  90. data/lib/aspera/temp_file_manager.rb +2 -2
  91. data/lib/aspera/uri_reader.rb +4 -4
  92. data/lib/aspera/web_auth.rb +14 -13
  93. data.tar.gz.sig +0 -0
  94. metadata +11 -36
  95. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3e2f918183f0c2eb62309f27271244bfc81ed1c931cfc9d0779e4ed9817fdd6
4
- data.tar.gz: cfb19c8d6d746b4fcdea4e2c886ab6a4d8a77fc7c8c0e331909af57f53e697a6
3
+ metadata.gz: '08292755646ee9ced95363ddb7b109cec20c3826a72d8df12e54cabc9cfab2dd'
4
+ data.tar.gz: 881782cb6655d6be4783ae34761bb44ffc84cb6972e223ec7cdde8020de6af1d
5
5
  SHA512:
6
- metadata.gz: 2e31f4ef2df4c1e3fb4856c67431640bbfe0d5ade15c67dfa99dda63e6fb5f453344392e1a071ab26eb8d7167d3d244a7d98a2c33e2f9f3a6b517b4b910c4929
7
- data.tar.gz: 9d5e53ac4513a8722cf46953524641f038697cd7c9a1f607e54e67df13275dc438ec33564486f866eb6adedd680b2404660df846e5524202e4a71b40c3072524
6
+ metadata.gz: d222717fdc4632b1d423b4df6479714135469ba2d5ddaa6fb6cac185eeba8f9d96db4adf4484872224c3c5b4e7afe5dcc48d7365e0933954d1eadc80b9951b6b
7
+ data.tar.gz: ca5b15ae38a0bd0841e5cb1aba74f75de99954d8ee09b8f86b0109bc11e58d4e54862b9c52afdca6da54808be17c6a778ae7000f8d2e6c8947a74eb66aac74a0
checksums.yaml.gz.sig CHANGED
Binary file
data/BUGS.md ADDED
@@ -0,0 +1,20 @@
1
+ # Reporting bugs and security vulnerabilities
2
+
3
+ Report bug, including vulnerability issues following this:
4
+
5
+ Please, make sure to include the following information:
6
+
7
+ * aspera-cli version number.
8
+ * Operating system name/version (uname -a if Unix)
9
+ * relevant section of output of error with option --log-level=debug
10
+ * Any other relevant information.
11
+
12
+ [Use Github (Public Issue Reporting)](https://github.com/IBM/aspera-cli/issues)
13
+
14
+
15
+ ## Security Policy
16
+
17
+ | Version | Supported |
18
+ | ------- | ------------------ |
19
+ | >= 4.0 | :white_check_mark: |
20
+ | < 4.0 | :x: |
data/CHANGELOG.md ADDED
@@ -0,0 +1,509 @@
1
+ # Changes (Release notes)
2
+
3
+ * 4.11.0
4
+
5
+ * new: vault: secret finder, migration from config file
6
+ * new: allow removal of transferspec parameter by setting value to `null`
7
+ * new: option `ascp_opts` allows to provide native `ascp` options on command line
8
+ * new: command `sync` added to `node` (gen4) and `server` plugins, also available in `aoc`
9
+ * fix: security: no shell interpolation
10
+ * fix: when WSS and node agent: no localhost (certificate)
11
+ * fix: #99 `aoc file download` for single shared folder
12
+ * fix: due to change of API in faspex 5 for send pakage (paths is mandatory for any type of transfer now)
13
+ * fix: Oauth web authentication was broken, fixed now
14
+ * change: (break) container image has entry point
15
+ * change: (break) `aoc admin res node` commands `v3` and `v4` replaced with `do` and command `v3` moved inside `do`
16
+ * change: (break) renamed options for `sync`
17
+ * change: node gen4 operations are moved from aoc plugin to node plugin but made available where gen4 is used
18
+ * change: if wss is enabled on server, use wss
19
+ * lots of cleanup and refactoring
20
+
21
+ * 4.10.0
22
+
23
+ * new: httpgw transfer agent: support api v2, support transfer through http proxy, including proxy password
24
+ * new: faspex5: get bearer token
25
+ * updates: for docker container version
26
+ * break: option `secrets` is renamed to `vault`
27
+
28
+ * 4.9.0
29
+
30
+ * new: shares: import of SAML users and LDAP users
31
+ * new: M1 apple silicon support SDK install (uses x86 ascp)
32
+ * new: support bulk operation more globally (create/delete), not all ops , though
33
+ * new: added missing transfer spec parameters, e.g. `src_base`, `password`
34
+ * new: improved documentation on faspex and aoc package send
35
+ * fix: `node do` command fixed
36
+ * fix: improved secret hiding from logs
37
+ * change: (break) removed rarely commands nodeadmin, configuration, userdata, ctl from plugin `server`
38
+ as well as option `cmd_prefix`
39
+ * change: `ascli` runs as user `cliuser` instead of `root` in container
40
+ * change: default access right for config folder is now user only, including private keys
41
+
42
+ * 4.8.0
43
+
44
+ * new: #76 add resource `group_membership` in `aoc`
45
+ * new: add resource `metadata_profile` in `faspex5`
46
+ * new: add command `user profile` in `faspex5`
47
+ * new: add config wizard for `faspex5`
48
+ * new: #75 gem is signed
49
+ * change: (break) removed dependency on gem `grpc` which is used only for the `trsdk` transfer agent. Users can install the gem manually if needed.
50
+ * change: (break) hash vault keys are string instead of symbol
51
+ * change: cleanup with rubocop, all strings are immutable now by default, list contants are frozen
52
+ * change: removed Hash.dig implemetation because it is by default in Ruby >= 2.3
53
+ * change: default is now to hide secrets on command output. Set option `show_secrets` to reveal secrets.
54
+ * change: option `insecure` displays a warning
55
+
56
+ * 4.7.0
57
+
58
+ * new: option to specify font used to generate image of text file in `preview`
59
+ * new: #66 improvement for content protection (support standard transfer spec options for direct agent)
60
+ * new: option `fpac` is now applicable to all ruby based HTTP connections, i.e. API calls
61
+ * new: option `show_secrets` to reveal secrets in command output
62
+ * new: added and updated commands for Faspex 5
63
+ * new: option `cache_tokens`
64
+ * new: Faspex4 dropbox packages can now be received by id
65
+ * change: (break) command `conf gem path` replaces `conf gem_path`
66
+ * change: (break) option `fpac` expects a value instead of URL
67
+ * change: (break) option `cipher` in transfer spec must have hyphen
68
+ * change: (break) renamed option `log_passwords` to `log_secrets`
69
+ * change: (break) removed plugin `shares2` as products is now EOL
70
+ * fix: After AoC version update, wizard did not detect AoC properly
71
+
72
+ * 4.6.0
73
+
74
+ * new: command `conf plugin create`
75
+ * new: global option `plugin_folder`
76
+ * new: global option `transpose_single`
77
+ * new: simplified metadata passing for shared inbox package creation in AoC
78
+ * change: (break) command `aoc packages shared_inboxes list` replaces `aoc user shared_inboxes`
79
+ * change: (break) command `aoc user profile` replaces `aoc user info`
80
+ * change: (break) command `aoc user workspaces list` replaces `aoc user workspaces`
81
+ * change: (break) command `aoc user workspaces current` replaces `aoc workspace`
82
+ * change: (break) command `conf plugin list` replaces `conf plugins`
83
+ * change: (break) command `conf connect` simplified
84
+ * fix: #60 ascli executable was not installed by default in 4.5.0
85
+ * fix: add password hiding case in logs
86
+
87
+ * 4.5.0
88
+
89
+ * new: support transfer agent: [Transfer SDK](README.md#agt_trsdk)
90
+ * new: support [http socket options](README.md#http_options)
91
+ * new: logs hide passwords and secrets, option `log_passwords` to enable logging secrets
92
+ * new: `config vault` supports encrypted passwords, also macos keychain
93
+ * new: `config preset` command for consistency with id
94
+ * new: identifier can be provided using either option `id` or directly after the command, e.g. `delete 123` is the same as `delete --id=123`
95
+ * change: when using wss, use [ruby's CA certs](README.md#certificates)
96
+ * change: unexpected parameter makes exit code not zero
97
+ * change: (break) options `id` and `name` cannot be specified at the same time anymore, use [positional identifer or name selection](README.md#res_select)
98
+ * change: (break) `aoc admin res node` does not take workspace main node as default node if no `id` specified.
99
+ * change: (break): `orchestrator workflow status` requires id, and supports special id `ALL`
100
+ * fix: various smaller fixes and renaming of some internal classes (transfer agents and few other)
101
+
102
+ * 4.4.0
103
+
104
+ * new: `aoc packages list` add possibility to add filter with option `query`
105
+ * new: `aoc admin res xxx list` now get all items by default #50
106
+ * new: `preset` option can specify name or hash value
107
+ * new: `node` plugin accepts bearer token and access key as credential
108
+ * new: `node` option `token_type` allows using basic token in addition to aspera type.
109
+ * change: `server`: option `username` not mandatory anymore: xfer user is by default. If transfer spec token is provided, password or keys are optional, and bypass keys are used by default.
110
+ * change: (break) resource `apps_new` of `aoc` replaced with `application` (more clear)
111
+
112
+ * 4.3.0
113
+
114
+ * new: parameter `multi_incr_udp` for option `transfer_info`: control if UDP port is incremented when multi-session is used on [`direct`](README.md#agt_direct) transfer agent.
115
+ * new: command `aoc files node_info` to get node information for a given folder in the Files application of AoC. Allows cross-org or cross-workspace transfers.
116
+
117
+ * 4.2.2
118
+
119
+ * new: `faspex package list` retrieves the whole list, not just first page
120
+ * new: support web based auth to aoc and faspex 5 using HTTPS, new dependency on gem `webrick`
121
+ * new: the error "Remote host is not who we expected" displays a special remediation message
122
+ * new: `conf ascp spec` displays supported transfer spec
123
+ * new: options `notif_to` and `notif_template` to send email notifications on transfer (and other events)
124
+ * fix: space character in `faspe:` url are precent encoded if needed
125
+ * fix: `preview scan`: if file_id is unknown, ignore and continue scan
126
+ * change: for commands that potentially execute several transfers (`package recv --id=ALL`), if one transfer fails then ascli exits with code 1 (instead of zero=success)
127
+ * change: (break) option `notify` or `aoc` replaced with `notif_to` and `notif_template`
128
+
129
+ * 4.2.1
130
+
131
+ * new: command `faspex package recv` supports link of type: `faspe:`
132
+ * new: command `faspex package recv` supports option `recipient` to specify dropbox with leading `*`
133
+
134
+ * 4.2.0
135
+
136
+ * new: command `aoc remind` to receive organization membership by email
137
+ * new: in `preview` option `value` to filter out on file name
138
+ * new: `initdemo` to initialize for demo server
139
+ * new: [`direct`](README.md#agt_direct) transfer agent options: `spawn_timeout_sec` and `spawn_delay_sec`
140
+ * fix: on Windows `conf ascp use` expects ascp.exe
141
+ * fix: (break) multi_session_threshold is Integer, not String
142
+ * fix: `conf ascp install` renames sdk folder if it already exists (leftover shared lib may make fail)
143
+ * fix: removed replace_illegal_chars from default aspera.conf causing "Error creating illegal char conversion table"
144
+ * change: (break) `aoc apiinfo` is removed, use `aoc servers` to provide the list of cloud systems
145
+ * change: (break) parameters for resume in `transfer-info` for [`direct`](README.md#agt_direct) are now in sub-key `"resume"`
146
+
147
+ * 4.1.0
148
+
149
+ * fix: remove keys from transfer spec and command line when not needed
150
+ * fix: default to create_dir:true so that sending single file to a folder does not rename file if folder does not exist
151
+ * new: update documentation with regard to offline and docker installation
152
+ * new: renamed command `nagios_check` to `health`
153
+ * new: agent `http_gw` now supports upload
154
+ * new: added option `sdk_url` to install SDK from local file for offline install
155
+ * new: check new gem version periodically
156
+ * new: the --fields= option, support -_fieldname_ to remove a field from default fields
157
+ * new: Oauth tokens are discarded automatically after 30 minutes (useful for COS delegated refresh tokens)
158
+ * new: mimemagic is now optional, needs manual install for `preview`, compatible with version 0.4.x
159
+ * new: AoC a password can be provided for a public link
160
+ * new: `conf doc` take an optional parameter to go to a section
161
+ * new: initial support for Faspex 5 Beta 1
162
+
163
+ * 4.0.0
164
+
165
+ * now available as open source (github) with general cleanup
166
+ * changed default tool name from `mlia` to `ascli`
167
+ * changed `aspera` command to `aoc`
168
+ * changed gem name from `asperalm` to `aspera-cli`
169
+ * changed module name from `Asperalm` to `Aspera`
170
+ * removed command `folder` in `preview`, merged to `scan`
171
+ * persistency files go to sub folder instead of main folder
172
+ * added possibility to install SDK: `config ascp install`
173
+
174
+ * 0.11.8
175
+
176
+ * Simplified to use `unoconv` instead of bare `libreoffice` for office conversion, as `unoconv` does not require a X server (previously using Xvfb
177
+
178
+ * 0.11.7
179
+
180
+ * rework on rest call error handling
181
+ * use option `display` with value `data` to remove out of extraneous information
182
+ * fixed option `lock_port` not working
183
+ * generate special icon if preview failed
184
+ * possibility to choose transfer progress bar type with option `progress`
185
+ * AoC package creation now output package id
186
+
187
+ * 0.11.6
188
+
189
+ * orchestrator : added more choice in auth type
190
+ * preview: cleanup in generator (removed and renamed parameters)
191
+ * preview: better documentation
192
+ * preview: animated thumbnails for video (option: `video_png_conv=animated`)
193
+ * preview: new event trigger: `trevents` (`events` seems broken)
194
+ * preview: unique tmp folder to avoid clash of multiple instances
195
+ * repo: added template for secrets used for testing
196
+
197
+ * 0.11.5
198
+
199
+ * added option `default_ports` for AoC (see manual)
200
+ * allow bulk delete in `aspera files` with option `bulk=yes`
201
+ * fix getting connect versions
202
+ * added section for Aix
203
+ * support all ciphers for [`direct`](README.md#agt_direct) agent (including gcm, etc..)
204
+ * added transfer spec param `apply_local_docroot` for [`direct`](README.md#agt_direct)
205
+
206
+ * 0.11.4
207
+
208
+ * possibility to give shared inbox name when sending a package (else use id and type)
209
+
210
+ * 0.11.3
211
+
212
+ * minor fixes on multi-session: avoid exception on progress bar
213
+
214
+ * 0.11.2
215
+
216
+ * fixes on multi-session: progress bat and transfer spec param for "direct"
217
+
218
+ * 0.11.1
219
+
220
+ * enhanced short_link creation commands (see examples)
221
+
222
+ * 0.11
223
+
224
+ * add transfer spec option (agent `direct` only) to provide file list directly to ascp: `EX_file_list`.
225
+
226
+ * 0.10.18
227
+
228
+ * new option in. `server` : `ssh_options`
229
+
230
+ * 0.10.17
231
+
232
+ * fixed problem on `server` for option `ssh_keys`, now accepts both single value and list.
233
+ * new modifier: `@list:<separator>val1<separator>...`
234
+
235
+ * 0.10.16
236
+
237
+ * added list of shared inboxes in workspace (or global), use `--query=@json:'{}'`
238
+
239
+ * 0.10.15
240
+
241
+ * in case of command line error, display the error cause first, and non-parsed argument second
242
+ * AoC : Activity / Analytics
243
+
244
+ * 0.10.14
245
+
246
+ * added missing bss plugin
247
+
248
+ * 0.10.13
249
+
250
+ * added Faspex5 (use option `value` to give API arguments)
251
+
252
+ * 0.10.12
253
+
254
+ * added support for AoC node registration keys
255
+ * replaced option : `local_resume` with `transfer_info` for agent [`direct`](README.md#agt_direct)
256
+ * Transfer agent is no more a Singleton instance, but only one is used in CLI
257
+ * `@incps` : new extended value modifier
258
+ * ATS: no more provides access keys secrets: now user must provide it
259
+ * begin work on "aoc" transfer agent
260
+
261
+ * 0.10.11
262
+
263
+ * minor refactor and fixes
264
+
265
+ * 0.10.10
266
+
267
+ * fix on documentation
268
+
269
+ * 0.10.9.1
270
+
271
+ * add total number of items for AoC resource list
272
+ * better gem version dependency (and fixes to support Ruby 2.0.0)
273
+ * removed aoc search_nodes
274
+
275
+ * 0.10.8
276
+
277
+ * removed option: `fasp_proxy`, use pseudo transfer spec parameter: `EX_fasp_proxy_url`
278
+ * removed option: `http_proxy`, use pseudo transfer spec parameter: `EX_http_proxy_url`
279
+ * several other changes..
280
+
281
+ * 0.10.7
282
+
283
+ * fix: ascli fails when username cannot be computed on Linux.
284
+
285
+ * 0.10.6
286
+
287
+ * FaspManager: transfer spec `authentication` no more needed for local transfer to use Aspera public keys. public keys will be used if there is a token and no key or password is provided.
288
+ * gem version requirements made more open
289
+
290
+ * 0.10.5
291
+
292
+ * fix faspex package receive command not working
293
+
294
+ * 0.10.4
295
+
296
+ * new options for AoC : `secrets`
297
+ * ACLI-533 temp file list folder to use file lists is set by default, and used by asession
298
+
299
+ * 0.10.3
300
+
301
+ * included user name in oauth bearer token cache for AoC when JWT is used.
302
+
303
+ * 0.10.2
304
+
305
+ * updated `search_nodes` to be more generic, so it can search not only on access key, but also other queries.
306
+ * added doc for "cargo" like actions
307
+ * added doc for multi-session
308
+
309
+ * 0.10.1
310
+
311
+ * AoC and node v4 "browse" works now on non-folder items: file, link
312
+ * initial support for AoC automation (do not use yet)
313
+
314
+ * 0.10
315
+
316
+ * support for transfer using IBM Cloud Object Storage
317
+ * improved `find` action using arbitrary expressions
318
+
319
+ * 0.9.36
320
+
321
+ * added option to specify file pair lists
322
+
323
+ * 0.9.35
324
+
325
+ * updated plugin `preview` , changed parameter names, added documentation
326
+ * fix in `ats` plugin : instance id needed in request header
327
+
328
+ * 0.9.34
329
+
330
+ * parser "@preset" can be used again in option "transfer_info"
331
+ * some documentation re-organizing
332
+
333
+ * 0.9.33
334
+
335
+ * new command to display basic token of node
336
+ * new command to display bearer token of node in AoC
337
+ * the --fields= option, support +_fieldname_ to add a field to default fields
338
+ * many small changes
339
+
340
+ * 0.9.32
341
+
342
+ * all Faspex public links are now supported
343
+ * removed faspex operation recv_publink
344
+ * replaced with option `link` (consistent with AoC)
345
+
346
+ * 0.9.31
347
+
348
+ * added more support for public link: receive and send package, to user or dropbox and files view.
349
+ * delete expired file lists
350
+ * changed text table gem from text-table to terminal-table because it supports multiline values
351
+
352
+ * 0.9.27
353
+
354
+ * basic email support with SMTP
355
+ * basic proxy auto config support
356
+
357
+ * 0.9.26
358
+
359
+ * table display with --fields=ALL now includes all column names from all lines, not only first one
360
+ * unprocessed argument shows error even if there is an error beforehand
361
+
362
+ * 0.9.25
363
+
364
+ * the option `value` of command `find`, to filter on name, is not optional
365
+ * `find` now also reports all types (file, folder, link)
366
+ * `find` now is able to report all fields (type, size, etc...)
367
+
368
+ * 0.9.24
369
+
370
+ * fix bug where AoC node to node transfer did not work
371
+ * fix bug on error if ED25519 private key is defined in .ssh
372
+
373
+ * 0.9.23
374
+
375
+ * defined REST error handlers, more error conditions detected
376
+ * commands to select specific ascp location
377
+
378
+ * 0.9.21
379
+
380
+ * supports simplified wizard using global client
381
+ * only ascp binary is required, other SDK (keys) files are now generated
382
+
383
+ * 0.9.20
384
+
385
+ * improved wizard (prepare for AoC global client id)
386
+ * preview generator: addedoption : --skip-format=&lt;png,mp4&gt;
387
+ * removed outdated pictures from this doc
388
+
389
+ * 0.9.19
390
+
391
+ * added command aspera bearer --scope=xx
392
+
393
+ * 0.9.18
394
+
395
+ * enhanced aspera admin events to support query
396
+
397
+ * 0.9.16
398
+
399
+ * AoC transfers are now reported in activity app
400
+ * new interface for Rest class authentication (keep backward compatibility)
401
+
402
+ * 0.9.15
403
+
404
+ * new feature: "find" command in aspera files
405
+ * sample code for transfer API
406
+
407
+ * 0.9.12
408
+
409
+ * add nagios commands
410
+ * support of ATS for IBM Cloud, removed old version based on aspera id
411
+
412
+ * 0.9.11
413
+
414
+ * Breaking change: @stdin is now @stdin:
415
+ * support of ATS for IBM Cloud, removed old version based on aspera id
416
+
417
+ * 0.9.10
418
+
419
+ * Breaking change: parameter transfer-node becomes more generic: transfer-info
420
+ * Display SaaS storage usage with command: aspera admin res node --id=nn info
421
+ * cleaner way of specifying source file list for transfers
422
+ * Breaking change: replaced download_mode option with http_download action
423
+
424
+ * 0.9.9
425
+
426
+ * Breaking change: "aspera package send" parameter deprecated, use the --value option instead with "recipients" value. See example.
427
+ * Now supports "cargo" for Aspera on Cloud (automatic package download)
428
+
429
+ * 0.9.8
430
+
431
+ * Faspex: use option once_only set to yes to enable cargo like function. id=NEW deprecated.
432
+ * AoC: share to share transfer with command "transfer"
433
+
434
+ * 0.9.7
435
+
436
+ * homogeneous transfer spec for `node` and [`direct`](README.md#agt_direct) transfer agents
437
+ * preview persistency goes to unique file by default
438
+ * catch mxf extension in preview as video
439
+ * Faspex: possibility to download all packages by specifying id=ALL
440
+ * Faspex: to come: cargo-like function to download only new packages with id=NEW
441
+
442
+ * 0.9.6
443
+
444
+ * Breaking change: `@param:`is now `@preset:` and is generic
445
+ * AoC: added command to display current workspace information
446
+
447
+ * 0.9.5
448
+
449
+ * new parameter: new_user_option used to choose between public_link and invite of external users.
450
+ * fixed bug in wizard, and wizard uses now product detection
451
+
452
+ * 0.9.4
453
+
454
+ * Breaking change: onCloud file list follow --source convention as well (plus specific case for download when first path is source folder, and other are source file names).
455
+ * AoC Package send supports external users
456
+ * new command to export AoC config to Aspera CLI config
457
+
458
+ * 0.9.3
459
+
460
+ * REST error message show host and code
461
+ * option for quiet display
462
+ * modified transfer interface and allow token re-generation on error
463
+ * async add admin command
464
+ * async add db parameters
465
+ * Breaking change: new option "sources" to specify files to transfer
466
+
467
+ * 0.9.2
468
+
469
+ * Breaking change: changed AoC package creation to match API, see AoC section
470
+
471
+ * 0.9.1
472
+
473
+ * Breaking change: changed faspex package creation to match API, see Faspex section
474
+
475
+ * 0.9
476
+
477
+ * Renamed the CLI from aslmcli to ascli
478
+ * Automatic rename and conversion of former config folder from aslmcli to ascli
479
+
480
+ * 0.7.6
481
+
482
+ * add "sync" plugin
483
+
484
+ * 0.7
485
+
486
+ * Breaking change: AoC package recv take option if for package instead of argument.
487
+ * Breaking change: Rest class and Oauth class changed init parameters
488
+ * AoC: receive package from public link
489
+ * select by col value on output
490
+ * added rename (AoC, node)
491
+
492
+ * 0.6.19
493
+
494
+ * change: (break) ats server list provisioned &rarr; ats cluster list
495
+ * change: (break) ats server list clouds &rarr; ats cluster clouds
496
+ * change: (break) ats server list instance --cloud=x --region=y &rarr; ats cluster show --cloud=x --region=y
497
+ * change: (break) ats server id xxx &rarr; ats cluster show --id=xxx
498
+ * change: (break) ats subscriptions &rarr; ats credential subscriptions
499
+ * change: (break) ats api_key repository list &rarr; ats credential cache list
500
+ * change: (break) ats api_key list &rarr; ats credential list
501
+ * change: (break) ats access_key id xxx &rarr; ats access_key --id=xxx
502
+
503
+ * 0.6.18
504
+
505
+ * some commands take now --id option instead of id command.
506
+
507
+ * 0.6.15
508
+
509
+ * Breaking change: "files" application renamed to "aspera" (for "Aspera on Cloud"). "repository" renamed to "files". Default is automatically reset, e.g. in config files and change key "files" to "aspera" in preset "default".
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,118 @@
1
+ # Contributing
2
+
3
+ ## Reporting Issues and Vulnerabilities
4
+
5
+ You can report issues at <https://github.com/IBM/aspera-cli/issues>
6
+
7
+ Before you go ahead please search existing issues for your problem.
8
+
9
+ To make sure that we can help you quickly please include and check the following information:
10
+
11
+ - Include the ascli version you are running in your report.
12
+ - If you are not running the latest version (please check), update.
13
+ - Include your `ruby -e "puts RUBY_DESCRIPTION"`.
14
+
15
+ Thanks!
16
+
17
+ ## Making Contributions
18
+
19
+ To fetch & test the gem for development, do:
20
+
21
+ ```bash
22
+ git clone https://github.com/IBM/aspera-cli.git
23
+ cd aspera-cli
24
+ bundle install
25
+ make test
26
+ ```
27
+
28
+ If you want to contribute, please:
29
+
30
+ - Fork the project.
31
+ - Make your feature addition or bug fix.
32
+ - Add tests for it. This is important so I don't break it in a future version unintentionally.
33
+ - **Bonus Points** go out to anyone who also updates `CHANGELOG.md` :)
34
+ - Send a pull request on GitHub.
35
+ - run Rubocop to comply for coding standards
36
+
37
+ ## Running Tests
38
+
39
+ First, a testing environment must be created:
40
+
41
+ ```bash
42
+ mkdir local
43
+ cp docs/test_env.conf local/.
44
+ ```
45
+
46
+ Fill `local/test_env.conf` with system URLs and credentials for tests.
47
+
48
+ This project uses a Makefile for tests:
49
+
50
+ ```bash
51
+ cd tests
52
+ make
53
+ ```
54
+
55
+ When new commands are added to the CLI, new tests shall be added to the test suite.
56
+
57
+ ## Coverage
58
+
59
+ A coverage report can be generated in folder `coverage` using gem `SimpleCov`.
60
+ Enable coverage monitoring using env var `ENABLE_COVERAGE`.
61
+
62
+ ```bash
63
+ ENABLE_COVERAGE=1 make test
64
+ ```
65
+
66
+ Once tests are completed, or during test, consult the page: [coverage/index.html](coverage/index.html)
67
+
68
+ ## Build
69
+
70
+ By default the gem is built signed: `make`.
71
+ The appropriate signing key is required, and its path must be set to env var `SIGNING_KEY`.
72
+ It is also possible to build a non-signed version for development purpose: `make unsigned_gem`.
73
+
74
+ ### Gem Signature
75
+
76
+ Refer to: <https://guides.rubygems.org/security/>
77
+
78
+ The gem is signed with the public certificate found in `certs` and a secret key (kept secret by maintainer).
79
+
80
+ To build the signed gem:
81
+
82
+ ```bash
83
+ SIGNING_KEY=/path/to/signing_key.pem make
84
+ ```
85
+
86
+ The user can activate gem signature verification on installation:
87
+
88
+ - Add the certificate to gem trusted certificates:
89
+
90
+ ```bash
91
+ curl https://raw.githubusercontent.com/IBM/aspera-cli/main/certs/aspera-cli-public-cert.pem -so aspera-cli-certificate.pem
92
+ gem cert --add aspera-cli-certificate.pem
93
+ rm aspera-cli-certificate.pem
94
+ ```
95
+
96
+ - Install the gem with `HighSecurity` or `MediumSecurity`: this will succeed only of the gem is trusted.
97
+
98
+ ```bash
99
+ gem install -P HighSecurity aspera-cli
100
+ ```
101
+
102
+ ## Docker image build
103
+
104
+ ### on MacOS using ubuntu multipass
105
+
106
+ Install [multipass](https://multipass.run/docs) with [brew](https://multipass.run/docs/installing-on-macos#heading--use-brew):
107
+
108
+ [Initialize the docker environment](https://multipass.run/docs/docker-tutorial).
109
+
110
+ Make sure the ubuntu user in container is part of the docker group.
111
+
112
+ ## Long Term Implementation and delivery improvements
113
+
114
+ - replace rest and oauth classes with ruby standard gems:
115
+ - <https://github.com/rest-client/rest-client>
116
+ - <https://github.com/oauth-xx/oauth2>
117
+ - use gem Thor <http://whatisthor.com/> (or other standard Ruby CLI manager)
118
+ - Package with <https://github.com/pmq20/ruby-packer> (rubyc)