Hello CHT community,
I recently ran the following command from my local cht-project
directory:
cht --url=https://<username>:<password>@172-20-252-111.local-ip.medicmobile.org:10443/ --
I didn’t specify any additional arguments or subcommands, just the --url
.
To my surprise, this triggered a full deployment pipeline to the live CHT instance and started executing the following actions::
INFO Actions:
- check-git
- compile-app-settings
- backup-app-settings
- upload-app-settings
- convert-app-forms
- convert-collect-forms
- convert-contact-forms
- convert-training-forms
- validate-app-forms
- validate-collect-forms
- validate-contact-forms
- validate-training-forms
- backup-all-forms
- delete-all-forms
- upload-app-forms
- upload-collect-forms
- upload-contact-forms
- upload-training-forms
- upload-resources
---
- upload-branding
- upload-partners
- upload-custom-translations
- upload-privacy-policies
- upload-extension-libs
- upload-database-indexes
It actually connected to the live instance, and executed all the commands check-git to upload-resources, and uploaded my local versions.
However, it stopped at the upload-resources
step when CHT detected that the server’s config had been modified since my last upload. It then prompted me to choose:
- Overwrite the changes – Push my local resources and replace server ones.
- Abort – Cancel so I can pull the latest from the server first.
- View diff – See what’s different before deciding.
My questions:
- Is
cht --url=...
without a subcommand intentionally designed to run a full deployment? - Is there a built-in safe or dry-run mechanism to connect and validate without pushing changes (especially to production)?
Any guidance would be appreciated, especially to avoid accidental production deployments in the future.
Thanks,