aspera-cli 4.26.2 → 4.27.1

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 (159) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +310 -21
  4. data/CONTRIBUTING.md +99 -14
  5. data/TODO.md +50 -0
  6. data/bin/ascli +3 -3
  7. data/docs/README.md +10977 -0
  8. data/docs/test-mcp-with-ai.md +202 -0
  9. data/lib/aspera/agent/base.rb +29 -7
  10. data/lib/aspera/agent/connect.rb +58 -21
  11. data/lib/aspera/agent/desktop.rb +53 -18
  12. data/lib/aspera/agent/direct.rb +71 -40
  13. data/lib/aspera/agent/factory.rb +3 -3
  14. data/lib/aspera/agent/httpgw.rb +55 -14
  15. data/lib/aspera/agent/node.rb +34 -2
  16. data/lib/aspera/agent/transferd.rb +48 -12
  17. data/lib/aspera/api/alee.rb +1 -1
  18. data/lib/aspera/api/aoc.rb +42 -44
  19. data/lib/aspera/api/cos_node.rb +10 -9
  20. data/lib/aspera/api/faspex.rb +16 -15
  21. data/lib/aspera/api/httpgw.rb +23 -23
  22. data/lib/aspera/api/node.rb +51 -70
  23. data/lib/aspera/api/queries/bss_subscription_account.graphql +18 -0
  24. data/lib/aspera/api/queries/bss_subscription_usage.graphql +18 -0
  25. data/lib/aspera/ascmd.rb +32 -30
  26. data/lib/aspera/ascp/installation.rb +75 -69
  27. data/lib/aspera/ascp/management.rb +7 -8
  28. data/lib/aspera/assert.rb +12 -13
  29. data/lib/aspera/cli/ascp_actions.rb +155 -0
  30. data/lib/aspera/cli/async_transfer_store.rb +125 -0
  31. data/lib/aspera/cli/bootstrapper.rb +197 -0
  32. data/lib/aspera/cli/command_registry.rb +145 -0
  33. data/lib/aspera/cli/command_spec.rb +141 -0
  34. data/lib/aspera/cli/context.rb +19 -6
  35. data/lib/aspera/cli/error.rb +16 -0
  36. data/lib/aspera/cli/extended_value.rb +27 -26
  37. data/lib/aspera/cli/formatter.rb +95 -59
  38. data/lib/aspera/cli/gem_checker.rb +65 -0
  39. data/lib/aspera/cli/hints.rb +3 -3
  40. data/lib/aspera/cli/http.rb +74 -30
  41. data/lib/aspera/cli/info.rb +2 -0
  42. data/lib/aspera/cli/mailer.rb +97 -0
  43. data/lib/aspera/cli/mcp_tool.rb +225 -0
  44. data/lib/aspera/cli/option_declarator.rb +77 -0
  45. data/lib/aspera/cli/options.schema.yaml +634 -7
  46. data/lib/aspera/cli/parser.rb +1217 -0
  47. data/lib/aspera/cli/plugins/alee.rb +20 -22
  48. data/lib/aspera/cli/plugins/aoc.rb +1178 -881
  49. data/lib/aspera/cli/plugins/ats.rb +205 -162
  50. data/lib/aspera/cli/plugins/base.rb +703 -175
  51. data/lib/aspera/cli/plugins/basic_auth.rb +7 -9
  52. data/lib/aspera/cli/plugins/config.rb +434 -757
  53. data/lib/aspera/cli/plugins/console.rb +107 -65
  54. data/lib/aspera/cli/plugins/cos.rb +46 -33
  55. data/lib/aspera/cli/plugins/factory.rb +6 -6
  56. data/lib/aspera/cli/plugins/faspex5.rb +627 -388
  57. data/lib/aspera/cli/plugins/faspio.rb +54 -51
  58. data/lib/aspera/cli/plugins/httpgw.rb +18 -25
  59. data/lib/aspera/cli/plugins/mcp.rb +279 -0
  60. data/lib/aspera/cli/plugins/node.rb +988 -840
  61. data/lib/aspera/cli/plugins/oauth.rb +7 -10
  62. data/lib/aspera/cli/plugins/orchestrator.rb +112 -135
  63. data/lib/aspera/cli/plugins/preview.rb +195 -157
  64. data/lib/aspera/cli/plugins/server.rb +141 -91
  65. data/lib/aspera/cli/plugins/shares.rb +343 -110
  66. data/lib/aspera/cli/preset_actions.rb +159 -0
  67. data/lib/aspera/cli/preset_manager.rb +82 -39
  68. data/lib/aspera/cli/result.rb +78 -26
  69. data/lib/aspera/cli/runner.rb +323 -153
  70. data/lib/aspera/cli/secret_finder.rb +40 -0
  71. data/lib/aspera/cli/special_values.rb +1 -0
  72. data/lib/aspera/cli/sync_actions.rb +89 -64
  73. data/lib/aspera/cli/terminal_formatter.rb +3 -3
  74. data/lib/aspera/cli/transfer_actions.rb +90 -0
  75. data/lib/aspera/cli/transfer_agent.rb +129 -64
  76. data/lib/aspera/cli/transfer_progress.rb +9 -9
  77. data/lib/aspera/cli/vault_manager.rb +79 -0
  78. data/lib/aspera/cli/version.rb +1 -1
  79. data/lib/aspera/cli/wizard.rb +28 -30
  80. data/lib/aspera/colors.rb +3 -3
  81. data/lib/aspera/command_line_builder.rb +34 -34
  82. data/lib/aspera/command_line_converter.rb +1 -1
  83. data/lib/aspera/coverage.rb +1 -2
  84. data/lib/aspera/data_repository.rb +2 -1
  85. data/lib/aspera/dot_container.rb +12 -12
  86. data/lib/aspera/environment.rb +30 -23
  87. data/lib/aspera/exec_spec.rb +13 -0
  88. data/lib/aspera/faspex_gw.rb +5 -5
  89. data/lib/aspera/faspex_postproc.rb +16 -10
  90. data/lib/aspera/graphql.rb +37 -0
  91. data/lib/aspera/hash_ext.rb +8 -2
  92. data/lib/aspera/json_rpc/client.rb +62 -0
  93. data/lib/aspera/json_rpc/version.rb +7 -0
  94. data/lib/aspera/keychain/base.rb +10 -3
  95. data/lib/aspera/keychain/encrypted_hash.rb +92 -17
  96. data/lib/aspera/keychain/factory.rb +20 -8
  97. data/lib/aspera/keychain/hashicorp_vault.rb +1 -1
  98. data/lib/aspera/keychain/macos_security.rb +23 -25
  99. data/lib/aspera/keychain/one_password_api.rb +86 -0
  100. data/lib/aspera/keychain/one_password_base.rb +34 -0
  101. data/lib/aspera/keychain/one_password_cli.rb +98 -0
  102. data/lib/aspera/link_header.rb +82 -0
  103. data/lib/aspera/log.rb +29 -15
  104. data/lib/aspera/markdown.rb +90 -7
  105. data/lib/aspera/nagios.rb +8 -8
  106. data/lib/aspera/node_simulator.rb +35 -27
  107. data/lib/aspera/oauth/base.rb +9 -10
  108. data/lib/aspera/oauth/boot.rb +5 -5
  109. data/lib/aspera/oauth/factory.rb +12 -10
  110. data/lib/aspera/oauth/jwt.rb +9 -11
  111. data/lib/aspera/oauth/web.rb +6 -6
  112. data/lib/aspera/persistency_action_once.rb +12 -12
  113. data/lib/aspera/persistency_folder.rb +18 -11
  114. data/lib/aspera/preview/file_types.rb +5 -5
  115. data/lib/aspera/preview/generator.rb +52 -49
  116. data/lib/aspera/preview/options.rb +3 -2
  117. data/lib/aspera/preview/terminal.rb +5 -5
  118. data/lib/aspera/preview/utils.rb +66 -19
  119. data/lib/aspera/products/connect.rb +2 -2
  120. data/lib/aspera/products/desktop.rb +1 -1
  121. data/lib/aspera/products/other.rb +3 -3
  122. data/lib/aspera/products/transferd.rb +4 -4
  123. data/lib/aspera/proxy_auto_config.rb +15 -14
  124. data/lib/aspera/rest.rb +159 -151
  125. data/lib/aspera/rest_error_analyzer.rb +6 -6
  126. data/lib/aspera/rest_errors_aspera.rb +0 -10
  127. data/lib/aspera/rest_list.rb +11 -10
  128. data/lib/aspera/schema/IBM Aspera Node API-4.4.6.yaml +6232 -0
  129. data/lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0.yaml +249 -0
  130. data/lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml +1853 -510
  131. data/lib/aspera/schema/IBM_Aspera_Shares.yaml +4653 -0
  132. data/lib/aspera/schema/documentation.rb +65 -28
  133. data/lib/aspera/schema/reader.rb +136 -13
  134. data/lib/aspera/schema/registry.rb +60 -8
  135. data/lib/aspera/secret_hider.rb +12 -7
  136. data/lib/aspera/ssh.rb +64 -31
  137. data/lib/aspera/ssl.rb +5 -5
  138. data/lib/aspera/sync/conf.schema.yaml +2 -2
  139. data/lib/aspera/sync/database.rb +2 -2
  140. data/lib/aspera/sync/operations.rb +22 -25
  141. data/lib/aspera/temp_file_manager.rb +25 -5
  142. data/lib/aspera/timer_limiter.rb +1 -1
  143. data/lib/aspera/transfer/faux_file.rb +24 -11
  144. data/lib/aspera/transfer/parameters.rb +36 -34
  145. data/lib/aspera/transfer/result.rb +74 -0
  146. data/lib/aspera/transfer/resumer.rb +10 -10
  147. data/lib/aspera/transfer/spec.rb +18 -1
  148. data/lib/aspera/transfer/spec.schema.yaml +12 -3
  149. data/lib/aspera/uri_reader.rb +52 -15
  150. data/lib/aspera/web_auth.rb +8 -7
  151. data/lib/aspera/web_server_simple.rb +15 -12
  152. data/lib/aspera/yaml.rb +5 -4
  153. data.tar.gz.sig +0 -0
  154. metadata +34 -6
  155. metadata.gz.sig +0 -0
  156. data/lib/aspera/cli/manager.rb +0 -766
  157. data/lib/aspera/cli/plugins/faspex.rb +0 -539
  158. data/lib/aspera/json_rpc.rb +0 -52
  159. data/lib/aspera/transfer/uri.rb +0 -56
