clever-tools 4.11.0 → 5.0.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 (45) hide show
  1. package/bin/clever.js +5 -10
  2. package/package.json +27 -27
  3. package/src/commands/accesslogs/accesslogs.command.js +27 -19
  4. package/src/commands/accesslogs/accesslogs.docs.md +1 -1
  5. package/src/commands/addon/addon.docs.md +2 -2
  6. package/src/commands/config-provider/config-provider.docs.md +5 -5
  7. package/src/commands/database/database.docs.md +2 -2
  8. package/src/commands/deploy/deploy.docs.md +7 -7
  9. package/src/commands/drain/drain.args.js +6 -0
  10. package/src/commands/drain/drain.create.betterstack.command.js +36 -0
  11. package/src/commands/drain/drain.create.command.js +0 -132
  12. package/src/commands/drain/drain.create.datadog.command.js +27 -0
  13. package/src/commands/drain/drain.create.elasticsearch.command.js +48 -0
  14. package/src/commands/drain/drain.create.newrelic.command.js +36 -0
  15. package/src/commands/drain/drain.create.ovh-tcp.command.js +29 -0
  16. package/src/commands/drain/drain.create.raw-http.command.js +30 -0
  17. package/src/commands/drain/drain.create.splunk.command.js +61 -0
  18. package/src/commands/drain/drain.create.syslog-tcp.command.js +29 -0
  19. package/src/commands/drain/drain.create.syslog-udp.command.js +29 -0
  20. package/src/commands/drain/drain.docs.md +273 -8
  21. package/src/commands/drain/drain.options.js +26 -0
  22. package/src/commands/features/features.list.command.js +6 -13
  23. package/src/commands/global.commands.js +23 -1
  24. package/src/commands/global.options.js +1 -1
  25. package/src/commands/k8s/k8s.docs.md +17 -17
  26. package/src/commands/keycloak/keycloak.docs.md +11 -11
  27. package/src/commands/kv/kv.docs.md +1 -1
  28. package/src/commands/link/link.docs.md +1 -1
  29. package/src/commands/login/login.command.js +11 -1
  30. package/src/commands/matomo/matomo.docs.md +6 -6
  31. package/src/commands/metabase/metabase.docs.md +9 -9
  32. package/src/commands/ng/ng.docs.md +10 -10
  33. package/src/commands/oauth-consumers/oauth-consumers.docs.md +4 -4
  34. package/src/commands/otoroshi/otoroshi.docs.md +13 -13
  35. package/src/commands/service/service.docs.md +4 -4
  36. package/src/commands/ssh/ssh.command.js +6 -0
  37. package/src/config/features.js +61 -29
  38. package/src/format-table.js +14 -10
  39. package/src/initial-setup.js +13 -0
  40. package/src/initial-update-notifier.js +2 -5
  41. package/src/lib/access-logs-transport.js +29 -0
  42. package/src/lib/cliparse-patched.js +1 -1
  43. package/src/models/drain.js +39 -13
  44. package/src/models/git-system.js +2 -2
  45. package/src/models/git.js +1 -1
@@ -24,7 +24,7 @@ clever k8s activity <cluster-id|cluster-name> [options]
24
24
 
25
25
  |Name|Description|
26
26
  |---|---|
27
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
27
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
28
28
 
29
29
  ### ⚙️ Options
30
30
 
@@ -46,7 +46,7 @@ clever k8s add-persistent-storage <cluster-id|cluster-name> [options]
46
46
 
47
47
  |Name|Description|
48
48
  |---|---|
49
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
49
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
50
50
 
51
51
  ### ⚙️ Options
52
52
 
@@ -97,7 +97,7 @@ clever k8s delete <cluster-id|cluster-name> [options]
97
97
 
98
98
  |Name|Description|
99
99
  |---|---|
100
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
100
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
101
101
 
102
102
  ### ⚙️ Options
103
103
 
@@ -118,7 +118,7 @@ clever k8s get <cluster-id|cluster-name> [options]
118
118
 
119
119
  |Name|Description|
120
120
  |---|---|
121
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
121
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
122
122
 
123
123
  ### ⚙️ Options
124
124
 
@@ -139,7 +139,7 @@ clever k8s get-kubeconfig <cluster-id|cluster-name> [options]
139
139
 
