The Auditree tool for adding external evidence.
Auditree plant is a command line tool that assists in adding evidence to an
evidence locker. It provides a thoughtful way to add evidence to an
evidence locker by managing the evidence metadata so that checks and dependent fetchers
executed as part of the Auditree compliance framework can apply
appropriate time to live validations.
- Supported for execution on OSX and LINUX.
- Supported for execution with Python 3.6 and above.
Python 3 must be installed, it can be downloaded from the Python site or installed using your package manager.
Python version can be checked with:
python --versionor
python3 --versionThe plant tool is available for download from PyPI.
It is best practice, but not mandatory, to run plant from a dedicated Python
virtual environment. Assuming that you have the Python virtualenv
package already installed, you can create a virtual environment named venv by
executing virtualenv venv which will create a venv folder at the location of
where you executed the command. Alternatively you can use the python venv module
to do the same.
python3 -m venv venvAssuming that you have a virtual environment and that virtual environment is in
the current directory then to install a new instance of plant, activate
your virtual environment and use pip to install plant like so:
. ./venv/bin/activate
pip install auditree-plantAs we add new features to plant you will want to upgrade your plant
package. To upgrade plant to the most recent version do:
. ./venv/bin/activate
pip install auditree-plant --upgradeSee pip documentation for additional options when using pip.
Since Auditree plant interacts with Git repositories, it requires Git remote
hosting service credentials in order to do its thing. Auditree plant will by
default look for a username and token in a ~/.credentials file. You can
override the credentials file location by using the --creds option on a plant
CLI execution. Valid section headings include github, github_enterprise, bitbucket,
and gitlab. Below is an example of the expected credentials entry.
[github]
username=your-gh-username
token=your-gh-tokenAuditree plant is a simple CLI that performs the function of adding evidence
to an evidence locker. As such, it has two execution modes; a push-remote mode
and a dry-run mode. Both modes will clone a git repository and place it into the
$TMPDIR/plant folder. Both modes will also provide handy progress output as
plant processes the new evidence. However, push-remote will push the changes
to the remote repository before removing the locally cloned copy whereas dry-run
will not. When provided an absolute path to a local git repository using the
--repo-path option, plant will perform its plant-like duties as described
on the specified local git repository. This can come in handy when looking to
chain your plant execution after a successful run of the compliance automation
fetchers and checks.
As most CLIs, Auditree plant comes with a help facility.
plant -hplant push-remote -hplant dry-run -hUse the push-remote mode when you want your changes to be applied to the remote
evidence locker. You can provide as many evidence path/evidence detail
key/value pairs as you need as part of the --config or as contents of your
--config-file.
plant push-remote https://github.com/org-foo/repo-bar --config '{"/absolute/path/to/my/evidence.ext":{"category":"foo"}}'plant push-remote https://github.com/org-foo/repo-bar --config-file ./path/to/my/config_file.jsonplant push-remote https://github.com/org-foo/repo-bar --repo-path $TMPDIR"compliance" --config-file ./path/to/my/config_file.jsonUse the dry-run mode when you don't want your changes to be applied to the remote
evidence locker and are just interested in seeing what effect the execution will have
on your evidence locker before you commit to pushing your changes to the remote repository.
You can provide as many evidence path/evidence detail key/value pairs as you
need as part of the --config or as contents of your --config-file.
plant dry-run https://github.com/org-foo/repo-bar --config '{"/absolute/path/to/my/evidence.ext":{"category":"foo"}}'plant dry-run https://github.com/org-foo/repo-bar --config-file ./path/to/my/config_file.jsonplant dry-run https://github.com/org-foo/repo-bar --repo-path $TMPDIR"compliance" --config-file ./path/to/my/config_file.json