Metadata API: Consider if Metadata class should contain role name
See original GitHub issueI’m not sure if this is worth the trouble, writing it out anyway…
Description of issue or feature request:
I’ve been looking at our data structures lately, trying to improve their usability… and one theme that comes up is that objects should include their identifier if they have one – the json file format does not do this because it would be wasteful in a wire format but the same does not apply to python objects. There’s a PR for Key already but I think the same logic applies to Metadata itself: Our Metadata objects always have a role name that is available when the Metadata is constructed, the name is immutable during lifetime of the object and often needed with the Metadata object (e.g. verify_delegate(), writing to file)
Quick estimates of what this means to API:
Metadata.__init__()
: Add argumentrole_name: str
Metadata.from_bytes()
: Add argumentrole_name: str
Metadata.from_dict()
: Add argumentrole_name: str
Metadata.from_file()
: No change – the role name can be deciphered from file name. Alternatively the argument could be split to two (to match to_file() below): directory and role nameMetadata.to_dict()
: No changeMetadata.to_file()
: Hmm… not sure how to do this in a nice way: there’s three components to the path: directory, basename and extension. Maybe the argument should be just the directory, the basename is then the role name and extension should be a class variable of Serializer?verify_delegate()
: (once it exists) remove argument role_name – this is included in metadata already
Issue Analytics
- State:
- Created 2 years ago
- Reactions:2
- Comments:7 (7 by maintainers)
Top GitHub Comments
https://github.com/theupdateframework/tuf/commit/20662aa83bc64fed5a7ccc78a21d360883cb078b
Copying comment from the commit:
So this has some links to the other ongoing discussions… let’s keep it open: maybe you or someone else has better ideas than I did
So I’ve done a rough conversion… and I’m not convinced:
Conclusion: Considered adding role name to Metadata: suggestion is to not implement it at this time.