@catladder/cli 3.47.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) 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 +201 -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/base/createBuildJobDefinition.js +1 -1
  199. package/dist/pipeline/src/build/base/createBuildJobDefinition.js.map +1 -1
  200. package/dist/pipeline/src/build/custom/buildJob.js +1 -1
  201. package/dist/pipeline/src/build/custom/buildJob.js.map +1 -1
  202. package/dist/pipeline/src/build/index.d.ts +2 -2
  203. package/dist/pipeline/src/build/index.js.map +1 -1
  204. package/dist/pipeline/src/build/node/buildJob.d.ts +3 -3
  205. package/dist/pipeline/src/build/node/buildJob.js +13 -12
  206. package/dist/pipeline/src/build/node/buildJob.js.map +1 -1
  207. package/dist/pipeline/src/build/node/cache.d.ts +3 -3
  208. package/dist/pipeline/src/build/node/cache.js +12 -9
  209. package/dist/pipeline/src/build/node/cache.js.map +1 -1
  210. package/dist/pipeline/src/build/node/index.d.ts +3 -3
  211. package/dist/pipeline/src/build/node/index.js +8 -6
  212. package/dist/pipeline/src/build/node/index.js.map +1 -1
  213. package/dist/pipeline/src/build/node/meteor.d.ts +1 -1
  214. package/dist/pipeline/src/build/node/meteor.js +9 -8
  215. package/dist/pipeline/src/build/node/meteor.js.map +1 -1
  216. package/dist/pipeline/src/build/node/testJob.d.ts +1 -1
  217. package/dist/pipeline/src/build/node/testJob.js +5 -5
  218. package/dist/pipeline/src/build/node/testJob.js.map +1 -1
  219. package/dist/pipeline/src/build/node/yarn.d.ts +2 -2
  220. package/dist/pipeline/src/build/node/yarn.js +10 -8
  221. package/dist/pipeline/src/build/node/yarn.js.map +1 -1
  222. package/dist/pipeline/src/build/types.d.ts +3 -3
  223. package/dist/pipeline/src/constants.js +1 -1
  224. package/dist/pipeline/src/context/createComponentContext.js +3 -3
  225. package/dist/pipeline/src/context/createComponentContext.js.map +1 -1
  226. package/dist/pipeline/src/context/createWorkspaceContext.js +1 -1
  227. package/dist/pipeline/src/context/createWorkspaceContext.js.map +1 -1
  228. package/dist/pipeline/src/context/getEnvironmentVariables.d.ts +1 -1
  229. package/dist/pipeline/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js.map +1 -1
  230. package/dist/pipeline/src/deploy/custom/deployJob.d.ts +1 -1
  231. package/dist/pipeline/src/deploy/custom/deployJob.js +2 -2
  232. package/dist/pipeline/src/deploy/custom/deployJob.js.map +1 -1
  233. package/dist/pipeline/src/deploy/index.d.ts +1 -1
  234. package/dist/pipeline/src/deploy/types/index.d.ts +2 -2
  235. package/dist/pipeline/src/pipeline/createAllJobs.js +4 -4
  236. package/dist/pipeline/src/pipeline/createAllJobs.js.map +1 -1
  237. package/dist/pipeline/src/pipeline/createJobsForComponent.d.ts +1 -1
  238. package/dist/pipeline/src/pipeline/createJobsForComponent.js +2 -3
  239. package/dist/pipeline/src/pipeline/createJobsForComponent.js.map +1 -1
  240. package/dist/pipeline/src/pipeline/createJobsForWorkspace.d.ts +1 -1
  241. package/dist/pipeline/src/pipeline/createJobsForWorkspace.js +2 -2
  242. package/dist/pipeline/src/pipeline/createJobsForWorkspace.js.map +1 -1
  243. package/dist/pipeline/src/types/config.d.ts +3 -3
  244. package/dist/pipeline/src/types/context.d.ts +3 -3
  245. package/dist/tsconfig.tsbuildinfo +1 -1
  246. package/package.json +3 -4
  247. package/scripts/bundle +0 -2
  248. package/src/adapters/baseContext.ts +68 -0
  249. package/src/adapters/programmatic.ts +88 -0
  250. package/src/adapters/terminal.ts +202 -0
  251. package/src/apps/catenv/catenv.ts +4 -2
  252. package/src/apps/catenv/printVariables.ts +0 -8
  253. package/src/apps/cli/commands/project/commandConfigSecrets.ts +8 -33
  254. package/src/apps/cli/commands/project/setup/index.ts +2 -2
  255. package/src/apps/cli/commands/project/setup/logSection.ts +2 -2
  256. package/src/apps/cli/commands/project/setup/setupAccessTokens.ts +2 -2
  257. package/src/apps/cli/commands/project/setup/setupAgents.ts +11 -11
  258. package/src/apps/cli/commands/project/setup/setupCloudRun.ts +2 -2
  259. package/src/apps/cli/commands/project/setup/setupContext.ts +2 -5
  260. package/src/apps/cli/commands/project/setup/setupKubernetes.ts +2 -2
  261. package/src/apps/cli/commands/project/setup/setupTopic.ts +2 -2
  262. package/src/apps/cli/commands/project/utils/ensureCluster.ts +19 -12
  263. package/src/apps/cli/utils/getGoogleAuthUserNumber.ts +5 -4
  264. package/src/catenv.ts +24 -18
  265. package/src/cli.ts +213 -2
  266. package/src/commands/cloudSQL/commandRestoreDb.ts +105 -0
  267. package/src/commands/fun/commandDadjoke.ts +18 -0
  268. package/src/commands/fun/commandStarwars.ts +14 -0
  269. package/src/commands/general/commandKubeCurrentContext.ts +12 -0
  270. package/src/commands/general/commandKubeGetShell.ts +32 -0
  271. package/src/commands/general/commandKubeListNamespaces.ts +15 -0
  272. package/src/commands/general/commandKubeListPods.ts +21 -0
  273. package/src/commands/general/commandKubeListSecrets.ts +21 -0
  274. package/src/commands/general/commandKubePortForward.ts +35 -0
  275. package/src/commands/general/commandKubeStopPortforward.ts +15 -0
  276. package/src/commands/index.ts +51 -0
  277. package/src/commands/mongodb/commandMongoDestroyMember.ts +133 -0
  278. package/src/commands/mongodb/commandMongoGetShell.ts +36 -0
  279. package/src/commands/mongodb/commandMongoPortForward.ts +56 -0
  280. package/src/commands/project/commandCloudSqlProxy.ts +189 -0
  281. package/src/commands/project/commandConfigSecrets.ts +31 -0
  282. package/src/commands/project/commandDeletePods.ts +53 -0
  283. package/src/commands/project/commandDeleteProject.ts +33 -0
  284. package/src/commands/project/commandEnvVars.ts +24 -0
  285. package/src/commands/project/commandGetMyTotalWorktime.ts +14 -0
  286. package/src/commands/project/commandGetShell.ts +39 -0
  287. package/src/commands/project/commandGitlabCi.ts +122 -0
  288. package/src/commands/project/commandListPods.ts +30 -0
  289. package/src/commands/project/commandNamespace.ts +21 -0
  290. package/src/commands/project/commandOpenEnv.ts +27 -0
  291. package/src/commands/project/commandOpenGit.ts +12 -0
  292. package/src/commands/project/commandOpenLogs.ts +27 -0
  293. package/src/commands/project/commandPauseProject.ts +33 -0
  294. package/src/commands/project/commandPortForward.ts +74 -0
  295. package/src/commands/project/commandProjectRestoreDb.ts +201 -0
  296. package/src/commands/project/commandRenewToken.ts +12 -0
  297. package/src/commands/project/commandSecretsClearBackups.ts +19 -0
  298. package/src/commands/project/commandSecurityEvaluate.ts +22 -0
  299. package/src/commands/project/commandSetup.ts +21 -0
  300. package/src/commands/project/commandTriggerCronjob.ts +99 -0
  301. package/src/commands/security/commandSecurityAuditCiJob.ts +91 -0
  302. package/src/commands/security/commandSecurityAuditCreate.ts +58 -0
  303. package/src/commands/security/commandSecurityAuditEvaluate.ts +30 -0
  304. package/src/completion.ts +272 -0
  305. package/src/config/getProjectConfig.ts +9 -9
  306. package/src/core/defineCommand.ts +32 -0
  307. package/src/core/index.ts +23 -0
  308. package/src/core/registry.ts +22 -0
  309. package/src/core/runner.ts +31 -0
  310. package/src/core/types.ts +142 -0
  311. package/src/gcloud/cloudRun/openCloudRunDashboards.ts +2 -2
  312. package/src/gcloud/openDashboard.ts +3 -3
  313. package/src/gcloud/serviceAccounts.ts +2 -2
  314. package/src/kubernetes/openKubernetesDashboards.ts +3 -3
  315. package/src/utils/gitlab.ts +46 -58
  316. package/src/utils/log.ts +2 -2
  317. package/bin/catci +0 -3
  318. package/bin/catci-dev +0 -3
  319. package/dist/bundles/catci/index.js +0 -41
  320. package/dist/cli/src/apps/catci/catci.d.ts +0 -1
  321. package/dist/cli/src/apps/catci/catci.js +0 -33
  322. package/dist/cli/src/apps/catci/catci.js.map +0 -1
  323. package/dist/cli/src/apps/catci/commands/security/auditDocument.js.map +0 -1
  324. package/dist/cli/src/apps/catci/commands/security/commands.d.ts +0 -2
  325. package/dist/cli/src/apps/catci/commands/security/commands.js +0 -118
  326. package/dist/cli/src/apps/catci/commands/security/commands.js.map +0 -1
  327. package/dist/cli/src/apps/catci/commands/security/createSecurityAuditMergeRequest.js.map +0 -1
  328. package/dist/cli/src/apps/catci/commands/security/evaluateSecurityAudit.js.map +0 -1
  329. package/dist/cli/src/apps/cli/cli.d.ts +0 -2
  330. package/dist/cli/src/apps/cli/cli.js +0 -38
  331. package/dist/cli/src/apps/cli/cli.js.map +0 -1
  332. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.d.ts +0 -3
  333. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.js +0 -130
  334. package/dist/cli/src/apps/cli/commands/cloudSQL/commandRestoreDb.js.map +0 -1
  335. package/dist/cli/src/apps/cli/commands/cloudSQL/index.d.ts +0 -3
  336. package/dist/cli/src/apps/cli/commands/cloudSQL/index.js +0 -14
  337. package/dist/cli/src/apps/cli/commands/cloudSQL/index.js.map +0 -1
  338. package/dist/cli/src/apps/cli/commands/general/index.d.ts +0 -4
  339. package/dist/cli/src/apps/cli/commands/general/index.js +0 -83
  340. package/dist/cli/src/apps/cli/commands/general/index.js.map +0 -1
  341. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.d.ts +0 -3
  342. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.js +0 -13
  343. package/dist/cli/src/apps/cli/commands/general/namespaceAutoCompletion.js.map +0 -1
  344. package/dist/cli/src/apps/cli/commands/general/portForward.d.ts +0 -3
  345. package/dist/cli/src/apps/cli/commands/general/portForward.js +0 -47
  346. package/dist/cli/src/apps/cli/commands/general/portForward.js.map +0 -1
  347. package/dist/cli/src/apps/cli/commands/mongodb/index.d.ts +0 -3
  348. package/dist/cli/src/apps/cli/commands/mongodb/index.js +0 -18
  349. package/dist/cli/src/apps/cli/commands/mongodb/index.js.map +0 -1
  350. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.d.ts +0 -3
  351. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.js +0 -96
  352. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoDestroyMember.js.map +0 -1
  353. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.d.ts +0 -3
  354. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.js +0 -38
  355. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoGetShell.js.map +0 -1
  356. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.d.ts +0 -3
  357. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.js +0 -64
  358. package/dist/cli/src/apps/cli/commands/mongodb/projectMongoPortForward.js.map +0 -1
  359. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.d.ts +0 -3
  360. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js +0 -152
  361. package/dist/cli/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.js.map +0 -1
  362. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.d.ts +0 -3
  363. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.js +0 -120
  364. package/dist/cli/src/apps/cli/commands/project/commandCloudSqlProxy.js.map +0 -1
  365. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.d.ts +0 -3
  366. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.js +0 -54
  367. package/dist/cli/src/apps/cli/commands/project/commandDeletePods.js.map +0 -1
  368. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.d.ts +0 -3
  369. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.js +0 -33
  370. package/dist/cli/src/apps/cli/commands/project/commandDeleteProject.js.map +0 -1
  371. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.d.ts +0 -3
  372. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.js +0 -17
  373. package/dist/cli/src/apps/cli/commands/project/commandEnvVars.js.map +0 -1
  374. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.d.ts +0 -3
  375. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.js +0 -11
  376. package/dist/cli/src/apps/cli/commands/project/commandGetMyTotalWorktime.js.map +0 -1
  377. package/dist/cli/src/apps/cli/commands/project/commandGetShell.d.ts +0 -3
  378. package/dist/cli/src/apps/cli/commands/project/commandGetShell.js +0 -37
  379. package/dist/cli/src/apps/cli/commands/project/commandGetShell.js.map +0 -1
  380. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.d.ts +0 -3
  381. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js +0 -88
  382. package/dist/cli/src/apps/cli/commands/project/commandGitlabCi.js.map +0 -1
  383. package/dist/cli/src/apps/cli/commands/project/commandListPods.d.ts +0 -3
  384. package/dist/cli/src/apps/cli/commands/project/commandListPods.js +0 -22
  385. package/dist/cli/src/apps/cli/commands/project/commandListPods.js.map +0 -1
  386. package/dist/cli/src/apps/cli/commands/project/commandNamespace.d.ts +0 -3
  387. package/dist/cli/src/apps/cli/commands/project/commandNamespace.js +0 -12
  388. package/dist/cli/src/apps/cli/commands/project/commandNamespace.js.map +0 -1
  389. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.d.ts +0 -3
  390. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.js +0 -26
  391. package/dist/cli/src/apps/cli/commands/project/commandOpenEnv.js.map +0 -1
  392. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.d.ts +0 -3
  393. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.js +0 -9
  394. package/dist/cli/src/apps/cli/commands/project/commandOpenGit.js.map +0 -1
  395. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.d.ts +0 -3
  396. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.js +0 -18
  397. package/dist/cli/src/apps/cli/commands/project/commandOpenLogs.js.map +0 -1
  398. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.d.ts +0 -3
  399. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.js +0 -33
  400. package/dist/cli/src/apps/cli/commands/project/commandPauseProject.js.map +0 -1
  401. package/dist/cli/src/apps/cli/commands/project/commandPortForward.d.ts +0 -3
  402. package/dist/cli/src/apps/cli/commands/project/commandPortForward.js +0 -97
  403. package/dist/cli/src/apps/cli/commands/project/commandPortForward.js.map +0 -1
  404. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.d.ts +0 -3
  405. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.js +0 -9
  406. package/dist/cli/src/apps/cli/commands/project/commandRenewToken.js.map +0 -1
  407. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.d.ts +0 -5
  408. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.js +0 -25
  409. package/dist/cli/src/apps/cli/commands/project/commandSecretsClearBackups.js.map +0 -1
  410. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.d.ts +0 -3
  411. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.js +0 -20
  412. package/dist/cli/src/apps/cli/commands/project/commandSecurityEvaluate.js.map +0 -1
  413. package/dist/cli/src/apps/cli/commands/project/commandSetup.d.ts +0 -3
  414. package/dist/cli/src/apps/cli/commands/project/commandSetup.js +0 -12
  415. package/dist/cli/src/apps/cli/commands/project/commandSetup.js.map +0 -1
  416. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.d.ts +0 -3
  417. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.js +0 -63
  418. package/dist/cli/src/apps/cli/commands/project/commandTriggerCronjob.js.map +0 -1
  419. package/dist/cli/src/apps/cli/commands/project/index.d.ts +0 -3
  420. package/dist/cli/src/apps/cli/commands/project/index.js +0 -54
  421. package/dist/cli/src/apps/cli/commands/project/index.js.map +0 -1
  422. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.d.ts +0 -2
  423. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.js +0 -16
  424. package/dist/cli/src/apps/cli/commands/project/utils/showProjectBanner.js.map +0 -1
  425. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.d.ts +0 -3
  426. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.js +0 -37
  427. package/dist/cli/src/apps/cli/commands/theStuffThatReallyMatters/index.js.map +0 -1
  428. package/dist/cli/src/apps/cli/verify/index.d.ts +0 -2
  429. package/dist/cli/src/apps/cli/verify/index.js +0 -17
  430. package/dist/cli/src/apps/cli/verify/index.js.map +0 -1
  431. package/dist/cli/src/catci.d.ts +0 -1
  432. package/dist/cli/src/catci.js +0 -7
  433. package/dist/cli/src/catci.js.map +0 -1
  434. package/src/apps/catci/catci.ts +0 -26
  435. package/src/apps/catci/commands/security/commands.ts +0 -161
  436. package/src/apps/cli/cli.ts +0 -43
  437. package/src/apps/cli/commands/cloudSQL/commandRestoreDb.ts +0 -136
  438. package/src/apps/cli/commands/cloudSQL/index.ts +0 -7
  439. package/src/apps/cli/commands/general/index.ts +0 -90
  440. package/src/apps/cli/commands/general/namespaceAutoCompletion.ts +0 -7
  441. package/src/apps/cli/commands/general/portForward.ts +0 -48
  442. package/src/apps/cli/commands/mongodb/index.ts +0 -10
  443. package/src/apps/cli/commands/mongodb/projectMongoDestroyMember.ts +0 -132
  444. package/src/apps/cli/commands/mongodb/projectMongoGetShell.ts +0 -42
  445. package/src/apps/cli/commands/mongodb/projectMongoPortForward.ts +0 -64
  446. package/src/apps/cli/commands/project/cloudSql/commandProjectRestoreDb.ts +0 -206
  447. package/src/apps/cli/commands/project/commandCloudSqlProxy.ts +0 -194
  448. package/src/apps/cli/commands/project/commandDeletePods.ts +0 -48
  449. package/src/apps/cli/commands/project/commandDeleteProject.ts +0 -33
  450. package/src/apps/cli/commands/project/commandEnvVars.ts +0 -18
  451. package/src/apps/cli/commands/project/commandGetMyTotalWorktime.ts +0 -14
  452. package/src/apps/cli/commands/project/commandGetShell.ts +0 -36
  453. package/src/apps/cli/commands/project/commandGitlabCi.ts +0 -115
  454. package/src/apps/cli/commands/project/commandListPods.ts +0 -20
  455. package/src/apps/cli/commands/project/commandNamespace.ts +0 -14
  456. package/src/apps/cli/commands/project/commandOpenEnv.ts +0 -22
  457. package/src/apps/cli/commands/project/commandOpenGit.ts +0 -12
  458. package/src/apps/cli/commands/project/commandOpenLogs.ts +0 -21
  459. package/src/apps/cli/commands/project/commandPauseProject.ts +0 -33
  460. package/src/apps/cli/commands/project/commandPortForward.ts +0 -91
  461. package/src/apps/cli/commands/project/commandRenewToken.ts +0 -12
  462. package/src/apps/cli/commands/project/commandSecretsClearBackups.ts +0 -26
  463. package/src/apps/cli/commands/project/commandSecurityEvaluate.ts +0 -26
  464. package/src/apps/cli/commands/project/commandSetup.ts +0 -14
  465. package/src/apps/cli/commands/project/commandTriggerCronjob.ts +0 -62
  466. package/src/apps/cli/commands/project/index.ts +0 -56
  467. package/src/apps/cli/commands/project/utils/showProjectBanner.ts +0 -11
  468. package/src/apps/cli/commands/theStuffThatReallyMatters/index.ts +0 -32
  469. package/src/apps/cli/verify/index.ts +0 -14
  470. package/src/catci.ts +0 -3
  471. /package/dist/cli/src/{apps/catci/commands/security → security}/auditDocument.d.ts +0 -0
  472. /package/dist/cli/src/{apps/catci/commands/security → security}/auditDocument.js +0 -0
  473. /package/dist/cli/src/{apps/catci/commands/security → security}/createSecurityAuditMergeRequest.d.ts +0 -0
  474. /package/dist/cli/src/{apps/catci/commands/security → security}/createSecurityAuditMergeRequest.js +0 -0
  475. /package/dist/cli/src/{apps/catci/commands/security → security}/evaluateSecurityAudit.d.ts +0 -0
  476. /package/dist/cli/src/{apps/catci/commands/security → security}/evaluateSecurityAudit.js +0 -0
  477. /package/dist/cli/src/{apps/catci/commands/security → security}/topics.json +0 -0
  478. /package/src/{apps/catci/commands/security → security}/auditDocument.ts +0 -0
  479. /package/src/{apps/catci/commands/security → security}/createSecurityAuditMergeRequest.ts +0 -0
  480. /package/src/{apps/catci/commands/security → security}/evaluateSecurityAudit.ts +0 -0
  481. /package/src/{apps/catci/commands/security → security}/topics.json +0 -0
@@ -1,90 +0,0 @@
1
- import memoizee from "memoizee";
2
- import type Vorpal from "vorpal";
3
- import { getk8sApi } from "../../../../k8sApi";
4
- import { getCurrentContext } from "../../../../utils/cluster";
5
- import { logError } from "../../../../utils/log";
6
- import {
7
- getAllRunningPortForwards,
8
- stopPortForward,
9
- } from "../../../../utils/portForwards";
10
- import { getShell } from "../../../../utils/shell";
11
- import { namespaceAutoCompletion } from "./namespaceAutoCompletion";
12
- import portForward from "./portForward";
13
-
14
- const getAllNamespaces = memoizee(
15
- async () => {
16
- const k8sApi = getk8sApi();
17
- const res = await k8sApi.listNamespace();
18
- return res.body.items;
19
- },
20
- { maxAge: 30000, promise: true },
21
- );
22
-
23
- export const getAllNamespacesNames = async () => {
24
- const namespaces = await getAllNamespaces();
25
- return namespaces.map((n) => n.metadata.name);
26
- };
27
- export default async (vorpal: Vorpal) => {
28
- vorpal.command("kube-current-context").action(async function () {
29
- this.log(await getCurrentContext());
30
- });
31
-
32
- vorpal
33
- .command("kube-list-namespaces", "list all namespaces")
34
- .action(async function () {
35
- const namespaces = await getAllNamespacesNames();
36
- this.log(namespaces.join("\n"));
37
- });
38
-
39
- vorpal
40
- .command("kube-list-secrets <namespace>", "show secrets")
41
- .autocomplete(namespaceAutoCompletion)
42
- .action(async function ({ namespace }) {
43
- const k8sApi = getk8sApi();
44
- const res = await k8sApi.listNamespacedSecret(namespace);
45
-
46
- this.log(res.body.items.map((n) => n.metadata.name).join("\n"));
47
- });
48
-
49
- vorpal
50
- .command("kube-list-pods <namespace>", "list all pods of namespace")
51
- .autocomplete(namespaceAutoCompletion)
52
- .action(async function ({ namespace }) {
53
- const k8sApi = getk8sApi();
54
- const res = await k8sApi.listNamespacedPod(namespace);
55
- this.log(res.body.items.map((n) => n.metadata.name).join("\n"));
56
- });
57
-
58
- vorpal
59
- .command("kube-stop-portforward <name>", "stop a running port forward")
60
- .autocomplete({ data: async () => getAllRunningPortForwards() })
61
- .action(async function ({ name }) {
62
- stopPortForward(name.trim());
63
- });
64
-
65
- vorpal
66
- .command(
67
- "kube-get-shell <namespace>",
68
- "get a shell to a pod in the environment",
69
- )
70
- .autocomplete(namespaceAutoCompletion)
71
- .action(async function ({ namespace }) {
72
- const k8sApi = getk8sApi();
73
- const res = await k8sApi.listNamespacedPod(namespace);
74
- if (res.body.items.length === 0) {
75
- logError(this, "sorry, no pods found");
76
- return;
77
- }
78
- const podNames = res.body.items.map((i) => i.metadata.name);
79
- const { podName } = await this.prompt({
80
- type: "list",
81
- name: "podName",
82
- choices: podNames,
83
- message: "Which pod? šŸ¤”",
84
- });
85
-
86
- await getShell(namespace, podName);
87
- });
88
-
89
- portForward(vorpal);
90
- };
@@ -1,7 +0,0 @@
1
- import { getAllNamespacesNames } from "./index";
2
- export const namespaceAutoCompletion = {
3
- async data() {
4
- const namespaces = await getAllNamespacesNames();
5
- return namespaces;
6
- },
7
- };
@@ -1,48 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { logError } from "../../../../utils/log";
3
-
4
- import { startKubePortForward } from "../../../../kubernetes/portForward";
5
-
6
- import { getk8sApi } from "../../../../k8sApi";
7
- import { namespaceAutoCompletion } from "./namespaceAutoCompletion";
8
-
9
- export default async (vorpal: Vorpal) =>
10
- vorpal
11
- .command("kube-port-forward <namespace>", "start port-forwarding")
12
- .autocomplete(namespaceAutoCompletion)
13
- .action(async function ({ namespace }) {
14
- const k8sApi = getk8sApi();
15
- const res = await k8sApi.listNamespacedPod(namespace);
16
- if (res.body.items.length === 0) {
17
- logError(this, "sorry, no pods found");
18
- return;
19
- }
20
- const podNames = res.body.items.map((i) => i.metadata.name);
21
-
22
- if (podNames.length === 0) {
23
- logError(this, "sorry, no pods found");
24
- return;
25
- }
26
- const { podName } = await this.prompt({
27
- type: "list",
28
- name: "podName",
29
- choices: podNames,
30
- message: "Which pod? šŸ¤”",
31
- });
32
-
33
- const { localPort } = await this.prompt({
34
- type: "number",
35
- name: "localPort",
36
-
37
- message: "Local port: ",
38
- });
39
-
40
- const { remotePort } = await this.prompt({
41
- type: "number",
42
- name: "remotePort",
43
-
44
- message: "Remote port: ",
45
- });
46
-
47
- return startKubePortForward(podName, localPort, remotePort, namespace);
48
- });
@@ -1,10 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import projectMongoDestroyMember from "./projectMongoDestroyMember";
3
- import projectMongoGetShell from "./projectMongoGetShell";
4
- import projectMongoPortForward from "./projectMongoPortForward";
5
-
6
- export default async (vorpal: Vorpal) => {
7
- projectMongoGetShell(vorpal);
8
- projectMongoPortForward(vorpal);
9
- projectMongoDestroyMember(vorpal);
10
- };
@@ -1,132 +0,0 @@
1
- import { exec } from "child-process-promise";
2
- import type Vorpal from "vorpal";
3
- import { getProjectPvcs } from "../../../../kubernetes";
4
- import { logError } from "../../../../utils/log";
5
- import { getProjectNamespace } from "../../../../utils/projects";
6
- import { envAndComponents } from "../project/utils/autocompletions";
7
- import ensureCluster from "../project/utils/ensureCluster";
8
- import { getMongoDbPodsWithReplInfo } from "./utils";
9
-
10
- const removeFinalizer = async (
11
- namespace: string,
12
- type: "pod" | "pv" | "pvc",
13
- name: string,
14
- ) =>
15
- exec(
16
- `kubectl patch --namespace ${namespace} ${type} ${name} -p '{"metadata":{"finalizers":null}}'`,
17
- );
18
-
19
- const deleteResource = async (
20
- namespace: string,
21
- type: "pod" | "pv" | "pvc",
22
- name: string,
23
- ) => exec(`kubectl delete --namespace ${namespace} ${type} ${name}`);
24
-
25
- const removeFinalizerAndDelete = async (
26
- namespace: string,
27
- type: "pod" | "pv" | "pvc",
28
- name: string,
29
- ) => {
30
- return Promise.all([
31
- removeFinalizer(namespace, type, name),
32
- await deleteResource(namespace, type, name),
33
- ]);
34
- };
35
- export default async (vorpal: Vorpal) =>
36
- vorpal
37
- .command(
38
- "project-mongo-destroy-member <envComponent>",
39
- "DESTROY a member of a replicaset in order to reinitialize it",
40
- )
41
- .autocomplete(await envAndComponents())
42
- .action(async function ({ envComponent }) {
43
- await ensureCluster.call(this, envComponent);
44
- this.log(
45
- "this command tries to delete a (secondary) member of the replicaset, it's persistent volume claim (pvc) and the volume",
46
- );
47
- this.log("");
48
- this.log(
49
- "this is useful, if you update the stateful set with new volume configuration (different size or storage class)",
50
- );
51
- this.log("");
52
- this.log(
53
- "Kubernetes will usually recreate the missing member with the updated config and mongodb will start synchronizing the new member.",
54
- );
55
- this.log("");
56
- this.log(
57
- "This works without downtime, but should be done when load on the db is low. Also it has not been tested with large dbs (> 10gi)",
58
- );
59
- this.log("");
60
- this.log(
61
- "Deleting the volume and claim often stuck, just wait or cancel and restart.",
62
- );
63
- this.log("");
64
- const { understood } = await this.prompt({
65
- default: true,
66
- message: "DO YOU UNDERSTAND?",
67
- name: "understood",
68
- type: "confirm",
69
- });
70
-
71
- if (!understood) {
72
- throw new Error("abort");
73
- }
74
-
75
- const namespace = await getProjectNamespace(envComponent);
76
- const mongodbPods = await getMongoDbPodsWithReplInfo(envComponent);
77
-
78
- const pvcs = await getProjectPvcs(envComponent);
79
- const secondaries = mongodbPods.filter((pod) => !pod.isMaster);
80
-
81
- if (secondaries.length === 0) {
82
- logError(this, "sorry, no pods found");
83
- return;
84
- }
85
-
86
- const podName = (
87
- await this.prompt({
88
- type: "list",
89
- name: "podName",
90
- choices: secondaries.map((p) => ({
91
- name: `[ secondary ] ${p.podName}`,
92
- value: p.podName,
93
- })),
94
- message: "Which pod? šŸ¤”",
95
- })
96
- ).podName;
97
-
98
- const thePvc = pvcs.find(
99
- (pvc) => pvc.metadata.name === `datadir-${podName}`,
100
- );
101
- if (!thePvc) {
102
- logError(this, `sorry, no pvc found for ${podName}`);
103
- return;
104
- }
105
- const { shouldContinue } = await this.prompt({
106
- default: true,
107
- message:
108
- "THIS WILL DESTROY THE POD, ITS VOLUME AND ALL ITS DATA šŸ™€šŸ™€šŸ™€!!! continue? šŸ¤”",
109
- name: "shouldContinue",
110
- type: "confirm",
111
- });
112
-
113
- if (!shouldContinue) {
114
- throw new Error("abort");
115
- }
116
-
117
- // force delete, see https://github.com/kubernetes/kubernetes/issues/77258#issuecomment-502209800
118
- this.log("destroying volume...");
119
- try {
120
- await removeFinalizerAndDelete(namespace, "pv", thePvc.spec.volumeName);
121
- } catch (e) {
122
- this.log(e.message);
123
- }
124
- this.log("destroying volume claim...");
125
- try {
126
- await removeFinalizerAndDelete(namespace, "pvc", thePvc.metadata.name);
127
- } catch (e) {
128
- this.log(e.message);
129
- }
130
- this.log("destroying pod...");
131
- await removeFinalizerAndDelete(namespace, "pod", podName);
132
- });
@@ -1,42 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import { logError } from "../../../../utils/log";
3
- import { getProjectNamespace } from "../../../../utils/projects";
4
- import { envAndComponents } from "../project/utils/autocompletions";
5
- import ensureCluster from "../project/utils/ensureCluster";
6
- import {
7
- getMongodbShell,
8
- getProjectMongodbAllPodsSortedWithLabel,
9
- } from "./utils";
10
-
11
- export default async (vorpal: Vorpal) =>
12
- vorpal
13
- .command(
14
- "project-mongo-get-shell <envComponent>",
15
- "get a shell to a mongodb in the environment",
16
- )
17
- .autocomplete(await envAndComponents())
18
- .action(async function ({ envComponent }) {
19
- await ensureCluster.call(this, envComponent);
20
- const namespace = await getProjectNamespace(envComponent);
21
- const podNames =
22
- await getProjectMongodbAllPodsSortedWithLabel(envComponent);
23
- if (podNames.length === 0) {
24
- logError(this, "sorry, no pods found");
25
- return;
26
- }
27
- let podName;
28
- if (podNames.length === 1) {
29
- podName = podNames[0];
30
- } else {
31
- podName = (
32
- await this.prompt({
33
- type: "list",
34
- name: "podName",
35
- choices: podNames,
36
- message: "Which pod? šŸ¤”",
37
- })
38
- ).podName;
39
- }
40
-
41
- return getMongodbShell(namespace, podName);
42
- });
@@ -1,64 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import {
3
- getEnvVarsResolved,
4
- parseChoice,
5
- } from "../../../../config/getProjectConfig";
6
- import { logError } from "../../../../utils/log";
7
- import { startKubePortForward } from "../../../../kubernetes/portForward";
8
- import { getProjectNamespace } from "../../../../utils/projects";
9
- import { envAndComponents } from "../project/utils/autocompletions";
10
- import ensureCluster from "../project/utils/ensureCluster";
11
- import { getProjectMongodbAllPodsSortedWithLabel } from "./utils";
12
- import clipboard from "clipboardy";
13
-
14
- export default async (vorpal: Vorpal) =>
15
- vorpal
16
- .command(
17
- "project-mongo-port-forward <envComponent>",
18
- "port foward to a mongodb",
19
- )
20
- .autocomplete(await envAndComponents())
21
- .action(async function ({ envComponent }) {
22
- await ensureCluster.call(this, envComponent);
23
- const namespace = await getProjectNamespace(envComponent);
24
- const podNames =
25
- await getProjectMongodbAllPodsSortedWithLabel(envComponent);
26
- if (podNames.length === 0) {
27
- logError(this, "sorry, no pods found");
28
- return;
29
- }
30
- let podName;
31
- if (podNames.length === 1) {
32
- podName = podNames[0].value;
33
- } else {
34
- podName = (
35
- await this.prompt({
36
- type: "list",
37
- name: "podName",
38
- choices: podNames,
39
- message: "Which pod? šŸ¤”",
40
- })
41
- ).podName;
42
- }
43
-
44
- const { localPort } = await this.prompt({
45
- type: "number",
46
- name: "localPort",
47
- default: "30000",
48
- message: "Local port: ",
49
- });
50
- const { env, componentName } = parseChoice(envComponent);
51
- const envVars = await getEnvVarsResolved(this, env, componentName);
52
- const MONGODB_ROOT_PASSWORD = envVars?.MONGODB_ROOT_PASSWORD;
53
- const connectionUrl = `mongodb://root:${MONGODB_ROOT_PASSWORD}@localhost:${localPort}`;
54
- clipboard.writeSync(connectionUrl);
55
- this.log("");
56
- this.log("username: root");
57
- this.log(`password: ${MONGODB_ROOT_PASSWORD}`);
58
- this.log(`connection string: ${connectionUrl}`);
59
- this.log("");
60
- this.log("šŸ‘† connection string has been copied to your clipboard!");
61
- this.log("");
62
-
63
- return startKubePortForward(podName, localPort, 27017, namespace);
64
- });
@@ -1,206 +0,0 @@
1
- import type Vorpal from "vorpal";
2
- import {
3
- getAllPipelineContexts,
4
- getEnvVarsResolved,
5
- getPipelineContextByChoice,
6
- } from "../../../../../config/getProjectConfig";
7
- import type { CloudSqlBackgroundProxy } from "../../../../../gcloud/cloudSql/startProxy";
8
- import { startCloudSqlProxyInBackground } from "../../../../../gcloud/cloudSql/startProxy";
9
-
10
- import { parseConnectionString } from "../../../../../gcloud/cloudSql/parseConnectionString";
11
- import { spawnCopyDb } from "../../../../../gcloud/cloudSql/copyDb";
12
- import type { ComponentContext } from "@catladder/pipeline";
13
- import { isOfDeployType } from "@catladder/pipeline";
14
-
15
- const hasCloudSql = (context: ComponentContext) => {
16
- const deployConfig = context.deploy?.config;
17
- if (isOfDeployType(deployConfig, "google-cloudrun")) {
18
- return !!deployConfig.cloudSql;
19
- }
20
- if (isOfDeployType(deployConfig, "kubernetes")) {
21
- return !!deployConfig.values?.cloudsql?.enabled;
22
- }
23
- return false;
24
- };
25
-
26
- export default async (vorpal: Vorpal) =>
27
- vorpal
28
- .command(
29
- "project-cloud-sql-restore-db",
30
- "restores a project db from one source to another target",
31
- )
32
- .action(async function restoreDb() {
33
- const allContexts = await getAllPipelineContexts(undefined, {
34
- includeLocal: true,
35
- });
36
- const filteredContexts = allContexts.filter(hasCloudSql);
37
- const sortByEnv = (a: string, b: string) => {
38
- const aLocal = a.startsWith("local:");
39
- const bLocal = b.startsWith("local:");
40
- if (aLocal !== bLocal) return aLocal ? 1 : -1;
41
- return a.localeCompare(b);
42
- };
43
- const envs = filteredContexts
44
- .map((c) => `${c.env}:${c.name}`)
45
- .sort(sortByEnv);
46
- const targetEnvChoices = filteredContexts
47
- .map((c) => {
48
- const value = `${c.env}:${c.name}`;
49
- const isProd = c.environment.envType === "prod";
50
- return {
51
- name: isProd ? `āš ļø ${value}` : value,
52
- value,
53
- };
54
- })
55
- .sort((a, b) => sortByEnv(a.value, b.value));
56
-
57
- const { sourceEnvAndComponent } = await this.prompt({
58
- type: "list",
59
- name: "sourceEnvAndComponent",
60
- choices: envs,
61
-
62
- message: "Source instance (connection string or 'local')? šŸ¤” ",
63
- });
64
-
65
- const [sourceEnv, sourceComponent] = sourceEnvAndComponent.split(":");
66
-
67
- const sourceContext = await getPipelineContextByChoice(
68
- sourceEnv,
69
- sourceComponent,
70
- );
71
-
72
- const sourceEnvVars = await getEnvVarsResolved(
73
- this,
74
- sourceContext.env,
75
- sourceContext.name,
76
- );
77
-
78
- let sourceProxy: CloudSqlBackgroundProxy;
79
- let sourceDbName: string;
80
-
81
- let sourceUsername: string;
82
- let sourcePassword: string;
83
-
84
- let targetUsername: string;
85
- let targetPassword: string;
86
- let targetProxy: CloudSqlBackgroundProxy;
87
-
88
- let sourcePort: number;
89
- let targetPort: number;
90
- let targetDbName: string;
91
-
92
- const closeAll = () => {
93
- sourceProxy?.stop();
94
- targetProxy?.stop();
95
- };
96
-
97
- if (sourceEnv === "local") {
98
- const parsersResult = parseConnectionString(
99
- sourceEnvVars.DATABASE_URL.toString(),
100
- );
101
- sourcePort = parsersResult.hosts?.[0]?.port;
102
- sourceUsername = parsersResult.username;
103
- sourcePassword = parsersResult.password;
104
- sourceDbName = parsersResult.endpoint;
105
- } else {
106
- sourcePort = 54399;
107
- sourceProxy = await startCloudSqlProxyInBackground({
108
- instanceName:
109
- sourceEnvVars.CLOUD_SQL_INSTANCE_CONNECTION_NAME.toString(),
110
- localPort: sourcePort,
111
- });
112
-
113
- sourceUsername = sourceEnvVars.DB_USER.toString();
114
- sourcePassword = sourceEnvVars.DB_PASSWORD.toString();
115
- sourceDbName = sourceEnvVars.DB_NAME?.toString();
116
- }
117
-
118
- const { targetEnvAndComponent } = await this.prompt({
119
- type: "list",
120
- name: "targetEnvAndComponent",
121
- choices: targetEnvChoices,
122
-
123
- message: "target env? šŸ¤” ",
124
- });
125
-
126
- const [targetEnv, targetComponent] = targetEnvAndComponent.split(":");
127
-
128
- const targetContext = await getPipelineContextByChoice(
129
- targetEnv,
130
- targetComponent,
131
- );
132
-
133
- const targetEnvVars = await getEnvVarsResolved(
134
- this,
135
- targetContext.env,
136
- targetContext.name,
137
- );
138
-
139
- if (targetEnv === "local") {
140
- const parsersResult = parseConnectionString(
141
- targetEnvVars.DATABASE_URL.toString(),
142
- );
143
-
144
- targetPort = parsersResult.hosts?.[0]?.port;
145
- targetUsername = parsersResult.username;
146
- targetPassword = parsersResult.password;
147
- targetDbName = parsersResult.endpoint;
148
- } else {
149
- targetPort = 54499;
150
- targetProxy = await startCloudSqlProxyInBackground({
151
- instanceName:
152
- targetEnvVars.CLOUD_SQL_INSTANCE_CONNECTION_NAME.toString(),
153
- localPort: targetPort,
154
- });
155
-
156
- targetUsername = targetEnvVars.DB_USER.toString();
157
- targetPassword = targetEnvVars.DB_PASSWORD.toString();
158
- targetDbName = targetEnvVars.DB_NAME.toString();
159
- }
160
-
161
- const { shouldContinue } = await this.prompt({
162
- type: "confirm",
163
- name: "shouldContinue",
164
- message: `This will drop ${targetEnv}/${targetDbName} and replace it with ${sourceEnv}/${sourceDbName}. Continue? šŸ¤” `,
165
- });
166
-
167
- if (!shouldContinue) {
168
- this.log("abort");
169
- closeAll();
170
- return;
171
- }
172
-
173
- if (targetContext.environment.envType === "prod") {
174
- this.log(
175
- `\n🚨 You are overriding a production environment. Please type in ${targetEnvVars.CLOUD_SQL_INSTANCE_CONNECTION_NAME} to continue\n\n`,
176
- );
177
- const { confirmInstance } = await this.prompt({
178
- type: "input",
179
- name: "confirmInstance",
180
- message: "confirm: ",
181
- });
182
-
183
- if (
184
- confirmInstance !== targetEnvVars.CLOUD_SQL_INSTANCE_CONNECTION_NAME
185
- ) {
186
- this.log("abort");
187
- closeAll();
188
- return;
189
- }
190
- }
191
-
192
- try {
193
- await spawnCopyDb({
194
- targetPassword,
195
- targetPort,
196
- targetUsername,
197
- sourceUsername,
198
- sourcePassword,
199
- sourcePort,
200
- sourceDbName,
201
- targetDbName,
202
- });
203
- } finally {
204
- closeAll();
205
- }
206
- });