data/lib/aspera/yaml.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'aspera/assert'
3
4
  require 'yaml'
4
5
 
5
6
  module Aspera
@@ -14,7 +15,7 @@ module Aspera
14
15
  return duplicate_keys unless node.respond_to?(:children)
15
16
  if node.is_a?(Psych::Nodes::Mapping)
16
17
  counts = Hash.new(0)
17
- key_nodes = Hash.new{ |h, k| h[k] = []}
18
+ key_nodes = Hash.new { |h, k| h[k] = [] }
18
19
  node.children.each_slice(2) do |key_node, value_node|
19
20
  if key_node&.value
20
21
  counts[key_node.value] += 1
@@ -25,11 +26,11 @@ module Aspera
25
26
  counts.each do |key_str, count|
26
27
  next if count <= 1
27
28
  path = (parent_path + [key_str]).join('.')
28
- occurrences = key_nodes[key_str].map{ |kn| kn.start_line ? kn.start_line + 1 : 'unknown'}.join(', ')
29
+ occurrences = key_nodes[key_str].map { |kn| kn.start_line ? kn.start_line + 1 : 'unknown' }.join(', ')
29
30
  duplicate_keys << "#{path}: #{occurrences}"
30
31
  end
31
32
  else
32
- node.children.to_a.each{ |child| find_duplicate_keys(child, parent_path, duplicate_keys)}
33
+ node.children.to_a.each { |child| find_duplicate_keys(child, parent_path, duplicate_keys) }
33
34
  end
