Skip to content
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

Why filenames instead of rolenames in snapshot? #144

Open
trishankatdatadog opened this issue Dec 17, 2020 · 7 comments
Open

Why filenames instead of rolenames in snapshot? #144

trishankatdatadog opened this issue Dec 17, 2020 · 7 comments
Labels

Comments

@trishankatdatadog
Copy link
Member

Previously, we used to allow metadata files nested inside directories, which explains the following text in the specification:

   METAFILES is an object whose format is the following:

       { METAPATH : {
             "version" : VERSION,
             ("length" : LENGTH,)
             ("hashes" : HASHES) }
         , ...
       }

   METAPATH is the file path of the metadata on the repository relative to the
   metadata base URL. For snapshot.json, these are top-level targets metadata
   and delegated targets metadata.

However, I don't think we need METAPATH anymore. Instead, all we need is to list valid targets rolenames instead, correct?

@lukpueh
Copy link
Member

lukpueh commented Dec 17, 2020

But that would require the client to have implicit knowledge about the used file tree, name and extension convention on the repository, wouldn't it?

@trishankatdatadog
Copy link
Member Author

But that would require the client to have implicit knowledge about the used file tree, name and extension convention on the repository, wouldn't it?

I think it's fair to assume that it does, no?

@lukpueh
Copy link
Member

lukpueh commented Dec 17, 2020

To some extent yes. Though I'm a bit hesitant in regards to the extension, given that it is usually determined through the metadata format and we are working on a spec change that adds a payloadType, which would allow the client to be oblivious to the format until the metadata is retrieved.

@trishankatdatadog
Copy link
Member Author

To some extent yes. Though I'm a bit hesitant in regards to the extension, given that it is usually determined through the metadata format and we are working on a spec change that adds a payloadType, which would allow the client to be oblivious to the format until the metadata is retrieved.

I haven't been following the signing-spec closely, but do we expect a repository to host the same metadata in different data transport formats?

@trishankatdatadog
Copy link
Member Author

Also, in Uptane, the notion of files is altogether problematic, and as much as we can avoid details of filesystems, the better.

@lukpueh
Copy link
Member

lukpueh commented Dec 17, 2020

... do we expect a repository to host the same metadata in different data transport formats?

Probably not. It's just something to think through. Should the client provide a setting for the "role name to metadata filename" conversion? Or should it be inferred from the root metadata payload type? Etc...

Btw. we don't only use METAPATH in snapshot but also in timestamp, but that probably doesn't change anything about the argument. Just something to keep in mind.

Also, in Uptane, the notion of files is altogether problematic, and as much as we can avoid details of filesystems, the better.

That makes sense, although that could also be seen as argument for something more generic like URIs, but not necessarily less specific?

@jku
Copy link
Member

jku commented Jul 12, 2021

After implementing both client and some repo side tools, I still ask the question in the title... Even though all my work has been completely based on normal files, I've never had any benefit from the meta keys being filenames. Instead I have had to add code like filename = f"{role}.{ext}" in places that logically should not know about the specific file format, let alone the file extension that is used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants