aspera-cli 4.27.0 → 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 (140) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +29 -0
  4. data/CONTRIBUTING.md +1 -7
  5. data/TODO.md +50 -0
  6. data/docs/README.md +708 -488
  7. data/lib/aspera/agent/base.rb +10 -2
  8. data/lib/aspera/agent/connect.rb +7 -7
  9. data/lib/aspera/agent/desktop.rb +3 -3
  10. data/lib/aspera/agent/direct.rb +48 -19
  11. data/lib/aspera/agent/factory.rb +3 -3
  12. data/lib/aspera/agent/httpgw.rb +55 -14
  13. data/lib/aspera/agent/node.rb +2 -2
  14. data/lib/aspera/agent/transferd.rb +12 -12
  15. data/lib/aspera/api/aoc.rb +28 -28
  16. data/lib/aspera/api/cos_node.rb +10 -9
  17. data/lib/aspera/api/faspex.rb +2 -2
  18. data/lib/aspera/api/httpgw.rb +20 -20
  19. data/lib/aspera/api/node.rb +31 -53
  20. data/lib/aspera/ascmd.rb +13 -13
  21. data/lib/aspera/ascp/installation.rb +43 -36
  22. data/lib/aspera/ascp/management.rb +6 -6
  23. data/lib/aspera/assert.rb +12 -13
  24. data/lib/aspera/cli/ascp_actions.rb +7 -7
  25. data/lib/aspera/cli/async_transfer_store.rb +49 -5
  26. data/lib/aspera/cli/bootstrapper.rb +9 -9
  27. data/lib/aspera/cli/command_registry.rb +1 -1
  28. data/lib/aspera/cli/command_spec.rb +6 -3
  29. data/lib/aspera/cli/context.rb +3 -3
  30. data/lib/aspera/cli/extended_value.rb +26 -26
  31. data/lib/aspera/cli/formatter.rb +76 -54
  32. data/lib/aspera/cli/gem_checker.rb +1 -1
  33. data/lib/aspera/cli/hints.rb +2 -2
  34. data/lib/aspera/cli/http.rb +22 -29
  35. data/lib/aspera/cli/mailer.rb +7 -7
  36. data/lib/aspera/cli/mcp_tool.rb +31 -4
  37. data/lib/aspera/cli/option_declarator.rb +77 -0
  38. data/lib/aspera/cli/options.schema.yaml +273 -3
  39. data/lib/aspera/cli/parser.rb +539 -280
  40. data/lib/aspera/cli/plugins/alee.rb +1 -1
  41. data/lib/aspera/cli/plugins/aoc.rb +297 -313
  42. data/lib/aspera/cli/plugins/ats.rb +25 -21
  43. data/lib/aspera/cli/plugins/base.rb +357 -186
  44. data/lib/aspera/cli/plugins/basic_auth.rb +0 -12
  45. data/lib/aspera/cli/plugins/config.rb +76 -73
  46. data/lib/aspera/cli/plugins/console.rb +8 -8
  47. data/lib/aspera/cli/plugins/cos.rb +4 -3
  48. data/lib/aspera/cli/plugins/factory.rb +2 -2
  49. data/lib/aspera/cli/plugins/faspex5.rb +259 -248
  50. data/lib/aspera/cli/plugins/faspio.rb +7 -2
  51. data/lib/aspera/cli/plugins/httpgw.rb +1 -1
  52. data/lib/aspera/cli/plugins/mcp.rb +11 -11
  53. data/lib/aspera/cli/plugins/node.rb +227 -283
  54. data/lib/aspera/cli/plugins/orchestrator.rb +23 -23
  55. data/lib/aspera/cli/plugins/preview.rb +61 -64
  56. data/lib/aspera/cli/plugins/server.rb +36 -31
  57. data/lib/aspera/cli/plugins/shares.rb +174 -135
  58. data/lib/aspera/cli/preset_actions.rb +39 -19
  59. data/lib/aspera/cli/preset_manager.rb +74 -32
  60. data/lib/aspera/cli/result.rb +18 -16
  61. data/lib/aspera/cli/runner.rb +75 -39
  62. data/lib/aspera/cli/secret_finder.rb +1 -1
  63. data/lib/aspera/cli/sync_actions.rb +36 -35
  64. data/lib/aspera/cli/terminal_formatter.rb +2 -2
  65. data/lib/aspera/cli/transfer_actions.rb +17 -10
  66. data/lib/aspera/cli/transfer_agent.rb +44 -44
  67. data/lib/aspera/cli/transfer_progress.rb +7 -7
  68. data/lib/aspera/cli/vault_manager.rb +34 -12
  69. data/lib/aspera/cli/version.rb +1 -1
  70. data/lib/aspera/cli/wizard.rb +17 -20
  71. data/lib/aspera/colors.rb +3 -3
  72. data/lib/aspera/command_line_builder.rb +16 -16
  73. data/lib/aspera/command_line_converter.rb +1 -1
  74. data/lib/aspera/coverage.rb +1 -2
  75. data/lib/aspera/data_repository.rb +1 -1
  76. data/lib/aspera/dot_container.rb +8 -8
  77. data/lib/aspera/environment.rb +12 -12
  78. data/lib/aspera/faspex_gw.rb +4 -4
  79. data/lib/aspera/faspex_postproc.rb +14 -9
  80. data/lib/aspera/graphql.rb +4 -2
  81. data/lib/aspera/hash_ext.rb +2 -2
  82. data/lib/aspera/json_rpc/client.rb +1 -1
  83. data/lib/aspera/keychain/base.rb +10 -3
  84. data/lib/aspera/keychain/encrypted_hash.rb +92 -17
  85. data/lib/aspera/keychain/factory.rb +17 -5
  86. data/lib/aspera/keychain/hashicorp_vault.rb +1 -1
  87. data/lib/aspera/keychain/macos_security.rb +23 -25
  88. data/lib/aspera/keychain/one_password_api.rb +86 -0
  89. data/lib/aspera/keychain/one_password_base.rb +34 -0
  90. data/lib/aspera/keychain/one_password_cli.rb +98 -0
  91. data/lib/aspera/link_header.rb +2 -2
  92. data/lib/aspera/log.rb +13 -13
  93. data/lib/aspera/markdown.rb +5 -5
  94. data/lib/aspera/nagios.rb +8 -8
  95. data/lib/aspera/node_simulator.rb +33 -27
  96. data/lib/aspera/oauth/base.rb +4 -5
  97. data/lib/aspera/oauth/boot.rb +3 -3
  98. data/lib/aspera/oauth/factory.rb +5 -5
  99. data/lib/aspera/oauth/jwt.rb +5 -7
  100. data/lib/aspera/oauth/web.rb +4 -4
  101. data/lib/aspera/persistency_action_once.rb +4 -4
  102. data/lib/aspera/persistency_folder.rb +8 -8
  103. data/lib/aspera/preview/file_types.rb +4 -4
  104. data/lib/aspera/preview/generator.rb +49 -46
  105. data/lib/aspera/preview/options.rb +3 -2
  106. data/lib/aspera/preview/terminal.rb +5 -5
  107. data/lib/aspera/preview/utils.rb +65 -18
  108. data/lib/aspera/products/connect.rb +2 -2
  109. data/lib/aspera/products/desktop.rb +1 -1
  110. data/lib/aspera/products/other.rb +2 -2
  111. data/lib/aspera/products/transferd.rb +3 -3
  112. data/lib/aspera/proxy_auto_config.rb +10 -10
  113. data/lib/aspera/rest.rb +149 -115
  114. data/lib/aspera/rest_error_analyzer.rb +3 -3
  115. data/lib/aspera/rest_list.rb +10 -9
  116. data/lib/aspera/schema/IBM Aspera Node API-4.4.6.yaml +6232 -0
  117. data/lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0.yaml +249 -0
  118. data/lib/aspera/schema/IBM_Aspera_Shares.yaml +4653 -0
  119. data/lib/aspera/schema/documentation.rb +17 -11
  120. data/lib/aspera/schema/reader.rb +78 -4
  121. data/lib/aspera/schema/registry.rb +26 -7
  122. data/lib/aspera/secret_hider.rb +5 -5
  123. data/lib/aspera/ssh.rb +64 -31
  124. data/lib/aspera/ssl.rb +3 -3
  125. data/lib/aspera/sync/database.rb +2 -2
  126. data/lib/aspera/sync/operations.rb +13 -13
  127. data/lib/aspera/temp_file_manager.rb +24 -4
  128. data/lib/aspera/transfer/faux_file.rb +2 -2
  129. data/lib/aspera/transfer/parameters.rb +15 -15
  130. data/lib/aspera/transfer/resumer.rb +9 -9
  131. data/lib/aspera/transfer/spec.rb +1 -1
  132. data/lib/aspera/uri_reader.rb +52 -15
  133. data/lib/aspera/web_auth.rb +6 -5
  134. data/lib/aspera/web_server_simple.rb +9 -9
  135. data/lib/aspera/yaml.rb +4 -4
  136. data.tar.gz.sig +0 -0
  137. metadata +10 -4
  138. metadata.gz.sig +0 -0
  139. data/lib/aspera/cli/plugins/faspex.rb +0 -576
  140. data/lib/aspera/transfer/uri.rb +0 -56
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a276abd040bdbbe20862d416747d5edadfbb6aa146c0e4cbde1593911b2dcf7
4
- data.tar.gz: 88e8b1c3dedbc94b6b9d84926be491ef0e4d93a36b19aa339f481ed7ff244a44
3
+ metadata.gz: 4cd55cd81317773b0a3db9df127c37d38c7d4eb4b3740c12d9e950a175cdb3b7
4
+ data.tar.gz: 8cf2aa9a26337d022f920ed616f61beaf45ee13a47e22f2908c374a1124a094c
5
5
  SHA512:
6
- metadata.gz: b3225ea03b8aeac02e25632b540058667e7695f52c348d6f118c9cd9c3cbb9d2b347835d00fa2278b6250a0ca91f7d7fedf1ff37268f402a895ab15d4ff70a3a
7
- data.tar.gz: c39eca61481083a5e78f3ce423ecc18922bc960b5bda7a20ab255ab5b4fcc5464f3ce04bb1f3112ce53935f52ec45882697603a4d998e21376d7015937ebdb34
6
+ metadata.gz: 66e364c4c859eb7b1495ba55095d0b737e87fb3c450fe3017f0848b8002ff686cdcd2f3ddc3054c20f524401489bfeda634a6c663e78ed217ae09e964bbc8e6e
7
+ data.tar.gz: c117f95520d0d36bfa37c8a0cbac78727f0b085b89a22d0fa7318a1918d6510fa37a7cf01754ff7f8e45b7b43696e8fa26fda743ec74a03b5a67220846de6ac6
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changes (Release notes)
2
2
 
3
+ ## 4.27.1
4
+
5
+ Released: 2026-09-16
6
+
7
+ ### New Features
8
+
9
+ * **global**: `browse` is now accepted as an alias for `ls` in `node access_key do`, `aoc files`, `aoc admin node do`, and `aoc admin ats access_key node`.
10
+ * `config`: Vault: added support for 1Password as a secret store.
11
+ * `config`: Preset secrets (passwords, keys) are now automatically moved to the vault when a preset is saved and a vault is used.
12
+ * `httpgw`: Added asynchronous transfer mode — `last_job_id` is now exposed so a transfer can be submitted and its status queried later.
13
+ * `direct`: Added asynchronous transfer mode — `last_job_id` is now exposed so a transfer can be submitted and its status queried later.
14
+ * `preview`: `scan` now accepts an optional path or `%id:<file_id>` selector, allowing preview generation for one file or a subtree. Added the `--filter` option, supporting glob strings, regular expressions, and `@ruby:` Proc expressions.
15
+ * `config`: Preset keys starting with `_` (e.g. `_comment`) are now ignored when a preset is applied as CLI options, allowing inline annotations in `config.yaml`.
16
+ * **global**: New composite option `--out` groups all output rendering options with dot-notation sub-keys: `format`, `level`, `file`, `fields`, `select`, `table[.pivot]`, `flat`, `secrets`, `img`. Individual options preserved with deprecation warnings.
17
+ * `config`: `preset set` now supports dot-notation keys with deep-merge and automatic type coercion.
18
+
19
+ ### Issues Fixed
20
+
21
+ * `faspex5`: Wizard was incorrectly nesting `client_id` and `client_secret` under a `params:` sub-key in the generated preset, instead of placing them at the top level.
22
+ * **global**: Assigning `@none:` to a `Hash`-typed option now correctly resets it to `nil` instead of being stored as a literal value.
23
+ * `config`: Vault: removed `symmetric-encryption` gem dependency, replaced with `openssl`. Existing encrypted data may not be compatible — export your vault contents first, then re-import after upgrading.
24
+ * `config`: Vault: fixed macOS Keychain API compatibility.
25
+ * **global**: Option type `Hash` is now automatically inferred when the option schema uses `oneOf`/`anyOf` with all-object branches; no need to specify `allowed: Hash` explicitly.
26
+
27
+ ### Breaking Changes
28
+
29
+ * `preview`: Options `--scan-id` and `--scan-path` are deprecated; use the optional `scan [path]` argument instead.
30
+ * `faspex`: **Plugin removed** - Faspex v4 is end of support since September 30th, 2024. Use `ascli` version 4.19.0 or earlier if still needed.
31
+
3
32
  ## 4.27.0
4
33
 
5
34
  Released: 2026-09-03
data/CONTRIBUTING.md CHANGED
@@ -126,6 +126,7 @@ bundle exec rake doc:prep
126
126
  Add one bullet under `### New Features` (or `### Issues Fixed` / `### Breaking Changes`) in the current `.pre` section at the top of `CHANGELOG.md`.
127
127
 
128
128
  Style rules:
129
+
129
130
  - Plugin name in backticks: `` `config` ``, `` `aoc` ``, or `**global**` for cross-cutting changes.
130
131
  - Command path and argument names in backticks.
131
132
  - One sentence per bullet; end without a period.
@@ -404,10 +405,3 @@ bundle exec rake release_tag
404
405
  This triggers the `.github/workflows/deploy.yml` action to publish to RubyGems.
405
406
 
406
407
  - Update `version.rb` to the next `.pre` development version.
407
-
408
- ## Future Improvements
409
-
410
- - Evaluate replacing custom REST and OAuth implementations with standard gems:
411
- - [rest-client](https://github.com/rest-client/rest-client)
412
- - [oauth2](https://github.com/oauth-xx/oauth2)
413
- - Explore [Traveling Ruby](https://github.com/phusion/traveling-ruby) for distribution, or [truby Traveling Ruby](https://github.com/trubygems/traveling-ruby).
data/TODO.md ADDED
@@ -0,0 +1,50 @@
1
+ # TODO
2
+
3
+ Ideas and TODO list.
4
+ Add improvement ideas here.
5
+
6
+ ## Preview: deletion of orphaned preview files
7
+
8
+ Deletion of preview files for deleted source files is not yet implemented.
9
+
10
+ ## Architecture: replace custom REST client with `rest-client` gem
11
+
12
+ Evaluate replacing the custom REST implementation with the standard
13
+ [`rest-client`](https://github.com/rest-client/rest-client) gem.
14
+
15
+ ## Architecture: replace custom OAuth client with `oauth2` gem
16
+
17
+ Evaluate replacing the custom OAuth 2.0 implementation with the standard
18
+ [`oauth2`](https://github.com/oauth-xx/oauth2) gem.
19
+
20
+ ## Architecture: explore Traveling Ruby for single-executable distribution
21
+
22
+ Explore [Traveling Ruby](https://github.com/phusion/traveling-ruby)
23
+ (or [truby Traveling Ruby](https://github.com/trubygems/traveling-ruby)) as an alternative
24
+ single-executable distribution method.
25
+
26
+ ## OCRAN packaging
27
+
28
+ ## Add `description:` to all `ArgumentSpec` declarations
29
+
30
+ The `description` field is user-facing (shown in `--help` output) and should be present on
31
+ every `ArgumentSpec`. Arguments that already carry a `schema:` key or whose name is
32
+ self-explanatory are lower priority, but all should have explicit descriptions eventually.
33
+
34
+ Example fix:
35
+
36
+ ```ruby
37
+ # Before
38
+ {name: :async_id, type: :identifier, lookup: :async_lookup}
39
+
40
+ # After
41
+ {name: :async_id, description: 'Async operation identifier', type: :identifier, lookup: :async_lookup}
42
+ ```
43
+
44
+ ## DSL: Scoped options declaration and contextual documentation
45
+
46
+ Improve the DSL to distinguish between global CLI options, plugin-level options, and command-scoped options:
47
+
48
+ - **DSL declaration**: Allow options to be declared with reduced/specific scopes (e.g., at command/subtree level via `command(..., options: [...])` or `scope:` parameter on `option`) in addition to global and plugin-wide options.
49
+ - **Contextual `--help`**: In `--help` output, display only options relevant to the targeted command/path (command-specific, plugin-wide, and global sections).
50
+ - **Documentation generation**: Enhance documentation generator to display scoped options only under the concerned commands.