34
35
  duplicate_keys
35
36
  end
@@ -42,7 +43,7 @@ module Aspera
42
43
  # @raise [RuntimeError] If duplicate keys are found
43
44
  def safe_load(yaml)
44
45
  duplicate_keys = find_duplicate_keys(Psych.parse_stream(yaml))
45
- raise "Duplicate keys: #{duplicate_keys.join('; ')}" unless duplicate_keys.empty?
46
+ Aspera.assert(duplicate_keys.empty?) { "Duplicate keys: #{duplicate_keys.join('; ')}" }
46
47
  YAML.safe_load(yaml, permitted_classes: [Time, Date, Symbol])
47
48
  end
48
49
 
data.tar.gz.sig CHANGED
Binary file
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.26.2
4
+ version: 4.27.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent Martin
@@ -317,8 +317,11 @@ files:
317
317
  - CHANGELOG.md
318
318
  - CONTRIBUTING.md
319
319
  - README.md
320
+ - TODO.md
320
321
  - bin/ascli
321
322
  - bin/asession
323
+ - docs/README.md
324
+ - docs/test-mcp-with-ai.md
322
325
  - lib/aspera/agent/base.rb
323
326
  - lib/aspera/agent/connect.rb
324
327
  - lib/aspera/agent/desktop.rb
