
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
CHT Conf is a command-line interface tool to manage and configure your apps built using the Core Framework of the Community Health Toolkit.
npm install -g cht-conf
sudo python -m pip install git+https://github.com/medic/pyxform.git@medic-conf-1.17#egg=pyxform-medic
npm install -g cht-conf
pip install git+https://github.com/medic/pyxform.git@medic-conf-1.17#egg=pyxform-medic
As Administrator:
npm install -g cht-conf
python -m pip install git+https://github.com/medic/pyxform.git@medic-conf-1.17#egg=pyxform-medic --upgrade
NB - cht-conf
in a Docker container should only be used if you're familiar with running containers. You will have to copy or mount your config files into the container in order to be able to use the cht
call to interact with a remote CHT instance.
Build and then run the cht-conf
container:
docker build -t cht-conf:v0 .
docker run -d --name cht-conf cht-conf:v0
You now have a container running in the background called cht-conf
. You can get a shell on this container with:
docker exec -it cht-conf /bin/bash
And then you can run the utility with cht
.
When you are done with the container, you can stop it with:
docker stop cht-conf
To enable tab completion in bash, add the following to your .bashrc
/.bash_profile
:
eval "$(cht-conf --shell-completion=bash)"
To upgrade to the latest version
npm install -g cht-conf
cht
will upload the configuration from your current directory.
If you are using the default actionset, or performing any actions that require a CHT instance to function (e.g. upload-xyz
or backup-xyz
actions) you must specify the server you'd like to function against.
For developers, this is the instance defined in your COUCH_URL
environment variable.
cht --local
For configuring Medic-hosted instances.
cht --instance=instance-name.dev
Username admin
is used. A prompt is shown for entering password.
If a different username is required, add the --user
switch:
--user user-name --instance=instance-name.dev
cht --url=https://username:password@example.com:12345
NB - When specifying the URL with --url
, be sure not to specify the CouchDB database name in the URL. The CHT API will find the correct database.
cht --archive
The resulting archive is consumable by CHT API >v3.7 to create default configurations.
cht <--archive|--local|--instance=instance-name|--url=url> <...action>
The list of available actions can be seen via cht --help
.
cht <--local|--instance=instance-name|--url=url> <...action> -- <...form>
Added in v3.2.0
In order to avoid overwriting someone else's configuration cht-conf records the last uploaded configuration snapshot in the .snapshots
directory. The remote.json
file should be committed to your repository along with the associated configuration change. When uploading future configuration if cht-conf detects the snapshot doesn't match the configuration on the server you will be prompted to overwrite or cancel.
.xlsx
To edit existing couchdb documents, create a CSV file that contains the id's of the document you wish to update, and the columns of the document attribute(s) you wish to add/edit. By default, values are parsed as strings. To parse a CSV column as a JSON type, refer to the Property Types section to see how you can parse the values to different types. Also refer to the Excluded Columns section to see how to exclude column(s) from being added to the docs.
Parameter | Description | Required |
---|---|---|
column(s) | Comma delimited list of columns you wish to add/edit. If this is not specified all columns will be added. | No |
docDirectoryPath | This action outputs files to local disk at this destination | No. Default json-docs |
file(s) | Comma delimited list of files you wish to process using edit-contacts. By default, contact.csv is searched for in the current directory and processed. | No. |
updateOfflineDocs | If passed, this updates the docs already in the docDirectoryPath instead of downloading from the server. | No. |
Create a contact.csv file with your columns in the csv folder in your current path. The documentID column is a requirement. (The documentID column contains the document IDs to be fetched from couchdb.)
documentID | is_in_emnch:bool |
---|---|
documentID1 | false |
documentID2 | false |
documentID3 | true |
Use the following command to download and edit the documents:
cht --instance=*instance* edit-contacts -- --column=*is_in_emnch* --docDirectoryPath=*my_folder*
or this one to update already downloaded docs
cht --instance=*instance* edit-contacts -- --column=*is_in_emnch* --docDirectoryPath=*my_folder* --updateOfflineDocs
Then upload the edited documents using the upload-docs command.
This tool expects a project to be structured as follows:
example-project/
.eslintrc
app_settings.json
contact-summary.js
privacy-policies.json
privacy-policies/
language1.html
…
purge.js
resources.json
resources/
icon-one.png
…
targets.js
tasks.js
task-schedules.json
forms/
app/
my_project_form.xlsx
my_project_form.xml
my_project_form.properties.json
my_project_form-media/
[extra files]
…
contact/
person-create.xlsx
person-create.xml
person-create-media/
[extra files]
…
…
…
translations/
messages-xx.properties
…
If you are starting from scratch you can initialise the file layout using the initialise-project-layout
action:
cht initialise-project-layout
Configuration can be inherited from another project, and then modified. This allows the app_settings.json
and contained files (task-schedules.json
, targets.json
etc.) to be imported, and then modified.
To achieve this, create a file called settings.inherit.json
in your project's root directory with the following format:
{
"inherit": "../path/to/other/project",
"replace": {
"keys.to.replace": "value-to-replace-it-with"
},
"merge": {
"complex.objects": {
"will_be_merged": true
}
},
"delete": [
"all.keys.listed.here",
"will.be.deleted"
],
"filter": {
"object.at.this.key": [
"will",
"keep",
"only",
"these",
"properties"
]
}
}
Fetch logs from a CHT v2.x production server.
This is a standalone command installed alongside cht-conf
. For usage information, run cht-logs --help
.
cht-logs <instance-name> <log-types...>
Accepted log types:
api
couchdb
gardener
nginx
sentinel
To develop a new action or improve an existing one, check the "Actions" doc.
Execute npm test
to run static analysis checks and the test suite. Requires Docker to run integration tests against a CouchDB instance.
node <project_dir>/src/bin/index.js
. This will run as if you installed via npm.npm install <project_dir>
to use the local version of cht-conf.The commit format should follow this conventional-changelog angular preset. Examples are provided below.
Type | Example commit message | Release type |
---|---|---|
Bug fixes | fix(#123): infinite spinner when clicking contacts tab twice | patch |
Performance | perf(#789): lazily loaded angular modules | patch |
Features | feat(#456): add home tab | minor |
Non-code | chore(#123): update README | none |
Breaking | perf(#2): remove reporting rates feature BREAKING CHANGE: reporting rates no longer supported | major |
master
npm version --no-git-tag-version <major>.<minor>.<patch>-beta.1
. This will only update the versions in package.json
and package-lock.json
. It will not create a git tag and not create an associated commit.npm publish --tag beta
. This will publish your beta tag to npm's beta channel.To install from the beta channel, run npm install cht-conf@beta
.
Builds brought to you courtesy of GitHub actions.
Copyright 2013-2019 Medic Mobile, Inc. hello@medicmobile.org
The software is provided under AGPL-3.0. Contributions to this project are accepted under the same license.
3.10.2 (2022-03-29)
FAQs
Configure CHT deployments
The npm package cht-conf receives a total of 671 weekly downloads. As such, cht-conf popularity was classified as not popular.
We found that cht-conf demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.