140
140
  |Name|Description|
141
141
  |---|---|
142
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
142
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
143
143
 
144
144
  ### ⚙️ Options
145
145
 
@@ -182,7 +182,7 @@ clever k8s nodegroups create <cluster-id|cluster-name> <nodegroup-name> <flavor:
182
182
 
183
183
  |Name|Description|
184
184
  |---|---|
185
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
185
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
186
186
  |`nodegroup-name`|Node group name (lowercase RFC 1123, max 63 chars)|
187
187
  |`flavor:count`|Node group flavor and target node count (format: <flavor>:<count>, e.g.: XS:3)|
188
188
 
@@ -209,8 +209,8 @@ clever k8s nodegroups delete <cluster-id|cluster-name> <nodegroup-id|nodegroup-n
209
209
 
210
210
  |Name|Description|
211
211
  |---|---|
212
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
213
- |`nodegroup-id|nodegroup-name`|Kubernetes node group ID or name|
212
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
213
+ |`nodegroup-id\|nodegroup-name`|Kubernetes node group ID or name|
214
214
 
215
215
  ### ⚙️ Options
216
216
 
@@ -231,8 +231,8 @@ clever k8s nodegroups get <cluster-id|cluster-name> <nodegroup-id|nodegroup-name
231
231
 
232
232
  |Name|Description|
233
233
  |---|---|
234
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
235
- |`nodegroup-id|nodegroup-name`|Kubernetes node group ID or name|
234
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
235
+ |`nodegroup-id\|nodegroup-name`|Kubernetes node group ID or name|
236
236
 
237
237
  ### ⚙️ Options
238
238
 
@@ -253,7 +253,7 @@ clever k8s nodegroups list <cluster-id|cluster-name> [options]
253
253
 
254
254
  |Name|Description|
255
255
  |---|---|
256
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
256
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
257
257
 
258
258
  ### ⚙️ Options
259
259
 
@@ -274,8 +274,8 @@ clever k8s nodegroups update <cluster-id|cluster-name> <nodegroup-id|nodegroup-n
274
274
 
275
275
  |Name|Description|
276
276
  |---|---|
277
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
278
- |`nodegroup-id|nodegroup-name`|Kubernetes node group ID or name|
277
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
278
+ |`nodegroup-id\|nodegroup-name`|Kubernetes node group ID or name|
279
279
 
280
280
  ### ⚙️ Options
281
281
 
@@ -317,7 +317,7 @@ clever k8s update <cluster-id|cluster-name> [options]
317
317
 
318
318
  |Name|Description|
319
319
  |---|---|
320
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
320
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
321
321
 
322
322
  ### ⚙️ Options
323
323
 
@@ -342,7 +342,7 @@ clever k8s version <cluster-id|cluster-name> [options]
342
342
 
343
343
  |Name|Description|
344
344
  |---|---|
345
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
345
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
346
346
 
347
347
  ### ⚙️ Options
348
348
 
@@ -363,7 +363,7 @@ clever k8s version check <cluster-id|cluster-name> [options]
363
363
 
364
364
  |Name|Description|
365
365
  |---|---|
366
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
366
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
367
367
 
368
368
  ### ⚙️ Options
369
369
 
@@ -384,7 +384,7 @@ clever k8s version update <cluster-id|cluster-name> [options]
384
384
 
385
385
  |Name|Description|
386
386
  |---|---|
387
- |`cluster-id|cluster-name`|Kubernetes cluster ID or name|
387
+ |`cluster-id\|cluster-name`|Kubernetes cluster ID or name|
388
388
 
389
389
  ### ⚙️ Options
390
390
 
@@ -30,7 +30,7 @@ clever keycloak disable-ng <addon-id|addon-name>
30
30
 
31
31
  |Name|Description|
32
32
  |---|---|
33
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
33
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
34
34
 
35
35
  ## ➡️ `clever keycloak enable-ng` <kbd>Since 3.13.0</kbd>
36
36
 
@@ -44,7 +44,7 @@ clever keycloak enable-ng <addon-id|addon-name>
44
44
 
45
45
  |Name|Description|
46
46
  |---|---|
47
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
47
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
48
48
 
49
49
  ## ➡️ `clever keycloak get` <kbd>Since 3.13.0</kbd>
