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.
- package/README.md +17 -2
- package/lib/commands/access/add.d.ts +5 -5
- package/lib/commands/access/add.js +13 -13
- package/lib/commands/access/index.d.ts +2 -2
- package/lib/commands/access/index.js +7 -8
- package/lib/commands/access/remove.d.ts +1 -1
- package/lib/commands/access/remove.js +5 -5
- package/lib/commands/access/update.d.ts +5 -5
- package/lib/commands/access/update.js +9 -9
- package/lib/commands/accounts/add.d.ts +1 -1
- package/lib/commands/accounts/add.js +3 -2
- package/lib/commands/accounts/current.js +4 -5
- package/lib/commands/accounts/index.js +2 -1
- package/lib/commands/accounts/remove.d.ts +1 -1
- package/lib/commands/accounts/remove.js +3 -2
- package/lib/commands/accounts/set.d.ts +1 -1
- package/lib/commands/accounts/set.js +3 -2
- package/lib/commands/addons/attach.d.ts +6 -6
- package/lib/commands/addons/attach.js +14 -14
- package/lib/commands/addons/create.d.ts +9 -10
- package/lib/commands/addons/create.js +31 -29
- package/lib/commands/addons/destroy.d.ts +9 -9
- package/lib/commands/addons/destroy.js +19 -19
- package/lib/commands/addons/detach.d.ts +4 -4
- package/lib/commands/addons/detach.js +9 -9
- package/lib/commands/addons/docs.d.ts +5 -5
- package/lib/commands/addons/docs.js +9 -9
- package/lib/commands/addons/index.d.ts +4 -4
- package/lib/commands/addons/index.js +28 -26
- package/lib/commands/addons/info.d.ts +4 -4
- package/lib/commands/addons/info.js +18 -14
- package/lib/commands/addons/open.d.ts +26 -27
- package/lib/commands/addons/open.js +21 -24
- package/lib/commands/addons/rename.d.ts +2 -2
- package/lib/commands/addons/rename.js +6 -6
- package/lib/commands/addons/services.d.ts +1 -1
- package/lib/commands/addons/services.js +5 -4
- package/lib/commands/addons/upgrade.d.ts +10 -11
- package/lib/commands/addons/upgrade.js +74 -70
- package/lib/commands/addons/wait.d.ts +5 -5
- package/lib/commands/addons/wait.js +10 -10
- package/lib/commands/apps/create.d.ts +12 -12
- package/lib/commands/apps/create.js +50 -58
- package/lib/commands/apps/destroy.d.ts +6 -6
- package/lib/commands/apps/destroy.js +10 -10
- package/lib/commands/apps/errors.d.ts +3 -3
- package/lib/commands/apps/errors.js +24 -12
- package/lib/commands/apps/favorites/add.d.ts +1 -1
- package/lib/commands/apps/favorites/add.js +4 -4
- package/lib/commands/apps/favorites/index.d.ts +1 -1
- package/lib/commands/apps/favorites/index.js +4 -4
- package/lib/commands/apps/favorites/remove.d.ts +1 -1
- package/lib/commands/apps/favorites/remove.js +3 -3
- package/lib/commands/apps/index.d.ts +4 -4
- package/lib/commands/apps/index.js +21 -21
- package/lib/commands/apps/info.d.ts +8 -8
- package/lib/commands/apps/info.js +31 -31
- package/lib/commands/apps/join.d.ts +2 -2
- package/lib/commands/apps/join.js +3 -3
- package/lib/commands/apps/leave.d.ts +1 -1
- package/lib/commands/apps/leave.js +3 -3
- package/lib/commands/apps/lock.d.ts +2 -2
- package/lib/commands/apps/lock.js +5 -5
- package/lib/commands/apps/open.d.ts +5 -5
- package/lib/commands/apps/open.js +11 -9
- package/lib/commands/apps/rename.d.ts +6 -6
- package/lib/commands/apps/rename.js +13 -13
- package/lib/commands/apps/stacks/index.d.ts +2 -2
- package/lib/commands/apps/stacks/index.js +5 -6
- package/lib/commands/apps/stacks/set.d.ts +4 -4
- package/lib/commands/apps/stacks/set.js +9 -9
- package/lib/commands/apps/transfer.d.ts +8 -8
- package/lib/commands/apps/transfer.js +33 -32
- package/lib/commands/apps/unlock.d.ts +2 -2
- package/lib/commands/apps/unlock.js +3 -3
- package/lib/commands/auth/2fa/disable.d.ts +1 -1
- package/lib/commands/auth/2fa/disable.js +3 -2
- package/lib/commands/auth/2fa/index.d.ts +1 -1
- package/lib/commands/auth/2fa/index.js +4 -4
- package/lib/commands/auth/login.d.ts +3 -3
- package/lib/commands/auth/login.js +6 -6
- package/lib/commands/auth/logout.js +1 -0
- package/lib/commands/auth/token.js +4 -2
- package/lib/commands/authorizations/create.js +2 -1
- package/lib/commands/authorizations/index.js +3 -4
- package/lib/commands/authorizations/revoke.d.ts +2 -2
- package/lib/commands/authorizations/revoke.js +6 -6
- package/lib/commands/autocomplete/create.d.ts +29 -0
- package/lib/commands/autocomplete/create.js +223 -0
- package/lib/commands/autocomplete/doctor.d.ts +12 -0
- package/lib/commands/autocomplete/doctor.js +111 -0
- package/lib/commands/autocomplete/index.d.ts +12 -0
- package/lib/commands/autocomplete/index.js +65 -0
- package/lib/commands/autocomplete/options.d.ts +25 -0
- package/lib/commands/autocomplete/options.js +208 -0
- package/lib/commands/autocomplete/script.d.ts +10 -0
- package/lib/commands/autocomplete/script.js +20 -0
- package/lib/commands/buildpacks/index.js +2 -3
- package/lib/commands/buildpacks/remove.d.ts +4 -4
- package/lib/commands/buildpacks/remove.js +9 -8
- package/lib/commands/certs/add.d.ts +8 -8
- package/lib/commands/certs/add.js +27 -29
- package/lib/commands/certs/auto/disable.d.ts +2 -2
- package/lib/commands/certs/auto/disable.js +4 -4
- package/lib/commands/certs/auto/enable.d.ts +2 -2
- package/lib/commands/certs/auto/enable.js +8 -9
- package/lib/commands/certs/auto/index.d.ts +2 -2
- package/lib/commands/certs/auto/index.js +16 -17
- package/lib/commands/certs/generate.d.ts +2 -3
- package/lib/commands/certs/generate.js +1 -2
- package/lib/commands/certs/index.d.ts +1 -1
- package/lib/commands/certs/index.js +3 -3
- package/lib/commands/certs/info.d.ts +4 -4
- package/lib/commands/certs/info.js +6 -6
- package/lib/commands/certs/remove.d.ts +3 -3
- package/lib/commands/certs/remove.js +5 -5
- package/lib/commands/certs/update.d.ts +8 -8
- package/lib/commands/certs/update.js +19 -19
- package/lib/commands/ci/config/get.d.ts +5 -5
- package/lib/commands/ci/config/get.js +8 -8
- package/lib/commands/ci/config/index.d.ts +2 -2
- package/lib/commands/ci/config/index.js +8 -9
- package/lib/commands/ci/config/set.d.ts +2 -2
- package/lib/commands/ci/config/set.js +10 -10
- package/lib/commands/ci/config/unset.d.ts +3 -3
- package/lib/commands/ci/config/unset.js +6 -5
- package/lib/commands/ci/index.d.ts +2 -2
- package/lib/commands/ci/index.js +5 -4
- package/lib/commands/ci/info.js +3 -2
- package/lib/commands/ci/last.d.ts +1 -1
- package/lib/commands/ci/last.js +4 -3
- package/lib/commands/ci/migrate-manifest.d.ts +1 -1
- package/lib/commands/ci/migrate-manifest.js +4 -4
- package/lib/commands/ci/open.d.ts +2 -2
- package/lib/commands/ci/open.js +4 -3
- package/lib/commands/ci/rerun.d.ts +4 -4
- package/lib/commands/ci/rerun.js +9 -8
- package/lib/commands/ci/run.d.ts +1 -1
- package/lib/commands/ci/run.js +9 -7
- package/lib/commands/clients/create.js +4 -3
- package/lib/commands/clients/destroy.d.ts +1 -1
- package/lib/commands/clients/destroy.js +4 -4
- package/lib/commands/clients/index.js +5 -4
- package/lib/commands/clients/info.d.ts +3 -3
- package/lib/commands/clients/info.js +5 -5
- package/lib/commands/clients/rotate.d.ts +3 -3
- package/lib/commands/clients/rotate.js +5 -6
- package/lib/commands/clients/update.d.ts +3 -3
- package/lib/commands/clients/update.js +5 -5
- package/lib/commands/config/edit.d.ts +5 -5
- package/lib/commands/config/edit.js +21 -22
- package/lib/commands/config/get.d.ts +5 -4
- package/lib/commands/config/get.js +34 -13
- package/lib/commands/config/index.d.ts +1 -1
- package/lib/commands/config/index.js +4 -5
- package/lib/commands/config/set.d.ts +2 -2
- package/lib/commands/config/set.js +17 -18
- package/lib/commands/config/unset.d.ts +1 -1
- package/lib/commands/config/unset.js +12 -11
- package/lib/commands/container/pull.d.ts +4 -4
- package/lib/commands/container/pull.js +12 -12
- package/lib/commands/container/push.d.ts +6 -6
- package/lib/commands/container/push.js +18 -18
- package/lib/commands/container/release.d.ts +4 -4
- package/lib/commands/container/release.js +16 -15
- package/lib/commands/container/rm.d.ts +4 -4
- package/lib/commands/container/rm.js +10 -9
- package/lib/commands/container/run.d.ts +5 -5
- package/lib/commands/container/run.js +14 -14
- package/lib/commands/dashboard.d.ts +1 -1
- package/lib/commands/dashboard.js +19 -20
- package/lib/commands/domains/add.d.ts +5 -5
- package/lib/commands/domains/add.js +17 -18
- package/lib/commands/domains/clear.js +2 -2
- package/lib/commands/domains/index.d.ts +5 -3
- package/lib/commands/domains/index.js +99 -69
- package/lib/commands/domains/info.js +2 -1
- package/lib/commands/domains/remove.d.ts +3 -3
- package/lib/commands/domains/remove.js +5 -5
- package/lib/commands/domains/update.d.ts +4 -4
- package/lib/commands/domains/update.js +8 -8
- package/lib/commands/drains/add.d.ts +3 -3
- package/lib/commands/drains/add.js +7 -7
- package/lib/commands/drains/index.d.ts +1 -1
- package/lib/commands/drains/index.js +5 -6
- package/lib/commands/drains/remove.d.ts +4 -4
- package/lib/commands/drains/remove.js +6 -6
- package/lib/commands/features/disable.d.ts +3 -3
- package/lib/commands/features/disable.js +8 -8
- package/lib/commands/features/enable.d.ts +3 -3
- package/lib/commands/features/enable.js +8 -8
- package/lib/commands/features/index.js +2 -3
- package/lib/commands/features/info.d.ts +4 -4
- package/lib/commands/features/info.js +10 -9
- package/lib/commands/git/clone.d.ts +2 -2
- package/lib/commands/git/clone.js +7 -6
- package/lib/commands/git/remote.js +6 -5
- package/lib/commands/keys/add.d.ts +3 -4
- package/lib/commands/keys/add.js +20 -18
- package/lib/commands/keys/index.js +4 -5
- package/lib/commands/keys/remove.d.ts +2 -2
- package/lib/commands/keys/remove.js +8 -8
- package/lib/commands/labs/disable.d.ts +3 -3
- package/lib/commands/labs/disable.js +13 -13
- package/lib/commands/labs/enable.d.ts +4 -4
- package/lib/commands/labs/enable.js +11 -11
- package/lib/commands/labs/index.d.ts +2 -2
- package/lib/commands/labs/index.js +6 -7
- package/lib/commands/labs/info.d.ts +3 -3
- package/lib/commands/labs/info.js +8 -7
- package/lib/commands/local/index.d.ts +4 -4
- package/lib/commands/local/index.js +21 -21
- package/lib/commands/local/run.d.ts +1 -1
- package/lib/commands/local/run.js +4 -3
- package/lib/commands/logs.d.ts +1 -1
- package/lib/commands/logs.js +22 -21
- package/lib/commands/maintenance/off.d.ts +1 -1
- package/lib/commands/maintenance/off.js +2 -2
- package/lib/commands/maintenance/on.d.ts +1 -1
- package/lib/commands/maintenance/on.js +2 -2
- package/lib/commands/members/index.d.ts +3 -3
- package/lib/commands/members/index.js +18 -13
- package/lib/commands/members/remove.d.ts +1 -1
- package/lib/commands/members/remove.js +6 -6
- package/lib/commands/notifications/index.d.ts +3 -3
- package/lib/commands/notifications/index.js +9 -10
- package/lib/commands/orgs/open.js +2 -2
- package/lib/commands/pg/backups/cancel.d.ts +13 -0
- package/lib/commands/pg/backups/cancel.js +43 -0
- package/lib/commands/pg/backups/capture.d.ts +15 -0
- package/lib/commands/pg/backups/capture.js +62 -0
- package/lib/commands/pg/backups/delete.d.ts +15 -0
- package/lib/commands/pg/backups/delete.js +34 -0
- package/lib/commands/pg/backups/download.d.ts +14 -0
- package/lib/commands/pg/backups/download.js +54 -0
- package/lib/commands/pg/backups/index.d.ts +20 -0
- package/lib/commands/pg/backups/index.js +121 -0
- package/lib/commands/pg/backups/info.d.ts +17 -0
- package/lib/commands/pg/backups/info.js +86 -0
- package/lib/commands/pg/backups/restore.d.ts +20 -0
- package/lib/commands/pg/backups/restore.js +134 -0
- package/lib/commands/pg/backups/schedule.d.ts +21 -0
- package/lib/commands/pg/backups/schedule.js +69 -0
- package/lib/commands/pg/backups/schedules.d.ts +10 -0
- package/lib/commands/pg/backups/schedules.js +27 -0
- package/lib/commands/pg/backups/unschedule.d.ts +13 -0
- package/lib/commands/pg/backups/unschedule.js +42 -0
- package/lib/commands/pg/backups/url.d.ts +13 -0
- package/lib/commands/pg/backups/url.js +37 -0
- package/lib/commands/pg/bloat.d.ts +13 -0
- package/lib/{oldCommands → commands}/pg/bloat.js +23 -30
- package/lib/commands/pg/blocking.d.ts +13 -0
- package/lib/commands/pg/blocking.js +42 -0
- package/lib/commands/pg/connection-pooling/attach.d.ts +15 -0
- package/lib/commands/pg/connection-pooling/attach.js +38 -0
- package/lib/commands/pg/copy.d.ts +18 -0
- package/lib/commands/pg/copy.js +83 -0
- package/lib/commands/pg/credentials/create.d.ts +15 -0
- package/lib/commands/pg/credentials/create.js +39 -0
- package/lib/commands/pg/credentials/destroy.d.ts +16 -0
- package/lib/commands/pg/credentials/destroy.js +45 -0
- package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
- package/lib/commands/pg/credentials/repair-default.js +38 -0
- package/lib/commands/pg/credentials/rotate.d.ts +17 -0
- package/lib/commands/pg/credentials/rotate.js +79 -0
- package/lib/commands/pg/credentials/url.d.ts +14 -0
- package/lib/commands/pg/credentials/url.js +61 -0
- package/lib/commands/pg/credentials.d.ts +16 -0
- package/lib/commands/pg/credentials.js +61 -0
- package/lib/commands/pg/diagnose.d.ts +18 -0
- package/lib/commands/pg/diagnose.js +106 -0
- package/lib/commands/pg/info.d.ts +14 -0
- package/lib/commands/pg/info.js +91 -0
- package/lib/commands/pg/kill.d.ts +15 -0
- package/lib/commands/pg/kill.js +32 -0
- package/lib/commands/pg/killall.d.ts +13 -0
- package/lib/commands/pg/killall.js +24 -0
- package/lib/commands/pg/links/create.d.ts +16 -0
- package/lib/commands/pg/links/create.js +57 -0
- package/lib/commands/pg/links/destroy.d.ts +16 -0
- package/lib/commands/pg/links/destroy.js +40 -0
- package/lib/commands/pg/links/index.d.ts +13 -0
- package/lib/commands/pg/links/index.js +62 -0
- package/lib/commands/pg/locks.d.ts +15 -0
- package/lib/commands/pg/locks.js +53 -0
- package/lib/commands/pg/maintenance/index.d.ts +13 -0
- package/lib/commands/pg/maintenance/index.js +27 -0
- package/lib/commands/pg/maintenance/run.d.ts +14 -0
- package/lib/commands/pg/maintenance/run.js +34 -0
- package/lib/commands/pg/maintenance/window.d.ts +15 -0
- package/lib/commands/pg/maintenance/window.js +41 -0
- package/lib/commands/pg/outliers.d.ts +19 -0
- package/lib/commands/pg/outliers.js +100 -0
- package/lib/commands/pg/promote.d.ts +14 -0
- package/lib/commands/pg/promote.js +167 -0
- package/lib/commands/pg/ps.d.ts +14 -0
- package/lib/commands/pg/ps.js +52 -0
- package/lib/commands/pg/psql.d.ts +16 -0
- package/lib/commands/pg/psql.js +47 -0
- package/lib/commands/pg/pull.d.ts +18 -0
- package/lib/commands/pg/pull.js +87 -0
- package/lib/commands/pg/push.d.ts +18 -0
- package/lib/commands/pg/push.js +83 -0
- package/lib/commands/pg/reset.d.ts +15 -0
- package/lib/commands/pg/reset.js +43 -0
- package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-analyze.js +28 -0
- package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-buffers.js +26 -0
- package/lib/commands/pg/settings/auto-explain/log-format.d.ts +12 -0
- package/lib/commands/pg/settings/auto-explain/log-format.js +22 -0
- package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-min-duration.js +29 -0
- package/lib/commands/pg/settings/auto-explain/log-nested-statements.d.ts +12 -0
- package/lib/commands/pg/settings/auto-explain/log-nested-statements.js +20 -0
- package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-triggers.js +26 -0
- package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
- package/lib/commands/pg/settings/auto-explain/log-verbose.js +29 -0
- package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
- package/lib/commands/pg/settings/auto-explain.js +34 -0
- package/lib/commands/pg/settings/data-connector-details-logs.d.ts +17 -0
- package/lib/commands/pg/settings/data-connector-details-logs.js +30 -0
- package/lib/commands/pg/settings/index.d.ts +13 -0
- package/lib/commands/pg/settings/index.js +33 -0
- package/lib/commands/pg/settings/log-connections.d.ts +17 -0
- package/lib/commands/pg/settings/log-connections.js +30 -0
- package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
- package/lib/commands/pg/settings/log-lock-waits.js +27 -0
- package/lib/commands/pg/settings/log-min-duration-statement.d.ts +12 -0
- package/lib/commands/pg/settings/log-min-duration-statement.js +29 -0
- package/lib/commands/pg/settings/log-min-error-statement.d.ts +12 -0
- package/lib/commands/pg/settings/log-min-error-statement.js +23 -0
- package/lib/commands/pg/settings/log-statement.d.ts +12 -0
- package/lib/commands/pg/settings/log-statement.js +26 -0
- package/lib/commands/pg/settings/track-functions.d.ts +12 -0
- package/lib/commands/pg/settings/track-functions.js +25 -0
- package/lib/commands/pg/unfollow.d.ts +14 -0
- package/lib/commands/pg/unfollow.js +38 -0
- package/lib/commands/pg/upgrade/cancel.d.ts +13 -0
- package/lib/commands/pg/upgrade/cancel.js +50 -0
- package/lib/commands/pg/upgrade/dryrun.d.ts +14 -0
- package/lib/commands/pg/upgrade/dryrun.js +50 -0
- package/lib/commands/pg/upgrade/index.d.ts +15 -0
- package/lib/commands/pg/upgrade/index.js +73 -0
- package/lib/commands/pg/upgrade/prepare.d.ts +14 -0
- package/lib/commands/pg/upgrade/prepare.js +51 -0
- package/lib/commands/pg/upgrade/run.d.ts +16 -0
- package/lib/commands/pg/upgrade/run.js +95 -0
- package/lib/commands/pg/upgrade/wait.d.ts +16 -0
- package/lib/commands/pg/upgrade/wait.js +105 -0
- package/lib/commands/pg/vacuum-stats.d.ts +13 -0
- package/lib/{oldCommands → commands}/pg/vacuum-stats.js +25 -29
- package/lib/commands/pg/wait.d.ts +15 -0
- package/lib/commands/pg/wait.js +79 -0
- package/lib/commands/pipelines/add.d.ts +3 -3
- package/lib/commands/pipelines/add.js +13 -13
- package/lib/commands/pipelines/connect.js +2 -1
- package/lib/commands/pipelines/create.d.ts +3 -3
- package/lib/commands/pipelines/create.js +20 -20
- package/lib/commands/pipelines/destroy.d.ts +2 -2
- package/lib/commands/pipelines/destroy.js +5 -5
- package/lib/commands/pipelines/diff.d.ts +3 -3
- package/lib/commands/pipelines/diff.js +12 -13
- package/lib/commands/pipelines/index.js +3 -3
- package/lib/commands/pipelines/info.d.ts +3 -3
- package/lib/commands/pipelines/info.js +10 -9
- package/lib/commands/pipelines/open.d.ts +9 -0
- package/lib/commands/pipelines/open.js +19 -0
- package/lib/commands/pipelines/promote.d.ts +12 -0
- package/lib/commands/pipelines/promote.js +209 -0
- package/lib/commands/pipelines/remove.d.ts +10 -0
- package/lib/commands/pipelines/remove.js +20 -0
- package/lib/commands/pipelines/rename.d.ts +10 -0
- package/lib/commands/pipelines/rename.js +34 -0
- package/lib/commands/pipelines/setup.d.ts +16 -0
- package/lib/commands/pipelines/setup.js +88 -0
- package/lib/commands/pipelines/transfer.d.ts +13 -0
- package/lib/commands/pipelines/transfer.js +60 -0
- package/lib/commands/pipelines/update.d.ts +11 -0
- package/lib/commands/pipelines/update.js +29 -0
- package/lib/commands/prompt.d.ts +1 -1
- package/lib/commands/prompt.js +4 -3
- package/lib/commands/ps/autoscale/disable.d.ts +10 -0
- package/lib/commands/ps/autoscale/disable.js +33 -0
- package/lib/commands/ps/autoscale/enable.d.ts +14 -0
- package/lib/commands/ps/autoscale/enable.js +84 -0
- package/lib/commands/ps/index.d.ts +15 -0
- package/lib/commands/ps/index.js +199 -0
- package/lib/commands/ps/restart.d.ts +18 -0
- package/lib/commands/ps/restart.js +68 -0
- package/lib/commands/ps/scale.d.ts +13 -0
- package/lib/commands/ps/scale.js +81 -0
- package/lib/commands/ps/stop.d.ts +18 -0
- package/lib/commands/ps/stop.js +62 -0
- package/lib/commands/ps/type.d.ts +12 -0
- package/lib/commands/ps/type.js +168 -0
- package/lib/commands/ps/wait.d.ts +13 -0
- package/lib/commands/ps/wait.js +73 -0
- package/lib/commands/regions.d.ts +2 -2
- package/lib/commands/regions.js +6 -5
- package/lib/commands/releases/index.d.ts +14 -0
- package/lib/commands/releases/index.js +155 -0
- package/lib/commands/releases/info.d.ts +15 -0
- package/lib/commands/releases/info.js +75 -0
- package/lib/commands/releases/output.d.ts +13 -0
- package/lib/commands/releases/output.js +33 -0
- package/lib/commands/releases/retry.d.ts +11 -0
- package/lib/commands/releases/retry.js +46 -0
- package/lib/commands/releases/rollback.d.ts +14 -0
- package/lib/commands/releases/rollback.js +54 -0
- package/lib/commands/repl.d.ts +1 -1
- package/lib/commands/repl.js +3 -2
- package/lib/commands/reviewapps/disable.d.ts +3 -3
- package/lib/commands/reviewapps/disable.js +11 -10
- package/lib/commands/reviewapps/enable.d.ts +2 -2
- package/lib/commands/reviewapps/enable.js +9 -8
- package/lib/commands/run/detached.d.ts +16 -0
- package/lib/commands/run/detached.js +54 -0
- package/lib/commands/run/index.d.ts +19 -0
- package/lib/commands/run/index.js +69 -0
- package/lib/commands/run/inside.d.ts +18 -0
- package/lib/commands/run/inside.js +77 -0
- package/lib/commands/sessions/destroy.d.ts +1 -1
- package/lib/commands/sessions/destroy.js +4 -4
- package/lib/commands/sessions/index.js +2 -3
- package/lib/commands/spaces/create.d.ts +23 -0
- package/lib/commands/spaces/create.js +87 -0
- package/lib/commands/spaces/destroy.d.ts +14 -0
- package/lib/commands/spaces/destroy.js +61 -0
- package/lib/commands/spaces/drains/get.d.ts +11 -0
- package/lib/commands/spaces/drains/get.js +23 -0
- package/lib/commands/spaces/drains/set.d.ts +13 -0
- package/lib/commands/spaces/drains/set.js +25 -0
- package/lib/commands/spaces/hosts.d.ts +14 -0
- package/lib/commands/spaces/hosts.js +35 -0
- package/lib/commands/spaces/index.d.ts +16 -0
- package/lib/commands/spaces/index.js +65 -0
- package/lib/commands/spaces/info.d.ts +14 -0
- package/lib/commands/spaces/info.js +48 -0
- package/lib/commands/spaces/peerings/accept.d.ts +15 -0
- package/lib/commands/spaces/peerings/accept.js +33 -0
- package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
- package/lib/commands/spaces/peerings/destroy.js +43 -0
- package/lib/commands/spaces/peerings/index.d.ts +13 -0
- package/lib/commands/spaces/peerings/index.js +31 -0
- package/lib/commands/spaces/peerings/info.d.ts +15 -0
- package/lib/{oldCommands → commands}/spaces/peerings/info.js +32 -40
- package/lib/commands/spaces/ps.d.ts +15 -0
- package/lib/commands/spaces/ps.js +77 -0
- package/lib/commands/spaces/rename.d.ts +11 -0
- package/lib/commands/spaces/rename.js +24 -0
- package/lib/commands/spaces/topology.d.ts +18 -0
- package/lib/commands/spaces/topology.js +87 -0
- package/lib/commands/spaces/transfer.d.ts +11 -0
- package/lib/commands/spaces/transfer.js +33 -0
- package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
- package/lib/commands/spaces/trusted-ips/add.js +49 -0
- package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
- package/lib/commands/spaces/trusted-ips/index.js +59 -0
- package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
- package/lib/commands/spaces/trusted-ips/remove.js +51 -0
- package/lib/commands/spaces/vpn/config.d.ts +14 -0
- package/lib/commands/spaces/vpn/config.js +53 -0
- package/lib/commands/spaces/vpn/connect.d.ts +15 -0
- package/lib/commands/spaces/vpn/connect.js +46 -0
- package/lib/commands/spaces/vpn/connections.d.ts +17 -0
- package/lib/commands/spaces/vpn/connections.js +55 -0
- package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
- package/lib/commands/spaces/vpn/destroy.js +36 -0
- package/lib/commands/spaces/vpn/info.d.ts +16 -0
- package/lib/commands/spaces/vpn/info.js +85 -0
- package/lib/commands/spaces/vpn/update.d.ts +14 -0
- package/lib/commands/spaces/vpn/update.js +36 -0
- package/lib/commands/spaces/vpn/wait.d.ts +16 -0
- package/lib/commands/spaces/vpn/wait.js +69 -0
- package/lib/commands/spaces/wait.d.ts +17 -0
- package/lib/commands/spaces/wait.js +87 -0
- package/lib/commands/status.js +14 -13
- package/lib/commands/teams/index.d.ts +1 -1
- package/lib/commands/teams/index.js +4 -5
- package/lib/commands/telemetry/add.d.ts +6 -5
- package/lib/commands/telemetry/add.js +43 -18
- package/lib/commands/telemetry/index.d.ts +4 -4
- package/lib/commands/telemetry/index.js +19 -17
- package/lib/commands/telemetry/info.d.ts +2 -2
- package/lib/commands/telemetry/info.js +5 -4
- package/lib/commands/telemetry/update.d.ts +3 -3
- package/lib/commands/telemetry/update.js +8 -9
- package/lib/commands/usage/addons.d.ts +2 -2
- package/lib/commands/usage/addons.js +17 -18
- package/lib/global_telemetry.d.ts +2 -2
- package/lib/global_telemetry.js +34 -36
- package/lib/lib/addons/addons_wait.d.ts +1 -1
- package/lib/lib/addons/addons_wait.js +2 -2
- package/lib/lib/addons/create_addon.d.ts +5 -3
- package/lib/lib/addons/create_addon.js +12 -9
- package/lib/lib/addons/destroy_addon.js +17 -9
- package/lib/lib/addons/resolve.d.ts +10 -11
- package/lib/lib/addons/resolve.js +19 -18
- package/lib/lib/addons/util.d.ts +2 -2
- package/lib/lib/addons/util.js +21 -14
- package/lib/lib/api.d.ts +1 -1
- package/lib/lib/api.js +19 -23
- package/lib/lib/apps/app-transfer.d.ts +3 -3
- package/lib/lib/apps/app-transfer.js +11 -11
- package/lib/lib/autocomplete/base.d.ts +11 -1
- package/lib/lib/autocomplete/base.js +33 -49
- package/lib/lib/autocomplete/cache.js +9 -7
- package/lib/lib/autocomplete/completions.d.ts +41 -1
- package/lib/lib/autocomplete/completions.js +258 -290
- package/lib/lib/buildpacks/buildpacks.d.ts +11 -11
- package/lib/lib/buildpacks/buildpacks.js +71 -71
- package/lib/lib/certs/certificate_details.js +3 -4
- package/lib/lib/certs/flags.d.ts +2 -2
- package/lib/lib/certs/flags.js +5 -8
- package/lib/lib/certs/get_cert_and_key.js +2 -2
- package/lib/lib/ci/git.d.ts +12 -2
- package/lib/lib/ci/git.js +20 -6
- package/lib/lib/ci/pipelines.d.ts +5 -5
- package/lib/lib/ci/pipelines.js +17 -17
- package/lib/lib/ci/source.d.ts +8 -0
- package/lib/lib/ci/source.js +22 -10
- package/lib/lib/ci/test-run.js +18 -15
- package/lib/lib/config/quote.js +4 -4
- package/lib/lib/config/util.d.ts +3 -0
- package/lib/lib/config/util.js +5 -0
- package/lib/lib/confirmCommand.js +6 -7
- package/lib/lib/container/docker_helper.d.ts +12 -12
- package/lib/lib/container/docker_helper.js +71 -74
- package/lib/lib/container/helpers.js +2 -2
- package/lib/lib/container/streamer.js +4 -4
- package/lib/lib/data/baseCommand.d.ts +4 -0
- package/lib/lib/data/baseCommand.js +15 -0
- package/lib/lib/data/createPool.d.ts +4 -0
- package/lib/lib/data/createPool.js +6 -0
- package/lib/lib/data/credentialUtils.d.ts +3 -0
- package/lib/lib/data/credentialUtils.js +23 -0
- package/lib/lib/data/displayQuota.d.ts +19 -0
- package/lib/lib/data/displayQuota.js +59 -0
- package/lib/lib/data/parseProvisionOpts.d.ts +15 -0
- package/lib/lib/data/parseProvisionOpts.js +31 -0
- package/lib/lib/data/types.d.ts +177 -0
- package/lib/lib/data/types.js +3 -0
- package/lib/lib/data-scrubber/patterns.d.ts +4 -0
- package/lib/lib/data-scrubber/patterns.js +13 -0
- package/lib/lib/data-scrubber/presets.d.ts +64 -0
- package/lib/lib/data-scrubber/presets.js +112 -0
- package/lib/lib/data-scrubber/scrubber.d.ts +131 -0
- package/lib/lib/data-scrubber/scrubber.js +256 -0
- package/lib/lib/data-scrubber/types.d.ts +169 -0
- package/lib/lib/domains/domains.js +10 -10
- package/lib/lib/domains/wait-for-domain.js +2 -3
- package/lib/lib/local/env-file-validator.js +2 -2
- package/lib/lib/local/fork-foreman.js +3 -2
- package/lib/lib/members/util.js +7 -7
- package/lib/lib/orgs/utils.js +2 -3
- package/lib/lib/pg/backups.d.ts +17 -1
- package/lib/lib/pg/backups.js +132 -156
- package/lib/lib/pg/download.js +7 -7
- package/lib/lib/pg/fetcher.d.ts +3 -1
- package/lib/lib/pg/fetcher.js +3 -162
- package/lib/lib/pg/psql.d.ts +17 -1
- package/lib/lib/pg/psql.js +59 -269
- package/lib/lib/pg/push_pull.d.ts +12 -0
- package/lib/lib/pg/push_pull.js +97 -119
- package/lib/lib/pg/setter.d.ts +16 -1
- package/lib/lib/pg/setter.js +61 -73
- package/lib/lib/pg/types.d.ts +10 -15
- package/lib/lib/pg/util.d.ts +8 -1
- package/lib/lib/pg/util.js +97 -211
- package/lib/lib/pipelines/disambiguate.js +9 -11
- package/lib/lib/pipelines/ownership.d.ts +1 -1
- package/lib/lib/pipelines/ownership.js +6 -12
- package/lib/lib/pipelines/render-pipeline.d.ts +2 -2
- package/lib/lib/pipelines/render-pipeline.js +10 -9
- package/lib/lib/pipelines/setup/create-apps.js +7 -9
- package/lib/lib/pipelines/setup/get-ci-settings.js +2 -2
- package/lib/lib/pipelines/setup/get-github-token.js +1 -3
- package/lib/lib/pipelines/setup/get-name-and-repo.js +27 -22
- package/lib/lib/pipelines/setup/get-settings.js +12 -12
- package/lib/lib/pipelines/setup/poll-app-setups.js +3 -5
- package/lib/lib/pipelines/setup/setup-pipeline.js +1 -3
- package/lib/lib/pipelines/setup/validate.d.ts +1 -1
- package/lib/lib/pipelines/setup/validate.js +2 -2
- package/lib/lib/pipelines/stages.d.ts +2 -2
- package/lib/lib/pipelines/stages.js +4 -4
- package/lib/lib/redis/api.d.ts +22 -22
- package/lib/lib/redis/api.js +62 -67
- package/lib/lib/releases/output.js +1 -1
- package/lib/lib/releases/status_helper.d.ts +1 -1
- package/lib/lib/releases/status_helper.js +16 -8
- package/lib/lib/run/colorize.js +73 -40
- package/lib/lib/run/dyno.d.ts +19 -19
- package/lib/lib/run/dyno.js +181 -174
- package/lib/lib/run/helpers.d.ts +25 -0
- package/lib/lib/run/helpers.js +119 -3
- package/lib/lib/run/log-displayer.d.ts +3 -3
- package/lib/lib/run/log-displayer.js +21 -21
- package/lib/lib/spaces/format.js +36 -23
- package/lib/lib/spaces/hosts.d.ts +9 -1
- package/lib/lib/spaces/hosts.js +28 -41
- package/lib/lib/spaces/peering.d.ts +4 -1
- package/lib/lib/spaces/peering.js +45 -52
- package/lib/lib/spaces/spaces.d.ts +6 -1
- package/lib/lib/spaces/spaces.js +30 -39
- package/lib/lib/spaces/vpn-connections.js +16 -16
- package/lib/lib/telemetry/util.d.ts +1 -1
- package/lib/lib/telemetry/util.js +3 -3
- package/lib/lib/types/completion.d.ts +15 -0
- package/lib/lib/utils/packageParser.js +2 -2
- package/lib/lib/utils/uuid-validate.js +1 -3
- package/lib/lib/webhooks/base.d.ts +2 -2
- package/lib/lib/webhooks/base.js +3 -3
- package/lib/nls-data.d.ts +10 -0
- package/lib/nls-data.js +10 -0
- package/lib/nls.d.ts +1 -1
- package/lib/nls.js +1 -1
- package/npm-shrinkwrap.json +17653 -18259
- package/oclif.manifest.json +9238 -3076
- package/package.json +26 -237
- package/lib/lib/pg/bastion.js +0 -137
- package/lib/lib/pg/config.d.ts +0 -2
- package/lib/lib/pg/config.js +0 -9
- package/lib/lib/pg/host.d.ts +0 -1
- package/lib/lib/pg/host.js +0 -3
- package/lib/lib/spaces/outbound-rules.js +0 -85
- package/lib/oldCommands/autocomplete/create.d.ts +0 -1
- package/lib/oldCommands/autocomplete/create.js +0 -254
- package/lib/oldCommands/autocomplete/doctor.d.ts +0 -1
- package/lib/oldCommands/autocomplete/doctor.js +0 -110
- package/lib/oldCommands/autocomplete/index.d.ts +0 -1
- package/lib/oldCommands/autocomplete/index.js +0 -80
- package/lib/oldCommands/autocomplete/options.d.ts +0 -1
- package/lib/oldCommands/autocomplete/options.js +0 -240
- package/lib/oldCommands/autocomplete/script.d.ts +0 -1
- package/lib/oldCommands/autocomplete/script.js +0 -35
- package/lib/oldCommands/pg/backups/cancel.d.ts +0 -1
- package/lib/oldCommands/pg/backups/cancel.js +0 -56
- package/lib/oldCommands/pg/backups/capture.d.ts +0 -1
- package/lib/oldCommands/pg/backups/capture.js +0 -77
- package/lib/oldCommands/pg/backups/delete.d.ts +0 -1
- package/lib/oldCommands/pg/backups/delete.js +0 -45
- package/lib/oldCommands/pg/backups/download.d.ts +0 -1
- package/lib/oldCommands/pg/backups/download.js +0 -64
- package/lib/oldCommands/pg/backups/index.d.ts +0 -1
- package/lib/oldCommands/pg/backups/index.js +0 -141
- package/lib/oldCommands/pg/backups/info.d.ts +0 -1
- package/lib/oldCommands/pg/backups/info.js +0 -102
- package/lib/oldCommands/pg/backups/restore.d.ts +0 -1
- package/lib/oldCommands/pg/backups/restore.js +0 -150
- package/lib/oldCommands/pg/backups/schedule.d.ts +0 -1
- package/lib/oldCommands/pg/backups/schedule.js +0 -107
- package/lib/oldCommands/pg/backups/schedules.d.ts +0 -1
- package/lib/oldCommands/pg/backups/schedules.js +0 -34
- package/lib/oldCommands/pg/backups/unschedule.d.ts +0 -1
- package/lib/oldCommands/pg/backups/unschedule.js +0 -60
- package/lib/oldCommands/pg/backups/url.d.ts +0 -1
- package/lib/oldCommands/pg/backups/url.js +0 -46
- package/lib/oldCommands/pg/bloat.d.ts +0 -1
- package/lib/oldCommands/pg/blocking.d.ts +0 -1
- package/lib/oldCommands/pg/blocking.js +0 -48
- package/lib/oldCommands/pg/connection-pooling/attach.d.ts +0 -1
- package/lib/oldCommands/pg/connection-pooling/attach.js +0 -53
- package/lib/oldCommands/pg/copy.d.ts +0 -1
- package/lib/oldCommands/pg/copy.js +0 -104
- package/lib/oldCommands/pg/credentials/create.d.ts +0 -1
- package/lib/oldCommands/pg/credentials/create.js +0 -47
- package/lib/oldCommands/pg/credentials/destroy.d.ts +0 -1
- package/lib/oldCommands/pg/credentials/destroy.js +0 -56
- package/lib/oldCommands/pg/credentials/repair-default.d.ts +0 -1
- package/lib/oldCommands/pg/credentials/repair-default.js +0 -43
- package/lib/oldCommands/pg/credentials/rotate.d.ts +0 -1
- package/lib/oldCommands/pg/credentials/rotate.js +0 -97
- package/lib/oldCommands/pg/credentials/url.d.ts +0 -1
- package/lib/oldCommands/pg/credentials/url.js +0 -75
- package/lib/oldCommands/pg/credentials.d.ts +0 -1
- package/lib/oldCommands/pg/credentials.js +0 -77
- package/lib/oldCommands/pg/diagnose.d.ts +0 -1
- package/lib/oldCommands/pg/diagnose.js +0 -136
- package/lib/oldCommands/pg/info.d.ts +0 -1
- package/lib/oldCommands/pg/info.js +0 -110
- package/lib/oldCommands/pg/kill.d.ts +0 -1
- package/lib/oldCommands/pg/kill.js +0 -37
- package/lib/oldCommands/pg/killall.d.ts +0 -1
- package/lib/oldCommands/pg/killall.js +0 -31
- package/lib/oldCommands/pg/links/create.d.ts +0 -1
- package/lib/oldCommands/pg/links/create.js +0 -70
- package/lib/oldCommands/pg/links/destroy.d.ts +0 -1
- package/lib/oldCommands/pg/links/destroy.js +0 -51
- package/lib/oldCommands/pg/links/index.d.ts +0 -1
- package/lib/oldCommands/pg/links/index.js +0 -64
- package/lib/oldCommands/pg/locks.d.ts +0 -1
- package/lib/oldCommands/pg/locks.js +0 -60
- package/lib/oldCommands/pg/maintenance/index.d.ts +0 -1
- package/lib/oldCommands/pg/maintenance/index.js +0 -34
- package/lib/oldCommands/pg/maintenance/run.d.ts +0 -1
- package/lib/oldCommands/pg/maintenance/run.js +0 -44
- package/lib/oldCommands/pg/maintenance/window.d.ts +0 -1
- package/lib/oldCommands/pg/maintenance/window.js +0 -52
- package/lib/oldCommands/pg/outliers.d.ts +0 -1
- package/lib/oldCommands/pg/outliers.js +0 -110
- package/lib/oldCommands/pg/promote.d.ts +0 -1
- package/lib/oldCommands/pg/promote.js +0 -183
- package/lib/oldCommands/pg/ps.d.ts +0 -1
- package/lib/oldCommands/pg/ps.js +0 -56
- package/lib/oldCommands/pg/psql.d.ts +0 -1
- package/lib/oldCommands/pg/psql.js +0 -53
- package/lib/oldCommands/pg/pull.d.ts +0 -1
- package/lib/oldCommands/pg/pull.js +0 -114
- package/lib/oldCommands/pg/push.d.ts +0 -1
- package/lib/oldCommands/pg/push.js +0 -111
- package/lib/oldCommands/pg/reset.d.ts +0 -1
- package/lib/oldCommands/pg/reset.js +0 -49
- package/lib/oldCommands/pg/settings/auto-explain/log-analyze.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain/log-analyze.js +0 -37
- package/lib/oldCommands/pg/settings/auto-explain/log-buffers.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain/log-buffers.js +0 -35
- package/lib/oldCommands/pg/settings/auto-explain/log-format.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain/log-format.js +0 -30
- package/lib/oldCommands/pg/settings/auto-explain/log-min-duration.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain/log-min-duration.js +0 -39
- package/lib/oldCommands/pg/settings/auto-explain/log-nested-statements.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain/log-nested-statements.js +0 -30
- package/lib/oldCommands/pg/settings/auto-explain/log-triggers.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain/log-triggers.js +0 -35
- package/lib/oldCommands/pg/settings/auto-explain/log-verbose.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain/log-verbose.js +0 -40
- package/lib/oldCommands/pg/settings/auto-explain.d.ts +0 -1
- package/lib/oldCommands/pg/settings/auto-explain.js +0 -45
- package/lib/oldCommands/pg/settings/data-connector-details-logs.d.ts +0 -1
- package/lib/oldCommands/pg/settings/data-connector-details-logs.js +0 -40
- package/lib/oldCommands/pg/settings/index.d.ts +0 -1
- package/lib/oldCommands/pg/settings/index.js +0 -41
- package/lib/oldCommands/pg/settings/log-connections.d.ts +0 -1
- package/lib/oldCommands/pg/settings/log-connections.js +0 -40
- package/lib/oldCommands/pg/settings/log-lock-waits.d.ts +0 -1
- package/lib/oldCommands/pg/settings/log-lock-waits.js +0 -36
- package/lib/oldCommands/pg/settings/log-min-duration-statement.d.ts +0 -1
- package/lib/oldCommands/pg/settings/log-min-duration-statement.js +0 -39
- package/lib/oldCommands/pg/settings/log-min-error-statement.d.ts +0 -1
- package/lib/oldCommands/pg/settings/log-min-error-statement.js +0 -31
- package/lib/oldCommands/pg/settings/log-statement.d.ts +0 -1
- package/lib/oldCommands/pg/settings/log-statement.js +0 -33
- package/lib/oldCommands/pg/settings/track-functions.d.ts +0 -1
- package/lib/oldCommands/pg/settings/track-functions.js +0 -33
- package/lib/oldCommands/pg/unfollow.d.ts +0 -1
- package/lib/oldCommands/pg/unfollow.js +0 -46
- package/lib/oldCommands/pg/upgrade/cancel.d.ts +0 -1
- package/lib/oldCommands/pg/upgrade/cancel.js +0 -62
- package/lib/oldCommands/pg/upgrade/dryrun.d.ts +0 -1
- package/lib/oldCommands/pg/upgrade/dryrun.js +0 -62
- package/lib/oldCommands/pg/upgrade/index.d.ts +0 -1
- package/lib/oldCommands/pg/upgrade/index.js +0 -85
- package/lib/oldCommands/pg/upgrade/prepare.d.ts +0 -1
- package/lib/oldCommands/pg/upgrade/prepare.js +0 -64
- package/lib/oldCommands/pg/upgrade/run.d.ts +0 -1
- package/lib/oldCommands/pg/upgrade/run.js +0 -106
- package/lib/oldCommands/pg/upgrade/wait.d.ts +0 -1
- package/lib/oldCommands/pg/upgrade/wait.js +0 -121
- package/lib/oldCommands/pg/upgrade.d.ts +0 -1
- package/lib/oldCommands/pg/upgrade.js +0 -66
- package/lib/oldCommands/pg/vacuum-stats.d.ts +0 -1
- package/lib/oldCommands/pg/wait.d.ts +0 -1
- package/lib/oldCommands/pg/wait.js +0 -96
- package/lib/oldCommands/pipelines/open.d.ts +0 -1
- package/lib/oldCommands/pipelines/open.js +0 -25
- package/lib/oldCommands/pipelines/promote.d.ts +0 -1
- package/lib/oldCommands/pipelines/promote.js +0 -269
- package/lib/oldCommands/pipelines/remove.d.ts +0 -1
- package/lib/oldCommands/pipelines/remove.js +0 -29
- package/lib/oldCommands/pipelines/rename.d.ts +0 -1
- package/lib/oldCommands/pipelines/rename.js +0 -42
- package/lib/oldCommands/pipelines/setup.d.ts +0 -1
- package/lib/oldCommands/pipelines/setup.js +0 -117
- package/lib/oldCommands/pipelines/transfer.d.ts +0 -1
- package/lib/oldCommands/pipelines/transfer.js +0 -78
- package/lib/oldCommands/pipelines/update.d.ts +0 -1
- package/lib/oldCommands/pipelines/update.js +0 -39
- package/lib/oldCommands/ps/autoscale/disable.d.ts +0 -1
- package/lib/oldCommands/ps/autoscale/disable.js +0 -43
- package/lib/oldCommands/ps/autoscale/enable.d.ts +0 -1
- package/lib/oldCommands/ps/autoscale/enable.js +0 -103
- package/lib/oldCommands/ps/index.d.ts +0 -1
- package/lib/oldCommands/ps/index.js +0 -254
- package/lib/oldCommands/ps/restart.d.ts +0 -1
- package/lib/oldCommands/ps/restart.js +0 -78
- package/lib/oldCommands/ps/scale.d.ts +0 -1
- package/lib/oldCommands/ps/scale.js +0 -95
- package/lib/oldCommands/ps/stop.d.ts +0 -1
- package/lib/oldCommands/ps/stop.js +0 -73
- package/lib/oldCommands/ps/type.d.ts +0 -1
- package/lib/oldCommands/ps/type.js +0 -190
- package/lib/oldCommands/ps/wait.d.ts +0 -1
- package/lib/oldCommands/ps/wait.js +0 -93
- package/lib/oldCommands/releases/index.d.ts +0 -1
- package/lib/oldCommands/releases/index.js +0 -156
- package/lib/oldCommands/releases/info.d.ts +0 -1
- package/lib/oldCommands/releases/info.js +0 -68
- package/lib/oldCommands/releases/output.d.ts +0 -1
- package/lib/oldCommands/releases/output.js +0 -42
- package/lib/oldCommands/releases/retry.d.ts +0 -1
- package/lib/oldCommands/releases/retry.js +0 -59
- package/lib/oldCommands/releases/rollback.d.ts +0 -1
- package/lib/oldCommands/releases/rollback.js +0 -65
- package/lib/oldCommands/run/detached.d.ts +0 -1
- package/lib/oldCommands/run/detached.js +0 -61
- package/lib/oldCommands/run/index.d.ts +0 -1
- package/lib/oldCommands/run/index.js +0 -72
- package/lib/oldCommands/run/inside.d.ts +0 -1
- package/lib/oldCommands/run/inside.js +0 -93
- package/lib/oldCommands/spaces/create.d.ts +0 -1
- package/lib/oldCommands/spaces/create.js +0 -99
- package/lib/oldCommands/spaces/destroy.d.ts +0 -1
- package/lib/oldCommands/spaces/destroy.js +0 -79
- package/lib/oldCommands/spaces/drains/get.d.ts +0 -1
- package/lib/oldCommands/spaces/drains/get.js +0 -33
- package/lib/oldCommands/spaces/drains/set.d.ts +0 -1
- package/lib/oldCommands/spaces/drains/set.js +0 -33
- package/lib/oldCommands/spaces/hosts.d.ts +0 -1
- package/lib/oldCommands/spaces/hosts.js +0 -42
- package/lib/oldCommands/spaces/index.d.ts +0 -1
- package/lib/oldCommands/spaces/index.js +0 -74
- package/lib/oldCommands/spaces/info.d.ts +0 -1
- package/lib/oldCommands/spaces/info.js +0 -59
- package/lib/oldCommands/spaces/peerings/accept.d.ts +0 -1
- package/lib/oldCommands/spaces/peerings/accept.js +0 -41
- package/lib/oldCommands/spaces/peerings/destroy.d.ts +0 -1
- package/lib/oldCommands/spaces/peerings/destroy.js +0 -51
- package/lib/oldCommands/spaces/peerings/index.d.ts +0 -1
- package/lib/oldCommands/spaces/peerings/index.js +0 -39
- package/lib/oldCommands/spaces/peerings/info.d.ts +0 -1
- package/lib/oldCommands/spaces/ps.d.ts +0 -1
- package/lib/oldCommands/spaces/ps.js +0 -97
- package/lib/oldCommands/spaces/rename.d.ts +0 -1
- package/lib/oldCommands/spaces/rename.js +0 -29
- package/lib/oldCommands/spaces/topology.d.ts +0 -1
- package/lib/oldCommands/spaces/topology.js +0 -95
- package/lib/oldCommands/spaces/transfer.d.ts +0 -1
- package/lib/oldCommands/spaces/transfer.js +0 -37
- package/lib/oldCommands/spaces/trusted-ips/add.d.ts +0 -1
- package/lib/oldCommands/spaces/trusted-ips/add.js +0 -48
- package/lib/oldCommands/spaces/trusted-ips/index.d.ts +0 -1
- package/lib/oldCommands/spaces/trusted-ips/index.js +0 -57
- package/lib/oldCommands/spaces/trusted-ips/remove.d.ts +0 -1
- package/lib/oldCommands/spaces/trusted-ips/remove.js +0 -50
- package/lib/oldCommands/spaces/vpn/config.d.ts +0 -1
- package/lib/oldCommands/spaces/vpn/config.js +0 -61
- package/lib/oldCommands/spaces/vpn/connect.d.ts +0 -1
- package/lib/oldCommands/spaces/vpn/connect.js +0 -54
- package/lib/oldCommands/spaces/vpn/connections.d.ts +0 -1
- package/lib/oldCommands/spaces/vpn/connections.js +0 -70
- package/lib/oldCommands/spaces/vpn/destroy.d.ts +0 -1
- package/lib/oldCommands/spaces/vpn/destroy.js +0 -48
- package/lib/oldCommands/spaces/vpn/info.d.ts +0 -1
- package/lib/oldCommands/spaces/vpn/info.js +0 -89
- package/lib/oldCommands/spaces/vpn/update.d.ts +0 -1
- package/lib/oldCommands/spaces/vpn/update.js +0 -46
- package/lib/oldCommands/spaces/vpn/wait.d.ts +0 -1
- package/lib/oldCommands/spaces/vpn/wait.js +0 -80
- package/lib/oldCommands/spaces/wait.d.ts +0 -1
- package/lib/oldCommands/spaces/wait.js +0 -106
- package/lib/package.nls.json +0 -6
- /package/lib/lib/{pg/bastion.d.ts → data-scrubber/types.js} +0 -0
- /package/lib/lib/{spaces/outbound-rules.d.ts → types/completion.js} +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { color } 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
|
+
const heredoc = tsheredoc.default;
|
|
6
|
+
export default class Remove extends Command {
|
|
7
|
+
static args = {
|
|
8
|
+
source: Args.string({ description: 'IP address in CIDR notation', required: true }),
|
|
9
|
+
};
|
|
10
|
+
static description = heredoc(`
|
|
11
|
+
Remove a range from the list of trusted IP ranges
|
|
12
|
+
Uses CIDR notation.`);
|
|
13
|
+
static examples = [heredoc(`
|
|
14
|
+
${color.command('heroku trusted-ips:remove --space my-space 192.168.2.0/24')}
|
|
15
|
+
Removed 192.168.2.0/24 from trusted IP ranges on my-space
|
|
16
|
+
`)];
|
|
17
|
+
static flags = {
|
|
18
|
+
confirm: flags.string({ description: 'set to space name to bypass confirm prompt' }),
|
|
19
|
+
space: flags.string({ char: 's', description: 'space to remove rule from', required: true }),
|
|
20
|
+
};
|
|
21
|
+
static hiddenAliases = ['trusted-ips:remove'];
|
|
22
|
+
static topic = 'spaces';
|
|
23
|
+
async run() {
|
|
24
|
+
const { args, flags } = await this.parse(Remove);
|
|
25
|
+
const { space } = flags;
|
|
26
|
+
const url = `/spaces/${space}/inbound-ruleset`;
|
|
27
|
+
const { body: rules } = await this.heroku.get(url);
|
|
28
|
+
if (rules.rules?.length === 0) {
|
|
29
|
+
throw new Error('No IP ranges are configured. Nothing to do.');
|
|
30
|
+
}
|
|
31
|
+
const originalLength = rules.rules?.length;
|
|
32
|
+
rules.rules = rules.rules?.filter(r => r.source !== args.source);
|
|
33
|
+
if (rules.rules?.length === originalLength) {
|
|
34
|
+
throw new Error(`No IP range matching ${args.source} was found.`);
|
|
35
|
+
}
|
|
36
|
+
await this.heroku.put(url, { body: rules });
|
|
37
|
+
ux.stdout(`Removed ${color.cyan.bold(args.source)} from trusted IP ranges on ${color.space(space)}`);
|
|
38
|
+
// Fetch updated ruleset to check applied status
|
|
39
|
+
const { body: updatedRuleset } = await this.heroku.get(url);
|
|
40
|
+
// Check applied status to inform users whether rules are effectively applied to the space.
|
|
41
|
+
// The applied field is optional for backward compatibility with API versions that don't include it yet.
|
|
42
|
+
// Once the API always includes the applied field (W-19525612), this can be simplified to:
|
|
43
|
+
// if (updatedRuleset.applied) { ... } else { ... }
|
|
44
|
+
if (updatedRuleset.applied === true) {
|
|
45
|
+
ux.stdout('Trusted IP rules are applied to this space.');
|
|
46
|
+
}
|
|
47
|
+
else if (updatedRuleset.applied === false) {
|
|
48
|
+
ux.stdout('Trusted IP rules are not applied to this space. Update your Trusted IP list to trigger a re-application of the rules.');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Config extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static example: string;
|
|
8
|
+
static flags: {
|
|
9
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
space: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
static topic: string;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { hux, color } from '@heroku/heroku-cli-util';
|
|
2
|
+
import { Command, flags } from '@heroku-cli/command';
|
|
3
|
+
import { Args } from '@oclif/core';
|
|
4
|
+
import tsheredoc from 'tsheredoc';
|
|
5
|
+
import { displayVPNConfigInfo } from '../../../lib/spaces/vpn-connections.js';
|
|
6
|
+
const heredoc = tsheredoc.default;
|
|
7
|
+
export default class Config extends Command {
|
|
8
|
+
static args = {
|
|
9
|
+
name: Args.string({
|
|
10
|
+
description: 'name or id of the VPN connection to retrieve config from',
|
|
11
|
+
required: true,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
static description = heredoc(`
|
|
15
|
+
display the configuration information for VPN
|
|
16
|
+
|
|
17
|
+
You will use the information provided by this command to establish a Private Space VPN Connection.
|
|
18
|
+
|
|
19
|
+
- You must configure your VPN Gateway to use both Tunnels provided by Heroku
|
|
20
|
+
- The VPN Gateway values are the IP addresses of the Private Space Tunnels
|
|
21
|
+
- The Customer Gateway value is the Public IP of your VPN Gateway
|
|
22
|
+
- The VPN Gateway must use the IKE Version shown and the Pre-shared Keys as the authentication method
|
|
23
|
+
`);
|
|
24
|
+
static example = heredoc `
|
|
25
|
+
${color.command('heroku spaces:vpn:config vpn-connection-name --space my-space')}
|
|
26
|
+
=== vpn-connection-name VPN Tunnels
|
|
27
|
+
VPN Tunnel Customer Gateway VPN Gateway Pre-shared Key Routable Subnets IKE Version
|
|
28
|
+
────────── ──────────────── ────────────── ────────────── ──────────────── ───────────
|
|
29
|
+
Tunnel 1 104.196.121.200 35.171.237.136 abcdef12345 10.0.0.0/16 1
|
|
30
|
+
Tunnel 2 104.196.121.200 52.44.7.216 fedcba54321 10.0.0.0/16 1
|
|
31
|
+
`;
|
|
32
|
+
static flags = {
|
|
33
|
+
json: flags.boolean({ description: 'output in json format' }),
|
|
34
|
+
space: flags.string({
|
|
35
|
+
char: 's',
|
|
36
|
+
description: 'space the VPN connection belongs to',
|
|
37
|
+
required: true,
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
static topic = 'spaces';
|
|
41
|
+
async run() {
|
|
42
|
+
const { args, flags } = await this.parse(Config);
|
|
43
|
+
const { json, space } = flags;
|
|
44
|
+
const { name } = args;
|
|
45
|
+
const { body: vpnConnection } = await this.heroku.get(`/spaces/${space}/vpn-connections/${name}`);
|
|
46
|
+
if (json) {
|
|
47
|
+
hux.styledJSON(vpnConnection);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
displayVPNConfigInfo(space, name, vpnConnection);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Connect extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
cidrs: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
ip: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
space: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
static topic: string;
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { color } 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 { splitCsv } from '../../../lib/spaces/parsers.js';
|
|
6
|
+
const heredoc = tsheredoc.default;
|
|
7
|
+
export default class Connect extends Command {
|
|
8
|
+
static args = {
|
|
9
|
+
name: Args.string({
|
|
10
|
+
description: 'name or id of the VPN connection to create',
|
|
11
|
+
required: true,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
static description = heredoc `
|
|
15
|
+
create VPN
|
|
16
|
+
Private Spaces can be connected to another private network via an IPSec VPN connection allowing dynos to connect to hosts on your private networks and vice versa.
|
|
17
|
+
The connection is established over the public Internet but all traffic is encrypted using IPSec.
|
|
18
|
+
`;
|
|
19
|
+
static examples = [heredoc(`
|
|
20
|
+
${color.command('heroku spaces:vpn:connect vpn-connection-name --ip 35.161.69.30 --cidrs 172.16.0.0/16,10.0.0.0/24 --space my-space')}
|
|
21
|
+
Creating VPN Connection in space my-space... done
|
|
22
|
+
▸ Use spaces:vpn:wait to track allocation.
|
|
23
|
+
`)];
|
|
24
|
+
static flags = {
|
|
25
|
+
cidrs: flags.string({ char: 'c', description: 'a list of routable CIDRs separated by commas', required: true }),
|
|
26
|
+
ip: flags.string({ char: 'i', description: 'public IP of customer gateway', required: true }),
|
|
27
|
+
space: flags.string({ char: 's', description: 'space name', required: true }),
|
|
28
|
+
};
|
|
29
|
+
static topic = 'spaces';
|
|
30
|
+
async run() {
|
|
31
|
+
const { args, flags } = await this.parse(Connect);
|
|
32
|
+
const { cidrs, ip, space } = flags;
|
|
33
|
+
const { name } = args;
|
|
34
|
+
const parsed_cidrs = splitCsv(cidrs);
|
|
35
|
+
ux.action.start(`Creating VPN Connection in space ${color.space(space)}`);
|
|
36
|
+
await this.heroku.post(`/spaces/${space}/vpn-connections`, {
|
|
37
|
+
body: {
|
|
38
|
+
name,
|
|
39
|
+
public_ip: ip,
|
|
40
|
+
routable_cidrs: parsed_cidrs,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
ux.action.stop();
|
|
44
|
+
ux.warn(`Use ${color.code('heroku spaces:vpn:wait')} to track allocation.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
3
|
+
declare type VpnConnectionTunnels = Required<Heroku.PrivateSpacesVpn>['tunnels'];
|
|
4
|
+
export default class Connections extends Command {
|
|
5
|
+
static description: string;
|
|
6
|
+
static example: string;
|
|
7
|
+
static flags: {
|
|
8
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
space: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
static topic: string;
|
|
12
|
+
protected displayVPNConnections(space: string, connections: Required<Heroku.PrivateSpacesVpn>[]): void;
|
|
13
|
+
protected render(space: string, connections: Required<Heroku.PrivateSpacesVpn>[], json: boolean): void;
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
protected tunnelFormat(t: VpnConnectionTunnels): string;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { color, hux } from '@heroku/heroku-cli-util';
|
|
2
|
+
import { Command, flags } from '@heroku-cli/command';
|
|
3
|
+
import { ux } from '@oclif/core';
|
|
4
|
+
import tsheredoc from 'tsheredoc';
|
|
5
|
+
import { displayVPNStatus } from '../../../lib/spaces/format.js';
|
|
6
|
+
const heredoc = tsheredoc.default;
|
|
7
|
+
export default class Connections extends Command {
|
|
8
|
+
static description = 'list the VPN Connections for a space';
|
|
9
|
+
static example = heredoc `
|
|
10
|
+
${color.command('heroku spaces:vpn:connections --space my-space')}
|
|
11
|
+
=== my-space VPN Connections
|
|
12
|
+
Name Status Tunnels
|
|
13
|
+
────── ────── ───────
|
|
14
|
+
office active UP/UP`;
|
|
15
|
+
static flags = {
|
|
16
|
+
json: flags.boolean({ description: 'output in json format' }),
|
|
17
|
+
space: flags.string({ char: 's', description: 'space to get VPN connections from', required: true }),
|
|
18
|
+
};
|
|
19
|
+
static topic = 'spaces';
|
|
20
|
+
displayVPNConnections(space, connections) {
|
|
21
|
+
if (connections.length === 0) {
|
|
22
|
+
ux.stdout('No VPN Connections have been created yet');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
hux.styledHeader(`${space} VPN Connections`);
|
|
26
|
+
hux.table(connections, {
|
|
27
|
+
Name: {
|
|
28
|
+
get: c => c.name || c.id,
|
|
29
|
+
},
|
|
30
|
+
Status: {
|
|
31
|
+
get: c => displayVPNStatus(c.status),
|
|
32
|
+
},
|
|
33
|
+
Tunnels: {
|
|
34
|
+
get: c => this.tunnelFormat(c.tunnels),
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
render(space, connections, json) {
|
|
39
|
+
if (json) {
|
|
40
|
+
hux.styledJSON(connections);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.displayVPNConnections(space, connections);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async run() {
|
|
47
|
+
const { flags } = await this.parse(Connections);
|
|
48
|
+
const { json, space } = flags;
|
|
49
|
+
const { body: connections } = await this.heroku.get(`/spaces/${space}/vpn-connections`);
|
|
50
|
+
this.render(space, connections, json);
|
|
51
|
+
}
|
|
52
|
+
tunnelFormat(t) {
|
|
53
|
+
return t.map(tunnel => displayVPNStatus(tunnel.status)).join('/');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Destroy extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static examples: string[];
|
|
8
|
+
static flags: {
|
|
9
|
+
confirm: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
space: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
static topic: string;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { color } 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
|
+
const heredoc = tsheredoc.default;
|
|
7
|
+
export default class Destroy extends Command {
|
|
8
|
+
static args = {
|
|
9
|
+
name: Args.string({
|
|
10
|
+
description: 'name or id of the VPN connection to destroy',
|
|
11
|
+
required: true,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
static description = 'destroys VPN in a private space';
|
|
15
|
+
static examples = [heredoc(`
|
|
16
|
+
${color.command('heroku spaces:vpn:destroy vpn-connection-name --space example-space --confirm vpn-connection-name')}
|
|
17
|
+
Tearing down VPN Connection vpn-connection-name in space example-space... done
|
|
18
|
+
`)];
|
|
19
|
+
static flags = {
|
|
20
|
+
confirm: flags.string({ description: 'set to VPN connection name to bypass confirm prompt', hidden: true }),
|
|
21
|
+
space: flags.string({ char: 's', description: 'space name', required: true }),
|
|
22
|
+
};
|
|
23
|
+
static topic = 'spaces';
|
|
24
|
+
async run() {
|
|
25
|
+
const { args, flags } = await this.parse(Destroy);
|
|
26
|
+
const { confirm, space } = flags;
|
|
27
|
+
const { name } = args;
|
|
28
|
+
await new ConfirmCommand().confirm(name, confirm, heredoc `
|
|
29
|
+
Destructive Action
|
|
30
|
+
This command will attempt to destroy the specified VPN Connection in space ${color.space(space)}
|
|
31
|
+
`);
|
|
32
|
+
ux.action.start(`Tearing down VPN Connection ${color.cyan(name)} in space ${color.space(space)}`);
|
|
33
|
+
await this.heroku.delete(`/spaces/${space}/vpn-connections/${name}`);
|
|
34
|
+
ux.action.stop();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Info extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static example: string;
|
|
8
|
+
static flags: {
|
|
9
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
space: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
static topic: string;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
private displayVPNInfo;
|
|
15
|
+
private render;
|
|
16
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { color, hux } from '@heroku/heroku-cli-util';
|
|
2
|
+
import { Command, flags } from '@heroku-cli/command';
|
|
3
|
+
import { Args } from '@oclif/core';
|
|
4
|
+
import tsheredoc from 'tsheredoc';
|
|
5
|
+
import { displayCIDR, displayVPNStatus } from '../../../lib/spaces/format.js';
|
|
6
|
+
const heredoc = tsheredoc.default;
|
|
7
|
+
export default class Info extends Command {
|
|
8
|
+
static args = {
|
|
9
|
+
name: Args.string({
|
|
10
|
+
description: 'name or id of the VPN connection to get info from',
|
|
11
|
+
required: true,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
static description = 'display the information for VPN';
|
|
15
|
+
static example = heredoc `
|
|
16
|
+
${color.command('heroku spaces:vpn:info vpn-connection-name --space my-space')}
|
|
17
|
+
=== vpn-connection-name VPN Tunnel Info
|
|
18
|
+
Name: vpn-connection-name
|
|
19
|
+
ID: 123456789012
|
|
20
|
+
Public IP: 35.161.69.30
|
|
21
|
+
Routable CIDRs: 172.16.0.0/16
|
|
22
|
+
Status: failed
|
|
23
|
+
Status Message: supplied CIDR block already in use
|
|
24
|
+
=== my-space Tunnel Info
|
|
25
|
+
VPN Tunnel IP Address Status Last Changed Details
|
|
26
|
+
────────── ───────────── ────── ──────────────────── ─────────────
|
|
27
|
+
Tunnel 1 52.44.146.197 UP 2016-10-25T22:09:05Z status message
|
|
28
|
+
Tunnel 2 52.44.146.197 UP 2016-10-25T22:09:05Z status message
|
|
29
|
+
`;
|
|
30
|
+
static flags = {
|
|
31
|
+
json: flags.boolean({ description: 'output in json format' }),
|
|
32
|
+
space: flags.string({
|
|
33
|
+
char: 's',
|
|
34
|
+
description: 'space the vpn connection belongs to',
|
|
35
|
+
required: true,
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
static topic = 'spaces';
|
|
39
|
+
async run() {
|
|
40
|
+
const { args, flags } = await this.parse(Info);
|
|
41
|
+
const { json, space } = flags;
|
|
42
|
+
const { name } = args;
|
|
43
|
+
const { body: vpnConnection } = await this.heroku.get(`/spaces/${space}/vpn-connections/${name}`);
|
|
44
|
+
const connectionName = vpnConnection.name || name;
|
|
45
|
+
this.render(connectionName, vpnConnection, json);
|
|
46
|
+
}
|
|
47
|
+
displayVPNInfo(name, vpnConnection) {
|
|
48
|
+
hux.styledHeader(`${name} VPN Info`);
|
|
49
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
50
|
+
hux.styledObject({
|
|
51
|
+
Name: name,
|
|
52
|
+
ID: vpnConnection.id,
|
|
53
|
+
'Public IP': vpnConnection.public_ip,
|
|
54
|
+
'Routable CIDRs': displayCIDR(vpnConnection.routable_cidrs),
|
|
55
|
+
Status: `${displayVPNStatus(vpnConnection.status)}`,
|
|
56
|
+
'Status Message': vpnConnection.status_message,
|
|
57
|
+
}, ['Name', 'ID', 'Public IP', 'Routable CIDRs', 'State', 'Status', 'Status Message']);
|
|
58
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
59
|
+
const vpnConnectionTunnels = vpnConnection.tunnels || [];
|
|
60
|
+
vpnConnectionTunnels.forEach((val, i) => {
|
|
61
|
+
val.tunnel_id = 'Tunnel ' + (i + 1);
|
|
62
|
+
});
|
|
63
|
+
hux.styledHeader(`${name} VPN Tunnel Info`);
|
|
64
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
65
|
+
hux.table(vpnConnectionTunnels, {
|
|
66
|
+
tunnel_id: { header: 'VPN Tunnel' },
|
|
67
|
+
ip: { header: 'IP Address' },
|
|
68
|
+
status: {
|
|
69
|
+
header: 'Status',
|
|
70
|
+
get: row => displayVPNStatus(row.status),
|
|
71
|
+
},
|
|
72
|
+
last_status_change: { header: 'Status Last Changed' },
|
|
73
|
+
status_message: { header: 'Details' },
|
|
74
|
+
});
|
|
75
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
76
|
+
}
|
|
77
|
+
render(name, vpnConnection, json) {
|
|
78
|
+
if (json) {
|
|
79
|
+
hux.styledJSON(vpnConnection);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.displayVPNInfo(name, vpnConnection);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Update extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static example: string;
|
|
8
|
+
static flags: {
|
|
9
|
+
cidrs: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
space: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
static topic: string;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { color } 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 { splitCsv } from '../../../lib/spaces/parsers.js';
|
|
6
|
+
const heredoc = tsheredoc.default;
|
|
7
|
+
export default class Update extends Command {
|
|
8
|
+
static args = {
|
|
9
|
+
name: Args.string({
|
|
10
|
+
description: 'name or id of the VPN connection to update',
|
|
11
|
+
required: true,
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
static description = heredoc `
|
|
15
|
+
update VPN
|
|
16
|
+
Private Spaces can be connected to another private network via an IPSec VPN connection allowing dynos to connect to hosts on your private networks and vice versa.
|
|
17
|
+
The connection is established over the public Internet but all traffic is encrypted using IPSec.
|
|
18
|
+
`;
|
|
19
|
+
static example = heredoc `
|
|
20
|
+
${color.command('heroku spaces:vpn:update vpn-connection-name --space my-space --cidrs 172.16.0.0/16,10.0.0.0/24')}
|
|
21
|
+
Updating VPN Connection in space my-space... done`;
|
|
22
|
+
static flags = {
|
|
23
|
+
cidrs: flags.string({ char: 'c', description: 'a list of routable CIDRs separated by commas', required: true }),
|
|
24
|
+
space: flags.string({ char: 's', description: 'space name', required: true }),
|
|
25
|
+
};
|
|
26
|
+
static topic = 'spaces';
|
|
27
|
+
async run() {
|
|
28
|
+
const { args, flags } = await this.parse(Update);
|
|
29
|
+
const { cidrs, space } = flags;
|
|
30
|
+
const { name } = args;
|
|
31
|
+
const parsedCidrs = splitCsv(cidrs);
|
|
32
|
+
ux.action.start(`Updating VPN Connection in space ${color.space(space)}`);
|
|
33
|
+
await this.heroku.patch(`/spaces/${space}/vpn-connections/${name}`, { body: { routable_cidrs: parsedCidrs } });
|
|
34
|
+
ux.action.stop();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Wait extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
space: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
interval: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
timeout: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
static args: {
|
|
13
|
+
name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { color } from '@heroku/heroku-cli-util';
|
|
2
|
+
import { Command, flags } from '@heroku-cli/command';
|
|
3
|
+
import { Args, ux } from '@oclif/core';
|
|
4
|
+
import { hux } from '@heroku/heroku-cli-util';
|
|
5
|
+
import { displayVPNConfigInfo } from '../../../lib/spaces/vpn-connections.js';
|
|
6
|
+
import tsheredoc from 'tsheredoc';
|
|
7
|
+
const heredoc = tsheredoc.default;
|
|
8
|
+
const wait = (ms) => new Promise(resolve => {
|
|
9
|
+
setTimeout(resolve, ms);
|
|
10
|
+
});
|
|
11
|
+
export default class Wait extends Command {
|
|
12
|
+
static topic = 'spaces';
|
|
13
|
+
static description = 'wait for VPN Connection to be created';
|
|
14
|
+
static examples = [heredoc(`
|
|
15
|
+
${color.command('heroku spaces:vpn:wait vpn-connection-name --space my-space')}
|
|
16
|
+
Waiting for VPN Connection vpn-connection-name to allocate... done
|
|
17
|
+
=== my-space VPN Tunnels
|
|
18
|
+
|
|
19
|
+
VPN Tunnel Customer Gateway VPN Gateway Pre-shared Key Routable Subnets IKE Version
|
|
20
|
+
────────── ──────────────── ────────────── ────────────── ──────────────── ───────────
|
|
21
|
+
Tunnel 1 104.196.121.200 35.171.237.136 abcdef12345 10.0.0.0/16 1
|
|
22
|
+
Tunnel 2 104.196.121.200 52.44.7.216 fedcba54321 10.0.0.0/16 1
|
|
23
|
+
`)];
|
|
24
|
+
static flags = {
|
|
25
|
+
space: flags.string({ char: 's', description: 'space the vpn connection belongs to', required: true }),
|
|
26
|
+
json: flags.boolean({ description: 'output in json format' }),
|
|
27
|
+
interval: flags.string({ char: 'i', description: 'seconds to wait between poll intervals' }),
|
|
28
|
+
timeout: flags.string({ char: 't', description: 'maximum number of seconds to wait' }),
|
|
29
|
+
};
|
|
30
|
+
static args = {
|
|
31
|
+
name: Args.string({
|
|
32
|
+
description: 'name or id of the VPN connection you are waiting on for allocation.',
|
|
33
|
+
required: true,
|
|
34
|
+
}),
|
|
35
|
+
};
|
|
36
|
+
async run() {
|
|
37
|
+
const { flags, args } = await this.parse(Wait);
|
|
38
|
+
const { space, json } = flags;
|
|
39
|
+
const { name } = args;
|
|
40
|
+
const interval = (flags.interval ? Number.parseInt(flags.interval, 10) : 10) * 1000;
|
|
41
|
+
const timeout = (flags.timeout ? Number.parseInt(flags.timeout, 10) : 20 * 60) * 1000;
|
|
42
|
+
const deadline = new Date(Date.now() + timeout);
|
|
43
|
+
let { body: vpnConnection } = await this.heroku.get(`/spaces/${space}/vpn-connections/${name}`);
|
|
44
|
+
if (vpnConnection.status === 'active') {
|
|
45
|
+
ux.stdout('VPN has been allocated.');
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
ux.action.start(`Waiting for VPN Connection ${color.green(name)} to allocate...`);
|
|
49
|
+
while (vpnConnection.status !== 'active') {
|
|
50
|
+
if (new Date() > deadline) {
|
|
51
|
+
ux.error('Timeout waiting for VPN to become allocated.', { exit: 1 });
|
|
52
|
+
}
|
|
53
|
+
if (vpnConnection.status === 'failed') {
|
|
54
|
+
ux.error(vpnConnection.status_message || '', { exit: 1 });
|
|
55
|
+
}
|
|
56
|
+
await wait(interval);
|
|
57
|
+
const { body: updatedVpnConnection } = await this.heroku.get(`/spaces/${space}/vpn-connections/${name}`);
|
|
58
|
+
vpnConnection = updatedVpnConnection;
|
|
59
|
+
}
|
|
60
|
+
ux.action.stop();
|
|
61
|
+
const { body: newVpnConnection } = await this.heroku.get(`/spaces/${space}/vpn-connections/${name}`);
|
|
62
|
+
if (json) {
|
|
63
|
+
hux.styledJSON(newVpnConnection);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
displayVPNConfigInfo(space, name, newVpnConnection);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Wait extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
space: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
5
|
+
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static flags: {
|
|
8
|
+
interval: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
space: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
timeout: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
static topic: string;
|
|
14
|
+
protected notify(spaceName: string): void;
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
protected wait(ms: number): Promise<unknown>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { color } from '@heroku/heroku-cli-util';
|
|
2
|
+
import { Command, flags } from '@heroku-cli/command';
|
|
3
|
+
import { notify } from '@heroku-cli/notifications';
|
|
4
|
+
import { Args, ux } from '@oclif/core';
|
|
5
|
+
import debug from 'debug';
|
|
6
|
+
import tsheredoc from 'tsheredoc';
|
|
7
|
+
import { renderInfo } from '../../lib/spaces/spaces.js';
|
|
8
|
+
const heredoc = tsheredoc.default;
|
|
9
|
+
const spacesDebug = debug('spaces:wait');
|
|
10
|
+
export default class Wait extends Command {
|
|
11
|
+
static args = {
|
|
12
|
+
space: Args.string({ hidden: true }),
|
|
13
|
+
};
|
|
14
|
+
static description = 'wait for a space to be created';
|
|
15
|
+
static flags = {
|
|
16
|
+
interval: flags.integer({
|
|
17
|
+
char: 'i',
|
|
18
|
+
default: 30,
|
|
19
|
+
description: 'seconds to wait between poll intervals',
|
|
20
|
+
}),
|
|
21
|
+
json: flags.boolean({ description: 'output in json format' }),
|
|
22
|
+
space: flags.string({ char: 's', description: 'space to get info of' }),
|
|
23
|
+
timeout: flags.integer({
|
|
24
|
+
char: 't',
|
|
25
|
+
default: 25 * 60,
|
|
26
|
+
description: 'maximum number of seconds to wait',
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
static topic = 'spaces';
|
|
30
|
+
notify(spaceName) {
|
|
31
|
+
try {
|
|
32
|
+
const notification = {
|
|
33
|
+
message: 'space was successfully created',
|
|
34
|
+
sound: true,
|
|
35
|
+
subtitle: `heroku spaces:wait ${spaceName}`,
|
|
36
|
+
title: spaceName,
|
|
37
|
+
};
|
|
38
|
+
notify(notification);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
ux.warn(error);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async run() {
|
|
45
|
+
const { args, flags } = await this.parse(Wait);
|
|
46
|
+
const spaceName = flags.space || args.space;
|
|
47
|
+
if (!spaceName) {
|
|
48
|
+
ux.error(heredoc(`
|
|
49
|
+
Error: Missing 1 required arg:
|
|
50
|
+
space
|
|
51
|
+
See more help with --help
|
|
52
|
+
`));
|
|
53
|
+
}
|
|
54
|
+
const interval = flags.interval * 1000;
|
|
55
|
+
const timeout = flags.timeout * 1000;
|
|
56
|
+
const deadline = new Date(Date.now() + timeout);
|
|
57
|
+
ux.action.start(`Waiting for space ${color.space(spaceName)} to allocate`);
|
|
58
|
+
const headers = {
|
|
59
|
+
Accept: 'application/vnd.heroku+json; version=3.fir',
|
|
60
|
+
};
|
|
61
|
+
if (!flags.json) {
|
|
62
|
+
headers['Accept-Expansion'] = 'region';
|
|
63
|
+
}
|
|
64
|
+
let { body: space } = await this.heroku.get(`/spaces/${spaceName}`, { headers });
|
|
65
|
+
while (space.state === 'allocating') {
|
|
66
|
+
if (new Date() > deadline) {
|
|
67
|
+
throw new Error('Timeout waiting for space to become allocated.');
|
|
68
|
+
}
|
|
69
|
+
await this.wait(interval);
|
|
70
|
+
const { body: updatedSpace } = await this.heroku.get(`/spaces/${spaceName}`, { headers });
|
|
71
|
+
space = updatedSpace;
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const { body: nat } = await this.heroku.get(`/spaces/${spaceName}/nat`, { headers: { Accept: 'application/vnd.heroku+json; version=3.fir' } });
|
|
75
|
+
space.outbound_ips = nat;
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
spacesDebug(`Retrieving NAT details for the space failed with ${error}`);
|
|
79
|
+
}
|
|
80
|
+
ux.action.stop();
|
|
81
|
+
renderInfo(space, flags.json);
|
|
82
|
+
this.notify(spaceName);
|
|
83
|
+
}
|
|
84
|
+
wait(ms) {
|
|
85
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
86
|
+
}
|
|
87
|
+
}
|