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
@@ -0,0 +1,249 @@
1
+ # DO NOT EDIT THIS FILE MANUALLY
2
+ # This file is automatically downloaded from:
3
+ # https://raw.githubusercontent.com/laurent-martin/aspera-api-examples/refs/heads/main/openapi/IBM%20Aspera%20faspio%20Gateway%20API-1.0.0.yaml
4
+ # Use 'rake tools:openapi' to update this file
5
+
6
+ openapi: 3.0.1
7
+ info:
8
+ title: IBM Aspera faspio Gateway API
9
+ description: API for IBM Aspera faspio Gateway Management
10
+ contact:
11
+ name: IBM Aspera
12
+ email: Aspera-client-team@wwpdl.vnet.ibm.com
13
+ license:
14
+ name: (c) IBM. All rights reserved
15
+ url: >-
16
+ https://www-40.ibm.com/software/sla/sladb.nsf/displaylis/0CF8A1C0BA2B994C002587F70069A8B5?OpenDocument
17
+ version: 1.0.0
18
+ externalDocs:
19
+ description: IBM Aspera faspio Gateway Documentation
20
+ url: https://www.ibm.com/docs/en/faspio-gateway
21
+ tags:
22
+ - name: /bridges
23
+ paths:
24
+ /bridges:
25
+ get:
26
+ tags:
27
+ - /bridges
28
+ summary: Get a Listing of All Bridges
29
+ description: Retrieve a listing of all configured bridges.
30
+ operationId: getBridges
31
+ responses:
32
+ '200':
33
+ description: OK
34
+ content:
35
+ application/json:
36
+ schema:
37
+ type: array
38
+ items:
39
+ $ref: '#/components/schemas/bridges_response'
40
+ '401':
41
+ description: Unauthorized
42
+ post:
43
+ tags:
44
+ - /bridges
45
+ summary: Create a New Bridge
46
+ description: Create a new bridge.
47
+ operationId: addBridge
48
+ requestBody:
49
+ content:
50
+ application/json:
51
+ schema:
52
+ $ref: '#/components/schemas/bridges_params'
53
+ required: true
54
+ responses:
55
+ '201':
56
+ description: Created
57
+ content:
58
+ application/json:
59
+ schema:
60
+ type: array
61
+ items:
62
+ $ref: '#/components/schemas/bridges_response'
63
+ '401':
64
+ description: Unauthorized
65
+ '415':
66
+ description: Unsupported Media Type
67
+ '422':
68
+ description: Unprocessable Entity
69
+ '500':
70
+ description: Internal Server Error
71
+ x-codegen-request-body-name: body
72
+ /bridges/{id}:
73
+ get:
74
+ tags:
75
+ - /bridges
76
+ summary: Get Information on a Specific Bridge
77
+ description: Retrieve information on a specific bridge.
78
+ operationId: getBridgeById
79
+ parameters:
80
+ - name: id
81
+ in: path
82
+ required: true
83
+ schema:
84
+ type: string
85
+ responses:
86
+ '200':
87
+ description: OK
88
+ content:
89
+ application/json:
90
+ schema:
91
+ $ref: '#/components/schemas/bridges_response'
92
+ '400':
93
+ description: Bad Request
94
+ '401':
95
+ description: Unauthorized
96
+ '404':
97
+ description: Not Found
98
+ delete:
99
+ tags:
100
+ - /bridges
101
+ summary: Delete a Specific Bridge
102
+ description: Delete a specific bridge.
103
+ operationId: deleteBridgeById
104
+ parameters:
105
+ - name: id
106
+ in: path
107
+ required: true
108
+ schema:
109
+ type: string
110
+ responses:
111
+ '204':
112
+ description: No Content
113
+ '400':
114
+ description: Bad Request
115
+ '401':
116
+ description: Unauthorized
117
+ '404':
118
+ description: Not Found
119
+ '500':
120
+ description: Internal Server Error
121
+ servers:
122
+ - url: http://127.0.0.1:8080
123
+ security:
124
+ - basicAuth: []
125
+ - bearerAuth: []
126
+ - {}
127
+ components:
128
+ schemas:
129
+ bridges_params:
130
+ required:
131
+ - name
132
+ - local
133
+ - forward
134
+ type: object
135
+ properties:
136
+ forward:
137
+ type: object
138
+ required:
139
+ - port
140
+ - protocol
141
+ - tls_enabled
142
+ properties:
143
+ host:
144
+ type: array
145
+ items:
146
+ type: string
147
+ example:
148
+ - GW2
149
+ - 10.0.0.2
150
+ bind_address:
151
+ type: string
152
+ example: 127.0.0.1
153
+ port:
154
+ type: string
155
+ example: 3000-3001
156
+ protocol:
157
+ type: string
158
+ example: fasp
159
+ tls_enabled:
160
+ type: boolean
161
+ example: false
162
+ local:
163
+ type: object
164
+ required:
165
+ - bind_address
166
+ - port
167
+ - protocol
168
+ - tls_enabled
169
+ properties:
170
+ bind_address:
171
+ type: string
172
+ example: 127.0.0.1
173
+ port:
174
+ type: string
175
+ example: 2000-2001
176
+ protocol:
177
+ type: string
178
+ example: tcp
179
+ tls_enabled:
180
+ type: boolean
181
+ example: false
182
+ name:
183
+ type: string
184
+ example: Bridge-1
185
+ bridges_response:
186
+ type: object
187
+ properties:
188
+ id:
189
+ type: string
190
+ example: 1
191
+ name:
192
+ type: string
193
+ example: Bridge-1
194
+ local:
195
+ type: object
196
+ properties:
197
+ bind_address:
198
+ type: string
199
+ example: 127.0.0.1
200
+ ports:
201
+ type: array
202
+ items:
203
+ type: integer
204
+ example:
205
+ - 2000
206
+ - 2001
207
+ protocol:
208
+ type: string
209
+ example: tcp
210
+ tls_enabled:
211
+ type: boolean
212
+ example: false
213
+ forward:
214
+ type: object
215
+ properties:
216
+ bind_address:
217
+ type: string
218
+ example: 127.0.0.1
219
+ hosts:
220
+ type: array
221
+ items:
222
+ type: string
223
+ example:
224
+ - GW2
225
+ - 10.0.0.2
226
+ ports:
227
+ type: array
228
+ items:
229
+ type: integer
230
+ example:
231
+ - 3000
232
+ - 3001
233
+ protocol:
234
+ type: string
235
+ example: fasp
236
+ tls_enabled:
237
+ type: boolean
238
+ example: false
239
+ securitySchemes:
240
+ basicAuth:
241
+ type: http
242
+ scheme: basic
243
+ bearerAuth:
244
+ type: http
245
+ scheme: bearer
246
+ bearerFormat: JWT
247
+ description: >-
248
+ Consult the documentation for requesting a JWT bearer token from the
249
+ server.