ngclient: support `StorageBackendInterface`?
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 30/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- backend, distributed-systems, security
Piste de recherche
Commencez par tuf/ngclient/updater.py autour des lignes 293-312 et comparez ses E/S persistantes du dépôt avec la StorageBackendInterface existante utilisée par les API de métadonnées de bas niveau. Déterminez la portée de l’API et de l’intégration nécessaire pour ngclient, puis vérifiez que les opérations du dépôt peuvent utiliser un stockage non local dans des déploiements distribués.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description of issue or feature request:
Right now, tuf.ngclient is heavily tied to local system I/O: it assumes a metadata directory on disk that can be read/written. For example:
This is problematic in distributed worker setups like Warehouse (PyPI), where each worker has its own container/entire VM and thus can't easily share on-disk TUF repos. In particular, this causes both reliability and security concerns:
- Reliability: an unfortunate corruption in a single worker's TUF repo results in a hard-to-diagnose flaky worker, since each worker has its own copy of the repo.
- Security: each worker's TUF repo is independently stored on a (machine-local) disk, making them harder to audit.
This problem was noted a few years back, before tuf.ngclient was created: https://github.com/theupdateframework/python-tuf/issues/1009. The solution then was to add a filesystem abstraction to the tuf.metadata APIs, which was done via https://github.com/secure-systems-lab/securesystemslib/pull/232 and https://github.com/theupdateframework/python-tuf/issues/1009. However, this abstraction wasn't added to the ngclient APIs, only to the low-level metadata ones.
Current behavior:
tuf.ngclient currently assumes that it can perform persistent local I/O for its repository.
Expected behavior:
tuf.ngclient should support an I/O abstraction (such as the pre-existing StorageBackendInterface, if suitable) for persistent repo operations, enabling use in distributed deployments.
- Langage dominant
- Python
- Étoiles
- 1.7k
- Forks
- 304
- Merge moyen
- 9 h 25 min
- PR mergées (30 j)
- 14
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de theupdateframework/python-tuf
-
switch to main branch?Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
theupdateframework/python-tuf#3001 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
theupdateframework/python-tuf#2979 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Use Immutable ReleasesOuverteenhancement github_actions
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
theupdateframework/python-tuf#2920 · 1 commentaire · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Investigate/test fetcher retriesOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
theupdateframework/python-tuf#2842 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
theupdateframework/python-tuf#2836 · 7 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de theupdateframework/python-tuf
Issues similaires
-
Claiming namespace `apoint`Ouvertenamespace operations
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
EclipseFdn/open-vsx.org#13573 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
collective/icalendar#1854 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
rancher/rancher-ai-agent#412 ·
Les mainteneurs répondent en général sous 6 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
TUDelftGeodesy/DePSI#134 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
HenriquesLab/rxiv-maker#335 ·