@@ -334,19 +337,30 @@ files:
334
337
  - lib/aspera/api/faspex.rb
335
338
  - lib/aspera/api/httpgw.rb
336
339
  - lib/aspera/api/node.rb
340
+ - lib/aspera/api/queries/bss_subscription_account.graphql
341
+ - lib/aspera/api/queries/bss_subscription_usage.graphql
337
342
  - lib/aspera/ascmd.rb
338
343
  - lib/aspera/ascp/installation.rb
339
344
  - lib/aspera/ascp/management.rb
340
345
  - lib/aspera/assert.rb
346
+ - lib/aspera/cli/ascp_actions.rb
347
+ - lib/aspera/cli/async_transfer_store.rb
348
+ - lib/aspera/cli/bootstrapper.rb
349
+ - lib/aspera/cli/command_registry.rb
350
+ - lib/aspera/cli/command_spec.rb
341
351
  - lib/aspera/cli/context.rb
342
352
  - lib/aspera/cli/error.rb
343
353
  - lib/aspera/cli/extended_value.rb
344
354
  - lib/aspera/cli/formatter.rb
355
+ - lib/aspera/cli/gem_checker.rb
345
356
  - lib/aspera/cli/hints.rb
346
357
  - lib/aspera/cli/http.rb
347
358
  - lib/aspera/cli/info.rb
348
- - lib/aspera/cli/manager.rb
359
+ - lib/aspera/cli/mailer.rb
360
+ - lib/aspera/cli/mcp_tool.rb
361
+ - lib/aspera/cli/option_declarator.rb
349
362
  - lib/aspera/cli/options.schema.yaml
363
+ - lib/aspera/cli/parser.rb
350
364
  - lib/aspera/cli/plugins/alee.rb
351
365
  - lib/aspera/cli/plugins/aoc.rb
352
366
  - lib/aspera/cli/plugins/ats.rb
@@ -356,24 +370,28 @@ files:
356
370
  - lib/aspera/cli/plugins/console.rb
357
371
  - lib/aspera/cli/plugins/cos.rb
358
372
  - lib/aspera/cli/plugins/factory.rb
359
- - lib/aspera/cli/plugins/faspex.rb
360
373
  - lib/aspera/cli/plugins/faspex5.rb
361
374
  - lib/aspera/cli/plugins/faspio.rb
362
375
  - lib/aspera/cli/plugins/httpgw.rb
376
+ - lib/aspera/cli/plugins/mcp.rb
363
377
  - lib/aspera/cli/plugins/node.rb
364
378
  - lib/aspera/cli/plugins/oauth.rb
365
379
  - lib/aspera/cli/plugins/orchestrator.rb
366
380
  - lib/aspera/cli/plugins/preview.rb
367
381
  - lib/aspera/cli/plugins/server.rb
368
382
  - lib/aspera/cli/plugins/shares.rb
383
+ - lib/aspera/cli/preset_actions.rb
369
384
  - lib/aspera/cli/preset_manager.rb
