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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +17 -0
- data/CONTRIBUTING.md +97 -22
- data/README.md +548 -394
- data/bin/ascli +3 -3
- data/docs/test_env.conf +12 -5
- data/lib/aspera/aoc.rb +42 -42
- data/lib/aspera/ascmd.rb +4 -3
- data/lib/aspera/cli/extended_value.rb +24 -37
- data/lib/aspera/cli/formatter.rb +6 -0
- data/lib/aspera/cli/info.rb +2 -4
- data/lib/aspera/cli/main.rb +6 -0
- data/lib/aspera/cli/manager.rb +15 -6
- data/lib/aspera/cli/plugin.rb +1 -5
- data/lib/aspera/cli/plugins/aoc.rb +23 -6
- data/lib/aspera/cli/plugins/config.rb +13 -6
- data/lib/aspera/cli/plugins/faspex.rb +4 -3
- data/lib/aspera/cli/plugins/faspex5.rb +175 -42
- data/lib/aspera/cli/plugins/node.rb +107 -50
- data/lib/aspera/cli/plugins/preview.rb +3 -3
- data/lib/aspera/cli/plugins/server.rb +11 -1
- data/lib/aspera/cli/plugins/sync.rb +3 -3
- data/lib/aspera/cli/transfer_agent.rb +24 -10
- data/lib/aspera/cli/version.rb +2 -1
- data/lib/aspera/command_line_builder.rb +2 -1
- data/lib/aspera/cos_node.rb +1 -1
- data/lib/aspera/fasp/agent_connect.rb +1 -1
- data/lib/aspera/fasp/agent_direct.rb +12 -12
- data/lib/aspera/fasp/agent_node.rb +14 -4
- data/lib/aspera/fasp/installation.rb +1 -0
- data/lib/aspera/fasp/parameters.rb +11 -3
- data/lib/aspera/fasp/parameters.yaml +3 -1
- data/lib/aspera/fasp/transfer_spec.rb +3 -1
- data/lib/aspera/faspex_gw.rb +1 -0
- data/lib/aspera/faspex_postproc.rb +2 -2
- data/lib/aspera/node.rb +11 -4
- data/lib/aspera/oauth.rb +3 -2
- data/lib/aspera/preview/file_types.rb +8 -6
- data/lib/aspera/preview/generator.rb +23 -11
- data/lib/aspera/preview/options.rb +3 -2
- data/lib/aspera/preview/terminal.rb +34 -0
- data/lib/aspera/preview/utils.rb +8 -8
- data/lib/aspera/rest.rb +5 -4
- data/lib/aspera/rest_call_error.rb +3 -1
- data/lib/aspera/secret_hider.rb +4 -4
- data/lib/aspera/sync.rb +39 -33
- data/lib/aspera/web_server_simple.rb +22 -18
- data.tar.gz.sig +0 -0
- metadata +39 -46
- metadata.gz.sig +0 -0
- data/examples/aoc.rb +0 -30
- data/examples/faspex4.rb +0 -94
- data/examples/node.rb +0 -96
- data/examples/server.rb +0 -93
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86109a9ac1ef2f30ea4fd192b5535367d72ca679bcf588f86452289cf451dc72
|
4
|
+
data.tar.gz: 94d5d460d4ed2ab49637119711f03e81f2ab1793e75f8f6c5da098c8d93c26dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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:
|
90
|
+
Refer to:
|
77
91
|
|
78
|
-
|
92
|
+
- <https://guides.rubygems.org/security/>
|
93
|
+
- <https://ruby-doc.org/current/stdlibs/rubygems/Gem/Security.html>
|
94
|
+
- `gem cert --help`
|
79
95
|
|
80
|
-
|
96
|
+
Then procedure is as follows:
|
81
97
|
|
82
|
-
|
83
|
-
SIGNING_KEY=/path/to/signing_key.pem make
|
84
|
-
```
|
98
|
+
- The maintainer creates the initial certificate and a private key:
|
85
99
|
|
86
|
-
|
100
|
+
```bash
|
101
|
+
cd /path/to/vault
|
102
|
+
gem cert --build maintainer@example.com
|
103
|
+
```
|
87
104
|
|
88
|
-
|
105
|
+
> **Note:** the email must match the field `spec.email` in `aspera-cli.gemspec`
|
89
106
|
|
90
|
-
|
91
|
-
|
92
|
-
gem
|
93
|
-
|
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
|
-
|
112
|
+
> **Note:** Alternatively, use an existing key or generate one, and then `make new-cert`
|
97
113
|
|
98
|
-
|
99
|
-
|
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
|
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
|
-
|
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:
|