Skip to content

Provenance: how to record version information about the builder #319

Open
@MarkLodato

Description

@MarkLodato

In general, how should a builder record information about its own version in the provenance?

From @laurentsimon on in-toto/in-toto-golang#159 (with edits from me):

The provenance builder field only contains a single id, but it would be beneficial to add a version and digest as well.

An alternative would be to use ID=theID:version@hash. I don't think this is a good approach because it treats the builder differently from the rest of the provenance information (invocation.configSource contains a digest, for example)

One may ask why we need a version if we have a hash. Versions are useful during verification of the provenance: based on a the version, the verifier can adjust its logic/verification. Hashes don't allow to do this easily.

Maybe I'm misunderstanding the purpose of provenance.builder, and the intention may be to put the data I'm after inside invocation.configSource? (which does not contain a version field either).

Note: my use case is a build using a GitHub action on GitHub. The builder is the action (which has a version and a hash).

cc @asraa

Metadata

Metadata

Assignees

Labels

provenanceApplies to SLSA provenance specspec-changeModification to the spec (requirements, schema, etc.)

Type

No type

Projects

Status

🏗 In progress

Relationships

None yet

Development

No branches or pull requests

Issue actions