@vendure/cloud 0.3.2 → 0.5.0-dev.20261014172655.g652e750
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 +50 -11
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +9 -31
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/command.d.ts.map +1 -1
- package/dist/cli/command.js +13 -30
- package/dist/cli/command.js.map +1 -1
- package/dist/cli/commands/deployment/arguments.d.ts.map +1 -1
- package/dist/cli/commands/deployment/arguments.js +1 -8
- package/dist/cli/commands/deployment/arguments.js.map +1 -1
- package/dist/cli/commands/deployment/build-logs.d.ts.map +1 -1
- package/dist/cli/commands/deployment/build-logs.js +14 -25
- package/dist/cli/commands/deployment/build-logs.js.map +1 -1
- package/dist/cli/commands/deployment/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deployment/deploy.js +108 -95
- package/dist/cli/commands/deployment/deploy.js.map +1 -1
- package/dist/cli/commands/deployment/index.d.ts.map +1 -1
- package/dist/cli/commands/deployment/index.js +66 -53
- package/dist/cli/commands/deployment/index.js.map +1 -1
- package/dist/cli/commands/deployment/list.d.ts.map +1 -1
- package/dist/cli/commands/deployment/list.js +5 -5
- package/dist/cli/commands/deployment/list.js.map +1 -1
- package/dist/cli/commands/deployment/log-export.d.ts +13 -0
- package/dist/cli/commands/deployment/log-export.d.ts.map +1 -0
- package/dist/cli/commands/deployment/log-export.js +120 -0
- package/dist/cli/commands/deployment/log-export.js.map +1 -0
- package/dist/cli/commands/deployment/log-query-output.d.ts +13 -0
- package/dist/cli/commands/deployment/log-query-output.d.ts.map +1 -0
- package/dist/cli/commands/deployment/log-query-output.js +92 -0
- package/dist/cli/commands/deployment/log-query-output.js.map +1 -0
- package/dist/cli/commands/deployment/logs.d.ts +1 -0
- package/dist/cli/commands/deployment/logs.d.ts.map +1 -1
- package/dist/cli/commands/deployment/logs.js +331 -73
- package/dist/cli/commands/deployment/logs.js.map +1 -1
- package/dist/cli/commands/deployment/options.d.ts +2 -6
- package/dist/cli/commands/deployment/options.d.ts.map +1 -1
- package/dist/cli/commands/deployment/options.js +18 -15
- package/dist/cli/commands/deployment/options.js.map +1 -1
- package/dist/cli/commands/deployment/plan-format.d.ts.map +1 -1
- package/dist/cli/commands/deployment/plan-format.js +2 -2
- package/dist/cli/commands/deployment/plan-format.js.map +1 -1
- package/dist/cli/commands/deployment/plan.d.ts +1 -1
- package/dist/cli/commands/deployment/plan.d.ts.map +1 -1
- package/dist/cli/commands/deployment/plan.js +11 -14
- package/dist/cli/commands/deployment/plan.js.map +1 -1
- package/dist/cli/commands/deployment/recovery.d.ts +9 -0
- package/dist/cli/commands/deployment/recovery.d.ts.map +1 -0
- package/dist/cli/commands/deployment/recovery.js +76 -0
- package/dist/cli/commands/deployment/recovery.js.map +1 -0
- package/dist/cli/commands/deployment/rollback.d.ts.map +1 -1
- package/dist/cli/commands/deployment/rollback.js +61 -10
- package/dist/cli/commands/deployment/rollback.js.map +1 -1
- package/dist/cli/commands/deployment/shared.d.ts.map +1 -1
- package/dist/cli/commands/deployment/shared.js +4 -7
- package/dist/cli/commands/deployment/shared.js.map +1 -1
- package/dist/cli/commands/deployment/show.d.ts.map +1 -1
- package/dist/cli/commands/deployment/show.js +19 -9
- package/dist/cli/commands/deployment/show.js.map +1 -1
- package/dist/cli/commands/deployment/source.d.ts +1 -12
- package/dist/cli/commands/deployment/source.d.ts.map +1 -1
- package/dist/cli/commands/deployment/source.js +6 -14
- package/dist/cli/commands/deployment/source.js.map +1 -1
- package/dist/cli/commands/deployment/status.d.ts.map +1 -1
- package/dist/cli/commands/deployment/status.js +30 -29
- package/dist/cli/commands/deployment/status.js.map +1 -1
- package/dist/cli/commands/deployment/teardown.d.ts.map +1 -1
- package/dist/cli/commands/deployment/teardown.js +28 -26
- package/dist/cli/commands/deployment/teardown.js.map +1 -1
- package/dist/cli/commands/identity-context/context.d.ts.map +1 -1
- package/dist/cli/commands/identity-context/context.js +3 -4
- package/dist/cli/commands/identity-context/context.js.map +1 -1
- package/dist/cli/commands/identity-context/index.d.ts.map +1 -1
- package/dist/cli/commands/identity-context/index.js +16 -50
- package/dist/cli/commands/identity-context/index.js.map +1 -1
- package/dist/cli/commands/identity-context/keys.d.ts.map +1 -1
- package/dist/cli/commands/identity-context/keys.js +19 -20
- package/dist/cli/commands/identity-context/keys.js.map +1 -1
- package/dist/cli/commands/identity-context/use.d.ts.map +1 -1
- package/dist/cli/commands/identity-context/use.js +3 -4
- package/dist/cli/commands/identity-context/use.js.map +1 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +9 -21
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/project-config/config/build-fields.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/build-fields.js +2 -3
- package/dist/cli/commands/project-config/config/build-fields.js.map +1 -1
- package/dist/cli/commands/project-config/config/build.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/build.js +8 -9
- package/dist/cli/commands/project-config/config/build.js.map +1 -1
- package/dist/cli/commands/project-config/config/desired-state.d.ts +1 -1
- package/dist/cli/commands/project-config/config/desired-state.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/desired-state.js +12 -13
- package/dist/cli/commands/project-config/config/desired-state.js.map +1 -1
- package/dist/cli/commands/project-config/config/email/domain.d.ts +5 -0
- package/dist/cli/commands/project-config/config/email/domain.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/email/domain.js +83 -0
- package/dist/cli/commands/project-config/config/email/domain.js.map +1 -0
- package/dist/cli/commands/project-config/config/email/events.d.ts +4 -0
- package/dist/cli/commands/project-config/config/email/events.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/email/events.js +55 -0
- package/dist/cli/commands/project-config/config/email/events.js.map +1 -0
- package/dist/cli/commands/project-config/config/email/index.d.ts +2 -0
- package/dist/cli/commands/project-config/config/email/index.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/email/index.js +107 -0
- package/dist/cli/commands/project-config/config/email/index.js.map +1 -0
- package/dist/cli/commands/project-config/config/email/test-sending.d.ts +4 -0
- package/dist/cli/commands/project-config/config/email/test-sending.d.ts.map +1 -0
- package/dist/cli/commands/project-config/config/email/test-sending.js +69 -0
- package/dist/cli/commands/project-config/config/email/test-sending.js.map +1 -0
- package/dist/cli/commands/project-config/config/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/index.js +16 -13
- package/dist/cli/commands/project-config/config/index.js.map +1 -1
- package/dist/cli/commands/project-config/config/runtime.d.ts +2 -1
- package/dist/cli/commands/project-config/config/runtime.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/runtime.js +33 -30
- package/dist/cli/commands/project-config/config/runtime.js.map +1 -1
- package/dist/cli/commands/project-config/config/set.js +3 -3
- package/dist/cli/commands/project-config/config/set.js.map +1 -1
- package/dist/cli/commands/project-config/config/show.d.ts.map +1 -1
- package/dist/cli/commands/project-config/config/show.js +7 -7
- package/dist/cli/commands/project-config/config/show.js.map +1 -1
- package/dist/cli/commands/project-config/env/add.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/add.js +4 -3
- package/dist/cli/commands/project-config/env/add.js.map +1 -1
- package/dist/cli/commands/project-config/env/get.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/get.js +7 -2
- package/dist/cli/commands/project-config/env/get.js.map +1 -1
- package/dist/cli/commands/project-config/env/import.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/import.js +15 -8
- package/dist/cli/commands/project-config/env/import.js.map +1 -1
- package/dist/cli/commands/project-config/env/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/index.js +13 -8
- package/dist/cli/commands/project-config/env/index.js.map +1 -1
- package/dist/cli/commands/project-config/env/list.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/list.js +29 -8
- package/dist/cli/commands/project-config/env/list.js.map +1 -1
- package/dist/cli/commands/project-config/env/metadata-options.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/metadata-options.js +0 -1
- package/dist/cli/commands/project-config/env/metadata-options.js.map +1 -1
- package/dist/cli/commands/project-config/env/pull.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/pull.js +22 -8
- package/dist/cli/commands/project-config/env/pull.js.map +1 -1
- package/dist/cli/commands/project-config/env/read-value.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/read-value.js +8 -4
- package/dist/cli/commands/project-config/env/read-value.js.map +1 -1
- package/dist/cli/commands/project-config/env/rm.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/rm.js +4 -3
- package/dist/cli/commands/project-config/env/rm.js.map +1 -1
- package/dist/cli/commands/project-config/env/run.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/run.js +9 -8
- package/dist/cli/commands/project-config/env/run.js.map +1 -1
- package/dist/cli/commands/project-config/env/update.d.ts.map +1 -1
- package/dist/cli/commands/project-config/env/update.js +4 -3
- package/dist/cli/commands/project-config/env/update.js.map +1 -1
- package/dist/cli/commands/project-config/environment/create.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/create.js +5 -6
- package/dist/cli/commands/project-config/environment/create.js.map +1 -1
- package/dist/cli/commands/project-config/environment/delete.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/delete.js +6 -6
- package/dist/cli/commands/project-config/environment/delete.js.map +1 -1
- package/dist/cli/commands/project-config/environment/find.js +3 -3
- package/dist/cli/commands/project-config/environment/find.js.map +1 -1
- package/dist/cli/commands/project-config/environment/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/index.js +18 -6
- package/dist/cli/commands/project-config/environment/index.js.map +1 -1
- package/dist/cli/commands/project-config/environment/initial-superadmin.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/initial-superadmin.js +4 -5
- package/dist/cli/commands/project-config/environment/initial-superadmin.js.map +1 -1
- package/dist/cli/commands/project-config/environment/list.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/list.js +5 -5
- package/dist/cli/commands/project-config/environment/list.js.map +1 -1
- package/dist/cli/commands/project-config/environment/regions.d.ts +6 -0
- package/dist/cli/commands/project-config/environment/regions.d.ts.map +1 -0
- package/dist/cli/commands/project-config/environment/regions.js +22 -0
- package/dist/cli/commands/project-config/environment/regions.js.map +1 -0
- package/dist/cli/commands/project-config/environment/show.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/show.js +3 -4
- package/dist/cli/commands/project-config/environment/show.js.map +1 -1
- package/dist/cli/commands/project-config/environment/update.d.ts.map +1 -1
- package/dist/cli/commands/project-config/environment/update.js +3 -4
- package/dist/cli/commands/project-config/environment/update.js.map +1 -1
- package/dist/cli/commands/project-config/index.js +5 -5
- package/dist/cli/commands/project-config/index.js.map +1 -1
- package/dist/cli/commands/project-config/init/build-detection.d.ts.map +1 -1
- package/dist/cli/commands/project-config/init/build-detection.js +4 -4
- package/dist/cli/commands/project-config/init/build-detection.js.map +1 -1
- package/dist/cli/commands/project-config/init/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/init/index.js +4 -5
- package/dist/cli/commands/project-config/init/index.js.map +1 -1
- package/dist/cli/commands/project-config/init/init.d.ts.map +1 -1
- package/dist/cli/commands/project-config/init/init.js +39 -20
- package/dist/cli/commands/project-config/init/init.js.map +1 -1
- package/dist/cli/commands/project-config/options.d.ts.map +1 -1
- package/dist/cli/commands/project-config/options.js +9 -14
- package/dist/cli/commands/project-config/options.js.map +1 -1
- package/dist/cli/commands/project-config/project/create.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/create.js +3 -3
- package/dist/cli/commands/project-config/project/create.js.map +1 -1
- package/dist/cli/commands/project-config/project/delete.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/delete.js +4 -5
- package/dist/cli/commands/project-config/project/delete.js.map +1 -1
- package/dist/cli/commands/project-config/project/index.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/index.js +4 -5
- package/dist/cli/commands/project-config/project/index.js.map +1 -1
- package/dist/cli/commands/project-config/project/link.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/link.js +4 -4
- package/dist/cli/commands/project-config/project/link.js.map +1 -1
- package/dist/cli/commands/project-config/project/list.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/list.js +12 -5
- package/dist/cli/commands/project-config/project/list.js.map +1 -1
- package/dist/cli/commands/project-config/project/show.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/show.js +16 -7
- package/dist/cli/commands/project-config/project/show.js.map +1 -1
- package/dist/cli/commands/project-config/project/subscription-state.d.ts +5 -0
- package/dist/cli/commands/project-config/project/subscription-state.d.ts.map +1 -0
- package/dist/cli/commands/project-config/project/subscription-state.js +54 -0
- package/dist/cli/commands/project-config/project/subscription-state.js.map +1 -0
- package/dist/cli/commands/project-config/project/unlink.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/unlink.js +2 -3
- package/dist/cli/commands/project-config/project/unlink.js.map +1 -1
- package/dist/cli/commands/project-config/project/update.d.ts.map +1 -1
- package/dist/cli/commands/project-config/project/update.js +3 -4
- package/dist/cli/commands/project-config/project/update.js.map +1 -1
- package/dist/cli/commands/project-config/source/connect.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/connect.js +27 -29
- package/dist/cli/commands/project-config/source/connect.js.map +1 -1
- package/dist/cli/commands/project-config/source/disconnect.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/disconnect.js +4 -4
- package/dist/cli/commands/project-config/source/disconnect.js.map +1 -1
- package/dist/cli/commands/project-config/source/index.js +7 -7
- package/dist/cli/commands/project-config/source/index.js.map +1 -1
- package/dist/cli/commands/project-config/source/map.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/map.js +14 -18
- package/dist/cli/commands/project-config/source/map.js.map +1 -1
- package/dist/cli/commands/project-config/source/repos.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/repos.js +5 -5
- package/dist/cli/commands/project-config/source/repos.js.map +1 -1
- package/dist/cli/commands/project-config/source/status.d.ts.map +1 -1
- package/dist/cli/commands/project-config/source/status.js +66 -21
- package/dist/cli/commands/project-config/source/status.js.map +1 -1
- package/dist/cli/commands/runtime-data/backup.d.ts +1 -0
- package/dist/cli/commands/runtime-data/backup.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/backup.js +56 -22
- package/dist/cli/commands/runtime-data/backup.js.map +1 -1
- package/dist/cli/commands/runtime-data/index.d.ts +1 -0
- package/dist/cli/commands/runtime-data/index.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/index.js +54 -33
- package/dist/cli/commands/runtime-data/index.js.map +1 -1
- package/dist/cli/commands/runtime-data/resource.d.ts +1 -0
- package/dist/cli/commands/runtime-data/resource.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/resource.js +52 -32
- package/dist/cli/commands/runtime-data/resource.js.map +1 -1
- package/dist/cli/commands/runtime-data/restore.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/restore.js +52 -37
- package/dist/cli/commands/runtime-data/restore.js.map +1 -1
- package/dist/cli/commands/runtime-data/seeds.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/seeds.js +24 -26
- package/dist/cli/commands/runtime-data/seeds.js.map +1 -1
- package/dist/cli/commands/runtime-data/tunnel.d.ts.map +1 -1
- package/dist/cli/commands/runtime-data/tunnel.js +33 -43
- package/dist/cli/commands/runtime-data/tunnel.js.map +1 -1
- package/dist/cli/host-arguments.d.ts.map +1 -1
- package/dist/cli/host-arguments.js +10 -18
- package/dist/cli/host-arguments.js.map +1 -1
- package/dist/cli/host-nodes.js +1 -1
- package/dist/cli/host-nodes.js.map +1 -1
- package/dist/cli/index.d.ts +17 -10
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +27 -28
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/api-client.d.ts +10 -5
- package/dist/cli/lib/api-client.d.ts.map +1 -1
- package/dist/cli/lib/api-client.js +23 -42
- package/dist/cli/lib/api-client.js.map +1 -1
- package/dist/cli/lib/auth.d.ts +4 -126
- package/dist/cli/lib/auth.d.ts.map +1 -1
- package/dist/cli/lib/auth.js +8 -495
- package/dist/cli/lib/auth.js.map +1 -1
- package/dist/cli/lib/cli-login.d.ts +12 -0
- package/dist/cli/lib/cli-login.d.ts.map +1 -0
- package/dist/cli/lib/cli-login.js +155 -0
- package/dist/cli/lib/cli-login.js.map +1 -0
- package/dist/cli/lib/cloud-api-url.d.ts +2 -0
- package/dist/cli/lib/cloud-api-url.d.ts.map +1 -0
- package/dist/cli/lib/cloud-api-url.js +3 -0
- package/dist/cli/lib/cloud-api-url.js.map +1 -0
- package/dist/cli/lib/commit.d.ts +4 -0
- package/dist/cli/lib/commit.d.ts.map +1 -0
- package/dist/cli/lib/commit.js +21 -0
- package/dist/cli/lib/commit.js.map +1 -0
- package/dist/cli/lib/config-revisions.d.ts +9 -0
- package/dist/cli/lib/config-revisions.d.ts.map +1 -0
- package/dist/cli/lib/config-revisions.js +52 -0
- package/dist/cli/lib/config-revisions.js.map +1 -0
- package/dist/cli/lib/config.d.ts +0 -4
- package/dist/cli/lib/config.d.ts.map +1 -1
- package/dist/cli/lib/config.js +3 -5
- package/dist/cli/lib/config.js.map +1 -1
- package/dist/cli/lib/console-pairing.d.ts +2 -0
- package/dist/cli/lib/console-pairing.d.ts.map +1 -0
- package/dist/cli/lib/console-pairing.js +58 -0
- package/dist/cli/lib/console-pairing.js.map +1 -0
- package/dist/cli/lib/contract/backup-schedule-reasons.d.ts +4 -0
- package/dist/cli/lib/contract/backup-schedule-reasons.d.ts.map +1 -0
- package/dist/cli/lib/contract/backup-schedule-reasons.js +13 -0
- package/dist/cli/lib/contract/backup-schedule-reasons.js.map +1 -0
- package/dist/cli/lib/contract/build-settings.d.ts +1 -1
- package/dist/cli/lib/contract/build-settings.d.ts.map +1 -1
- package/dist/cli/lib/contract/build-settings.js +12 -18
- package/dist/cli/lib/contract/build-settings.js.map +1 -1
- package/dist/cli/lib/contract/database.d.ts +19 -0
- package/dist/cli/lib/contract/database.d.ts.map +1 -1
- package/dist/cli/lib/contract/database.js +7 -13
- package/dist/cli/lib/contract/database.js.map +1 -1
- package/dist/cli/lib/contract/deployment-resource-labels.d.ts.map +1 -1
- package/dist/cli/lib/contract/deployment-resource-labels.js +2 -6
- package/dist/cli/lib/contract/deployment-resource-labels.js.map +1 -1
- package/dist/cli/lib/contract/deployments.d.ts +14 -0
- package/dist/cli/lib/contract/deployments.d.ts.map +1 -1
- package/dist/cli/lib/contract/deployments.js +54 -24
- package/dist/cli/lib/contract/deployments.js.map +1 -1
- package/dist/cli/lib/contract/desired-state.d.ts +6 -6
- package/dist/cli/lib/contract/desired-state.d.ts.map +1 -1
- package/dist/cli/lib/contract/desired-state.js +52 -55
- package/dist/cli/lib/contract/desired-state.js.map +1 -1
- package/dist/cli/lib/contract/env-vars.d.ts +37 -0
- package/dist/cli/lib/contract/env-vars.d.ts.map +1 -0
- package/dist/cli/lib/contract/env-vars.js +6 -0
- package/dist/cli/lib/contract/env-vars.js.map +1 -0
- package/dist/cli/lib/contract/foreign-credentials.d.ts +14 -25
- package/dist/cli/lib/contract/foreign-credentials.d.ts.map +1 -1
- package/dist/cli/lib/contract/foreign-credentials.js +19 -30
- package/dist/cli/lib/contract/foreign-credentials.js.map +1 -1
- package/dist/cli/lib/contract/logs.d.ts +120 -0
- package/dist/cli/lib/contract/logs.d.ts.map +1 -1
- package/dist/cli/lib/contract/logs.js +113 -16
- package/dist/cli/lib/contract/logs.js.map +1 -1
- package/dist/cli/lib/contract/managed-email.d.ts +57 -0
- package/dist/cli/lib/contract/managed-email.d.ts.map +1 -0
- package/dist/cli/lib/contract/managed-email.js +20 -0
- package/dist/cli/lib/contract/managed-email.js.map +1 -0
- package/dist/cli/lib/contract/permission-denied.d.ts +16 -0
- package/dist/cli/lib/contract/permission-denied.d.ts.map +1 -0
- package/dist/cli/lib/contract/permission-denied.js +20 -0
- package/dist/cli/lib/contract/permission-denied.js.map +1 -0
- package/dist/cli/lib/contract/projects.d.ts +6 -0
- package/dist/cli/lib/contract/projects.d.ts.map +1 -1
- package/dist/cli/lib/contract/projects.js +2 -3
- package/dist/cli/lib/contract/projects.js.map +1 -1
- package/dist/cli/lib/contract/public-error-details.d.ts.map +1 -1
- package/dist/cli/lib/contract/public-error-details.js +28 -43
- package/dist/cli/lib/contract/public-error-details.js.map +1 -1
- package/dist/cli/lib/contract/regions.d.ts +11 -0
- package/dist/cli/lib/contract/regions.d.ts.map +1 -0
- package/dist/cli/lib/contract/regions.js +7 -0
- package/dist/cli/lib/contract/regions.js.map +1 -0
- package/dist/cli/lib/contract/runtime-operations.d.ts +0 -1
- package/dist/cli/lib/contract/runtime-operations.d.ts.map +1 -1
- package/dist/cli/lib/contract/runtime-operations.js +11 -21
- package/dist/cli/lib/contract/runtime-operations.js.map +1 -1
- package/dist/cli/lib/contract/seeds.d.ts.map +1 -1
- package/dist/cli/lib/contract/seeds.js +12 -21
- package/dist/cli/lib/contract/seeds.js.map +1 -1
- package/dist/cli/lib/contract/source-disconnect-reasons.d.ts +4 -0
- package/dist/cli/lib/contract/source-disconnect-reasons.d.ts.map +1 -0
- package/dist/cli/lib/contract/source-disconnect-reasons.js +23 -0
- package/dist/cli/lib/contract/source-disconnect-reasons.js.map +1 -0
- package/dist/cli/lib/contract/source-repository.d.ts +1 -1
- package/dist/cli/lib/contract/source-repository.d.ts.map +1 -1
- package/dist/cli/lib/contract/source-repository.js +6 -9
- package/dist/cli/lib/contract/source-repository.js.map +1 -1
- package/dist/cli/lib/contract/wire-types.d.ts.map +1 -1
- package/dist/cli/lib/contract/wire-types.js +3 -8
- package/dist/cli/lib/contract/wire-types.js.map +1 -1
- package/dist/cli/lib/contract/wire-values.d.ts.map +1 -1
- package/dist/cli/lib/contract/wire-values.js +2 -3
- package/dist/cli/lib/contract/wire-values.js.map +1 -1
- package/dist/cli/lib/dotenv.d.ts +6 -0
- package/dist/cli/lib/dotenv.d.ts.map +1 -1
- package/dist/cli/lib/dotenv.js +62 -20
- package/dist/cli/lib/dotenv.js.map +1 -1
- package/dist/cli/lib/env-file.d.ts.map +1 -1
- package/dist/cli/lib/env-file.js +5 -11
- package/dist/cli/lib/env-file.js.map +1 -1
- package/dist/cli/lib/env-preflight.d.ts +6 -1
- package/dist/cli/lib/env-preflight.d.ts.map +1 -1
- package/dist/cli/lib/env-preflight.js +91 -63
- package/dist/cli/lib/env-preflight.js.map +1 -1
- package/dist/cli/lib/errors.d.ts +17 -19
- package/dist/cli/lib/errors.d.ts.map +1 -1
- package/dist/cli/lib/errors.js +47 -60
- package/dist/cli/lib/errors.js.map +1 -1
- package/dist/cli/lib/format.d.ts.map +1 -1
- package/dist/cli/lib/format.js +3 -5
- package/dist/cli/lib/format.js.map +1 -1
- package/dist/cli/lib/invocation.d.ts +4 -5
- package/dist/cli/lib/invocation.d.ts.map +1 -1
- package/dist/cli/lib/invocation.js +5 -33
- package/dist/cli/lib/invocation.js.map +1 -1
- package/dist/cli/lib/log-stream.d.ts.map +1 -1
- package/dist/cli/lib/log-stream.js +15 -23
- package/dist/cli/lib/log-stream.js.map +1 -1
- package/dist/cli/lib/logger.d.ts.map +1 -1
- package/dist/cli/lib/logger.js +7 -12
- package/dist/cli/lib/logger.js.map +1 -1
- package/dist/cli/lib/organization.d.ts.map +1 -1
- package/dist/cli/lib/organization.js +5 -13
- package/dist/cli/lib/organization.js.map +1 -1
- package/dist/cli/lib/platform-address.d.ts +3 -0
- package/dist/cli/lib/platform-address.d.ts.map +1 -0
- package/dist/cli/lib/platform-address.js +7 -0
- package/dist/cli/lib/platform-address.js.map +1 -0
- package/dist/cli/lib/project-link.d.ts.map +1 -1
- package/dist/cli/lib/project-link.js +2 -4
- package/dist/cli/lib/project-link.js.map +1 -1
- package/dist/cli/lib/resolve.d.ts +2 -6
- package/dist/cli/lib/resolve.d.ts.map +1 -1
- package/dist/cli/lib/resolve.js +35 -34
- package/dist/cli/lib/resolve.js.map +1 -1
- package/dist/cli/lib/source-repository-link.d.ts.map +1 -1
- package/dist/cli/lib/source-repository-link.js +6 -9
- package/dist/cli/lib/source-repository-link.js.map +1 -1
- package/dist/cli/lib/terminal-output.d.ts +12 -0
- package/dist/cli/lib/terminal-output.d.ts.map +1 -0
- package/dist/cli/lib/terminal-output.js +69 -0
- package/dist/cli/lib/terminal-output.js.map +1 -0
- package/dist/cli/lib/types.d.ts +3 -7
- package/dist/cli/lib/types.d.ts.map +1 -1
- package/dist/cli/lib/types.js.map +1 -1
- package/dist/cli/lib/utf8.d.ts +2 -0
- package/dist/cli/lib/utf8.d.ts.map +1 -0
- package/dist/cli/lib/utf8.js +12 -0
- package/dist/cli/lib/utf8.js.map +1 -0
- package/dist/cli/root-options.d.ts.map +1 -1
- package/dist/cli/root-options.js +11 -14
- package/dist/cli/root-options.js.map +1 -1
- package/dist/cli-plugin.d.ts.map +1 -1
- package/dist/cli-plugin.js +2 -6
- package/dist/cli-plugin.js.map +1 -1
- package/dist/cloud-config-module.js +2 -2
- package/dist/cloud-config-module.js.map +1 -1
- package/dist/dev/cli-host.d.ts.map +1 -1
- package/dist/dev/cli-host.js +16 -19
- package/dist/dev/cli-host.js.map +1 -1
- package/dist/dev/dashboard-vite-config.d.ts +1 -0
- package/dist/dev/dashboard-vite-config.d.ts.map +1 -1
- package/dist/dev/dashboard-vite-config.js +26 -6
- package/dist/dev/dashboard-vite-config.js.map +1 -1
- package/dist/dev/dev-command.d.ts.map +1 -1
- package/dist/dev/dev-command.js +76 -39
- package/dist/dev/dev-command.js.map +1 -1
- package/dist/dev/dev-config.d.ts +3 -0
- package/dist/dev/dev-config.d.ts.map +1 -1
- package/dist/dev/dev-config.js +43 -13
- package/dist/dev/dev-config.js.map +1 -1
- package/dist/dev/dev-migrate.js +7 -9
- package/dist/dev/dev-migrate.js.map +1 -1
- package/dist/dev/dev-process.d.ts.map +1 -1
- package/dist/dev/dev-process.js +6 -10
- package/dist/dev/dev-process.js.map +1 -1
- package/dist/dev/dev-server.js +7 -6
- package/dist/dev/dev-server.js.map +1 -1
- package/dist/dev/dev-worker.js +5 -2
- package/dist/dev/dev-worker.js.map +1 -1
- package/dist/dev/local-services.d.ts.map +1 -1
- package/dist/dev/local-services.js +152 -106
- package/dist/dev/local-services.js.map +1 -1
- package/dist/dev/project-layout.d.ts.map +1 -1
- package/dist/dev/project-layout.js +12 -17
- package/dist/dev/project-layout.js.map +1 -1
- package/dist/dev/project-plugin-scope.d.ts +2 -0
- package/dist/dev/project-plugin-scope.d.ts.map +1 -0
- package/dist/dev/project-plugin-scope.js +38 -0
- package/dist/dev/project-plugin-scope.js.map +1 -0
- package/dist/entrypoint.js +2 -0
- package/dist/entrypoint.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/local-asset-server.d.ts.map +1 -1
- package/dist/local-asset-server.js +7 -13
- package/dist/local-asset-server.js.map +1 -1
- package/dist/local-cache-plugin.d.ts.map +1 -1
- package/dist/local-cache-plugin.js +20 -28
- package/dist/local-cache-plugin.js.map +1 -1
- package/dist/local-cache.d.ts.map +1 -1
- package/dist/local-cache.js +40 -55
- package/dist/local-cache.js.map +1 -1
- package/dist/local-core.d.ts +2 -0
- package/dist/local-core.d.ts.map +1 -0
- package/dist/local-core.js +13 -0
- package/dist/local-core.js.map +1 -0
- package/dist/local-dashboard-plugin.d.ts.map +1 -1
- package/dist/local-dashboard-plugin.js +6 -11
- package/dist/local-dashboard-plugin.js.map +1 -1
- package/dist/local-database.d.ts.map +1 -1
- package/dist/local-database.js +20 -23
- package/dist/local-database.js.map +1 -1
- package/dist/local-durable-execution-plugin.d.ts +15 -0
- package/dist/local-durable-execution-plugin.d.ts.map +1 -0
- package/dist/local-durable-execution-plugin.js +305 -0
- package/dist/local-durable-execution-plugin.js.map +1 -0
- package/dist/local-runtime-guard.d.ts +2 -0
- package/dist/local-runtime-guard.d.ts.map +1 -1
- package/dist/local-runtime-guard.js +40 -3
- package/dist/local-runtime-guard.js.map +1 -1
- package/dist/local-runtime.d.ts.map +1 -1
- package/dist/local-runtime.js +53 -43
- package/dist/local-runtime.js.map +1 -1
- package/package.json +20 -14
- package/dist/cli/commands/identity-context/login.d.ts +0 -2
- package/dist/cli/commands/identity-context/login.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/login.js +0 -158
- package/dist/cli/commands/identity-context/login.js.map +0 -1
- package/dist/cli/commands/identity-context/logout.d.ts +0 -2
- package/dist/cli/commands/identity-context/logout.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/logout.js +0 -12
- package/dist/cli/commands/identity-context/logout.js.map +0 -1
- package/dist/cli/commands/identity-context/org-switch.d.ts +0 -3
- package/dist/cli/commands/identity-context/org-switch.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/org-switch.js +0 -71
- package/dist/cli/commands/identity-context/org-switch.js.map +0 -1
- package/dist/cli/commands/identity-context/whoami.d.ts +0 -3
- package/dist/cli/commands/identity-context/whoami.d.ts.map +0 -1
- package/dist/cli/commands/identity-context/whoami.js +0 -80
- package/dist/cli/commands/identity-context/whoami.js.map +0 -1
- package/dist/cli/lib/file-lock.d.ts +0 -23
- package/dist/cli/lib/file-lock.d.ts.map +0 -1
- package/dist/cli/lib/file-lock.js +0 -121
- package/dist/cli/lib/file-lock.js.map +0 -1
|
@@ -1,44 +1,41 @@
|
|
|
1
1
|
import * as prompts from "@clack/prompts";
|
|
2
|
-
import { createAuthenticatedClient, resolveEnvironment, } from "../../index.js";
|
|
2
|
+
import { createAuthenticatedClient, output, resolveEnvironment, } from "../../index.js";
|
|
3
3
|
import { isPlanPreviewUnavailable, } from "../../lib/contract/deployments.js";
|
|
4
4
|
import { formatEnvPreflightSkipped, formatMissingEnvVarsWarning, runEnvVarPreflight, } from "../../lib/env-preflight.js";
|
|
5
|
-
import { readImageOptions } from "./options.js";
|
|
6
5
|
import { formatActionLine, formatKeptActionLine, isKeptAction, summarizeActions, } from "./plan-format.js";
|
|
7
|
-
import {
|
|
8
|
-
export async function deployPlan({
|
|
9
|
-
const imageOpts = readImageOptions(options);
|
|
6
|
+
import { requireBranchMapping } from "./source.js";
|
|
7
|
+
export async function deployPlan({ globals }) {
|
|
10
8
|
const { environment } = await resolveEnvironment(globals);
|
|
11
9
|
const json = globals.json === true;
|
|
12
|
-
const client = createAuthenticatedClient(globals);
|
|
13
|
-
|
|
10
|
+
const client = await createAuthenticatedClient(globals);
|
|
11
|
+
// A plan for an environment with no branch mapping is a plan for a deploy that could not run.
|
|
12
|
+
await requireBranchMapping(client, environment);
|
|
14
13
|
if (!json) {
|
|
15
14
|
const preflight = await runEnvVarPreflight(client, environment.id);
|
|
16
15
|
if (preflight.status === "not-checked") {
|
|
17
|
-
|
|
16
|
+
output.info(formatEnvPreflightSkipped(preflight.reason));
|
|
18
17
|
}
|
|
19
18
|
else if (preflight.missing.length > 0) {
|
|
20
|
-
|
|
19
|
+
output.warn(formatMissingEnvVarsWarning(preflight.missing, environment.slug));
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
22
|
const spinner = prompts.spinner();
|
|
24
23
|
spinner.start("Computing infrastructure plan...");
|
|
25
24
|
const result = await client.post("/deployments/plan", {
|
|
26
25
|
environmentId: environment.id,
|
|
27
|
-
...(source.kind === "prebuilt-images" ? source.images : {}),
|
|
28
26
|
});
|
|
29
27
|
const { plan } = result;
|
|
30
28
|
spinner.stop(`Plan: ${plan.projectName} / ${plan.environmentName}`);
|
|
31
|
-
// A plan the platform could not compute is not a plan
|
|
32
|
-
// second would tell a customer their deploy changes nothing.
|
|
29
|
+
// A plan the platform could not compute is not a plan with no changes.
|
|
33
30
|
if (isPlanPreviewUnavailable(plan)) {
|
|
34
|
-
|
|
31
|
+
output.note(plan.previewUnavailableReason ?? "", "Resources");
|
|
35
32
|
prompts.outro("Resource changes could not be previewed.");
|
|
36
33
|
return;
|
|
37
34
|
}
|
|
38
35
|
const actionLines = plan.actions
|
|
39
36
|
.map((action) => isKeptAction(action) ? formatKeptActionLine(action) : formatActionLine(action))
|
|
40
37
|
.join("\n");
|
|
41
|
-
|
|
38
|
+
output.note(actionLines || "No resource changes", "Resources");
|
|
42
39
|
const { create, update, delete: del, keep } = summarizeActions(plan.actions);
|
|
43
40
|
const parts = [];
|
|
44
41
|
if (create > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ApiClient, type Deployment } from "../../index.js";
|
|
2
|
+
import type { DeploymentRecovery } from "../../lib/contract/deployments.js";
|
|
3
|
+
export interface DeploymentRecoveryResult {
|
|
4
|
+
recovery: DeploymentRecovery | null;
|
|
5
|
+
unavailableReason: string | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function fetchDeploymentRecovery(client: ApiClient, deployment: Pick<Deployment, "id" | "status">): Promise<DeploymentRecoveryResult>;
|
|
8
|
+
export declare function formatDeploymentRecovery(recovery: DeploymentRecovery, deploymentId: string): string;
|
|
9
|
+
//# sourceMappingURL=recovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAoB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAa5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAmBD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,CAAC,GAC5C,OAAO,CAAC,wBAAwB,CAAC,CAkBnC;AAkCD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { CLOUD_INVOCATION } from "../../index.js";
|
|
2
|
+
import { LOG_SERVICES } from "../../lib/contract/logs.js";
|
|
3
|
+
import { logger } from "../../lib/logger.js";
|
|
4
|
+
import { BATCH_ONLY_SERVICE } from "./logs.js";
|
|
5
|
+
const NO_RECOVERY = { recovery: null, unavailableReason: null };
|
|
6
|
+
// A deployment that ended without failing has no stage to report, so each says why. A successful or
|
|
7
|
+
// in-flight deployment needs no sentence.
|
|
8
|
+
const NO_RECOVERY_FOR_STATUS = {
|
|
9
|
+
CANCELLED: "This deployment was cancelled rather than failing, so there is no stage to recover from.",
|
|
10
|
+
DEGRADED: "This deployment is reported as degraded rather than failed, so there is no stage to recover from. Check what your environment is running.",
|
|
11
|
+
};
|
|
12
|
+
// Asks only for a deployment that failed, the only kind with an answer and the only kind whose
|
|
13
|
+
// answer can cost the control plane a read of its durable-operation history.
|
|
14
|
+
//
|
|
15
|
+
// Nothing here throws. This block is guidance added to a failure the customer was already shown,
|
|
16
|
+
// so a control plane that cannot answer must not replace that failure with a second one. A control
|
|
17
|
+
// plane older than the endpoint answers 404 during its own rollout.
|
|
18
|
+
export async function fetchDeploymentRecovery(client, deployment) {
|
|
19
|
+
if (deployment.status !== "FAILED") {
|
|
20
|
+
const reason = NO_RECOVERY_FOR_STATUS[deployment.status];
|
|
21
|
+
return reason ? { recovery: null, unavailableReason: reason } : NO_RECOVERY;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const recovery = await client.get(`/deployments/${encodeURIComponent(deployment.id)}/recovery`);
|
|
25
|
+
return { recovery, unavailableReason: null };
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
29
|
+
logger.warn({ deploymentId: deployment.id, error: reason }, "Could not read the recovery");
|
|
30
|
+
return {
|
|
31
|
+
recovery: null,
|
|
32
|
+
unavailableReason: "This deployment's recovery could not be read from the control plane.",
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// Keyed so an action added to the contract without a command here is a compile error.
|
|
37
|
+
const ACTION_COMMANDS = {
|
|
38
|
+
DEPLOY_AGAIN: () => [`${CLOUD_INVOCATION} deploy`],
|
|
39
|
+
FIX_SOURCE_AND_DEPLOY: (deploymentId) => [
|
|
40
|
+
`${CLOUD_INVOCATION} deployment logs ${deploymentId}`,
|
|
41
|
+
`${CLOUD_INVOCATION} deploy`,
|
|
42
|
+
],
|
|
43
|
+
FIX_MIGRATION_AND_DEPLOY: () => [
|
|
44
|
+
`${CLOUD_INVOCATION} logs --service ${BATCH_ONLY_SERVICE}`,
|
|
45
|
+
`${CLOUD_INVOCATION} deploy`,
|
|
46
|
+
],
|
|
47
|
+
// `status` precedes the logs, which precede the rollback. A rollout that stopped part-way can
|
|
48
|
+
// leave either release running; `status` reports service health and the failed latest deployment,
|
|
49
|
+
// and the logs identify the running release.
|
|
50
|
+
ROLLBACK: () => [
|
|
51
|
+
`${CLOUD_INVOCATION} status`,
|
|
52
|
+
...LOG_SERVICES.map((service) => `${CLOUD_INVOCATION} logs --service ${service}`),
|
|
53
|
+
`${CLOUD_INVOCATION} deployment list`,
|
|
54
|
+
`${CLOUD_INVOCATION} rollback <deployment-id>`,
|
|
55
|
+
],
|
|
56
|
+
// No command. The block is printed by the one that would be listed here, and what support needs
|
|
57
|
+
// is the deployment's ID, which `formatDeploymentRecovery` prints instead.
|
|
58
|
+
CONTACT_SUPPORT: () => [],
|
|
59
|
+
INSPECT_ENVIRONMENT: () => [`${CLOUD_INVOCATION} status`],
|
|
60
|
+
};
|
|
61
|
+
// One label per line with the prose beneath it. `output.warn` wraps through `wrapLine`, which takes
|
|
62
|
+
// a continuation line's indent from the leading whitespace of the line it wraps, so prose written
|
|
63
|
+
// beside its label wraps back to column zero on a narrow terminal.
|
|
64
|
+
export function formatDeploymentRecovery(recovery, deploymentId) {
|
|
65
|
+
const lines = [`Failed stage: ${recovery.stageLabel ?? "not known"}`];
|
|
66
|
+
if (recovery.stageUnavailableReason)
|
|
67
|
+
lines.push(` ${recovery.stageUnavailableReason}`);
|
|
68
|
+
lines.push("", ` ${recovery.summary}`, "", "Next step:", ` ${recovery.nextActionMessage}`, "");
|
|
69
|
+
const commands = ACTION_COMMANDS[recovery.nextAction](deploymentId);
|
|
70
|
+
if (commands.length === 0)
|
|
71
|
+
lines.push(` Deployment ID: ${deploymentId}`);
|
|
72
|
+
for (const command of commands)
|
|
73
|
+
lines.push(` ${command}`);
|
|
74
|
+
return lines.join("\n");
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAe/C,MAAM,WAAW,GAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;AAE1F,oGAAoG;AACpG,0CAA0C;AAC1C,MAAM,sBAAsB,GAA2B;IACrD,SAAS,EACP,0FAA0F;IAC5F,QAAQ,EACN,2IAA2I;CAC9I,CAAC;AAEF,+FAA+F;AAC/F,6EAA6E;AAC7E,EAAE;AACF,iGAAiG;AACjG,mGAAmG;AACnG,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAiB,EACjB,UAA6C;IAE7C,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAC7D,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC;QAC3F,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,sEAAsE;SAC1F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,eAAe,GAGjB;IACF,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,gBAAgB,SAAS,CAAC;IAClD,qBAAqB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;QACvC,GAAG,gBAAgB,oBAAoB,YAAY,EAAE;QACrD,GAAG,gBAAgB,SAAS;KAC7B;IACD,wBAAwB,EAAE,GAAG,EAAE,CAAC;QAC9B,GAAG,gBAAgB,mBAAmB,kBAAkB,EAAE;QAC1D,GAAG,gBAAgB,SAAS;KAC7B;IACD,8FAA8F;IAC9F,kGAAkG;IAClG,6CAA6C;IAC7C,QAAQ,EAAE,GAAG,EAAE,CAAC;QACd,GAAG,gBAAgB,SAAS;QAC5B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,gBAAgB,mBAAmB,OAAO,EAAE,CAAC;QACjF,GAAG,gBAAgB,kBAAkB;QACrC,GAAG,gBAAgB,2BAA2B;KAC/C;IACD,gGAAgG;IAChG,2EAA2E;IAC3E,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE;IACzB,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,gBAAgB,SAAS,CAAC;CAC1D,CAAC;AAEF,oGAAoG;AACpG,kGAAkG;AAClG,mEAAmE;AACnE,MAAM,UAAU,wBAAwB,CACtC,QAA4B,EAC5B,YAAoB;IAEpB,MAAM,KAAK,GAAG,CAAC,iBAAiB,QAAQ,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC,CAAC;IACtE,IAAI,QAAQ,CAAC,sBAAsB;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,QAAQ,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC;IACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;IAC1E,KAAK,MAAM,OAAO,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EAYvB,MAAM,gBAAgB,CAAC;AAYxB,wBAAsB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2EhG"}
|
|
@@ -1,20 +1,30 @@
|
|
|
1
1
|
import * as prompts from "@clack/prompts";
|
|
2
2
|
import pc from "picocolors";
|
|
3
|
-
import { FAILED_STATUSES, SUCCESS_STATUSES, TERMINAL_STATUSES,
|
|
3
|
+
import { CLOUD_INVOCATION, FAILED_STATUSES, SUCCESS_STATUSES, TERMINAL_STATUSES, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, output, resolveEnvironment, sleep, } from "../../index.js";
|
|
4
|
+
import { fetchConfigRevisionStatus } from "../../lib/config-revisions.js";
|
|
5
|
+
import { logger } from "../../lib/logger.js";
|
|
4
6
|
import { optionalArgument } from "./arguments.js";
|
|
5
7
|
import { resolveDeploymentIdInEnvironment } from "./shared.js";
|
|
6
8
|
const POLL_INTERVAL_MS = 3_000;
|
|
7
|
-
|
|
9
|
+
// Fallback for a control plane that does not expose its own budget, the same one `deploy.ts`
|
|
10
|
+
// carries. A rollback submits the same apply operation a deploy does, so it waits out the same
|
|
11
|
+
// deadlines.
|
|
12
|
+
const LEGACY_TIMEOUT_MS = 60 * 60 * 1000;
|
|
8
13
|
export async function rollback({ args, globals }) {
|
|
9
14
|
const deploymentId = optionalArgument(args, 0, "deploymentId");
|
|
10
15
|
const { project, environment } = await resolveEnvironment(globals);
|
|
11
|
-
const client = createAuthenticatedClient(globals);
|
|
12
|
-
|
|
16
|
+
const client = await createAuthenticatedClient(globals);
|
|
17
|
+
output.warn("Rollback restores application/runtime state only. It does not restore database contents or schema.");
|
|
13
18
|
const targetDeploymentId = deploymentId
|
|
14
19
|
? await resolveDeploymentIdInEnvironment(client, environment.id, deploymentId)
|
|
15
20
|
: await selectRollbackTarget(client, environment.id, project.slug, environment.slug);
|
|
16
21
|
if (!targetDeploymentId)
|
|
17
22
|
return;
|
|
23
|
+
const { restoredRevision, proceed } = await checkConfiguration(client, environment.id, targetDeploymentId);
|
|
24
|
+
if (!proceed) {
|
|
25
|
+
prompts.outro("Rollback cancelled.");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
18
28
|
const deployment = await client.post(`/environments/${environment.id}/rollback`, {
|
|
19
29
|
targetDeploymentId,
|
|
20
30
|
});
|
|
@@ -22,10 +32,11 @@ export async function rollback({ args, globals }) {
|
|
|
22
32
|
spinner.start("Rollback in progress...");
|
|
23
33
|
let current = deployment;
|
|
24
34
|
const startedAt = Date.now();
|
|
35
|
+
const timeoutMs = (deployment.pollingTimeoutSeconds ?? LEGACY_TIMEOUT_MS / 1000) * 1000;
|
|
25
36
|
while (!TERMINAL_STATUSES.has(current.status)) {
|
|
26
|
-
if (Date.now() - startedAt >
|
|
37
|
+
if (Date.now() - startedAt > timeoutMs) {
|
|
27
38
|
spinner.stop("Rollback timed out");
|
|
28
|
-
|
|
39
|
+
output.warn(`Rollback did not complete within ${timeoutMs / 60_000} minutes. It may still finish — run \`${CLOUD_INVOCATION} deployment list\` to check.`);
|
|
29
40
|
return 1;
|
|
30
41
|
}
|
|
31
42
|
await sleep(POLL_INTERVAL_MS);
|
|
@@ -34,26 +45,65 @@ export async function rollback({ args, globals }) {
|
|
|
34
45
|
}
|
|
35
46
|
if (SUCCESS_STATUSES.has(current.status)) {
|
|
36
47
|
spinner.stop("Rolled back.");
|
|
48
|
+
if (restoredRevision !== null) {
|
|
49
|
+
output.info(`Restored configuration revision ${restoredRevision}, the one that deployment ran with.`);
|
|
50
|
+
}
|
|
37
51
|
const protectedResources = current.protectedResources ?? [];
|
|
38
52
|
if (protectedResources.length > 0) {
|
|
39
53
|
const lines = protectedResources.map((resource) => ` - ${resource.label}`).join("\n");
|
|
40
|
-
|
|
54
|
+
output.warn(`${protectedResources.length} data-bearing resource${protectedResources.length === 1 ? " is" : "s are"} orphaned and kept:\n${lines}\nRun \`${CLOUD_INVOCATION} deploy teardown\` to remove ${protectedResources.length === 1 ? "it" : "them"}.`);
|
|
41
55
|
}
|
|
42
56
|
prompts.outro(`${project.slug} / ${environment.slug} rolled back`);
|
|
43
57
|
return;
|
|
44
58
|
}
|
|
45
59
|
spinner.stop("Rollback failed");
|
|
46
60
|
if (current.errorDetails) {
|
|
47
|
-
|
|
61
|
+
output.error(formatUserFacingErrorDetails(current.errorDetails, {
|
|
48
62
|
projectSlug: project.slug,
|
|
49
63
|
environmentSlug: environment.slug,
|
|
50
64
|
}));
|
|
51
65
|
}
|
|
52
66
|
return 1;
|
|
53
67
|
}
|
|
68
|
+
// A rollback restores the configuration revision its target ran with, so a value changed since then
|
|
69
|
+
// returns to its earlier one. The comparison is advisory: a failure to make it is logged and never
|
|
70
|
+
// stops a rollback, which is often run in a hurry. In a terminal the customer is asked to confirm
|
|
71
|
+
// when the revisions differ; without one the rollback goes ahead after the warning.
|
|
72
|
+
//
|
|
73
|
+
// `restoredRevision` is the revision the target recorded, or null when it recorded none or the
|
|
74
|
+
// lookup failed.
|
|
75
|
+
async function checkConfiguration(client, environmentId, targetDeploymentId) {
|
|
76
|
+
let target;
|
|
77
|
+
let applied;
|
|
78
|
+
try {
|
|
79
|
+
const [targetDeployment, status] = await Promise.all([
|
|
80
|
+
client.get(`/deployments/${encodeURIComponent(targetDeploymentId)}`),
|
|
81
|
+
fetchConfigRevisionStatus(client, environmentId),
|
|
82
|
+
]);
|
|
83
|
+
target = targetDeployment;
|
|
84
|
+
applied = status.applied?.number ?? null;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
logger.warn(`Could not compare configuration revisions before a rollback: ${error instanceof Error ? error.message : String(error)}`);
|
|
88
|
+
return { restoredRevision: null, proceed: true };
|
|
89
|
+
}
|
|
90
|
+
const restored = target.configRevision ?? null;
|
|
91
|
+
if (restored === null || restored === applied)
|
|
92
|
+
return { restoredRevision: restored, proceed: true };
|
|
93
|
+
output.warn(applied === null
|
|
94
|
+
? `This rollback restores configuration revision ${restored}, which the environment is not running now. Variables changed since then return to their earlier values.`
|
|
95
|
+
: `This rollback restores configuration revision ${restored}, but the environment runs revision ${applied}. Variables changed since revision ${restored} return to their earlier values.`);
|
|
96
|
+
if (!process.stdin.isTTY)
|
|
97
|
+
return { restoredRevision: restored, proceed: true };
|
|
98
|
+
const confirmed = await prompts.confirm({
|
|
99
|
+
initialValue: true,
|
|
100
|
+
message: "Continue with the rollback?",
|
|
101
|
+
});
|
|
102
|
+
return { restoredRevision: restored, proceed: !prompts.isCancel(confirmed) && confirmed };
|
|
103
|
+
}
|
|
54
104
|
async function selectRollbackTarget(client, environmentId, projectSlug, environmentSlug) {
|
|
55
105
|
if (!process.stdin.isTTY) {
|
|
56
|
-
throw new Error(`No rollback target provided. Pass \`${
|
|
106
|
+
throw new Error(`No rollback target provided. Pass \`${CLOUD_INVOCATION} rollback <deployment-id>\`.`);
|
|
57
107
|
}
|
|
58
108
|
const spinner = prompts.spinner();
|
|
59
109
|
spinner.start("Fetching rollback targets...");
|
|
@@ -79,7 +129,8 @@ async function selectRollbackTarget(client, environmentId, projectSlug, environm
|
|
|
79
129
|
function formatTarget(target) {
|
|
80
130
|
const commit = target.commitHash ? ` - commit ${target.commitHash.slice(0, 7)}` : "";
|
|
81
131
|
const message = target.commitMessage ? ` - ${target.commitMessage}` : "";
|
|
82
|
-
|
|
132
|
+
const revision = target.configRevision == null ? "" : ` - configuration revision ${target.configRevision}`;
|
|
133
|
+
return `${formatDateTime(target.createdAt)}${commit}${message}${revision}`;
|
|
83
134
|
}
|
|
84
135
|
function spinnerMessage(status) {
|
|
85
136
|
if (FAILED_STATUSES.has(status))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/rollback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;AAIxB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAKxC,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { isIdPrefix, resolveEnvironment, resolveUniqueIdPrefix, } from "../../index.js";
|
|
2
|
-
// How many VC Deployments one page of history holds when a command walks the list
|
|
3
|
-
// particular one, rather than showing the customer a page.
|
|
2
|
+
// How many VC Deployments one page of history holds when a command walks the list to find one.
|
|
4
3
|
export const DEPLOYMENT_PAGE_SIZE = 100;
|
|
5
|
-
// Turns whatever the customer typed into a full VC Deployment ID.
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// which is the only case that needs one, because a prefix is unique within an environment rather
|
|
9
|
-
// than globally.
|
|
4
|
+
// Turns whatever the customer typed into a full VC Deployment ID. A full ID passes straight
|
|
5
|
+
// through, so an environment is resolved only for a prefix, which is unique within an environment
|
|
6
|
+
// but not globally.
|
|
10
7
|
export async function resolveDeploymentId(client, options, identifier) {
|
|
11
8
|
if (!isIdPrefix(identifier))
|
|
12
9
|
return identifier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,+FAA+F;AAC/F,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,4FAA4F;AAC5F,kGAAkG;AAClG,oBAAoB;AACpB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,OAAsB,EACtB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1D,OAAO,gCAAgC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAiB,EACjB,aAAqB,EACrB,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAE/C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,kCAAkC,KAAK,EAAE,CAC1C,CAAC;IACF,OAAO,qBAAqB,CAC1B,UAAU,EACV,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EACpC,eAAe,CAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAWvB,MAAM,gBAAgB,CAAC;AAMxB,wBAAsB,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxF"}
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { cloudInvocation, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, resolveEnvironment, writeJson, } from "../../index.js";
|
|
1
|
+
import { CLOUD_INVOCATION, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, output, resolveEnvironment, writeJson, } from "../../index.js";
|
|
3
2
|
import { optionalArgument } from "./arguments.js";
|
|
3
|
+
import { fetchDeploymentRecovery, formatDeploymentRecovery } from "./recovery.js";
|
|
4
4
|
import { resolveDeploymentId } from "./shared.js";
|
|
5
5
|
export async function showDeployment({ args, globals }) {
|
|
6
6
|
const deploymentId = optionalArgument(args, 0, "deployment-id");
|
|
7
|
-
const client = createAuthenticatedClient(globals);
|
|
7
|
+
const client = await createAuthenticatedClient(globals);
|
|
8
8
|
const resolvedDeploymentId = deploymentId
|
|
9
9
|
? await resolveDeploymentId(client, globals, deploymentId)
|
|
10
10
|
: await findLatestDeploymentId(client, globals);
|
|
11
11
|
const deployment = await client.get(`/deployments/${encodeURIComponent(resolvedDeploymentId)}`);
|
|
12
|
+
// Independent of each other and both only for a failed deployment, so they are asked together.
|
|
13
|
+
const [{ recovery, unavailableReason }, errorContext] = await Promise.all([
|
|
14
|
+
fetchDeploymentRecovery(client, deployment),
|
|
15
|
+
deployment.errorDetails ? getDeploymentErrorContext(client, deployment) : undefined,
|
|
16
|
+
]);
|
|
12
17
|
if (globals.json) {
|
|
13
|
-
|
|
18
|
+
// The control plane serves the deployment and the recovery as two documents; this joins them
|
|
19
|
+
// for a script that asked for one deployment. `recoveryUnavailableReason` distinguishes a null
|
|
20
|
+
// recovery for a deployment that did not fail from one whose recovery could not be read.
|
|
21
|
+
writeJson({ ...deployment, recovery, recoveryUnavailableReason: unavailableReason });
|
|
14
22
|
return;
|
|
15
23
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
24
|
+
output.note(formatDeployment(deployment, errorContext), "VC Deployment");
|
|
25
|
+
if (recovery)
|
|
26
|
+
output.warn(formatDeploymentRecovery(recovery, resolvedDeploymentId));
|
|
27
|
+
else if (unavailableReason)
|
|
28
|
+
output.warn(unavailableReason);
|
|
20
29
|
}
|
|
21
30
|
async function findLatestDeploymentId(client, options) {
|
|
22
31
|
const { environment } = await resolveEnvironment(options);
|
|
@@ -27,7 +36,7 @@ async function findLatestDeploymentId(client, options) {
|
|
|
27
36
|
const page = await client.get(`/deployments?${query}`);
|
|
28
37
|
const deployment = page.items[0];
|
|
29
38
|
if (!deployment) {
|
|
30
|
-
throw new Error(`No VC Deployment found for VC Environment "${environment.slug}". Run \`${
|
|
39
|
+
throw new Error(`No VC Deployment found for VC Environment "${environment.slug}". Run \`${CLOUD_INVOCATION} deploy\` first.`);
|
|
31
40
|
}
|
|
32
41
|
return deployment.id;
|
|
33
42
|
}
|
|
@@ -51,6 +60,7 @@ function formatDeployment(deployment, errorContext) {
|
|
|
51
60
|
`Started: ${deployment.startedAt ? formatDateTime(deployment.startedAt) : "—"}`,
|
|
52
61
|
`Completed: ${deployment.completedAt ? formatDateTime(deployment.completedAt) : "—"}`,
|
|
53
62
|
`Commit: ${formatCommit(deployment)}`,
|
|
63
|
+
`Config rev: ${deployment.configRevision ?? "—"}`,
|
|
54
64
|
`Source: ${deployment.applicationSource ?? "—"}`,
|
|
55
65
|
`Build Step: ${deployment.hasBuildStep === true ? "yes" : "no"}`,
|
|
56
66
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,3 @@
|
|
|
1
1
|
import { type ApiClient, type Environment, type SourceBranchMappingDetails } from "../../index.js";
|
|
2
|
-
|
|
3
|
-
export type DeploymentSource = {
|
|
4
|
-
kind: "managed-build";
|
|
5
|
-
mapping: SourceBranchMappingDetails;
|
|
6
|
-
} | {
|
|
7
|
-
kind: "prebuilt-images";
|
|
8
|
-
images: DeploymentImageOptions & {
|
|
9
|
-
serverImage: string;
|
|
10
|
-
workerImage: string;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
export declare function resolveDeploymentSource(client: ApiClient, environment: Environment, images: DeploymentImageOptions): Promise<DeploymentSource>;
|
|
2
|
+
export declare function requireBranchMapping(client: ApiClient, environment: Environment): Promise<SourceBranchMappingDetails>;
|
|
14
3
|
//# sourceMappingURL=source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAEhC,MAAM,gBAAgB,CAAC;AAIxB,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,0BAA0B,CAAC,CAQrC"}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!images.serverImage || !images.workerImage) {
|
|
6
|
-
throw new Error(`Image deployment requires both \`--server-image\` and \`--worker-image\`. Provide both flags, or omit all image flags and configure a source repository with \`${cloudInvocation()} source connect\` and \`${cloudInvocation()} source map\`.`);
|
|
7
|
-
}
|
|
8
|
-
return {
|
|
9
|
-
kind: "prebuilt-images",
|
|
10
|
-
images: { ...images, serverImage: images.serverImage, workerImage: images.workerImage },
|
|
11
|
-
};
|
|
12
|
-
}
|
|
1
|
+
import { CLOUD_INVOCATION, getBranchMappingOrNull, } from "../../index.js";
|
|
2
|
+
// The branch mapping a deploy builds from. An environment with no mapping has nothing to build, so
|
|
3
|
+
// this refuses and names `source connect` and `source map`.
|
|
4
|
+
export async function requireBranchMapping(client, environment) {
|
|
13
5
|
const mapping = await getBranchMappingOrNull(client, environment.id);
|
|
14
6
|
if (!mapping) {
|
|
15
|
-
throw new Error(`No source repository is configured for VC Environment "${environment.slug}". Configure one with \`${
|
|
7
|
+
throw new Error(`No source repository is configured for VC Environment "${environment.slug}". Configure one with \`${CLOUD_INVOCATION} source connect\` and \`${CLOUD_INVOCATION} source map\`.`);
|
|
16
8
|
}
|
|
17
|
-
return
|
|
9
|
+
return mapping;
|
|
18
10
|
}
|
|
19
11
|
//# sourceMappingURL=source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAGhB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,mGAAmG;AACnG,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAiB,EACjB,WAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0DAA0D,WAAW,CAAC,IAAI,2BAA2B,gBAAgB,2BAA2B,gBAAgB,gBAAgB,CACjL,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deployment/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EASvB,MAAM,gBAAgB,CAAC;AAIxB,wBAAsB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE1E"}
|
|
@@ -1,58 +1,59 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { FAILED_STATUSES, SUCCESS_STATUSES, cloudInvocation, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, resolveEnvironment, } from "../../index.js";
|
|
1
|
+
import { CLOUD_INVOCATION, FAILED_STATUSES, SUCCESS_STATUSES, createAuthenticatedClient, formatDateTime, formatUserFacingErrorDetails, output, platformAddress, resolveEnvironment, } from "../../index.js";
|
|
3
2
|
import { DEPLOYMENT_ID_PREFIX_MIN_LENGTH } from "../../lib/contract/wire-values.js";
|
|
4
3
|
export async function status({ globals }) {
|
|
5
|
-
const { environment } = await resolveEnvironment(globals);
|
|
6
|
-
const client = createAuthenticatedClient(globals);
|
|
7
|
-
const current = await client.get(`/environments/${
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
const { environment: selectedEnvironment } = await resolveEnvironment(globals);
|
|
5
|
+
const client = await createAuthenticatedClient(globals);
|
|
6
|
+
const current = await client.get(`/environments/${selectedEnvironment.id}/status`);
|
|
7
|
+
const statusEnvironment = current.environment;
|
|
8
|
+
output.info(`Project: ${statusEnvironment.projectName}`);
|
|
9
|
+
output.info(`Environment: ${statusEnvironment.name} (${statusEnvironment.type})`);
|
|
10
|
+
output.info(`Runtime: ${statusEnvironment.runtimeState}`);
|
|
11
|
+
// TODO: CLO-822 puts the hostname on the status response; read it from `statusEnvironment` then.
|
|
12
|
+
output.info(`URL: ${platformAddress(selectedEnvironment) ?? "not assigned"}`);
|
|
13
|
+
if (statusEnvironment.branch) {
|
|
14
|
+
output.info(`Branch: ${statusEnvironment.branch}`);
|
|
14
15
|
}
|
|
15
16
|
const dep = current.latestDeployment;
|
|
16
17
|
if (!dep) {
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
output.message("");
|
|
19
|
+
output.warn(`No deployments yet. Run \`${CLOUD_INVOCATION} deploy\` to get started.`);
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
output.message("");
|
|
23
|
+
output.step("Latest Deployment");
|
|
23
24
|
const logStatus = FAILED_STATUSES.has(dep.status)
|
|
24
|
-
?
|
|
25
|
+
? output.error
|
|
25
26
|
: SUCCESS_STATUSES.has(dep.status)
|
|
26
|
-
?
|
|
27
|
-
:
|
|
28
|
-
|
|
27
|
+
? output.success
|
|
28
|
+
: output.warn;
|
|
29
|
+
output.info(`ID: ${dep.id.slice(0, DEPLOYMENT_ID_PREFIX_MIN_LENGTH)}`);
|
|
29
30
|
logStatus(`Status: ${dep.status}`);
|
|
30
|
-
|
|
31
|
+
output.info(`Trigger: ${dep.trigger}`);
|
|
31
32
|
if (dep.commitHash) {
|
|
32
33
|
const short = dep.commitHash.slice(0, 7);
|
|
33
34
|
const msg = dep.commitMessage ? ` — ${dep.commitMessage}` : "";
|
|
34
|
-
|
|
35
|
+
output.info(`Commit: ${short}${msg}`);
|
|
35
36
|
}
|
|
36
37
|
if (dep.startedAt) {
|
|
37
|
-
|
|
38
|
+
output.info(`Started: ${formatDateTime(dep.startedAt)}`);
|
|
38
39
|
}
|
|
39
40
|
if (dep.completedAt) {
|
|
40
|
-
|
|
41
|
+
output.info(`Completed: ${formatDateTime(dep.completedAt)}`);
|
|
41
42
|
}
|
|
42
43
|
if (dep.errorDetails) {
|
|
43
|
-
|
|
44
|
-
projectSlug:
|
|
45
|
-
environmentSlug:
|
|
44
|
+
output.error(`Error: ${formatUserFacingErrorDetails(dep.errorDetails, {
|
|
45
|
+
projectSlug: statusEnvironment.projectSlug,
|
|
46
|
+
environmentSlug: statusEnvironment.slug,
|
|
46
47
|
})}`);
|
|
47
48
|
}
|
|
48
49
|
if (current.services.length > 0) {
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
output.message("");
|
|
51
|
+
output.step("Resources");
|
|
51
52
|
for (const svc of current.services) {
|
|
52
53
|
const runtime = svc.runtimeState === null
|
|
53
54
|
? ""
|
|
54
55
|
: ` — ${svc.runtimeState}${svc.runtimeHealth ? ` / ${svc.runtimeHealth}` : ""}`;
|
|
55
|
-
|
|
56
|
+
output.info(`${svc.label}${runtime}`);
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
59
|
}
|