跳转到正文

HIPAA 合规

本文介绍当 HIPAA 审核不允许将 live update 统计数据发送到 Capgo Cloud 时,团队可采用的技术方案。

Capgo Cloud 目前并非作为 HIPAA 合规的托管统计数据处理器提供。许多涉及 HIPAA 敏感数据的应用仍在使用 Capgo,因为更新程序的数据量极小、仅限于设备范围,且默认情况下不会与已知的应用用户关联。如果您的公司政策、审核人员或客户合同要求更严格的控制,您可以对插件流量进行地理位置限制、禁用统计端点、仅自托管统计端点,或迁移到获得授权的自托管方案。

更新程序插件会发送交付和观测 Live Update 所需的运行数据。统计数据负载可能包含以下字段:

  • app_id - 您的 Capacitor 应用标识符
  • device_id - 由更新程序插件生成的随机、应用范围内的设备标识符
  • platform - ios, android,或 electron
  • version_name - 已安装的 web bundle 版本
  • version_build - 原生应用版本名称
  • version_code - 原生 build number
  • version_os - 操作系统版本
  • plugin_version - 已安装的 @capgo/capacitor-updater 版本
  • action - 更新生命周期事件,例如 install、download、failure、rollback 或 app-ready 事件
  • is_emulator 以及 is_prod - 环境标志(如果可用)
  • custom_id - 仅当您的应用通过以下方式显式设置时 CapacitorUpdater.setCustomId(...)
  • IP 地址 - 用于传输层面的区域路由、防滥用及 CDN 优化

默认情况下,这些数据对应用用户是匿名的。Capgo 不会从 updater 获取姓名、电子邮件、账号 ID、医疗记录号、凭据、用户内容、应用分析事件或行为分析数据。唯一的稳定标识符是随机的、应用范围内的 device_id,这并非广告 ID,除非你设置了否则它不会与已知用户关联 custom_id ,您自己。

如果您的 HIPAA 审核要求完全不托管更新统计数据,请将 statsUrl 设置为空字符串。这将完全禁用向 Capgo Cloud 报告更新器统计信息,但更新检查仍可使用 updateUrl 以及 channelUrl (如果您保持启用状态)。

对于 HIPAA 敏感型部署,请勿调用 CapacitorUpdater.setCustomId(...).

配置自定义 ID 时,该 ID 会包含在更新器统计信息中。如果您将其设置为电子邮件地址、用户 ID、患者 ID、员工 ID、账户 ID 或任何其他可关联到个人的值,则意味着您已将更新器遥测数据与您应用上下文中的个人数据绑定。

如果您的审核要求托管的 Capgo 遥测数据保持设备范围,请保持 custom_id 未设置状态。

方案 1:按地理位置本地化 Capgo Cloud 插件流量

标题为“选项 1:将 Capgo Cloud 插件流量进行地理定位”的部分

如果您的审核允许使用 Capgo Cloud,但要求插件数据必须存储在欧盟境内,请将所有三个 updater 端点配置为欧盟主机:

capacitor.config.ts
import type { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'My App',
webDir: 'dist',
plugins: {
CapacitorUpdater: {
autoUpdate: 'atBackground',
updateUrl: 'https://plugin.eu.capgo.app/updates',
statsUrl: 'https://plugin.eu.capgo.app/stats',
channelUrl: 'https://plugin.eu.capgo.app/channel_self',
},
},
};
export default config;

请配合使用欧盟 URL。如果混合使用 plugin.capgo.app 以及 plugin.eu.capgo.app 可能会导致部分插件数据路径路由到欧盟主机之外。

这样既能保留 Capgo 托管的更新监控、统计、告警和故障排查数据,又能将插件数据路径置于欧洲境内。

如果您的审核不允许将统计数据发送到 Capgo Cloud,请将 statsUrl 设置为空字符串:

capacitor.config.ts
import type { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'My App',
webDir: 'dist',
plugins: {
CapacitorUpdater: {
autoUpdate: 'atBackground',
statsUrl: '',
},
},
};
export default config;

这将禁用 updater 插件的数据统计报告。如果您保留默认设置,更新检查和下载仍可使用 Capgo Cloud updateUrl 以及 channelUrl.

更改后 capacitor.config.ts,请同步原生项目并发布新的应用商店版本。现有安装版本在收到新的二进制文件之前,将继续使用之前的原生配置。

禁用统计后会失去什么

“禁用统计后会失去的功能”章节

禁用 statsUrl 会移除 Capgo 用于分析更新推送或下载后应用内部状态的托管信号。

您将失去:

  • 在 Dashboard 中查看安装成功、安装失败、下载失败、回滚以及应用就绪事件的能力
  • 依赖托管统计数据的失败告警
  • 能够快速识别哪些 App 版本、OS 版本、平台或插件版本受到更新问题的影响
  • Capgo Cloud 中的设备级故障排查日志
  • Capgo dashboard 中的聚合更新采用率和 App 使用统计数据
  • 来自 Capgo 团队的支持上下文会变弱,因为托管服务不再接收解释设备端更新路径的事件

自动更新推送仍可工作,但您的可观测性会降低。在生产环境中禁用统计数据前,请规划好自己的监控方案。

方案 3:自托管统计端点

标题为“选项 3:自托管统计端点”

如果您的审核允许通过 Capgo Cloud 进行更新检查,但要求统计数据保留在您的基础设施内,请指向 statsUrl 您自己的端点:

capacitor.config.ts
import type { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'My App',
webDir: 'dist',
plugins: {
CapacitorUpdater: {
autoUpdate: 'atBackground',
statsUrl: 'https://updates.example.com/capgo/stats',
},
},
};
export default config;

您的端点应接收更新程序统计数据负载并返回:

{ "status": "ok" }

如果您希望保留内部告警、审计日志和事件分析,且不想将设备更新统计数据发送至 Capgo Cloud,请使用此路径。

如果使用 Capgo Cloud、欧盟数据驻留、禁用统计数据或自托管统计端点仍无法满足您的 HIPAA 审核要求,Capgo 可以协助您迁移至授权的自托管部署方案。

这是最严格的选项,因为您的组织将完全控制更新程序后端、统计端点、日志、保留策略、基础设施和网络边界。这也意味着您必须承担更多原本由 Capgo Cloud 处理的运维工作。

在进行 HIPAA 审核之前,请决定:

  • 是否允许使用托管 Capgo Cloud 进行更新检查
  • 是否允许使用托管 Capgo Cloud 进行数据统计
  • 插件流量必须使用的区域
  • 是否 custom_id 在您的应用中已禁用
  • 如果禁用了托管统计功能,由谁负责监控更新失败
  • 您的团队是否需要获得许可的自托管部署

Capgo 与正在接受 HIPAA 合规审查的公司合作,包括在美国境内、在 HIPAA 合规项目中使用 Capgo 的公司。如果您的审核人员需要比托管默认配置更严格的部署模式、数据流或许可路径,请联系 Capgo。

如果你正在使用 HIPAA 合规 要规划受监管的 live update 发布,请结合 合规性 了解隐私与数据收集详情, 数据位置 了解 EU 端点配置, API 统计端点 了解自托管遥测,以及 自托管更新器 用于授权部署规划。