Repository navigation
Generalise fetching infrastructure - #275
Conversation
Merging this PR will not alter performance1 warning
Comparing |
|
Can you explain some more of your thinking behind this? I feel like the fetching stuff here is a little unclear about whether it wants to be a framework or a library. Do the intermediates and CRLite upstreams actually share a manifest type definition, or are you chosing to reuse their definition for your intermediates setup? Would it make sense to attach |
Mainly I want the networking details to be as reusable as possible. If intermediate preloading and crlite filters are doing something drastically different to fetch their data, that would feel very odd.
Depends what you mean by upstreams. The source data are different (crlite has a manifest-like JSON structure as part of the firefox settings service, but obviously is not a stable format and is re-cast into the manifest by the mirroring step; intermediates construct a manifest based on the contents of CCADB after sharding the intermediate certificates to limit the number of files needing to be downloaded.) If you mean the upstreams as in mirror contents, yes, these already both use the same manifest format: https://upki.rustls.dev/intermediates/manifest.json
It's a separate concern. Intermediates probably would have |
65a0b04 to
d7a749e
Compare
Okay, I think that makes sense.
Right. Maybe we can add some comments to the
Fair enough. |
No functional change intended.
`revocation` re-exports both, so `upki::revocation::Manifest` keeps working for existing users.
This eliminates revocation-specific knowledge in `Plan::construct()`: that `.filter` and `.delta` are the files it may delete when no manifest mentions them.
Introduce a `PostProcess` trait that names a derived file and builds its contents. `revocation` supplies `RevocationIndexer`, so `fetch` no longer depends on anything revocation-specific.
d7a749e to
d88181b
Compare
This splits off some parts of #103 -- I've processed the prior comments made there.