heroku 11.0.0-alpha.10 → 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 +8433 -2271
- 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
package/lib/commands/status.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { color } from '@heroku-cli
|
|
1
|
+
import { color, hux } from '@heroku/heroku-cli-util';
|
|
2
|
+
import { HTTP } from '@heroku/http-call';
|
|
2
3
|
import { Command, Flags, ux } from '@oclif/core';
|
|
3
|
-
import { hux } from '@heroku/heroku-cli-util';
|
|
4
4
|
import { formatDistanceToNow } from 'date-fns';
|
|
5
|
-
import { HTTP } from '@heroku/http-call';
|
|
6
5
|
import { getMaxUpdateTypeLength } from '../lib/status/util.js';
|
|
7
6
|
const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
|
|
8
7
|
const errorMessage = 'Heroku platform status is unavailable at this time. Refer to https://status.salesforce.com/products/Heroku or try again later.';
|
|
@@ -67,27 +66,27 @@ const formatTrustResponse = (instances, activeIncidents, maintenances, localizat
|
|
|
67
66
|
const dataIncidents = herokuActiveIncidents.filter(incident => incident.serviceKeys.includes('HerokuData') || incident.serviceKeys.includes('Data'));
|
|
68
67
|
if (appsIncidents.length > 0) {
|
|
69
68
|
const severity = determineIncidentSeverity(appsIncidents);
|
|
70
|
-
systemStatus.push({ system: 'Apps'
|
|
69
|
+
systemStatus.push({ status: severity, system: 'Apps' });
|
|
71
70
|
incidents.push(...appsIncidents);
|
|
72
71
|
}
|
|
73
72
|
else {
|
|
74
|
-
systemStatus.push({
|
|
73
|
+
systemStatus.push({ status: 'green', system: 'Apps' });
|
|
75
74
|
}
|
|
76
75
|
if (dataIncidents.length > 0) {
|
|
77
76
|
const severity = determineIncidentSeverity(dataIncidents);
|
|
78
|
-
systemStatus.push({ system: 'Data'
|
|
77
|
+
systemStatus.push({ status: severity, system: 'Data' });
|
|
79
78
|
incidents.push(...dataIncidents);
|
|
80
79
|
}
|
|
81
80
|
else {
|
|
82
|
-
systemStatus.push({
|
|
81
|
+
systemStatus.push({ status: 'green', system: 'Data' });
|
|
83
82
|
}
|
|
84
83
|
if (toolsIncidents.length > 0) {
|
|
85
84
|
const severity = determineIncidentSeverity(toolsIncidents);
|
|
86
|
-
systemStatus.push({ system: 'Tools'
|
|
85
|
+
systemStatus.push({ status: severity, system: 'Tools' });
|
|
87
86
|
incidents.push(...toolsIncidents);
|
|
88
87
|
}
|
|
89
88
|
else {
|
|
90
|
-
systemStatus.push({
|
|
89
|
+
systemStatus.push({ status: 'green', system: 'Tools' });
|
|
91
90
|
}
|
|
92
91
|
if (maintenances.length > 0)
|
|
93
92
|
scheduled.push(...maintenances);
|
|
@@ -98,11 +97,13 @@ const formatTrustResponse = (instances, activeIncidents, maintenances, localizat
|
|
|
98
97
|
});
|
|
99
98
|
});
|
|
100
99
|
}
|
|
100
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
101
101
|
return {
|
|
102
102
|
status: systemStatus,
|
|
103
103
|
incidents,
|
|
104
104
|
scheduled,
|
|
105
105
|
};
|
|
106
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
106
107
|
};
|
|
107
108
|
export default class Status extends Command {
|
|
108
109
|
static description = 'display current status of the Heroku platform';
|
|
@@ -148,10 +149,10 @@ export default class Status extends Command {
|
|
|
148
149
|
if (herokuStatus) {
|
|
149
150
|
for (const incident of herokuStatus.incidents) {
|
|
150
151
|
ux.stdout();
|
|
151
|
-
hux.styledHeader(`${incident.title} ${color.
|
|
152
|
+
hux.styledHeader(`${incident.title} ${color.warning(incident.created_at)} ${color.info(incident.full_url)}`);
|
|
152
153
|
const padding = getMaxUpdateTypeLength(incident.updates.map(update => update.update_type));
|
|
153
154
|
for (const u of incident.updates) {
|
|
154
|
-
ux.stdout(`${color.
|
|
155
|
+
ux.stdout(`${color.warning(u.update_type.padEnd(padding))} ${new Date(u.updated_at).toISOString()} (${formatDistanceToNow(new Date(u.updated_at))} ago)`);
|
|
155
156
|
ux.stdout(`${u.contents}\n`);
|
|
156
157
|
}
|
|
157
158
|
}
|
|
@@ -159,11 +160,11 @@ export default class Status extends Command {
|
|
|
159
160
|
else if (formattedTrustStatus) {
|
|
160
161
|
for (const incident of formattedTrustStatus.incidents) {
|
|
161
162
|
ux.stdout();
|
|
162
|
-
hux.styledHeader(`${incident.id} ${color.
|
|
163
|
+
hux.styledHeader(`${incident.id} ${color.warning(incident.createdAt)} ${color.info(`https://status.salesforce.com/incidents/${incident.id}`)}`);
|
|
163
164
|
const padding = getMaxUpdateTypeLength(incident.IncidentEvents.map(event => event.localizedType ?? event.type));
|
|
164
165
|
for (const event of incident.IncidentEvents) {
|
|
165
166
|
const eventType = event.localizedType ?? event.type;
|
|
166
|
-
ux.stdout(`${color.
|
|
167
|
+
ux.stdout(`${color.warning(eventType.padEnd(padding))} ${new Date(event.createdAt).toISOString()} (${formatDistanceToNow(new Date(event.createdAt))} ago)`);
|
|
167
168
|
ux.stdout(`${event.message}\n`);
|
|
168
169
|
}
|
|
169
170
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Command } from '@heroku-cli/command';
|
|
2
2
|
export default class Index extends Command {
|
|
3
|
-
static topic: string;
|
|
4
3
|
static description: string;
|
|
5
4
|
static flags: {
|
|
6
5
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
6
|
};
|
|
7
|
+
static topic: string;
|
|
8
8
|
run(): Promise<void>;
|
|
9
9
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { color } from '@heroku-cli
|
|
1
|
+
import { color, hux } from '@heroku/heroku-cli-util';
|
|
2
2
|
import { Command, flags } from '@heroku-cli/command';
|
|
3
|
-
import { hux } from '@heroku/heroku-cli-util';
|
|
4
3
|
export default class Index extends Command {
|
|
5
|
-
static
|
|
6
|
-
static description = `list the teams that you are a member of\n\nUse ${color.cmd('heroku members:*')} to manage team members.`;
|
|
4
|
+
static description = `list the teams that you are a member of\n\nUse ${color.code('heroku members:*')} to manage team members.`;
|
|
7
5
|
static flags = {
|
|
8
6
|
json: flags.boolean({ description: 'output in json format' }),
|
|
9
7
|
};
|
|
8
|
+
static topic = 'teams';
|
|
10
9
|
async run() {
|
|
11
10
|
const { flags } = await this.parse(Index);
|
|
12
11
|
const { body: teams } = await this.heroku.get('/teams');
|
|
@@ -19,7 +18,7 @@ export default class Index extends Command {
|
|
|
19
18
|
return (aName > bName) ? 1 : ((bName > aName) ? -1 : 0);
|
|
20
19
|
}), {
|
|
21
20
|
name: { header: 'Team' },
|
|
22
|
-
role: {
|
|
21
|
+
role: { get: ({ role }) => color.info(role || ''), header: 'Role' },
|
|
23
22
|
});
|
|
24
23
|
}
|
|
25
24
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Command } from '@heroku-cli/command';
|
|
2
2
|
export default class Add extends Command {
|
|
3
|
+
static args: {
|
|
4
|
+
endpoint: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
5
|
+
};
|
|
3
6
|
static description: string;
|
|
7
|
+
static example: string;
|
|
4
8
|
static flags: {
|
|
5
9
|
app: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
6
10
|
headers: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
-
space: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
11
|
signals: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
space: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
13
|
transport: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
14
|
};
|
|
11
|
-
static args: {
|
|
12
|
-
endpoint: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
13
|
-
};
|
|
14
|
-
static example: string;
|
|
15
15
|
run(): Promise<void>;
|
|
16
|
+
private getExporterType;
|
|
16
17
|
}
|
|
@@ -1,28 +1,40 @@
|
|
|
1
|
+
import { color } from '@heroku/heroku-cli-util';
|
|
1
2
|
import { Command, flags as Flags } from '@heroku-cli/command';
|
|
2
3
|
import { Args, ux } from '@oclif/core';
|
|
3
4
|
import tsheredoc from 'tsheredoc';
|
|
4
5
|
import { validateAndFormatSignals } from '../../lib/telemetry/util.js';
|
|
5
6
|
const heredoc = tsheredoc.default;
|
|
6
7
|
export default class Add extends Command {
|
|
8
|
+
static args = {
|
|
9
|
+
endpoint: Args.string({ description: 'drain url', required: true }),
|
|
10
|
+
};
|
|
7
11
|
static description = 'Add and configure a new telemetry drain. Defaults to collecting all telemetry unless otherwise specified.';
|
|
12
|
+
/* eslint-disable quotes */
|
|
13
|
+
static example = heredoc `
|
|
14
|
+
Add a telemetry drain to an app to collect logs and traces:
|
|
15
|
+
|
|
16
|
+
${color.command(`heroku telemetry:add https://my-endpoint.com --app myapp --signals logs,traces --headers '{"x-drain-example-team": "API_KEY", "x-drain-example-dataset": "METRICS_DATASET"}'`)}
|
|
17
|
+
`;
|
|
8
18
|
static flags = {
|
|
9
|
-
app: Flags.string({ char: 'a',
|
|
19
|
+
app: Flags.string({ char: 'a', description: 'app to add a drain to', exactlyOne: ['app', 'space'] }),
|
|
10
20
|
headers: Flags.string({ description: 'custom headers to configure the drain in json format' }),
|
|
11
|
-
space: Flags.string({ char: 's', description: 'space to add a drain to' }),
|
|
12
21
|
signals: Flags.string({ default: 'all', description: 'comma-delimited list of signals to collect (traces, metrics, logs). Use "all" to collect all signals.' }),
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
endpoint: Args.string({ required: true, description: 'drain url' }),
|
|
22
|
+
space: Flags.string({ char: 's', description: 'space to add a drain to' }),
|
|
23
|
+
// If splunk transport is accepted as a feature, this should have options: ['http', 'grpc', 'splunk']
|
|
24
|
+
transport: Flags.string({ default: 'http', description: 'transport protocol for the drain' }),
|
|
17
25
|
};
|
|
18
|
-
|
|
19
|
-
Add a telemetry drain to an app to collect logs and traces:
|
|
20
|
-
$ heroku telemetry:add https://my-endpoint.com --app myapp --signals logs,traces --headers '{"x-drain-example-team": "API_KEY", "x-drain-example-dataset": "METRICS_DATASET"}'
|
|
21
|
-
`);
|
|
26
|
+
/* eslint-enable quotes */
|
|
22
27
|
async run() {
|
|
23
|
-
const {
|
|
24
|
-
const { app, headers,
|
|
28
|
+
const { args, flags } = await this.parse(Add);
|
|
29
|
+
const { app, headers, signals, space, transport } = flags;
|
|
25
30
|
const { endpoint } = args;
|
|
31
|
+
// Allow splunk, but do not show splunk in error message until splunk transport is accepted as a feature
|
|
32
|
+
// When splunk transport is accepted as a feature, and options are added for the transport flag, this section should be removed
|
|
33
|
+
const publicTransports = ['http', 'grpc'];
|
|
34
|
+
const validTransports = [...publicTransports, 'splunk'];
|
|
35
|
+
if (!validTransports.includes(transport)) {
|
|
36
|
+
throw new Error(`Expected --transport=${transport} to be one of: ${publicTransports.join(', ')}`);
|
|
37
|
+
}
|
|
26
38
|
let id;
|
|
27
39
|
if (app) {
|
|
28
40
|
const { body: herokuApp } = await this.heroku.get(`/apps/${app}`, {
|
|
@@ -36,16 +48,16 @@ export default class Add extends Command {
|
|
|
36
48
|
}
|
|
37
49
|
const exporterHeaders = headers || '{}';
|
|
38
50
|
const drainConfig = {
|
|
39
|
-
owner: {
|
|
40
|
-
type: app ? 'app' : 'space',
|
|
41
|
-
id,
|
|
42
|
-
},
|
|
43
|
-
signals: validateAndFormatSignals(signals),
|
|
44
51
|
exporter: {
|
|
45
52
|
endpoint,
|
|
46
|
-
type: (transport === 'grpc') ? 'otlp' : 'otlphttp',
|
|
47
53
|
headers: JSON.parse(exporterHeaders),
|
|
54
|
+
type: this.getExporterType(transport),
|
|
55
|
+
},
|
|
56
|
+
owner: {
|
|
57
|
+
id,
|
|
58
|
+
type: app ? 'app' : 'space',
|
|
48
59
|
},
|
|
60
|
+
signals: validateAndFormatSignals(signals),
|
|
49
61
|
};
|
|
50
62
|
const { body: drain } = await this.heroku.post('/telemetry-drains', {
|
|
51
63
|
body: drainConfig,
|
|
@@ -55,4 +67,17 @@ export default class Add extends Command {
|
|
|
55
67
|
});
|
|
56
68
|
ux.stdout(`successfully added drain ${drain.exporter.endpoint}`);
|
|
57
69
|
}
|
|
70
|
+
getExporterType(transport) {
|
|
71
|
+
switch (transport) {
|
|
72
|
+
case 'grpc': {
|
|
73
|
+
return 'otlp';
|
|
74
|
+
}
|
|
75
|
+
case 'splunk': {
|
|
76
|
+
return 'splunk';
|
|
77
|
+
}
|
|
78
|
+
default: {
|
|
79
|
+
return 'otlphttp';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
58
83
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Command } from '@heroku-cli/command';
|
|
2
2
|
import { TelemetryDrains } from '../../lib/types/telemetry.js';
|
|
3
3
|
export default class Index extends Command {
|
|
4
|
-
static topic: string;
|
|
5
4
|
static description: string;
|
|
5
|
+
static example: string;
|
|
6
6
|
static flags: {
|
|
7
|
-
space: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
7
|
app: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
space: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
9
|
};
|
|
10
|
-
static
|
|
11
|
-
run(): Promise<void>;
|
|
10
|
+
static topic: string;
|
|
12
11
|
protected display(telemetryDrains: TelemetryDrains, owner: string | undefined): void;
|
|
12
|
+
run(): Promise<void>;
|
|
13
13
|
}
|
|
@@ -1,14 +1,29 @@
|
|
|
1
|
+
import { color, hux } from '@heroku/heroku-cli-util';
|
|
1
2
|
import { Command, flags as Flags } from '@heroku-cli/command';
|
|
2
3
|
import { ux } from '@oclif/core';
|
|
3
|
-
import { hux } from '@heroku/heroku-cli-util';
|
|
4
4
|
export default class Index extends Command {
|
|
5
|
-
static topic = 'telemetry';
|
|
6
5
|
static description = 'list telemetry drains';
|
|
6
|
+
static example = `${color.command('heroku telemetry')}`;
|
|
7
7
|
static flags = {
|
|
8
|
-
space: Flags.string({ char: 's', description: 'filter by space name', exactlyOne: ['app', 'space'] }),
|
|
9
8
|
app: Flags.string({ char: 'a', description: 'filter by app name' }),
|
|
9
|
+
space: Flags.string({ char: 's', description: 'filter by space name', exactlyOne: ['app', 'space'] }),
|
|
10
10
|
};
|
|
11
|
-
static
|
|
11
|
+
static topic = 'telemetry';
|
|
12
|
+
display(telemetryDrains, owner) {
|
|
13
|
+
if (telemetryDrains.length === 0) {
|
|
14
|
+
ux.stdout(`There are no telemetry drains in ${owner}`);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
hux.styledHeader(`${owner} Telemetry Drains`);
|
|
18
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
19
|
+
hux.table(telemetryDrains, {
|
|
20
|
+
ID: { get: telemetryDrain => telemetryDrain.id },
|
|
21
|
+
Signals: { get: telemetryDrain => telemetryDrain.signals },
|
|
22
|
+
Endpoint: { get: telemetryDrain => telemetryDrain.exporter.endpoint },
|
|
23
|
+
});
|
|
24
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
25
|
+
}
|
|
26
|
+
}
|
|
12
27
|
async run() {
|
|
13
28
|
const { flags } = await this.parse(Index);
|
|
14
29
|
const { app, space } = flags;
|
|
@@ -31,17 +46,4 @@ export default class Index extends Command {
|
|
|
31
46
|
}
|
|
32
47
|
this.display(drains, app || space);
|
|
33
48
|
}
|
|
34
|
-
display(telemetryDrains, owner) {
|
|
35
|
-
if (telemetryDrains.length === 0) {
|
|
36
|
-
ux.stdout(`There are no telemetry drains in ${owner}`);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
hux.styledHeader(`${owner} Telemetry Drains`);
|
|
40
|
-
hux.table(telemetryDrains, {
|
|
41
|
-
ID: { get: telemetryDrain => telemetryDrain.id },
|
|
42
|
-
Signals: { get: telemetryDrain => telemetryDrain.signals },
|
|
43
|
-
Endpoint: { get: telemetryDrain => telemetryDrain.exporter.endpoint },
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
49
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Command } from '@heroku-cli/command';
|
|
2
2
|
export default class Info extends Command {
|
|
3
|
-
static topic: string;
|
|
4
|
-
static description: string;
|
|
5
3
|
static args: {
|
|
6
4
|
telemetry_drain_id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
5
|
};
|
|
6
|
+
static description: string;
|
|
8
7
|
static example: string;
|
|
8
|
+
static topic: string;
|
|
9
9
|
run(): Promise<void>;
|
|
10
10
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { color } from '@heroku/heroku-cli-util';
|
|
1
2
|
import { Command } from '@heroku-cli/command';
|
|
2
3
|
import { Args } from '@oclif/core';
|
|
3
4
|
import { displayTelemetryDrain } from '../../lib/telemetry/util.js';
|
|
4
5
|
export default class Info extends Command {
|
|
5
|
-
static topic = 'telemetry';
|
|
6
|
-
static description = 'show a telemetry drain\'s info';
|
|
7
6
|
static args = {
|
|
8
|
-
telemetry_drain_id: Args.string({
|
|
7
|
+
telemetry_drain_id: Args.string({ description: 'ID of the drain to show info for', required: true }),
|
|
9
8
|
};
|
|
10
|
-
static
|
|
9
|
+
static description = 'show a telemetry drain\'s info';
|
|
10
|
+
static example = `${color.command('heroku telemetry:info 022e2e2e-2e2e-2e2e-2e2e-2e2e2e2e2e2e')}`;
|
|
11
|
+
static topic = 'telemetry';
|
|
11
12
|
async run() {
|
|
12
13
|
const { args } = await this.parse(Info);
|
|
13
14
|
const { telemetry_drain_id } = args;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Command } from '@heroku-cli/command';
|
|
2
2
|
export default class Update extends Command {
|
|
3
|
-
static topic: string;
|
|
4
|
-
static description: string;
|
|
5
3
|
static args: {
|
|
6
4
|
telemetry_drain_id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
5
|
};
|
|
6
|
+
static description: string;
|
|
7
|
+
static example: string;
|
|
8
8
|
static flags: {
|
|
9
9
|
endpoint: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
10
|
headers: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
signals: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
transport: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
13
|
};
|
|
14
|
-
static
|
|
14
|
+
static topic: string;
|
|
15
15
|
run(): Promise<void>;
|
|
16
16
|
}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { color } from '@heroku/heroku-cli-util';
|
|
2
|
+
import { Command, flags as Flags } from '@heroku-cli/command';
|
|
2
3
|
import { Args, ux } from '@oclif/core';
|
|
3
4
|
import tsheredoc from 'tsheredoc';
|
|
4
5
|
import { displayTelemetryDrain, validateAndFormatSignals } from '../../lib/telemetry/util.js';
|
|
5
6
|
const heredoc = tsheredoc.default;
|
|
6
7
|
export default class Update extends Command {
|
|
7
|
-
static topic = 'telemetry';
|
|
8
|
-
static description = 'updates a telemetry drain with provided attributes (attributes not provided remain unchanged)';
|
|
9
8
|
static args = {
|
|
10
|
-
telemetry_drain_id: Args.string({
|
|
9
|
+
telemetry_drain_id: Args.string({ description: 'ID of the drain to update', required: true }),
|
|
11
10
|
};
|
|
11
|
+
static description = 'updates a telemetry drain with provided attributes (attributes not provided remain unchanged)';
|
|
12
|
+
static example = `${color.command('heroku telemetry:update acde070d-8c4c-4f0d-9d8a-162843c10333 --signals logs,metrics --endpoint https://my-new-endpoint.com')}`;
|
|
12
13
|
static flags = {
|
|
13
14
|
endpoint: Flags.string({ description: 'drain url' }),
|
|
14
15
|
headers: Flags.string({ description: 'custom headers to configure the drain in json format' }),
|
|
15
16
|
signals: Flags.string({ description: 'comma-delimited list of signals to collect (traces, metrics, logs). Use "all" to collect all signals.' }),
|
|
16
|
-
transport: Flags.string({
|
|
17
|
+
transport: Flags.string({ description: 'transport protocol for the drain', options: ['http', 'grpc'] }),
|
|
17
18
|
};
|
|
18
|
-
static
|
|
19
|
-
$ heroku telemetry:update acde070d-8c4c-4f0d-9d8a-162843c10333 --signals logs,metrics --endpoint https://my-new-endpoint.com
|
|
20
|
-
`);
|
|
19
|
+
static topic = 'telemetry';
|
|
21
20
|
async run() {
|
|
22
21
|
const { args, flags } = await this.parse(Update);
|
|
23
22
|
const { telemetry_drain_id } = args;
|
|
@@ -47,10 +46,10 @@ export default class Update extends Command {
|
|
|
47
46
|
}
|
|
48
47
|
ux.action.start(`Updating telemetry drain ${telemetry_drain_id}`);
|
|
49
48
|
const { body: telemetryDrain } = await this.heroku.patch(`/telemetry-drains/${telemetry_drain_id}`, {
|
|
49
|
+
body: drainConfig,
|
|
50
50
|
headers: {
|
|
51
51
|
Accept: 'application/vnd.heroku+json; version=3.sdk',
|
|
52
52
|
},
|
|
53
|
-
body: drainConfig,
|
|
54
53
|
});
|
|
55
54
|
ux.action.stop();
|
|
56
55
|
await displayTelemetryDrain(telemetryDrain, this.heroku);
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Command } from '@heroku-cli/command';
|
|
2
2
|
export default class UsageAddons extends Command {
|
|
3
|
-
static topic: string;
|
|
4
3
|
static description: string;
|
|
5
4
|
static flags: {
|
|
6
5
|
app: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
6
|
team: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
7
|
};
|
|
8
|
+
static topic: string;
|
|
9
|
+
run(): Promise<void>;
|
|
9
10
|
private displayAppUsage;
|
|
10
11
|
private fetchAndDisplayAppUsageData;
|
|
11
12
|
private fetchAndDisplayTeamUsageData;
|
|
12
13
|
private getAppInfoFromTeamAddons;
|
|
13
|
-
run(): Promise<void>;
|
|
14
14
|
}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
+
import { color, hux } from '@heroku/heroku-cli-util';
|
|
1
2
|
import { Command, flags } from '@heroku-cli/command';
|
|
2
3
|
import { ux } from '@oclif/core';
|
|
3
|
-
import { hux } from '@heroku/heroku-cli-util';
|
|
4
|
-
import { color } from '@heroku-cli/color';
|
|
5
4
|
export default class UsageAddons extends Command {
|
|
6
|
-
static topic = 'usage';
|
|
7
5
|
static description = 'list usage for metered add-ons attached to an app or apps within a team';
|
|
8
6
|
static flags = {
|
|
9
7
|
app: flags.string({ char: 'a', description: 'app to list metered add-ons usage for' }),
|
|
10
8
|
team: flags.team({ description: 'team to list metered add-ons usage for' }),
|
|
11
9
|
};
|
|
10
|
+
static topic = 'usage';
|
|
11
|
+
async run() {
|
|
12
|
+
const { flags } = await this.parse(UsageAddons);
|
|
13
|
+
const { app, team } = flags;
|
|
14
|
+
if (!app && !team) {
|
|
15
|
+
ux.error('Specify an app with --app or a team with --team');
|
|
16
|
+
}
|
|
17
|
+
if (app) {
|
|
18
|
+
await this.fetchAndDisplayAppUsageData(app, team);
|
|
19
|
+
}
|
|
20
|
+
else if (team) {
|
|
21
|
+
await this.fetchAndDisplayTeamUsageData(team);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
12
24
|
displayAppUsage(app, usageAddons, appAddons) {
|
|
13
25
|
const metersArray = usageAddons.flatMap(addon => Object.entries(addon.meters).map(([label, data]) => ({
|
|
14
26
|
label,
|
|
@@ -65,7 +77,7 @@ export default class UsageAddons extends Command {
|
|
|
65
77
|
this.displayAppUsage(app, usageAddons, appAddons);
|
|
66
78
|
}
|
|
67
79
|
async fetchAndDisplayTeamUsageData(team) {
|
|
68
|
-
ux.action.start(`Gathering usage data for ${color.
|
|
80
|
+
ux.action.start(`Gathering usage data for ${color.team(team)}`);
|
|
69
81
|
const [{ body: usageData }, { body: teamAddons }] = await Promise.all([
|
|
70
82
|
this.heroku.get(`/teams/${team}/usage`, {
|
|
71
83
|
headers: {
|
|
@@ -77,7 +89,7 @@ export default class UsageAddons extends Command {
|
|
|
77
89
|
ux.action.stop();
|
|
78
90
|
ux.stdout();
|
|
79
91
|
if (!usageData.apps || usageData.apps.length === 0) {
|
|
80
|
-
ux.stdout(`No usage found for team ${color.
|
|
92
|
+
ux.stdout(`No usage found for team ${color.team(team)}`);
|
|
81
93
|
return;
|
|
82
94
|
}
|
|
83
95
|
const appInfoArray = this.getAppInfoFromTeamAddons(teamAddons);
|
|
@@ -100,17 +112,4 @@ export default class UsageAddons extends Command {
|
|
|
100
112
|
name,
|
|
101
113
|
}));
|
|
102
114
|
}
|
|
103
|
-
async run() {
|
|
104
|
-
const { flags } = await this.parse(UsageAddons);
|
|
105
|
-
const { app, team } = flags;
|
|
106
|
-
if (!app && !team) {
|
|
107
|
-
ux.error('Specify an app with --app or a team with --team');
|
|
108
|
-
}
|
|
109
|
-
if (app) {
|
|
110
|
-
await this.fetchAndDisplayAppUsageData(app, team);
|
|
111
|
-
}
|
|
112
|
-
else if (team) {
|
|
113
|
-
await this.fetchAndDisplayTeamUsageData(team);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
115
|
}
|
|
@@ -56,7 +56,7 @@ export declare function reportCmdNotFound(config: any): {
|
|
|
56
56
|
};
|
|
57
57
|
isVersionOrHelp: boolean;
|
|
58
58
|
};
|
|
59
|
-
export declare function sendTelemetry(currentTelemetry: any
|
|
59
|
+
export declare function sendTelemetry(currentTelemetry: any): Promise<void>;
|
|
60
60
|
export declare function sendToHoneycomb(data: Telemetry | CLIError): Promise<void>;
|
|
61
|
-
export declare function
|
|
61
|
+
export declare function sendToSentry(data: CLIError): Promise<void>;
|
|
62
62
|
export {};
|
package/lib/global_telemetry.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import Rollbar from 'rollbar';
|
|
2
1
|
import { APIClient } from '@heroku-cli/command';
|
|
3
2
|
import { Config } from '@oclif/core';
|
|
4
3
|
import opentelemetry, { SpanStatusCode } from '@opentelemetry/api';
|
|
4
|
+
import * as Sentry from '@sentry/node';
|
|
5
|
+
import { SentryPropagator, SentrySampler, } from '@sentry/opentelemetry';
|
|
6
|
+
import { GDPR_FIELDS, HEROKU_FIELDS, PCI_FIELDS } from './lib/data-scrubber/presets.js';
|
|
7
|
+
import { Scrubber } from './lib/data-scrubber/scrubber.js';
|
|
8
|
+
import { PII_PATTERNS } from './lib/data-scrubber/patterns.js';
|
|
5
9
|
import { Resource } from '@opentelemetry/resources';
|
|
6
10
|
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
|
7
11
|
import { registerInstrumentations } from '@opentelemetry/instrumentation';
|
|
@@ -21,21 +25,29 @@ async function getVersion() {
|
|
|
21
25
|
const pkg = JSON.parse(await fs.readFile(root, 'utf8'));
|
|
22
26
|
return pkg.version;
|
|
23
27
|
}
|
|
28
|
+
const version = await getVersion();
|
|
24
29
|
function getToken() {
|
|
25
30
|
const config = new Config({ root });
|
|
26
31
|
const heroku = new APIClient(config);
|
|
27
32
|
return heroku.auth;
|
|
28
33
|
}
|
|
29
|
-
const rollbar = new Rollbar({
|
|
30
|
-
accessToken: '20783109b0064dbb85be0b2c5a5a5f79',
|
|
31
|
-
captureUncaught: true,
|
|
32
|
-
captureUnhandledRejections: true,
|
|
33
|
-
environment: isDev ? 'development' : 'production',
|
|
34
|
-
codeVersion: undefined, // will be set later
|
|
35
|
-
});
|
|
36
34
|
registerInstrumentations({
|
|
37
35
|
instrumentations: [],
|
|
38
36
|
});
|
|
37
|
+
const scrubber = new Scrubber({
|
|
38
|
+
fields: [...HEROKU_FIELDS, ...GDPR_FIELDS, ...PCI_FIELDS],
|
|
39
|
+
patterns: [...PII_PATTERNS],
|
|
40
|
+
});
|
|
41
|
+
const sentryClient = Sentry.init({
|
|
42
|
+
dsn: 'https://76530569188e7ee2961373f37951d916@o4508609692368896.ingest.us.sentry.io/4508767754846208',
|
|
43
|
+
environment: isDev ? 'development' : 'production',
|
|
44
|
+
release: version,
|
|
45
|
+
tracesSampleRate: 1,
|
|
46
|
+
beforeSend(event) {
|
|
47
|
+
return scrubber.scrub(event).data;
|
|
48
|
+
},
|
|
49
|
+
skipOpenTelemetrySetup: true, // needed since we have our own OTEL setup
|
|
50
|
+
});
|
|
39
51
|
const resource = Resource
|
|
40
52
|
.default()
|
|
41
53
|
.merge(new Resource({
|
|
@@ -44,6 +56,7 @@ const resource = Resource
|
|
|
44
56
|
}));
|
|
45
57
|
const provider = new NodeTracerProvider({
|
|
46
58
|
resource,
|
|
59
|
+
sampler: sentryClient ? new SentrySampler(sentryClient) : undefined,
|
|
47
60
|
});
|
|
48
61
|
// eslint-disable-next-line no-negated-condition, unicorn/no-negated-condition
|
|
49
62
|
const headers = { Authorization: `Bearer ${process.env.IS_HEROKU_TEST_ENV !== 'true' ? getToken() : ''}` };
|
|
@@ -55,7 +68,11 @@ const exporter = new OTLPTraceExporter({
|
|
|
55
68
|
export const processor = new BatchSpanProcessor(exporter);
|
|
56
69
|
provider.addSpanProcessor(processor);
|
|
57
70
|
export function initializeInstrumentation() {
|
|
58
|
-
provider.register(
|
|
71
|
+
provider.register({
|
|
72
|
+
propagator: new SentryPropagator(),
|
|
73
|
+
contextManager: new Sentry.SentryContextManager(),
|
|
74
|
+
});
|
|
75
|
+
// provider.register()
|
|
59
76
|
}
|
|
60
77
|
export function setupTelemetry(config, opts) {
|
|
61
78
|
const now = new Date();
|
|
@@ -116,16 +133,16 @@ export function reportCmdNotFound(config) {
|
|
|
116
133
|
isVersionOrHelp: false,
|
|
117
134
|
};
|
|
118
135
|
}
|
|
119
|
-
export async function sendTelemetry(currentTelemetry
|
|
120
|
-
// send telemetry to honeycomb
|
|
136
|
+
export async function sendTelemetry(currentTelemetry) {
|
|
137
|
+
// send telemetry to honeycomb
|
|
121
138
|
if (isTelemetryDisabled) {
|
|
122
139
|
return;
|
|
123
140
|
}
|
|
124
141
|
const telemetry = currentTelemetry;
|
|
125
142
|
if (telemetry instanceof Error) {
|
|
126
143
|
await Promise.all([
|
|
127
|
-
sendToRollbar(telemetry, rollbarCb),
|
|
128
144
|
sendToHoneycomb(telemetry),
|
|
145
|
+
sendToSentry(telemetry),
|
|
129
146
|
]);
|
|
130
147
|
}
|
|
131
148
|
else {
|
|
@@ -134,7 +151,6 @@ export async function sendTelemetry(currentTelemetry, rollbarCb) {
|
|
|
134
151
|
}
|
|
135
152
|
export async function sendToHoneycomb(data) {
|
|
136
153
|
try {
|
|
137
|
-
const version = await getVersion();
|
|
138
154
|
const tracer = opentelemetry.trace.getTracer('heroku-cli', version);
|
|
139
155
|
const span = tracer.startSpan('node_app_execution');
|
|
140
156
|
if (data instanceof Error) {
|
|
@@ -158,37 +174,19 @@ export async function sendToHoneycomb(data) {
|
|
|
158
174
|
span.setAttribute('heroku_client.lifecycle_hook.command_not_found', data.lifecycleHookCompletion.command_not_found);
|
|
159
175
|
}
|
|
160
176
|
span.end();
|
|
161
|
-
processor.forceFlush();
|
|
177
|
+
await processor.forceFlush();
|
|
162
178
|
}
|
|
163
179
|
catch {
|
|
164
180
|
debug('could not send telemetry');
|
|
165
181
|
}
|
|
166
182
|
}
|
|
167
|
-
export async function
|
|
168
|
-
// Make this awaitable so we can wait for it to finish before exiting
|
|
169
|
-
let promiseResolve;
|
|
170
|
-
const rollbarPromise = new Promise((resolve, reject) => {
|
|
171
|
-
promiseResolve = () => {
|
|
172
|
-
if (rollbarCb) {
|
|
173
|
-
try {
|
|
174
|
-
rollbarCb();
|
|
175
|
-
}
|
|
176
|
-
catch (error) {
|
|
177
|
-
reject(error);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
resolve(null);
|
|
181
|
-
};
|
|
182
|
-
});
|
|
183
|
-
const rollbarError = { name: data.name, message: data.message, stack: data.stack, cli_run_duration: data.cliRunDuration };
|
|
183
|
+
export async function sendToSentry(data) {
|
|
184
184
|
try {
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
Sentry.captureException(data);
|
|
186
|
+
// ensures all events are sent to Sentry before exiting.
|
|
187
|
+
await Sentry.flush();
|
|
187
188
|
}
|
|
188
189
|
catch {
|
|
189
190
|
debug('Could not send error report');
|
|
190
|
-
// eslint-disable-next-line unicorn/no-useless-promise-resolve-reject
|
|
191
|
-
return Promise.reject();
|
|
192
191
|
}
|
|
193
|
-
return rollbarPromise;
|
|
194
192
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as Heroku from '@heroku-cli/schema';
|
|
2
1
|
import { APIClient } from '@heroku-cli/command';
|
|
2
|
+
import * as Heroku from '@heroku-cli/schema';
|
|
3
3
|
export declare const waitForAddonProvisioning: (api: APIClient, addon: Heroku.AddOn, interval: number) => Promise<{
|
|
4
4
|
[x: string]: any;
|
|
5
5
|
actions?: {
|