aspera-cli 4.21.2 → 4.23.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/BUGS.md +1 -1
- data/CHANGELOG.md +402 -374
- data/CONTRIBUTING.md +6 -10
- data/README.md +1018 -687
- data/lib/aspera/agent/base.rb +9 -5
- data/lib/aspera/agent/connect.rb +30 -28
- data/lib/aspera/agent/desktop.rb +29 -25
- data/lib/aspera/agent/direct.rb +137 -125
- data/lib/aspera/agent/httpgw.rb +22 -26
- data/lib/aspera/agent/node.rb +14 -11
- data/lib/aspera/agent/transferd.rb +6 -2
- data/lib/aspera/api/aoc.rb +15 -18
- data/lib/aspera/api/cos_node.rb +1 -1
- data/lib/aspera/api/httpgw.rb +15 -7
- data/lib/aspera/api/node.rb +6 -4
- data/lib/aspera/ascmd.rb +17 -9
- data/lib/aspera/ascp/installation.rb +21 -19
- data/lib/aspera/ascp/management.rb +1 -1
- data/lib/aspera/assert.rb +14 -5
- data/lib/aspera/cli/error.rb +2 -2
- data/lib/aspera/cli/extended_value.rb +38 -19
- data/lib/aspera/cli/formatter.rb +48 -48
- data/lib/aspera/cli/hints.rb +10 -2
- data/lib/aspera/cli/main.rb +190 -168
- data/lib/aspera/cli/manager.rb +16 -16
- data/lib/aspera/cli/plugin.rb +24 -21
- data/lib/aspera/cli/plugin_factory.rb +1 -1
- data/lib/aspera/cli/plugins/alee.rb +1 -1
- data/lib/aspera/cli/plugins/aoc.rb +173 -126
- data/lib/aspera/cli/plugins/ats.rb +19 -17
- data/lib/aspera/cli/plugins/config.rb +87 -98
- data/lib/aspera/cli/plugins/console.rb +5 -3
- data/lib/aspera/cli/plugins/faspex.rb +39 -35
- data/lib/aspera/cli/plugins/faspex5.rb +104 -80
- data/lib/aspera/cli/plugins/faspio.rb +13 -1
- data/lib/aspera/cli/plugins/httpgw.rb +13 -1
- data/lib/aspera/cli/plugins/node.rb +336 -205
- data/lib/aspera/cli/plugins/orchestrator.rb +34 -40
- data/lib/aspera/cli/plugins/preview.rb +3 -3
- data/lib/aspera/cli/plugins/server.rb +7 -6
- data/lib/aspera/cli/plugins/shares.rb +5 -5
- data/lib/aspera/cli/sync_actions.rb +19 -18
- data/lib/aspera/cli/transfer_agent.rb +11 -15
- data/lib/aspera/cli/transfer_progress.rb +2 -2
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +116 -95
- data/lib/aspera/coverage.rb +4 -3
- data/lib/aspera/data_repository.rb +1 -0
- data/lib/aspera/environment.rb +7 -6
- data/lib/aspera/faspex_gw.rb +14 -14
- data/lib/aspera/faspex_postproc.rb +7 -6
- data/lib/aspera/hash_ext.rb +2 -2
- data/lib/aspera/json_rpc.rb +1 -1
- data/lib/aspera/keychain/encrypted_hash.rb +47 -34
- data/lib/aspera/keychain/factory.rb +41 -0
- data/lib/aspera/keychain/hashicorp_vault.rb +71 -0
- data/lib/aspera/keychain/macos_security.rb +19 -11
- data/lib/aspera/log.rb +29 -34
- data/lib/aspera/nagios.rb +6 -6
- data/lib/aspera/node_simulator.rb +8 -8
- data/lib/aspera/oauth/base.rb +10 -6
- data/lib/aspera/oauth/factory.rb +6 -6
- data/lib/aspera/oauth/url_json.rb +6 -6
- data/lib/aspera/persistency_action_once.rb +6 -4
- data/lib/aspera/persistency_folder.rb +2 -2
- data/lib/aspera/preview/file_types.rb +40 -33
- data/lib/aspera/preview/generator.rb +1 -1
- data/lib/aspera/preview/options.rb +16 -16
- data/lib/aspera/preview/terminal.rb +3 -3
- data/lib/aspera/preview/utils.rb +11 -13
- data/lib/aspera/products/connect.rb +2 -1
- data/lib/aspera/products/desktop.rb +1 -1
- data/lib/aspera/products/transferd.rb +1 -1
- data/lib/aspera/proxy_auto_config.rb +2 -2
- data/lib/aspera/rest.rb +70 -50
- data/lib/aspera/rest_error_analyzer.rb +1 -0
- data/lib/aspera/rest_errors_aspera.rb +1 -1
- data/lib/aspera/secret_hider.rb +5 -5
- data/lib/aspera/ssh.rb +5 -5
- data/lib/aspera/temp_file_manager.rb +1 -0
- data/lib/aspera/timer_limiter.rb +7 -5
- data/lib/aspera/transfer/async_conf.schema.yaml +716 -0
- data/lib/aspera/transfer/convert.rb +29 -0
- data/lib/aspera/transfer/error_info.rb +66 -66
- data/lib/aspera/transfer/parameters.rb +13 -68
- data/lib/aspera/transfer/spec.rb +5 -6
- data/lib/aspera/transfer/spec.schema.yaml +753 -0
- data/lib/aspera/transfer/spec_doc.rb +62 -0
- data/lib/aspera/transfer/sync.rb +37 -76
- data/lib/aspera/transfer/sync_instance.schema.yaml +20 -0
- data/lib/aspera/transfer/sync_session.schema.yaml +86 -0
- data/lib/aspera/transfer/uri.rb +6 -6
- data/lib/aspera/uri_reader.rb +1 -1
- data/lib/aspera/web_auth.rb +1 -1
- data/lib/aspera/web_server_simple.rb +53 -44
- data.tar.gz.sig +0 -0
- metadata +38 -7
- metadata.gz.sig +0 -0
- data/examples/build_package.sh +0 -28
- data/examples/dascli +0 -30
- data/examples/get_proto_file.rb +0 -8
- data/examples/proxy.pac +0 -60
- data/lib/aspera/transfer/spec.yaml +0 -718
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aspera-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurent Martin
|
@@ -37,7 +37,7 @@ cert_chain:
|
|
37
37
|
eTf9kxhVM40wGQOECVNA8UsEEZHD48eF+csUYZtAJOF5oxTI8UyV9T/o6CgO0c9/
|
38
38
|
Gzz+Qm5ULOUcPiJLjSpaiTrkiIVYiDGnqNSr6R1Hb1c=
|
39
39
|
-----END CERTIFICATE-----
|
40
|
-
date: 2025-
|
40
|
+
date: 2025-08-12 00:00:00.000000000 Z
|
41
41
|
dependencies:
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: blankslate
|
@@ -193,6 +193,20 @@ dependencies:
|
|
193
193
|
- - "~>"
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0.9'
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: vault
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - "~>"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0.18'
|
203
|
+
type: :runtime
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '0.18'
|
196
210
|
- !ruby/object:Gem::Dependency
|
197
211
|
name: webrick
|
198
212
|
requirement: !ruby/object:Gem::Requirement
|
@@ -221,6 +235,20 @@ dependencies:
|
|
221
235
|
- - "~>"
|
222
236
|
- !ruby/object:Gem::Version
|
223
237
|
version: '1.2'
|
238
|
+
- !ruby/object:Gem::Dependency
|
239
|
+
name: word_wrap
|
240
|
+
requirement: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - "~>"
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '1.0'
|
245
|
+
type: :runtime
|
246
|
+
prerelease: false
|
247
|
+
version_requirements: !ruby/object:Gem::Requirement
|
248
|
+
requirements:
|
249
|
+
- - "~>"
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '1.0'
|
224
252
|
- !ruby/object:Gem::Dependency
|
225
253
|
name: xml-simple
|
226
254
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,10 +278,6 @@ files:
|
|
250
278
|
- README.md
|
251
279
|
- bin/ascli
|
252
280
|
- bin/asession
|
253
|
-
- examples/build_package.sh
|
254
|
-
- examples/dascli
|
255
|
-
- examples/get_proto_file.rb
|
256
|
-
- examples/proxy.pac
|
257
281
|
- lib/aspera/agent/base.rb
|
258
282
|
- lib/aspera/agent/connect.rb
|
259
283
|
- lib/aspera/agent/desktop.rb
|
@@ -318,6 +342,8 @@ files:
|
|
318
342
|
- lib/aspera/id_generator.rb
|
319
343
|
- lib/aspera/json_rpc.rb
|
320
344
|
- lib/aspera/keychain/encrypted_hash.rb
|
345
|
+
- lib/aspera/keychain/factory.rb
|
346
|
+
- lib/aspera/keychain/hashicorp_vault.rb
|
321
347
|
- lib/aspera/keychain/macos_security.rb
|
322
348
|
- lib/aspera/line_logger.rb
|
323
349
|
- lib/aspera/log.rb
|
@@ -354,13 +380,18 @@ files:
|
|
354
380
|
- lib/aspera/ssh.rb
|
355
381
|
- lib/aspera/temp_file_manager.rb
|
356
382
|
- lib/aspera/timer_limiter.rb
|
383
|
+
- lib/aspera/transfer/async_conf.schema.yaml
|
384
|
+
- lib/aspera/transfer/convert.rb
|
357
385
|
- lib/aspera/transfer/error.rb
|
358
386
|
- lib/aspera/transfer/error_info.rb
|
359
387
|
- lib/aspera/transfer/faux_file.rb
|
360
388
|
- lib/aspera/transfer/parameters.rb
|
361
389
|
- lib/aspera/transfer/spec.rb
|
362
|
-
- lib/aspera/transfer/spec.yaml
|
390
|
+
- lib/aspera/transfer/spec.schema.yaml
|
391
|
+
- lib/aspera/transfer/spec_doc.rb
|
363
392
|
- lib/aspera/transfer/sync.rb
|
393
|
+
- lib/aspera/transfer/sync_instance.schema.yaml
|
394
|
+
- lib/aspera/transfer/sync_session.schema.yaml
|
364
395
|
- lib/aspera/transfer/uri.rb
|
365
396
|
- lib/aspera/uri_reader.rb
|
366
397
|
- lib/aspera/web_auth.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/examples/build_package.sh
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
# Usage: ./build_package.sh <gem_name> <gem_version>
|
3
|
-
# Example: ./build_package.sh aspera-cli 4.18.0
|
4
|
-
set -e
|
5
|
-
if [ "$#" -ne 2 ]; then
|
6
|
-
echo "Usage: $0 <gem_name> <gem_version>"
|
7
|
-
exit 1
|
8
|
-
fi
|
9
|
-
gem_name=$1
|
10
|
-
gem_version=$2
|
11
|
-
# on macOS, GNU tar is gtar
|
12
|
-
GNU_TAR=tar
|
13
|
-
if [ "$(uname)" == "Darwin" ]; then
|
14
|
-
GNU_TAR=gtar
|
15
|
-
fi
|
16
|
-
# temp folder to install gems
|
17
|
-
tmp_dir_install=.tmp_install
|
18
|
-
# clean, if there were left overs
|
19
|
-
rm -fr $tmp_dir_install
|
20
|
-
# retrieve list of necessary gems
|
21
|
-
echo "Getting gems $gem_name $gem_version"
|
22
|
-
# install gems in a temporary folder
|
23
|
-
gem install $gem_name:$gem_version --no-document --install-dir $tmp_dir_install
|
24
|
-
archive=$gem_name-$gem_version-gems.tgz
|
25
|
-
# .gem files are located in cache folder
|
26
|
-
$GNU_TAR -zcf $archive --directory=$tmp_dir_install/cache/. .
|
27
|
-
rm -fr $tmp_dir_install
|
28
|
-
echo "Archive: $archive"
|
data/examples/dascli
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
# set env var image to specify another docker image
|
3
|
-
: "${image:=docker.io/martinlaurent/ascli}"
|
4
|
-
# set env var version to specify another image version (default: latest version)
|
5
|
-
: "${version:=latest}"
|
6
|
-
# set env var imgtag to specify a specific image/version
|
7
|
-
: "${imgtag=$image:$version}"
|
8
|
-
# set env var `docker` to podman, to use podman
|
9
|
-
: "${docker:=docker}"
|
10
|
-
# set env var `docker_args` to add options to docker run (then, transform this var into array) # spellcheck disable=SC2086
|
11
|
-
read -a add_dock_args <<< $docker_args
|
12
|
-
# set env var ASCLI_HOME to set the config folder on host
|
13
|
-
: "${ASCLI_HOME:=$HOME/.aspera/ascli}"
|
14
|
-
# main config folder for ascli in container (same value as in `Dockerfile`)
|
15
|
-
ascli_home_container=/home/cliuser/.aspera/ascli
|
16
|
-
if test ! -d "$ASCLI_HOME";then
|
17
|
-
echo "creating folder: $ASCLI_HOME"
|
18
|
-
# create it if necessary to allow mounting the volume in container
|
19
|
-
mkdir -p "$ASCLI_HOME"
|
20
|
-
fi
|
21
|
-
exec $docker run \
|
22
|
-
--rm \
|
23
|
-
--tty \
|
24
|
-
--interactive \
|
25
|
-
--user root \
|
26
|
-
--env ASCLI_HOME="$ascli_home_container" \
|
27
|
-
--volume "$ASCLI_HOME:$ascli_home_container:z" \
|
28
|
-
"${add_dock_args[@]}" \
|
29
|
-
"$imgtag" \
|
30
|
-
"$@"
|
data/examples/get_proto_file.rb
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require 'aspera/ascp/installation'
|
5
|
-
require 'aspera/cli/transfer_progress'
|
6
|
-
Aspera::RestParameters.instance.progress_bar = Aspera::Cli::TransferProgress.new
|
7
|
-
# Retrieve `transfer.proto` from the web
|
8
|
-
Aspera::Ascp::Installation.instance.install_sdk(folder: ARGV.first, backup: false, with_exe: false) {|name| name.end_with?('.proto') ? '/' : nil }
|
data/examples/proxy.pac
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
/* demo proxy pac for `ascli` */
|
2
|
-
function FindProxyForURL(url, host) {
|
3
|
-
/* Normalize the URL for pattern matching */
|
4
|
-
url = url.toLowerCase();
|
5
|
-
host = host.toLowerCase();
|
6
|
-
|
7
|
-
/* Don't proxy local host names */
|
8
|
-
if (isPlainHostName(host)) {
|
9
|
-
return 'DIRECT';
|
10
|
-
}
|
11
|
-
|
12
|
-
/* Don't proxy local domains */
|
13
|
-
if (dnsDomainIs(host, ".example1.com") || (host == "example1.com")
|
14
|
-
|| dnsDomainIs(host, ".example2.com") || (host == "example2.com")
|
15
|
-
|| dnsDomainIs(host, ".example3.com") || (host == "example3.com")) {
|
16
|
-
return 'DIRECT';
|
17
|
-
}
|
18
|
-
|
19
|
-
/* Don't proxy Windows Update */
|
20
|
-
if ((host == "download.microsoft.com")
|
21
|
-
|| (host == "ntservicepack.microsoft.com")
|
22
|
-
|| (host == "cdm.microsoft.com") || (host == "wustat.windows.com")
|
23
|
-
|| (host == "windowsupdate.microsoft.com")
|
24
|
-
|| (dnsDomainIs(host, ".windowsupdate.microsoft.com"))
|
25
|
-
|| (host == "update.microsoft.com")
|
26
|
-
|| (dnsDomainIs(host, ".update.microsoft.com"))
|
27
|
-
|| (dnsDomainIs(host, ".windowsupdate.com"))) {
|
28
|
-
return 'DIRECT';
|
29
|
-
}
|
30
|
-
|
31
|
-
if (isResolvable(host)) {
|
32
|
-
var hostIP = dnsResolve(host);
|
33
|
-
|
34
|
-
/* Don't proxy private addresses (RFC 3330) */
|
35
|
-
if (isInNet(hostIP, '0.0.0.0', '255.0.0.0')
|
36
|
-
|| isInNet(hostIP, '10.0.0.0', '255.0.0.0')
|
37
|
-
|| isInNet(hostIP, '127.0.0.0', '255.0.0.0')
|
38
|
-
|| isInNet(hostIP, '169.254.0.0', '255.255.0.0')
|
39
|
-
|| isInNet(hostIP, '172.16.0.0', '255.240.0.0')
|
40
|
-
|| isInNet(hostIP, '192.0.2.0', '255.255.255.0')
|
41
|
-
|| isInNet(hostIP, '192.88.99.0', '255.255.255.0')
|
42
|
-
|| isInNet(hostIP, '192.168.0.0', '255.255.0.0')
|
43
|
-
|| isInNet(hostIP, '198.18.0.0', '255.254.0.0')
|
44
|
-
|| isInNet(hostIP, '224.0.0.0', '240.0.0.0')
|
45
|
-
|| isInNet(hostIP, '240.0.0.0', '240.0.0.0')) {
|
46
|
-
return 'DIRECT';
|
47
|
-
}
|
48
|
-
}
|
49
|
-
|
50
|
-
if (url.substring(0, 5) == 'http:' || url.substring(0, 6) == 'https:'
|
51
|
-
|| url.substring(0, 4) == 'ftp:') {
|
52
|
-
return 'PROXY proxy.example.com:8080';
|
53
|
-
}
|
54
|
-
|
55
|
-
if (url.substring(0, 4) == 'ssh:') {
|
56
|
-
return 'PROXY proxy.aspera.com:9092';
|
57
|
-
}
|
58
|
-
|
59
|
-
return 'DIRECT';
|
60
|
-
}
|