heroku 9.0.0-alpha.0 → 9.0.0-alpha.2
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 +9 -11
- package/lib/commands/access/add.d.ts +14 -0
- package/lib/commands/access/add.js +55 -0
- package/lib/commands/access/index.d.ts +11 -0
- package/lib/commands/access/index.js +86 -0
- package/lib/commands/access/remove.d.ts +12 -0
- package/lib/commands/access/remove.js +25 -0
- package/lib/commands/access/update.d.ts +14 -0
- package/lib/commands/access/update.js +39 -0
- package/lib/commands/addons/attach.d.ts +16 -0
- package/lib/commands/addons/attach.js +51 -0
- package/lib/commands/addons/create.d.ts +19 -0
- package/lib/commands/addons/create.js +84 -0
- package/lib/commands/addons/destroy.d.ts +19 -0
- package/lib/commands/addons/destroy.js +61 -0
- package/lib/commands/addons/detach.d.ts +13 -0
- package/lib/commands/addons/detach.js +31 -0
- package/lib/commands/addons/docs.d.ts +14 -0
- package/lib/commands/addons/docs.js +36 -0
- package/lib/commands/addons/index.d.ts +16 -0
- package/lib/commands/addons/index.js +246 -0
- package/lib/commands/addons/info.d.ts +14 -0
- package/lib/commands/addons/info.js +44 -0
- package/lib/commands/addons/open.d.ts +75 -0
- package/lib/commands/addons/open.js +87 -0
- package/lib/commands/addons/plans.d.ts +12 -0
- package/lib/commands/addons/plans.js +47 -0
- package/lib/commands/addons/rename.d.ts +10 -0
- package/lib/commands/addons/rename.js +20 -0
- package/lib/commands/addons/services.d.ts +9 -0
- package/lib/commands/addons/services.js +34 -0
- package/lib/commands/addons/upgrade.d.ts +28 -0
- package/lib/commands/addons/upgrade.js +145 -0
- package/lib/commands/addons/wait.d.ts +14 -0
- package/lib/commands/addons/wait.js +70 -0
- package/lib/commands/apps/create.d.ts +28 -0
- package/lib/commands/apps/create.js +201 -0
- package/lib/commands/apps/destroy.d.ts +15 -0
- package/lib/commands/apps/destroy.js +47 -0
- package/lib/commands/apps/errors.d.ts +13 -0
- package/lib/commands/apps/errors.js +120 -0
- package/lib/commands/apps/favorites/add.d.ts +10 -0
- package/lib/commands/apps/favorites/add.js +38 -0
- package/lib/commands/apps/favorites/index.d.ts +9 -0
- package/lib/commands/apps/favorites/index.js +25 -0
- package/lib/commands/apps/favorites/remove.d.ts +10 -0
- package/lib/commands/apps/favorites/remove.js +28 -0
- package/lib/commands/apps/index.d.ts +16 -0
- package/lib/commands/apps/index.js +119 -0
- package/lib/commands/apps/info.d.ts +19 -0
- package/lib/commands/apps/info.js +162 -0
- package/lib/commands/apps/join.d.ts +11 -0
- package/lib/commands/apps/join.js +25 -0
- package/lib/commands/apps/leave.d.ts +12 -0
- package/lib/commands/apps/leave.js +25 -0
- package/lib/commands/apps/lock.d.ts +11 -0
- package/lib/commands/apps/lock.js +30 -0
- package/lib/commands/apps/open.d.ts +15 -0
- package/lib/commands/apps/open.js +30 -0
- package/lib/commands/apps/rename.d.ts +16 -0
- package/lib/commands/apps/rename.js +51 -0
- package/lib/commands/apps/stacks/index.d.ts +11 -0
- package/lib/commands/apps/stacks/index.js +44 -0
- package/lib/commands/apps/stacks/set.d.ts +14 -0
- package/lib/commands/apps/stacks/set.js +41 -0
- package/lib/commands/apps/transfer.d.ts +17 -0
- package/lib/commands/apps/transfer.js +91 -0
- package/lib/commands/apps/unlock.d.ts +11 -0
- package/lib/commands/apps/unlock.js +30 -0
- package/lib/commands/auth/logout.js +1 -0
- package/lib/commands/auth/token.js +2 -1
- package/lib/commands/authorizations/create.js +5 -1
- package/lib/commands/authorizations/info.js +5 -1
- package/lib/commands/authorizations/revoke.js +5 -1
- package/lib/commands/authorizations/rotate.js +5 -1
- package/lib/commands/authorizations/update.js +5 -1
- package/lib/commands/autocomplete/doctor.js +2 -2
- package/lib/commands/autocomplete/options.js +2 -2
- package/lib/commands/certs/add.d.ts +16 -0
- package/lib/commands/certs/add.js +98 -0
- package/lib/commands/certs/auto/disable.d.ts +11 -0
- package/lib/commands/certs/auto/disable.js +34 -0
- package/lib/commands/certs/auto/enable.d.ts +11 -0
- package/lib/commands/certs/auto/enable.js +51 -0
- package/lib/commands/certs/auto/index.d.ts +12 -0
- package/lib/commands/certs/auto/index.js +94 -0
- package/lib/commands/certs/auto/refresh.d.ts +10 -0
- package/lib/commands/certs/auto/refresh.js +19 -0
- package/lib/commands/certs/generate.d.ts +26 -0
- package/lib/commands/certs/generate.js +111 -0
- package/lib/commands/certs/index.d.ts +10 -0
- package/lib/commands/certs/index.js +26 -0
- package/lib/commands/certs/info.d.ts +13 -0
- package/lib/commands/certs/info.js +43 -0
- package/lib/commands/certs/remove.d.ts +13 -0
- package/lib/commands/certs/remove.js +32 -0
- package/lib/commands/certs/update.d.ts +18 -0
- package/lib/commands/certs/update.js +54 -0
- package/lib/commands/ci/config/get.d.ts +1 -0
- package/lib/commands/ci/config/get.js +1 -0
- package/lib/commands/ci/config/index.d.ts +12 -0
- package/lib/commands/ci/config/index.js +43 -0
- package/lib/commands/ci/config/set.d.ts +3 -2
- package/lib/commands/ci/config/set.js +3 -6
- package/lib/commands/ci/config/unset.d.ts +14 -0
- package/lib/commands/ci/config/unset.js +36 -0
- package/lib/commands/ci/index.d.ts +1 -0
- package/lib/commands/ci/index.js +1 -0
- package/lib/commands/ci/info.d.ts +1 -0
- package/lib/commands/ci/info.js +1 -0
- package/lib/commands/ci/last.d.ts +1 -0
- package/lib/commands/ci/last.js +1 -0
- package/lib/commands/ci/migrate-manifest.d.ts +7 -0
- package/lib/commands/ci/migrate-manifest.js +74 -0
- package/lib/commands/ci/open.d.ts +1 -0
- package/lib/commands/ci/open.js +1 -0
- package/lib/commands/ci/rerun.d.ts +1 -0
- package/lib/commands/ci/rerun.js +1 -0
- package/lib/commands/config/set.d.ts +12 -0
- package/lib/commands/config/set.js +60 -0
- package/lib/commands/container/index.d.ts +6 -0
- package/lib/commands/container/index.js +13 -0
- package/lib/commands/container/login.d.ts +9 -0
- package/lib/commands/container/login.js +57 -0
- package/lib/commands/container/logout.d.ts +9 -0
- package/lib/commands/container/logout.js +37 -0
- package/lib/commands/container/pull.d.ts +14 -0
- package/lib/commands/container/pull.js +40 -0
- package/lib/commands/container/push.d.ts +16 -0
- package/lib/commands/container/push.js +101 -0
- package/lib/commands/container/release.d.ts +14 -0
- package/lib/commands/container/release.js +89 -0
- package/lib/commands/container/rm.d.ts +13 -0
- package/lib/commands/container/rm.js +36 -0
- package/lib/commands/container/run.d.ts +15 -0
- package/lib/commands/container/run.js +63 -0
- package/lib/commands/dashboard.d.ts +7 -0
- package/lib/commands/dashboard.js +164 -0
- package/lib/commands/domains/index.d.ts +3 -3
- package/lib/commands/drains/add.d.ts +12 -0
- package/lib/commands/drains/add.js +23 -0
- package/lib/commands/drains/index.d.ts +11 -0
- package/lib/commands/drains/index.js +50 -0
- package/lib/commands/drains/remove.d.ts +13 -0
- package/lib/commands/drains/remove.js +22 -0
- package/lib/commands/features/disable.d.ts +12 -0
- package/lib/commands/features/disable.js +30 -0
- package/lib/commands/features/enable.d.ts +12 -0
- package/lib/commands/features/enable.js +29 -0
- package/lib/commands/features/index.d.ts +10 -0
- package/lib/commands/features/index.js +37 -0
- package/lib/commands/features/info.d.ts +13 -0
- package/lib/commands/features/info.js +33 -0
- package/lib/commands/keys/add.d.ts +14 -0
- package/lib/commands/keys/add.js +101 -0
- package/lib/commands/keys/clear.d.ts +5 -0
- package/lib/commands/keys/clear.js +17 -0
- package/lib/commands/keys/index.d.ts +9 -0
- package/lib/commands/keys/index.js +36 -0
- package/lib/commands/keys/remove.d.ts +9 -0
- package/lib/commands/keys/remove.js +29 -0
- package/lib/commands/labs/enable.d.ts +13 -0
- package/lib/commands/labs/enable.js +47 -0
- package/lib/commands/labs/index.d.ts +11 -0
- package/lib/commands/labs/index.js +71 -0
- package/lib/commands/labs/info.d.ts +14 -0
- package/lib/commands/labs/info.js +49 -0
- package/lib/commands/local/index.d.ts +1 -1
- package/lib/commands/local/index.js +8 -3
- package/lib/commands/local/run.d.ts +1 -1
- package/lib/commands/local/run.js +8 -3
- package/lib/commands/maintenance/index.d.ts +10 -0
- package/lib/commands/maintenance/index.js +19 -0
- package/lib/commands/maintenance/off.d.ts +10 -0
- package/lib/commands/maintenance/off.js +20 -0
- package/lib/commands/maintenance/on.d.ts +10 -0
- package/lib/commands/maintenance/on.js +20 -0
- package/lib/commands/members/add.d.ts +13 -0
- package/lib/commands/members/add.js +33 -0
- package/lib/commands/members/index.d.ts +12 -0
- package/lib/commands/members/index.js +76 -0
- package/lib/commands/members/remove.d.ts +10 -0
- package/lib/commands/members/remove.js +58 -0
- package/lib/commands/members/set.d.ts +11 -0
- package/lib/commands/members/set.js +21 -0
- package/lib/commands/notifications/index.d.ts +13 -0
- package/lib/commands/notifications/index.js +62 -0
- package/lib/commands/orgs/index.d.ts +11 -0
- package/lib/commands/orgs/index.js +27 -0
- package/lib/commands/orgs/open.d.ts +10 -0
- package/lib/commands/orgs/open.js +24 -0
- package/lib/commands/pg/backups/cancel.d.ts +15 -0
- package/lib/commands/pg/backups/cancel.js +49 -0
- package/lib/commands/pg/backups/capture.d.ts +15 -0
- package/lib/commands/pg/backups/capture.js +65 -0
- package/lib/commands/pg/backups/delete.d.ts +15 -0
- package/lib/commands/pg/backups/delete.js +38 -0
- package/lib/commands/pg/backups/download.d.ts +14 -0
- package/lib/commands/pg/backups/download.js +58 -0
- package/lib/commands/pg/backups/index.d.ts +20 -0
- package/lib/commands/pg/backups/index.js +129 -0
- package/lib/commands/pg/backups/info.d.ts +17 -0
- package/lib/commands/pg/backups/info.js +92 -0
- package/lib/commands/pg/backups/restore.d.ts +19 -0
- package/lib/commands/pg/backups/restore.js +107 -0
- package/lib/commands/pg/backups/schedule.d.ts +21 -0
- package/lib/commands/pg/backups/schedule.js +82 -0
- package/lib/commands/pg/backups/schedules.d.ts +10 -0
- package/lib/commands/pg/backups/schedules.js +31 -0
- package/lib/commands/pg/backups/unschedule.d.ts +13 -0
- package/lib/commands/pg/backups/unschedule.js +44 -0
- package/lib/commands/pg/backups/url.d.ts +13 -0
- package/lib/commands/pg/backups/url.js +41 -0
- package/lib/commands/pg/bloat.d.ts +13 -0
- package/lib/commands/pg/bloat.js +87 -0
- 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 +41 -0
- package/lib/commands/pg/copy.d.ts +18 -0
- package/lib/commands/pg/copy.js +86 -0
- package/lib/commands/pg/credentials/create.d.ts +14 -0
- package/lib/commands/pg/credentials/create.js +40 -0
- package/lib/commands/pg/credentials/destroy.d.ts +16 -0
- package/lib/commands/pg/credentials/destroy.js +48 -0
- package/lib/commands/pg/credentials/repair-default.d.ts +15 -0
- package/lib/commands/pg/credentials/repair-default.js +39 -0
- package/lib/commands/pg/credentials/rotate.d.ts +16 -0
- package/lib/commands/pg/credentials/rotate.js +82 -0
- package/lib/commands/pg/credentials/url.d.ts +14 -0
- package/lib/commands/pg/credentials/url.js +64 -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 +109 -0
- package/lib/commands/pg/info.d.ts +14 -0
- package/lib/commands/pg/info.js +92 -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 +26 -0
- package/lib/commands/pg/links/create.d.ts +15 -0
- package/lib/commands/pg/links/create.js +58 -0
- package/lib/commands/pg/links/destroy.d.ts +16 -0
- package/lib/commands/pg/links/destroy.js +42 -0
- package/lib/commands/pg/links/index.d.ts +13 -0
- package/lib/commands/pg/links/index.js +59 -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 +29 -0
- package/lib/commands/pg/maintenance/run.d.ts +14 -0
- package/lib/commands/pg/maintenance/run.js +37 -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 +97 -0
- package/lib/commands/pg/promote.d.ts +14 -0
- package/lib/commands/pg/promote.js +169 -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 +49 -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 +84 -0
- package/lib/commands/pg/reset.d.ts +15 -0
- package/lib/commands/pg/reset.js +44 -0
- package/lib/commands/pg/settings/auto-explain/log-analyze.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-analyze.js +32 -0
- package/lib/commands/pg/settings/auto-explain/log-buffers.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-buffers.js +30 -0
- package/lib/commands/pg/settings/auto-explain/log-min-duration.d.ts +16 -0
- package/lib/commands/pg/settings/auto-explain/log-min-duration.js +33 -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 +25 -0
- package/lib/commands/pg/settings/auto-explain/log-triggers.d.ts +13 -0
- package/lib/commands/pg/settings/auto-explain/log-triggers.js +30 -0
- package/lib/commands/pg/settings/auto-explain/log-verbose.d.ts +17 -0
- package/lib/commands/pg/settings/auto-explain/log-verbose.js +33 -0
- package/lib/commands/pg/settings/auto-explain.d.ts +18 -0
- package/lib/commands/pg/settings/auto-explain.js +38 -0
- package/lib/commands/pg/settings/index.d.ts +13 -0
- package/lib/commands/pg/settings/index.js +34 -0
- package/lib/commands/pg/settings/log-connections.d.ts +17 -0
- package/lib/commands/pg/settings/log-connections.js +34 -0
- package/lib/commands/pg/settings/log-lock-waits.d.ts +13 -0
- package/lib/commands/pg/settings/log-lock-waits.js +31 -0
- package/lib/commands/pg/settings/log-min-duration-statement.d.ts +15 -0
- package/lib/commands/pg/settings/log-min-duration-statement.js +33 -0
- package/lib/commands/pg/settings/log-statement.d.ts +12 -0
- package/lib/commands/pg/settings/log-statement.js +30 -0
- package/lib/commands/pg/settings/track-functions.d.ts +12 -0
- package/lib/commands/pg/settings/track-functions.js +29 -0
- package/lib/commands/pg/unfollow.d.ts +14 -0
- package/lib/commands/pg/unfollow.js +40 -0
- package/lib/commands/pg/upgrade.d.ts +15 -0
- package/lib/commands/pg/upgrade.js +58 -0
- package/lib/commands/pg/vacuum-stats.d.ts +13 -0
- package/lib/commands/pg/vacuum-stats.js +65 -0
- package/lib/commands/pg/wait.d.ts +15 -0
- package/lib/commands/pg/wait.js +79 -0
- package/lib/commands/pipelines/connect.js +1 -1
- package/lib/commands/pipelines/diff.js +1 -1
- package/lib/commands/ps/index.d.ts +15 -0
- package/lib/commands/ps/index.js +195 -0
- package/lib/commands/ps/restart.d.ts +17 -0
- package/lib/commands/ps/restart.js +38 -0
- package/lib/commands/ps/scale.d.ts +13 -0
- package/lib/commands/ps/scale.js +108 -0
- package/lib/commands/ps/stop.d.ts +17 -0
- package/lib/commands/ps/stop.js +33 -0
- package/lib/commands/ps/type.d.ts +12 -0
- package/lib/commands/ps/type.js +163 -0
- package/lib/commands/redis/cli.d.ts +15 -0
- package/lib/commands/redis/cli.js +204 -0
- package/lib/commands/redis/credentials.d.ts +14 -0
- package/lib/commands/redis/credentials.js +32 -0
- package/lib/commands/redis/info.d.ts +15 -0
- package/lib/commands/redis/info.js +25 -0
- package/lib/commands/redis/keyspace-notifications.d.ts +14 -0
- package/lib/commands/redis/keyspace-notifications.js +47 -0
- package/lib/commands/redis/maintenance.d.ts +16 -0
- package/lib/commands/redis/maintenance.js +63 -0
- package/lib/commands/redis/maxmemory.d.ts +14 -0
- package/lib/commands/redis/maxmemory.js +40 -0
- package/lib/commands/redis/promote.d.ts +13 -0
- package/lib/commands/redis/promote.js +39 -0
- package/lib/commands/redis/stats-reset.d.ts +14 -0
- package/lib/commands/redis/stats-reset.js +36 -0
- package/lib/commands/redis/timeout.d.ts +14 -0
- package/lib/commands/redis/timeout.js +35 -0
- package/lib/commands/redis/upgrade.d.ts +15 -0
- package/lib/commands/redis/upgrade.js +37 -0
- package/lib/commands/redis/wait.d.ts +14 -0
- package/lib/commands/redis/wait.js +60 -0
- package/lib/commands/releases/index.d.ts +14 -0
- package/lib/commands/releases/index.js +124 -0
- package/lib/commands/releases/info.d.ts +15 -0
- package/lib/commands/releases/info.js +56 -0
- package/lib/commands/releases/output.d.ts +13 -0
- package/lib/commands/releases/output.js +37 -0
- package/lib/commands/releases/rollback.d.ts +14 -0
- package/lib/commands/releases/rollback.js +48 -0
- package/lib/commands/run/detached.d.ts +7 -8
- package/lib/commands/run/detached.js +16 -20
- package/lib/commands/run/index.d.ts +10 -11
- package/lib/commands/run/index.js +16 -17
- package/lib/commands/run/inside.d.ts +5 -7
- package/lib/commands/run/inside.js +10 -14
- package/lib/commands/spaces/create.d.ts +22 -0
- package/lib/commands/spaces/create.js +73 -0
- package/lib/commands/spaces/destroy.d.ts +14 -0
- package/lib/commands/spaces/destroy.js +49 -0
- package/lib/commands/spaces/drains/get.d.ts +12 -0
- package/lib/commands/spaces/drains/get.js +27 -0
- package/lib/commands/spaces/drains/set.d.ts +14 -0
- package/lib/commands/spaces/drains/set.js +29 -0
- package/lib/commands/spaces/hosts.d.ts +14 -0
- package/lib/commands/spaces/hosts.js +37 -0
- package/lib/commands/spaces/index.d.ts +16 -0
- package/lib/commands/spaces/index.js +55 -0
- package/lib/commands/spaces/info.d.ts +14 -0
- package/lib/commands/spaces/info.js +47 -0
- package/lib/commands/spaces/outbound-rules/add.d.ts +15 -0
- package/lib/commands/spaces/outbound-rules/add.js +81 -0
- package/lib/commands/spaces/outbound-rules/index.d.ts +15 -0
- package/lib/commands/spaces/outbound-rules/index.js +49 -0
- package/lib/commands/spaces/outbound-rules/remove.d.ts +17 -0
- package/lib/commands/spaces/outbound-rules/remove.js +53 -0
- package/lib/commands/spaces/peerings/accept.d.ts +15 -0
- package/lib/commands/spaces/peerings/accept.js +36 -0
- package/lib/commands/spaces/peerings/destroy.d.ts +15 -0
- package/lib/commands/spaces/peerings/destroy.js +45 -0
- package/lib/commands/spaces/peerings/index.d.ts +13 -0
- package/lib/commands/spaces/peerings/index.js +33 -0
- package/lib/commands/spaces/peerings/info.d.ts +15 -0
- package/lib/commands/spaces/peerings/info.js +59 -0
- package/lib/commands/spaces/ps.d.ts +15 -0
- package/lib/commands/spaces/ps.js +82 -0
- package/lib/commands/spaces/rename.d.ts +11 -0
- package/lib/commands/spaces/rename.js +26 -0
- package/lib/commands/spaces/topology.d.ts +32 -0
- package/lib/commands/spaces/topology.js +89 -0
- package/lib/commands/spaces/transfer.d.ts +11 -0
- package/lib/commands/spaces/transfer.js +35 -0
- package/lib/commands/spaces/trusted-ips/add.d.ts +16 -0
- package/lib/commands/spaces/trusted-ips/add.js +43 -0
- package/lib/commands/spaces/trusted-ips/index.d.ts +15 -0
- package/lib/commands/spaces/trusted-ips/index.js +52 -0
- package/lib/commands/spaces/trusted-ips/remove.d.ts +15 -0
- package/lib/commands/spaces/trusted-ips/remove.js +44 -0
- package/lib/commands/spaces/vpn/config.d.ts +14 -0
- package/lib/commands/spaces/vpn/config.js +54 -0
- package/lib/commands/spaces/vpn/connect.d.ts +15 -0
- package/lib/commands/spaces/vpn/connect.js +45 -0
- package/lib/commands/spaces/vpn/connections.d.ts +17 -0
- package/lib/commands/spaces/vpn/connections.js +57 -0
- package/lib/commands/spaces/vpn/destroy.d.ts +14 -0
- package/lib/commands/spaces/vpn/destroy.js +35 -0
- package/lib/commands/spaces/vpn/info.d.ts +16 -0
- package/lib/commands/spaces/vpn/info.js +82 -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 +13 -0
- package/lib/commands/spaces/vpn/wait.js +53 -0
- package/lib/commands/spaces/wait.d.ts +17 -0
- package/lib/commands/spaces/wait.js +89 -0
- package/lib/commands/status.js +4 -4
- package/lib/commands/teams/index.d.ts +9 -0
- package/lib/commands/teams/index.js +29 -0
- package/lib/global_telemetry.js +10 -4
- package/lib/hooks/postrun/performance_analytics.js +5 -4
- package/lib/hooks/prerun/analytics.js +3 -0
- package/lib/lib/addons/addons_wait.d.ts +78 -0
- package/lib/lib/addons/addons_wait.js +56 -0
- package/lib/lib/addons/create_addon.d.ts +7 -0
- package/lib/lib/addons/create_addon.js +59 -0
- package/lib/lib/addons/destroy_addon.d.ts +3 -0
- package/lib/lib/addons/destroy_addon.js +48 -0
- package/lib/lib/addons/resolve.d.ts +38 -0
- package/lib/lib/addons/resolve.js +179 -0
- package/lib/lib/addons/util.d.ts +9 -0
- package/lib/lib/addons/util.js +72 -0
- package/lib/lib/api.d.ts +1 -1
- package/lib/lib/apps/app-transfer.d.ts +10 -0
- package/lib/lib/apps/app-transfer.js +35 -0
- package/lib/lib/apps/error_info.d.ts +7 -0
- package/lib/lib/apps/error_info.js +185 -0
- package/lib/lib/autocomplete/completions.d.ts +4 -0
- package/lib/lib/autocomplete/completions.js +6 -1
- package/lib/lib/buildpacks/buildpacks.js +3 -4
- package/lib/lib/certs/certificate_details.d.ts +2 -0
- package/lib/lib/certs/certificate_details.js +37 -0
- package/lib/lib/certs/display_table.d.ts +2 -0
- package/lib/lib/certs/display_table.js +51 -0
- package/lib/lib/certs/domains.d.ts +3 -0
- package/lib/lib/certs/domains.js +45 -0
- package/lib/lib/certs/flags.d.ts +7 -0
- package/lib/lib/certs/flags.js +42 -0
- package/lib/lib/certs/format_date.d.ts +1 -0
- package/lib/lib/certs/format_date.js +11 -0
- package/lib/lib/certs/get_cert_and_key.d.ts +9 -0
- package/lib/lib/certs/get_cert_and_key.js +11 -0
- package/lib/lib/ci/git.d.ts +7 -1
- package/lib/lib/ci/git.js +44 -1
- package/lib/lib/ci/interfaces/kolkrabbi.d.ts +1 -1
- package/lib/lib/ci/source.js +3 -3
- package/lib/lib/ci/test-run.js +2 -2
- package/lib/lib/ci/validate.d.ts +2 -0
- package/lib/lib/ci/validate.js +10 -0
- package/lib/lib/config/quote.js +1 -1
- package/lib/lib/confirmCommand.d.ts +1 -0
- package/lib/lib/confirmCommand.js +23 -0
- package/lib/lib/container/debug.d.ts +2 -0
- package/lib/lib/container/debug.js +5 -0
- package/lib/lib/container/docker_helper.d.ts +24 -0
- package/lib/lib/container/docker_helper.js +168 -0
- package/lib/lib/container/streamer.d.ts +1 -0
- package/lib/lib/container/streamer.js +31 -0
- package/lib/lib/domains/domains.d.ts +6 -0
- package/lib/lib/domains/domains.js +104 -0
- package/lib/lib/git/git.d.ts +3 -0
- package/lib/lib/git/git.js +19 -0
- package/lib/lib/git/push.d.ts +1 -0
- package/lib/lib/git/push.js +6 -0
- package/lib/lib/local/run-foreman.d.ts +1 -0
- package/lib/lib/local/run-foreman.js +229 -1
- package/lib/lib/members/util.d.ts +3 -0
- package/lib/lib/members/util.js +25 -0
- package/lib/lib/members/utils.d.ts +2 -0
- package/lib/lib/members/utils.js +14 -0
- package/lib/lib/notify.d.ts +1 -0
- package/lib/lib/notify.js +23 -0
- package/lib/lib/orgs/utils.d.ts +5 -0
- package/lib/lib/orgs/utils.js +24 -0
- package/lib/lib/pg/backups.d.ts +17 -0
- package/lib/lib/pg/backups.js +164 -0
- package/lib/lib/pg/bastion.d.ts +29 -0
- package/lib/lib/pg/bastion.js +121 -0
- package/lib/lib/pg/config.d.ts +2 -0
- package/lib/lib/pg/config.js +13 -0
- package/lib/lib/pg/download.d.ts +5 -0
- package/lib/lib/pg/download.js +34 -0
- package/lib/lib/pg/fetcher.d.ts +39 -0
- package/lib/lib/pg/fetcher.js +137 -0
- package/lib/lib/pg/host.d.ts +1 -0
- package/lib/lib/pg/host.js +7 -0
- package/lib/lib/pg/psql.d.ts +48 -0
- package/lib/lib/pg/psql.js +252 -0
- package/lib/lib/pg/push_pull.d.ts +13 -0
- package/lib/lib/pg/push_pull.js +118 -0
- package/lib/lib/pg/setter.d.ts +16 -0
- package/lib/lib/pg/setter.js +65 -0
- package/lib/lib/pg/types.d.ts +230 -0
- package/lib/lib/pg/types.js +2 -0
- package/lib/lib/pg/util.d.ts +36 -0
- package/lib/lib/pg/util.js +183 -0
- package/lib/lib/redis/api.d.ts +65 -0
- package/lib/lib/redis/api.js +122 -0
- package/lib/lib/releases/output.d.ts +1 -0
- package/lib/lib/releases/output.js +14 -0
- package/lib/lib/releases/releases.d.ts +6 -0
- package/lib/lib/releases/releases.js +32 -0
- package/lib/lib/releases/status_helper.d.ts +5 -0
- package/lib/lib/releases/status_helper.js +25 -0
- package/lib/lib/run/dyno.js +2 -2
- package/lib/lib/run/log-displayer.d.ts +1 -1
- package/lib/lib/spaces/format.d.ts +4 -0
- package/lib/lib/spaces/format.js +60 -0
- package/lib/lib/spaces/hosts.d.ts +9 -0
- package/lib/lib/spaces/hosts.js +34 -0
- package/lib/lib/spaces/outbound-rules.d.ts +4 -0
- package/lib/lib/spaces/outbound-rules.js +78 -0
- package/lib/lib/spaces/parsers.d.ts +8 -0
- package/lib/lib/spaces/parsers.js +17 -0
- package/lib/lib/spaces/peering.d.ts +4 -0
- package/lib/lib/spaces/peering.js +53 -0
- package/lib/lib/spaces/spaces.d.ts +4 -0
- package/lib/lib/spaces/spaces.js +37 -0
- package/lib/lib/spaces/vpn-connections.d.ts +2 -0
- package/lib/lib/spaces/vpn-connections.js +22 -0
- package/lib/lib/teamUtils.d.ts +3 -0
- package/lib/lib/teamUtils.js +18 -0
- package/lib/lib/time.d.ts +2 -0
- package/lib/lib/time.js +29 -0
- package/lib/lib/types/app_errors.d.ts +6 -0
- package/lib/lib/types/app_errors.js +2 -0
- package/lib/lib/types/domain.d.ts +61 -0
- package/lib/lib/types/domain.js +5 -0
- package/lib/lib/types/favorites.d.ts +7 -0
- package/lib/lib/types/favorites.js +2 -0
- package/lib/lib/types/notifications.d.ts +20 -0
- package/lib/lib/types/notifications.js +2 -0
- package/lib/lib/utils/multisort.d.ts +32 -0
- package/lib/lib/utils/multisort.js +66 -0
- package/lib/lib/utils/uuid-validate.d.ts +1 -0
- package/lib/lib/utils/uuid-validate.js +7 -0
- package/lib/user-config.js +2 -2
- package/oclif.manifest.json +12920 -2534
- package/package.json +111 -60
- package/lib/lib/buildpacks/push.d.ts +0 -0
- package/lib/lib/buildpacks/push.js +0 -4
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const color_1 = require("@heroku-cli/color");
|
|
4
|
+
const command_1 = require("@heroku-cli/command");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const tsheredoc_1 = require("tsheredoc");
|
|
7
|
+
const spaces_1 = require("../../lib/spaces/spaces");
|
|
8
|
+
const completions_1 = require("../../lib/autocomplete/completions");
|
|
9
|
+
const parsers_1 = require("../../lib/spaces/parsers");
|
|
10
|
+
class Create extends command_1.Command {
|
|
11
|
+
async run() {
|
|
12
|
+
const { flags, args } = await this.parse(Create);
|
|
13
|
+
const { channel, region, features, 'log-drain-url': logDrainUrl, shield, cidr, 'kpi-url': kpiUrl, 'data-cidr': dataCidr, team } = flags;
|
|
14
|
+
const spaceName = flags.space || args.space;
|
|
15
|
+
if (!spaceName) {
|
|
16
|
+
core_1.ux.error((0, tsheredoc_1.default) `
|
|
17
|
+
Space name required.
|
|
18
|
+
USAGE: heroku spaces:create --space my-space --team my-team
|
|
19
|
+
`);
|
|
20
|
+
}
|
|
21
|
+
const dollarAmountMonthly = shield ? '$3000' : '$1000';
|
|
22
|
+
const dollarAmountHourly = shield ? '$4.17' : '$1.39';
|
|
23
|
+
const spaceType = shield ? 'Shield' : 'Standard';
|
|
24
|
+
core_1.ux.action.start(`Creating space ${color_1.default.green(spaceName)} in team ${color_1.default.cyan(team)}`);
|
|
25
|
+
const { body: space } = await this.heroku.post('/spaces', {
|
|
26
|
+
body: {
|
|
27
|
+
name: spaceName, team: team, channel_name: channel, region: region, features: (0, parsers_1.splitCsv)(features),
|
|
28
|
+
log_drain_url: logDrainUrl, shield, cidr, kpi_url: kpiUrl, data_cidr: dataCidr,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
core_1.ux.action.stop();
|
|
32
|
+
core_1.ux.warn(`${color_1.default.bold('Spend Alert.')} During the limited GA period, each Heroku ${spaceType} Private Space costs ~${dollarAmountHourly}/hour (max ${dollarAmountMonthly}/month), pro-rated to the second.`);
|
|
33
|
+
core_1.ux.warn(`Use ${color_1.default.cmd('heroku spaces:wait')} to track allocation.`);
|
|
34
|
+
core_1.ux.styledHeader(space.name);
|
|
35
|
+
core_1.ux.styledObject({
|
|
36
|
+
ID: space.id, Team: space.team.name, Region: space.region.name, CIDR: space.cidr, 'Data CIDR': space.data_cidr, State: space.state, Shield: (0, spaces_1.displayShieldState)(space), 'Created at': space.created_at,
|
|
37
|
+
}, ['ID', 'Team', 'Region', 'CIDR', 'Data CIDR', 'State', 'Shield', 'Created at']);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.default = Create;
|
|
41
|
+
Create.topic = 'spaces';
|
|
42
|
+
Create.description = (0, tsheredoc_1.default) `
|
|
43
|
+
create a new space
|
|
44
|
+
`;
|
|
45
|
+
Create.examples = [(0, tsheredoc_1.default) `
|
|
46
|
+
Example:
|
|
47
|
+
|
|
48
|
+
$ heroku spaces:create --space my-space --team my-team --region oregon
|
|
49
|
+
Creating space my-space in team my-team... done
|
|
50
|
+
=== my-space
|
|
51
|
+
ID: e7b99e37-69b3-4475-ad47-a5cc5d75fd9f
|
|
52
|
+
Team: my-team
|
|
53
|
+
Region: oregon
|
|
54
|
+
CIDR: 10.0.0.0/16
|
|
55
|
+
Data CIDR: 172.23.0.0/20
|
|
56
|
+
State: allocating
|
|
57
|
+
Created at: 2016-01-06T03:23:13Z
|
|
58
|
+
`];
|
|
59
|
+
Create.flags = {
|
|
60
|
+
space: command_1.flags.string({ char: 's', description: 'name of space to create' }),
|
|
61
|
+
channel: command_1.flags.string({ hidden: true }),
|
|
62
|
+
region: command_1.flags.string({ description: 'region name', completion: completions_1.RegionCompletion }),
|
|
63
|
+
features: command_1.flags.string({ hidden: true, description: 'a list of features separated by commas' }),
|
|
64
|
+
'log-drain-url': command_1.flags.string({ hidden: true, description: 'direct log drain url' }),
|
|
65
|
+
shield: command_1.flags.boolean({ hidden: true, description: 'create a Shield space' }),
|
|
66
|
+
cidr: command_1.flags.string({ description: 'RFC-1918 CIDR the space will use' }),
|
|
67
|
+
'kpi-url': command_1.flags.string({ hidden: true, description: 'self-managed KPI endpoint to use' }),
|
|
68
|
+
'data-cidr': command_1.flags.string({ description: 'RFC-1918 CIDR used by Heroku Data resources for the space' }),
|
|
69
|
+
team: command_1.flags.team({ required: true }),
|
|
70
|
+
};
|
|
71
|
+
Create.args = {
|
|
72
|
+
space: core_1.Args.string({ hidden: true }),
|
|
73
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Destroy extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
confirm: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
};
|
|
10
|
+
static args: {
|
|
11
|
+
space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const color_1 = require("@heroku-cli/color");
|
|
5
|
+
const command_1 = require("@heroku-cli/command");
|
|
6
|
+
const tsheredoc_1 = require("tsheredoc");
|
|
7
|
+
const confirmCommand_1 = require("../../lib/confirmCommand");
|
|
8
|
+
const spaces_1 = require("../../lib/spaces/spaces");
|
|
9
|
+
class Destroy extends command_1.Command {
|
|
10
|
+
async run() {
|
|
11
|
+
const { flags, args } = await this.parse(Destroy);
|
|
12
|
+
const { confirm } = flags;
|
|
13
|
+
const spaceName = flags.space || args.space;
|
|
14
|
+
if (!spaceName) {
|
|
15
|
+
core_1.ux.error((0, tsheredoc_1.default) `
|
|
16
|
+
Space name required.
|
|
17
|
+
USAGE: heroku spaces:destroy my-space
|
|
18
|
+
`);
|
|
19
|
+
}
|
|
20
|
+
let natWarning = '';
|
|
21
|
+
const { body: space } = await this.heroku.get(`/spaces/${spaceName}`);
|
|
22
|
+
if (space.state === 'allocated') {
|
|
23
|
+
({ body: space.outbound_ips } = await this.heroku.get(`/spaces/${spaceName}/nat`));
|
|
24
|
+
if (space.outbound_ips && space.outbound_ips.state === 'enabled') {
|
|
25
|
+
natWarning = `The Outbound IPs for this space will be reused!\nEnsure that external services no longer allow these Outbound IPs: ${(0, spaces_1.displayNat)(space.outbound_ips)}\n`;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
await (0, confirmCommand_1.default)(spaceName, confirm, `Destructive Action\nThis command will destroy the space ${color_1.default.bold.red(spaceName)}\n${natWarning}\n`);
|
|
29
|
+
core_1.ux.action.start(`Destroying space ${color_1.default.cyan(spaceName)}`);
|
|
30
|
+
await this.heroku.delete(`/spaces/${spaceName}`);
|
|
31
|
+
core_1.ux.action.stop();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.default = Destroy;
|
|
35
|
+
Destroy.topic = 'spaces';
|
|
36
|
+
Destroy.description = (0, tsheredoc_1.default) `
|
|
37
|
+
destroy a space
|
|
38
|
+
`;
|
|
39
|
+
Destroy.examples = [(0, tsheredoc_1.default) `
|
|
40
|
+
$ heroku spaces:destroy --space my-space
|
|
41
|
+
Destroying my-space... done
|
|
42
|
+
`];
|
|
43
|
+
Destroy.flags = {
|
|
44
|
+
space: command_1.flags.string({ char: 's', description: 'space to destroy' }),
|
|
45
|
+
confirm: command_1.flags.string({ description: 'set to space name to bypass confirm prompt', hasValue: true }),
|
|
46
|
+
};
|
|
47
|
+
Destroy.args = {
|
|
48
|
+
space: core_1.Args.string({ hidden: true }),
|
|
49
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Get extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static aliases: string[];
|
|
5
|
+
static hidden: boolean;
|
|
6
|
+
static description: string;
|
|
7
|
+
static flags: {
|
|
8
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const color_1 = require("@heroku-cli/color");
|
|
4
|
+
const command_1 = require("@heroku-cli/command");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
class Get extends command_1.Command {
|
|
7
|
+
async run() {
|
|
8
|
+
const { flags } = await this.parse(Get);
|
|
9
|
+
const { space, json } = flags;
|
|
10
|
+
const { body: drain } = await this.heroku.get(`/spaces/${space}/log-drain`, { headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' } });
|
|
11
|
+
if (json) {
|
|
12
|
+
core_1.ux.log(JSON.stringify(drain, null, 2));
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
core_1.ux.log(`${color_1.default.cyan(drain.url)} (${color_1.default.green(drain.token)})`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = Get;
|
|
20
|
+
Get.topic = 'spaces';
|
|
21
|
+
Get.aliases = ['drains:get'];
|
|
22
|
+
Get.hidden = true;
|
|
23
|
+
Get.description = 'display the log drain for a space';
|
|
24
|
+
Get.flags = {
|
|
25
|
+
space: command_1.flags.string({ char: 's', description: 'space for which to get log drain', required: true }),
|
|
26
|
+
json: command_1.flags.boolean({ description: 'output in json format' }),
|
|
27
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Set extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static aliases: string[];
|
|
5
|
+
static hidden: boolean;
|
|
6
|
+
static description: string;
|
|
7
|
+
static flags: {
|
|
8
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
};
|
|
10
|
+
static args: {
|
|
11
|
+
url: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const color_1 = require("@heroku-cli/color");
|
|
4
|
+
const command_1 = require("@heroku-cli/command");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
class Set extends command_1.Command {
|
|
7
|
+
async run() {
|
|
8
|
+
const { flags, args } = await this.parse(Set);
|
|
9
|
+
const { url } = args;
|
|
10
|
+
const { space } = flags;
|
|
11
|
+
const { body: drain } = await this.heroku.put(`/spaces/${space}/log-drain`, {
|
|
12
|
+
body: { url },
|
|
13
|
+
headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
|
|
14
|
+
});
|
|
15
|
+
core_1.ux.log(`Successfully set drain ${color_1.default.cyan(drain.url)} for ${color_1.default.cyan.bold(space)}.`);
|
|
16
|
+
core_1.ux.warn('It may take a few moments for the changes to take effect.');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.default = Set;
|
|
20
|
+
Set.topic = 'spaces';
|
|
21
|
+
Set.aliases = ['drains:set'];
|
|
22
|
+
Set.hidden = true;
|
|
23
|
+
Set.description = 'replaces the log drain for a space';
|
|
24
|
+
Set.flags = {
|
|
25
|
+
space: command_1.flags.string({ char: 's', description: 'space for which to set log drain', required: true }),
|
|
26
|
+
};
|
|
27
|
+
Set.args = {
|
|
28
|
+
url: core_1.Args.string({ required: true }),
|
|
29
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Hosts extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static hidden: boolean;
|
|
5
|
+
static description: string;
|
|
6
|
+
static flags: {
|
|
7
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
};
|
|
10
|
+
static args: {
|
|
11
|
+
space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const command_1 = require("@heroku-cli/command");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const tsheredoc_1 = require("tsheredoc");
|
|
6
|
+
const hosts_1 = require("../../lib/spaces/hosts");
|
|
7
|
+
class Hosts extends command_1.Command {
|
|
8
|
+
async run() {
|
|
9
|
+
const { flags, args } = await this.parse(Hosts);
|
|
10
|
+
const spaceName = flags.space || args.space;
|
|
11
|
+
if (!spaceName) {
|
|
12
|
+
core_1.ux.error((0, tsheredoc_1.default)(`
|
|
13
|
+
Error: Missing 1 required arg:
|
|
14
|
+
space
|
|
15
|
+
See more help with --help
|
|
16
|
+
`));
|
|
17
|
+
}
|
|
18
|
+
const { body: hosts } = await this.heroku.get(`/spaces/${spaceName}/hosts`, {
|
|
19
|
+
headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
|
|
20
|
+
});
|
|
21
|
+
if (flags.json)
|
|
22
|
+
(0, hosts_1.displayHostsAsJSON)(hosts);
|
|
23
|
+
else
|
|
24
|
+
(0, hosts_1.displayHosts)(spaceName, hosts);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = Hosts;
|
|
28
|
+
Hosts.topic = 'spaces';
|
|
29
|
+
Hosts.hidden = true;
|
|
30
|
+
Hosts.description = 'list dedicated hosts for a space';
|
|
31
|
+
Hosts.flags = {
|
|
32
|
+
space: command_1.flags.string({ char: 's', description: 'space to get host list from' }),
|
|
33
|
+
json: command_1.flags.boolean({ description: 'output in json format' }),
|
|
34
|
+
};
|
|
35
|
+
Hosts.args = {
|
|
36
|
+
space: core_1.Args.string({ hidden: true }),
|
|
37
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
3
|
+
declare type SpaceArray = Array<Required<Heroku.Space>>;
|
|
4
|
+
export default class Index extends Command {
|
|
5
|
+
static topic: string;
|
|
6
|
+
static description: string;
|
|
7
|
+
static flags: {
|
|
8
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
team: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
protected sortByName(spaces: SpaceArray): SpaceArray;
|
|
13
|
+
protected displayJSON(spaces: SpaceArray): void;
|
|
14
|
+
protected display(spaces: SpaceArray): void;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const color_1 = require("@heroku-cli/color");
|
|
4
|
+
const command_1 = require("@heroku-cli/command");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
class Index extends command_1.Command {
|
|
7
|
+
async run() {
|
|
8
|
+
const { flags } = await this.parse(Index);
|
|
9
|
+
const { team, json } = flags;
|
|
10
|
+
let { body: spaces } = await this.heroku.get('/spaces');
|
|
11
|
+
if (team) {
|
|
12
|
+
spaces = spaces.filter(s => s.team.name === team);
|
|
13
|
+
}
|
|
14
|
+
spaces = this.sortByName(spaces);
|
|
15
|
+
if (json)
|
|
16
|
+
this.displayJSON(spaces);
|
|
17
|
+
else if (spaces.length === 0) {
|
|
18
|
+
if (team)
|
|
19
|
+
core_1.ux.error(`No spaces in ${color_1.default.cyan(team)}.`);
|
|
20
|
+
else
|
|
21
|
+
core_1.ux.error('You do not have access to any spaces.');
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
this.display(spaces);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
sortByName(spaces) {
|
|
28
|
+
spaces.sort((a, b) => {
|
|
29
|
+
return a.name === b.name ? 0 : (a.name < b.name ? -1 : 1);
|
|
30
|
+
});
|
|
31
|
+
return spaces;
|
|
32
|
+
}
|
|
33
|
+
displayJSON(spaces) {
|
|
34
|
+
core_1.ux.log(JSON.stringify(spaces, null, 2));
|
|
35
|
+
}
|
|
36
|
+
display(spaces) {
|
|
37
|
+
core_1.ux.table(spaces, {
|
|
38
|
+
Name: { get: space => space.name },
|
|
39
|
+
Team: { get: space => space.team.name },
|
|
40
|
+
Region: { get: space => space.region.name },
|
|
41
|
+
State: { get: space => space.state },
|
|
42
|
+
createdAt: {
|
|
43
|
+
header: 'Created At',
|
|
44
|
+
get: space => space.created_at,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.default = Index;
|
|
50
|
+
Index.topic = 'spaces';
|
|
51
|
+
Index.description = 'list available spaces';
|
|
52
|
+
Index.flags = {
|
|
53
|
+
json: command_1.flags.boolean({ description: 'output in json format' }),
|
|
54
|
+
team: command_1.flags.team(),
|
|
55
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Info extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static example: string;
|
|
6
|
+
static flags: {
|
|
7
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
};
|
|
10
|
+
static args: {
|
|
11
|
+
space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const command_1 = require("@heroku-cli/command");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const tsheredoc_1 = require("tsheredoc");
|
|
6
|
+
const spaces_1 = require("../../lib/spaces/spaces");
|
|
7
|
+
const debug_1 = require("debug");
|
|
8
|
+
const spacesDebug = (0, debug_1.default)('spaces:info');
|
|
9
|
+
class Info extends command_1.Command {
|
|
10
|
+
async run() {
|
|
11
|
+
const { flags, args } = await this.parse(Info);
|
|
12
|
+
const spaceName = flags.space || args.space;
|
|
13
|
+
if (!spaceName) {
|
|
14
|
+
core_1.ux.error((0, tsheredoc_1.default)(`
|
|
15
|
+
Error: Missing 1 required arg:
|
|
16
|
+
space
|
|
17
|
+
See more help with --help
|
|
18
|
+
`));
|
|
19
|
+
}
|
|
20
|
+
let headers = {};
|
|
21
|
+
if (!flags.json) {
|
|
22
|
+
headers = { 'Accept-Expansion': 'region' };
|
|
23
|
+
}
|
|
24
|
+
const { body: space } = await this.heroku.get(`/spaces/${spaceName}`, { headers });
|
|
25
|
+
if (space.state === 'allocated') {
|
|
26
|
+
try {
|
|
27
|
+
const { body: outbound_ips } = await this.heroku.get(`/spaces/${spaceName}/nat`);
|
|
28
|
+
space.outbound_ips = outbound_ips;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
spacesDebug(`Retrieving NAT details for the space failed with ${error}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
(0, spaces_1.renderInfo)(space, flags.json);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.default = Info;
|
|
38
|
+
Info.topic = 'spaces';
|
|
39
|
+
Info.description = 'show info about a space';
|
|
40
|
+
Info.example = '$ heroku spaces:info my-space';
|
|
41
|
+
Info.flags = {
|
|
42
|
+
space: command_1.flags.string({ char: 's', description: 'space to get info of' }),
|
|
43
|
+
json: command_1.flags.boolean({ description: 'output in json format' }),
|
|
44
|
+
};
|
|
45
|
+
Info.args = {
|
|
46
|
+
space: core_1.Args.string({ hidden: true }),
|
|
47
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Add extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static aliases: string[];
|
|
5
|
+
static description: string;
|
|
6
|
+
static examples: string[];
|
|
7
|
+
static hidden: boolean;
|
|
8
|
+
static flags: {
|
|
9
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
dest: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
+
protocol: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
12
|
+
port: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const command_1 = require("@heroku-cli/command");
|
|
4
|
+
const color_1 = require("@heroku-cli/color");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const tsheredoc_1 = require("tsheredoc");
|
|
7
|
+
const outbound_rules_1 = require("../../../lib/spaces/outbound-rules");
|
|
8
|
+
const completions_1 = require("@heroku-cli/command/lib/completions");
|
|
9
|
+
const completions_2 = require("../../../lib/autocomplete/completions");
|
|
10
|
+
class Add extends command_1.Command {
|
|
11
|
+
async run() {
|
|
12
|
+
const { flags } = await this.parse(Add);
|
|
13
|
+
const { space, dest, protocol, port } = flags;
|
|
14
|
+
const { body: ruleset } = await this.heroku.get(`/spaces/${space}/outbound-ruleset`, {
|
|
15
|
+
headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
|
|
16
|
+
});
|
|
17
|
+
ruleset.rules = ruleset.rules || [];
|
|
18
|
+
const ports = (0, outbound_rules_1.parsePorts)(protocol, port);
|
|
19
|
+
ruleset.rules.push({
|
|
20
|
+
target: dest, from_port: ports[0], to_port: ports[1] || ports[0], protocol: protocol,
|
|
21
|
+
});
|
|
22
|
+
core_1.ux.action.start(`Adding rule to the Outbound Rules of ${color_1.default.cyan.bold(space)}`);
|
|
23
|
+
await this.heroku.put(`/spaces/${space}/outbound-ruleset`, {
|
|
24
|
+
headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
|
|
25
|
+
body: ruleset,
|
|
26
|
+
});
|
|
27
|
+
core_1.ux.action.stop();
|
|
28
|
+
core_1.ux.warn('Modifying the Outbound Rules may break Add-ons for Apps in this Private Space');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.default = Add;
|
|
32
|
+
Add.topic = 'spaces';
|
|
33
|
+
Add.aliases = ['outbound-rules:add'];
|
|
34
|
+
Add.description = (0, tsheredoc_1.default)(`
|
|
35
|
+
Add outbound rules to a Private Space
|
|
36
|
+
|
|
37
|
+
The destination flag uses CIDR notation.
|
|
38
|
+
|
|
39
|
+
ICMP Rules
|
|
40
|
+
The ICMP protocol has types, not ports, but the underlying systems treat them as the same. For this reason,
|
|
41
|
+
when you want to allow ICMP traffic you will use the --port flag to specify the ICMP types you want to
|
|
42
|
+
allow. ICMP types are numbered, 0-255.
|
|
43
|
+
`);
|
|
44
|
+
Add.examples = [
|
|
45
|
+
(0, tsheredoc_1.default)(`
|
|
46
|
+
$ heroku outbound-rules:add --space my-space --dest 192.168.2.0/24 --protocol tcp --port 80
|
|
47
|
+
Adding rule to the Outbound Rules of my-space... done
|
|
48
|
+
`),
|
|
49
|
+
(0, tsheredoc_1.default)(`
|
|
50
|
+
# with port range:
|
|
51
|
+
$ heroku outbound-rules:add --space my-space --dest 192.168.2.0/24 --protocol tcp --port 80-100
|
|
52
|
+
Adding rule to the Outbound Rules of my-space... done
|
|
53
|
+
`),
|
|
54
|
+
(0, tsheredoc_1.default)(`
|
|
55
|
+
# opening up everything
|
|
56
|
+
$ heroku outbound-rules:add --space my-space --dest 0.0.0.0/0 --protocol any --port any
|
|
57
|
+
Adding rule to the Outbound Rules of my-space... done
|
|
58
|
+
`),
|
|
59
|
+
];
|
|
60
|
+
Add.hidden = true;
|
|
61
|
+
Add.flags = {
|
|
62
|
+
space: command_1.flags.string({
|
|
63
|
+
char: 's',
|
|
64
|
+
description: 'space to add rule to',
|
|
65
|
+
required: true,
|
|
66
|
+
completion: completions_1.SpaceCompletion,
|
|
67
|
+
}),
|
|
68
|
+
dest: command_1.flags.string({
|
|
69
|
+
description: 'target CIDR block dynos are allowed to communicate with',
|
|
70
|
+
required: true,
|
|
71
|
+
}),
|
|
72
|
+
protocol: command_1.flags.string({
|
|
73
|
+
description: 'the protocol dynos are allowed to use when communicating with hosts in destination CIDR block.',
|
|
74
|
+
completion: completions_2.ProtocolCompletion,
|
|
75
|
+
options: ['tcp', 'udp', 'icmp', '0-255', 'any'],
|
|
76
|
+
required: true,
|
|
77
|
+
}),
|
|
78
|
+
port: command_1.flags.string({
|
|
79
|
+
description: 'the port dynos are allowed to use when communicating with hosts in destination CIDR block. Accepts a range in `<lowest port>-<highest port>` format. 0 is the minimum. The maximum port allowed is 65535, except for ICMP with a maximum of 255.',
|
|
80
|
+
}),
|
|
81
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Index extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static aliases: string[];
|
|
5
|
+
static description: string;
|
|
6
|
+
static hidden: boolean;
|
|
7
|
+
static flags: {
|
|
8
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
};
|
|
11
|
+
static args: {
|
|
12
|
+
space: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const command_1 = require("@heroku-cli/command");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const tsheredoc_1 = require("tsheredoc");
|
|
6
|
+
const outbound_rules_1 = require("../../../lib/spaces/outbound-rules");
|
|
7
|
+
const completions_1 = require("@heroku-cli/command/lib/completions");
|
|
8
|
+
class Index extends command_1.Command {
|
|
9
|
+
async run() {
|
|
10
|
+
const { flags, args } = await this.parse(Index);
|
|
11
|
+
const spaceName = flags.space || args.space;
|
|
12
|
+
if (!spaceName) {
|
|
13
|
+
core_1.ux.error((0, tsheredoc_1.default)(`
|
|
14
|
+
Error: Missing 1 required arg:
|
|
15
|
+
space
|
|
16
|
+
See more help with --help
|
|
17
|
+
`));
|
|
18
|
+
}
|
|
19
|
+
const { body: ruleset } = await this.heroku.get(`/spaces/${spaceName}/outbound-ruleset`, {
|
|
20
|
+
headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
|
|
21
|
+
});
|
|
22
|
+
if (flags.json)
|
|
23
|
+
(0, outbound_rules_1.displayRulesAsJSON)(ruleset);
|
|
24
|
+
else
|
|
25
|
+
(0, outbound_rules_1.displayRules)(spaceName, ruleset);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = Index;
|
|
29
|
+
Index.topic = 'spaces';
|
|
30
|
+
Index.aliases = ['outbound-rules'];
|
|
31
|
+
Index.description = (0, tsheredoc_1.default)(`
|
|
32
|
+
list Outbound Rules for a space
|
|
33
|
+
Outbound Rules are only available on Private Spaces.
|
|
34
|
+
|
|
35
|
+
Newly created spaces will have an "Allow All" rule set by default
|
|
36
|
+
allowing all egress dyno traffic outside of the space. You can
|
|
37
|
+
remove this default rule to completely stop your private dynos from
|
|
38
|
+
talking to the world.
|
|
39
|
+
|
|
40
|
+
You can add specific rules that only allow your dyno to communicate with trusted hosts.
|
|
41
|
+
`);
|
|
42
|
+
Index.hidden = true;
|
|
43
|
+
Index.flags = {
|
|
44
|
+
space: command_1.flags.string({ char: 's', description: 'space to get outbound rules from', completion: completions_1.SpaceCompletion }),
|
|
45
|
+
json: command_1.flags.boolean({ description: 'output in json format' }),
|
|
46
|
+
};
|
|
47
|
+
Index.args = {
|
|
48
|
+
space: core_1.Args.string({ hidden: true }),
|
|
49
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
|
+
export default class Remove extends Command {
|
|
3
|
+
static topic: string;
|
|
4
|
+
static aliases: string[];
|
|
5
|
+
static description: string;
|
|
6
|
+
static examples: string[];
|
|
7
|
+
static hidden: boolean;
|
|
8
|
+
static flags: {
|
|
9
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
confirm: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
static args: {
|
|
13
|
+
ruleNumber: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
|
|
14
|
+
};
|
|
15
|
+
private clientOptions;
|
|
16
|
+
run(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const color_1 = require("@heroku-cli/color");
|
|
4
|
+
const command_1 = require("@heroku-cli/command");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const tsheredoc_1 = require("tsheredoc");
|
|
7
|
+
const confirmCommand_1 = require("../../../lib/confirmCommand");
|
|
8
|
+
class Remove extends command_1.Command {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.clientOptions = {
|
|
12
|
+
headers: { Accept: 'application/vnd.heroku+json; version=3.dogwood' },
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
async run() {
|
|
16
|
+
var _a;
|
|
17
|
+
const { flags, args } = await this.parse(Remove);
|
|
18
|
+
const space = flags.space;
|
|
19
|
+
if (!space)
|
|
20
|
+
throw new Error('Space name required.');
|
|
21
|
+
const { body: ruleset } = await this.heroku.get(`/spaces/${space}/outbound-ruleset`, this.clientOptions);
|
|
22
|
+
if (!((_a = ruleset.rules) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
23
|
+
throw new Error('No Outbound Rules configured. Nothing to do.');
|
|
24
|
+
}
|
|
25
|
+
const deleted = ruleset.rules.splice(Number.parseInt(args.ruleNumber, 10) - 1, 1)[0];
|
|
26
|
+
await (0, confirmCommand_1.default)(space, flags.confirm, (0, tsheredoc_1.default)(`
|
|
27
|
+
Destructive Action
|
|
28
|
+
This will remove:
|
|
29
|
+
Destination: ${deleted.target}, From Port: ${deleted.from_port}, To Port: ${deleted.to_port}, Protocol ${deleted.protocol}
|
|
30
|
+
from the Outbound Rules on ${color_1.default.cyan.bold(space)}
|
|
31
|
+
`));
|
|
32
|
+
const opts = Object.assign(Object.assign({}, this.clientOptions), { body: ruleset });
|
|
33
|
+
await this.heroku.put(`/spaces/${space}/outbound-ruleset`, opts);
|
|
34
|
+
core_1.ux.log(`Removed Rule ${color_1.default.cyan.bold(args.ruleNumber)} from Outbound Rules on ${color_1.default.cyan.bold(space)}`);
|
|
35
|
+
core_1.ux.warn('It may take a few moments for the changes to take effect.');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = Remove;
|
|
39
|
+
Remove.topic = 'spaces';
|
|
40
|
+
Remove.aliases = ['outbound-rules:remove'];
|
|
41
|
+
Remove.description = 'Remove a Rules from the list of Outbound Rules';
|
|
42
|
+
Remove.examples = [(0, tsheredoc_1.default)(`
|
|
43
|
+
$ heroku outbound-rules:remove --space my-space 4
|
|
44
|
+
Removed 192.168.2.0/24 from trusted IP ranges on my-space
|
|
45
|
+
`)];
|
|
46
|
+
Remove.hidden = true;
|
|
47
|
+
Remove.flags = {
|
|
48
|
+
space: command_1.flags.string({ optional: false, description: 'space to remove rule from' }),
|
|
49
|
+
confirm: command_1.flags.string({ description: 'set to space name to bypass confirm prompt' }),
|
|
50
|
+
};
|
|
51
|
+
Remove.args = {
|
|
52
|
+
ruleNumber: core_1.Args.string({ required: true }),
|
|
53
|
+
};
|