npmデータ主体アクセス要求
npmのデータ保護責任者からの回答は、GDPRに基づく個人データ開示請求(DSAR)への対応遅延と、依存関係解決システムの異常な動作、そしてJavaScriptエコシステム全体を監視する意図的なデータ収集の実態を皮肉交じりに明らかにしている。
キーポイント
DSAR対応の失敗と技術的欠陥
法定応答期限(30日)を超過し、依存関係解決システムがユーザーIDの特定に47日間費やし、GitHubのSSOプロバイダーとの循環参照エラーが発生したため、人間が介入するまで放置された。
膨大な個人データの収集範囲
氏名やIPアドレスに加え、npm installの履歴、node_modulesの完全な依存関係ツリー、コンテンツハッシュなど、ローカル環境の詳細まで収集されており、その量は412ページに及ぶ。
エコシステム監視と法的グレーゾーン
サービス提供やセキュリティに加え、「JavaScriptエコシステムの完全なトポロジーを理解する正当な関心」を理由に、実質的な監視に近いデータ収集を行っていることを認めている。
データ流通の複雑さと不可視性
Microsoft、Cloudflare、SvalbardのArctic Code Vault、無数のCI/CDパイプライン、SBOMなど、データは多様な組織とシステムに分散・複製されており、その全体像を把握することは不可能に近い。
データ保持期間と削除ポリシー
アカウントデータは削除後7年間、パッケージデータは原則として永久に保持され、行為データは24ヶ月後にコールドストレージへ移行される。
ユーザー権限と自動判断システム
アクセス、修正、削除、ポータビリティの権利が認められている一方、信頼スコアやバスの因子評価に基づく自動判断システムが存在する。
国際データ移転と回答期間
データは米国サーバーおよび47カ国のCDNエッジノードに分散しており、依存関係グラフの照会が必要な場合、回答までに最大94日(30+47日)を要する。
影響分析・編集コメントを表示
影響分析
この記事は、npmというインフラストラクチャの核心に潜むプライバシーリスクと、巨大テック企業(Microsoft/GitHub)によるデータ収集の規模を浮き彫りにしました。技術的な皮肉が含まれていますが、開発者の行動データが「監視」の域を超えていないかという法的・倫理的議論を喚起する重要な事例です。
編集コメント
技術的な皮肉が効いたこの回答は、npmのデータ収集実態が「インフラ」の名の下に過度なプライバシー侵害を許容している可能性を示唆しており、開発者間の意識改革が必要であることを示しています。
差出人: データ保護責任者、npm, Inc. (GitHub, Inc.の子会社、Microsoft Corporationの子会社)
宛先: [非公開]
日付: 2026年2月26日
件名: データ主体アクセス要求 (参照番号: DSAR-2026-0041573)
回答期限: 超過 (法定: 30日)
データ主体 様
一般データ保護規則 (EU) 2016/679 (GDPR) 第15条に基づく、当社が保有するあなたの個人データへのアクセス要求をいただき、ありがとうございます。
回答が遅れましたことをお詫び申し上げます。お客様の要求は当初、当社の依存関係解決システムにルーティングされ、ユーザーレジストリとの照合に47日間を要した後、GitHubのSSOプロバイダーとの間で循環参照が発生しました。その後、担当者が手動で対応いたしました。
- 処理される個人データのカテゴリー
本人確認データ: 氏名、メールアドレス、ユーザー名、GitHubハンドル、二要素認証の状態、およびアカウント作成以降に記録された487件のユニークなIPアドレス。
パッケージデータ: buttplugの公開履歴すべて。
行動データ: すべてのnpm install実行記録。
node_modules インベントリ: パッケージインストール中にお客様のローカル環境から収集された、解決済み依存関係ツリー、インストールマニフェスト、およびコンテンツハッシュ。全412ページで、最も量の多いカテゴリーです (付録J参照)。
- 処理の目的
サービス提供: パッケージをお客様の端末に配信するため。
依存関係グラフ構築: あらゆるパッケージ間の関係、ひいてはあらゆる開発者間の関係の完全なグラフを構築・維持するため。ただし、現時点で具体的な用途は定めていません。
セキュリティ: 不正な公開行為を検知するため。当社システムは、午前2時47分の公開を不正行為の疑いとしてフラグ付けしました。
正当な利益: JavaScriptエコシステム全体の構造を理解することに、当社は正当な利益を有します。この活動が監視と区別しがたいものであることは認識しております。
- 個人データの受領者
GitHub, Inc.: 当社の親会社。同社は別個のプライバシーポリシーに基づきお客様のデータを保持しています。同社に対しては別途DSARを提出する必要があります。その後、Microsoftへリダイレクトされることになります。
GitHub Dependabot: buttplugの各バージョン、計147件。
Microsoft Corporation: 当社の親会社の親会社。同社からのDSAR回答は、インストールが必要なMicrosoft Teamsを通じて配信されます。
Cloudflare, Inc.: 当社のCDNプロバイダー。同社は、お客様がこれまでにダウンロードしたすべてのパッケージを観測しています。同社はこれをメタデータとみなしており、個人データとはみなしていません。
npm公開レジストリ: お客様が公開したパッケージ (それらのpackage.jsonを含む)。
GitHub Arctic Code Vault: お客様の公開パッケージは、2020年2月にノルウェー・スバールバル諸島の廃坑内に設置されたアーカイブ用フィルムに保存されました。
不特定多数のCI/CDパイプライン: お客様のパッケージは、自動化されたビルド環境において週に約900回インストールされています。各環境はインストールを記録しています。当社はこれらのログを管理しておらず、また、把握する限り誰も管理していません。
無数のソフトウェア部品表 (SBOM): 大統領令14028に基づき、連邦政府のソフトウェア供給者は全コンポーネントを記載したSBOMの作成が義務付けられています。お客様のパッケージbuttplugも対象となります。
- 保存期間
アカウントデータ: アカウント存続期間、削除後7年間、および物理バックアップ媒体の残存耐用年数。
パッケージデータ: 無期限。npmとエコシステムとの契約上、公開されたパッケージは永続的なものとしています。公開取り消しは技術的に可能ですが、2016年以降は推奨しておりません。
行動データ: 一次データベースに24か月間保存後、コールドストレージに移行されます。コールドストレージでも検索は可能です。
node_modules インベントリ: このデータについては保存方針がありません。収集していたことを認識していなかったためです。
アクセス権: お客様は現在この権利を行使中です。
訂正権: 不正確なデータの修正を要求できます。流出したpackage.jsonファイル内のOSユーザー名を更新してほしい場合は、お知らせください。
消去権 (忘れられる権利): 処理を継続する正当な理由がない場合、個人データの削除を要求できます。当社は正当な理由があると考えています: buttplug。
データポータビリティ権: 構造化され、一般的で機械可読な形式でのデータ提供を要求できます。当社はお客様のデータを2.7 GBのJSONファイルにまとめ、7日間で有効期限が切れる事前署名付きURLからダウンロード可能にしました。
異議申立権: 正当な利益に基づく処理に対して異議を申し立てることができます。グローバルな依存関係グラフの構築に異議がある場合、その旨がグラフ内に記録されます。
- 自動化された意思決定
信頼性スコア: 当社システムは、アカウントの経過年数、公開頻度、二要素認証の状態、および不特定の第三者へのパッケージ所有権一括譲渡の有無に基づき、お客様に100点満点中72の信頼性スコアを付与しました。プラットフォーム平均は64点です。採点方法は非公開です。
バス係数評価: 当社システムは、buttplugが。
- 国際的なデータ移転
米国: 当社サーバーが設置されている場所。この移転は、Safe Harborに代わり、その後Privacy Shieldに代わって制定されたEU-USデータプライバシーフレームワークによってカバーされています。
その他47か国: お客様の公開パッケージはグローバルCDN経由で配布されています。お客様のpackage.jsonをキャッシュしたエッジノードを特定することはできません。
本回答についてご質問がある場合は、データ保護責任者 ([email protected]) までご連絡ください。回答までに30日間を要します。回答に依存関係グラフへの照会が必要な場合は、さらに47日間お時間をいただきます。
敬具
データ保護責任者
npm, Inc.
GitHub, Inc.の子会社
Microsoft Corporationの子会社
添付書類: 付録A: アカウントメタデータ (3ページ) 付録B: 取り下げられたパッケージを含む公開履歴 (7ページ) 付録C: 行動テレメトリ (41ページ) 付録D: 依存関係グラフ (お客様のパッケージのみ) (28ページ) 付録E: buttplugの依存関係グラフ。
添付書類合計: 743ページ 形式: JSON
原文を表示
From: Data Protection Officer, npm, Inc. (a subsidiary of GitHub, Inc., a subsidiary of Microsoft Corporation) To: [REDACTED] Date: 26 February 2026 Re: Data Subject Access Request (Ref: DSAR-2026-0041573) Response deadline: Exceeded (statutory: 30 days)
Dear Data Subject,
Thank you for your request under Article 15 of the General Data Protection Regulation (EU) 2016/679 to access all personal data we hold about you.
We apologize for the delay in responding. Your request was initially routed to our dependency resolution system, which spent 47 days attempting to resolve your identity against our user registry before entering a circular reference with GitHub’s SSO provider. A human has since intervened.
- Categories of Personal Data Processed
Identity data: Name, email address, username, GitHub handle, two-factor authentication status, and 487 unique IP addresses recorded since account creation.
Package data: Full publishing history for buttplug
Behavioral data: Every npm install
node_modules inventory: Resolved dependency trees, install manifests, and content hashes collected from your local environment during package installation. This constitutes the largest category at 412 pages (see Appendix J).
- Purposes of Processing
Service provision: To deliver packages to your machine.
Dependency graph construction: To build and maintain a complete graph of every package’s relationship to every other package, and by extension, every developer’s relationship to every other developer, though we have not yet determined a use for it.
Security: To detect anomalous publishing behavior. Our system flagged your 2:47 AM publish as anomalous.
Legitimate interest: We have a legitimate interest in understanding the full topology of the JavaScript ecosystem. We acknowledge this interest is difficult to distinguish from surveillance.
- Recipients of Personal Data
GitHub, Inc.: Our parent company. They hold your data under a separate privacy policy. You will need to submit a separate DSAR to them. They will redirect you to Microsoft.
GitHub Dependabot: Each of the 147 versions of buttplug
Microsoft Corporation: Our parent company’s parent company. Their response to your DSAR will be delivered via Microsoft Teams, which you will need to install.
Cloudflare, Inc.: Our CDN provider. They have observed every package you have ever downloaded. They consider this metadata, not personal data.
The npm public registry: Your published packages, including their package.json
GitHub Arctic Code Vault: Your published packages were frozen in February 2020 on archival film in a decommissioned coal mine in Svalbard, Norway.
An unspecified number of CI/CD pipelines: Your packages are installed approximately 900 times per week in automated build environments. Each of these environments logs the installation. We do not control these logs, nor, as far as we can determine, does anyone else.
An unknown number of software bills of materials: Under Executive Order 14028, federal software suppliers are required to produce SBOMs listing all components. Your package buttplug
- Retention Periods
Account data: For the lifetime of your account, plus 7 years after deletion, plus the remaining useful life of physical backup media.
Package data: Indefinitely. npm’s contract with the ecosystem is that published packages are permanent. Un-publishing is technically possible but discouraged since 2016.
Behavioral data: 24 months in our primary database, after which it is moved to cold storage, where it remains queryable.
node_modules inventories: We do not have a retention policy for this data because we did not realize we were collecting it.
Right of access: You are exercising this right now.
Right to rectification: You may request correction of inaccurate data. If you would like us to update the OS username in the leaked package.json
Right to erasure: You may request deletion of your personal data where there is no compelling reason for its continued processing. We believe there is a compelling reason: buttplug
Right to data portability: You may request your data in a structured, commonly used, machine-readable format. We have prepared your data as a 2.7 GB JSON file, available for download at a pre-signed URL that expires in 7 days.
Right to object: You may object to processing based on legitimate interest. If you object to our construction of the global dependency graph, your objection will be noted in the graph.
- Automated Decision-Making
Trust score: Our system has assigned you a trust score of 72 out of 100, based on account age, publishing frequency, two-factor authentication status, and whether you have ever mass-transferred package ownership to a stranger. The platform average is 64. The scoring methodology is proprietary.
Bus factor assessment: Our system has determined that buttplug
- International Transfers
United States: Where our servers are located. This transfer is covered by the EU-US Data Privacy Framework, which replaced Privacy Shield, which replaced Safe Harbor.
47 additional countries: Your published packages are distributed via a global CDN. We cannot enumerate which edge nodes have cached your package.json
If you have questions about this response, please contact our Data Protection Officer at [email protected]. Please allow 30 days for a reply. If our response requires querying the dependency graph, please allow 47 additional days.
Yours faithfully,
Data Protection Officer npm, Inc. A subsidiary of GitHub, Inc. A subsidiary of Microsoft Corporation
Enclosures: Appendix A: Account metadata (3 pages) Appendix B: Publishing history including retracted packages (7 pages) Appendix C: Behavioral telemetry (41 pages) Appendix D: Dependency graph, your packages only (28 pages) Appendix E: Dependency graph for buttplug
Total enclosures: 743 pages Format: JSON
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み