RFE: expose delegated metadata to client application
Maintainer antworten meist innerhalb von 10 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 32/100
Rechercherichtung
Beginne damit, den bestehenden get_targetinfo()-Ablauf von ngclient und das verknüpfte Designdokument zu lesen, insbesondere den Vorschlag „Metadata role as search index“. Verfolge, wie delegierte Metadaten durchsucht werden, und bestimme das erwartete Verhalten für nicht übereinstimmende Zielpfade und nicht terminierende Delegierungen. Als erledigt gilt die Aufgabe, wenn der Client das relevante Targets-Objekt bereitstellen kann und die vereinbarten Randfälle abgedeckt sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- Python
- Sterne
- 1.7k
- Forks
- 304
- Ø Merge
- 9 Std. 25 Min.
- Gemergte PRs (30 T.)
- 14
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus theupdateframework/python-tuf
-
switch to main branch?Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
theupdateframework/python-tuf#3001 ·
Maintainer antworten meist innerhalb von 10 Tagen
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
theupdateframework/python-tuf#2979 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 10 Tagen
-
Use Immutable ReleasesOffenenhancement github_actions
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
theupdateframework/python-tuf#2920 · 1 Kommentar · 2 Reaktionen ·
Maintainer antworten meist innerhalb von 10 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
theupdateframework/python-tuf#2842 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 10 Tagen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
theupdateframework/python-tuf#2836 · 7 Kommentare ·
Maintainer antworten meist innerhalb von 10 Tagen
Alle Issues in theupdateframework/python-tuf
Ähnliche Issues
-
pydanty:is-working
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
pydantic/pydantic-ai#8843 ·
Maintainer antworten meist innerhalb von 1 Tag
-
breaking change enhancement server
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
sktime/sktime#11310 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 1 Tag