-
Notifications
You must be signed in to change notification settings - Fork 4
Milestone 1: minimal TUF #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
A few possible changes still:
Both of these could be future enhancements waiting for library improvements as well |
|
Do you want us to make a high-level review on this @jku or do you want us to wait until you mark it as a non-draft pr? |
|
Either way works... I've been moving files around but I think it looks ok now. I think I'll have a final look by tomorrow, and list some follow-up work and then mark if ready. But I don't mind getting comments now. |
I will try this (by using some ngclient internal interfaces), and see how it works... I will keep this a draft until I see how that works and decide if I implement it in this PR or not EDIT: this is not any less code but I think it's definitely the right path:
|
Added a design doc for "tuf-minimal" design, matching https://github.com/jku/playground-tuf-minimal . How design docs are stored should probably change (maybe a separate directory for the repository designs matching the different milestones) but currently everything is dumped in the same docs dir. Added a client implementation into tuf/client/: it's 90% same as baseline/client/. My current thinking is that we can leave baseline as is and just update the tuf/ implementation as we progress through the milestones. Modified the baseline files to better match the current tuf design. Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
Separate milestone designs from other docs. Rename the main source code directory: I imagine "playground/" is where the current version of playground source will live, whether it is just tuf or something more. Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
Remove index.json from the repository design: instead make the client parse the targetpaths included in targets metadata. This is advantageous because * the repository is now simpler (no need to keep index.json and targetpaths in sync) * client no longer needs to do an additional get_targetinfo() and download_target() to find the index file The downside is that until theupdateframework/python-tuf#1995 is fixed, the client has to access ngclient internals. Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
I think this is ready. That said, I welcome opinions on high level decisions as well as the details. |
|
It would probably be good if the main README documented the current state or milestone at a high level: so people who come to the project for the first time could see both what the state is and what the goal is... |
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
|
Also, something we could already have at milestone 1: hashed bin delegations. This would give a notion of scalability to this setup. However, I think I'll rather wait for
|
|
Given that we're specifically focused on modelling community content repositories, which tend to be large, including hashed bin delegation early is a good idea. |
|
This is great! I haven't looked at What is the plan for The other question concerns the current set of private keys used to sign the metadata. IIUC, these are on your local machine, @jku? Should we share them among administrators on this repo so that they can update any metadata? At least the root key? |
I fear devil is in the details though: e.g. the current target listing hack depends on knowing the specific targets metadata name. This will break the moment we have any delegations. Likewise I would not be surprised if some unseen requirement means we actually need index.json-like files in the future anyway. So changes are likely to happen even if the core client likely looks roughly the same. Still, no need to create branches until we realize something really should have been in milestone X but wasn't there.
Many ways to handle this -- you could just make a PR to the playground-tuf-minimal repository that adds your root key and developer key, and I could sign that change... I can give pointers on easiest ways to do this if this sounds good.
This now works in repository-editor-for-tuf (using unreleased python-tuf) so I want to add a succinct delegation here but I think not in this milestone: it requires solving the target listing issue mentioned above |
Signed-off-by: Jussi Kukkonen <jku@goto.fi>
Signed-off-by: Jussi Kukkonen <jku@goto.fi>
|
I think I will merge this now: let's handle remaining complaints in new issues |
Uh oh!
There was an error while loading. Please reload this page.