目录
隐私问题和解答
目录
本通知描述了npm, Inc.(简称npm)如何收集和使用您的数据。
什么是最重要的?
这取决于您的个人情况,因此您应该继续阅读并自行决定。但至少,每个 npm 用户都应该了解
npm 公共注册表用于将软件提供给每个人在线使用。
但是:软件来自人,并能反映出我们的一些信息。
所以:仔细考虑要发布哪些软件包、在这些软件包中放置哪些数据以及其他人可能会对这些数据做什么。
当您创建帐户时,某些联系信息会在 npm 平台上公开显示。当您上传软件包时,您的姓名和联系信息可能会与该软件包关联。
如果您遇到问题,请打开支持工单。
npm 如何收集我的数据?
npm 收集您的数据
-
当您使用npm 命令、npx 命令或其他程序访问npm 公共注册表、npm 托管的企业注册表、私有软件包(例如,当您发布软件包时)和用于帐户和权限管理等功能的 API 时
-
当您浏览 npm 网站npmjs.com 时
-
当您使用 npm 命令或网站创建 npm 帐户、更新帐户和注册 npm 服务时
-
当您向 npm 发送支持、隐私、法律和其他请求时
-
在与现有客户和潜在客户合作并进行研究时
在研究潜在客户时,npm 员工有时会在公开的万维网或付费的商业数据库中搜索。否则,npm 不会从数据经纪商或其他私人服务购买或接收您的数据。
如果您的数据包含在您或其他人上传的软件包中,npm 可能会无意中收集您的数据。
npm 收集了哪些关于我的数据,为什么?
npm 收集您如何使用 npm 软件和注册表的数据
当您使用npm
命令、npx
命令或其他软件处理 npm 公共注册表、npm 托管的企业注册表或私有软件包时,npm 会记录可能与您相关的记录
-
每次运行
npm install
等命令时,一个称为npm-session
的随机唯一标识符 -
项目依赖项的名称和版本及其依赖项等等,这些来自 npm 公共注册表,但不是其他依赖项,如 Git 依赖项
-
您使用的 Node.js、npm 命令和操作系统的版本
-
一个
npm-in-ci
标头,显示该命令是否在持续集成服务器上运行 -
运行
npm install
的软件包的范围,作为npm-scope
标头 -
一个
referrer
标头,显示您运行的命令,并删除了任何文件或目录路径 -
有关用于访问注册表的软件的数据,例如
User-Agent
字符串 -
网络请求数据,例如日期和时间、您的 IP 地址和 URL
npm 使用这些数据来
-
满足您的请求,例如发送您要求的软件包
-
在您运行
npm install
或npm audit
时,向您发送有关可能影响您构建的软件的安全漏洞的警报 -
保持注册表的快速可靠运行
-
调试和开发
npm
命令和其他软件 -
防御注册表免受滥用和技术攻击
-
编译关于软件包使用和流行度的统计数据
-
准备关于开发人员社区趋势的报告
-
改善网站上的搜索结果
-
推荐可能与您的工作相关的软件包
npm 收集您如何使用网站的数据
当您访问www.npmjs.com、docs.npmjs.com 和其他 npm 网站时,npm 会使用 cookie、服务器日志和其他方法来收集有关您访问的页面和时间的数据。npm 还收集有关您使用的软件和计算机的技术信息,例如
-
您的 IP 地址
-
您的首选语言
-
您使用的网页浏览器软件
-
您使用的计算机类型
-
推荐您访问网站的来源
npm 使用您使用网站的方式相关数据来
-
优化网站,使其快速易用
-
诊断和调试技术错误
-
保护网站免受滥用和技术攻击
-
统计包的流行度
-
统计访问者使用的软件和计算机类型
-
统计访问者的搜索和需求,以指导新网站页面和功能的开发
-
决定与谁联系以发布产品公告、服务变更和新功能
npm 收集帐户数据
许多 npm 服务功能需要 npm 帐户。例如,您必须拥有 npm 帐户才能将包发布到 npm 公共注册表。
要创建 npm 帐户,npm 需要一个有效的电子邮件地址和一个可用的用户名。npm 使用此数据为您提供功能访问权限,并在 npm 服务中识别您,无论是在公开场合还是在 npm 内部。
您不必提供您的真实姓名或法律姓名来创建 npm 帐户。您可以使用化名。您也可以创建多个帐户。
如果您注册了一个帐户,npm 将在用户页面上发布供全世界查看的帐户数据 例如这个。npm 还通过 npm 公共注册表发布帐户数据,该注册表可供所有人查看,以及 npm 为他人托管的企业注册表,可以使用诸如 npm owner ls tap 之类的命令找到。
如果您通过网站在社交媒体(如 GitHub 和 Twitter)上提供您的真实姓名或社交媒体姓名,例如当您将这些信息包含在您的个人资料或用户页面中时,npm 将发布这些数据以及电子邮件地址和用户名。您不必向 npm 提供您的真实姓名或任何社交媒体姓名,并且您随时可以通过更新您的用户页面删除这些数据。
npm 使用您的电子邮件来
-
通知您使用您的帐户发布的包
-
重置您的密码并帮助保护您的帐户安全
-
向您发布的包添加元数据
-
在与您的帐户或包相关的特殊情况下与您联系
-
与您联系以处理支持请求
-
与您联系以处理法律请求,例如 DMCA 下架请求和隐私投诉
-
宣布新的 npm 产品、服务变更和功能
-
向您发送有关如何更好地使用免费和付费服务的技巧
-
向您发送有关您可能需要的付费服务的消息
npm 收集包数据
当您使用 npm publish 或其他软件将包发布到 npm 公共注册表、npm 托管的企业注册表或作为私有包时,npm 会收集包的内容,以及 元数据,包括您的帐户数据。其他 npm 用户也可能发布包含有关您的数据的包,例如您为某个包贡献了代码的事实。
npm 使用包中的数据向您以及其他请求这些包的人提供这些包。
-
当您将包发布到 npm 公共注册表或将包从私有包更改为公共包时,npm 会使包和元数据可供所有人在线访问。
-
当您将包发布到 npm 托管的企业注册表或作为私有包时,npm 会根据注册表或私有包帐户的配置,将所有这些数据提供给其他用户。您可能可以配置谁可以访问该包,或者这可能由其他人决定,例如您公司企业注册表的管理员。
使包数据可供其他人访问,使他们能够下载、构建和依赖您的工作。
npm 收集支付卡数据
要注册付费服务,npm 需要您的支付卡数据。npm 本身不会收集或存储足够的用于自行收费的信息。相反,Stripe 代表 npm 收集这些数据,并向 npm 提供安全令牌,使 npm 能够创建收费和订阅。
npm 仅使用您的支付卡数据为 npm 服务收费。
npm 指示 Stripe 仅在您使用付费 npm 服务时存储您的支付卡数据。
npm 收集关于信件的数据
当您向 npm 发送支持请求、法律投诉、隐私查询和业务查询时,npm 会收集有关您的数据。这些数据通常包括您的姓名和电子邮件地址,可能还包括您的公司或其他关联机构。
npm 使用联系数据来
-
回复您
-
汇总有关通信的统计数据
-
培训支持人员和其他 npm 人员
-
审查回复的 npm 人员的绩效
-
保护 npm 免受法律诉讼
npm 收集关于使用 npm.community 的数据
npm 收集有关访问、用户帐户和论坛数据的信息,这些信息来自 npm.community,这是 npm 产品和服务的用户的讨论论坛。npm 使用来自 npm.community 的数据与开发社区合作,并告知有关命令行界面和其他软件的开发决策。
npm 会与他人分享我的数据吗?
npm 与他人共享帐户数据,如 帐户数据部分所述。
npm 与他人共享包数据,如 包数据部分所述。
npm 发布您提交到 npm.community 的帖子和其他内容。
npm 不会将您的信息出售给其他人。但是,npm 使用其他公司提供的服务来提供 npm 服务。npm 使用的服务提供商类型包括
-
使我们能够在我们的网站上提供功能的公司,例如显示您的头像
-
促进内容高效分发的公司
-
托管我们的讨论论坛的云计算平台和服务
-
帮助我们检测垃圾邮件、诈骗、滥用他人或其他违反我们 服务条款 的服务
-
支付处理商
-
帮助我们接收、管理和回复支持请求的平台
-
内部沟通平台
npm 使用 cookie
npm 的网站仅使用严格必要的 cookie 来提供、优化和保护网站。例如,我们使用它们来保持您的登录状态、记住您的偏好、出于安全目的验证您的设备、分析您对服务的用途、编译统计报告以及为 npm 的未来开发提供信息。该网站使用内部 cookie 进行分析目的,不使用任何第三方分析或服务提供商。
通过使用该网站,您同意我们可以将这些类型的 cookie 放置在您的计算机或设备上。如果您禁用浏览器或设备接受这些 cookie 的功能,您将无法登录或使用该网站。
如何对数据收集做出选择?
您可以选择 npm publish 命令在包数据中包含哪些数据。您可以使用您的包中的 .npmignore 文件将特定文件排除在包之外。您也可以使用 package.json 文件中的文件列表 来指示 npm 除了标准文件(如 README
文件、LICENSE
文件和 package.json)之外,还包含您指定的特定文件。
要仔细检查您将在打算发布的包中共享的数据,请运行 npm publish --dry-run
命令。如果您运行的是旧版本的 npm 命令,请运行 npm pack 命令来创建一个 tarball,然后检查其内容,例如使用 tar tvzf $tarball
。
要将包发布到 npm 公共注册表,npm 的服务条款要求您 许可 npm 共享它。如果包被公开,它将可供所有人在线查看。但是,您 为您的包选择的公共许可证 可能会影响其他人对您包中有关您的数据的操作。
npm 不响应 Do Not Track HTTP 头。
npm 在哪里保存我的数据?
npm 将帐户数据、网站使用数据、注册表使用数据和私有包存储在美国的服务器上。通过内容交付网络在全球范围内存储有关这些包的元数据。
npm 将发布到 npm 托管的企业注册表的包数据以及有关它们的元数据存储在客户选择的云计算区域中。
通过使用 npm 平台,您同意在本节中概述的数据收集和存储。
npm 如何根据欧盟通用数据保护条例处理数据?
npm 尊重 《欧盟 2016/679号条例》(即欧盟通用数据保护条例 (GDPR))下的隐私权。npm 根据以下法律依据处理“个人数据”:(1) 征得您的同意;(2) 为了履行我们提供服务的协议所必需的;(3) 为了我们提供服务的合法利益所必需的,只要这些利益不凌驾于您与数据隐私相关的基本权利和自由。我们收集的信息可能会被转移到我们或我们的关联公司或分包商维护设施的美国或任何其他国家/地区进行存储和处理,如上所述。
如果您居住在欧洲经济区、瑞士或英国,您有权享有某些权利,例如
-
就我们的数据收集或处理行为向相关监管机构投诉。您可以找到数据保护机构列表 这里。
-
访问有关您的信息。
-
要求我们更正或修改我们持有的关于您的不准确或不完整的信息。
-
要求我们删除数据,在某些情况下,例如 (1) 当数据不再用于收集它的目的时,(2) 您撤回同意并且不存在其他处理法律依据时,或 (3) 您认为您对数据隐私和保护的基本权利超过了我们继续处理的合法利益时。
-
要求我们限制我们的处理,如果我们根据合法利益或执行公共利益的任务作为行使官方权力(包括分析)来处理您的数据;使用您的数据进行直接营销(包括分析);或出于科学或历史研究和统计目的处理您的数据。
当您行使您的权利时,npm 可能需要验证您的身份并向我们提供信息,然后我们才能访问包含您的信息的记录。如果您想行使您的权利,请通过 打开支持票证 与 npm 联系。我们可能根据法律有理由拒绝遵守您的请求或以比您预期更有限的方式遵守您的请求。如果我们这样做,我们将在回复中向您解释。
npm 如何根据《加州消费者隐私法》处理数据?
npm 尊重加利福尼亚州居民在 《加利福尼亚州消费者隐私法》 (CCPA) 下的权利。在我们收集受 CCPA 约束的信息的地方,我们会收集的信息以及您的权利将在下面介绍。
我们收集的个人信息类别
-
个人标识符:
-
您创建帐户时的姓名和电子邮件地址。您还将被要求创建一个用户名,我们会为您的个人资料分配一个或多个唯一标识符。我们使用这些信息来提供我们的服务、回复您的请求并向您发送信息。
-
如果您向我们提供信息或通过社交媒体(如我们的帮助台)与我们的服务互动,我们还会收集您的社交媒体用户名和基本帐户信息。
-
我们通过我们的服务提供商 Stripe 收集您的支付信息,如上所述。
-
-
互联网或其他电子网络活动信息:设备标识符,如 IP 地址和用户代理;cookie 中的分配的唯一 ID(如下所述);有关您如何到达并浏览我们的服务的信息。
-
地理位置数据:我们不会收集您的具体经度和纬度。但是,我们会收集不精确的位置(例如,您的 IP 地址)。
-
专业或与工作相关的信息:如果您申请在我们公司工作,则有关您的工作经历的信息。
-
教育信息:如果您申请在我们公司工作,则有关您的教育经历的信息。
我们可能会收集您在上传到我们网站的软件包中包含的任何其他有关您的信息,如上文“npm 收集软件包数据”部分所述。我们还会收集您与我们的通信内容,例如,当您通过网络表单向我们提交问题或在社交媒体上向我们发表评论时。
我们可能会披露上述任何类别的个人信息,并将其用于上述目的或与收集个人信息的背景相一致的其他业务或运营目的。我们披露个人信息包括披露给我们的“服务提供商”,即我们为业务目的聘用的公司,代表我们进行活动。我们与之共享信息的服务提供商类别及其提供的服务如下所述。
CCPA 权利
-
访问/知情权:您有权要求访问我们收集的有关您的个人信息,以及有关该个人信息来源、我们收集该个人信息的用途以及我们与之共享该信息的第三方和服务提供商的信息。
-
删除:您有权要求我们删除我们从您那里收集的数据。请注意,我们可能出于某些原因拒绝您的删除请求或以比您预期的更有限的方式删除数据,例如,由于法律义务保留数据。
要行使上述权利,您可以打开支持工单。当我们处理您的请求时,我们必须通过要求您(1)提供我们可以与以前从您那里收集的信息相匹配的个人标识符;以及(2)使用请求中声明的电子邮件确认您的请求,来验证您的身份。
选择退出销售
加州居民有权要求我们停止“出售”他们的个人信息。“出售”个人信息的定义很广:“通过企业以货币或其他有价值的对价向另一家企业或第三方出售、出租、发布、披露、传播、提供、转让或以口头、书面或电子或其他方式进行沟通消费者个人信息。” 我们不会按照 CCPA 的定义出售您的信息。
请注意,您选择退出的权利不适用于我们与服务提供商共享个人信息,服务提供商是我们聘用以代表我们执行功能的各方,并且在合同上受义务仅将个人信息用于该功能。
我们也可能在法律要求或为保护我们公司或其他人时,如我们的隐私政策所述,向此处未列出的其他实体披露信息。
如何查看关于我的公开可用数据?
您可以随时访问www.npmjs.com上的帐户页面,访问您的帐户数据。您的帐户页面还列出了您帐户或其他帐户下发布的所有软件包。
只要软件包是公开的或您有权访问它们,您就可以通过下载软件包来访问软件包数据。
您可以通过运行 npm info $package 或访问相应的注册表 API来查看有关软件包的元数据。注册表 API 以标准的JSON 格式提供元数据,并将软件包作为tarball。
如何更改我的数据?
您可以随时访问www.npmjs.com上的帐户设置页面,更改您的个人帐户数据和支付卡数据。您可以通过联系支持来更改企业帐户和支付数据。
您可以随时通过电子邮件联系支持关闭您的 npm 帐户。关闭您的帐户会从公共注册表中删除个人资料,但不会自动删除您帐户下发布的软件包。即使您关闭帐户,我们也可能保留一些关于您的数据。
npm 的取消发布政策决定了您何时可以从 npm 公共注册表中删除软件包。取消发布政策在发布和托管软件包的目的、其他人对已公开内容的依赖以及个人权利和自由之间取得了艰难的平衡。
如果其他用户在软件包中或以其他方式不当发布了有关您的个人数据,请打开支持工单。
请注意,虽然npm 会发布有关已删除的已发布数据的通知,但 npm 无法代表您让所有已下载已发布的软件包数据或帐户数据的人员删除该数据。选择公开许可证,例如开源软件许可证,可能会鼓励和允许无限期地存储、分发和使用软件包数据。几乎所有流行的开源软件许可证实际上都要求保留将软件归属给您的个人数据,例如版权声明,作为允许使用软件的条件。
npm 关于下架软件包的政策是什么?
有关删除软件包的更多信息,请参阅我们关于“取消发布”软件包的政策或我们的服务条款。
如果您不小心发布了一个威胁您隐私的软件包,或发现其他人发布了一个这样做的软件包,请打开支持工单。npm 可以并且将会在特定、特殊情况下撤下软件包以保护您,尤其是在其他人侵犯您的隐私的情况下。使用 npm 侵犯他人的隐私违反了我们的服务条款。
npm 如何通知其他人有关已删除的已发布数据的通知?
npm 会采取一些措施通知可能从 npm 公共注册表复制数据的其他人,已发布的数据已被删除
-
npm 发布了一些已删除软件包的新占位符版本,其中包含
README
文件,这些文件提到软件包已被删除以及原因。 -
npm 的注册表 API(其他人用来从 npm 公共注册表复制数据的特殊软件服务)会发送有关已删除软件包的更新消息。
如果 npm 与其他公司合并或被其他公司收购会发生什么?
在任何合并、收购、资产出售或任何业务线出售、所有权控制变更或融资交易的关联或谈判中,我们可能会将有关您的部分或全部信息转让给另一实体或其关联公司或服务提供商。我们不能保证收购方或合并后的实体将拥有相同的隐私惯例或以与本政策中描述相同的方式对待您的信息。
npm 在处理属于儿童的信息方面的信息实践是什么?
npm 的网站和服务面向 16 岁及以上的用户。npm 不会故意收集来自儿童的信息。如果我们发现无意中从 16 岁以下的任何人那里收集了信息,我们会删除该信息。
关于 npm 和我的隐私,我可以联系谁?
请打开支持工单。您也可以直接联系我们的数据保护官。
我们的美国总部
GitHub 数据保护官
注意:npm 数据保护
88 Colin P. Kelly Jr. St.
San Francisco, CA 94107
美国
或我们的欧盟办事处
GitHub BV
Vijzelstraat 68-72
1017 HL 阿姆斯特丹
荷兰
如何了解变更?
此版本的 npm 隐私问答于 2020 年 6 月 3 日生效。
npm 将在npm 博客上宣布下一个版本。在此期间,npm 可能会通过更新https://docs.npmjs.net.cn/privacy上的页面,无需宣布,更新其联系信息。npm 可能会更改其在未来隐私版本中宣布更改的方式。
您可以在npm 公开策略的 Git 存储库中查看更改历史记录。