ngclient: support `StorageBackendInterface`?
メンテナーはふだん 10 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 30/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- python
調査の方向性
tuf/ngclient/updater.py の293-312行付近から始め、永続的なリポジトリI/Oと、低レベルのメタデータAPIで既に使用されている StorageBackendInterface を比較します。ngclient に必要なAPIおよび統合の範囲を特定し、分散デプロイメントでリポジトリ操作が非ローカルストレージを使用できることを確認します。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Python
- スター
- 1.7k
- フォーク
- 304
- 平均マージ
- 9時間 25分
- マージ済み PR(30日)
- 14
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
theupdateframework/python-tuf のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
theupdateframework/python-tuf#3001 ·
メンテナーはふだん 10 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
theupdateframework/python-tuf#2979 · コメント 1 件 ·
メンテナーはふだん 10 日以内に返信
-
enhancement github_actions
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
theupdateframework/python-tuf#2920 · コメント 1 件 · リアクション 2 件 ·
メンテナーはふだん 10 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
theupdateframework/python-tuf#2842 · コメント 3 件 ·
メンテナーはふだん 10 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
theupdateframework/python-tuf#2836 · コメント 7 件 ·
メンテナーはふだん 10 日以内に返信
theupdateframework/python-tuf の issue をすべて見る
似ている issue
-
pydanty:is-working
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
pydantic/pydantic-ai#8843 ·
メンテナーはふだん 1 日以内に返信
-
breaking change enhancement server
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
sktime/sktime#11310 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信