sigstore / sigstore-python

A Sigstore client written in Python
https://pypi.org/p/sigstore
Other
233 stars 49 forks source link

Externalize API or library for writing/parsing Sigstore bundles #1132

Open di opened 2 months ago

di commented 2 months ago

Description

Currently this project publicly provides models.Bundle which supports to_json and from_json, but does not expose a lower-level API to create/modify specific fields of the Sigstore bundle, read/write the bundle to/from a file, etc. This makes it challenging to use the Sigstore bundle format from within other Python libraries/applications, including use cases that include non-signing bundle operations, PKI based signing, etc.

Desired outcome

Either:

(cc @haydentherapper @mihaimaruseac @woodruffw)

woodruffw commented 2 months ago

I'm a big fan of this idea! My personal preference is for option 2: IMO it'd be ideal to have this in a sigstore-models (or similar) library that both sigstore-python and anything else that needs direct model access at the API level can use.

Having it be in a separate library also aligns closely with #1049 -- a "pure" models API could be done with just pydantic, which would both make the models API more Pythonic and eliminate a complexifying dependency (betterproto) of ours.