theupdateframework / theupdateframework/python-tuf
ngclient feature: Add option to only update metadata if needed
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.7k
- Forks
- 304
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 17
Description
This is not full thought out but I'm filing so it's not forgotten.
https://docs.google.com/document/d/1QWBvpwYxOy9njAmd8vpizNQpPti9rd5ugVhji0r3T4c
Sigstore client wants to use TUF to download files but wants to avoid the two mandatory requests (root N+1, timestamp) on startup if it's not necessary. This seems to be a totally valid feature request: if this is feasible we could offer that as an option.
The WIP sigstore client checks the timestamp expiry before creating an Updater: if timestamp is not expired, the client then decides update is not needed. There could be some issues with this:
- timestamp metadata validity is not checked
- cached target file validity is not checked
- root expiry is not checked
these may be partly theoretical worries but it still feels like a hack...
Maybe it is possible to
- offer a (non-spec-compliant) Updater option that verifies
- that metadata is valid
- that targets are verified by the metadata
- without hitting the network if possible
- while still keeping updater implementation readable
?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked design document and the ngclient Updater entry point. Determine how an optional metadata-only update path could validate metadata, target verification, and root expiry without network requests when possible. Done means the behavior and non-spec-compliant tradeoffs are clearly defined and covered by appropriate tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100