370
385
  - lib/aspera/cli/result.rb
371
386
  - lib/aspera/cli/runner.rb
387
+ - lib/aspera/cli/secret_finder.rb
372
388
  - lib/aspera/cli/special_values.rb
373
389
  - lib/aspera/cli/sync_actions.rb
374
390
  - lib/aspera/cli/terminal_formatter.rb
391
+ - lib/aspera/cli/transfer_actions.rb
375
392
  - lib/aspera/cli/transfer_agent.rb
376
393
  - lib/aspera/cli/transfer_progress.rb
394
+ - lib/aspera/cli/vault_manager.rb
377
395
  - lib/aspera/cli/version.rb
378
396
  - lib/aspera/cli/wizard.rb
379
397
  - lib/aspera/colors.rb
@@ -389,18 +407,25 @@ files:
389
407
  - lib/aspera/data_repository.rb
390
408
  - lib/aspera/dot_container.rb
391
409
  - lib/aspera/environment.rb
410
+ - lib/aspera/exec_spec.rb
392
411
  - lib/aspera/faspex_gw.rb
393
412
  - lib/aspera/faspex_postproc.rb
394
413
  - lib/aspera/formatter_interface.rb
414
+ - lib/aspera/graphql.rb
395
415
  - lib/aspera/hash_ext.rb
396
416
  - lib/aspera/id_generator.rb
397
- - lib/aspera/json_rpc.rb
417
+ - lib/aspera/json_rpc/client.rb
418
+ - lib/aspera/json_rpc/version.rb
398
419
  - lib/aspera/keychain/base.rb
399
420
  - lib/aspera/keychain/encrypted_hash.rb
400
421
  - lib/aspera/keychain/factory.rb
401
422
  - lib/aspera/keychain/hashicorp_vault.rb
402
423
  - lib/aspera/keychain/macos_security.rb
424
+ - lib/aspera/keychain/one_password_api.rb
425
+ - lib/aspera/keychain/one_password_base.rb
426
+ - lib/aspera/keychain/one_password_cli.rb
403
427
  - lib/aspera/line_logger.rb
428
+ - lib/aspera/link_header.rb
404
429
  - lib/aspera/log.rb
405
430
  - lib/aspera/markdown.rb
406
431
  - lib/aspera/nagios.rb
@@ -434,7 +459,10 @@ files:
434
459
  - lib/aspera/rest_errors_aspera.rb
435
460
  - lib/aspera/rest_list.rb
436
461
  - lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml
462
+ - lib/aspera/schema/IBM Aspera Node API-4.4.6.yaml
463
+ - lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0.yaml
437
464
  - lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml
465
+ - lib/aspera/schema/IBM_Aspera_Shares.yaml
438
466
  - lib/aspera/schema/async_tables.yaml
439
467
  - lib/aspera/schema/documentation.rb
440
468
  - lib/aspera/schema/reader.rb
@@ -451,10 +479,10 @@ files:
451
479
  - lib/aspera/transfer/error.rb
452
480
  - lib/aspera/transfer/faux_file.rb
453
481
  - lib/aspera/transfer/parameters.rb
482
+ - lib/aspera/transfer/result.rb
454
483
  - lib/aspera/transfer/resumer.rb
455
484
  - lib/aspera/transfer/spec.rb
456
485
  - lib/aspera/transfer/spec.schema.yaml
457
- - lib/aspera/transfer/uri.rb
458
486
  - lib/aspera/uri_reader.rb
459
487
  - lib/aspera/web_auth.rb
460
488
  - lib/aspera/web_server_simple.rb
@@ -486,7 +514,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
486
514
  version: '0'
487
515
  requirements:
488
516
  - Read the manual for any requirement
489
- rubygems_version: 4.0.16
517
+ rubygems_version: 4.0.20
490
518
  specification_version: 4
491
519
  summary: 'Execute actions using command line on IBM Aspera Server products: Aspera
492
520
  on Cloud, Faspex, Shares, Node, Console, Orchestrator, High Speed Transfer Server'
metadata.gz.sig CHANGED
Binary file