aspera-cli 4.12.0 → 4.13.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 (55) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +17 -0
  4. data/CONTRIBUTING.md +97 -22
  5. data/README.md +548 -394
  6. data/bin/ascli +3 -3
  7. data/docs/test_env.conf +12 -5
  8. data/lib/aspera/aoc.rb +42 -42
  9. data/lib/aspera/ascmd.rb +4 -3
  10. data/lib/aspera/cli/extended_value.rb +24 -37
  11. data/lib/aspera/cli/formatter.rb +6 -0
  12. data/lib/aspera/cli/info.rb +2 -4
  13. data/lib/aspera/cli/main.rb +6 -0
  14. data/lib/aspera/cli/manager.rb +15 -6
  15. data/lib/aspera/cli/plugin.rb +1 -5
  16. data/lib/aspera/cli/plugins/aoc.rb +23 -6
  17. data/lib/aspera/cli/plugins/config.rb +13 -6
  18. data/lib/aspera/cli/plugins/faspex.rb +4 -3
  19. data/lib/aspera/cli/plugins/faspex5.rb +175 -42
  20. data/lib/aspera/cli/plugins/node.rb +107 -50
  21. data/lib/aspera/cli/plugins/preview.rb +3 -3
  22. data/lib/aspera/cli/plugins/server.rb +11 -1
  23. data/lib/aspera/cli/plugins/sync.rb +3 -3
  24. data/lib/aspera/cli/transfer_agent.rb +24 -10
  25. data/lib/aspera/cli/version.rb +2 -1
  26. data/lib/aspera/command_line_builder.rb +2 -1
  27. data/lib/aspera/cos_node.rb +1 -1
  28. data/lib/aspera/fasp/agent_connect.rb +1 -1
  29. data/lib/aspera/fasp/agent_direct.rb +12 -12
  30. data/lib/aspera/fasp/agent_node.rb +14 -4
  31. data/lib/aspera/fasp/installation.rb +1 -0
  32. data/lib/aspera/fasp/parameters.rb +11 -3
  33. data/lib/aspera/fasp/parameters.yaml +3 -1
  34. data/lib/aspera/fasp/transfer_spec.rb +3 -1
  35. data/lib/aspera/faspex_gw.rb +1 -0
  36. data/lib/aspera/faspex_postproc.rb +2 -2
  37. data/lib/aspera/node.rb +11 -4
  38. data/lib/aspera/oauth.rb +3 -2
  39. data/lib/aspera/preview/file_types.rb +8 -6
  40. data/lib/aspera/preview/generator.rb +23 -11
  41. data/lib/aspera/preview/options.rb +3 -2
  42. data/lib/aspera/preview/terminal.rb +34 -0
  43. data/lib/aspera/preview/utils.rb +8 -8
  44. data/lib/aspera/rest.rb +5 -4
  45. data/lib/aspera/rest_call_error.rb +3 -1
  46. data/lib/aspera/secret_hider.rb +4 -4
  47. data/lib/aspera/sync.rb +39 -33
  48. data/lib/aspera/web_server_simple.rb +22 -18
  49. data.tar.gz.sig +0 -0
  50. metadata +39 -46
  51. metadata.gz.sig +0 -0
  52. data/examples/aoc.rb +0 -30
  53. data/examples/faspex4.rb +0 -94
  54. data/examples/node.rb +0 -96
  55. data/examples/server.rb +0 -93
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7b048647bb937cbea1f3bd8ef7e010c18b97456aa00b45ad8be45656472ae9f
4
- data.tar.gz: c0f02324d8916a1ca5247a313da624e8365a57c438aefc58cc1301fd5ca5e0ff
3
+ metadata.gz: 86109a9ac1ef2f30ea4fd192b5535367d72ca679bcf588f86452289cf451dc72
4
+ data.tar.gz: 94d5d460d4ed2ab49637119711f03e81f2ab1793e75f8f6c5da098c8d93c26dc
5
5
  SHA512:
6
- metadata.gz: fca3097df5295eaf1f3fa67efe04c7d1226c5c050d01f3e3c7319210967addfa01d98fd7a7b67024cae0a085f56b0357cf4b9b7ee4eb7aedd027b7996dc59356
7
- data.tar.gz: c45dc8053b73c26b7f0eaac877d35118aad007974ae61cb6b3e19aac373e8713f682513161e1af5250263bf461a03aa71846e4149fed411e81c771a2943c8e57
6
+ metadata.gz: '05729a6bcf5db7f2831883e2da68c2fc3e3cc542ea3fb7969a5095b87d094b0cc98845ac73f300865f358ff70751cdbde4cab16dc10349076168e5266c62a98a'
7
+ data.tar.gz: 7ebdeaaf9a8408137f7057665f0b8e12f6314f2328cd235be78cfd531df9ffa422f0574331d3fed2436fd3e97f3aff452c9ce778dc06112fc012f6e48b5adaf8
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changes (Release notes)
2
2
 
3
+ * 4.13.0
4
+
5
+ * new: preview: option `reencode_ffmpeg` allows overriding all re-encoding options
6
+ * new: faspex5: package delete (#107)
7
+ * new: faspex5: package recv for inboxes and regular users (#108)
8
+ * new: faspex5: smtp management
9
+ * new: faspex5: use public link for authorization of package download, using option `link`
10
+ * new: faspex5: list content of package, and allow partial download of package
11
+ * new: faspex5: list packages support multiple pages and items limitations (`max` and `pmax`)
12
+ * new: aoc: files operations with workspace-less user (#109)
13
+ * new: node: async with gen3 token (#110)
14
+ * new: node: display of preview of file in terminal for access keys
15
+ * change: option `transfer_info` is now cumulative, setting several times merge values
16
+ * change(deprecation): Removed support of Ruby 2.4 and 2.5 : too old, no security update since a long time. If you need older ruby version use older gem version.
17
+ * fix: cos: do not use refresh token when not supported
18
+ * fix: container: SDK installed in other folder than `ascli` (#106)
19
+
3
20
  * 4.12.0
4
21
 
5
22
  * new: docker: build image from official gem version, possibility to deploy beta as well
data/CONTRIBUTING.md CHANGED
@@ -34,6 +34,20 @@ If you want to contribute, please:
34
34
  - Send a pull request on GitHub.
35
35
  - run Rubocop to comply for coding standards
36
36
 
37
+ ## Architecture
38
+
39
+ A list of classes are provided in <docs/ml.png>
40
+
41
+ Architecture:
42
+
43
+ ![Architecture](docs/architecture.png)
44
+
45
+ The entry point is lib/aspera/cli/main.rb
46
+
47
+ Plugins are located in lib/aspera/cli/plugins
48
+
49
+ Transfer agents: lib/aspera/fasp
50
+
37
51
  ## Running Tests
38
52
 
39
53
  First, a testing environment must be created:
@@ -73,51 +87,111 @@ It is also possible to build a non-signed version for development purpose: `make
73
87
 
74
88
  ### Gem Signature
75
89
 
76
- Refer to: <https://guides.rubygems.org/security/>
90
+ Refer to:
77
91
 
78
- The gem is signed with the public certificate found in `certs` and a secret key (kept secret by maintainer).
92
+ - <https://guides.rubygems.org/security/>
93
+ - <https://ruby-doc.org/current/stdlibs/rubygems/Gem/Security.html>
94
+ - `gem cert --help`
79
95
 
80
- To build the signed gem:
96
+ Then procedure is as follows:
81
97
 
82
- ```bash
83
- SIGNING_KEY=/path/to/signing_key.pem make
84
- ```
98
+ - The maintainer creates the initial certificate and a private key:
85
99
 
86
- The user can activate gem signature verification on installation:
100
+ ```bash
101
+ cd /path/to/vault
102
+ gem cert --build maintainer@example.com
103
+ ```
87
104
 
88
- - Add the certificate to gem trusted certificates:
105
+ > **Note:** the email must match the field `spec.email` in `aspera-cli.gemspec`
89
106
 
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
- ```
107
+ This creates two files in folder `/path/to/vault` (e.g. $HOME/.ssh):
108
+
109
+ - `gem-private_key.pem` : This file shall be kept secret in a vault.
110
+ - `gem-public_cert.pem` : This file is copied to a public place, here in folder `certs`
95
111
 
96
- - Install the gem with `HighSecurity` or `MediumSecurity`: this will succeed only of the gem is trusted.
112
+ > **Note:** Alternatively, use an existing key or generate one, and then `make new-cert`
97
113
 
98
- ```bash
99
- gem install -P HighSecurity aspera-cli
100
- ```
114
+ - The maintainer build the signed gem.
115
+
116
+ The gem is signed with the public certificate found in `certs` and the private key (kept secret by maintainer).
117
+
118
+ To build the signed gem:
119
+
120
+ ```bash
121
+ SIGNING_KEY=/path/to/vault/gem-private_key.pem make
122
+ ```
123
+
124
+ - The user can activate gem signature verification on installation:
125
+
126
+ Add the certificate to gem trusted certificates:
127
+
128
+ ```bash
129
+ curl https://raw.githubusercontent.com/IBM/aspera-cli/main/certs/aspera-cli-public-cert.pem -so aspera-cli-certificate.pem
130
+ gem cert --add aspera-cli-certificate.pem
131
+ rm aspera-cli-certificate.pem
132
+ ```
133
+
134
+ - The user installs the gem with `HighSecurity` or `MediumSecurity`: this will succeed only of the gem is trusted.
135
+
136
+ ```bash
137
+ gem install -P HighSecurity aspera-cli
138
+ ```
139
+
140
+ - The maintainer can renew the certificate when it is expired using the same private key:
141
+
142
+ ```bash
143
+ SIGNING_KEY=/path/to/vault/gem-private_key.pem make update-cert
144
+ ```
145
+
146
+ Alternatively, to generate a new certificate with the same key:
147
+
148
+ ```bash
149
+ SIGNING_KEY=/path/to/vault/gem-private_key.pem make new-cert
150
+ ```
151
+
152
+ - Show the current certificate contents
153
+
154
+ ```bash
155
+ make show-cert
156
+ ```
157
+
158
+ > Note: to provide a passphrase add argument: `-passin pass:_value_` to `openssl`
159
+
160
+ - Check that the signing key is the same as used to sign the certificate:
161
+
162
+ ```bash
163
+ SIGNING_KEY=/path/to/vault/gem-private_key.pem make check-cert-key
164
+ ```
101
165
 
102
166
  ## Docker image build
103
167
 
104
- The default docker image build installs the official gem version directly from <rubygems.org>.
168
+ The Dockerfile template allows customizing the optional copy of gem file , versus install from rubygems,org as well as customizing the retrieval of the SDK.
169
+
170
+ ### Default image build
105
171
 
106
- By default it will build the image for the version in the current repository:
172
+ Build the image:
107
173
 
108
174
  ```bash
109
175
  make docker
110
176
  ```
111
177
 
178
+ This does the following:
179
+
180
+ - Install the official gem version directly from <rubygems.org>.
181
+ - Build the image for the version number in the current repository
182
+ - creates tags for both the version and `latest`
183
+
112
184
  > **Note:** This target creates the `Dockerfile` from an `ERB` (embedded Ruby) template (Makefile target `dockerfile`).
113
185
  A template is used as it allows some level of customization to tell where to take the gem from, as as for the SDK file.
114
186
 
115
- Then, to push to the image registry:
187
+ Then, to push to the image registry (both tags: version and `latest`):
116
188
 
117
189
  ```bash
118
190
  make dpush
119
191
  ```
120
192
 
193
+ ### Specific version image build
194
+
121
195
  It is possible to build a specific version by setting envvar `GEMVERS` and `make` with option `-e`:
122
196
 
123
197
  ```bash
@@ -125,15 +199,16 @@ GEMVERS=4.11.0 make -e docker
125
199
  GEMVERS=4.11.0 make -e dpush
126
200
  ```
127
201
 
202
+ ### Development version image build
203
+
128
204
  To build/push a beta/development container:
205
+ it does not create the `latest` tag, it uses the gem file generated locally.
129
206
 
130
207
  ```bash
131
208
  make dockerbeta
132
209
  make dpushversion
133
210
  ```
134
211
 
135
- The Dockerfile template allows customizing the optional copy of gem file , versus install from rubygems,org as well as customizing the retrieval of the SDK.
136
-
137
212
  ## Long Term Implementation and delivery improvements
138
213
 
139
214
  - replace rest and oauth classes with ruby standard gems: