aspera-cli 4.27.5 → 4.28.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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +160 -4
  4. data/CONTRIBUTING.md +4 -2
  5. data/README.md +1 -1
  6. data/bin/asession +1 -1
  7. data/docs/README.md +1086 -331
  8. data/docs/test-mcp-with-ai.md +5 -3
  9. data/lib/aspera/agent/direct.rb +15 -4
  10. data/lib/aspera/agent/factory.rb +2 -1
  11. data/lib/aspera/agent/node.rb +1 -1
  12. data/lib/aspera/api/cos_node.rb +1 -1
  13. data/lib/aspera/api/faspex.rb +1 -1
  14. data/lib/aspera/api/node.rb +6 -2
  15. data/lib/aspera/ascp/installation.rb +47 -11
  16. data/lib/aspera/ascp/management.rb +89 -43
  17. data/lib/aspera/cli/ascp_actions.rb +5 -19
  18. data/lib/aspera/cli/bootstrapper.rb +1 -2
  19. data/lib/aspera/cli/command_registry.rb +43 -3
  20. data/lib/aspera/cli/command_spec.rb +3 -0
  21. data/lib/aspera/cli/completion/ascli.bash +39 -5
  22. data/lib/aspera/cli/completion/ascli.fish +16 -8
  23. data/lib/aspera/cli/completion/ascli.ps1 +41 -0
  24. data/lib/aspera/cli/completion/ascli.zsh +20 -4
  25. data/lib/aspera/cli/completion_actions.rb +360 -0
  26. data/lib/aspera/cli/error.rb +42 -0
  27. data/lib/aspera/cli/extended_value.rb +30 -5
  28. data/lib/aspera/cli/formatter.rb +118 -56
  29. data/lib/aspera/cli/hints.rb +0 -1
  30. data/lib/aspera/cli/http.rb +6 -5
  31. data/lib/aspera/cli/info.rb +10 -4
  32. data/lib/aspera/cli/mailer.rb +1 -1
  33. data/lib/aspera/cli/mcp/http_servlet.rb +156 -0
  34. data/lib/aspera/cli/mcp/secrets.rb +143 -0
  35. data/lib/aspera/cli/mcp/tool.rb +231 -0
  36. data/lib/aspera/cli/option_value.rb +9 -1
  37. data/lib/aspera/cli/options.schema.yaml +390 -39
  38. data/lib/aspera/cli/parser.rb +14 -5
  39. data/lib/aspera/cli/plugins/aoc.rb +8 -11
  40. data/lib/aspera/cli/plugins/base.rb +36 -15
  41. data/lib/aspera/cli/plugins/config.rb +15 -44
  42. data/lib/aspera/cli/plugins/console.rb +3 -1
  43. data/lib/aspera/cli/plugins/factory.rb +1 -1
  44. data/lib/aspera/cli/plugins/faspex5.rb +9 -19
  45. data/lib/aspera/cli/plugins/faspio.rb +36 -5
  46. data/lib/aspera/cli/plugins/httpgw.rb +1 -0
  47. data/lib/aspera/cli/plugins/mcp.rb +177 -118
  48. data/lib/aspera/cli/plugins/node.rb +14 -8
  49. data/lib/aspera/cli/plugins/orchestrator.rb +351 -38
  50. data/lib/aspera/cli/plugins/server.rb +3 -1
  51. data/lib/aspera/cli/plugins/shares.rb +205 -35
  52. data/lib/aspera/cli/preset_actions.rb +15 -7
  53. data/lib/aspera/cli/preset_manager.rb +24 -2
  54. data/lib/aspera/cli/prompt.rb +3 -1
  55. data/lib/aspera/cli/result.rb +17 -4
  56. data/lib/aspera/cli/runner.rb +133 -43
  57. data/lib/aspera/cli/security.rb +134 -0
  58. data/lib/aspera/cli/table_fitter.rb +116 -0
  59. data/lib/aspera/cli/terminal_formatter.rb +23 -34
  60. data/lib/aspera/cli/transfer_agent.rb +4 -1
  61. data/lib/aspera/cli/vault_manager.rb +6 -5
  62. data/lib/aspera/cli/version.rb +1 -1
  63. data/lib/aspera/cli/web_secret.html.erb +61 -0
  64. data/lib/aspera/cli/web_secret.rb +220 -0
  65. data/lib/aspera/cli/wizard.rb +19 -9
  66. data/lib/aspera/command_line_builder.rb +26 -0
  67. data/lib/aspera/data_repository.rb +38 -24
  68. data/lib/aspera/duration.rb +42 -0
  69. data/lib/aspera/environment.rb +88 -24
  70. data/lib/aspera/exec_spec.rb +6 -5
  71. data/lib/aspera/faspex_gw.rb +98 -32
  72. data/lib/aspera/faspex_postproc.rb +187 -44
  73. data/lib/aspera/formatter_interface.rb +0 -1
  74. data/lib/aspera/id_generator.rb +2 -1
  75. data/lib/aspera/json_rpc/client.rb +51 -32
  76. data/lib/aspera/json_rpc/version.rb +1 -0
  77. data/lib/aspera/keychain/base.rb +5 -0
  78. data/lib/aspera/keychain/encrypted_hash.rb +6 -2
  79. data/lib/aspera/keychain/factory.rb +2 -3
  80. data/lib/aspera/keychain/hashicorp_vault.rb +7 -4
  81. data/lib/aspera/keychain/macos_security.rb +119 -13
  82. data/lib/aspera/keychain/one_password_api.rb +8 -3
  83. data/lib/aspera/keychain/one_password_base.rb +14 -9
  84. data/lib/aspera/keychain/one_password_cli.rb +4 -2
  85. data/lib/aspera/log.rb +3 -6
  86. data/lib/aspera/markdown.rb +152 -115
  87. data/lib/aspera/mime.rb +6 -0
  88. data/lib/aspera/nagios.rb +3 -1
  89. data/lib/aspera/node_emulator.rb +98 -101
  90. data/lib/aspera/oauth/{base.rb → client/base.rb} +5 -4
  91. data/lib/aspera/oauth/{boot.rb → client/boot.rb} +3 -2
  92. data/lib/aspera/oauth/{factory.rb → client/factory.rb} +7 -0
  93. data/lib/aspera/oauth/{generic.rb → client/generic.rb} +1 -1
  94. data/lib/aspera/oauth/{json_credentials.rb → client/json_credentials.rb} +1 -1
  95. data/lib/aspera/oauth/{jwt.rb → client/jwt.rb} +1 -1
  96. data/lib/aspera/oauth/{url_json.rb → client/url_json.rb} +1 -1
  97. data/lib/aspera/oauth/{web.rb → client/web.rb} +2 -2
  98. data/lib/aspera/oauth/server/authorize.html.erb +34 -0
  99. data/lib/aspera/oauth/server/pkce.rb +426 -0
  100. data/lib/aspera/orchestrator_workflow_checker.rb +561 -0
  101. data/lib/aspera/preview/terminal.rb +3 -2
  102. data/lib/aspera/rainbow.rb +27 -1
  103. data/lib/aspera/rest/aspera_errors.rb +51 -59
  104. data/lib/aspera/rest/client.rb +21 -14
  105. data/lib/aspera/rest/error_analyzer.rb +9 -0
  106. data/lib/aspera/rest/list.rb +6 -6
  107. data/lib/aspera/rest/util.rb +7 -1
  108. data/lib/aspera/rest.rb +0 -1
  109. data/lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml +0 -2
  110. data/lib/aspera/schema/IBM Aspera Orchestrator API-v1-enhanced.yaml +4001 -0
  111. data/lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0-enhanced.yaml +1097 -0
  112. data/lib/aspera/schema/IBM Aspera on Cloud Automation API-1.0.5-enhanced.yaml +35 -35
  113. data/lib/aspera/schema/IBM_Aspera_Shares.yaml +819 -7
  114. data/lib/aspera/schema/documentation.rb +50 -78
  115. data/lib/aspera/schema/reader.rb +39 -11
  116. data/lib/aspera/schema/registry.rb +8 -2
  117. data/lib/aspera/secret_hider.rb +94 -15
  118. data/lib/aspera/secret_strength.rb +114 -0
  119. data/lib/aspera/servlet_helpers.rb +111 -0
  120. data/lib/aspera/sync/args.schema.yaml +3 -1
  121. data/lib/aspera/sync/conf.schema.yaml +16 -6
  122. data/lib/aspera/sync/operations.rb +21 -1
  123. data/lib/aspera/temp_file_manager.rb +79 -20
  124. data/lib/aspera/transfer/parameters.rb +5 -0
  125. data/lib/aspera/transfer/spec.rb +52 -12
  126. data/lib/aspera/transfer/spec.schema.yaml +8 -5
  127. data/lib/aspera/web_auth/index.html.erb +16 -0
  128. data/lib/aspera/web_auth/server.rb +18 -10
  129. data/lib/aspera/web_page.html.erb +262 -0
  130. data/lib/aspera/web_page.rb +61 -0
  131. data/lib/aspera/web_server_simple.rb +76 -10
  132. data.tar.gz.sig +0 -0
  133. metadata +47 -32
  134. metadata.gz.sig +0 -0
  135. data/lib/aspera/cli/mcp_tool.rb +0 -189
  136. data/lib/aspera/oauth.rb +0 -9
  137. data/lib/aspera/schema/IBM Aspera Orchestrator API-v1.yaml +0 -1784
  138. data/lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0.yaml +0 -249
  139. data/lib/aspera/web_auth/index.html +0 -147
@@ -802,7 +802,7 @@ components:
802
802
  examples:
803
803
  - transfer step
804
804
  status:
805
- description: 'Status of the workflow instance. Allowed values: executing, failed, complete, canceled.'
805
+ description: 'Status of the workflow instance.'
806
806
  type: string
807
807
  examples:
808
808
  - complete
@@ -963,7 +963,7 @@ components:
963
963
  examples:
964
964
  - '1072'
965
965
  state:
966
- description: 'State of the workflow. Allowed values: draft, active, inactive, error.'
966
+ description: 'State of the workflow.'
967
967
  type: string
968
968
  examples:
969
969
  - draft
@@ -973,7 +973,7 @@ components:
973
973
  - inactive
974
974
  - error
975
975
  status:
976
- description: 'Workflow status. Allowed values: not_started, executing, failed, complete, canceled.'
976
+ description: 'Workflow status.'
977
977
  type: string
978
978
  examples:
979
979
  - not_started
@@ -1065,7 +1065,7 @@ components:
1065
1065
  examples:
1066
1066
  - 2019-01-10T21:25:24.000Z
1067
1067
  trigger_type:
1068
- description: 'Trigger type for the workflow. Allowed values: manual, shared_inbox, watch_folder, scheduled.'
1068
+ description: 'Trigger type for the workflow.'
1069
1069
  type: string
1070
1070
  examples:
1071
1071
  - scheduled
@@ -1147,7 +1147,7 @@ components:
1147
1147
  examples:
1148
1148
  - '1230'
1149
1149
  state:
1150
- description: 'The state of the workflow. Allowed values: draft, active, inactive, error.'
1150
+ description: 'The state of the workflow.'
1151
1151
  type: string
1152
1152
  examples:
1153
1153
  - draft
@@ -1157,7 +1157,7 @@ components:
1157
1157
  - inactive
1158
1158
  - error
1159
1159
  status:
1160
- description: 'Workflow status. Allowed values: not_started, executing, failed, complete, canceled.'
1160
+ description: 'Workflow status.'
1161
1161
  type: string
1162
1162
  examples:
1163
1163
  - not_started
@@ -1188,7 +1188,7 @@ components:
1188
1188
  examples:
1189
1189
  - 2019-02-19T23:52:20.000Z
1190
1190
  trigger_type:
1191
- description: 'Trigger type for the workflow. Allowed values: manual, shared_inbox, watch_folder, scheduled.'
1191
+ description: 'Trigger type for the workflow.'
1192
1192
  type: string
1193
1193
  examples:
1194
1194
  - manual
@@ -1260,7 +1260,7 @@ components:
1260
1260
  examples:
1261
1261
  - null
1262
1262
  type:
1263
- description: 'Type of action, which can include a workflow trigger. Allowed values: transfer, send_package, api, email_notification, manual, shared_inbox, watch_folder, scheduled.'
1263
+ description: 'Type of action, which can include a workflow trigger.'
1264
1264
  type: string
1265
1265
  examples:
1266
1266
  - scheduled
@@ -1360,7 +1360,7 @@ components:
1360
1360
  type: object
1361
1361
  properties:
1362
1362
  name:
1363
- description: Name for the path. Allowed values, source, file_id, node_id, message, value, conditions.
1363
+ description: Name for the path.
1364
1364
  type: string
1365
1365
  examples:
1366
1366
  - message
@@ -1372,7 +1372,7 @@ components:
1372
1372
  - value
1373
1373
  - conditions
1374
1374
  type:
1375
- description: 'Path type. Allowed values: map, array. Note that path type of map indicates a key:value pair.'
1375
+ description: 'Path type. Note that path type of map indicates a key:value pair.'
1376
1376
  type: string
1377
1377
  examples:
1378
1378
  - map
@@ -1424,9 +1424,9 @@ components:
1424
1424
  properties:
1425
1425
  type:
1426
1426
  description: |-
1427
- Authentication type required by the API. Allowed values: bearer, basic, none. Default: none. Use 'bearer' for bearer token authentication, for basic authentication, 'none' for no authentication method.
1427
+ Authentication type required by the API. Use 'bearer' for bearer token authentication, 'basic' for basic authentication, 'none' for no authentication method.
1428
1428
 
1429
- The bearer authentication type requires a token parameter. Allowed values: none, bearer, basic. Default: none. The basic authentication type requires username and password parameters. The 'none' authentication type does not require additional parameters.
1429
+ The bearer authentication type requires a token parameter. The basic authentication type requires username and password parameters. The 'none' authentication type does not require additional parameters.
1430
1430
  type: string
1431
1431
  examples:
1432
1432
  - bearer
@@ -1561,7 +1561,7 @@ components:
1561
1561
  examples:
1562
1562
  - true
1563
1563
  difference_check:
1564
- description: 'Type of check used to validate content. Allowed values: attrs, none.'
1564
+ description: 'Type of check used to validate content.'
1565
1565
  type: string
1566
1566
  examples:
1567
1567
  - attrs
@@ -1569,7 +1569,7 @@ components:
1569
1569
  - attrs
1570
1570
  - none
1571
1571
  destination_file_options:
1572
- description: 'Processing options for file at destination. Allowed values: overwrite_always, overwrite_both_newer_and_different, overwrite_different, overwrite_newer, overwrite_never.'
1572
+ description: 'Processing options for file at destination.'
1573
1573
  type: string
1574
1574
  examples:
1575
1575
  - overwrite_always
@@ -1589,7 +1589,7 @@ components:
1589
1589
  type: object
1590
1590
  properties:
1591
1591
  archive_option:
1592
- description: 'Archive policy for the package at the source. Allowed values: none, archive, delete.'
1592
+ description: 'Archive policy for the package at the source.'
1593
1593
  type: string
1594
1594
  examples:
1595
1595
  - archive
@@ -1613,7 +1613,7 @@ components:
1613
1613
  examples:
1614
1614
  - true
1615
1615
  conditions_type:
1616
- description: 'The conditions type for the transfer. Allowed values: all_new (transfers all new files), custom (adds custom filtering conditions). Default: all-new.'
1616
+ description: 'The conditions type for the transfer: all_new transfers all new files, custom adds custom filtering conditions.'
1617
1617
  type: string
1618
1618
  examples:
1619
1619
  - custom
@@ -1831,7 +1831,7 @@ components:
1831
1831
  type: object
1832
1832
  properties:
1833
1833
  method:
1834
- description: 'API method for the request. Allowed values: get, post, put, delete.'
1834
+ description: 'API method for the request.'
1835
1835
  type: string
1836
1836
  examples:
1837
1837
  - get
@@ -1851,9 +1851,9 @@ components:
1851
1851
  properties:
1852
1852
  type:
1853
1853
  description: |-
1854
- Authentication type required by the API. Allowed values: bearer, basic, none. Default: none. Use 'bearer' for bearer token authentication, for basic authentication, 'none' for no authentication method.
1854
+ Authentication type required by the API. Use 'bearer' for bearer token authentication, 'basic' for basic authentication, 'none' for no authentication method.
1855
1855
 
1856
- Allowed values: none, bearer, basic. Default: none. The basic authentication type requires a username parameter and a password parameter. The bearer authentication type requires a token parameter. The 'none' authentication type does not require additional parameters.
1856
+ The basic authentication type requires a username parameter and a password parameter. The bearer authentication type requires a token parameter. The 'none' authentication type does not require additional parameters.
1857
1857
  type: string
1858
1858
  examples:
1859
1859
  - bearer
@@ -1987,7 +1987,7 @@ components:
1987
1987
  items:
1988
1988
  $ref: '#/components/schemas/Paths'
1989
1989
  type:
1990
- description: 'Type of destination for transfer. Allowed values: workspace, node.'
1990
+ description: 'Type of destination for transfer.'
1991
1991
  type: string
1992
1992
  examples:
1993
1993
  - workspace
@@ -2013,7 +2013,7 @@ components:
2013
2013
  examples:
2014
2014
  - true
2015
2015
  conditions_type:
2016
- description: 'The conditions type for the transfer. Allowed values: all_new (transfers all new files), custom (adds custom filtering conditions). Default: all-new.'
2016
+ description: 'The conditions type for the transfer: all_new transfers all new files, custom adds custom filtering conditions.'
2017
2017
  type: string
2018
2018
  examples:
2019
2019
  - custom
@@ -2022,7 +2022,7 @@ components:
2022
2022
  - custom
2023
2023
  - all_new
2024
2024
  join_type:
2025
- description: 'The logical operator that joins multiple conditions. Allowed values: and, or.'
2025
+ description: 'The logical operator that joins multiple conditions.'
2026
2026
  type: string
2027
2027
  examples:
2028
2028
  - and
@@ -2039,7 +2039,7 @@ components:
2039
2039
  type: object
2040
2040
  properties:
2041
2041
  destination_file_options:
2042
- description: 'Processing options for file at destination. Allowed values: overwrite_always, overwrite_both_newer_and_different, overwrite_different, overwrite_newer, overwrite_never.'
2042
+ description: 'Processing options for file at destination.'
2043
2043
  type: string
2044
2044
  examples:
2045
2045
  - overwrite_always
@@ -2050,7 +2050,7 @@ components:
2050
2050
  - overwrite_newer
2051
2051
  - overwrite_never
2052
2052
  difference_check:
2053
- description: 'Type of check used to validate content. Allowed values: attrs, none.'
2053
+ description: 'Type of check used to validate content.'
2054
2054
  type: string
2055
2055
  examples:
2056
2056
  - attrs
@@ -2067,7 +2067,7 @@ components:
2067
2067
  type: object
2068
2068
  properties:
2069
2069
  type:
2070
- description: 'Source type. Allowed values: workspace, node.'
2070
+ description: 'Source type.'
2071
2071
  type: string
2072
2072
  examples:
2073
2073
  - node
@@ -2113,7 +2113,7 @@ components:
2113
2113
  type: object
2114
2114
  properties:
2115
2115
  archive_option:
2116
- description: 'Archive policy for the package at the source. Allowed values: none, archive, delete.'
2116
+ description: 'Archive policy for the package at the source.'
2117
2117
  type: string
2118
2118
  examples:
2119
2119
  - none
@@ -2142,7 +2142,7 @@ components:
2142
2142
  items:
2143
2143
  $ref: '#/components/schemas/substitutionVariables'
2144
2144
  timeout:
2145
- description: 'The maximum time, in seconds, the action can take before it is marked as failed. Default: 24 hours, minimum: 1 hour, maximum: 48 hours.'
2145
+ description: 'The maximum time, in seconds, the action can take before it is marked as failed, from 1 hour to 48 hours.'
2146
2146
  type: integer
