@catladder/cli 3.48.0 → 4.0.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 (477) hide show
  1. package/README.md +23 -5
  2. package/dist/bundles/catenv/index.js +3 -3
  3. package/dist/bundles/cli/index.js +34 -30
  4. package/dist/cli/src/adapters/baseContext.d.ts +22 -0
  5. package/dist/cli/src/adapters/baseContext.js +40 -0
  6. package/dist/cli/src/adapters/baseContext.js.map +1 -0
  7. package/dist/cli/src/adapters/programmatic.d.ts +26 -0
  8. package/dist/cli/src/adapters/programmatic.js +67 -0
  9. package/dist/cli/src/adapters/programmatic.js.map +1 -0
  10. package/dist/cli/src/adapters/terminal.d.ts +28 -0
  11. package/dist/cli/src/adapters/terminal.js +205 -0
  12. package/dist/cli/src/adapters/terminal.js.map +1 -0
  13. package/dist/cli/src/apps/catenv/catenv.d.ts +1 -0
  14. package/dist/cli/src/apps/catenv/catenv.js +1 -1
  15. package/dist/cli/src/apps/catenv/catenv.js.map +1 -1
  16. package/dist/cli/src/apps/catenv/printVariables.js +0 -10
  17. package/dist/cli/src/apps/catenv/printVariables.js.map +1 -1
  18. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.d.ts +2 -5
  19. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js +6 -21
  20. package/dist/cli/src/apps/cli/commands/project/commandConfigSecrets.js.map +1 -1
  21. package/dist/cli/src/apps/cli/commands/project/setup/index.d.ts +2 -2
  22. package/dist/cli/src/apps/cli/commands/project/setup/index.js.map +1 -1
  23. package/dist/cli/src/apps/cli/commands/project/setup/logSection.d.ts +2 -2
  24. package/dist/cli/src/apps/cli/commands/project/setup/logSection.js.map +1 -1
  25. package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.d.ts +2 -2
  26. package/dist/cli/src/apps/cli/commands/project/setup/setupAccessTokens.js.map +1 -1
  27. package/dist/cli/src/apps/cli/commands/project/setup/setupAgents.d.ts +2 -2
  28. package/dist/cli/src/apps/cli/commands/project/setup/setupAgents.js.map +1 -1
  29. package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.d.ts +2 -2
  30. package/dist/cli/src/apps/cli/commands/project/setup/setupCloudRun.js.map +1 -1
  31. package/dist/cli/src/apps/cli/commands/project/setup/setupContext.d.ts +2 -2
  32. package/dist/cli/src/apps/cli/commands/project/setup/setupContext.js.map +1 -1
  33. package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.d.ts +2 -2
  34. package/dist/cli/src/apps/cli/commands/project/setup/setupKubernetes.js.map +1 -1
  35. package/dist/cli/src/apps/cli/commands/project/setup/setupTopic.d.ts +2 -2
  36. package/dist/cli/src/apps/cli/commands/project/setup/setupTopic.js.map +1 -1
  37. package/dist/cli/src/apps/cli/commands/project/utils/ensureCluster.d.ts +9 -1
  38. package/dist/cli/src/apps/cli/commands/project/utils/ensureCluster.js +15 -14
  39. package/dist/cli/src/apps/cli/commands/project/utils/ensureCluster.js.map +1 -1
  40. package/dist/cli/src/apps/cli/utils/getGoogleAuthUserNumber.d.ts +2 -1
  41. package/dist/cli/src/apps/cli/utils/getGoogleAuthUserNumber.js +4 -6
  42. package/dist/cli/src/apps/cli/utils/getGoogleAuthUserNumber.js.map +1 -1
  43. package/dist/cli/src/catenv.js +14 -16
  44. package/dist/cli/src/catenv.js.map +1 -1
  45. package/dist/cli/src/cli.js +186 -2
  46. package/dist/cli/src/cli.js.map +1 -1
  47. package/dist/cli/src/commands/cloudSQL/commandRestoreDb.d.ts +46 -0
  48. package/dist/cli/src/commands/cloudSQL/commandRestoreDb.js +111 -0
  49. package/dist/cli/src/commands/cloudSQL/commandRestoreDb.js.map +1 -0
  50. package/dist/cli/src/commands/fun/commandDadjoke.d.ts +1 -0
  51. package/dist/cli/src/commands/fun/commandDadjoke.js +30 -0
  52. package/dist/cli/src/commands/fun/commandDadjoke.js.map +1 -0
  53. package/dist/cli/src/commands/fun/commandStarwars.d.ts +1 -0
  54. package/dist/cli/src/commands/fun/commandStarwars.js +19 -0
  55. package/dist/cli/src/commands/fun/commandStarwars.js.map +1 -0
  56. package/dist/cli/src/commands/general/commandKubeCurrentContext.d.ts +1 -0
  57. package/dist/cli/src/commands/general/commandKubeCurrentContext.js +17 -0
  58. package/dist/cli/src/commands/general/commandKubeCurrentContext.js.map +1 -0
  59. package/dist/cli/src/commands/general/commandKubeGetShell.d.ts +12 -0
  60. package/dist/cli/src/commands/general/commandKubeGetShell.js +36 -0
  61. package/dist/cli/src/commands/general/commandKubeGetShell.js.map +1 -0
  62. package/dist/cli/src/commands/general/commandKubeListNamespaces.d.ts +1 -0
  63. package/dist/cli/src/commands/general/commandKubeListNamespaces.js +20 -0
  64. package/dist/cli/src/commands/general/commandKubeListNamespaces.js.map +1 -0
  65. package/dist/cli/src/commands/general/commandKubeListPods.d.ts +7 -0
  66. package/dist/cli/src/commands/general/commandKubeListPods.js +26 -0
  67. package/dist/cli/src/commands/general/commandKubeListPods.js.map +1 -0
  68. package/dist/cli/src/commands/general/commandKubeListSecrets.d.ts +7 -0
  69. package/dist/cli/src/commands/general/commandKubeListSecrets.js +26 -0
  70. package/dist/cli/src/commands/general/commandKubeListSecrets.js.map +1 -0
  71. package/dist/cli/src/commands/general/commandKubePortForward.d.ts +20 -0
  72. package/dist/cli/src/commands/general/commandKubePortForward.js +46 -0
  73. package/dist/cli/src/commands/general/commandKubePortForward.js.map +1 -0
  74. package/dist/cli/src/commands/general/commandKubeStopPortforward.d.ts +7 -0
  75. package/dist/cli/src/commands/general/commandKubeStopPortforward.js +24 -0
  76. package/dist/cli/src/commands/general/commandKubeStopPortforward.js.map +1 -0
  77. package/dist/cli/src/commands/index.d.ts +37 -0
  78. package/dist/cli/src/commands/index.js +283 -0
  79. package/dist/cli/src/commands/index.js.map +1 -0
  80. package/dist/cli/src/commands/mongodb/commandMongoDestroyMember.d.ts +16 -0
  81. package/dist/cli/src/commands/mongodb/commandMongoDestroyMember.js +89 -0
  82. package/dist/cli/src/commands/mongodb/commandMongoDestroyMember.js.map +1 -0
  83. package/dist/cli/src/commands/mongodb/commandMongoGetShell.d.ts +16 -0
  84. package/dist/cli/src/commands/mongodb/commandMongoGetShell.js +36 -0
  85. package/dist/cli/src/commands/mongodb/commandMongoGetShell.js.map +1 -0
  86. package/dist/cli/src/commands/mongodb/commandMongoPortForward.d.ts +21 -0
  87. package/dist/cli/src/commands/mongodb/commandMongoPortForward.js +65 -0
  88. package/dist/cli/src/commands/mongodb/commandMongoPortForward.js.map +1 -0
  89. package/dist/cli/src/commands/project/commandCloudSqlProxy.d.ts +13 -0
  90. package/dist/cli/src/commands/project/commandCloudSqlProxy.js +127 -0
  91. package/dist/cli/src/commands/project/commandCloudSqlProxy.js.map +1 -0
  92. package/dist/cli/src/commands/project/commandConfigSecrets.d.ts +9 -0
  93. package/dist/cli/src/commands/project/commandConfigSecrets.js +36 -0
  94. package/dist/cli/src/commands/project/commandConfigSecrets.js.map +1 -0
  95. package/dist/cli/src/commands/project/commandDeletePods.d.ts +13 -0
  96. package/dist/cli/src/commands/project/commandDeletePods.js +49 -0
  97. package/dist/cli/src/commands/project/commandDeletePods.js.map +1 -0
  98. package/dist/cli/src/commands/project/commandDeleteProject.d.ts +8 -0
  99. package/dist/cli/src/commands/project/commandDeleteProject.js +41 -0
  100. package/dist/cli/src/commands/project/commandDeleteProject.js.map +1 -0
  101. package/dist/cli/src/commands/project/commandEnvVars.d.ts +8 -0
  102. package/dist/cli/src/commands/project/commandEnvVars.js +32 -0
  103. package/dist/cli/src/commands/project/commandEnvVars.js.map +1 -0
  104. package/dist/cli/src/commands/project/commandGetMyTotalWorktime.d.ts +1 -0
  105. package/dist/cli/src/commands/project/commandGetMyTotalWorktime.js +19 -0
  106. package/dist/cli/src/commands/project/commandGetMyTotalWorktime.js.map +1 -0
  107. package/dist/cli/src/commands/project/commandGetShell.d.ts +13 -0
  108. package/dist/cli/src/commands/project/commandGetShell.js +41 -0
  109. package/dist/cli/src/commands/project/commandGetShell.js.map +1 -0
  110. package/dist/cli/src/commands/project/commandGitlabCi.d.ts +14 -0
  111. package/dist/cli/src/commands/project/commandGitlabCi.js +109 -0
  112. package/dist/cli/src/commands/project/commandGitlabCi.js.map +1 -0
  113. package/dist/cli/src/commands/project/commandListPods.d.ts +8 -0
  114. package/dist/cli/src/commands/project/commandListPods.js +31 -0
  115. package/dist/cli/src/commands/project/commandListPods.js.map +1 -0
  116. package/dist/cli/src/commands/project/commandNamespace.d.ts +8 -0
  117. package/dist/cli/src/commands/project/commandNamespace.js +26 -0
  118. package/dist/cli/src/commands/project/commandNamespace.js.map +1 -0
  119. package/dist/cli/src/commands/project/commandOpenEnv.d.ts +8 -0
  120. package/dist/cli/src/commands/project/commandOpenEnv.js +40 -0
  121. package/dist/cli/src/commands/project/commandOpenEnv.js.map +1 -0
  122. package/dist/cli/src/commands/project/commandOpenGit.d.ts +1 -0
  123. package/dist/cli/src/commands/project/commandOpenGit.js +17 -0
  124. package/dist/cli/src/commands/project/commandOpenGit.js.map +1 -0
  125. package/dist/cli/src/commands/project/commandOpenLogs.d.ts +8 -0
  126. package/dist/cli/src/commands/project/commandOpenLogs.js +32 -0
  127. package/dist/cli/src/commands/project/commandOpenLogs.js.map +1 -0
  128. package/dist/cli/src/commands/project/commandPauseProject.d.ts +8 -0
  129. package/dist/cli/src/commands/project/commandPauseProject.js +41 -0
  130. package/dist/cli/src/commands/project/commandPauseProject.js.map +1 -0
  131. package/dist/cli/src/commands/project/commandPortForward.d.ts +25 -0
  132. package/dist/cli/src/commands/project/commandPortForward.js +95 -0
  133. package/dist/cli/src/commands/project/commandPortForward.js.map +1 -0
  134. package/dist/cli/src/commands/project/commandProjectRestoreDb.d.ts +19 -0
  135. package/dist/cli/src/commands/project/commandProjectRestoreDb.js +159 -0
  136. package/dist/cli/src/commands/project/commandProjectRestoreDb.js.map +1 -0
  137. package/dist/cli/src/commands/project/commandRenewToken.d.ts +1 -0
  138. package/dist/cli/src/commands/project/commandRenewToken.js +17 -0
  139. package/dist/cli/src/commands/project/commandRenewToken.js.map +1 -0
  140. package/dist/cli/src/commands/project/commandSecretsClearBackups.d.ts +7 -0
  141. package/dist/cli/src/commands/project/commandSecretsClearBackups.js +24 -0
  142. package/dist/cli/src/commands/project/commandSecretsClearBackups.js.map +1 -0
  143. package/dist/cli/src/commands/project/commandSecurityEvaluate.d.ts +1 -0
  144. package/dist/cli/src/commands/project/commandSecurityEvaluate.js +26 -0
  145. package/dist/cli/src/commands/project/commandSecurityEvaluate.js.map +1 -0
  146. package/dist/cli/src/commands/project/commandSetup.d.ts +8 -0
  147. package/dist/cli/src/commands/project/commandSetup.js +25 -0
  148. package/dist/cli/src/commands/project/commandSetup.js.map +1 -0
  149. package/dist/cli/src/commands/project/commandTriggerCronjob.d.ts +25 -0
  150. package/dist/cli/src/commands/project/commandTriggerCronjob.js +95 -0
  151. package/dist/cli/src/commands/project/commandTriggerCronjob.js.map +1 -0
  152. package/dist/cli/src/commands/security/commandSecurityAuditCiJob.d.ts +27 -0
  153. package/dist/cli/src/commands/security/commandSecurityAuditCiJob.js +83 -0
  154. package/dist/cli/src/commands/security/commandSecurityAuditCiJob.js.map +1 -0
  155. package/dist/cli/src/commands/security/commandSecurityAuditCreate.d.ts +22 -0
  156. package/dist/cli/src/commands/security/commandSecurityAuditCreate.js +60 -0
  157. package/dist/cli/src/commands/security/commandSecurityAuditCreate.js.map +1 -0
  158. package/dist/cli/src/commands/security/commandSecurityAuditEvaluate.d.ts +7 -0
  159. package/dist/cli/src/commands/security/commandSecurityAuditEvaluate.js +35 -0
  160. package/dist/cli/src/commands/security/commandSecurityAuditEvaluate.js.map +1 -0
  161. package/dist/cli/src/completion.d.ts +24 -0
  162. package/dist/cli/src/completion.js +240 -0
  163. package/dist/cli/src/completion.js.map +1 -0
  164. package/dist/cli/src/config/getProjectConfig.d.ts +4 -4
  165. package/dist/cli/src/config/getProjectConfig.js +8 -8
  166. package/dist/cli/src/config/getProjectConfig.js.map +1 -1
  167. package/dist/cli/src/core/defineCommand.d.ts +27 -0
  168. package/dist/cli/src/core/defineCommand.js +35 -0
  169. package/dist/cli/src/core/defineCommand.js.map +1 -0
  170. package/dist/cli/src/core/index.d.ts +5 -0
  171. package/dist/cli/src/core/index.js +52 -0
  172. package/dist/cli/src/core/index.js.map +1 -0
  173. package/dist/cli/src/core/registry.d.ts +5 -0
  174. package/dist/cli/src/core/registry.js +26 -0
  175. package/dist/cli/src/core/registry.js.map +1 -0
  176. package/dist/cli/src/core/runner.d.ts +19 -0
  177. package/dist/cli/src/core/runner.js +29 -0
  178. package/dist/cli/src/core/runner.js.map +1 -0
  179. package/dist/cli/src/core/types.d.ts +105 -0
  180. package/dist/cli/src/core/types.js +17 -0
  181. package/dist/cli/src/core/types.js.map +1 -0
  182. package/dist/cli/src/gcloud/cloudRun/openCloudRunDashboards.d.ts +2 -2
  183. package/dist/cli/src/gcloud/cloudRun/openCloudRunDashboards.js.map +1 -1
  184. package/dist/cli/src/gcloud/openDashboard.d.ts +2 -2
  185. package/dist/cli/src/gcloud/openDashboard.js +1 -1
  186. package/dist/cli/src/gcloud/openDashboard.js.map +1 -1
  187. package/dist/cli/src/gcloud/serviceAccounts.d.ts +2 -2
  188. package/dist/cli/src/gcloud/serviceAccounts.js.map +1 -1
  189. package/dist/cli/src/kubernetes/openKubernetesDashboards.d.ts +3 -3
  190. package/dist/cli/src/kubernetes/openKubernetesDashboards.js.map +1 -1
  191. package/dist/cli/src/security/auditDocument.js.map +1 -0
  192. package/dist/cli/src/security/createSecurityAuditMergeRequest.js.map +1 -0
  193. package/dist/cli/src/security/evaluateSecurityAudit.js.map +1 -0
  194. package/dist/cli/src/utils/gitlab.d.ts +9 -9
  195. package/dist/cli/src/utils/gitlab.js +45 -54
  196. package/dist/cli/src/utils/gitlab.js.map +1 -1
  197. package/dist/cli/src/utils/log.d.ts +2 -2
  198. package/dist/pipeline/src/build/index.d.ts +2 -2
  199. package/dist/pipeline/src/build/index.js.map +1 -1
  200. package/dist/pipeline/src/build/node/buildJob.d.ts +3 -3
  201. package/dist/pipeline/src/build/node/buildJob.js +13 -12
  202. package/dist/pipeline/src/build/node/buildJob.js.map +1 -1
  203. package/dist/pipeline/src/build/node/cache.d.ts +3 -3
  204. package/dist/pipeline/src/build/node/cache.js +12 -9
  205. package/dist/pipeline/src/build/node/cache.js.map +1 -1
  206. package/dist/pipeline/src/build/node/index.d.ts +3 -3
  207. package/dist/pipeline/src/build/node/index.js +8 -6
  208. package/dist/pipeline/src/build/node/index.js.map +1 -1
  209. package/dist/pipeline/src/build/node/meteor.d.ts +1 -1
  210. package/dist/pipeline/src/build/node/meteor.js +8 -7
  211. package/dist/pipeline/src/build/node/meteor.js.map +1 -1
  212. package/dist/pipeline/src/build/node/testJob.d.ts +1 -1
  213. package/dist/pipeline/src/build/node/testJob.js +5 -5
  214. package/dist/pipeline/src/build/node/testJob.js.map +1 -1
  215. package/dist/pipeline/src/build/node/yarn.d.ts +2 -2
  216. package/dist/pipeline/src/build/node/yarn.js +10 -8
  217. package/dist/pipeline/src/build/node/yarn.js.map +1 -1
  218. package/dist/pipeline/src/build/types.d.ts +1 -1
  219. package/dist/pipeline/src/constants.js +1 -1
  220. package/dist/pipeline/src/context/createComponentContext.js +3 -3
  221. package/dist/pipeline/src/context/createComponentContext.js.map +1 -1
  222. package/dist/pipeline/src/context/createWorkspaceContext.js +1 -1
  223. package/dist/pipeline/src/context/createWorkspaceContext.js.map +1 -1
  224. package/dist/pipeline/src/context/getEnvironmentVariables.d.ts +1 -1
  225. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js.map +1 -1
  226. package/dist/pipeline/src/deploy/custom/deployJob.d.ts +1 -1
  227. package/dist/pipeline/src/deploy/custom/deployJob.js +2 -2
  228. package/dist/pipeline/src/deploy/custom/deployJob.js.map +1 -1
  229. package/dist/pipeline/src/deploy/index.d.ts +1 -1
  230. package/dist/pipeline/src/deploy/types/index.d.ts +2 -2
  231. package/dist/pipeline/src/pipeline/createAllJobs.js +4 -4
  232. package/dist/pipeline/src/pipeline/createAllJobs.js.map +1 -1
  233. package/dist/pipeline/src/pipeline/createJobsForComponent.d.ts +1 -1
  234. package/dist/pipeline/src/pipeline/createJobsForComponent.js +2 -3
  235. package/dist/pipeline/src/pipeline/createJobsForComponent.js.map +1 -1
  236. package/dist/pipeline/src/pipeline/createJobsForWorkspace.d.ts +1 -1
  237. package/dist/pipeline/src/pipeline/createJobsForWorkspace.js +2 -2
  238. package/dist/pipeline/src/pipeline/createJobsForWorkspace.js.map +1 -1
  239. package/dist/pipeline/src/types/config.d.ts +3 -3
  240. package/dist/pipeline/src/types/context.d.ts +3 -3
  241. package/dist/tsconfig.tsbuildinfo +1 -1
  242. package/package.json +3 -4
  243. package/scripts/bundle +0 -2
  244. package/src/adapters/baseContext.ts +68 -0
  245. package/src/adapters/programmatic.ts +88 -0
  246. package/src/adapters/terminal.ts +207 -0
  247. package/src/apps/catenv/catenv.ts +4 -2
  248. package/src/apps/catenv/printVariables.ts +0 -8
  249. package/src/apps/cli/commands/project/commandConfigSecrets.ts +8 -33
  250. package/src/apps/cli/commands/project/setup/index.ts +2 -2
  251. package/src/apps/cli/commands/project/setup/logSection.ts +2 -2
  252. package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +2 -2
  253. package/src/apps/cli/commands/project/setup/setupAgents.ts +11 -11
  254. package/src/apps/cli/commands/project/setup/setupCloudRun.ts +2 -2
  255. package/src/apps/cli/commands/project/setup/setupContext.ts +2 -5
  256. package/src/apps/cli/commands/project/setup/setupKubernetes.ts +2 -2
  257. package/src/apps/cli/commands/project/setup/setupTopic.ts +2 -2
  258. package/src/apps/cli/commands/project/utils/ensureCluster.ts +19 -12
  259. package/src/apps/cli/utils/getGoogleAuthUserNumber.ts +5 -4
  260. package/src/catenv.ts +24 -18
  261. package/src/cli.ts +213 -2
  262. package/src/commands/cloudSQL/commandRestoreDb.ts +105 -0
  263. package/src/commands/fun/commandDadjoke.ts +18 -0
  264. package/src/commands/fun/commandStarwars.ts +14 -0
  265. package/src/commands/general/commandKubeCurrentContext.ts +12 -0
  266. package/src/commands/general/commandKubeGetShell.ts +32 -0
  267. package/src/commands/general/commandKubeListNamespaces.ts +15 -0
  268. package/src/commands/general/commandKubeListPods.ts +21 -0
  269. package/src/commands/general/commandKubeListSecrets.ts +21 -0
  270. package/src/commands/general/commandKubePortForward.ts +35 -0
  271. package/src/commands/general/commandKubeStopPortforward.ts +15 -0
  272. package/src/commands/index.ts +51 -0
  273. package/src/commands/mongodb/commandMongoDestroyMember.ts +133 -0
  274. package/src/commands/mongodb/commandMongoGetShell.ts +36 -0
  275. package/src/commands/mongodb/commandMongoPortForward.ts +56 -0
  276. package/src/commands/project/commandCloudSqlProxy.ts +189 -0
  277. package/src/commands/project/commandConfigSecrets.ts +31 -0
  278. package/src/commands/project/commandDeletePods.ts +53 -0
  279. package/src/commands/project/commandDeleteProject.ts +33 -0
  280. package/src/commands/project/commandEnvVars.ts +24 -0
  281. package/src/commands/project/commandGetMyTotalWorktime.ts +14 -0
  282. package/src/commands/project/commandGetShell.ts +39 -0
  283. package/src/commands/project/commandGitlabCi.ts +122 -0
  284. package/src/commands/project/commandListPods.ts +30 -0
  285. package/src/commands/project/commandNamespace.ts +21 -0
  286. package/src/commands/project/commandOpenEnv.ts +27 -0
  287. package/src/commands/project/commandOpenGit.ts +12 -0
  288. package/src/commands/project/commandOpenLogs.ts +27 -0
  289. package/src/commands/project/commandPauseProject.ts +33 -0
  290. package/src/commands/project/commandPortForward.ts +74 -0
  291. package/src/commands/project/commandProjectRestoreDb.ts +201 -0
  292. package/src/commands/project/commandRenewToken.ts +12 -0
  293. package/src/commands/project/commandSecretsClearBackups.ts +19 -0
  294. package/src/commands/project/commandSecurityEvaluate.ts +22 -0
  295. package/src/commands/project/commandSetup.ts +21 -0
  296. package/src/commands/project/commandTriggerCronjob.ts +99 -0
  297. package/src/commands/security/commandSecurityAuditCiJob.ts +91 -0
  298. package/src/commands/security/commandSecurityAuditCreate.ts +58 -0
  299. package/src/commands/security/commandSecurityAuditEvaluate.ts +30 -0
  300. package/src/completion.ts +272 -0
  301. package/src/config/getProjectConfig.ts +9 -9
  302. package/src/core/defineCommand.ts +32 -0
  303. package/src/core/index.ts +23 -0
  304. package/src/core/registry.ts +22 -0
  305. package/src/core/runner.ts +31 -0
  306. package/src/core/types.ts +142 -0
  307. package/src/gcloud/cloudRun/openCloudRunDashboards.ts +2 -2
  308. package/src/gcloud/openDashboard.ts +3 -3
  309. package/src/gcloud/serviceAccounts.ts +2 -2
  310. package/src/kubernetes/openKubernetesDashboards.ts +3 -3
  311. package/src/utils/gitlab.ts +46 -58
  312. package/src/utils/log.ts +2 -2
  313. package/bin/catci +0 -3
  314. package/bin/catci-dev +0 -3
  315. package/dist/bundles/catci/index.js +0 -41
  316. package/dist/cli/src/apps/catci/catci.d.ts +0 -1
  317. package/dist/cli/src/apps/catci/catci.js +0 -33
  318. package/dist/cli/src/apps/catci/catci.js.map +0 -1
  319. package/dist/cli/src/apps/catci/commands/security/auditDocument.js.map +0 -1
  320. package/dist/cli/src/apps/catci/commands/security/commands.d.ts +0 -2
  321. package/dist/cli/src/apps/catci/commands/security/commands.js +0 -118
  322. package/dist/cli/src/apps/catci/commands/security/commands.js.map +0 -1
  323. package/dist/cli/src/apps/catci/commands/security/createSecurityAuditMergeRequest.js.map +0 -1
  324. package/dist/cli/src/apps/catci/commands/security/evaluateSecurityAudit.js.map +0 -1
  325. package/dist/cli/src/apps/cli/cli.d.ts +0 -2
  326. package/dist/cli/src/apps/cli/cli.js +0 -38
  327. package/dist/cli/src/apps/cli/cli.js.map +0 -1
  328. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.d.ts +0 -3
  329. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.js +0 -130
  330. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.js.map +0 -1
  331. package/dist/cli/src/apps/cli/commands/cloudSQL/index.d.ts +0 -3
  332. package/dist/cli/src/apps/cli/commands/cloudSQL/index.js +0 -14
  333. package/dist/cli/src/apps/cli/commands/cloudSQL/index.js.map +0 -1
  334. package/dist/cli/src/apps/cli/commands/general/index.d.ts +0 -4
  335. package/dist/cli/src/apps/cli/commands/general/index.js +0 -83
  336. package/dist/cli/src/apps/cli/commands/general/index.js.map +0 -1
  337. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.d.ts +0 -3
  338. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.js +0 -13
  339. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.js.map +0 -1
  340. package/dist/cli/src/apps/cli/commands/general/portForward.d.ts +0 -3
  341. package/dist/cli/src/apps/cli/commands/general/portForward.js +0 -47
  342. package/dist/cli/src/apps/cli/commands/general/portForward.js.map +0 -1
  343. package/dist/cli/src/apps/cli/commands/mongodb/index.d.ts +0 -3
  344. package/dist/cli/src/apps/cli/commands/mongodb/index.js +0 -18
  345. package/dist/cli/src/apps/cli/commands/mongodb/index.js.map +0 -1
  346. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.d.ts +0 -3
  347. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.js +0 -96
  348. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.js.map +0 -1
  349. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.d.ts +0 -3
  350. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.js +0 -38
  351. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.js.map +0 -1
  352. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.d.ts +0 -3
  353. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.js +0 -64
  354. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.js.map +0 -1
  355. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.d.ts +0 -3
  356. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js +0 -152
  357. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js.map +0 -1
  358. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.d.ts +0 -3
  359. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.js +0 -120
  360. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.js.map +0 -1
  361. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.d.ts +0 -3
  362. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.js +0 -54
  363. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.js.map +0 -1
  364. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.d.ts +0 -3
  365. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.js +0 -33
  366. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.js.map +0 -1
  367. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.d.ts +0 -3
  368. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.js +0 -17
  369. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.js.map +0 -1
  370. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.d.ts +0 -3
  371. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.js +0 -11
  372. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.js.map +0 -1
  373. package/dist/cli/src/apps/cli/commands/project/commandGetShell.d.ts +0 -3
  374. package/dist/cli/src/apps/cli/commands/project/commandGetShell.js +0 -37
  375. package/dist/cli/src/apps/cli/commands/project/commandGetShell.js.map +0 -1
  376. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.d.ts +0 -3
  377. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js +0 -88
  378. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js.map +0 -1
  379. package/dist/cli/src/apps/cli/commands/project/commandListPods.d.ts +0 -3
  380. package/dist/cli/src/apps/cli/commands/project/commandListPods.js +0 -22
  381. package/dist/cli/src/apps/cli/commands/project/commandListPods.js.map +0 -1
  382. package/dist/cli/src/apps/cli/commands/project/commandNamespace.d.ts +0 -3
  383. package/dist/cli/src/apps/cli/commands/project/commandNamespace.js +0 -12
  384. package/dist/cli/src/apps/cli/commands/project/commandNamespace.js.map +0 -1
  385. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.d.ts +0 -3
  386. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.js +0 -26
  387. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.js.map +0 -1
  388. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.d.ts +0 -3
  389. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.js +0 -9
  390. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.js.map +0 -1
  391. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.d.ts +0 -3
  392. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.js +0 -18
  393. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.js.map +0 -1
  394. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.d.ts +0 -3
  395. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.js +0 -33
  396. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.js.map +0 -1
  397. package/dist/cli/src/apps/cli/commands/project/commandPortForward.d.ts +0 -3
  398. package/dist/cli/src/apps/cli/commands/project/commandPortForward.js +0 -97
  399. package/dist/cli/src/apps/cli/commands/project/commandPortForward.js.map +0 -1
  400. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.d.ts +0 -3
  401. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.js +0 -9
  402. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.js.map +0 -1
  403. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.d.ts +0 -5
  404. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.js +0 -25
  405. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.js.map +0 -1
  406. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.d.ts +0 -3
  407. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.js +0 -20
  408. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.js.map +0 -1
  409. package/dist/cli/src/apps/cli/commands/project/commandSetup.d.ts +0 -3
  410. package/dist/cli/src/apps/cli/commands/project/commandSetup.js +0 -12
  411. package/dist/cli/src/apps/cli/commands/project/commandSetup.js.map +0 -1
  412. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.d.ts +0 -3
  413. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.js +0 -63
  414. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.js.map +0 -1
  415. package/dist/cli/src/apps/cli/commands/project/index.d.ts +0 -3
  416. package/dist/cli/src/apps/cli/commands/project/index.js +0 -54
  417. package/dist/cli/src/apps/cli/commands/project/index.js.map +0 -1
  418. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.d.ts +0 -2
  419. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.js +0 -16
  420. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.js.map +0 -1
  421. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.d.ts +0 -3
  422. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.js +0 -37
  423. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.js.map +0 -1
  424. package/dist/cli/src/apps/cli/verify/index.d.ts +0 -2
  425. package/dist/cli/src/apps/cli/verify/index.js +0 -17
  426. package/dist/cli/src/apps/cli/verify/index.js.map +0 -1
  427. package/dist/cli/src/catci.d.ts +0 -1
  428. package/dist/cli/src/catci.js +0 -7
  429. package/dist/cli/src/catci.js.map +0 -1
  430. package/src/apps/catci/catci.ts +0 -26
  431. package/src/apps/catci/commands/security/commands.ts +0 -161
  432. package/src/apps/cli/cli.ts +0 -43
  433. package/src/apps/cli/commands/cloudSQL/commandRestoreDb.ts +0 -136
  434. package/src/apps/cli/commands/cloudSQL/index.ts +0 -7
  435. package/src/apps/cli/commands/general/index.ts +0 -90
  436. package/src/apps/cli/commands/general/namespaceAutoCompletion.ts +0 -7
  437. package/src/apps/cli/commands/general/portForward.ts +0 -48
  438. package/src/apps/cli/commands/mongodb/index.ts +0 -10
  439. package/src/apps/cli/commands/mongodb/projectMongoDestroyMember.ts +0 -132
  440. package/src/apps/cli/commands/mongodb/projectMongoGetShell.ts +0 -42
  441. package/src/apps/cli/commands/mongodb/projectMongoPortForward.ts +0 -64
  442. package/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.ts +0 -206
  443. package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +0 -194
  444. package/src/apps/cli/commands/project/commandDeletePods.ts +0 -48
  445. package/src/apps/cli/commands/project/commandDeleteProject.ts +0 -33
  446. package/src/apps/cli/commands/project/commandEnvVars.ts +0 -18
  447. package/src/apps/cli/commands/project/commandGetMyTotalWorktime.ts +0 -14
  448. package/src/apps/cli/commands/project/commandGetShell.ts +0 -36
  449. package/src/apps/cli/commands/project/commandGitlabCi.ts +0 -115
  450. package/src/apps/cli/commands/project/commandListPods.ts +0 -20
  451. package/src/apps/cli/commands/project/commandNamespace.ts +0 -14
  452. package/src/apps/cli/commands/project/commandOpenEnv.ts +0 -22
  453. package/src/apps/cli/commands/project/commandOpenGit.ts +0 -12
  454. package/src/apps/cli/commands/project/commandOpenLogs.ts +0 -21
  455. package/src/apps/cli/commands/project/commandPauseProject.ts +0 -33
  456. package/src/apps/cli/commands/project/commandPortForward.ts +0 -91
  457. package/src/apps/cli/commands/project/commandRenewToken.ts +0 -12
  458. package/src/apps/cli/commands/project/commandSecretsClearBackups.ts +0 -26
  459. package/src/apps/cli/commands/project/commandSecurityEvaluate.ts +0 -26
  460. package/src/apps/cli/commands/project/commandSetup.ts +0 -14
  461. package/src/apps/cli/commands/project/commandTriggerCronjob.ts +0 -62
  462. package/src/apps/cli/commands/project/index.ts +0 -56
  463. package/src/apps/cli/commands/project/utils/showProjectBanner.ts +0 -11
  464. package/src/apps/cli/commands/theStuffThatReallyMatters/index.ts +0 -32
  465. package/src/apps/cli/verify/index.ts +0 -14
  466. package/src/catci.ts +0 -3
  467. /package/dist/cli/src/{apps/catci/commands/security → security}/auditDocument.d.ts +0 -0
  468. /package/dist/cli/src/{apps/catci/commands/security → security}/auditDocument.js +0 -0
  469. /package/dist/cli/src/{apps/catci/commands/security → security}/createSecurityAuditMergeRequest.d.ts +0 -0
  470. /package/dist/cli/src/{apps/catci/commands/security → security}/createSecurityAuditMergeRequest.js +0 -0
  471. /package/dist/cli/src/{apps/catci/commands/security → security}/evaluateSecurityAudit.d.ts +0 -0
  472. /package/dist/cli/src/{apps/catci/commands/security → security}/evaluateSecurityAudit.js +0 -0
  473. /package/dist/cli/src/{apps/catci/commands/security → security}/topics.json +0 -0
  474. /package/src/{apps/catci/commands/security → security}/auditDocument.ts +0 -0
  475. /package/src/{apps/catci/commands/security → security}/createSecurityAuditMergeRequest.ts +0 -0
  476. /package/src/{apps/catci/commands/security → security}/evaluateSecurityAudit.ts +0 -0
  477. /package/src/{apps/catci/commands/security → security}/topics.json +0 -0
@@ -1,194 +0,0 @@
1
- import type { ComponentContext } from "@catladder/pipeline";
2
- import {
3
- createKubernetesCloudsqlBaseValues,
4
- getDeployConfigType,
5
- isOfDeployType,
6
- } from "@catladder/pipeline";
7
- import type Vorpal from "vorpal";
8
- import type { CommandInstance } from "vorpal";
9
- import clipboard from "clipboardy";
10
- import {
11
- getEnvVarsResolved,
12
- getPipelineContextByChoice,
13
- parseChoice,
14
- } from "../../../../config/getProjectConfig";
15
- import { envAndComponents } from "./utils/autocompletions";
16
- import {
17
- ERROR_NOT_INSTALLED,
18
- startCloudSqlProxyInCurrentShell,
19
- } from "../../../../gcloud/cloudSql/startProxy";
20
- import { logError, logLines, logWarning } from "../../../../utils/log";
21
-
22
- type ProxyInfo = {
23
- instanceName: string;
24
- DB_NAME: string;
25
- DB_PASSWORD: string;
26
- DB_USER: string;
27
- };
28
-
29
- const getProxyInfo = (context: ComponentContext) => {
30
- if (isOfDeployType(context.deploy?.config, "kubernetes")) {
31
- return getProxyInfoForKubernetes(this, context);
32
- } else if (isOfDeployType(context.deploy?.config, "google-cloudrun")) {
33
- return getProxyInfoForCloudRun(this, context);
34
- }
35
- throw new Error(`unsupported environment: ${context.deploy?.config?.type}`);
36
- };
37
-
38
- const getProxyInfoForKubernetes = async (
39
- vorpal: CommandInstance,
40
- context: ComponentContext,
41
- ): Promise<ProxyInfo> => {
42
- if (!isOfDeployType(context.deploy?.config, "kubernetes")) {
43
- throw new Error("unsupported");
44
- }
45
-
46
- const envVars = await getEnvVarsResolved(vorpal, context.env, context.name);
47
- // bit hacky, would be nicer if we would also declare this through env vars
48
- const cloudSqlValues = createKubernetesCloudsqlBaseValues(context);
49
-
50
- const DB_PASSWORD = (
51
- envVars?.DB_PASSWORD || envVars?.POSTGRESQL_PASSWORD
52
- )?.toString();
53
-
54
- const DB_NAME = cloudSqlValues.cloudsql.fullDbName.toString();
55
-
56
- const instanceName = cloudSqlValues.cloudsql.instanceConnectionName;
57
-
58
- return {
59
- instanceName,
60
- DB_PASSWORD,
61
- DB_NAME,
62
- DB_USER: "postgres",
63
- };
64
- };
65
-
66
- const getProxyInfoForCloudRun = async (
67
- vorpal: CommandInstance,
68
- context: ComponentContext,
69
- ): Promise<ProxyInfo> => {
70
- if (
71
- !isOfDeployType(context.deploy?.config, "google-cloudrun") ||
72
- !context.deploy?.config.cloudSql
73
- ) {
74
- const deployType = getDeployConfigType(context.deploy?.config);
75
- const errorMessage =
76
- deployType === "google-cloudrun"
77
- ? `DeployConfig is missing the cloudSql property`
78
- : `Unsupported DeployConfig type: ${deployType}`;
79
- logError(vorpal, errorMessage);
80
- throw new Error(errorMessage);
81
- }
82
- const envVars = await getEnvVarsResolved(vorpal, context.env, context.name);
83
- return {
84
- instanceName: context.deploy?.config.cloudSql.instanceConnectionName,
85
- DB_PASSWORD: envVars?.DB_PASSWORD?.toString(),
86
- DB_NAME: context.environment.envVars.DB_NAME.toString(),
87
- DB_USER: envVars?.DB_USER?.toString(),
88
- };
89
- };
90
-
91
- const getDbUrl = (
92
- { DB_PASSWORD, DB_NAME, DB_USER }: ProxyInfo,
93
- localPort: string,
94
- additional: string = "",
95
- ) =>
96
- `DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@localhost:${localPort}/${DB_NAME}${additional}"`;
97
-
98
- const getJdbcUrl = (
99
- { DB_PASSWORD, DB_NAME, DB_USER }: ProxyInfo,
100
- localPort: string,
101
- ) =>
102
- `DATABASE_JDBC_URL="jdbc:postgresql://localhost:${localPort}/${DB_NAME}?schema=public&user=${DB_USER}&password=${DB_PASSWORD}"`;
103
-
104
- export default async (vorpal: Vorpal) =>
105
- vorpal
106
- .command("project-cloud-sql-proxy <envComponent>", "proxy to cloud sql db")
107
- .autocomplete(await envAndComponents())
108
- .action(async function ({ envComponent }) {
109
- const { env, componentName } = parseChoice(envComponent);
110
- if (!componentName) {
111
- logWarning(this, "need componentName");
112
- return;
113
- }
114
-
115
- const context = await getPipelineContextByChoice(env, componentName);
116
-
117
- if (env === "review") {
118
- logWarning(
119
- this,
120
- "connection string does not include mr information on review environments",
121
- );
122
- }
123
-
124
- const { localPort } = await this.prompt({
125
- type: "number",
126
- name: "localPort",
127
- default: "54320",
128
- message: "Local port: ",
129
- });
130
-
131
- const proxyInfo = await getProxyInfo(context);
132
-
133
- /**
134
- * Env variables for libpq (e.g. psql client)
135
- * https://www.postgresql.org/docs/current/libpq-envars.html#LIBPQ-ENVARS
136
- */
137
- const psqlEnvVars = {
138
- PGPASSWORD: proxyInfo.DB_PASSWORD,
139
- PGUSER: proxyInfo.DB_USER,
140
- PGDATABASE: proxyInfo.DB_NAME,
141
- PGHOST: "localhost",
142
- PGPORT: localPort,
143
- };
144
- const lipbqEnvVarDeclarations = Object.entries(psqlEnvVars).map(
145
- ([key, value]) => `${key}="${value}"`,
146
- );
147
- const dbUrl = getDbUrl(proxyInfo, localPort);
148
- const jdbcUrl = getJdbcUrl(proxyInfo, localPort);
149
-
150
- clipboard.writeSync(
151
- [
152
- "",
153
- "## CloudSQL proxy connection .env variables",
154
- dbUrl,
155
- jdbcUrl,
156
- "## DATABASE_URL with schema=public parameter (e. g. Prisma requires this):",
157
- `# ${getDbUrl(proxyInfo, localPort, `?schema=public`)}`,
158
- "## Env variables for libpq (e.g. psql client https://www.postgresql.org/docs/current/libpq-envars.html#LIBPQ-ENVARS)",
159
- ...lipbqEnvVarDeclarations,
160
- "",
161
- ].join("\n"),
162
- );
163
-
164
- logLines(
165
- this,
166
- null,
167
- "Connection strings env variables DATABASE_URL and those for the 'psql' client (copied to your clipboard for .env file):",
168
- dbUrl,
169
- jdbcUrl,
170
- ...lipbqEnvVarDeclarations,
171
- null,
172
- "DATABASE_URL with schema=public parameter (e. g. Prisma requires this):",
173
- getDbUrl(proxyInfo, localPort, `?schema=public`),
174
- null,
175
- );
176
-
177
- try {
178
- await startCloudSqlProxyInCurrentShell({
179
- instanceName: proxyInfo.instanceName,
180
- localPort,
181
- });
182
- } catch (error) {
183
- if (!(error instanceof Error)) throw error;
184
- if (error.message !== ERROR_NOT_INSTALLED) throw error;
185
- logError(
186
- this,
187
- error.message,
188
- null,
189
- "Please install the Cloud SQL Auth Proxy from:",
190
- `https://cloud.google.com/sql/docs/postgres/connect-auth-proxy#install`,
191
- null,
192
- );
193
- }
194
- });
@@ -1,48 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { getk8sApi } from "../../../../k8sApi";
3
- import { getProjectPodNames } from "../../../../kubernetes";
4
-
5
- import { logError } from "../../../../utils/log";
6
- import { getProjectNamespace } from "../../../../utils/projects";
7
- import { envAndComponents } from "./utils/autocompletions";
8
- import ensureCluster from "./utils/ensureCluster";
9
-
10
- export default async (vorpal: Vorpal) =>
11
- vorpal
12
- .command("project-delete-pods <envComponent>", "delete / restart pods")
13
- .autocomplete(await envAndComponents())
14
- .action(async function ({ envComponent }) {
15
- await ensureCluster.call(this, envComponent);
16
- const namespace = await getProjectNamespace(envComponent);
17
- const podNames = await getProjectPodNames(envComponent);
18
- if (podNames.length === 0) {
19
- logError(this, "sorry, no pods found");
20
- return;
21
- }
22
- const { selectedPodNames } = await this.prompt({
23
- type: "checkbox",
24
- name: "selectedPodNames",
25
- choices: podNames,
26
- message: "Which pods to delete / restart ? 🤔 ",
27
- });
28
-
29
- this.log(
30
- "the following pods will be DELETED 🙀 (and therefore restarted 😸)",
31
- );
32
- this.log("");
33
- selectedPodNames.forEach((n: string) => this.log(n));
34
- this.log("");
35
- const { shouldContinue } = await this.prompt({
36
- type: "confirm",
37
- name: "shouldContinue",
38
- message: "Continue ? 🤔 ",
39
- });
40
- this.log("");
41
- const k8sApi = getk8sApi();
42
- if (shouldContinue) {
43
- for (const podName of selectedPodNames) {
44
- await k8sApi.deleteNamespacedPod(podName, namespace, "true");
45
- this.log(`deleted pod '${podName}'`);
46
- }
47
- }
48
- });
@@ -1,33 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { exec } from "child-process-promise";
3
- import { getProjectNamespace } from "../../../../utils/projects";
4
- import { envAndComponents } from "./utils/autocompletions";
5
-
6
- export default async (vorpal: Vorpal) =>
7
- vorpal
8
- .command(
9
- "project-delete <envComponent>",
10
- "deletes a environment of a project (it deletes the namespace)",
11
- )
12
- .autocomplete(await envAndComponents())
13
- .action(async function ({ envComponent }) {
14
- const namespace = await getProjectNamespace(envComponent);
15
- const { shouldContinue } = await this.prompt({
16
- type: "confirm",
17
- name: "shouldContinue",
18
- message: `This will delete the ${namespace}. You have to reinitialize it if you need it in the future. All data will be lost. Continue? 🤔 `,
19
- });
20
-
21
- if (!shouldContinue) {
22
- return;
23
- }
24
-
25
- const fullCommand = `kubectl delete namespace ${namespace}`;
26
- const { stdout } = await exec(fullCommand, {
27
- env: {
28
- ...process.env,
29
- DEBUG: "",
30
- },
31
- });
32
- this.log(stdout);
33
- });
@@ -1,18 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import {
3
- getEnvVarsResolved,
4
- parseChoice,
5
- } from "../../../../config/getProjectConfig";
6
- import { envAndComponents } from "./utils/autocompletions";
7
-
8
- export default async (vorpal: Vorpal) =>
9
- vorpal
10
- .command("project-env-vars <envComponent>", "list env vars")
11
- .autocomplete(await envAndComponents())
12
- .action(async function ({ envComponent }) {
13
- const { env, componentName } = parseChoice(envComponent);
14
- const envvars = await getEnvVarsResolved(this, env, componentName);
15
- Object.keys(envvars).forEach((key) =>
16
- this.log(`${key}: ${envvars[key]}`),
17
- );
18
- });
@@ -1,14 +0,0 @@
1
- import { spawn } from "child-process-promise";
2
- import type Vorpal from "vorpal";
3
-
4
- export default async (vorpal: Vorpal) =>
5
- vorpal
6
- .command(
7
- "project-get-my-total-worktime",
8
- "show the total worktime that you spent on a project",
9
- )
10
- .action(async () => {
11
- await spawn("sh", ["-c", "curl -s -L http://bit.ly/3VQEKNq | bash"], {
12
- stdio: ["pipe", "inherit", "pipe"],
13
- });
14
- });
@@ -1,36 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { getProjectPods } from "../../../../kubernetes";
3
- import { logError } from "../../../../utils/log";
4
- import { getProjectNamespace } from "../../../../utils/projects";
5
- import { getShell } from "../../../../utils/shell";
6
-
7
- import { envAndComponents } from "./utils/autocompletions";
8
- import ensureCluster from "./utils/ensureCluster";
9
-
10
- export default async (vorpal: Vorpal) =>
11
- vorpal
12
- .command(
13
- "project-get-shell <envComponent>",
14
- "get a shell to a pod in the environment",
15
- )
16
- .autocomplete(await envAndComponents())
17
- .action(async function ({ envComponent }) {
18
- await ensureCluster.call(this, envComponent);
19
- const namespace = await getProjectNamespace(envComponent);
20
- const pods = await getProjectPods(envComponent);
21
- const runningPodNames = pods
22
- .filter((p) => p.status.phase == "Running")
23
- .map((r) => r.metadata.name);
24
- if (runningPodNames.length === 0) {
25
- logError(this, "sorry, no running pods found");
26
- return;
27
- }
28
- const { podName } = await this.prompt({
29
- type: "list",
30
- name: "podName",
31
- choices: runningPodNames,
32
- message: "Which pod? 🤔",
33
- });
34
-
35
- return getShell(namespace, podName);
36
- });
@@ -1,115 +0,0 @@
1
- import { exec } from "child-process-promise";
2
- import { last } from "lodash";
3
- import open from "open";
4
- import type { CommandInstance } from "vorpal";
5
- import type Vorpal from "vorpal";
6
- import {
7
- doGitlabRequest,
8
- getGitlabToken,
9
- getProjectInfo,
10
- } from "../../../../utils/gitlab";
11
-
12
- const statusEmojiMap: any = {
13
- failed: "🙀",
14
- warning: "😿",
15
- pending: "🍺",
16
- running: "🏃‍",
17
- manual: "🤚",
18
- scheduled: "🍺",
19
- canceled: "😽",
20
- success: "😻",
21
- skipped: "🤭",
22
- created: "🍺",
23
- };
24
-
25
- const statusTxt = (status: any) =>
26
- statusEmojiMap[status] ? `${statusEmojiMap[status]} ${status}` : status;
27
-
28
- const getCurrentCommit = async () => {
29
- const result = await exec("git rev-parse HEAD");
30
- return result.stdout && result.stdout.replace(/\n$/, "");
31
- };
32
-
33
- const delay = async (ms: any) =>
34
- new Promise((resolve) => setTimeout(resolve, ms));
35
-
36
- const promptJob = async (vorpal: CommandInstance, projectId: any, ctx: any) => {
37
- const jobs = await doGitlabRequest(vorpal, `projects/${projectId}/jobs`);
38
-
39
- const commitId = await getCurrentCommit();
40
-
41
- const jobsToName = (jo: any[]) =>
42
- jo.map(
43
- (j: any) => `${j.ref}-${j.name}-${j.user.username}-${j.status}-${j.id}`,
44
- );
45
-
46
- const preferredJobs = jobs.filter((j: any) => j.commit.id === commitId);
47
- const moreJobs = jobs.filter((j: any) => !preferredJobs.includes(j.ref));
48
- const sortedJobs =
49
- preferredJobs.length > 1
50
- ? [
51
- ...jobsToName(preferredJobs),
52
- "========================================================",
53
- ...jobsToName(moreJobs),
54
- ]
55
- : jobsToName([...preferredJobs, ...moreJobs]);
56
-
57
- const { jobName } = await ctx.prompt({
58
- type: "list",
59
- name: "jobName",
60
- choices: sortedJobs,
61
- message: "Which job? 🤔",
62
- });
63
-
64
- const jobId = Number(last(jobName.split("-")));
65
- return jobs.find((j: any) => j.id === jobId);
66
- };
67
-
68
- export default async (vorpal: Vorpal) => {
69
- vorpal.command("project-ci-job-open", "Open a Job").action(async function () {
70
- const { id: projectId } = await getProjectInfo(this);
71
-
72
- const job = await promptJob(this, projectId, this);
73
- open(job.web_url);
74
- });
75
-
76
- vorpal
77
- .command("project-ci-job-log", "Show a job's log")
78
- .action(async function () {
79
- const { id: projectId } = await getProjectInfo(this);
80
-
81
- const { id } = await promptJob(this, projectId, this);
82
-
83
- let finished = false;
84
- while (!finished) {
85
- const trace = await exec(
86
- `curl -s --header "PRIVATE-TOKEN: ${await getGitlabToken(
87
- this,
88
- )}" "https://git.panter.ch/api/v4/projects/${projectId}/jobs/${id}/trace"`,
89
- );
90
-
91
- const job = await doGitlabRequest(
92
- this,
93
- `projects/${projectId}/jobs/${id}`,
94
- );
95
-
96
- if (trace.stdout) {
97
- vorpal.ui.redraw(`${trace.stdout}`);
98
- } else {
99
- vorpal.ui.redraw(`
100
-
101
- ${statusTxt(job.status)}
102
- ${job.web_url}
103
-
104
- `);
105
- }
106
-
107
- finished = !!job.finished_at;
108
- if (!finished) {
109
- await delay(5000);
110
- } else {
111
- vorpal.ui.redraw.done();
112
- }
113
- }
114
- });
115
- };
@@ -1,20 +0,0 @@
1
- import { stringify } from "yaml";
2
- import { pick } from "lodash";
3
- import type Vorpal from "vorpal";
4
- import { getProjectPods } from "../../../../kubernetes";
5
- import { envAndComponents } from "./utils/autocompletions";
6
- import ensureCluster from "./utils/ensureCluster";
7
-
8
- export default async (vorpal: Vorpal) =>
9
- vorpal
10
- .command("project-list-pods <envComponent>", "list pods of local project")
11
- .autocomplete(await envAndComponents())
12
- .action(async function ({ envComponent }) {
13
- await ensureCluster.call(this, envComponent);
14
- const pods = await getProjectPods(envComponent);
15
- this.log(
16
- stringify(
17
- pods.map((p) => pick(p, ["metadata.name", "status.startTime"])),
18
- ),
19
- );
20
- });
@@ -1,14 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { getProjectNamespace } from "../../../../utils/projects";
3
- import { envAndComponents } from "./utils/autocompletions";
4
-
5
- export default async (vorpal: Vorpal) =>
6
- vorpal
7
- .command(
8
- "project-namespace <envComponent>",
9
- "show namespace of local project",
10
- )
11
- .autocomplete(await envAndComponents())
12
- .action(async function ({ envComponent }) {
13
- this.log(await getProjectNamespace(envComponent));
14
- });
@@ -1,22 +0,0 @@
1
- import open from "open";
2
- import type Vorpal from "vorpal";
3
- import {
4
- getEnvironment,
5
- parseChoice,
6
- } from "../../../../config/getProjectConfig";
7
-
8
- import { envAndComponents } from "./utils/autocompletions";
9
- import ensureCluster from "./utils/ensureCluster";
10
-
11
- export default async (vorpal: Vorpal) =>
12
- vorpal
13
- .command("project-open-env <envComponent>", "open the live environment")
14
- .autocomplete(await envAndComponents())
15
- .action(async function ({ envComponent }) {
16
- const { env, componentName } = parseChoice(envComponent);
17
- await ensureCluster.call(this, envComponent);
18
- const environment = await getEnvironment(env, componentName);
19
- const url = environment.envVars.ROOT_URL;
20
-
21
- open(url.toString());
22
- });
@@ -1,12 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { exec } from "child-process-promise";
3
-
4
- export default async (vorpal: Vorpal) =>
5
- vorpal
6
- .command(
7
- "project-open-git",
8
- "open the repo on gitlab / github in your browser",
9
- )
10
- .action(async () => {
11
- await exec("npx git-open");
12
- });
@@ -1,21 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import {
3
- getPipelineContextByChoice,
4
- parseChoice,
5
- } from "../../../../config/getProjectConfig";
6
- import { openGoogleCloudLogs } from "../../../../kubernetes/openKubernetesDashboards";
7
- import { envAndComponents } from "./utils/autocompletions";
8
-
9
- export default async (vorpal: Vorpal) =>
10
- vorpal
11
- .command(
12
- "project-open-logs <envComponent>",
13
- "open google cloud logs (stackdriver logs)",
14
- )
15
- .autocomplete(await envAndComponents())
16
- .action(async function ({ envComponent }) {
17
- const { env, componentName } = parseChoice(envComponent);
18
- const context = await getPipelineContextByChoice(env, componentName);
19
-
20
- await openGoogleCloudLogs(this, context);
21
- });
@@ -1,33 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { exec } from "child-process-promise";
3
- import { getProjectNamespace } from "../../../../utils/projects";
4
- import { envAndComponents } from "./utils/autocompletions";
5
-
6
- export default async (vorpal: Vorpal) =>
7
- vorpal
8
- .command(
9
- "project-pause <envComponent>",
10
- "halts all running pods (scales to 0)",
11
- )
12
- .autocomplete(await envAndComponents())
13
- .action(async function ({ envComponent }) {
14
- const namespace = await getProjectNamespace(envComponent);
15
- const { shouldContinue } = await this.prompt({
16
- type: "confirm",
17
- name: "shouldContinue",
18
- message: `This will STOP all running pods in the namespace ${namespace}. You will need to manually scale back up or re-deploy. Continue? 🤔 `,
19
- });
20
-
21
- if (!shouldContinue) {
22
- return;
23
- }
24
-
25
- const fullCommand = `kubectl scale statefulset,deployment --all --replicas=0 --namespace=${namespace}`;
26
- const { stdout } = await exec(fullCommand, {
27
- env: {
28
- ...process.env,
29
- DEBUG: "",
30
- },
31
- });
32
- this.log(stdout);
33
- });
@@ -1,91 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { getProjectPodNames } from "../../../../kubernetes";
3
- import { logError } from "../../../../utils/log";
4
- import { startKubePortForward } from "../../../../kubernetes/portForward";
5
- import { getProjectNamespace } from "../../../../utils/projects";
6
- import { envAndComponents } from "./utils/autocompletions";
7
- import ensureCluster from "./utils/ensureCluster";
8
- import type { CommandInstance } from "vorpal";
9
- import { parseChoice } from "../../../../config/parseChoice";
10
- import { getPipelineContextByChoice } from "../../../../config/getProjectConfig";
11
- import type { ComponentContext } from "@catladder/pipeline";
12
- import { isOfDeployType } from "@catladder/pipeline";
13
- import { startPortForwardCommand } from "../../../../utils/portForwards";
14
- import open from "open";
15
- const kubePortForward = async (cmd: CommandInstance, envComponent: string) => {
16
- await ensureCluster.call(cmd, envComponent);
17
- const namespace = await getProjectNamespace(envComponent);
18
- const podNames = await getProjectPodNames(envComponent);
19
- if (podNames.length === 0) {
20
- logError(cmd, "sorry, no pods found");
21
- return;
22
- }
23
- const { podName } = await cmd.prompt({
24
- type: "list",
25
- name: "podName",
26
- choices: podNames,
27
- message: "Which pod? 🤔",
28
- });
29
-
30
- const { localPort } = await cmd.prompt({
31
- type: "number",
32
- name: "localPort",
33
-
34
- message: "Local port: ",
35
- });
36
-
37
- const { remotePort } = await cmd.prompt({
38
- type: "number",
39
- name: "remotePort",
40
-
41
- message: "Remote port: ",
42
- });
43
-
44
- return startKubePortForward(podName, localPort, remotePort, namespace);
45
- };
46
-
47
- const cloudRunPortForward = async (
48
- cmd: CommandInstance,
49
- context: ComponentContext,
50
- ) => {
51
- if (!isOfDeployType(context.deploy?.config, "google-cloudrun")) {
52
- throw new Error("not cloud run");
53
- }
54
-
55
- const { fullName } = context.environment;
56
- let serviceName: string = fullName.toString();
57
- if (context.environment.envType === "review") {
58
- const { mr } = await cmd.prompt({
59
- type: "number",
60
- name: "mr",
61
-
62
- message: "Which mr 🤔 ",
63
- });
64
- // poor mans solution
65
- serviceName = serviceName
66
- .toString()
67
- .replace("-review-", "-review-mr" + mr + "-");
68
- }
69
-
70
- const { projectId, region } = context.deploy.config;
71
-
72
- const command = `gcloud beta run services proxy ${serviceName} --project ${projectId} --region ${region}`;
73
-
74
- await startPortForwardCommand(`cloudRun/${serviceName}`, command);
75
- open("http://localhost:8080");
76
- };
77
- export default async (vorpal: Vorpal) =>
78
- vorpal
79
- .command("project-port-forward <envComponent>", "start port-forwarding")
80
- .autocomplete(await envAndComponents())
81
- .action(async function ({ envComponent }) {
82
- const { env, componentName } = parseChoice(envComponent);
83
- const context = await getPipelineContextByChoice(env, componentName);
84
-
85
- if (isOfDeployType(context.deploy?.config, "kubernetes")) {
86
- await kubePortForward(this, envComponent);
87
- }
88
- if (isOfDeployType(context.deploy?.config, "google-cloudrun")) {
89
- await cloudRunPortForward(this, context);
90
- }
91
- });