50
50
 
@@ -58,7 +58,7 @@ clever keycloak get <addon-id|addon-name> [options]
58
58
 
59
59
  |Name|Description|
60
60
  |---|---|
61
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
61
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
62
62
 
63
63
  ### ⚙️ Options
64
64
 
@@ -78,7 +78,7 @@ clever keycloak open <addon-id|addon-name>
78
78
 
79
79
  |Name|Description|
80
80
  |---|---|
81
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
81
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
82
82
 
83
83
  ## ➡️ `clever keycloak open logs` <kbd>Since 3.13.0</kbd>
84
84
 
@@ -92,7 +92,7 @@ clever keycloak open logs <addon-id|addon-name>
92
92
 
93
93
  |Name|Description|
94
94
  |---|---|
95
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
95
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
96
96
 
97
97
  ## ➡️ `clever keycloak open webui` <kbd>Since 3.13.0</kbd>
98
98
 
@@ -106,7 +106,7 @@ clever keycloak open webui <addon-id|addon-name>
106
106
 
107
107
  |Name|Description|
108
108
  |---|---|
109
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
109
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
110
110
 
111
111
  ## ➡️ `clever keycloak rebuild` <kbd>Since 3.13.0</kbd>
112
112
 
@@ -120,7 +120,7 @@ clever keycloak rebuild <addon-id|addon-name>
120
120
 
121
121
  |Name|Description|
122
122
  |---|---|
123
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
123
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
124
124
 
125
125
  ## ➡️ `clever keycloak restart` <kbd>Since 3.13.0</kbd>
126
126
 
@@ -134,7 +134,7 @@ clever keycloak restart <addon-id|addon-name>
134
134
 
135
135
  |Name|Description|
136
136
  |---|---|
137
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
137
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
138
138
 
139
139
  ## ➡️ `clever keycloak version` <kbd>Since 3.13.0</kbd>
140
140
 
@@ -148,7 +148,7 @@ clever keycloak version <addon-id|addon-name> [options]
148
148
 
149
149
  |Name|Description|
150
150
  |---|---|
151
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
151
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
152
152
 
153
153
  ### ⚙️ Options
154
154
 
@@ -168,7 +168,7 @@ clever keycloak version check <addon-id|addon-name> [options]
168
168
 
169
169
  |Name|Description|
170
170
  |---|---|
171
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
171
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
172
172
 
173
173
  ### ⚙️ Options
174
174
 
@@ -188,7 +188,7 @@ clever keycloak version update <addon-id|addon-name> [options]
188
188
 
189
189
  |Name|Description|
190
190
  |---|---|
191
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
191
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
192
192
 
193
193
  ### ⚙️ Options
194
194
 
@@ -16,7 +16,7 @@ clever kv <kv-id|addon-id|addon-name> <command> [options]
16
16
 
17
17
  |Name|Description|
18
18
  |---|---|
19
- |`kv-id|addon-id|addon-name`|Add-on/Real ID (or name, if unambiguous) of a Materia KV or Redis® add-on|
19
+ |`kv-id\|addon-id\|addon-name`|Add-on/Real ID (or name, if unambiguous) of a Materia KV or Redis® add-on|
20
20
  |`command`|The raw command to send to the Materia KV or Redis® add-on|
21
21
 
22
22
  ### ⚙️ Options
@@ -12,7 +12,7 @@ clever link <app-id|app-name> [options]
12
12
 
13
13
  |Name|Description|
14
14
  |---|---|
15
- |`app-id|app-name`|Application ID (or name, if unambiguous)|
15
+ |`app-id\|app-name`|Application ID (or name, if unambiguous)|
16
16
 
17
17
  ### ⚙️ Options
18
18
 
@@ -56,7 +56,17 @@ async function loginViaConsole(apiHost, consoleTokenUrl) {
56
56
 
57
57
  Logger.debug('Try to login to Clever Cloud…');
58
58
  Logger.println(`Opening ${styleText('blue', consoleUrl.toString())} in your browser to log you in…`);
59
- await open(consoleUrl.toString(), { wait: false });
59
+ function warnBrowserLaunchFailed(error) {
60
+ Logger.warn(`Failed to open your browser automatically (${error.message}).`);
61
+ Logger.println('Open the URL above manually to continue logging in.');
62
+ }
63
+
64
+ try {
65
+ const browserProcess = await open(consoleUrl.toString(), { wait: false });
66
+ browserProcess.once('error', warnBrowserLaunchFailed);
67
+ } catch (error) {
68
+ warnBrowserLaunchFailed(error);
69
+ }
60
70
 
61
71
  return pollOauthData(cliPollUrl.toString());
62
72
  }
