@mittwald/cli 1.0.0-alpha.21 → 1.0.0-alpha.24

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 (162) hide show
  1. package/README.md +145 -163
  2. package/dist/esm/Translator.js +2 -1
  3. package/dist/esm/commands/app/copy.js +1 -1
  4. package/dist/esm/commands/app/{install → create}/node.d.ts +3 -2
  5. package/dist/esm/commands/app/create/node.js +13 -0
  6. package/dist/esm/commands/app/{install → create}/php.d.ts +3 -2
  7. package/dist/esm/commands/app/create/php.js +13 -0
  8. package/dist/esm/commands/app/dependency/update.js +2 -2
  9. package/dist/esm/commands/app/dependency/versions.js +1 -1
  10. package/dist/esm/commands/app/list.js +6 -1
  11. package/dist/esm/commands/app/ssh.d.ts +11 -0
  12. package/dist/esm/commands/app/ssh.js +46 -0
  13. package/dist/esm/commands/app/uninstall.js +1 -1
  14. package/dist/esm/commands/app/versions.js +1 -1
  15. package/dist/esm/commands/conversation/close.js +1 -1
  16. package/dist/esm/commands/conversation/create.js +1 -1
  17. package/dist/esm/commands/conversation/reply.js +1 -1
  18. package/dist/esm/commands/conversation/show.js +2 -2
  19. package/dist/esm/commands/conversation/show2.js +1 -3
  20. package/dist/esm/commands/database/mysql/charsets.js +1 -3
  21. package/dist/esm/commands/database/mysql/create.js +3 -3
  22. package/dist/esm/commands/database/mysql/delete.js +1 -1
  23. package/dist/esm/commands/database/mysql/get.js +1 -1
  24. package/dist/esm/commands/database/mysql/list.js +1 -1
  25. package/dist/esm/commands/database/mysql/phpmyadmin.js +2 -2
  26. package/dist/esm/commands/database/mysql/user/get.js +1 -1
  27. package/dist/esm/commands/database/mysql/user/list.js +1 -3
  28. package/dist/esm/commands/database/redis/create.js +2 -2
  29. package/dist/esm/commands/database/redis/get.js +1 -1
  30. package/dist/esm/commands/database/redis/list.js +1 -1
  31. package/dist/esm/commands/domain/list.js +1 -3
  32. package/dist/esm/commands/domain/ownership/list.js +1 -1
  33. package/dist/esm/commands/domain/virtualhost/create.js +2 -2
  34. package/dist/esm/commands/domain/virtualhost/delete.js +1 -1
  35. package/dist/esm/commands/domain/virtualhost/get.js +4 -4
  36. package/dist/esm/commands/domain/virtualhost/list.js +1 -1
  37. package/dist/esm/commands/mail/address/create.js +1 -1
  38. package/dist/esm/commands/mail/address/delete.js +1 -1
  39. package/dist/esm/commands/mail/address/list.js +1 -3
  40. package/dist/esm/commands/mail/deliverybox/list.d.ts +11 -4
  41. package/dist/esm/commands/mail/deliverybox/list.js +13 -8
  42. package/dist/esm/commands/org/delete.js +1 -1
  43. package/dist/esm/commands/org/get.js +2 -2
  44. package/dist/esm/commands/org/invite/list-own.js +1 -1
  45. package/dist/esm/commands/org/invite/list.js +1 -1
  46. package/dist/esm/commands/org/invite/revoke.js +2 -2
  47. package/dist/esm/commands/org/invite.js +1 -1
  48. package/dist/esm/commands/org/list.js +1 -3
  49. package/dist/esm/commands/org/membership/list-own.js +2 -4
  50. package/dist/esm/commands/org/membership/list.d.ts +1 -0
  51. package/dist/esm/commands/org/membership/list.js +2 -2
  52. package/dist/esm/commands/org/membership/revoke.js +3 -3
  53. package/dist/esm/commands/project/backup/create.js +2 -2
  54. package/dist/esm/commands/project/backup/delete.js +1 -1
  55. package/dist/esm/commands/project/backup/download.js +3 -3
  56. package/dist/esm/commands/project/backup/list.js +1 -1
  57. package/dist/esm/commands/project/backupschedule/list.js +1 -1
  58. package/dist/esm/commands/project/create.js +2 -2
  59. package/dist/esm/commands/project/cronjob/execution/get.js +1 -1
  60. package/dist/esm/commands/project/cronjob/execution/list.js +1 -3
  61. package/dist/esm/commands/project/cronjob/execution/logs.js +4 -3
  62. package/dist/esm/commands/project/cronjob/list.js +1 -3
  63. package/dist/esm/commands/project/delete.js +1 -1
  64. package/dist/esm/commands/project/filesystem/usage.js +2 -2
  65. package/dist/esm/commands/project/get.js +4 -4
  66. package/dist/esm/commands/project/membership/list.js +1 -1
  67. package/dist/esm/commands/project/ssh.js +1 -1
  68. package/dist/esm/commands/user/api-token/revoke.js +1 -1
  69. package/dist/esm/commands/user/get.d.ts +14 -2
  70. package/dist/esm/commands/user/get.js +19 -5
  71. package/dist/esm/commands/user/ssh-key/delete.js +1 -1
  72. package/dist/esm/generated/conversation/getCategory.js +1 -1
  73. package/dist/esm/generated/conversation/getConversation.js +1 -1
  74. package/dist/esm/generated/conversation/listCategories.js +1 -3
  75. package/dist/esm/generated/conversation/listConversations.js +1 -3
  76. package/dist/esm/generated/conversation/listMessagesByConversation.js +1 -3
  77. package/dist/esm/generated/cronjob/getCronjob.js +1 -1
  78. package/dist/esm/generated/cronjob/getExecution.js +1 -1
  79. package/dist/esm/generated/domain/dnsZoneGetSpecific.js +1 -1
  80. package/dist/esm/generated/domain/dnsZonesForProject.js +1 -1
  81. package/dist/esm/generated/domain/getDomain.js +1 -1
  82. package/dist/esm/generated/domain/getHandleFields.js +1 -1
  83. package/dist/esm/generated/domain/getSpecificDomainOwnership.js +1 -1
  84. package/dist/esm/generated/file/getFile.js +1 -1
  85. package/dist/esm/generated/file/getFileMeta.js +1 -1
  86. package/dist/esm/generated/file/getFileTokenRules.js +1 -1
  87. package/dist/esm/generated/file/getFileTypeRules.js +1 -1
  88. package/dist/esm/generated/mail/deliveryboxGetSpecific.js +1 -1
  89. package/dist/esm/generated/mail/mailaddressGetSpecific.js +1 -1
  90. package/dist/esm/generated/mail/mailaddressList.js +1 -3
  91. package/dist/esm/generated/mail/projectsettingGetSpecific.js +1 -1
  92. package/dist/esm/generated/notification/newsletterGetInfo.js +1 -1
  93. package/dist/esm/generated/notification/scountUnreadNotifications.js +1 -1
  94. package/dist/esm/generated/notification/slistNotifications.js +1 -3
  95. package/dist/esm/generated/project/getProject.js +1 -1
  96. package/dist/esm/generated/project/getProjectInvite.js +1 -1
  97. package/dist/esm/generated/project/getProjectMembership.js +1 -1
  98. package/dist/esm/generated/project/getSelfMembershipForProject.js +1 -1
  99. package/dist/esm/generated/project/getServer.js +1 -1
  100. package/dist/esm/generated/project/listInvitesForProject.js +1 -3
  101. package/dist/esm/generated/project/listMembershipsForProject.js +1 -3
  102. package/dist/esm/generated/project/listProjectInvites.js +1 -3
  103. package/dist/esm/generated/project/listProjectMemberships.js +1 -3
  104. package/dist/esm/generated/project/listProjects.js +1 -3
  105. package/dist/esm/generated/project/listServers.js +1 -3
  106. package/dist/esm/generated/sshsftpUser/sftpUserGetSftpUser.js +1 -1
  107. package/dist/esm/generated/sshsftpUser/sftpUserListSftpUsers.js +1 -3
  108. package/dist/esm/generated/sshsftpUser/sshUserGetSshUser.js +1 -1
  109. package/dist/esm/generated/sshsftpUser/sshUserListSshUsers.js +1 -3
  110. package/dist/esm/generated/user/getApiToken.js +1 -1
  111. package/dist/esm/generated/user/getPersonalizedSettings.js +1 -1
  112. package/dist/esm/generated/user/getSession.js +1 -1
  113. package/dist/esm/generated/user/getSshKey.js +1 -1
  114. package/dist/esm/generated/user/listApiTokens.js +1 -3
  115. package/dist/esm/generated/user/listFeedback.js +1 -3
  116. package/dist/esm/generated/user/listSessions.js +1 -3
  117. package/dist/esm/generated/user/listSshKeys.js +1 -3
  118. package/dist/esm/lib/app/Installer.d.ts +1 -1
  119. package/dist/esm/lib/app/Installer.js +2 -2
  120. package/dist/esm/lib/app/flags.d.ts +1 -0
  121. package/dist/esm/lib/app/flags.js +6 -0
  122. package/dist/esm/lib/app/hooks.js +7 -8
  123. package/dist/esm/lib/app/install.js +24 -1
  124. package/dist/esm/lib/app/uuid.js +2 -1
  125. package/dist/esm/lib/app/versions.js +2 -6
  126. package/dist/esm/lib/app/wait.js +1 -1
  127. package/dist/esm/lib/database/common.js +1 -1
  128. package/dist/esm/lib/database/mysql/connect.js +2 -2
  129. package/dist/esm/lib/database/mysql/flags.js +1 -1
  130. package/dist/esm/lib/database/redis/connect.js +1 -1
  131. package/dist/esm/lib/database/redis/flags.js +1 -1
  132. package/dist/esm/lib/project/hooks.js +1 -1
  133. package/dist/esm/lib/project/ingress.js +1 -1
  134. package/dist/esm/lib/project/shortId.js +1 -1
  135. package/dist/esm/lib/projectbackup/hooks.js +2 -2
  136. package/dist/esm/rendering/lib/getTerminalWidth.d.ts +1 -1
  137. package/dist/esm/rendering/lib/getTerminalWidth.js +1 -1
  138. package/dist/esm/rendering/react/RenderBaseCommand.js +5 -1
  139. package/dist/esm/rendering/react/components/AppInstallation/AppInstallationDetails.js +6 -2
  140. package/dist/esm/rendering/react/components/Conversation/ConversationMeta.js +1 -3
  141. package/dist/esm/rendering/react/components/Table/model/Column.d.ts +1 -1
  142. package/dist/esm/rendering/react/components/Table/model/Column.js +5 -2
  143. package/dist/esm/rendering/react/components/Table/model/ColumnOptions.js +1 -1
  144. package/dist/esm/rendering/react/hooks/useIncreaseInkStdoutColumns.d.ts +1 -0
  145. package/dist/esm/rendering/react/hooks/useIncreaseInkStdoutColumns.js +9 -0
  146. package/dist/esm/rendering/react/hooks/useMyUserProfile.js +1 -3
  147. package/dist/esm/rendering/react/measure/MeasureContextProvider.js +6 -2
  148. package/package.json +5 -7
  149. package/dist/esm/commands/app/install/node.js +0 -13
  150. package/dist/esm/commands/app/install/php.js +0 -13
  151. package/dist/esm/commands/domain/tld/get.d.ts +0 -3
  152. package/dist/esm/commands/domain/tld/get.js +0 -6
  153. package/dist/esm/commands/domain/tld/list.d.ts +0 -9
  154. package/dist/esm/commands/domain/tld/list.js +0 -6
  155. package/dist/esm/generated/domain/getToplevelDomain.d.ts +0 -16
  156. package/dist/esm/generated/domain/getToplevelDomain.js +0 -25
  157. package/dist/esm/generated/domain/listToplevelDomains.d.ts +0 -13
  158. package/dist/esm/generated/domain/listToplevelDomains.js +0 -17
  159. package/dist/esm/generated/mail/deliveryboxList.d.ts +0 -13
  160. package/dist/esm/generated/mail/deliveryboxList.js +0 -24
  161. package/dist/esm/generated/user/getUser.d.ts +0 -14
  162. package/dist/esm/generated/user/getUser.js +0 -16
