blob: ef7acc9198d321d641039c7254e1569ebf54fa02 [file] [log] [blame] [view]
# Recording Audits
Audits of your project's dependencies performed by you or your teammates are
recorded in `audits.toml`. Note that these dependencies may have their own
`audits.toml` files if they also happen to use `cargo vet`, but these have no
effect on your project unless you explicitly import them in `config.toml`.
## `audits.toml`
Listing a crate in `audits.toml` means that the you've inspected it and
determined that it meets the specified criteria.
Each crate can have one or more audit entries, which support various fields.
Specifying a `version` means that the owner has audited that version in its
entirety. Specifying a `delta` means that the owner has audited the diff between
the two versions, and determined that the changes preserve the relevant
properties.
If, in the course of your auditing, you find a crate that does _not_ meet the
criteria, you can note this as well with `violation`.
A sample `audits.toml` looks like this:
```
[criteria]
...
[[audits.bar]]
version = "1.2.3"
who = "Alice Foo <[email protected]>"
criteria = "safe-to-deploy"
[[audits.bar]]
delta = "1.2.3 -> 1.2.4"
who = "Bob Bar <[email protected]>""
criteria = "safe-to-deploy"
[[audits.bar]]
version = "2.1.3"
who = "Alice Foo <[email protected]>"
criteria = "safe-to-deploy"
[[audits.bar]]
delta = "2.1.3 -> 2.1.1"
who = "Alice Foo <[email protected]>"
criteria = "safe-to-deploy"
[[audits.baz]]
version = "0.2"
who = "Alice Foo <[email protected]>"
criteria = "safe-to-run"
[[audits.foo]]
version = "0.2.1 -> 0.3.1"
who = "Bob Bar <[email protected]>""
criteria = "safe-to-deploy"
[[audits.malicious_crate]]
violation = "*"
who = "Bob Bar <[email protected]>""
criteria = "safe-to-run"
[[audits.partially_vulnerable_crate]]
violation = ">=2.0, <2.3"
who = "Bob Bar <[email protected]>""
criteria = "safe-to-deploy"
```
Exactly one of `version`, `delta`, or `violation` must be specified for each
entry.
The expectation is that this file should never be pruned unless a
previously-recorded entry is determined to have been erroneous. Even if the
owner no longer uses the specified crates, the audit records can still prove
useful to others in the ecosystem.
## The `exemptions` table in `config.toml`
This table enumerates the dependencies that have not been audited, but which the
project is nonetheless using. The structure is generally the same as the
`audits` table, with a [few differences](config.md#the-exemptions-table).