@@ -30,7 +30,7 @@ clever matomo get <addon-id|addon-name> [options]
30
30
 
31
31
  |Name|Description|
32
32
  |---|---|
33
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
33
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
34
34
 
35
35
  ### ⚙️ Options
36
36
 
@@ -50,7 +50,7 @@ clever matomo open <addon-id|addon-name>
50
50
 
51
51
  |Name|Description|
52
52
  |---|---|
53
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
53
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
54
54
 
55
55
  ## ➡️ `clever matomo open logs` <kbd>Since 3.13.0</kbd>
56
56
 
@@ -64,7 +64,7 @@ clever matomo open logs <addon-id|addon-name>
64
64
 
65
65
  |Name|Description|
66
66
  |---|---|
67
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
67
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
68
68
 
69
69
  ## ➡️ `clever matomo open webui` <kbd>Since 3.13.0</kbd>
70
70
 
@@ -78,7 +78,7 @@ clever matomo open webui <addon-id|addon-name>
78
78
 
79
79
  |Name|Description|
80
80
  |---|---|
81
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
81
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
82
82
 
83
83
  ## ➡️ `clever matomo rebuild` <kbd>Since 3.13.0</kbd>
84
84
 
@@ -92,7 +92,7 @@ clever matomo rebuild <addon-id|addon-name>
92
92
 
93
93
  |Name|Description|
94
94
  |---|---|
95
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
95
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
96
96
 
97
97
  ## ➡️ `clever matomo restart` <kbd>Since 3.13.0</kbd>
98
98
 
@@ -106,4 +106,4 @@ clever matomo restart <addon-id|addon-name>
106
106
 
107
107
  |Name|Description|
108
108
  |---|---|
109
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
109
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
@@ -30,7 +30,7 @@ clever metabase get <addon-id|addon-name> [options]
30
30
 
31
31
  |Name|Description|
32
32
  |---|---|
33
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
33
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
34
34
 
35
35
  ### ⚙️ Options
36
36
 
@@ -50,7 +50,7 @@ clever metabase open <addon-id|addon-name>
50
50
 
51
51
  |Name|Description|
52
52
  |---|---|
53
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
53
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
54
54
 
55
55
  ## ➡️ `clever metabase open logs` <kbd>Since 3.13.0</kbd>
56
56
 
@@ -64,7 +64,7 @@ clever metabase open logs <addon-id|addon-name>
64
64
 
65
65
  |Name|Description|
66
66
  |---|---|
67
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
67
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
68
68
 
69
69
  ## ➡️ `clever metabase open webui` <kbd>Since 3.13.0</kbd>
70
70
 
@@ -78,7 +78,7 @@ clever metabase open webui <addon-id|addon-name>
78
78
 
79
79
  |Name|Description|
80
80
  |---|---|
81
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
81
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
82
82
 
83
83
  ## ➡️ `clever metabase rebuild` <kbd>Since 3.13.0</kbd>
84
84
 
@@ -92,7 +92,7 @@ clever metabase rebuild <addon-id|addon-name>
92
92
 
93
93
  |Name|Description|
94
94
  |---|---|
95
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
95
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
96
96
 
97
97
  ## ➡️ `clever metabase restart` <kbd>Since 3.13.0</kbd>
98
98
 
@@ -106,7 +106,7 @@ clever metabase restart <addon-id|addon-name>
106
106
 
107
107
  |Name|Description|
108
108
  |---|---|
109
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
109
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
110
110
 
111
111
  ## ➡️ `clever metabase version` <kbd>Since 3.13.0</kbd>
112
112
 
@@ -120,7 +120,7 @@ clever metabase version <addon-id|addon-name> [options]
120
120
 
121
121
  |Name|Description|
122
122
  |---|---|
123
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
123
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
124
124
 
