@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,14 +1,13 @@
|
|
|
1
1
|
import * as prompts from "@clack/prompts";
|
|
2
|
-
import {
|
|
2
|
+
import { CLOUD_INVOCATION, createAuthenticatedClient, output, requiredArgument, resolveEnvironment, sleep, variadicArgument, writeJson, } from "../../index.js";
|
|
3
3
|
import { RUNTIME_OPERATION_TIMEOUT_MS, RuntimeOperationAction, RuntimeOperationStatus, isTerminalRuntimeOperationStatus, } from "../../lib/contract/runtime-operations.js";
|
|
4
4
|
const POLL_INTERVAL_MS = 3_000;
|
|
5
|
-
|
|
6
|
-
//
|
|
7
|
-
// `TERMINAL_RUNTIME_OPERATION_STATUSES
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
// declaration module does not reach the contract, which is where `zod` starts.
|
|
5
|
+
const STOP_BILLING_NOTICE = "Stopping keeps this environment's database, assets and configuration. Its subscription and the resources it keeps remain billable while it is stopped. Stopping does not cancel the subscription.";
|
|
6
|
+
// `isTerminalRuntimeOperationStatus` is the contract's guard over
|
|
7
|
+
// `TERMINAL_RUNTIME_OPERATION_STATUSES`; a local copy would keep polling forever if a status were
|
|
8
|
+
// added. The ceiling is quoted in the sentence a customer reads.
|
|
9
|
+
// Which action each command name starts. Declared here so the declaration module does not reach the
|
|
10
|
+
// contract, where `zod` starts.
|
|
12
11
|
const OPERATION_ACTIONS = {
|
|
13
12
|
stop: RuntimeOperationAction.STOP,
|
|
14
13
|
start: RuntimeOperationAction.START,
|
|
@@ -18,7 +17,7 @@ export async function runResourceOperation({ args, options, globals }, name) {
|
|
|
18
17
|
const action = OPERATION_ACTIONS[name];
|
|
19
18
|
const resources = variadicArgument(args, 0, "resources");
|
|
20
19
|
// `--no-wait` is a negated boolean, so the host's Commander gives `wait` and defaults it to true.
|
|
21
|
-
// Anything other than the flag having been given reads as waiting
|
|
20
|
+
// Anything other than the flag having been given reads as waiting.
|
|
22
21
|
const wait = options.wait !== false;
|
|
23
22
|
const skipConfirmation = options.yes === true;
|
|
24
23
|
const { project, environment } = await resolveEnvironment(globals);
|
|
@@ -28,6 +27,9 @@ export async function runResourceOperation({ args, options, globals }, name) {
|
|
|
28
27
|
if (json && requiresConfirmation && !skipConfirmation) {
|
|
29
28
|
throw new Error("--json requires --yes for production stop and restart commands.");
|
|
30
29
|
}
|
|
30
|
+
// Before the confirmation, so the customer reads it while deciding.
|
|
31
|
+
if (!json && action === RuntimeOperationAction.STOP)
|
|
32
|
+
output.warn(STOP_BILLING_NOTICE);
|
|
31
33
|
if (requiresConfirmation && !skipConfirmation) {
|
|
32
34
|
const verb = action.toLowerCase();
|
|
33
35
|
const confirmed = await prompts.confirm({
|
|
@@ -39,10 +41,10 @@ export async function runResourceOperation({ args, options, globals }, name) {
|
|
|
39
41
|
return undefined;
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
|
-
const client = createAuthenticatedClient(globals);
|
|
44
|
+
const client = await createAuthenticatedClient(globals);
|
|
43
45
|
let operation = await client.post(`/environments/${environment.id}/resource-operations`, { action, ...(resources.length > 0 ? { resources } : {}) });
|
|
44
46
|
if (!wait || isTerminalRuntimeOperationStatus(operation.status)) {
|
|
45
|
-
return outputOperation(operation, json, project.slug, environment.slug);
|
|
47
|
+
return outputOperation(operation, json, project.slug, environment.slug, true);
|
|
46
48
|
}
|
|
47
49
|
const spinner = json ? null : prompts.spinner();
|
|
48
50
|
spinner?.start(`${titleCase(action.toLowerCase())} in progress...`);
|
|
@@ -50,10 +52,10 @@ export async function runResourceOperation({ args, options, globals }, name) {
|
|
|
50
52
|
while (!isTerminalRuntimeOperationStatus(operation.status)) {
|
|
51
53
|
if (Date.now() - startedAt > RUNTIME_OPERATION_TIMEOUT_MS) {
|
|
52
54
|
spinner?.stop("Resource operation is still running.");
|
|
53
|
-
const message = `Resource operation ${operation.id} is still running in the background after ${RUNTIME_OPERATION_TIMEOUT_MS / 60_000} minutes. Use ${
|
|
55
|
+
const message = `Resource operation ${operation.id} is still running in the background after ${RUNTIME_OPERATION_TIMEOUT_MS / 60_000} minutes. Use ${statusCommand(operation.id, project.slug, environment.slug)} to check its status.`;
|
|
54
56
|
if (json)
|
|
55
57
|
throw new Error(message);
|
|
56
|
-
|
|
58
|
+
output.warn(message);
|
|
57
59
|
return 1;
|
|
58
60
|
}
|
|
59
61
|
await sleep(POLL_INTERVAL_MS);
|
|
@@ -61,57 +63,70 @@ export async function runResourceOperation({ args, options, globals }, name) {
|
|
|
61
63
|
spinner?.message(operation.status.toLowerCase());
|
|
62
64
|
}
|
|
63
65
|
spinner?.stop(runtimeCompletionMessage(operation));
|
|
64
|
-
return outputOperation(operation, json, project.slug, environment.slug);
|
|
66
|
+
return outputOperation(operation, json, project.slug, environment.slug, false);
|
|
67
|
+
}
|
|
68
|
+
export async function showResourceOperation({ args, globals, }) {
|
|
69
|
+
const operationId = requiredArgument(args, 0, "operation-id");
|
|
70
|
+
const { project, environment } = await resolveEnvironment(globals);
|
|
71
|
+
const client = await createAuthenticatedClient(globals);
|
|
72
|
+
const operation = await client.get(`/environments/${environment.id}/resource-operations/${encodeURIComponent(operationId)}`);
|
|
73
|
+
return outputOperation(operation, globals.json === true, project.slug, environment.slug, false);
|
|
65
74
|
}
|
|
66
75
|
export async function listResources({ globals }) {
|
|
67
76
|
const { environment } = await resolveEnvironment(globals);
|
|
68
|
-
const
|
|
77
|
+
const client = await createAuthenticatedClient(globals);
|
|
78
|
+
const resources = await client.get(`/environments/${environment.id}/resources`);
|
|
69
79
|
if (globals.json === true) {
|
|
70
80
|
writeJson(resources);
|
|
71
81
|
return;
|
|
72
82
|
}
|
|
73
83
|
for (const resource of resources) {
|
|
74
84
|
const health = resource.health ? ` / ${resource.health}` : "";
|
|
75
|
-
|
|
85
|
+
output.info(`${resource.name} — ${resource.category} — ${resource.runtimeState}${health}`);
|
|
76
86
|
}
|
|
77
87
|
}
|
|
78
88
|
export async function showResource({ args, globals }) {
|
|
79
89
|
const resourceKey = requiredArgument(args, 0, "resource");
|
|
80
90
|
const { environment } = await resolveEnvironment(globals);
|
|
81
|
-
const
|
|
91
|
+
const client = await createAuthenticatedClient(globals);
|
|
92
|
+
const resource = await client.get(`/environments/${environment.id}/resources/${encodeURIComponent(resourceKey)}`);
|
|
82
93
|
if (globals.json === true) {
|
|
83
94
|
writeJson(resource);
|
|
84
95
|
return;
|
|
85
96
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
output.info(`Resource: ${resource.name}`);
|
|
98
|
+
output.info(`Category: ${resource.category}`);
|
|
99
|
+
output.info(`Type: ${resource.type}`);
|
|
100
|
+
output.info(`State: ${resource.runtimeState}`);
|
|
101
|
+
output.info(`Health: ${resource.health ?? "N/A"}`);
|
|
91
102
|
if (resource.stateReason)
|
|
92
|
-
|
|
103
|
+
output.info(`Reason: ${resource.stateReason}`);
|
|
93
104
|
if (resource.observedAt)
|
|
94
|
-
|
|
95
|
-
|
|
105
|
+
output.info(`Observed: ${resource.observedAt}`);
|
|
106
|
+
output.info(`Actions: ${resource.supportedActions.join(", ") || "None"}`);
|
|
96
107
|
for (const [key, value] of Object.entries(resource.configuration)) {
|
|
97
108
|
if (value !== undefined)
|
|
98
|
-
|
|
109
|
+
output.info(`${formatConfigurationKey(key)}: ${value}`);
|
|
99
110
|
}
|
|
100
111
|
}
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
112
|
+
// The exit code the operation earned: a partial or failed operation is a failure.
|
|
113
|
+
function outputOperation(operation, json, projectSlug, environmentSlug,
|
|
114
|
+
// Only the command that started the operation points at the re-read; the re-read itself does not.
|
|
115
|
+
hintReRead) {
|
|
104
116
|
if (json) {
|
|
105
117
|
writeJson(operation);
|
|
106
118
|
}
|
|
107
119
|
else {
|
|
108
120
|
for (const result of operation.results ?? []) {
|
|
109
|
-
|
|
121
|
+
output.info(`${result.resource}: ${result.state} (${result.outcome})`);
|
|
110
122
|
if (result.errorDetails)
|
|
111
|
-
|
|
123
|
+
output.error(result.errorDetails);
|
|
112
124
|
}
|
|
113
125
|
if (operation.errorDetails)
|
|
114
|
-
|
|
126
|
+
output.error(operation.errorDetails);
|
|
127
|
+
if (hintReRead && !isTerminalRuntimeOperationStatus(operation.status)) {
|
|
128
|
+
output.info(`Use ${statusCommand(operation.id, projectSlug, environmentSlug)} to check its status.`);
|
|
129
|
+
}
|
|
115
130
|
prompts.outro(`${projectSlug} / ${environmentSlug}: ${operationSummary(operation)}`);
|
|
116
131
|
}
|
|
117
132
|
if (operation.status === RuntimeOperationStatus.PARTIAL ||
|
|
@@ -138,6 +153,11 @@ function runtimeCompletionMessage(operation) {
|
|
|
138
153
|
}
|
|
139
154
|
return "Resource operation failed.";
|
|
140
155
|
}
|
|
156
|
+
// Names the project and environment the operation was started in, so the re-read does not fall
|
|
157
|
+
// back to a different saved default.
|
|
158
|
+
function statusCommand(operationId, projectSlug, environmentSlug) {
|
|
159
|
+
return `${CLOUD_INVOCATION} resource operation ${operationId} --project ${projectSlug} --environment ${environmentSlug}`;
|
|
160
|
+
}
|
|
141
161
|
function titleCase(value) {
|
|
142
162
|
return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
|
|
143
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/restore.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/restore.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,iBAAiB,EAavB,MAAM,gBAAgB,CAAC;AAoCxB,wBAAsB,eAAe,CAAC,EACpC,IAAI,EACJ,OAAO,EACP,OAAO,GACR,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgFjD"}
|
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
import * as prompts from "@clack/prompts";
|
|
2
|
-
import {
|
|
2
|
+
import { CLOUD_INVOCATION, createAuthenticatedClient, findEnvironmentOrThrow, formatDateTime, formatDuration, listEnvironments, output, readSingleValue, requiredArgument, resolveEnvironment, sleep, } from "../../index.js";
|
|
3
3
|
import { DB_OPERATION_FAILED_STATUSES, DB_OPERATION_SUCCESS_STATUS, } from "../../lib/contract/database.js";
|
|
4
|
-
// A restore is two long operations
|
|
5
|
-
//
|
|
6
|
-
// seconds for hours.
|
|
4
|
+
// A restore is two long operations and neither reports a percentage, so the poll starts quick and
|
|
5
|
+
// widens instead of asking every few seconds for hours.
|
|
7
6
|
const FIRST_POLL_INTERVAL_MS = 3_000;
|
|
8
7
|
const MAX_POLL_INTERVAL_MS = 30_000;
|
|
9
8
|
const POLL_BACKOFF_FACTOR = 2;
|
|
10
9
|
// How much longer than the platform's own budget to keep watching. The budget comes back on the
|
|
11
|
-
// start response
|
|
12
|
-
//
|
|
13
|
-
// the two machines.
|
|
10
|
+
// start response, derived from this environment's archive size; the margin covers clock skew
|
|
11
|
+
// between the two machines.
|
|
14
12
|
const DEADLINE_MARGIN_MS = 60_000;
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
// authorises overwriting a production database from a script. A flag somebody can type by habit is
|
|
18
|
-
// the wrong shape for that.
|
|
13
|
+
// Spelled out instead of `--yes`: every other `--yes` in this CLI skips a confirmation, and this
|
|
14
|
+
// one authorises overwriting a production database from a script.
|
|
19
15
|
const NON_INTERACTIVE_FLAG = "--i-know-this-destroys-data";
|
|
20
|
-
|
|
21
|
-
//
|
|
22
|
-
function migrationWarning() {
|
|
23
|
-
return `If this backup predates your latest deploy, the database schema may now be behind the running code. Run \`${cloudInvocation()} deploy\` to re-apply pending migrations.`;
|
|
24
|
-
}
|
|
25
|
-
// What each phase is called while a customer watches it. The safety backup has touched nothing yet
|
|
26
|
-
// and the restore has, which is the one distinction worth spelling out on a spinner.
|
|
16
|
+
const MIGRATION_WARNING = `If this backup predates your latest deploy, the database schema may now be behind the running code. Run \`${CLOUD_INVOCATION} deploy\` to re-apply pending migrations.`;
|
|
17
|
+
// The safety backup has touched nothing yet and the restore has; the spinner says which.
|
|
27
18
|
const PHASE_MESSAGE = {
|
|
28
19
|
queued: "Waiting for Vendure Cloud to pick up the restore",
|
|
29
20
|
"safety-backup": "Taking a safety backup of the current data",
|
|
@@ -37,18 +28,25 @@ export async function restoreDatabase({ args, options, globals, }) {
|
|
|
37
28
|
// Checked before the environment is resolved, so a script that cannot proceed fails without a
|
|
38
29
|
// network call and without having named an environment it is about to overwrite.
|
|
39
30
|
if (!confirmedByFlag && !process.stdin.isTTY) {
|
|
40
|
-
throw new Error(`\`${
|
|
31
|
+
throw new Error(`\`${CLOUD_INVOCATION} restore db\` overwrites this environment's database and requires an interactive terminal. Re-run with ${NON_INTERACTIVE_FLAG} to proceed without one.`);
|
|
41
32
|
}
|
|
42
33
|
const { project, environment } = await resolveEnvironment(globals);
|
|
43
|
-
const client = createAuthenticatedClient(globals);
|
|
44
|
-
|
|
34
|
+
const client = await createAuthenticatedClient(globals);
|
|
35
|
+
// The environment this is pointed at is the one that gets overwritten, whatever `--from` says.
|
|
36
|
+
// `--from` only changes where the backup is read from.
|
|
37
|
+
const source = await resolveSource(client, project, environment, options.from);
|
|
38
|
+
const destination = `${project.slug} / ${environment.slug}`;
|
|
39
|
+
const takenFrom = source.id === environment.id ? "" : `, taken from ${project.slug} / ${source.slug}`;
|
|
40
|
+
const backup = await client.get(`/environments/${source.id}/database/backups/${encodeURIComponent(backupId)}`);
|
|
45
41
|
if (!confirmedByFlag) {
|
|
46
42
|
const confirmed = await prompts.confirm({
|
|
47
43
|
initialValue: false,
|
|
48
|
-
|
|
44
|
+
// Names the destination twice on purpose. A cross-environment restore has two environments in
|
|
45
|
+
// one sentence, and the one that loses its data is the one worth repeating.
|
|
46
|
+
message: `Restore the ${destination} database from backup ${backup.id} (created ${formatDateTime(backup.createdAt)}${takenFrom})? All current data in ${destination} will be overwritten.`,
|
|
49
47
|
});
|
|
50
48
|
if (prompts.isCancel(confirmed) || !confirmed) {
|
|
51
|
-
|
|
49
|
+
output.info("Restore cancelled.");
|
|
52
50
|
return undefined;
|
|
53
51
|
}
|
|
54
52
|
}
|
|
@@ -56,35 +54,52 @@ export async function restoreDatabase({ args, options, globals, }) {
|
|
|
56
54
|
spinner.start("Starting the restore...");
|
|
57
55
|
let result;
|
|
58
56
|
try {
|
|
59
|
-
result = await client.post(`/environments/${environment.id}/database/backups/${encodeURIComponent(backupId)}/restore
|
|
57
|
+
result = await client.post(`/environments/${environment.id}/database/backups/${encodeURIComponent(backupId)}/restore`,
|
|
58
|
+
// Sent only when the two differ, so an in-place restore sends an unchanged request.
|
|
59
|
+
source.id === environment.id ? undefined : { sourceEnvironmentId: source.id });
|
|
60
60
|
}
|
|
61
61
|
catch (error) {
|
|
62
62
|
spinner.stop("Restore could not be started");
|
|
63
63
|
throw error;
|
|
64
64
|
}
|
|
65
|
-
// Said once, before the wait: the id
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
|
|
65
|
+
// Said once, before the wait: the id recovers this environment if the restored data turns out to
|
|
66
|
+
// be wrong, and a customer needs it whatever happens next, including a terminal closed
|
|
67
|
+
// mid-restore.
|
|
68
|
+
output.info(`A safety backup of the current data is being taken as ${result.safetyBackupId}. Restore it with \`${CLOUD_INVOCATION} restore db ${result.safetyBackupId}\` if you need the previous state back.`);
|
|
69
69
|
const current = await pollRestore(client, environment.id, result, spinner);
|
|
70
70
|
if (!current)
|
|
71
71
|
return 1;
|
|
72
72
|
if (current.status === DB_OPERATION_SUCCESS_STATUS) {
|
|
73
73
|
spinner.stop("Restore complete.");
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
output.success(`Database restored into ${destination} from backup ${backup.id}. A safety backup of the previous state was kept as ${result.safetyBackupId}.`);
|
|
75
|
+
output.warn(MIGRATION_WARNING);
|
|
76
76
|
return undefined;
|
|
77
77
|
}
|
|
78
78
|
spinner.stop("Restore failed");
|
|
79
79
|
// The control plane's own sentence when it has one: it is written for a customer, names the safety
|
|
80
80
|
// backup and says what to do next. The status alone is the fallback.
|
|
81
|
-
|
|
81
|
+
output.error(current.errorDetails ??
|
|
82
82
|
`Restore ${result.restoreId} ended with status "${current.status}". The safety backup ${result.safetyBackupId} holds the data from before this attempt.`);
|
|
83
83
|
return 1;
|
|
84
84
|
}
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
85
|
+
// Which environment's backup this reads. `--from` names a sibling in the project already resolved,
|
|
86
|
+
// so a name outside it is refused here, not by the control plane.
|
|
87
|
+
//
|
|
88
|
+
// A value the declaration did not describe throws. Falling back to the destination would restore in
|
|
89
|
+
// place over the environment being pointed at, with no prompt under `--i-know-this-destroys-data`.
|
|
90
|
+
//
|
|
91
|
+
// `readSingleValue` is the shared refusal in `arguments.ts`; this wrapper adds what absent means
|
|
92
|
+
// here, which is restore in place.
|
|
93
|
+
async function resolveSource(client, project, destination, from) {
|
|
94
|
+
const identifier = readSingleValue(from, "--from");
|
|
95
|
+
if (identifier === undefined)
|
|
96
|
+
return destination;
|
|
97
|
+
const environments = await listEnvironments(client, project.id);
|
|
98
|
+
return findEnvironmentOrThrow(environments, identifier, project);
|
|
99
|
+
}
|
|
100
|
+
// Polls until the restore settles, reporting each phase. Returns null when the platform's deadline
|
|
101
|
+
// passed without the restore settling; the row is the record, and nothing local knows what became
|
|
102
|
+
// of the work.
|
|
88
103
|
async function pollRestore(client, environmentId, result, spinner) {
|
|
89
104
|
const startedAt = Date.now();
|
|
90
105
|
// Derived from this environment's own archive by the control plane. Clamped below at one minute so
|
|
@@ -100,8 +115,8 @@ async function pollRestore(client, environmentId, result, spinner) {
|
|
|
100
115
|
spinner.message(`${PHASE_MESSAGE[current.phase]}...`);
|
|
101
116
|
}
|
|
102
117
|
else {
|
|
103
|
-
// The same phase,
|
|
104
|
-
//
|
|
118
|
+
// The same phase, with how long it has been going. A destructive operation that says nothing
|
|
119
|
+
// for an hour is indistinguishable from one nobody is watching.
|
|
105
120
|
spinner.message(`${PHASE_MESSAGE[current.phase]} (${formatDuration(Date.now() - startedAt)} so far)...`);
|
|
106
121
|
}
|
|
107
122
|
if (current.status === DB_OPERATION_SUCCESS_STATUS ||
|
|
@@ -110,7 +125,7 @@ async function pollRestore(client, environmentId, result, spinner) {
|
|
|
110
125
|
}
|
|
111
126
|
if (Date.now() >= deadline) {
|
|
112
127
|
spinner.stop("Restore is taking longer than Vendure Cloud allows for it");
|
|
113
|
-
|
|
128
|
+
output.warn(`Restore ${result.restoreId} has not finished within the time Vendure Cloud allows for this environment's data. Vendure Cloud will finish or stop it on its own — check it with \`${CLOUD_INVOCATION} backup db list\` before deploying or restoring again. The safety backup ${result.safetyBackupId} holds the data from before this attempt.`);
|
|
114
129
|
return null;
|
|
115
130
|
}
|
|
116
131
|
interval = Math.min(MAX_POLL_INTERVAL_MS, interval * POLL_BACKOFF_FACTOR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/restore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAEL,gBAAgB,EAIhB,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,GACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAK5B,MAAM,gCAAgC,CAAC;AAExC,kGAAkG;AAClG,wDAAwD;AACxD,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,gGAAgG;AAChG,6FAA6F;AAC7F,4BAA4B;AAC5B,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,iGAAiG;AACjG,kEAAkE;AAClE,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;AAE3D,MAAM,iBAAiB,GAAG,6GAA6G,gBAAgB,2CAA2C,CAAC;AAEnM,yFAAyF;AACzF,MAAM,aAAa,GAAyC;IAC1D,MAAM,EAAE,kDAAkD;IAC1D,eAAe,EAAE,4CAA4C;IAC7D,SAAS,EAAE,wBAAwB;IACnC,SAAS,EAAE,kBAAkB;IAC7B,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,IAAI,EACJ,OAAO,EACP,OAAO,GACW;IAClB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,KAAK,IAAI,CAAC;IAC/D,8FAA8F;IAC9F,iFAAiF;IACjF,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,KAAK,gBAAgB,0GAA0G,oBAAoB,0BAA0B,CAC9K,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAExD,+FAA+F;IAC/F,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,SAAS,GACb,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IAEtF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,iBAAiB,MAAM,CAAC,EAAE,qBAAqB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAC9E,CAAC;IAEF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;YACtC,YAAY,EAAE,KAAK;YACnB,8FAA8F;YAC9F,4EAA4E;YAC5E,OAAO,EAAE,eAAe,WAAW,yBAAyB,MAAM,CAAC,EAAE,aAAa,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,0BAA0B,WAAW,uBAAuB;SAC3L,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEzC,IAAI,MAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CACxB,iBAAiB,WAAW,CAAC,EAAE,qBAAqB,kBAAkB,CAAC,QAAQ,CAAC,UAAU;QAC1F,oFAAoF;QACpF,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,EAAE,CAC9E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC;IACd,CAAC;IAED,iGAAiG;IACjG,uFAAuF;IACvF,eAAe;IACf,MAAM,CAAC,IAAI,CACT,yDAAyD,MAAM,CAAC,cAAc,uBAAuB,gBAAgB,eAAe,MAAM,CAAC,cAAc,yCAAyC,CACnM,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IAEvB,IAAI,OAAO,CAAC,MAAM,KAAK,2BAA2B,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CACZ,0BAA0B,WAAW,gBAAgB,MAAM,CAAC,EAAE,uDAAuD,MAAM,CAAC,cAAc,GAAG,CAC9I,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/B,mGAAmG;IACnG,qEAAqE;IACrE,MAAM,CAAC,KAAK,CACV,OAAO,CAAC,YAAY;QAClB,WAAW,MAAM,CAAC,SAAS,uBAAuB,OAAO,CAAC,MAAM,wBAAwB,MAAM,CAAC,cAAc,2CAA2C,CAC3J,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mGAAmG;AACnG,kEAAkE;AAClE,EAAE;AACF,oGAAoG;AACpG,mGAAmG;AACnG,EAAE;AACF,iGAAiG;AACjG,mCAAmC;AACnC,KAAK,UAAU,aAAa,CAC1B,MAAiB,EACjB,OAAgB,EAChB,WAAwB,EACxB,IAAa;IAEb,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IACjD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,mGAAmG;AACnG,kGAAkG;AAClG,eAAe;AACf,KAAK,UAAU,WAAW,CACxB,MAAiB,EACjB,aAAqB,EACrB,MAAqB,EACrB,OAA2C;IAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,mGAAmG;IACnG,4FAA4F;IAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,SAAS,GAAG,sBAAsB,EAClC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAC3D,CAAC;IACF,IAAI,QAAQ,GAAG,sBAAsB,CAAC;IACtC,IAAI,aAAa,GAAgC,IAAI,CAAC;IAEtD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAC9B,iBAAiB,aAAa,sBAAsB,MAAM,CAAC,SAAS,EAAE,CACvE,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YACpC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;YAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,6FAA6F;YAC7F,gEAAgE;YAChE,OAAO,CAAC,OAAO,CACb,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,aAAa,CACxF,CAAC;QACJ,CAAC;QAED,IACE,OAAO,CAAC,MAAM,KAAK,2BAA2B;YAC9C,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAChD,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC1E,MAAM,CAAC,IAAI,CACT,WAAW,MAAM,CAAC,SAAS,yJAAyJ,gBAAgB,4EAA4E,MAAM,CAAC,cAAc,2CAA2C,CACjV,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,GAAG,mBAAmB,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seeds.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/seeds.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"seeds.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/seeds.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,iBAAiB,EASvB,MAAM,gBAAgB,CAAC;AAwBxB,wBAAsB,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DlF;AAED,wBAAsB,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7E;AAED,wBAAsB,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6E5F;AAED,wBAAsB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7F"}
|
|
@@ -2,15 +2,15 @@ import { createReadStream } from "node:fs";
|
|
|
2
2
|
import { stat } from "node:fs/promises";
|
|
3
3
|
import { basename } from "node:path";
|
|
4
4
|
import * as prompts from "@clack/prompts";
|
|
5
|
-
import {
|
|
5
|
+
import { CLOUD_INVOCATION, createAuthenticatedClient, formatBytes, formatDateTime, formatTable, output, requiredArgument, resolveEnvironment, sleep, } from "../../index.js";
|
|
6
6
|
import { SEED_CONTENT_TYPE, SEED_UPLOAD_PRECONDITION_HEADER, SEED_UPLOAD_PRECONDITION_VALUE, isValidSeedName, } from "../../lib/contract/seeds.js";
|
|
7
7
|
const POLL_INTERVAL_MS = 3_000;
|
|
8
8
|
// Long enough for a real dump. The apply runs as a task in the environment's Cell and the platform
|
|
9
9
|
// stops it at its own, longer deadline, so a client giving up here abandons the wait rather than the
|
|
10
10
|
// work: the operation goes on and its outcome is on the record the id names.
|
|
11
11
|
const APPLY_TIMEOUT_MS = 60 * 60 * 1000;
|
|
12
|
-
// Postgres restore does not repopulate the search index
|
|
13
|
-
//
|
|
12
|
+
// A Postgres restore does not repopulate the search index. Until CLO-220 automates that, tell the
|
|
13
|
+
// operator search is empty.
|
|
14
14
|
const SEARCH_WARNING = "The search index was not rebuilt. Products won't appear in search until a reindex runs (Admin UI → Products → reindex, or your app's reindex job).";
|
|
15
15
|
export async function pushSeed({ args, globals }) {
|
|
16
16
|
const name = requiredArgument(args, 0, "name");
|
|
@@ -25,7 +25,7 @@ export async function pushSeed({ args, globals }) {
|
|
|
25
25
|
if (!info.isFile()) {
|
|
26
26
|
throw new Error(`Not a file: ${file}`);
|
|
27
27
|
}
|
|
28
|
-
const client = createAuthenticatedClient(globals);
|
|
28
|
+
const client = await createAuthenticatedClient(globals);
|
|
29
29
|
const spinner = globals.json ? null : prompts.spinner();
|
|
30
30
|
spinner?.start(`Uploading ${basename(file)} as seed "${name}"...`);
|
|
31
31
|
// Request a short-lived presigned upload URL, then PUT the bytes straight to
|
|
@@ -50,7 +50,7 @@ export async function pushSeed({ args, globals }) {
|
|
|
50
50
|
const response = await fetch(ticket.uploadUrl, uploadInit);
|
|
51
51
|
if (response.status === 412) {
|
|
52
52
|
spinner?.stop("Upload rejected");
|
|
53
|
-
throw new Error(`A seed named "${name}" already exists. Delete it first with \`${
|
|
53
|
+
throw new Error(`A seed named "${name}" already exists. Delete it first with \`${CLOUD_INVOCATION} seed rm ${name}\`, or use a different name.`);
|
|
54
54
|
}
|
|
55
55
|
if (!response.ok) {
|
|
56
56
|
spinner?.stop("Upload failed");
|
|
@@ -61,11 +61,11 @@ export async function pushSeed({ args, globals }) {
|
|
|
61
61
|
writeCompactJson({ name, sizeBytes: info.size });
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
output.success(`Seed "${name}" uploaded (${formatBytes(info.size)}).`);
|
|
65
|
+
output.info(`Apply it with \`${CLOUD_INVOCATION} seed apply ${name} -e <environment>\`.`);
|
|
66
66
|
}
|
|
67
67
|
export async function listSeeds({ globals }) {
|
|
68
|
-
const client = createAuthenticatedClient(globals);
|
|
68
|
+
const client = await createAuthenticatedClient(globals);
|
|
69
69
|
// In JSON mode, keep stdout to the machine-readable payload only — no spinner
|
|
70
70
|
// or notes, which clack writes to stdout and would corrupt the output.
|
|
71
71
|
const spinner = globals.json ? null : prompts.spinner();
|
|
@@ -77,15 +77,15 @@ export async function listSeeds({ globals }) {
|
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
79
|
if (seeds.length === 0) {
|
|
80
|
-
|
|
80
|
+
output.info(`No seeds yet. Upload one with \`${CLOUD_INVOCATION} seed push <name> <file.gz>\`.`);
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
83
|
const rows = seeds
|
|
84
84
|
.slice()
|
|
85
85
|
.sort((a, b) => a.name.localeCompare(b.name))
|
|
86
86
|
.map((s) => [s.name, formatBytes(s.sizeBytes), formatDateTime(s.updatedAt)]);
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
output.note(formatTable(["NAME", "SIZE", "UPDATED"], rows), "Seeds");
|
|
88
|
+
output.info(`Apply one with \`${CLOUD_INVOCATION} seed apply <name> -e <environment>\`.`);
|
|
89
89
|
}
|
|
90
90
|
export async function applySeed({ args, options, globals }) {
|
|
91
91
|
const name = requiredArgument(args, 0, "name");
|
|
@@ -104,11 +104,11 @@ export async function applySeed({ args, options, globals }) {
|
|
|
104
104
|
message: `Apply seed "${name}" to ${project.slug} / ${environment.slug}? All current data in the database will be overwritten.`,
|
|
105
105
|
});
|
|
106
106
|
if (prompts.isCancel(confirmed) || !confirmed) {
|
|
107
|
-
|
|
107
|
+
output.info("Apply cancelled.");
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
const client = createAuthenticatedClient(globals);
|
|
111
|
+
const client = await createAuthenticatedClient(globals);
|
|
112
112
|
const spinner = globals.json ? null : prompts.spinner();
|
|
113
113
|
spinner?.start(`Applying seed "${name}" to ${project.slug} / ${environment.slug}...`);
|
|
114
114
|
let started;
|
|
@@ -131,8 +131,8 @@ export async function applySeed({ args, options, globals }) {
|
|
|
131
131
|
}
|
|
132
132
|
if (current.status !== "success") {
|
|
133
133
|
spinner?.stop("Seed apply failed");
|
|
134
|
-
// The control plane's own sentence when it has one
|
|
135
|
-
// to do next. The status alone is the fallback
|
|
134
|
+
// The control plane's own sentence when it has one; it is written for a customer and says what
|
|
135
|
+
// to do next. The status alone is the fallback for a control plane without the field.
|
|
136
136
|
throw new Error(current.errorDetails ??
|
|
137
137
|
`Seed apply ${started.operationId} ended with status "${current.status}".`);
|
|
138
138
|
}
|
|
@@ -145,8 +145,8 @@ export async function applySeed({ args, options, globals }) {
|
|
|
145
145
|
});
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
output.success(`Seed "${name}" applied to ${project.slug} / ${environment.slug}.`);
|
|
149
|
+
output.warn(SEARCH_WARNING);
|
|
150
150
|
}
|
|
151
151
|
export async function removeSeed({ args, options, globals }) {
|
|
152
152
|
const name = requiredArgument(args, 0, "name");
|
|
@@ -163,29 +163,27 @@ export async function removeSeed({ args, options, globals }) {
|
|
|
163
163
|
message: `Delete seed "${name}"? Environments configured to use it will fail to seed until it is replaced.`,
|
|
164
164
|
});
|
|
165
165
|
if (prompts.isCancel(confirmed) || !confirmed) {
|
|
166
|
-
|
|
166
|
+
output.info("Deletion cancelled.");
|
|
167
167
|
return;
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
|
-
const client = createAuthenticatedClient(globals);
|
|
170
|
+
const client = await createAuthenticatedClient(globals);
|
|
171
171
|
const result = await client.delete(`/seeds/${encodeURIComponent(name)}`);
|
|
172
172
|
if (globals.json) {
|
|
173
173
|
writeCompactJson(result);
|
|
174
174
|
return;
|
|
175
175
|
}
|
|
176
|
-
|
|
176
|
+
output.success(`Seed "${result.name}" deleted.`);
|
|
177
177
|
}
|
|
178
|
-
// Client-side pre-validation for a fast, clear error; the control plane is the
|
|
179
|
-
//
|
|
180
|
-
// (CLO-217) so the two never drift.
|
|
178
|
+
// Client-side pre-validation for a fast, clear error; the control plane is the authority. Delegates
|
|
179
|
+
// to the seed-name rule the wire contract carries (CLO-217) so the two do not drift.
|
|
181
180
|
function assertValidSeedName(name) {
|
|
182
181
|
if (!isValidSeedName(name)) {
|
|
183
182
|
throw new Error(`Invalid seed name "${name}". Use lowercase letters, numbers and hyphens (max 63 characters), e.g. "flowtech-preview-slim".`);
|
|
184
183
|
}
|
|
185
184
|
}
|
|
186
|
-
// One line, no indentation. `writeJson` pretty-prints,
|
|
187
|
-
//
|
|
188
|
-
// would stop working on the change.
|
|
185
|
+
// One line, no indentation. `writeJson` pretty-prints, and a script reading a seed command's stdout
|
|
186
|
+
// line by line breaks on indented output.
|
|
189
187
|
function writeCompactJson(value) {
|
|
190
188
|
process.stdout.write(`${JSON.stringify(value)}\n`);
|
|
191
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seeds.js","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/seeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"seeds.js","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/seeds.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/tunnel.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/runtime-data/tunnel.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,EAMvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAenE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAYD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9F;AAED,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CjG;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,YAAY,CAAC,CA6BxB"}
|