パッケージのブロック
Takumi Guard が悪性と判定したパッケージをリクエストすると、レジストリは 403 Forbidden エラーを返します。これはすべての認証ティアに適用されます。ブロックは常に有効です。
npm ERR! 403 Forbidden - GET https://npm.flatt.tech/test-blocked-pkg/-/test-blocked-pkg-1.0.0.tgz
npm はインストール失敗として報告します。パッケージの tarball はダウンロードされません。
ブロックリストのチェックはリクエストされた特定のバージョンに対して適用されます。後続のバージョンがクリーンであれば、そのバージョンを指定してインストールできます。
リクエストの流れ
Takumi Guard は、npm クライアントと公開 npm レジストリの間に位置する透過プロキシとして動作します。npm クライアントが npm install を実行すると、リクエストはメタデータの取得と tarball のダウンロードの 2 段階で処理されます。
tarball 自体は Takumi Guard を経由せず、クライアントが公開 npm レジストリから直接ダウンロードします。これにより、プロキシの帯域消費を抑えつつ、ブロックチェックを確実に適用してい ます。
tarball URL の書き換え
メタデータ内の tarball ダウンロード URL は Takumi Guard 経由に書き換えられます。これにより、ロックファイルに registry.npmjs.org の URL が直接記載されていても、以降のインストールは Takumi Guard を通るようになります。
この書き換えに伴い、ロックファイルに tarball URL を記録するパッケージマネージャー(npm v11.15.0 以降および yarn v1)では、新規追加・更新されたエントリに Takumi Guard のレジストリ URL(npm.flatt.tech)が記録されます。
パッケージマネージャーとの互換性
Takumi Guard は標準的な npm レジストリ API に準拠しているため、npm・pnpm・yarn のいずれからも利用できます。切り替え時に既存のロックファイルを変更する必要はありません。パッケージマネージャーはレジストリ URL ではなくインテグリティハッシュでパッケージを検証するため、レジストリの切り替えによる整合性の問題は発生しません。なお、npm v11.15.0 以降および yarn v1 では、新規追加・更新されたロックファイルのエントリに Takumi Guard のレジストリ URL が記録されます。詳細は上記の tarball URL の書き換えを参照してください。