125
125
  ### ⚙️ Options
126
126
 
@@ -140,7 +140,7 @@ clever metabase version check <addon-id|addon-name> [options]
140
140
 
141
141
  |Name|Description|
142
142
  |---|---|
143
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
143
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
144
144
 
145
145
  ### ⚙️ Options
146
146
 
@@ -160,7 +160,7 @@ clever metabase version update <addon-id|addon-name> [options]
160
160
 
161
161
  |Name|Description|
162
162
  |---|---|
163
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
163
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
164
164
 
165
165
  ### ⚙️ Options
166
166
 
@@ -55,7 +55,7 @@ clever ng create external <external-peer-label> <ng-id|ng-label> <public-key> [o
55
55
  |Name|Description|
56
56
  |---|---|
57
57
  |`external-peer-label`|External peer label|
58
- |`ng-id|ng-label`|Network Group ID or label|
58
+ |`ng-id\|ng-label`|Network Group ID or label|
59
59
  |`public-key`|WireGuard public key of the external peer to link to a Network Group|
60
60
 
61
61
  ### ⚙️ Options
@@ -76,7 +76,7 @@ clever ng delete <ng-id|ng-label> [options]
76
76
 
77
77
  |Name|Description|
78
78
  |---|---|
79
- |`ng-id|ng-label`|Network Group ID or label|
79
+ |`ng-id\|ng-label`|Network Group ID or label|
80
80
 
81
81
  ### ⚙️ Options
82
82
 
@@ -96,8 +96,8 @@ clever ng delete external <peer-id|peer-label> <ng-id|ng-label> [options]
96
96
 
97
97
  |Name|Description|
98
98
  |---|---|
99
- |`peer-id|peer-label`|External peer ID or label|
100
- |`ng-id|ng-label`|Network Group ID or label|
99
+ |`peer-id\|peer-label`|External peer ID or label|
100
+ |`ng-id\|ng-label`|Network Group ID or label|
101
101
 
102
102
  ### ⚙️ Options
103
103
 
@@ -117,7 +117,7 @@ clever ng get <id|label> [options]
117
117
 
118
118
  |Name|Description|
119
119
  |---|---|
120
- |`id|label`|ID or Label of a Network Group, a member or an (external) peer|
120
+ |`id\|label`|ID or Label of a Network Group, a member or an (external) peer|
121
121
 
122
122
  ### ⚙️ Options
123
123
 
@@ -139,8 +139,8 @@ clever ng get-config <peer-id|peer-label> <ng-id|ng-label> [options]
139
139
 
140
140
  |Name|Description|
141
141
  |---|---|
142
- |`peer-id|peer-label`|External peer ID or label|
143
- |`ng-id|ng-label`|Network Group ID or label|
142
+ |`peer-id\|peer-label`|External peer ID or label|
143
+ |`ng-id\|ng-label`|Network Group ID or label|
144
144
 
145
145
  ### ⚙️ Options
146
146
 
@@ -161,7 +161,7 @@ clever ng link <id> <ng-id|ng-label> [options]
161
161
  |Name|Description|
162
162
  |---|---|
163
163
  |`id`|ID of a resource to (un)link to a Network Group|
164
- |`ng-id|ng-label`|Network Group ID or label|
164
+ |`ng-id\|ng-label`|Network Group ID or label|
165
165
 
166
166
  ### ⚙️ Options
167
167
 
@@ -181,7 +181,7 @@ clever ng search <id|label> [options]
181
181
 
182
182
  |Name|Description|
183
183
  |---|---|
184
- |`id|label`|ID or Label of a Network Group, a member or an (external) peer|
184
+ |`id\|label`|ID or Label of a Network Group, a member or an (external) peer|
185
185
 
186
186
  ### ⚙️ Options
187
187
 
@@ -204,7 +204,7 @@ clever ng unlink <id> <ng-id|ng-label> [options]
204
204
  |Name|Description|
205
205
  |---|---|
206
206
  |`id`|ID of a resource to (un)link to a Network Group|
207
- |`ng-id|ng-label`|Network Group ID or label|
207
+ |`ng-id\|ng-label`|Network Group ID or label|
208
208
 
209
209
  ### ⚙️ Options
210
210
 
@@ -46,7 +46,7 @@ clever oauth-consumers delete <consumer-key|consumer-name> [options]
46
46
 
47
47
  |Name|Description|
48
48
  |---|---|
49
- |`consumer-key|consumer-name`|OAuth consumer key (or name, if unambiguous)|
49
+ |`consumer-key\|consumer-name`|OAuth consumer key (or name, if unambiguous)|
50
50
 
51
51
  ### ⚙️ Options
52
52
 
@@ -66,7 +66,7 @@ clever oauth-consumers get <consumer-key|consumer-name> [options]
66
66
 
67
67
  |Name|Description|
68
68
  |---|---|
69
- |`consumer-key|consumer-name`|OAuth consumer key (or name, if unambiguous)|
69
+ |`consumer-key\|consumer-name`|OAuth consumer key (or name, if unambiguous)|
70
70
 
71
71
  ### ⚙️ Options
72
72
 
@@ -101,7 +101,7 @@ clever oauth-consumers open <consumer-key|consumer-name>
101
101
 
102
102
  |Name|Description|
103
103
  |---|---|
104
- |`consumer-key|consumer-name`|OAuth consumer key (or name, if unambiguous)|
104
+ |`consumer-key\|consumer-name`|OAuth consumer key (or name, if unambiguous)|
105
105
 
106
106
  ## ➡️ `clever oauth-consumers update` <kbd>Since 4.8.0</kbd>
107
107
 
@@ -115,7 +115,7 @@ clever oauth-consumers update <consumer-key|consumer-name> [options]
115
115
 
116
116
  |Name|Description|
117
117
  |---|---|
118
- |`consumer-key|consumer-name`|OAuth consumer key (or name, if unambiguous)|
118
+ |`consumer-key\|consumer-name`|OAuth consumer key (or name, if unambiguous)|
119
119
 
120
120
  ### ⚙️ Options
121
121
 
@@ -30,7 +30,7 @@ clever otoroshi disable-ng <addon-id|addon-name>
30
30
 
31
31
  |Name|Description|
32
32
  |---|---|
33
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
33
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
34
34
 
35
35
  ## ➡️ `clever otoroshi enable-ng` <kbd>Since 3.13.0</kbd>
36
36
 
@@ -44,7 +44,7 @@ clever otoroshi enable-ng <addon-id|addon-name>
44
44
 
45
45
  |Name|Description|
46
46
  |---|---|
47
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
47
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
48
48
 
49
49
  ## ➡️ `clever otoroshi get` <kbd>Since 3.13.0</kbd>
50
50
 
@@ -58,7 +58,7 @@ clever otoroshi get <addon-id|addon-name> [options]
58
58
 
59
59
  |Name|Description|
60
60
  |---|---|
61
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
61
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
62
62
 
63
63
  ### ⚙️ Options
64
64
 
@@ -78,7 +78,7 @@ clever otoroshi get-config <addon-id|addon-name>
78
78
 
79
79
  |Name|Description|
80
80
  |---|---|
81
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
81
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
82
82
 
83
83
  ## ➡️ `clever otoroshi open` <kbd>Since 3.13.0</kbd>
84
84
 
@@ -92,7 +92,7 @@ clever otoroshi open <addon-id|addon-name>
92
92
 
93
93
  |Name|Description|
94
94
  |---|---|
95
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
95
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
96
96
 
97
97
  ## ➡️ `clever otoroshi open logs` <kbd>Since 3.13.0</kbd>
98
98
 
@@ -106,7 +106,7 @@ clever otoroshi open logs <addon-id|addon-name>
106
106
 
107
107
  |Name|Description|
108
108
  |---|---|
109
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
109
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
110
110
 
111
111
  ## ➡️ `clever otoroshi open swaggerui` <kbd>Since 4.9.0</kbd>
112
112
 
@@ -120,7 +120,7 @@ clever otoroshi open swaggerui <addon-id|addon-name>
120
120
 
121
121
  |Name|Description|
122
122
  |---|---|
123
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
123
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
124
124
 
125
125
  ## ➡️ `clever otoroshi open webui` <kbd>Since 3.13.0</kbd>
126
126
 
@@ -134,7 +134,7 @@ clever otoroshi open webui <addon-id|addon-name>
134
134
 
135
135
  |Name|Description|
136
136
  |---|---|
137
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
137
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
138
138
 
139
139
  ## ➡️ `clever otoroshi rebuild` <kbd>Since 3.13.0</kbd>
140
140
 
@@ -148,7 +148,7 @@ clever otoroshi rebuild <addon-id|addon-name>
148
148
 
149
149
  |Name|Description|
150
150
  |---|---|
151
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
151
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
152
152
 
153
153
  ## ➡️ `clever otoroshi restart` <kbd>Since 3.13.0</kbd>
154
154
 
@@ -162,7 +162,7 @@ clever otoroshi restart <addon-id|addon-name>
162
162
 
163
163
  |Name|Description|
164
164
  |---|---|
165
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
165
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
166
166
 
167
167
  ## ➡️ `clever otoroshi version` <kbd>Since 3.13.0</kbd>
168
168
 
@@ -176,7 +176,7 @@ clever otoroshi version <addon-id|addon-name> [options]
176
176
 
177
177
  |Name|Description|
178
178
  |---|---|
179
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
179
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
180
180
 
181
181
  ### ⚙️ Options
182
182
 
@@ -196,7 +196,7 @@ clever otoroshi version check <addon-id|addon-name> [options]
196
196
 
197
197
  |Name|Description|
198
198
  |---|---|
199
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
199
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
200
200
 
201
201
  ### ⚙️ Options
202
202
 
@@ -216,7 +216,7 @@ clever otoroshi version update <addon-id|addon-name> [options]
216
216
 
217
217
  |Name|Description|
218
218
  |---|---|
219
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
219
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
220
220
 
221
221
  ### ⚙️ Options
222
222
 
@@ -31,7 +31,7 @@ clever service link-addon <addon-id|addon-name> [options]
31
31
 
32
32
  |Name|Description|
33
33
  |---|---|
34
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
34
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
35
35
 
36
36
  ### ⚙️ Options
37
37
 
@@ -52,7 +52,7 @@ clever service link-app <app-id|app-name> [options]
52
52
 
53
53
  |Name|Description|
54
54
  |---|---|
55
- |`app-id|app-name`|Application ID (or name, if unambiguous)|
55
+ |`app-id\|app-name`|Application ID (or name, if unambiguous)|
56
56
 
57
57
  ### ⚙️ Options
58
58
 
@@ -73,7 +73,7 @@ clever service unlink-addon <addon-id|addon-name> [options]
73
73
 
74
74
  |Name|Description|
75
75
  |---|---|
76
- |`addon-id|addon-name`|Add-on ID (or name, if unambiguous)|
76
+ |`addon-id\|addon-name`|Add-on ID (or name, if unambiguous)|
77
77
 
78
78
  ### ⚙️ Options
79
79
 
@@ -94,7 +94,7 @@ clever service unlink-app <app-id|app-name> [options]
94
94
 
95
95
  |Name|Description|
96
96
  |---|---|
97
- |`app-id|app-name`|Application ID (or name, if unambiguous)|
97
+ |`app-id\|app-name`|Application ID (or name, if unambiguous)|
98
98
 
99
99
  ### ⚙️ Options
100
100
 
@@ -58,12 +58,18 @@ export const sshCommand = defineCommand({
58
58
  }
59
59
 
60
60
  const sshParams = [];
61
+ // Clever Cloud SSH only accepts key auth. Disable password fallback so a missing
62
+ // or unregistered key fails fast instead of prompting for a password that cannot work.
63
+ sshParams.push('-o', 'PreferredAuthentications=publickey', '-o', 'PasswordAuthentication=no');
61
64
  // -t: force PTY allocation (SSH skips it by default because appId is passed as a command for gateway routing)
62
65
  if (command == null) {
63
66
  sshParams.push('-t');
64
67
  }
65
68
  if (identityFile != null) {
69
+ // -i adds the key to the ones ssh may offer, but doesn't guarantee it's the one used
66
70
  sshParams.push('-i', identityFile);
71
+ // IdentitiesOnly forces ssh to only offer this key, ignoring agent/default ones
72
+ sshParams.push('-o', 'IdentitiesOnly=yes');
67
73
  }
68
74
  sshParams.push(config.SSH_GATEWAY, sshTarget);
69
75