メインコンテンツまでスキップ

Takumi Guard を Yarn v1 で利用する際の挙動の改善

· 約3分
Deividas Turskis
Software Engineer @ GMO Flatt Security Inc.

Yarn クライアント利用時に、Takumi Guard を迂回した通信が発生しにくいよう、Yarn クライアントに対する挙動を改善しました。この変更は透過的ですが、Yarn v1 ユーザー・新規パッケージの追加シナリオでのみ、ロックファイル(yarn.lock)にTakumi Guard のレジストリ URL が記録されるようになります。

変更内容

Yarn クライアントのみを対象に、ロックファイル内に対するメタデータ書き換えの挙動を変更しました。具体的には、メタデータ配信時に、tarball dist URLs を Takumi Guard レジストリの URL に書き換えるように変更されました。

変更背景

Yarn v1 は tarball dist URLs を lockfile 内に含める挙動を取り、Yarn v2+ クライアントは、レジストリから得られるパッケージメタデータファイル内の tarball dist URLs とレジストリURLに乖離がある場合に lockfile 内に __archiveUrl フィールドを追加します。この挙動により、yarn 実行時にロックファイルのみが参照されるシナリオで、yarn クライアントが Takumi Guard を迂回する挙動をとる場合がございます。

変更の影響範囲

npm・pnpm・Bun 等への影響

影響はありません。

Yarn v1 への影響: 新規パッケージの追加・更新時に有

yarn.lock のエントリに、従来のアップストリームレジストリ URL ではなく Takumi Guard のレジストリ URL が記録されるようになります。 これは他パッケージマネージャの利用時には起こらない挙動ですが、Yarn v1 においてのみ発生します。これはロックファイル経由の依存解決シナリオで、安定してブロック対象パッケージのインストールを防止するために必要な変更でございますので、ご理解いただけますと幸いです。

Yarn v2–v4(Berry)への影響: 無

既存の yarn.lock 内の __archiveUrl フィールドが、次回のパッケージ更新時に削除されるようになります。この点以外には、既知の影響はありません。