RFE: expose delegated metadata to client application
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 32/100
Línea de trabajo
Empieza leyendo el flujo existente de get_targetinfo() de ngclient y el documento de diseño enlazado, especialmente la propuesta Metadata role as search index. Traza cómo se buscan los metadatos delegados y determina el comportamiento esperado para las rutas de destino sin coincidencias y las delegaciones no terminantes. Se considera terminado cuando el cliente puede exponer el objeto Targets relevante y hay cobertura para los casos límite acordados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
EDIT: The overall issue is described in detail in https://docs.google.com/document/d/1rWHAM2qCUtnjWD4lOrGWE2EIDLoA7eSy4-jB66Wgh0o . The suggestion here is roughly the Metadata role (file) as search index solution in the document.
Assume a setup like this (this is what we expect a community artifact repository like PyPI to look like if it uses developer signatures with TUF):
- a specific project/product team controls a delegated metadata
- TUF clients want to know details of all of the artifacts in this metadata (to e.g. figure out which versions of an artifact are available)
Currently there is no way for the client application to get the whole metadata content from ngclient. We could provide a call much like get_targetinfo() that instead of the TargetFile would return the Targets object where the target search ended:
def get_targets_metadata(target_path: str) -> Targets
"""returns a Targets object of the metadata where the search for target_path terminated"""
This is not applicable to every TUF repo:
- it requires a "contract" between repository and client: client has to know of a
target_paththat is delegated to the correct metadata -- in the pypi example it could be e.g. the PyPI project name - this is only useful if all "related" target files are listed in the same metadata
But with those assumptions the client can now easily get not just the list of target files it's interested in but also any custom metadata embedded in the targets metadata.
I've not thought through all the cases (what happens if there is no targetpath match? what if there is no terminating delegation?) but I think this is something we could consider implementing
- Lenguaje dominante
- Python
- Estrellas
- 1.7k
- Forks
- 304
- Merge medio
- 1 d 2 h
- PR fusionados (30 d)
- 17
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de theupdateframework/python-tuf
-
switch to main branch? Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
theupdateframework/python-tuf#3001 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
theupdateframework/python-tuf#2979 · 1 comentario ·
-
Use Immutable Releases Abiertoenhancement github_actions
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
theupdateframework/python-tuf#2920 · 1 comentario · 2 reacciones ·
-
Investigate/test fetcher retries Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
theupdateframework/python-tuf#2842 · 3 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
theupdateframework/python-tuf#2836 · 7 comentarios ·
Todos los issues de theupdateframework/python-tuf
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
-
hcocena Abiertopolicies-accepted pre-review precheck-passed
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Bioconductor/BiocContributions#214 · 5 comentarios ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
TencentCloud/Octop#1169 · 1 comentario ·
-
[开源推荐] 在老板拷问你之前,先让 AI 灵魂拷问你 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
521xueweihan/HelloGitHub#3778 ·
-
The version checker's trailing attribute region has no control for a less-than inside a quoted value Abiertoarea: dashboard area: tests bug perceived difficulty: 2 python
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Nitjsefnie-Harness-Commons/daedalus#1105 · 1 comentario ·