heroku 11.0.0-alpha.11 → 11.0.0-alpha.12

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 (865) hide show
  1. package/README.md +17 -2
  2. package/lib/commands/access/add.d.ts +5 -5
  3. package/lib/commands/access/add.js +13 -13
  4. package/lib/commands/access/index.d.ts +2 -2
  5. package/lib/commands/access/index.js +7 -8
  6. package/lib/commands/access/remove.d.ts +1 -1
  7. package/lib/commands/access/remove.js +5 -5
  8. package/lib/commands/access/update.d.ts +5 -5
  9. package/lib/commands/access/update.js +9 -9
  10. package/lib/commands/accounts/add.d.ts +1 -1
  11. package/lib/commands/accounts/add.js +3 -2
  12. package/lib/commands/accounts/current.js +4 -5
  13. package/lib/commands/accounts/index.js +2 -1
  14. package/lib/commands/accounts/remove.d.ts +1 -1
  15. package/lib/commands/accounts/remove.js +3 -2
  16. package/lib/commands/accounts/set.d.ts +1 -1
  17. package/lib/commands/accounts/set.js +3 -2
  18. package/lib/commands/addons/attach.d.ts +6 -6
  19. package/lib/commands/addons/attach.js +14 -14
  20. package/lib/commands/addons/create.d.ts +9 -10
  21. package/lib/commands/addons/create.js +31 -29
  22. package/lib/commands/addons/destroy.d.ts +9 -9
  23. package/lib/commands/addons/destroy.js +19 -19
  24. package/lib/commands/addons/detach.d.ts +4 -4
  25. package/lib/commands/addons/detach.js +9 -9
  26. package/lib/commands/addons/docs.d.ts +5 -5
  27. package/lib/commands/addons/docs.js +9 -9
  28. package/lib/commands/addons/index.d.ts +4 -4
  29. package/lib/commands/addons/index.js +28 -26
  30. package/lib/commands/addons/info.d.ts +4 -4
  31. package/lib/commands/addons/info.js +18 -14
  32. package/lib/commands/addons/open.d.ts +26 -27
  33. package/lib/commands/addons/open.js +21 -24
  34. package/lib/commands/addons/rename.d.ts +2 -2
  35. package/lib/commands/addons/rename.js +6 -6
  36. package/lib/commands/addons/services.d.ts +1 -1
  37. package/lib/commands/addons/services.js +5 -4
  38. package/lib/commands/addons/upgrade.d.ts +10 -11
  39. package/lib/commands/addons/upgrade.js +74 -70
  40. package/lib/commands/addons/wait.d.ts +5 -5
  41. package/lib/commands/addons/wait.js +10 -10
  42. package/lib/commands/apps/create.d.ts +12 -12
  43. package/lib/commands/apps/create.js +50 -58
  44. package/lib/commands/apps/destroy.d.ts +6 -6
  45. package/lib/commands/apps/destroy.js +10 -10
  46. package/lib/commands/apps/errors.d.ts +3 -3
  47. package/lib/commands/apps/errors.js +24 -12
  48. package/lib/commands/apps/favorites/add.d.ts +1 -1
  49. package/lib/commands/apps/favorites/add.js +4 -4
  50. package/lib/commands/apps/favorites/index.d.ts +1 -1
  51. package/lib/commands/apps/favorites/index.js +4 -4
  52. package/lib/commands/apps/favorites/remove.d.ts +1 -1
  53. package/lib/commands/apps/favorites/remove.js +3 -3
  54. package/lib/commands/apps/index.d.ts +4 -4
  55. package/lib/commands/apps/index.js +21 -21
  56. package/lib/commands/apps/info.d.ts +8 -8
  57. package/lib/commands/apps/info.js +31 -31
  58. package/lib/commands/apps/join.d.ts +2 -2
  59. package/lib/commands/apps/join.js +3 -3
  60. package/lib/commands/apps/leave.d.ts +1 -1
  61. package/lib/commands/apps/leave.js +3 -3
  62. package/lib/commands/apps/lock.d.ts +2 -2
  63. package/lib/commands/apps/lock.js +5 -5
  64. package/lib/commands/apps/open.d.ts +5 -5
  65. package/lib/commands/apps/open.js +11 -9
  66. package/lib/commands/apps/rename.d.ts +6 -6
  67. package/lib/commands/apps/rename.js +13 -13
  68. package/lib/commands/apps/stacks/index.d.ts +2 -2
  69. package/lib/commands/apps/stacks/index.js +5 -6
  70. package/lib/commands/apps/stacks/set.d.ts +4 -4
  71. package/lib/commands/apps/stacks/set.js +9 -9
  72. package/lib/commands/apps/transfer.d.ts +8 -8
  73. package/lib/commands/apps/transfer.js +33 -32
  74. package/lib/commands/apps/unlock.d.ts +2 -2
  75. package/lib/commands/apps/unlock.js +3 -3
  76. package/lib/commands/auth/2fa/disable.d.ts +1 -1
  77. package/lib/commands/auth/2fa/disable.js +3 -2
  78. package/lib/commands/auth/2fa/index.d.ts +1 -1
  79. package/lib/commands/auth/2fa/index.js +4 -4
  80. package/lib/commands/auth/login.d.ts +3 -3
  81. package/lib/commands/auth/login.js +6 -6
  82. package/lib/commands/auth/logout.js +1 -0
  83. package/lib/commands/auth/token.js +4 -2
  84. package/lib/commands/authorizations/create.js +2 -1
  85. package/lib/commands/authorizations/index.js +3 -4
  86. package/lib/commands/authorizations/revoke.d.ts +2 -2
  87. package/lib/commands/authorizations/revoke.js +6 -6
  88. package/lib/commands/autocomplete/create.d.ts +29 -0
  89. package/lib/commands/autocomplete/create.js +223 -0
  90. package/lib/commands/autocomplete/doctor.d.ts +12 -0
  91. package/lib/commands/autocomplete/doctor.js +111 -0
  92. package/lib/commands/autocomplete/index.d.ts +12 -0
  93. package/lib/commands/autocomplete/index.js +65 -0
  94. package/lib/commands/autocomplete/options.d.ts +25 -0
  95. package/lib/commands/autocomplete/options.js +208 -0
  96. package/lib/commands/autocomplete/script.d.ts +10 -0
  97. package/lib/commands/autocomplete/script.js +20 -0
  98. package/lib/commands/buildpacks/index.js +2 -3
  99. package/lib/commands/buildpacks/remove.d.ts +4 -4
  100. package/lib/commands/buildpacks/remove.js +9 -8
  101. package/lib/commands/certs/add.d.ts +8 -8
  102. package/lib/commands/certs/add.js +27 -29
  103. package/lib/commands/certs/auto/disable.d.ts +2 -2
  104. package/lib/commands/certs/auto/disable.js +4 -4
  105. package/lib/commands/certs/auto/enable.d.ts +2 -2
  106. package/lib/commands/certs/auto/enable.js +8 -9
  107. package/lib/commands/certs/auto/index.d.ts +2 -2
  108. package/lib/commands/certs/auto/index.js +16 -17
  109. package/lib/commands/certs/generate.d.ts +2 -3
  110. package/lib/commands/certs/generate.js +1 -2
  111. package/lib/commands/certs/index.d.ts +1 -1
  112. package/lib/commands/certs/index.js +3 -3
  113. package/lib/commands/certs/info.d.ts +4 -4
  114. package/lib/commands/certs/info.js +6 -6
  115. package/lib/commands/certs/remove.d.ts +3 -3
  116. package/lib/commands/certs/remove.js +5 -5
  117. package/lib/commands/certs/update.d.ts +8 -8
  118. package/lib/commands/certs/update.js +19 -19
  119. package/lib/commands/ci/config/get.d.ts +5 -5
  120. package/lib/commands/ci/config/get.js +8 -8
  121. package/lib/commands/ci/config/index.d.ts +2 -2
  122. package/lib/commands/ci/config/index.js +8 -9
  123. package/lib/commands/ci/config/set.d.ts +2 -2
  124. package/lib/commands/ci/config/set.js +10 -10
  125. package/lib/commands/ci/config/unset.d.ts +3 -3
  126. package/lib/commands/ci/config/unset.js +6 -5
  127. package/lib/commands/ci/index.d.ts +2 -2
  128. package/lib/commands/ci/index.js +5 -4
  129. package/lib/commands/ci/info.js +3 -2
  130. package/lib/commands/ci/last.d.ts +1 -1
  131. package/lib/commands/ci/last.js +4 -3
  132. package/lib/commands/ci/migrate-manifest.d.ts +1 -1
  133. package/lib/commands/ci/migrate-manifest.js +4 -4
  134. package/lib/commands/ci/open.d.ts +2 -2
  135. package/lib/commands/ci/open.js +4 -3
  136. package/lib/commands/ci/rerun.d.ts +4 -4
  137. package/lib/commands/ci/rerun.js +9 -8
  138. package/lib/commands/ci/run.d.ts +1 -1
  139. package/lib/commands/ci/run.js +9 -7
  140. package/lib/commands/clients/create.js +4 -3
  141. package/lib/commands/clients/destroy.d.ts +1 -1
  142. package/lib/commands/clients/destroy.js +4 -4
  143. package/lib/commands/clients/index.js +5 -4
  144. package/lib/commands/clients/info.d.ts +3 -3
  145. package/lib/commands/clients/info.js +5 -5
  146. package/lib/commands/clients/rotate.d.ts +3 -3
  147. package/lib/commands/clients/rotate.js +5 -6
  148. package/lib/commands/clients/update.d.ts +3 -3
  149. package/lib/commands/clients/update.js +5 -5
  150. package/lib/commands/config/edit.d.ts +5 -5
  151. package/lib/commands/config/edit.js +21 -22
  152. package/lib/commands/config/get.d.ts +5 -4
  153. package/lib/commands/config/get.js +34 -13
  154. package/lib/commands/config/index.d.ts +1 -1
  155. package/lib/commands/config/index.js +4 -5
  156. package/lib/commands/config/set.d.ts +2 -2
  157. package/lib/commands/config/set.js +17 -18
  158. package/lib/commands/config/unset.d.ts +1 -1
  159. package/lib/commands/config/unset.js +12 -11
  160. package/lib/commands/container/pull.d.ts +4 -4
  161. package/lib/commands/container/pull.js +12 -12
  162. package/lib/commands/container/push.d.ts +6 -6
  163. package/lib/commands/container/push.js +18 -18
  164. package/lib/commands/container/release.d.ts +4 -4
  165. package/lib/commands/container/release.js +16 -15
  166. package/lib/commands/container/rm.d.ts +4 -4
  167. package/lib/commands/container/rm.js +10 -9
  168. package/lib/commands/container/run.d.ts +5 -5
  169. package/lib/commands/container/run.js +14 -14
  170. package/lib/commands/dashboard.d.ts +1 -1
  171. package/lib/commands/dashboard.js +19 -20
  172. package/lib/commands/domains/add.d.ts +5 -5
  173. package/lib/commands/domains/add.js +17 -18
  174. package/lib/commands/domains/clear.js +2 -2
  175. package/lib/commands/domains/index.d.ts +5 -3
  176. package/lib/commands/domains/index.js +99 -69
  177. package/lib/commands/domains/info.js +2 -1
  178. package/lib/commands/domains/remove.d.ts +3 -3
  179. package/lib/commands/domains/remove.js +5 -5
  180. package/lib/commands/domains/update.d.ts +4 -4
  181. package/lib/commands/domains/update.js +8 -8
  182. package/lib/commands/drains/add.d.ts +3 -3
  183. package/lib/commands/drains/add.js +7 -7
  184. package/lib/commands/drains/index.d.ts +1 -1
  185. package/lib/commands/drains/index.js +5 -6
  186. package/lib/commands/drains/remove.d.ts +4 -4
  187. package/lib/commands/drains/remove.js +6 -6
  188. package/lib/commands/features/disable.d.ts +3 -3
  189. package/lib/commands/features/disable.js +8 -8
  190. package/lib/commands/features/enable.d.ts +3 -3
  191. package/lib/commands/features/enable.js +8 -8
  192. package/lib/commands/features/index.js +2 -3
  193. package/lib/commands/features/info.d.ts +4 -4
  194. package/lib/commands/features/info.js +10 -9
  195. package/lib/commands/git/clone.d.ts +2 -2
  196. package/lib/commands/git/clone.js +7 -6
  197. package/lib/commands/git/remote.js +6 -5
  198. package/lib/commands/keys/add.d.ts +3 -4
  199. package/lib/commands/keys/add.js +20 -18
  200. package/lib/commands/keys/index.js +4 -5
  201. package/lib/commands/keys/remove.d.ts +2 -2
  202. package/lib/commands/keys/remove.js +8 -8
  203. package/lib/commands/labs/disable.d.ts +3 -3
  204. package/lib/commands/labs/disable.js +13 -13
  205. package/lib/commands/labs/enable.d.ts +4 -4
  206. package/lib/commands/labs/enable.js +11 -11
  207. package/lib/commands/labs/index.d.ts +2 -2
  208. package/lib/commands/labs/index.js +6 -7
  209. package/lib/commands/labs/info.d.ts +3 -3
  210. package/lib/commands/labs/info.js +8 -7
  211. package/lib/commands/local/index.d.ts +4 -4
  212. package/lib/commands/local/index.js +21 -21
  213. package/lib/commands/local/run.d.ts +1 -1
  214. package/lib/commands/local/run.js +4 -3
  215. package/lib/commands/logs.d.ts +1 -1
  216. package/lib/commands/logs.js +22 -21
  217. package/lib/commands/maintenance/off.d.ts +1 -1
  218. package/lib/commands/maintenance/off.js +2 -2
  219. package/lib/commands/maintenance/on.d.ts +1 -1
  220. package/lib/commands/maintenance/on.js +2 -2
  221. package/lib/commands/members/index.d.ts +3 -3
  222. package/lib/commands/members/index.js +18 -13
  223. package/lib/commands/members/remove.d.ts +1 -1
  224. package/lib/commands/members/remove.js +6 -6
  225. package/lib/commands/notifications/index.d.ts +3 -3
  226. package/lib/commands/notifications/index.js +9 -10
  227. package/lib/commands/orgs/open.js +2 -2
  228. package/lib/commands/pg/backups/cancel.d.ts +13 -0
  229. package/lib/commands/pg/backups/cancel.js +43 -0
  230. package/lib/commands/pg/backups/capture.d.ts +15 -0
  231. package/lib/commands/pg/backups/capture.js +62 -0
  232. package/lib/commands/pg/backups/delete.d.ts +15 -0
  233. package/lib/commands/pg/backups/delete.js +34 -0
  234. package/lib/commands/pg/backups/download.d.ts +14 -0
  235. package/lib/commands/pg/backups/download.js +54 -0
  236. package/lib/commands/pg/backups/index.d.ts +20 -0
  237. package/lib/commands/pg/backups/index.js +121 -0
  238. package/lib/commands/pg/backups/info.d.ts +17 -0
  239. package/lib/commands/pg/backups/info.js +86 -0
  240. package/lib/commands/pg/backups/restore.d.ts +20 -0
  241. package/lib/commands/pg/backups/restore.js +134 -0
  242. package/lib/commands/pg/backups/schedule.d.ts +21 -0
  243. package/lib/commands/pg/backups/schedule.js +69 -0
  244. package/lib/commands/pg/backups/schedules.d.ts +10 -0
  245. package/lib/commands/pg/backups/schedules.js +27 -0
  246. package/lib/commands/pg/backups/unschedule.d.ts +13 -0
  247. package/lib/commands/pg/backups/unschedule.js +42 -0
  248. package/lib/commands/pg/backups/url.d.ts +13 -0
  249. package/lib/commands/pg/backups/url.js +37 -0
  250. package/lib/commands/pg/bloat.d.ts +13 -0
  251. package/lib/{oldCommands → commands}/pg/bloat.js +23 -30
  252. package/lib/commands/pg/blocking.d.ts +13 -0
  253. package/lib/commands/pg/blocking.js +42 -0
  254. package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
  255. package/lib/commands/pg/connection-pooling/attach.js +38 -0
  256. package/lib/commands/pg/copy.d.ts +18 -0
  257. package/lib/commands/pg/copy.js +83 -0
  258. package/lib/commands/pg/credentials/create.d.ts +15 -0
  259. package/lib/commands/pg/credentials/create.js +39 -0
  260. package/lib/commands/pg/credentials/destroy.d.ts +16 -0
  261. package/lib/commands/pg/credentials/destroy.js +45 -0
  262. package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
  263. package/lib/commands/pg/credentials/repair-default.js +38 -0
  264. package/lib/commands/pg/credentials/rotate.d.ts +17 -0
  265. package/lib/commands/pg/credentials/rotate.js +79 -0
  266. package/lib/commands/pg/credentials/url.d.ts +14 -0
  267. package/lib/commands/pg/credentials/url.js +61 -0
  268. package/lib/commands/pg/credentials.d.ts +16 -0
  269. package/lib/commands/pg/credentials.js +61 -0
  270. package/lib/commands/pg/diagnose.d.ts +18 -0
  271. package/lib/commands/pg/diagnose.js +106 -0
  272. package/lib/commands/pg/info.d.ts +14 -0
  273. package/lib/commands/pg/info.js +91 -0
  274. package/lib/commands/pg/kill.d.ts +15 -0
  275. package/lib/commands/pg/kill.js +32 -0
  276. package/lib/commands/pg/killall.d.ts +13 -0
  277. package/lib/commands/pg/killall.js +24 -0
  278. package/lib/commands/pg/links/create.d.ts +16 -0
  279. package/lib/commands/pg/links/create.js +57 -0
  280. package/lib/commands/pg/links/destroy.d.ts +16 -0
  281. package/lib/commands/pg/links/destroy.js +40 -0
  282. package/lib/commands/pg/links/index.d.ts +13 -0
  283. package/lib/commands/pg/links/index.js +62 -0
  284. package/lib/commands/pg/locks.d.ts +15 -0
  285. package/lib/commands/pg/locks.js +53 -0
  286. package/lib/commands/pg/maintenance/index.d.ts +13 -0
  287. package/lib/commands/pg/maintenance/index.js +27 -0
  288. package/lib/commands/pg/maintenance/run.d.ts +14 -0
  289. package/lib/commands/pg/maintenance/run.js +34 -0
  290. package/lib/commands/pg/maintenance/window.d.ts +15 -0
  291. package/lib/commands/pg/maintenance/window.js +41 -0
  292. package/lib/commands/pg/outliers.d.ts +19 -0
  293. package/lib/commands/pg/outliers.js +100 -0
  294. package/lib/commands/pg/promote.d.ts +14 -0
  295. package/lib/commands/pg/promote.js +167 -0
  296. package/lib/commands/pg/ps.d.ts +14 -0
  297. package/lib/commands/pg/ps.js +52 -0
  298. package/lib/commands/pg/psql.d.ts +16 -0
  299. package/lib/commands/pg/psql.js +47 -0
  300. package/lib/commands/pg/pull.d.ts +18 -0
  301. package/lib/commands/pg/pull.js +87 -0
  302. package/lib/commands/pg/push.d.ts +18 -0
  303. package/lib/commands/pg/push.js +83 -0
  304. package/lib/commands/pg/reset.d.ts +15 -0
  305. package/lib/commands/pg/reset.js +43 -0
  306. package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
  307. package/lib/commands/pg/settings/auto-explain/log-analyze.js +28 -0
  308. package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
  309. package/lib/commands/pg/settings/auto-explain/log-buffers.js +26 -0
  310. package/lib/commands/pg/settings/auto-explain/log-format.d.ts +12 -0
  311. package/lib/commands/pg/settings/auto-explain/log-format.js +22 -0
  312. package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +13 -0
  313. package/lib/commands/pg/settings/auto-explain/log-min-duration.js +29 -0
  314. package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
  315. package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +20 -0
  316. package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
  317. package/lib/commands/pg/settings/auto-explain/log-triggers.js +26 -0
  318. package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
  319. package/lib/commands/pg/settings/auto-explain/log-verbose.js +29 -0
  320. package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
  321. package/lib/commands/pg/settings/auto-explain.js +34 -0
  322. package/lib/commands/pg/settings/data-connector-details-logs.d.ts +17 -0
  323. package/lib/commands/pg/settings/data-connector-details-logs.js +30 -0
  324. package/lib/commands/pg/settings/index.d.ts +13 -0
  325. package/lib/commands/pg/settings/index.js +33 -0
  326. package/lib/commands/pg/settings/log-connections.d.ts +17 -0
  327. package/lib/commands/pg/settings/log-connections.js +30 -0
  328. package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
  329. package/lib/commands/pg/settings/log-lock-waits.js +27 -0
  330. package/lib/commands/pg/settings/log-min-duration-statement.d.ts +12 -0
  331. package/lib/commands/pg/settings/log-min-duration-statement.js +29 -0
  332. package/lib/commands/pg/settings/log-min-error-statement.d.ts +12 -0
  333. package/lib/commands/pg/settings/log-min-error-statement.js +23 -0
  334. package/lib/commands/pg/settings/log-statement.d.ts +12 -0
  335. package/lib/commands/pg/settings/log-statement.js +26 -0
  336. package/lib/commands/pg/settings/track-functions.d.ts +12 -0
  337. package/lib/commands/pg/settings/track-functions.js +25 -0
  338. package/lib/commands/pg/unfollow.d.ts +14 -0
  339. package/lib/commands/pg/unfollow.js +38 -0
  340. package/lib/commands/pg/upgrade/cancel.d.ts +13 -0
  341. package/lib/commands/pg/upgrade/cancel.js +50 -0
  342. package/lib/commands/pg/upgrade/dryrun.d.ts +14 -0
  343. package/lib/commands/pg/upgrade/dryrun.js +50 -0
  344. package/lib/commands/pg/upgrade/index.d.ts +15 -0
  345. package/lib/commands/pg/upgrade/index.js +73 -0
  346. package/lib/commands/pg/upgrade/prepare.d.ts +14 -0
  347. package/lib/commands/pg/upgrade/prepare.js +51 -0
  348. package/lib/commands/pg/upgrade/run.d.ts +16 -0
  349. package/lib/commands/pg/upgrade/run.js +95 -0
  350. package/lib/commands/pg/upgrade/wait.d.ts +16 -0
  351. package/lib/commands/pg/upgrade/wait.js +105 -0
  352. package/lib/commands/pg/vacuum-stats.d.ts +13 -0
  353. package/lib/{oldCommands → commands}/pg/vacuum-stats.js +25 -29
  354. package/lib/commands/pg/wait.d.ts +15 -0
  355. package/lib/commands/pg/wait.js +79 -0
  356. package/lib/commands/pipelines/add.d.ts +3 -3
  357. package/lib/commands/pipelines/add.js +13 -13
  358. package/lib/commands/pipelines/connect.js +2 -1
  359. package/lib/commands/pipelines/create.d.ts +3 -3
  360. package/lib/commands/pipelines/create.js +20 -20
  361. package/lib/commands/pipelines/destroy.d.ts +2 -2
  362. package/lib/commands/pipelines/destroy.js +5 -5
  363. package/lib/commands/pipelines/diff.d.ts +3 -3
  364. package/lib/commands/pipelines/diff.js +12 -13
  365. package/lib/commands/pipelines/index.js +3 -3
  366. package/lib/commands/pipelines/info.d.ts +3 -3
  367. package/lib/commands/pipelines/info.js +10 -9
  368. package/lib/commands/pipelines/open.d.ts +9 -0
  369. package/lib/commands/pipelines/open.js +19 -0
  370. package/lib/commands/pipelines/promote.d.ts +12 -0
  371. package/lib/commands/pipelines/promote.js +209 -0
  372. package/lib/commands/pipelines/remove.d.ts +10 -0
  373. package/lib/commands/pipelines/remove.js +20 -0
  374. package/lib/commands/pipelines/rename.d.ts +10 -0
  375. package/lib/commands/pipelines/rename.js +34 -0
  376. package/lib/commands/pipelines/setup.d.ts +16 -0
  377. package/lib/commands/pipelines/setup.js +88 -0
  378. package/lib/commands/pipelines/transfer.d.ts +13 -0
  379. package/lib/commands/pipelines/transfer.js +60 -0
  380. package/lib/commands/pipelines/update.d.ts +11 -0
  381. package/lib/commands/pipelines/update.js +29 -0
  382. package/lib/commands/prompt.d.ts +1 -1
  383. package/lib/commands/prompt.js +4 -3
  384. package/lib/commands/ps/autoscale/disable.d.ts +10 -0
  385. package/lib/commands/ps/autoscale/disable.js +33 -0
  386. package/lib/commands/ps/autoscale/enable.d.ts +14 -0
  387. package/lib/commands/ps/autoscale/enable.js +84 -0
  388. package/lib/commands/ps/index.d.ts +15 -0
  389. package/lib/commands/ps/index.js +199 -0
  390. package/lib/commands/ps/restart.d.ts +18 -0
  391. package/lib/commands/ps/restart.js +68 -0
  392. package/lib/commands/ps/scale.d.ts +13 -0
  393. package/lib/commands/ps/scale.js +81 -0
  394. package/lib/commands/ps/stop.d.ts +18 -0
  395. package/lib/commands/ps/stop.js +62 -0
  396. package/lib/commands/ps/type.d.ts +12 -0
  397. package/lib/commands/ps/type.js +168 -0
  398. package/lib/commands/ps/wait.d.ts +13 -0
  399. package/lib/commands/ps/wait.js +73 -0
  400. package/lib/commands/regions.d.ts +2 -2
  401. package/lib/commands/regions.js +6 -5
  402. package/lib/commands/releases/index.d.ts +14 -0
  403. package/lib/commands/releases/index.js +155 -0
  404. package/lib/commands/releases/info.d.ts +15 -0
  405. package/lib/commands/releases/info.js +75 -0
  406. package/lib/commands/releases/output.d.ts +13 -0
  407. package/lib/commands/releases/output.js +33 -0
  408. package/lib/commands/releases/retry.d.ts +11 -0
  409. package/lib/commands/releases/retry.js +46 -0
  410. package/lib/commands/releases/rollback.d.ts +14 -0
  411. package/lib/commands/releases/rollback.js +54 -0
  412. package/lib/commands/repl.d.ts +1 -1
  413. package/lib/commands/repl.js +3 -2
  414. package/lib/commands/reviewapps/disable.d.ts +3 -3
  415. package/lib/commands/reviewapps/disable.js +11 -10
  416. package/lib/commands/reviewapps/enable.d.ts +2 -2
  417. package/lib/commands/reviewapps/enable.js +9 -8
  418. package/lib/commands/run/detached.d.ts +16 -0
  419. package/lib/commands/run/detached.js +54 -0
  420. package/lib/commands/run/index.d.ts +19 -0
  421. package/lib/commands/run/index.js +69 -0
  422. package/lib/commands/run/inside.d.ts +18 -0
  423. package/lib/commands/run/inside.js +77 -0
  424. package/lib/commands/sessions/destroy.d.ts +1 -1
  425. package/lib/commands/sessions/destroy.js +4 -4
  426. package/lib/commands/sessions/index.js +2 -3
  427. package/lib/commands/spaces/create.d.ts +23 -0
  428. package/lib/commands/spaces/create.js +87 -0
  429. package/lib/commands/spaces/destroy.d.ts +14 -0
  430. package/lib/commands/spaces/destroy.js +61 -0
  431. package/lib/commands/spaces/drains/get.d.ts +11 -0
  432. package/lib/commands/spaces/drains/get.js +23 -0
  433. package/lib/commands/spaces/drains/set.d.ts +13 -0
  434. package/lib/commands/spaces/drains/set.js +25 -0
  435. package/lib/commands/spaces/hosts.d.ts +14 -0
  436. package/lib/commands/spaces/hosts.js +35 -0
  437. package/lib/commands/spaces/index.d.ts +16 -0
  438. package/lib/commands/spaces/index.js +65 -0
  439. package/lib/commands/spaces/info.d.ts +14 -0
  440. package/lib/commands/spaces/info.js +48 -0
  441. package/lib/commands/spaces/peerings/accept.d.ts +15 -0
  442. package/lib/commands/spaces/peerings/accept.js +33 -0
  443. package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
  444. package/lib/commands/spaces/peerings/destroy.js +43 -0
  445. package/lib/commands/spaces/peerings/index.d.ts +13 -0
  446. package/lib/commands/spaces/peerings/index.js +31 -0
  447. package/lib/commands/spaces/peerings/info.d.ts +15 -0
  448. package/lib/{oldCommands → commands}/spaces/peerings/info.js +32 -40
  449. package/lib/commands/spaces/ps.d.ts +15 -0
  450. package/lib/commands/spaces/ps.js +77 -0
  451. package/lib/commands/spaces/rename.d.ts +11 -0
  452. package/lib/commands/spaces/rename.js +24 -0
  453. package/lib/commands/spaces/topology.d.ts +18 -0
  454. package/lib/commands/spaces/topology.js +87 -0
  455. package/lib/commands/spaces/transfer.d.ts +11 -0
  456. package/lib/commands/spaces/transfer.js +33 -0
  457. package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
  458. package/lib/commands/spaces/trusted-ips/add.js +49 -0
  459. package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
  460. package/lib/commands/spaces/trusted-ips/index.js +59 -0
  461. package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
  462. package/lib/commands/spaces/trusted-ips/remove.js +51 -0
  463. package/lib/commands/spaces/vpn/config.d.ts +14 -0
  464. package/lib/commands/spaces/vpn/config.js +53 -0
  465. package/lib/commands/spaces/vpn/connect.d.ts +15 -0
  466. package/lib/commands/spaces/vpn/connect.js +46 -0
  467. package/lib/commands/spaces/vpn/connections.d.ts +17 -0
  468. package/lib/commands/spaces/vpn/connections.js +55 -0
  469. package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
  470. package/lib/commands/spaces/vpn/destroy.js +36 -0
  471. package/lib/commands/spaces/vpn/info.d.ts +16 -0
  472. package/lib/commands/spaces/vpn/info.js +85 -0
  473. package/lib/commands/spaces/vpn/update.d.ts +14 -0
  474. package/lib/commands/spaces/vpn/update.js +36 -0
  475. package/lib/commands/spaces/vpn/wait.d.ts +16 -0
  476. package/lib/commands/spaces/vpn/wait.js +69 -0
  477. package/lib/commands/spaces/wait.d.ts +17 -0
  478. package/lib/commands/spaces/wait.js +87 -0
  479. package/lib/commands/status.js +14 -13
  480. package/lib/commands/teams/index.d.ts +1 -1
  481. package/lib/commands/teams/index.js +4 -5
  482. package/lib/commands/telemetry/add.d.ts +6 -5
  483. package/lib/commands/telemetry/add.js +43 -18
  484. package/lib/commands/telemetry/index.d.ts +4 -4
  485. package/lib/commands/telemetry/index.js +19 -17
  486. package/lib/commands/telemetry/info.d.ts +2 -2
  487. package/lib/commands/telemetry/info.js +5 -4
  488. package/lib/commands/telemetry/update.d.ts +3 -3
  489. package/lib/commands/telemetry/update.js +8 -9
  490. package/lib/commands/usage/addons.d.ts +2 -2
  491. package/lib/commands/usage/addons.js +17 -18
  492. package/lib/global_telemetry.d.ts +2 -2
  493. package/lib/global_telemetry.js +34 -36
  494. package/lib/lib/addons/addons_wait.d.ts +1 -1
  495. package/lib/lib/addons/addons_wait.js +2 -2
  496. package/lib/lib/addons/create_addon.d.ts +5 -3
  497. package/lib/lib/addons/create_addon.js +12 -9
  498. package/lib/lib/addons/destroy_addon.js +17 -9
  499. package/lib/lib/addons/resolve.d.ts +10 -11
  500. package/lib/lib/addons/resolve.js +19 -18
  501. package/lib/lib/addons/util.d.ts +2 -2
  502. package/lib/lib/addons/util.js +21 -14
  503. package/lib/lib/api.d.ts +1 -1
  504. package/lib/lib/api.js +19 -23
  505. package/lib/lib/apps/app-transfer.d.ts +3 -3
  506. package/lib/lib/apps/app-transfer.js +11 -11
  507. package/lib/lib/autocomplete/base.d.ts +11 -1
  508. package/lib/lib/autocomplete/base.js +33 -49
  509. package/lib/lib/autocomplete/cache.js +9 -7
  510. package/lib/lib/autocomplete/completions.d.ts +41 -1
  511. package/lib/lib/autocomplete/completions.js +258 -290
  512. package/lib/lib/buildpacks/buildpacks.d.ts +11 -11
  513. package/lib/lib/buildpacks/buildpacks.js +71 -71
  514. package/lib/lib/certs/certificate_details.js +3 -4
  515. package/lib/lib/certs/flags.d.ts +2 -2
  516. package/lib/lib/certs/flags.js +5 -8
  517. package/lib/lib/certs/get_cert_and_key.js +2 -2
  518. package/lib/lib/ci/git.d.ts +12 -2
  519. package/lib/lib/ci/git.js +20 -6
  520. package/lib/lib/ci/pipelines.d.ts +5 -5
  521. package/lib/lib/ci/pipelines.js +17 -17
  522. package/lib/lib/ci/source.d.ts +8 -0
  523. package/lib/lib/ci/source.js +22 -10
  524. package/lib/lib/ci/test-run.js +18 -15
  525. package/lib/lib/config/quote.js +4 -4
  526. package/lib/lib/config/util.d.ts +3 -0
  527. package/lib/lib/config/util.js +5 -0
  528. package/lib/lib/confirmCommand.js +6 -7
  529. package/lib/lib/container/docker_helper.d.ts +12 -12
  530. package/lib/lib/container/docker_helper.js +71 -74
  531. package/lib/lib/container/helpers.js +2 -2
  532. package/lib/lib/container/streamer.js +4 -4
  533. package/lib/lib/data/baseCommand.d.ts +4 -0
  534. package/lib/lib/data/baseCommand.js +15 -0
  535. package/lib/lib/data/createPool.d.ts +4 -0
  536. package/lib/lib/data/createPool.js +6 -0
  537. package/lib/lib/data/credentialUtils.d.ts +3 -0
  538. package/lib/lib/data/credentialUtils.js +23 -0
  539. package/lib/lib/data/displayQuota.d.ts +19 -0
  540. package/lib/lib/data/displayQuota.js +59 -0
  541. package/lib/lib/data/parseProvisionOpts.d.ts +15 -0
  542. package/lib/lib/data/parseProvisionOpts.js +31 -0
  543. package/lib/lib/data/types.d.ts +177 -0
  544. package/lib/lib/data/types.js +3 -0
  545. package/lib/lib/data-scrubber/patterns.d.ts +4 -0
  546. package/lib/lib/data-scrubber/patterns.js +13 -0
  547. package/lib/lib/data-scrubber/presets.d.ts +64 -0
  548. package/lib/lib/data-scrubber/presets.js +112 -0
  549. package/lib/lib/data-scrubber/scrubber.d.ts +131 -0
  550. package/lib/lib/data-scrubber/scrubber.js +256 -0
  551. package/lib/lib/data-scrubber/types.d.ts +169 -0
  552. package/lib/lib/domains/domains.js +10 -10
  553. package/lib/lib/domains/wait-for-domain.js +2 -3
  554. package/lib/lib/local/env-file-validator.js +2 -2
  555. package/lib/lib/local/fork-foreman.js +3 -2
  556. package/lib/lib/members/util.js +7 -7
  557. package/lib/lib/orgs/utils.js +2 -3
  558. package/lib/lib/pg/backups.d.ts +17 -1
  559. package/lib/lib/pg/backups.js +132 -156
  560. package/lib/lib/pg/download.js +7 -7
  561. package/lib/lib/pg/fetcher.d.ts +3 -1
  562. package/lib/lib/pg/fetcher.js +3 -162
  563. package/lib/lib/pg/psql.d.ts +17 -1
  564. package/lib/lib/pg/psql.js +59 -269
  565. package/lib/lib/pg/push_pull.d.ts +12 -0
  566. package/lib/lib/pg/push_pull.js +97 -119
  567. package/lib/lib/pg/setter.d.ts +16 -1
  568. package/lib/lib/pg/setter.js +61 -73
  569. package/lib/lib/pg/types.d.ts +10 -15
  570. package/lib/lib/pg/util.d.ts +8 -1
  571. package/lib/lib/pg/util.js +97 -211
  572. package/lib/lib/pipelines/disambiguate.js +9 -11
  573. package/lib/lib/pipelines/ownership.d.ts +1 -1
  574. package/lib/lib/pipelines/ownership.js +6 -12
  575. package/lib/lib/pipelines/render-pipeline.d.ts +2 -2
  576. package/lib/lib/pipelines/render-pipeline.js +10 -9
  577. package/lib/lib/pipelines/setup/create-apps.js +7 -9
  578. package/lib/lib/pipelines/setup/get-ci-settings.js +2 -2
  579. package/lib/lib/pipelines/setup/get-github-token.js +1 -3
  580. package/lib/lib/pipelines/setup/get-name-and-repo.js +27 -22
  581. package/lib/lib/pipelines/setup/get-settings.js +12 -12
  582. package/lib/lib/pipelines/setup/poll-app-setups.js +3 -5
  583. package/lib/lib/pipelines/setup/setup-pipeline.js +1 -3
  584. package/lib/lib/pipelines/setup/validate.d.ts +1 -1
  585. package/lib/lib/pipelines/setup/validate.js +2 -2
  586. package/lib/lib/pipelines/stages.d.ts +2 -2
  587. package/lib/lib/pipelines/stages.js +4 -4
  588. package/lib/lib/redis/api.d.ts +22 -22
  589. package/lib/lib/redis/api.js +62 -67
  590. package/lib/lib/releases/output.js +1 -1
  591. package/lib/lib/releases/status_helper.d.ts +1 -1
  592. package/lib/lib/releases/status_helper.js +16 -8
  593. package/lib/lib/run/colorize.js +73 -40
  594. package/lib/lib/run/dyno.d.ts +19 -19
  595. package/lib/lib/run/dyno.js +181 -174
  596. package/lib/lib/run/helpers.d.ts +25 -0
  597. package/lib/lib/run/helpers.js +119 -3
  598. package/lib/lib/run/log-displayer.d.ts +3 -3
  599. package/lib/lib/run/log-displayer.js +21 -21
  600. package/lib/lib/spaces/format.js +36 -23
  601. package/lib/lib/spaces/hosts.d.ts +9 -1
  602. package/lib/lib/spaces/hosts.js +28 -41
  603. package/lib/lib/spaces/peering.d.ts +4 -1
  604. package/lib/lib/spaces/peering.js +45 -52
  605. package/lib/lib/spaces/spaces.d.ts +6 -1
  606. package/lib/lib/spaces/spaces.js +30 -39
  607. package/lib/lib/spaces/vpn-connections.js +16 -16
  608. package/lib/lib/telemetry/util.d.ts +1 -1
  609. package/lib/lib/telemetry/util.js +3 -3
  610. package/lib/lib/types/completion.d.ts +15 -0
  611. package/lib/lib/utils/packageParser.js +2 -2
  612. package/lib/lib/utils/uuid-validate.js +1 -3
  613. package/lib/lib/webhooks/base.d.ts +2 -2
  614. package/lib/lib/webhooks/base.js +3 -3
  615. package/lib/nls-data.d.ts +10 -0
  616. package/lib/nls-data.js +10 -0
  617. package/lib/nls.d.ts +1 -1
  618. package/lib/nls.js +1 -1
  619. package/npm-shrinkwrap.json +17653 -18259
  620. package/oclif.manifest.json +9238 -3076
  621. package/package.json +26 -237
  622. package/lib/lib/pg/bastion.js +0 -137
  623. package/lib/lib/pg/config.d.ts +0 -2
  624. package/lib/lib/pg/config.js +0 -9
  625. package/lib/lib/pg/host.d.ts +0 -1
  626. package/lib/lib/pg/host.js +0 -3
  627. package/lib/lib/spaces/outbound-rules.js +0 -85
  628. package/lib/oldCommands/autocomplete/create.d.ts +0 -1
  629. package/lib/oldCommands/autocomplete/create.js +0 -254
  630. package/lib/oldCommands/autocomplete/doctor.d.ts +0 -1
  631. package/lib/oldCommands/autocomplete/doctor.js +0 -110
  632. package/lib/oldCommands/autocomplete/index.d.ts +0 -1
  633. package/lib/oldCommands/autocomplete/index.js +0 -80
  634. package/lib/oldCommands/autocomplete/options.d.ts +0 -1
  635. package/lib/oldCommands/autocomplete/options.js +0 -240
  636. package/lib/oldCommands/autocomplete/script.d.ts +0 -1
  637. package/lib/oldCommands/autocomplete/script.js +0 -35
  638. package/lib/oldCommands/pg/backups/cancel.d.ts +0 -1
  639. package/lib/oldCommands/pg/backups/cancel.js +0 -56
  640. package/lib/oldCommands/pg/backups/capture.d.ts +0 -1
  641. package/lib/oldCommands/pg/backups/capture.js +0 -77
  642. package/lib/oldCommands/pg/backups/delete.d.ts +0 -1
  643. package/lib/oldCommands/pg/backups/delete.js +0 -45
  644. package/lib/oldCommands/pg/backups/download.d.ts +0 -1
  645. package/lib/oldCommands/pg/backups/download.js +0 -64
  646. package/lib/oldCommands/pg/backups/index.d.ts +0 -1
  647. package/lib/oldCommands/pg/backups/index.js +0 -141
  648. package/lib/oldCommands/pg/backups/info.d.ts +0 -1
  649. package/lib/oldCommands/pg/backups/info.js +0 -102
  650. package/lib/oldCommands/pg/backups/restore.d.ts +0 -1
  651. package/lib/oldCommands/pg/backups/restore.js +0 -150
  652. package/lib/oldCommands/pg/backups/schedule.d.ts +0 -1
  653. package/lib/oldCommands/pg/backups/schedule.js +0 -107
  654. package/lib/oldCommands/pg/backups/schedules.d.ts +0 -1
  655. package/lib/oldCommands/pg/backups/schedules.js +0 -34
  656. package/lib/oldCommands/pg/backups/unschedule.d.ts +0 -1
  657. package/lib/oldCommands/pg/backups/unschedule.js +0 -60
  658. package/lib/oldCommands/pg/backups/url.d.ts +0 -1
  659. package/lib/oldCommands/pg/backups/url.js +0 -46
  660. package/lib/oldCommands/pg/bloat.d.ts +0 -1
  661. package/lib/oldCommands/pg/blocking.d.ts +0 -1
  662. package/lib/oldCommands/pg/blocking.js +0 -48
  663. package/lib/oldCommands/pg/connection-pooling/attach.d.ts +0 -1
  664. package/lib/oldCommands/pg/connection-pooling/attach.js +0 -53
  665. package/lib/oldCommands/pg/copy.d.ts +0 -1
  666. package/lib/oldCommands/pg/copy.js +0 -104
  667. package/lib/oldCommands/pg/credentials/create.d.ts +0 -1
  668. package/lib/oldCommands/pg/credentials/create.js +0 -47
  669. package/lib/oldCommands/pg/credentials/destroy.d.ts +0 -1
  670. package/lib/oldCommands/pg/credentials/destroy.js +0 -56
  671. package/lib/oldCommands/pg/credentials/repair-default.d.ts +0 -1
  672. package/lib/oldCommands/pg/credentials/repair-default.js +0 -43
  673. package/lib/oldCommands/pg/credentials/rotate.d.ts +0 -1
  674. package/lib/oldCommands/pg/credentials/rotate.js +0 -97
  675. package/lib/oldCommands/pg/credentials/url.d.ts +0 -1
  676. package/lib/oldCommands/pg/credentials/url.js +0 -75
  677. package/lib/oldCommands/pg/credentials.d.ts +0 -1
  678. package/lib/oldCommands/pg/credentials.js +0 -77
  679. package/lib/oldCommands/pg/diagnose.d.ts +0 -1
  680. package/lib/oldCommands/pg/diagnose.js +0 -136
  681. package/lib/oldCommands/pg/info.d.ts +0 -1
  682. package/lib/oldCommands/pg/info.js +0 -110
  683. package/lib/oldCommands/pg/kill.d.ts +0 -1
  684. package/lib/oldCommands/pg/kill.js +0 -37
  685. package/lib/oldCommands/pg/killall.d.ts +0 -1
  686. package/lib/oldCommands/pg/killall.js +0 -31
  687. package/lib/oldCommands/pg/links/create.d.ts +0 -1
  688. package/lib/oldCommands/pg/links/create.js +0 -70
  689. package/lib/oldCommands/pg/links/destroy.d.ts +0 -1
  690. package/lib/oldCommands/pg/links/destroy.js +0 -51
  691. package/lib/oldCommands/pg/links/index.d.ts +0 -1
  692. package/lib/oldCommands/pg/links/index.js +0 -64
  693. package/lib/oldCommands/pg/locks.d.ts +0 -1
  694. package/lib/oldCommands/pg/locks.js +0 -60
  695. package/lib/oldCommands/pg/maintenance/index.d.ts +0 -1
  696. package/lib/oldCommands/pg/maintenance/index.js +0 -34
  697. package/lib/oldCommands/pg/maintenance/run.d.ts +0 -1
  698. package/lib/oldCommands/pg/maintenance/run.js +0 -44
  699. package/lib/oldCommands/pg/maintenance/window.d.ts +0 -1
  700. package/lib/oldCommands/pg/maintenance/window.js +0 -52
  701. package/lib/oldCommands/pg/outliers.d.ts +0 -1
  702. package/lib/oldCommands/pg/outliers.js +0 -110
  703. package/lib/oldCommands/pg/promote.d.ts +0 -1
  704. package/lib/oldCommands/pg/promote.js +0 -183
  705. package/lib/oldCommands/pg/ps.d.ts +0 -1
  706. package/lib/oldCommands/pg/ps.js +0 -56
  707. package/lib/oldCommands/pg/psql.d.ts +0 -1
  708. package/lib/oldCommands/pg/psql.js +0 -53
  709. package/lib/oldCommands/pg/pull.d.ts +0 -1
  710. package/lib/oldCommands/pg/pull.js +0 -114
  711. package/lib/oldCommands/pg/push.d.ts +0 -1
  712. package/lib/oldCommands/pg/push.js +0 -111
  713. package/lib/oldCommands/pg/reset.d.ts +0 -1
  714. package/lib/oldCommands/pg/reset.js +0 -49
  715. package/lib/oldCommands/pg/settings/auto-explain/log-analyze.d.ts +0 -1
  716. package/lib/oldCommands/pg/settings/auto-explain/log-analyze.js +0 -37
  717. package/lib/oldCommands/pg/settings/auto-explain/log-buffers.d.ts +0 -1
  718. package/lib/oldCommands/pg/settings/auto-explain/log-buffers.js +0 -35
  719. package/lib/oldCommands/pg/settings/auto-explain/log-format.d.ts +0 -1
  720. package/lib/oldCommands/pg/settings/auto-explain/log-format.js +0 -30
  721. package/lib/oldCommands/pg/settings/auto-explain/log-min-duration.d.ts +0 -1
  722. package/lib/oldCommands/pg/settings/auto-explain/log-min-duration.js +0 -39
  723. package/lib/oldCommands/pg/settings/auto-explain/log-nested-statements.d.ts +0 -1
  724. package/lib/oldCommands/pg/settings/auto-explain/log-nested-statements.js +0 -30
  725. package/lib/oldCommands/pg/settings/auto-explain/log-triggers.d.ts +0 -1
  726. package/lib/oldCommands/pg/settings/auto-explain/log-triggers.js +0 -35
  727. package/lib/oldCommands/pg/settings/auto-explain/log-verbose.d.ts +0 -1
  728. package/lib/oldCommands/pg/settings/auto-explain/log-verbose.js +0 -40
  729. package/lib/oldCommands/pg/settings/auto-explain.d.ts +0 -1
  730. package/lib/oldCommands/pg/settings/auto-explain.js +0 -45
  731. package/lib/oldCommands/pg/settings/data-connector-details-logs.d.ts +0 -1
  732. package/lib/oldCommands/pg/settings/data-connector-details-logs.js +0 -40
  733. package/lib/oldCommands/pg/settings/index.d.ts +0 -1
  734. package/lib/oldCommands/pg/settings/index.js +0 -41
  735. package/lib/oldCommands/pg/settings/log-connections.d.ts +0 -1
  736. package/lib/oldCommands/pg/settings/log-connections.js +0 -40
  737. package/lib/oldCommands/pg/settings/log-lock-waits.d.ts +0 -1
  738. package/lib/oldCommands/pg/settings/log-lock-waits.js +0 -36
  739. package/lib/oldCommands/pg/settings/log-min-duration-statement.d.ts +0 -1
  740. package/lib/oldCommands/pg/settings/log-min-duration-statement.js +0 -39
  741. package/lib/oldCommands/pg/settings/log-min-error-statement.d.ts +0 -1
  742. package/lib/oldCommands/pg/settings/log-min-error-statement.js +0 -31
  743. package/lib/oldCommands/pg/settings/log-statement.d.ts +0 -1
  744. package/lib/oldCommands/pg/settings/log-statement.js +0 -33
  745. package/lib/oldCommands/pg/settings/track-functions.d.ts +0 -1
  746. package/lib/oldCommands/pg/settings/track-functions.js +0 -33
  747. package/lib/oldCommands/pg/unfollow.d.ts +0 -1
  748. package/lib/oldCommands/pg/unfollow.js +0 -46
  749. package/lib/oldCommands/pg/upgrade/cancel.d.ts +0 -1
  750. package/lib/oldCommands/pg/upgrade/cancel.js +0 -62
  751. package/lib/oldCommands/pg/upgrade/dryrun.d.ts +0 -1
  752. package/lib/oldCommands/pg/upgrade/dryrun.js +0 -62
  753. package/lib/oldCommands/pg/upgrade/index.d.ts +0 -1
  754. package/lib/oldCommands/pg/upgrade/index.js +0 -85
  755. package/lib/oldCommands/pg/upgrade/prepare.d.ts +0 -1
  756. package/lib/oldCommands/pg/upgrade/prepare.js +0 -64
  757. package/lib/oldCommands/pg/upgrade/run.d.ts +0 -1
  758. package/lib/oldCommands/pg/upgrade/run.js +0 -106
  759. package/lib/oldCommands/pg/upgrade/wait.d.ts +0 -1
  760. package/lib/oldCommands/pg/upgrade/wait.js +0 -121
  761. package/lib/oldCommands/pg/upgrade.d.ts +0 -1
  762. package/lib/oldCommands/pg/upgrade.js +0 -66
  763. package/lib/oldCommands/pg/vacuum-stats.d.ts +0 -1
  764. package/lib/oldCommands/pg/wait.d.ts +0 -1
  765. package/lib/oldCommands/pg/wait.js +0 -96
  766. package/lib/oldCommands/pipelines/open.d.ts +0 -1
  767. package/lib/oldCommands/pipelines/open.js +0 -25
  768. package/lib/oldCommands/pipelines/promote.d.ts +0 -1
  769. package/lib/oldCommands/pipelines/promote.js +0 -269
  770. package/lib/oldCommands/pipelines/remove.d.ts +0 -1
  771. package/lib/oldCommands/pipelines/remove.js +0 -29
  772. package/lib/oldCommands/pipelines/rename.d.ts +0 -1
  773. package/lib/oldCommands/pipelines/rename.js +0 -42
  774. package/lib/oldCommands/pipelines/setup.d.ts +0 -1
  775. package/lib/oldCommands/pipelines/setup.js +0 -117
  776. package/lib/oldCommands/pipelines/transfer.d.ts +0 -1
  777. package/lib/oldCommands/pipelines/transfer.js +0 -78
  778. package/lib/oldCommands/pipelines/update.d.ts +0 -1
  779. package/lib/oldCommands/pipelines/update.js +0 -39
  780. package/lib/oldCommands/ps/autoscale/disable.d.ts +0 -1
  781. package/lib/oldCommands/ps/autoscale/disable.js +0 -43
  782. package/lib/oldCommands/ps/autoscale/enable.d.ts +0 -1
  783. package/lib/oldCommands/ps/autoscale/enable.js +0 -103
  784. package/lib/oldCommands/ps/index.d.ts +0 -1
  785. package/lib/oldCommands/ps/index.js +0 -254
  786. package/lib/oldCommands/ps/restart.d.ts +0 -1
  787. package/lib/oldCommands/ps/restart.js +0 -78
  788. package/lib/oldCommands/ps/scale.d.ts +0 -1
  789. package/lib/oldCommands/ps/scale.js +0 -95
  790. package/lib/oldCommands/ps/stop.d.ts +0 -1
  791. package/lib/oldCommands/ps/stop.js +0 -73
  792. package/lib/oldCommands/ps/type.d.ts +0 -1
  793. package/lib/oldCommands/ps/type.js +0 -190
  794. package/lib/oldCommands/ps/wait.d.ts +0 -1
  795. package/lib/oldCommands/ps/wait.js +0 -93
  796. package/lib/oldCommands/releases/index.d.ts +0 -1
  797. package/lib/oldCommands/releases/index.js +0 -156
  798. package/lib/oldCommands/releases/info.d.ts +0 -1
  799. package/lib/oldCommands/releases/info.js +0 -68
  800. package/lib/oldCommands/releases/output.d.ts +0 -1
  801. package/lib/oldCommands/releases/output.js +0 -42
  802. package/lib/oldCommands/releases/retry.d.ts +0 -1
  803. package/lib/oldCommands/releases/retry.js +0 -59
  804. package/lib/oldCommands/releases/rollback.d.ts +0 -1
  805. package/lib/oldCommands/releases/rollback.js +0 -65
  806. package/lib/oldCommands/run/detached.d.ts +0 -1
  807. package/lib/oldCommands/run/detached.js +0 -61
  808. package/lib/oldCommands/run/index.d.ts +0 -1
  809. package/lib/oldCommands/run/index.js +0 -72
  810. package/lib/oldCommands/run/inside.d.ts +0 -1
  811. package/lib/oldCommands/run/inside.js +0 -93
  812. package/lib/oldCommands/spaces/create.d.ts +0 -1
  813. package/lib/oldCommands/spaces/create.js +0 -99
  814. package/lib/oldCommands/spaces/destroy.d.ts +0 -1
  815. package/lib/oldCommands/spaces/destroy.js +0 -79
  816. package/lib/oldCommands/spaces/drains/get.d.ts +0 -1
  817. package/lib/oldCommands/spaces/drains/get.js +0 -33
  818. package/lib/oldCommands/spaces/drains/set.d.ts +0 -1
  819. package/lib/oldCommands/spaces/drains/set.js +0 -33
  820. package/lib/oldCommands/spaces/hosts.d.ts +0 -1
  821. package/lib/oldCommands/spaces/hosts.js +0 -42
  822. package/lib/oldCommands/spaces/index.d.ts +0 -1
  823. package/lib/oldCommands/spaces/index.js +0 -74
  824. package/lib/oldCommands/spaces/info.d.ts +0 -1
  825. package/lib/oldCommands/spaces/info.js +0 -59
  826. package/lib/oldCommands/spaces/peerings/accept.d.ts +0 -1
  827. package/lib/oldCommands/spaces/peerings/accept.js +0 -41
  828. package/lib/oldCommands/spaces/peerings/destroy.d.ts +0 -1
  829. package/lib/oldCommands/spaces/peerings/destroy.js +0 -51
  830. package/lib/oldCommands/spaces/peerings/index.d.ts +0 -1
  831. package/lib/oldCommands/spaces/peerings/index.js +0 -39
  832. package/lib/oldCommands/spaces/peerings/info.d.ts +0 -1
  833. package/lib/oldCommands/spaces/ps.d.ts +0 -1
  834. package/lib/oldCommands/spaces/ps.js +0 -97
  835. package/lib/oldCommands/spaces/rename.d.ts +0 -1
  836. package/lib/oldCommands/spaces/rename.js +0 -29
  837. package/lib/oldCommands/spaces/topology.d.ts +0 -1
  838. package/lib/oldCommands/spaces/topology.js +0 -95
  839. package/lib/oldCommands/spaces/transfer.d.ts +0 -1
  840. package/lib/oldCommands/spaces/transfer.js +0 -37
  841. package/lib/oldCommands/spaces/trusted-ips/add.d.ts +0 -1
  842. package/lib/oldCommands/spaces/trusted-ips/add.js +0 -48
  843. package/lib/oldCommands/spaces/trusted-ips/index.d.ts +0 -1
  844. package/lib/oldCommands/spaces/trusted-ips/index.js +0 -57
  845. package/lib/oldCommands/spaces/trusted-ips/remove.d.ts +0 -1
  846. package/lib/oldCommands/spaces/trusted-ips/remove.js +0 -50
  847. package/lib/oldCommands/spaces/vpn/config.d.ts +0 -1
  848. package/lib/oldCommands/spaces/vpn/config.js +0 -61
  849. package/lib/oldCommands/spaces/vpn/connect.d.ts +0 -1
  850. package/lib/oldCommands/spaces/vpn/connect.js +0 -54
  851. package/lib/oldCommands/spaces/vpn/connections.d.ts +0 -1
  852. package/lib/oldCommands/spaces/vpn/connections.js +0 -70
  853. package/lib/oldCommands/spaces/vpn/destroy.d.ts +0 -1
  854. package/lib/oldCommands/spaces/vpn/destroy.js +0 -48
  855. package/lib/oldCommands/spaces/vpn/info.d.ts +0 -1
  856. package/lib/oldCommands/spaces/vpn/info.js +0 -89
  857. package/lib/oldCommands/spaces/vpn/update.d.ts +0 -1
  858. package/lib/oldCommands/spaces/vpn/update.js +0 -46
  859. package/lib/oldCommands/spaces/vpn/wait.d.ts +0 -1
  860. package/lib/oldCommands/spaces/vpn/wait.js +0 -80
  861. package/lib/oldCommands/spaces/wait.d.ts +0 -1
  862. package/lib/oldCommands/spaces/wait.js +0 -106
  863. package/lib/package.nls.json +0 -6
  864. /package/lib/lib/{pg/bastion.d.ts → data-scrubber/types.js} +0 -0
  865. /package/lib/lib/{spaces/outbound-rules.d.ts → types/completion.js} +0 -0
