blob: cee3d46232b3a30c65c11cfac9d7309784b506af [file] [log] [blame] [view]
# Wildcard Audit Entries
Wildcard audits are a special type of audit intended as a convenience mechanism
for organizations that
[self-certify](curating-your-audit-set.md#self-certification) their own crates.
Using this feature, an organization can publish an audit which applies to all
versions published by a given account, avoiding the need to add a new entry to
`audits.toml` for each new version of the package.
Wildcard audits live at the top of `audits.toml` and look like this:
```
[[wildcard-audits.foo]]
who = ...
criteria = ...
user-id = ...
start = ...
end = ...
renew = ...
notes = ...
```
Whereas a regular audit certifies that the individual has verified that the
crate contents meet the criteria, a wildcard audit certifies that _any_ version
of the crate published by the given account will meet the criteria. In effect,
the author is vouching for the integrity of the entire release process, i.e.
that releases are always cut from a branch for which every change has been
approved by a trusted individual who will enforce the criteria.
Wildcard audits can be added with `cargo vet certify` using the `--wildcard`
option. By default, this sets the `end` date to one year in the future. Once
added (whether manually or by `cargo vet certify --wildcard`), the `end` date
can be updated to one year in the future using the `cargo vet renew CRATE`
command. `cargo vet renew --expiring` can be used to automatically update _all_
audits which would expire in the next six weeks or have already expired, and
don't have `renew = false` specified.
## `user-id`
Specifies the crates.io user-id of the user who's published versions should be
audited. This ID is unfortunately not exposed on the crates.io website, but will
be filled based on username if using the `cargo vet certify --wildcard $USER`
command. This field is required.
## `start`
Earliest day of publication which should be considered certified by the wildcard
audit. Crates published by the user before this date will not be considered as
certified. This field is required.
Note that publication dates use UTC rather than local time.
## `end`
Latest day of publication which should be considered certified by the wildcard
audit. Crates published by the user after this date will not be considered as
certified. This date may be at most 1 year in the future. This field is
required.
Note that publication dates use UTC rather than local time.
## `renew`
Specifies whether `cargo vet check` should suggest renewal for this audit if the
`end` date is going to expire within the next six weeks (or has already
expired), and whether `cargo vet renew --expiring` should renew this audit.
## `criteria`
Specifies the relevant criteria for this wildcard audit. This field is required.
## `who`
A string identifying the auditor. When invoking `cargo vet certify`, the
value is auto-populated from the git config.
See the documentation for [Audit Entries](./audit-entries.md#who) for more
details.
Note that while the `who` user may be different than crates.io user specified by
`user-id`, they should generally either be the same person, or have a close
relationship (e.g. a team lead certifying a shared publishing account).
## `notes`
An optional free-form string containing any information the auditor may wish to
record.