package/README.md CHANGED
@@ -80,6 +80,8 @@ USAGE
80
80
 
81
81
  <!-- commands -->
82
82
  * [`mw app copy INSTALLATION-ID`](#mw-app-copy-installation-id)
83
+ * [`mw app create node`](#mw-app-create-node)
84
+ * [`mw app create php`](#mw-app-create-php)
83
85
  * [`mw app dependency list`](#mw-app-dependency-list)
84
86
  * [`mw app dependency update INSTALLATION-ID`](#mw-app-dependency-update-installation-id)
85
87
  * [`mw app dependency versions SYSTEMSOFTWARE`](#mw-app-dependency-versions-systemsoftware)
@@ -87,13 +89,12 @@ USAGE
87
89
  * [`mw app install contao`](#mw-app-install-contao)
88
90
  * [`mw app install joomla`](#mw-app-install-joomla)
89
91
  * [`mw app install matomo`](#mw-app-install-matomo)
90
- * [`mw app install node`](#mw-app-install-node)
91
- * [`mw app install php`](#mw-app-install-php)
92
92
  * [`mw app install shopware5`](#mw-app-install-shopware5)
93
93
  * [`mw app install shopware6`](#mw-app-install-shopware6)
94
94
  * [`mw app install typo3`](#mw-app-install-typo3)
95
95
  * [`mw app install wordpress`](#mw-app-install-wordpress)
96
96
  * [`mw app list`](#mw-app-list)
97
+ * [`mw app ssh INSTALLATION-ID`](#mw-app-ssh-installation-id)
97
98
  * [`mw app uninstall INSTALLATION-ID`](#mw-app-uninstall-installation-id)
98
99
  * [`mw app versions [APP]`](#mw-app-versions-app)
99
100
  * [`mw context get`](#mw-context-get)
@@ -129,8 +130,6 @@ USAGE
129
130
  * [`mw domain list`](#mw-domain-list)
130
131
  * [`mw domain ownership get DOMAINOWNERSHIPID`](#mw-domain-ownership-get-domainownershipid)
131
132
  * [`mw domain ownership list`](#mw-domain-ownership-list)
132
- * [`mw domain tld get TLD`](#mw-domain-tld-get-tld)
133
- * [`mw domain tld list`](#mw-domain-tld-list)
134
133
  * [`mw domain virtualhost create`](#mw-domain-virtualhost-create)
135
134
  * [`mw domain virtualhost delete VIRTUAL-HOST-ID`](#mw-domain-virtualhost-delete-virtual-host-id)
136
135
  * [`mw domain virtualhost get INGRESS-ID`](#mw-domain-virtualhost-get-ingress-id)
@@ -189,7 +188,7 @@ USAGE
189
188
  * [`mw user api-token get APITOKENID`](#mw-user-api-token-get-apitokenid)
190
189
  * [`mw user api-token list`](#mw-user-api-token-list)
191
190
  * [`mw user api-token revoke ID`](#mw-user-api-token-revoke-id)
192
- * [`mw user get`](#mw-user-get)
191
+ * [`mw user get USER-ID`](#mw-user-get-user-id)
193
192
  * [`mw user session get TOKENID`](#mw-user-session-get-tokenid)
194
193
  * [`mw user session list`](#mw-user-session-list)
195
194
  * [`mw user ssh-key create`](#mw-user-ssh-key-create)
@@ -222,6 +221,91 @@ FLAG DESCRIPTIONS
222
221
  scripts), you can use this flag to easily get the IDs of created resources for further processing.
223
222
  ```
224
223
 
224
+ ## `mw app create node`
225
+
226
+ Creates new custom Node.js installation.
227
+
228
+ ```
229
+ USAGE
230
+ $ mw app create node [-p <value>] [-q] [--site-title <value>] [-w] [--json]
231
+
232
+ FLAGS
233
+ -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
234
+ context
235
+ -q, --quiet suppress process output and only display a machine-readable summary.
236
+ -w, --wait Wait for your custom Node.js to be ready.
237
+ --json
238
+ --site-title=<value> Site Title for your custom Node.js installation.
239
+
240
+ DESCRIPTION
241
+ Creates new custom Node.js installation.
242
+
243
+ FLAG DESCRIPTIONS
244
+ -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
245
+
246
+ May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
247
+ to persistently set a default project for all commands that accept this flag.
248
+
249
+ -q, --quiet suppress process output and only display a machine-readable summary.
250
+
251
+ This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
252
+ scripts), you can use this flag to easily get the IDs of created resources for further processing.
253
+
254
+ --site-title=<value> Site Title for your custom Node.js installation.
255
+
256
+ Site Title which will be displayed in the Tab and at the top of the Frontend of your custom Node.js installation.
257
+ It is also the Title shown in the App-Overview in the mStudio.
258
+ If none is given the Software Name and the given Project will be used. The Title can be changed after the
259
+ installation is finished
260
+ ```
261
+
262
+ ## `mw app create php`
263
+
264
+ Creates new custom PHP installation.
265
+
266
+ ```
267
+ USAGE
268
+ $ mw app create php --document-root <value> [-p <value>] [-q] [--site-title <value>] [-w] [--json]
269
+
270
+ FLAGS
271
+ -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
272
+ context
273
+ -q, --quiet suppress process output and only display a machine-readable summary.
274
+ -w, --wait Wait for your custom PHP to be ready.
275
+ --document-root=<value> (required) [default: /] The document root from which your custom PHP will be served
276
+ (relative to the installation path)
277
+ --json
278
+ --site-title=<value> Site Title for your custom PHP installation.
279
+
280
+ DESCRIPTION
281
+ Creates new custom PHP installation.
282
+
283
+ FLAG DESCRIPTIONS
284
+ -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
285
+
286
+ May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
287
+ to persistently set a default project for all commands that accept this flag.
288
+
289
+ -q, --quiet suppress process output and only display a machine-readable summary.
290
+
291
+ This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
292
+ scripts), you can use this flag to easily get the IDs of created resources for further processing.
293
+
294
+ --document-root=<value>
295
+
296
+ The document root from which your custom PHP will be served (relative to the installation path)
297
+
298
+ This is the document root from which the files of your application will be served by the web server. This directory
299
+ is specified relative to the installation path.
300
+
301
+ --site-title=<value> Site Title for your custom PHP installation.
302
+
303
+ Site Title which will be displayed in the Tab and at the top of the Frontend of your custom PHP installation.
304
+ It is also the Title shown in the App-Overview in the mStudio.
305
+ If none is given the Software Name and the given Project will be used. The Title can be changed after the
306
+ installation is finished
307
+ ```
308
+
225
309
  ## `mw app dependency list`
226
310
 
227
311
  Get all available dependencies
@@ -330,7 +414,7 @@ DESCRIPTION
330
414
 
331
415
  ## `mw app install contao`
332
416
 
333
- Creates new Contao Installation.
417
+ Creates new Contao installation.
334
418
 
335
419
  ```
336
420
  USAGE
@@ -354,7 +438,7 @@ FLAGS
354
438
  --version=<value> (required) [default: latest] Version of Contao to be installed.
355
439
 
356
440
  DESCRIPTION
357
- Creates new Contao Installation.
441
+ Creates new Contao installation.
358
442
 
359
443
  FLAG DESCRIPTIONS
360
444
  -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
@@ -420,7 +504,7 @@ FLAG DESCRIPTIONS
420
504
 
421
505
  ## `mw app install joomla`
422
506
 
423
- Creates new Joomla! Installation.
507
+ Creates new Joomla! installation.
424
508
 
425
509
  ```
426
510
  USAGE
@@ -444,7 +528,7 @@ FLAGS
444
528
  --version=<value> (required) [default: latest] Version of Joomla! to be installed.
445
529
 
446
530
  DESCRIPTION
447
- Creates new Joomla! Installation.
531
+ Creates new Joomla! installation.
448
532
 
449
533
  FLAG DESCRIPTIONS
450
534
  -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
@@ -510,7 +594,7 @@ FLAG DESCRIPTIONS
510
594
 
511
595
  ## `mw app install matomo`
512
596
 
513
- Creates new Matomo Installation.
597
+ Creates new Matomo installation.
514
598
 
515
599
  ```
516
600
  USAGE
@@ -531,7 +615,7 @@ FLAGS
531
615
  --version=<value> (required) [default: latest] Version of Matomo to be installed.
532
616
 
533
617
  DESCRIPTION
534
- Creates new Matomo Installation.
618
+ Creates new Matomo installation.
535
619
 
536
620
  FLAG DESCRIPTIONS
537
621
  -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
@@ -583,97 +667,9 @@ FLAG DESCRIPTIONS
583
667
  If none is given the Matomo will be installed in the latest available version.
584
668
  ```
585
669
 
586
- ## `mw app install node`
587
-
588
- Creates new Node.js Project Installation.
589
-
590
- ```
591
- USAGE
592
- $ mw app install node --version <value> [-p <value>] [-q] [--site-title <value>] [-w] [--json]
593
-
594
- FLAGS
595
- -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
596
- context
597
- -q, --quiet suppress process output and only display a machine-readable summary.
598
- -w, --wait Wait for your Node.js Project to be ready.
599
- --json
600
- --site-title=<value> Site Title for your Node.js Project installation.
601
- --version=<value> (required) [default: latest] Version of Node.js Project to be installed.
602
-
603
- DESCRIPTION
604
- Creates new Node.js Project Installation.
605
-
606
- FLAG DESCRIPTIONS
607
- -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
608
-
609
- May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
610
- to persistently set a default project for all commands that accept this flag.
611
-
612
- -q, --quiet suppress process output and only display a machine-readable summary.
613
-
614
- This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
615
- scripts), you can use this flag to easily get the IDs of created resources for further processing.
616
-
617
- --site-title=<value> Site Title for your Node.js Project installation.
618
-
619
- Site Title which will be displayed in the Tab and at the top of the Frontend of your Node.js Project installation.
620
- It is also the Title shown in the App-Overview in the mStudio.
621
- If none is given the Software Name and the given Project will be used. The Title can be changed after the
622
- installation is finished
623
-
624
- --version=<value> Version of Node.js Project to be installed.
625
-
626
- Specify the Version in which your Node.js Project will be installed.
627
- If none is given the Node.js Project will be installed in the latest available version.
628
- ```
629
-
630
- ## `mw app install php`
631
-
632
- Creates new PHP Project Installation.
633
-
634
- ```
635
- USAGE
636
- $ mw app install php --version <value> [-p <value>] [-q] [--site-title <value>] [-w] [--json]
637
-
638
- FLAGS
639
- -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
640
- context
641
- -q, --quiet suppress process output and only display a machine-readable summary.
642
- -w, --wait Wait for your PHP Project to be ready.
643
- --json
644
- --site-title=<value> Site Title for your PHP Project installation.
645
- --version=<value> (required) [default: latest] Version of PHP Project to be installed.
646
-
647
- DESCRIPTION
648
- Creates new PHP Project Installation.
649
-
650
- FLAG DESCRIPTIONS
651
- -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
652
-
653
- May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
654
- to persistently set a default project for all commands that accept this flag.
655
-
656
- -q, --quiet suppress process output and only display a machine-readable summary.
657
-
658
- This flag controls if you want to see the process output or only a summary. When using mw non-interactively (e.g. in
659
- scripts), you can use this flag to easily get the IDs of created resources for further processing.
660
-
661
- --site-title=<value> Site Title for your PHP Project installation.
662
-
663
- Site Title which will be displayed in the Tab and at the top of the Frontend of your PHP Project installation.
664
- It is also the Title shown in the App-Overview in the mStudio.
665
- If none is given the Software Name and the given Project will be used. The Title can be changed after the
666
- installation is finished
667
-
668
- --version=<value> Version of PHP Project to be installed.
669
-
670
- Specify the Version in which your PHP Project will be installed.
671
- If none is given the PHP Project will be installed in the latest available version.
672
- ```
673
-
674
670
  ## `mw app install shopware5`
675
671
 
676
- Creates new Shopware 5 Installation.
672
+ Creates new Shopware 5 installation.
677
673
 
678
674
  ```
679
675
  USAGE
@@ -701,7 +697,7 @@ FLAGS
701
697
  --version=<value> (required) [default: latest] Version of Shopware 5 to be installed.
702
698
 
703
699
  DESCRIPTION
704
- Creates new Shopware 5 Installation.
700
+ Creates new Shopware 5 installation.
705
701
 
706
702
  FLAG DESCRIPTIONS
707
703
  -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
@@ -787,7 +783,7 @@ FLAG DESCRIPTIONS
787
783
 
788
784
  ## `mw app install shopware6`
789
785
 
790
- Creates new Shopware 6 Installation.
786
+ Creates new Shopware 6 installation.
791
787
 
792
788
  ```
793
789
  USAGE
@@ -815,7 +811,7 @@ FLAGS
815
811
  --version=<value> (required) [default: latest] Version of Shopware 6 to be installed.
816
812
 
817
813
  DESCRIPTION
818
- Creates new Shopware 6 Installation.
814
+ Creates new Shopware 6 installation.
819
815
 
820
816
  FLAG DESCRIPTIONS
821
817
  -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
@@ -901,7 +897,7 @@ FLAG DESCRIPTIONS
901
897
 
902
898
  ## `mw app install typo3`
903
899
 
904
- Creates new TYPO3 Installation.
900
+ Creates new TYPO3 installation.
905
901
 
906
902
  ```
907
903
  USAGE
@@ -924,7 +920,7 @@ FLAGS
924
920
  --version=<value> (required) [default: latest] Version of TYPO3 to be installed.
925
921
 
926
922
  DESCRIPTION
927
- Creates new TYPO3 Installation.
923
+ Creates new TYPO3 installation.
928
924
 
929
925
  FLAG DESCRIPTIONS
930
926
  -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
@@ -986,7 +982,7 @@ FLAG DESCRIPTIONS
986
982
 
987
983
  ## `mw app install wordpress`
988
984
 
989
- Creates new WordPress Installation.
985
+ Creates new WordPress installation.
990
986
 
991
987
  ```
992
988
  USAGE
@@ -1008,7 +1004,7 @@ FLAGS
1008
1004
  --version=<value> (required) [default: latest] Version of WordPress to be installed.
1009
1005
 
1010
1006
  DESCRIPTION
1011
- Creates new WordPress Installation.
1007
+ Creates new WordPress installation.
1012
1008
 
1013
1009
  FLAG DESCRIPTIONS
1014
1010
  -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
@@ -1093,6 +1089,24 @@ FLAG DESCRIPTIONS
1093
1089
  to persistently set a default project for all commands that accept this flag.
1094
1090
  ```
1095
1091
 
1092
+ ## `mw app ssh INSTALLATION-ID`
1093
+
1094
+ Connect to an app via SSH
1095
+
1096
+ ```
1097
+ USAGE
1098
+ $ mw app ssh INSTALLATION-ID [--cd]
1099
+
1100
+ ARGUMENTS
1101
+ INSTALLATION-ID ID of the app installation to get
1102
+
1103
+ FLAGS
1104
+ --[no-]cd change to installation path after connecting
1105
+
1106
+ DESCRIPTION
1107
+ Connect to an app via SSH
1108
+ ```
1109
+
1096
1110
  ## `mw app uninstall INSTALLATION-ID`
1097
1111
 
1098
1112
  Uninstall an app
@@ -1918,49 +1932,6 @@ FLAG DESCRIPTIONS
1918
1932
  to persistently set a default project for all commands that accept this flag.
1919
1933
  ```
1920
1934
 
1921
- ## `mw domain tld get TLD`
1922
-
1923
- Get a toplevel domain.
1924
-
1925
- ```
1926
- USAGE
1927
- $ mw domain tld get TLD [-o json|yaml | | ]
1928
-
1929
- ARGUMENTS
1930
- TLD undefined
1931
-
1932
- FLAGS
1933
- -o, --output=<option> output in a more machine friendly format
1934
- <options: json|yaml>
1935
-
1936
- DESCRIPTION
1937
- Get a toplevel domain.
1938
- ```
1939
-
1940
- ## `mw domain tld list`
1941
-
1942
- List all supported toplevel domains.
1943
-
1944
- ```
1945
- USAGE
1946
- $ mw domain tld list [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output csv|json|yaml | |
1947
- [--csv | --no-truncate]] [--no-header | ]
1948
-
1949
- FLAGS
1950
- -x, --extended show extra columns
1951
- --columns=<value> only show provided columns (comma-separated)
1952
- --csv output is csv format [alias: --output=csv]
1953
- --filter=<value> filter property by partial string matching, ex: name=foo
1954
- --no-header hide table header from output
1955
- --no-truncate do not truncate output to fit screen
1956
- --output=<option> output in a more machine friendly format
1957
- <options: csv|json|yaml>
1958
- --sort=<value> property to sort by (prepend '-' for descending)
1959
-
1960
- DESCRIPTION
1961
- List all supported toplevel domains.
1962
- ```
1963
-
1964
1935
  ## `mw domain virtualhost create`
1965
1936
 
1966
1937
  Create a new ingress
@@ -2321,23 +2292,30 @@ Get all deliveryboxes by project ID
2321
2292
 
2322
2293
  ```
2323
2294
  USAGE
2324
- $ mw mail deliverybox list --project-id <value> [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output
2295
+ $ mw mail deliverybox list [-p <value>] [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output
2325
2296
  csv|json|yaml | | [--csv | --no-truncate]] [--no-header | ]
2326
2297
 
2327
2298
  FLAGS
2328
- -x, --extended show extra columns
2329
- --columns=<value> only show provided columns (comma-separated)
2330
- --csv output is csv format [alias: --output=csv]
2331
- --filter=<value> filter property by partial string matching, ex: name=foo
2332
- --no-header hide table header from output
2333
- --no-truncate do not truncate output to fit screen
2334
- --output=<option> output in a more machine friendly format
2335
- <options: csv|json|yaml>
2336
- --project-id=<value> (required) Project ID the deliveryboxes are related to
2337
- --sort=<value> property to sort by (prepend '-' for descending)
2299
+ -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the
2300
+ context
2301
+ -x, --extended show extra columns
2302
+ --columns=<value> only show provided columns (comma-separated)
2303
+ --csv output is csv format [alias: --output=csv]
2304
+ --filter=<value> filter property by partial string matching, ex: name=foo
2305
+ --no-header hide table header from output
2306
+ --no-truncate do not truncate output to fit screen
2307
+ --output=<option> output in a more machine friendly format
2308
+ <options: csv|json|yaml>
2309
+ --sort=<value> property to sort by (prepend '-' for descending)
2338
2310
 
2339
2311
  DESCRIPTION
2340
2312
  Get all deliveryboxes by project ID
2313
+
2314
+ FLAG DESCRIPTIONS
2315
+ -p, --project-id=<value> ID or short ID of a project; this flag is optional if a default project is set in the context
2316
+
2317
+ May contain a short ID or a full ID of a project; you can also use the "mw context set --project-id=<VALUE>" command
2318
+ to persistently set a default project for all commands that accept this flag.
2341
2319
  ```
2342
2320
 
2343
2321
  ## `mw org delete [ORG-ID]`
@@ -3427,13 +3405,17 @@ FLAG DESCRIPTIONS
3427
3405
  scripts), you can use this flag to easily get the IDs of created resources for further processing.
3428
3406
  ```
3429
3407
 
3430
- ## `mw user get`
3408
+ ## `mw user get USER-ID`
3431
3409
 
3432
3410
  Get profile information for a user.
3433
3411
 
3434
3412
  ```
3435
3413
  USAGE
3436
- $ mw user get [-o json|yaml | | ]
3414
+ $ mw user get USER-ID [-o json|yaml | | ]
3415
+
3416
+ ARGUMENTS
3417
+ USER-ID [default: self] The user ID to get information for; defaults to the special value 'self', which references to
3418
+ the currently authenticated user.
3437
3419
 
3438
3420
  FLAGS
3439
3421
  -o, --output=<option> output in a more machine friendly format
@@ -66,7 +66,8 @@ export async function getAppVersionFromUuid(apiClient, appId, appVersionId) {
66
66
  throw new Error("Given UUID not valid.");
67
67
  }
68
68
  const appVersion = await apiClient.app.getAppversion({
69
- pathParameters: { appId: appId, appVersionId: appVersionId },
69
+ appId: appId,
70
+ appVersionId: appVersionId,
70
71
  });
71
72
  assertStatus(appVersion, 200);
72
73
  return appVersion.data;
@@ -21,7 +21,7 @@ export class Copy extends ExecRenderBaseCommand {
21
21
  const p = makeProcessRenderer(this.flags, "Copying app installation");
22
22
  const result = await p.runStep("requesting app copy", async () => {
23
23
  const r = await this.apiClient.app.requestAppinstallationCopy({
24
- pathParameters: { id },
24
+ id,
25
25
  data: {
26
26
  description,
27
27
  },
@@ -1,9 +1,10 @@
1
1
  import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
2
2
  import React from "react";
3
- import { AppInstallationResult } from "../../../lib/app/Installer.js";
3
+ import { AppInstallationResult, AppInstaller } from "../../../lib/app/Installer.js";
4
+ export declare const nodeInstaller: AppInstaller<"site-title" | "wait">;
4
5
  export default class InstallNode extends ExecRenderBaseCommand<typeof InstallNode, AppInstallationResult> {
5
6
  static description: string;
6
- static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("version" | "site-title" | "wait")[]>>;
7
+ static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("site-title" | "wait")[]>>;
7
8
  protected exec(): Promise<{
8
9
  appInstallationId: string;
9
10
  }>;
@@ -0,0 +1,13 @@
1
+ import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
2
+ import { AppInstaller, } from "../../../lib/app/Installer.js";
3
+ export const nodeInstaller = new AppInstaller("3e7f920b-a711-4d2f-9871-661e1b41a2f0", "custom Node.js", ["site-title", "wait"]);
4
+ export default class InstallNode extends ExecRenderBaseCommand {
5
+ static description = nodeInstaller.description;
6
+ static flags = nodeInstaller.flags;
7
+ async exec() {
8
+ return nodeInstaller.exec(this.apiClient, this.args, this.flags, this.config);
9
+ }
10
+ render(result) {
11
+ return nodeInstaller.render(result, this.flags);
12
+ }
13
+ }
@@ -1,9 +1,10 @@
1
1
  import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
2
2
  import React from "react";
3
- import { AppInstallationResult } from "../../../lib/app/Installer.js";
3
+ import { AppInstallationResult, AppInstaller } from "../../../lib/app/Installer.js";
4
+ export declare const phpInstaller: AppInstaller<"site-title" | "document-root" | "wait">;
4
5
  export default class InstallPhp extends ExecRenderBaseCommand<typeof InstallPhp, AppInstallationResult> {
5
6
  static description: string;
6
- static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("version" | "site-title" | "wait")[]>>;
7
+ static flags: import("@oclif/core/lib/interfaces/parser.js").FlagInput<import("../../../lib/app/flags.js").RelevantFlags<readonly ("site-title" | "document-root" | "wait")[]>>;
7
8
  protected exec(): Promise<{
8
9
  appInstallationId: string;
9
10
  }>;
@@ -0,0 +1,13 @@
1
+ import { ExecRenderBaseCommand } from "../../../rendering/react/ExecRenderBaseCommand.js";
2
+ import { AppInstaller, } from "../../../lib/app/Installer.js";
3
+ export const phpInstaller = new AppInstaller("34220303-cb87-4592-8a95-2eb20a97b2ac", "custom PHP", ["document-root", "site-title", "wait"]);
4
+ export default class InstallPhp extends ExecRenderBaseCommand {
5
+ static description = phpInstaller.description;
6
+ static flags = phpInstaller.flags;
7
+ async exec() {
8
+ return phpInstaller.exec(this.apiClient, this.args, this.flags, this.config);
9
+ }
10
+ render(result) {
11
+ return phpInstaller.render(result, this.flags);
12
+ }
13
+ }
@@ -75,7 +75,7 @@ export default class Update extends ExecRenderBaseCommand {
75
75
  }
76
76
  await process.runStep("updating app dependencies", async () => {
77
77
  const r = await this.apiClient.app.patchAppinstallation({
78
- pathParameters: { appInstallationId },
78
+ appInstallationId,
79
79
  data: {
80
80
  systemSoftware: versionsToUpdate,
81
81
  },
@@ -87,7 +87,7 @@ export default class Update extends ExecRenderBaseCommand {
87
87
  async getVersions(p, systemSoftware) {
88
88
  const versions = await p.runStep(`fetching versions for ${systemSoftware.name}`, async () => {
89
89
  const r = await this.apiClient.app.listSystemsoftwareversions({
90
- pathParameters: { systemSoftwareId: systemSoftware.id },
90
+ systemSoftwareId: systemSoftware.id,
91
91
  });
92
92
  assertStatus(r, 200);
93
93
  return r.data;
@@ -22,7 +22,7 @@ export class Versions extends ListBaseCommand {
22
22
  throw new Error(`system software ${systemSoftwareName} not found`);
23
23
  }
24
24
  return await this.apiClient.app.listSystemsoftwareversions({
25
- pathParameters: { systemSoftwareId: systemSoftware.id },
25
+ systemSoftwareId: systemSoftware.id,
26
26
  });
27
27
  }
28
28
  mapData(data) {
@@ -2,6 +2,8 @@ import { assertStatus } from "@mittwald/api-client-commons";
2
2
  import { getAppFromUuid, getAppVersionFromUuid } from "../../Translator.js";
3
3
  import { projectFlags, withProjectId } from "../../lib/project/flags.js";
4
4
  import { ListBaseCommand } from "../../ListBaseCommand.js";
5
+ import { phpInstaller } from "./create/php.js";
6
+ import { nodeInstaller } from "./create/node.js";
5
7
  export default class List extends ListBaseCommand {
6
8
  static description = "List installed apps in a project.";
7
9
  static flags = {
@@ -11,7 +13,7 @@ export default class List extends ListBaseCommand {
11
13
  async getData() {
12
14
  const projectId = await withProjectId(this.apiClient, List, this.flags, this.args, this.config);
13
15
  const apps = await this.apiClient.app.listAppinstallations({
14
- pathParameters: { projectId },
16
+ projectId,
15
17
  });
16
18
  assertStatus(apps, 200);
17
19
  return apps;
@@ -43,6 +45,9 @@ export default class List extends ListBaseCommand {
43
45
  appVersion: {
44
46
  header: "Version",
45
47
  get: (i) => {
48
+ if ([phpInstaller.appId, nodeInstaller.appId].includes(i.appId)) {
49
+ return "n/a";
50
+ }
46
51
  if (i.appVersionCurrent?.id === i.appVersionDesired.id) {
47
52
  return i.appVersionDesired.externalVersion;
48
53
  }
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from "../../BaseCommand.js";
2
+ export default class Ssh extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ "installation-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ cd: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
@@ -0,0 +1,46 @@
1
+ import { BaseCommand } from "../../BaseCommand.js";
2
+ import { assertStatus } from "@mittwald/api-client-commons";
3
+ import * as child_process from "child_process";
4
+ import { appInstallationFlags } from "../../lib/app/flags.js";
5
+ import { Flags } from "@oclif/core";
6
+ import * as path from "path";
7
+ export default class Ssh extends BaseCommand {
8
+ static description = "Connect to an app via SSH";
9
+ static args = { ...appInstallationFlags };
10
+ static flags = {
11
+ cd: Flags.boolean({
12
+ summary: "change to installation path after connecting",
13
+ default: true,
14
+ allowNo: true,
15
+ }),
16
+ };
17
+ async run() {
18
+ const { args, flags } = await this.parse(Ssh);
19
+ const id = args["installation-id"];
20
+ const appInstallationResponse = await this.apiClient.app.getAppinstallation({
21
+ appInstallationId: id,
22
+ });
23
+ assertStatus(appInstallationResponse, 200);
24
+ if (appInstallationResponse.data.projectId === undefined) {
25
+ throw new Error("Project ID of app must not be undefined");
26
+ }
27
+ const projectResponse = await this.apiClient.project.getProject({
28
+ id: appInstallationResponse.data.projectId,
29
+ });
30
+ assertStatus(projectResponse, 200);
31
+ const userResponse = await this.apiClient.user.getOwnAccount();
32
+ assertStatus(userResponse, 200);
33
+ const sshHost = `ssh.${projectResponse.data.clusterID}.${projectResponse.data.clusterDomain}`;
34
+ const sshUser = `${userResponse.data.email}@app-${appInstallationResponse.data.id}`;
35
+ this.log("connecting to %o as %o", sshHost, sshUser);
36
+ let cmd = "exec bash -l";
37
+ if (flags.cd) {
38
+ const absoluteInstallPath = path.join(projectResponse.data.directories["Web"], appInstallationResponse.data.installationPath);
39
+ cmd = flags.cd ? `cd ${absoluteInstallPath} && exec bash -l` : "bash -l";
40
+ this.log("changing to %o; use --no-cd to disable this behaviour", absoluteInstallPath);
41
+ }
42
+ child_process.spawnSync("/usr/bin/ssh", ["-t", "-l", sshUser, sshHost, cmd], {
43
+ stdio: "inherit",
44
+ });
45
+ }
46
+ }