@@ -0,0 +1,86 @@
1
+ import { color, hux, utils } from '@heroku/heroku-cli-util';
2
+ import { Command, flags } from '@heroku-cli/command';
3
+ import { Args, ux } from '@oclif/core';
4
+ import pgBackupsApi from '../../../lib/pg/backups.js';
5
+ function status(backup) {
6
+ if (backup.succeeded) {
7
+ if (backup.warnings > 0)
8
+ return `Finished with ${backup.warnings} warnings`;
9
+ return 'Completed';
10
+ }
11
+ if (backup.canceled_at)
12
+ return 'Canceled';
13
+ if (backup.finished_at)
14
+ return 'Failed';
15
+ if (backup.started_at)
16
+ return 'Running';
17
+ return 'Pending';
18
+ }
19
+ function compression(compressed, total) {
20
+ let pct = 0;
21
+ if (compressed > 0) {
22
+ pct = Math.round((total - compressed) / total * 100);
23
+ pct = Math.max(0, pct);
24
+ }
25
+ return ` (${pct}% compression)`;
26
+ }
27
+ export default class Info extends Command {
28
+ static args = {
29
+ backup_id: Args.string({ description: 'ID of the backup. If omitted, we use the last backup ID.' }),
30
+ };
31
+ static description = 'get information about a specific backup';
32
+ static flags = {
33
+ app: flags.app({ required: true }),
34
+ remote: flags.remote(),
35
+ };
36
+ static topic = 'pg';
37
+ displayBackup = (backup, app) => {
38
+ const pgbackups = pgBackupsApi(app, this.heroku);
39
+ hux.styledHeader(`Backup ${color.name(pgbackups.name(backup))}`);
40
+ /* eslint-disable perfectionist/sort-objects */
41
+ hux.styledObject({
42
+ Database: color.datastore(backup.from_name),
43
+ 'Started at': backup.started_at,
44
+ 'Finished at': backup.finished_at,
45
+ Status: status(backup),
46
+ Type: backup.schedule ? 'Scheduled' : 'Manual', 'Original DB Size': pgbackups.filesize(backup.source_bytes),
47
+ 'Backup Size': `${pgbackups.filesize(backup.processed_bytes)}${backup.finished_at ? compression(backup.processed_bytes, backup.source_bytes) : ''}`,
48
+ }, ['Database', 'Started at', 'Finished at', 'Status', 'Type', 'Original DB Size', 'Backup Size']);
49
+ /* eslint-enable perfectionist/sort-objects */
50
+ ux.stdout('\n');
51
+ };
52
+ displayLogs = (backup) => {
53
+ hux.styledHeader('Backup Logs');
54
+ for (const log of backup.logs)
55
+ ux.stdout(`${log.created_at} ${log.message}\n`);
56
+ ux.stdout('\n');
57
+ };
58
+ getBackup = async (id, app) => {
59
+ let backupID;
60
+ if (id) {
61
+ const pgbackups = pgBackupsApi(app, this.heroku);
62
+ backupID = await pgbackups.num(id);
63
+ if (!backupID)
64
+ throw new Error(`Invalid ID: ${id}`);
65
+ }
66
+ else {
67
+ const { body: transfers } = await this.heroku.get(`/client/v11/apps/${app}/transfers`, { hostname: utils.pg.host() });
68
+ transfers.sort((a, b) => a.created_at.localeCompare(b.created_at));
69
+ const backups = transfers.filter(t => t.from_type === 'pg_dump' && t.to_type === 'gof3r');
70
+ const lastBackup = backups.pop();
71
+ if (!lastBackup)
72
+ throw new Error(`No backups. Capture one with ${color.code('heroku pg:backups:capture')}`);
73
+ backupID = lastBackup.num;
74
+ }
75
+ const { body: backup } = await this.heroku.get(`/client/v11/apps/${app}/transfers/${backupID}?verbose=true`, { hostname: utils.pg.host() });
76
+ return backup;
77
+ };
78
+ async run() {
79
+ const { args, flags } = await this.parse(Info);
80
+ const { app } = flags;
81
+ const { backup_id } = args;
82
+ const backup = await this.getBackup(backup_id, app);
83
+ this.displayBackup(backup, app);
84
+ this.displayLogs(backup);
85
+ }
86
+ }
@@ -0,0 +1,20 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Restore extends Command {
3
+ static args: {
4
+ backup: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
5
+ database: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
6
+ };
7
+ static description: string;
8
+ static examples: string[];
9
+ static flags: {
10
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
+ confirm: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ extensions: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ 'wait-interval': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
16
+ };
17
+ static topic: string;
18
+ protected getSortedExtensions(extensions: null | string | undefined): string[] | undefined;
19
+ run(): Promise<void>;
20
+ }
@@ -0,0 +1,134 @@
1
+ import { color, utils } from '@heroku/heroku-cli-util';
2
+ import { Command, flags } from '@heroku-cli/command';
3
+ import { Args, ux } from '@oclif/core';
4
+ import tsheredoc from 'tsheredoc';
5
+ import ConfirmCommand from '../../../lib/confirmCommand.js';
6
+ import backupsFactory from '../../../lib/pg/backups.js';
7
+ import { nls } from '../../../nls.js';
8
+ const heredoc = tsheredoc.default;
9
+ function dropboxURL(url) {
10
+ if (url.match(/^https?:\/\/www\.dropbox\.com/) && !url.endsWith('dl=1')) {
11
+ if (url.endsWith('dl=0'))
12
+ url = url.replace('dl=0', 'dl=1');
13
+ else if (url.includes('?'))
14
+ url += '&dl=1';
15
+ else
16
+ url += '?dl=1';
17
+ }
18
+ return url;
19
+ }
20
+ export default class Restore extends Command {
21
+ static args = {
22
+ backup: Args.string({ description: 'URL or backup ID from another app' }),
23
+ database: Args.string({ description: `${nls('pg:database:arg:description')} ${nls('pg:database:arg:description:default:suffix')}` }),
24
+ };
25
+ static description = 'restore a backup (default latest) to a database';
26
+ static examples = [
27
+ heredoc(`
28
+ # Basic Restore from Backup ID
29
+ ${color.command('heroku pg:backups:restore b101 DATABASE_URL --app my-heroku-app')}
30
+ `),
31
+ heredoc(`
32
+ # Restore from Another App
33
+ ${color.command('heroku pg:backups:restore example-app::b101 DATABASE_URL --app my-heroku-app')}
34
+ `),
35
+ heredoc(`
36
+ # Restore from a Public URL
37
+ ${color.command('heroku pg:backups:restore "https://s3.amazonaws.com/my-bucket/mydb.dump" DATABASE_URL --app my-heroku-app')}
38
+ `),
39
+ heredoc(`
40
+ # Verbose Output
41
+ ${color.command('heroku pg:backups:restore b101 DATABASE_URL --app my-heroku-app --verbose')}
42
+ `),
43
+ heredoc(`
44
+ # Restore with Confirmation Prompt
45
+ ${color.command('heroku pg:backups:restore b101 DATABASE_URL --app my-heroku-app --confirm my-heroku-app')}
46
+ `),
47
+ heredoc(`
48
+ # Restore with a Specific Database Name
49
+ ${color.command('heroku pg:backups:restore b101 HEROKU_POSTGRESQL_PINK --app my-heroku-app')}
50
+ `),
51
+ ];
52
+ static flags = {
53
+ app: flags.app({ required: true }),
54
+ confirm: flags.string({ char: 'c' }),
55
+ extensions: flags.string({
56
+ char: 'e',
57
+ description: heredoc(`
58
+ comma-separated list of extensions to pre-install in the default
59
+ public schema or an optional custom schema
60
+ (for example: hstore or myschema.hstore)
61
+ `),
62
+ }),
63
+ remote: flags.remote(),
64
+ verbose: flags.boolean({ char: 'v' }),
65
+ 'wait-interval': flags.integer({ default: 3 }),
66
+ };
67
+ static topic = 'pg';
68
+ getSortedExtensions(extensions) {
69
+ return extensions?.split(',').map(ext => ext.trim().toLowerCase()).sort();
70
+ }
71
+ async run() {
72
+ const { args, flags } = await this.parse(Restore);
73
+ const { app, confirm, extensions, verbose, 'wait-interval': waitInterval } = flags;
74
+ const interval = Math.max(3, waitInterval);
75
+ const dbResolver = new utils.pg.DatabaseResolver(this.heroku);
76
+ const { addon: db } = await dbResolver.getAttachment(app, args.database);
77
+ const pgbackups = backupsFactory(app, this.heroku);
78
+ let backupURL;
79
+ let backupName = args.backup;
80
+ if (backupName && backupName.match(/^https?:\/\//)) {
81
+ backupURL = dropboxURL(backupName);
82
+ }
83
+ else {
84
+ let backupApp;
85
+ if (backupName && backupName.match(/::/)) {
86
+ [backupApp, backupName] = backupName.split('::');
87
+ }
88
+ else {
89
+ backupApp = app;
90
+ }
91
+ const { body: transfers } = await this.heroku.get(`/client/v11/apps/${backupApp}/transfers`, { hostname: utils.pg.host() });
92
+ const backups = transfers.filter(t => t.from_type === 'pg_dump' && t.to_type === 'gof3r');
93
+ let backup;
94
+ if (backupName) {
95
+ backup = backups.find(b => pgbackups.name(b) === backupName);
96
+ if (!backup)
97
+ throw new Error(`Backup ${color.cyan(backupName)} not found for ${color.app(backupApp)}`);
98
+ if (!backup.succeeded)
99
+ throw new Error(`Backup ${color.cyan(backupName)} for ${color.app(backupApp)} did not complete successfully`);
100
+ }
101
+ else {
102
+ backup = backups.filter(b => b.succeeded).sort((a, b) => {
103
+ if (a.finished_at && b.finished_at) {
104
+ return a.finished_at.localeCompare(b.finished_at);
105
+ }
106
+ if (a.finished_at)
107
+ return 1;
108
+ if (b.finished_at)
109
+ return -1;
110
+ return 0;
111
+ }).pop();
112
+ if (!backup) {
113
+ throw new Error(`No backups for ${color.app(backupApp)}. Capture one with ${color.cyan.bold('heroku pg:backups:capture')}`);
114
+ }
115
+ backupName = pgbackups.name(backup);
116
+ }
117
+ backupURL = backup.to_url;
118
+ }
119
+ const confirmCmd = new ConfirmCommand();
120
+ await confirmCmd.confirm(app, confirm);
121
+ ux.action.start(`Starting restore of ${color.cyan(backupName)} to ${color.datastore(db.name)}`);
122
+ ux.stdout(heredoc(`
123
+
124
+ Use Ctrl-C at any time to stop monitoring progress; the backup will continue restoring.
125
+ Use ${color.cyan.bold('heroku pg:backups')} to check progress.
126
+ Stop a running restore with ${color.cyan.bold('heroku pg:backups:cancel')}.
127
+ `));
128
+ const { body: restore } = await this.heroku.post(`/client/v11/databases/${db.id}/restores`, {
129
+ body: { backup_url: backupURL, extensions: this.getSortedExtensions(extensions) }, hostname: utils.pg.host(),
130
+ });
131
+ ux.action.stop();
132
+ await pgbackups.wait('Restoring', restore.uuid, interval, verbose, db.app.id);
133
+ }
134
+ }
@@ -0,0 +1,21 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ declare type BackupSchedule = {
3
+ hour: string;
4
+ timezone: string;
5
+ schedule_name?: string;
6
+ };
7
+ export default class Schedule extends Command {
8
+ static topic: string;
9
+ static description: string;
10
+ static flags: {
11
+ at: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ };
15
+ static args: {
16
+ database: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
17
+ };
18
+ parseDate: (at: string) => BackupSchedule;
19
+ run(): Promise<void>;
20
+ }
21
+ export {};
@@ -0,0 +1,69 @@
1
+ import { color, utils } from '@heroku/heroku-cli-util';
2
+ import { Command, flags } from '@heroku-cli/command';
3
+ import { Args, ux } from '@oclif/core';
4
+ import { nls } from '../../../nls.js';
5
+ const TZ = {
6
+ PST: 'America/Los_Angeles',
7
+ PDT: 'America/Los_Angeles',
8
+ MST: 'America/Boise',
9
+ MDT: 'America/Boise',
10
+ CST: 'America/Chicago',
11
+ CDT: 'America/Chicago',
12
+ EST: 'America/New_York',
13
+ EDT: 'America/New_York',
14
+ Z: 'UTC',
15
+ GMT: 'Europe/London',
16
+ BST: 'Europe/London',
17
+ CET: 'Europe/Paris',
18
+ CEST: 'Europe/Paris',
19
+ };
20
+ export default class Schedule extends Command {
21
+ static topic = 'pg';
22
+ static description = 'schedule daily backups for given database';
23
+ static flags = {
24
+ at: flags.string({ required: true, description: "at a specific (24h) hour in the given timezone. Defaults to UTC. --at '[HOUR]:00 [TIMEZONE]'" }),
25
+ app: flags.app({ required: true }),
26
+ remote: flags.remote(),
27
+ };
28
+ static args = {
29
+ database: Args.string({ description: `${nls('pg:database:arg:description')} ${nls('pg:database:arg:description:default:suffix')}` }),
30
+ };
31
+ parseDate = function (at) {
32
+ const m = at.match(/^(0?\d|1\d|2[0-3]):00 ?(\S*)$/);
33
+ if (m) {
34
+ const [, hour, timezone] = m;
35
+ return { hour, timezone: TZ[timezone.toUpperCase()] || timezone || 'UTC' };
36
+ }
37
+ return ux.error("Invalid schedule format: expected --at '[HOUR]:00 [TIMEZONE]'", { exit: 1 });
38
+ };
39
+ async run() {
40
+ const { flags, args } = await this.parse(Schedule);
41
+ const { app } = flags;
42
+ const { database } = args;
43
+ const schedule = this.parseDate(flags.at);
44
+ const dbResolver = new utils.pg.DatabaseResolver(this.heroku);
45
+ const attachment = await dbResolver.getAttachment(app, database);
46
+ const { addon: db, name } = attachment;
47
+ const at = color.cyan(`${schedule.hour}:00 ${schedule.timezone}`);
48
+ const pgResponse = await this.heroku.get(`/client/v11/databases/${db.id}`, { hostname: utils.pg.host() })
49
+ .catch((error) => {
50
+ if (error.statusCode !== 404)
51
+ throw error;
52
+ ux.error(`${color.datastore(db.name)} is not yet provisioned.\nRun ${color.cyan.bold('heroku addons:wait')} to wait until the db is provisioned.`, { exit: 1 });
53
+ });
54
+ const { body: dbInfo } = pgResponse || { body: null };
55
+ if (dbInfo) {
56
+ const dbProtected = /On/.test(dbInfo.info.find(attribute => attribute.name === 'Continuous Protection')?.values[0] || '');
57
+ if (dbProtected) {
58
+ ux.warn('Continuous protection is already enabled for this database. Logical backups of large databases are likely to fail.');
59
+ ux.warn('See https://devcenter.heroku.com/articles/heroku-postgres-data-safety-and-continuous-protection#physical-backups-on-heroku-postgres.');
60
+ }
61
+ }
62
+ ux.action.start(`Scheduling automatic daily backups of ${color.datastore(db.name)} at ${at}`);
63
+ schedule.schedule_name = name + '_URL';
64
+ await this.heroku.post(`/client/v11/databases/${db.id}/transfer-schedules`, {
65
+ body: schedule, hostname: utils.pg.host(),
66
+ });
67
+ ux.action.stop();
68
+ }
69
+ }
@@ -0,0 +1,10 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Schedules extends Command {
3
+ static description: string;
4
+ static flags: {
5
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ };
8
+ static topic: string;
9
+ run(): Promise<void>;
10
+ }
@@ -0,0 +1,27 @@
1
+ import { color, hux, utils } from '@heroku/heroku-cli-util';
2
+ import { Command, flags } from '@heroku-cli/command';
3
+ import { ux } from '@oclif/core';
4
+ export default class Schedules extends Command {
5
+ static description = 'list backup schedule';
6
+ static flags = {
7
+ app: flags.app({ required: true }),
8
+ remote: flags.remote(),
9
+ };
10
+ static topic = 'pg';
11
+ async run() {
12
+ const { flags } = await this.parse(Schedules);
13
+ const { app } = flags;
14
+ const dbResolver = new utils.pg.DatabaseResolver(this.heroku);
15
+ const db = await dbResolver.getArbitraryLegacyDB(app);
16
+ const { body: schedules } = await this.heroku.get(`/client/v11/databases/${db.id}/transfer-schedules`, { hostname: utils.pg.host() });
17
+ if (schedules.length === 0) {
18
+ ux.warn(`No backup schedules found on ${color.app(app)}\nUse ${color.code('heroku pg:backups:schedule')} to set one up`);
19
+ }
20
+ else {
21
+ hux.styledHeader('Backup Schedules');
22
+ for (const s of schedules) {
23
+ ux.stdout(`${color.name(s.name)}: daily at ${s.hour}:00 ${s.timezone}\n`);
24
+ }
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,13 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Unschedule extends Command {
3
+ static args: {
4
+ database: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static flags: {
8
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ };
11
+ static topic: string;
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,42 @@
1
+ import { color, utils } from '@heroku/heroku-cli-util';
2
+ import { Command, flags } from '@heroku-cli/command';
3
+ import { Args, ux } from '@oclif/core';
4
+ import { nls } from '../../../nls.js';
5
+ export default class Unschedule extends Command {
6
+ static args = {
7
+ database: Args.string({ description: `${nls('pg:database:arg:description')} ${nls('pg:database:arg:description:arbitrary:suffix')}` }),
8
+ };
9
+ static description = 'stop daily backups';
10
+ static flags = {
11
+ app: flags.app({ required: true }),
12
+ remote: flags.remote(),
13
+ };
14
+ static topic = 'pg';
15
+ async run() {
16
+ const { args, flags } = await this.parse(Unschedule);
17
+ const { app } = flags;
18
+ const { database } = args;
19
+ let db = database;
20
+ if (!db) {
21
+ const dbResolver = new utils.pg.DatabaseResolver(this.heroku);
22
+ const appDB = await dbResolver.getArbitraryLegacyDB(app);
23
+ const { body: schedules } = await this.heroku.get(`/client/v11/databases/${appDB.id}/transfer-schedules`, { hostname: utils.pg.host() });
24
+ if (schedules.length === 0)
25
+ throw new Error(`No schedules on ${color.app(app)}`);
26
+ if (schedules.length > 1) {
27
+ throw new Error(`Specify schedule on ${color.app(app)}. Existing schedules: ${schedules.map(s => color.datastore(s.name))
28
+ .join(', ')}`);
29
+ }
30
+ db = schedules[0].name;
31
+ }
32
+ ux.action.start(`Unscheduling ${color.datastore(db)} daily backups`);
33
+ const dbResolver = new utils.pg.DatabaseResolver(this.heroku);
34
+ const { addon } = await dbResolver.getAttachment(app, db);
35
+ const { body: schedules } = await this.heroku.get(`/client/v11/databases/${addon.id}/transfer-schedules`, { hostname: utils.pg.host() });
36
+ const schedule = schedules.find(s => s.name.match(new RegExp(`${db}`, 'i')));
37
+ if (!schedule)
38
+ throw new Error(`No daily backups found for ${color.datastore(addon.name)}`);
39
+ await this.heroku.delete(`/client/v11/databases/${addon.id}/transfer-schedules/${schedule.uuid}`, { hostname: utils.pg.host() });
40
+ ux.action.stop();
41
+ }
42
+ }
@@ -0,0 +1,13 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Url extends Command {
3
+ static args: {
4
+ backup_id: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static flags: {
8
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ };
11
+ static topic: string;
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,37 @@
1
+ import { color, utils } from '@heroku/heroku-cli-util';
2
+ import { Command, flags } from '@heroku-cli/command';
3
+ import { Args, ux } from '@oclif/core';
4
+ import pgBackupsApi from '../../../lib/pg/backups.js';
5
+ export default class Url extends Command {
6
+ static args = {
7
+ backup_id: Args.string({ description: 'ID of the backup. If omitted, we use the last backup ID.' }),
8
+ };
9
+ static description = 'get secret but publicly accessible URL of a backup';
10
+ static flags = {
11
+ app: flags.app({ required: true }),
12
+ remote: flags.remote(),
13
+ };
14
+ static topic = 'pg';
15
+ async run() {
16
+ const { args, flags } = await this.parse(Url);
17
+ const { backup_id } = args;
18
+ const { app } = flags;
19
+ let num;
20
+ if (backup_id) {
21
+ num = await pgBackupsApi(app, this.heroku).num(backup_id);
22
+ if (!num)
23
+ throw new Error(`Invalid Backup: ${backup_id}`);
24
+ }
25
+ else {
26
+ const { body: transfers } = await this.heroku.get(`/client/v11/apps/${app}/transfers`, { hostname: utils.pg.host() });
27
+ const succeededBackups = transfers.filter(t => t.succeeded && t.to_type === 'gof3r');
28
+ succeededBackups.sort((a, b) => a.created_at.localeCompare(b.created_at));
29
+ const lastBackup = succeededBackups.pop();
30
+ if (!lastBackup)
31
+ throw new Error(`No backups on ${color.app(app)}. Capture one with ${color.cyan.bold('heroku pg:backups:capture')}`);
32
+ num = lastBackup.num;
33
+ }
34
+ const { body: info } = await this.heroku.post(`/client/v11/apps/${app}/transfers/${num}/actions/public-url`, { hostname: utils.pg.host() });
35
+ ux.stdout(info.url + '\n');
36
+ }
37
+ }
@@ -0,0 +1,13 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Bloat extends Command {
3
+ static description: string;
4
+ static topic: string;
5
+ static args: {
6
+ database: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -1,11 +1,7 @@
1
- export {};
2
- /*
3
- import {Command, flags} from '@heroku-cli/command'
4
- import {Args} from '@oclif/core'
5
- import {database} from '../../lib/pg/fetcher'
6
- import {exec} from '../../lib/pg/psql'
7
- import {nls} from '../../nls'
8
-
1
+ import { Command, flags } from '@heroku-cli/command';
2
+ import { Args, ux } from '@oclif/core';
3
+ import { utils } from '@heroku/heroku-cli-util';
4
+ import { nls } from '../../nls.js';
9
5
  const query = `
10
6
  WITH constants AS (
11
7
  SELECT current_setting('block_size')::numeric AS bs, 23 AS hdr, 4 AS ma
@@ -67,27 +63,24 @@ SELECT
67
63
  FROM
68
64
  index_bloat) bloat_summary
69
65
  ORDER BY raw_waste DESC, bloat DESC
70
- `
71
-
66
+ `;
72
67
  export default class Bloat extends Command {
73
- static topic = 'pg';
74
- static description = 'show table and index bloat in your database ordered by most wasteful';
75
- static flags = {
76
- app: flags.app({required: true}),
77
- remote: flags.remote(),
78
- };
79
-
80
- static args = {
81
- database: Args.string({description: `${nls('pg:database:arg:description')} ${nls('pg:database:arg:description:default:suffix')}`}),
82
- };
83
-
84
- public async run(): Promise<void> {
85
- const {flags, args} = await this.parse(Bloat)
86
- const {app} = flags
87
- const db = await database(this.heroku, app, args.database)
88
- const output = await exec(db, query)
89
- process.stdout.write(output)
90
- }
68
+ static description = 'show table and index bloat in your database ordered by most wasteful';
69
+ static topic = 'pg';
70
+ static args = {
71
+ database: Args.string({ description: `${nls('pg:database:arg:description')} ${nls('pg:database:arg:description:default:suffix')}` }),
72
+ };
73
+ static flags = {
74
+ app: flags.app({ required: true }),
75
+ remote: flags.remote(),
76
+ };
77
+ async run() {
78
+ const { flags, args } = await this.parse(Bloat);
79
+ const { app } = flags;
80
+ const dbResolver = new utils.pg.DatabaseResolver(this.heroku);
81
+ const db = await dbResolver.getDatabase(app, args.database);
82
+ const psqlService = new utils.pg.PsqlService(db);
83
+ const output = await psqlService.execQuery(query);
84
+ ux.stdout(output);
85
+ }
91
86
  }
92
-
93
- */
@@ -0,0 +1,13 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Blocking extends Command {
3
+ static description: string;
4
+ static topic: string;
5
+ static args: {
6
+ database: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,42 @@
1
+ import { Command, flags } from '@heroku-cli/command';
2
+ import { Args, ux } from '@oclif/core';
3
+ import { utils } from '@heroku/heroku-cli-util';
4
+ import tsheredoc from 'tsheredoc';
5
+ import { nls } from '../../nls.js';
6
+ const heredoc = tsheredoc.default;
7
+ export default class Blocking extends Command {
8
+ static description = 'display queries holding locks other queries are waiting to be released';
9
+ static topic = 'pg';
10
+ static args = {
11
+ database: Args.string({ description: `${nls('pg:database:arg:description')} ${nls('pg:database:arg:description:default:suffix')}` }),
12
+ };
13
+ static flags = {
14
+ app: flags.app({ required: true }),
15
+ remote: flags.remote(),
16
+ };
17
+ async run() {
18
+ const { flags, args } = await this.parse(Blocking);
19
+ const { app } = flags;
20
+ const query = heredoc `
21
+ SELECT bl.pid AS blocked_pid,
22
+ ka.query AS blocking_statement,
23
+ now() - ka.query_start AS blocking_duration,
24
+ kl.pid AS blocking_pid,
25
+ a.query AS blocked_statement,
26
+ now() - a.query_start AS blocked_duration
27
+ FROM pg_catalog.pg_locks bl
28
+ JOIN pg_catalog.pg_stat_activity a
29
+ ON bl.pid = a.pid
30
+ JOIN pg_catalog.pg_locks kl
31
+ JOIN pg_catalog.pg_stat_activity ka
32
+ ON kl.pid = ka.pid
33
+ ON bl.transactionid = kl.transactionid AND bl.pid != kl.pid
34
+ WHERE NOT bl.granted
35
+ `;
36
+ const dbResolver = new utils.pg.DatabaseResolver(this.heroku);
37
+ const db = await dbResolver.getDatabase(app, args.database);
38
+ const psqlService = new utils.pg.PsqlService(db);
39
+ const output = await psqlService.execQuery(query);
40
+ ux.stdout(output);
41
+ }
42
+ }
@@ -0,0 +1,15 @@
1
+ import { Command } from '@heroku-cli/command';
2
+ export default class Attach extends Command {
3
+ static args: {
4
+ database: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ as: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ remote: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ };
13
+ static topic: string;
14
+ run(): Promise<void>;
15
+ }