2147
2147
  examples:
2148
2148
  - 144000
@@ -2201,7 +2201,7 @@ components:
2201
2201
  type: object
2202
2202
  properties:
2203
2203
  field_name:
2204
- description: 'Name of the condition field. Allowed values: file_name, extension_name, file_size'
2204
+ description: 'Name of the condition field.'
2205
2205
  type: string
2206
2206
  examples:
2207
2207
  - file_name
@@ -2210,7 +2210,7 @@ components:
2210
2210
  - extension_name
2211
2211
  - file_size
2212
2212
  field_type:
2213
- description: 'Type of the condition field. Allowed values: string, byte. The value ''string'' is used with a field_name of file_name or extension_name. The value ''byte'' is used with a field_name of file_size.'
2213
+ description: 'Type of the condition field. The value ''string'' is used with a field_name of file_name or extension_name. The value ''byte'' is used with a field_name of file_size.'
2214
2214
  type: string
2215
2215
  examples:
2216
2216
  - string
@@ -2218,7 +2218,7 @@ components:
2218
2218
  - string
2219
2219
  - byte
2220
2220
  match_type:
2221
- description: 'Logic for the matching condition. Allowed values: includes, excludes, matches, regex, equal, greater_than, less_than, greater_than_or_equal, less_than_or_equal. A value of includes, excludes, matches, or regex is used with a field_name of file_name or extension_name. A value of equal, greater_than, less_than, greater_than_or_equal or less_than_or_equal is used with a field_name of file_size.'
2221
+ description: 'Logic for the matching condition. A value of includes, excludes, matches, or regex is used with a field_name of file_name or extension_name. A value of equal, greater_than, less_than, greater_than_or_equal or less_than_or_equal is used with a field_name of file_size.'
2222
2222
  type: string
2223
2223
  examples:
2224
2224
  - includes
@@ -2256,7 +2256,7 @@ components:
2256
2256
  examples:
2257
2257
  - '3201'
2258
2258
  type:
2259
- description: 'User type of recipient. Allowed values: user, admin.'
2259
+ description: 'User type of recipient.'
2260
2260
  type: string
2261
2261
  examples:
2262
2262
  - user
@@ -2281,7 +2281,7 @@ components:
2281
2281
  examples:
2282
2282
  - '3202'
2283
2283
  type:
2284
- description: 'User type of recipient. Allowed values: user, admin.'
2284
+ description: 'User type of recipient.'
2285
2285
  type: string
2286
2286
  examples:
2287
2287
  - admin
@@ -2306,7 +2306,7 @@ components:
2306
2306
  examples:
2307
2307
  - '3203'
2308
2308
  type:
2309
- description: 'User type of recipient. Allowed values: user, admin.'
2309
+ description: 'User type of recipient.'
2310
2310
  type: string
2311
2311
  examples:
2312
2312
  - admin
@@ -2331,7 +2331,7 @@ components:
2331
2331
  examples:
2332
2332
  - '3204'
2333
2333
  type:
2334
- description: 'User type of recipient. Allowed values: user, admin.'
2334
+ description: 'User type of recipient.'
2335
2335
  type: string
2336
2336
  examples:
2337
2337
  - user
@@ -2362,7 +2362,7 @@ components:
2362
2362
  type: object
2363
2363
  properties:
2364
2364
  event:
2365
- description: 'Request a state change. Allowed values: save_as_draft, activate, deactivate. To save a workflow in a state that can be edited, use ''save_as_draft''. To launch running instances of the workflow, use ''activate''. To stop all running instances of a workflow, use ''deactivate''; this event allows you to edit the workflow.'
2365
+ description: 'Request a state change. To save a workflow in a state that can be edited, use ''save_as_draft''. To launch running instances of the workflow, use ''activate''. To stop all running instances of a workflow, use ''deactivate''; this event allows you to edit the workflow.'
2366
2366
  type: string
2367
2367
  examples:
2368
2368
  - save_as_draft