aspera-cli 4.12.0 → 4.13.0

Sign up to get free protection for your applications and to get access to all the features.
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: