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.
- 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
|
+

|
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:
|