HotDoc
预约流程中,预约说明和信息填写内容需要频繁变更。
- Google Play 安装量
- 210 万
- 应用商店评分
- 4.6
当修复只涉及 Capacitor 应用的 Web 层时,将其作为加密的 live update 发布。在 staging channel 上测试,分阶段推送,并为合规团队保留每次发布记录。
临床医生报告药品或登记界面标签错误。修复方案仅需几行 JavaScript。
如果仅通过商店流程,你需要构建新二进制文件、提交并等待。商店审核通常需要 24-48 小时,有时甚至更久。
即使审核通过,患者和医护人员仍需安装更新才能看到修复内容。
预约、登记和提醒界面变动频繁。每一次 Web 层修复都要经历构建新二进制文件、商店审核和用户更新。
审核人员希望了解更新程序发送了什么、数据流向何处,以及你是否可以将数据保留在自己的基础设施中。
当临床医生报告问题时,你的团队必须查明该设备运行的是哪个 bundle 和 native 版本。
合规团队需要了解变更的发布者、发布时间以及发布到了哪个 Channel。
提供加密的 bundle、分阶段发布以及可供合规负责人审核的 updater 设置。
使用 Capgo CLI 上传修复后的 JavaScript、HTML 和 CSS。默认情况下,设备会下载 bundle 并在 App 进入后台时应用。Native code 的变更仍需通过应用商店发布。
Capgo 与医疗客户签署 BAA。Updater 不会发送姓名、电子邮件或病历号,您还可以限制或更改其发送的数据内容。
BAA 与 HIPAA 选项先向一小部分设备发送 bundle,检查安装与失败数据,随后逐步扩大范围。Auto-pause 功能可以在失败率上升时停止发布;若 bundle 未调用 notifyAppReady(),则会在设备端自动回滚。
工作原理
只需一次性配置好符合合规审查的 updater,即可通过 staging 环境和分阶段生产发布,逐个推送 Web 层修复。以下所有命令均来自 Capgo 文档。
将所有三个 plugin 端点指向 EU host;如果不允许托管统计数据,请将 statsUrl 设置为空字符串。切勿设置映射到患者身份的自定义 ID。请在 store build 中发布此配置。
// capacitor.config.ts
plugins: {
CapacitorUpdater: {
updateUrl: 'https://plugin.eu.capgo.app/updates',
// use statsUrl: '' to disable hosted statistics
statsUrl: 'https://plugin.eu.capgo.app/stats',
channelUrl: 'https://plugin.eu.capgo.app/channel_self',
},
}
BAA 与 HIPAA 选项
创建密钥对,把公钥保存到你的 Capacitor 配置中并同步。私钥放在 CI secrets 里,切勿提交到代码仓库。
npx @capgo/cli@latest key create
npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
npx cap sync
加密文档
将加密后的 bundle upload 至 staging channel,并在推送到患者端之前在 QA 设备上进行检查。
npx @capgo/cli@latest bundle upload --channel staging --key-v2
Channels 文档
先从 5% 的生产设备开始。当安装和失败数据表现正常时,再将 bundle 推送给所有人。否则,请回滚该批次。
npx @capgo/cli@latest bundle upload --channel production --key-v2 --rollout 5
npx @capgo/cli@latest channel set production --rollout-promote
# or, if something looks wrong
npx @capgo/cli@latest channel set production --rollout-rollback
渐进式发布文档
将每个 bundle 与其 commit 关联,保留发布人员的审计日志,并在 App 内显示当前运行的版本。
在 upload 时使用 --comment 和 --link 为每个 bundle 添加注释和链接,从而实现已部署 bundle 的源码溯源。
# Attach the commit to each bundle
npx @capgo/cli bundle upload \
--comment "Fix dosage rounding ($(git rev-parse --short HEAD))" \
--link "https://github.com/your-org/your-app/commit/$(git rev-parse HEAD)"
通过 CapacitorUpdater.current() 读取当前的 bundle 和 Native 版本,并将其显示在设置或支持页面上,以便工作人员向技术支持反馈其运行的版本。
// Show version info to clinical staff
const info = await CapacitorUpdater.current()
// Display in app settings
console.log(info.bundle.version) // "2.4.1"
console.log(info.native) // Native app version
您可以向合规负责人及供应商审核人员提供的信息
Enterprise 方案包含 SOC 2 Type II、ISO 27001 和 SSO。DPA 和子处理器列表已公开,供您进行供应商审核。
Updater 插件和 Capgo 后端均在 GitHub 上开源。您的团队可以阅读运行在患者设备上的 code。
使用 Capacitor 构建的应用
预约、健康记录和福利类 App 无需破坏 Native shell 的稳定性,即可更新问诊界面、预约指南、医生消息及患者教育内容。
预约流程中,预约说明和信息填写内容需要频繁变更。
包含公共指南和文档流的健康记录应用,需保持内容实时更新。
福利应用,需对服务商、资格校验及支持流程进行精细化补丁更新。
drivolino GmbH 首席开发者
“Capgo Capacitor Updater 插件彻底改变了我们的更新发布方式。过去需要几天的工作,现在只需几分钟。”
NuTriQ 创始人
“无需等待完整的 App Store 审核周期,就能即时推送生产环境的 OTA 更新,这为我们带来了巨大的运营优势。”
开发者,Webincode
“能把特定 Device ID 加入指定分组,并只向这些分组推送更改,太救命了。”
常见问题
为准备安全审查或 HIPAA 审计的工程团队提供简明解答。
Capgo 与医疗客户签署商业伙伴协议 (BAA),且美国机构已在符合 HIPAA 标准的项目中使用 Capgo。更新数据量极小且仅限于设备范围。如果您的审查需要更多控制权,还可以使用欧盟端点、禁用统计数据、自托管统计端点,或迁移至授权的自托管方案。
BAA 和 HIPAA 选项运行数据:app ID、随机的 app 范围设备 ID、平台、bundle 和 native 版本、OS 版本、plugin 版本以及更新事件。IP 地址仅用于传输层。不会发送姓名、电子邮件、账户 ID 或医疗记录编号。请勿设置映射到患者或用户的自定义 ID。
隐私和数据收集可以。将 update、stats 和 channel 端点指向 plugin.eu.capgo.app,即可将 plugin 数据路径保留在欧洲。您也可以将统计数据发送到您自己的端点。Enterprise 方案还提供专用、混合及授权的自托管选项。
欧盟数据存储位置仅限 Web 层:JavaScript、HTML、CSS 和资源文件。若涉及 Native code、插件或权限的更改,仍需通过 App Store 和 Google Play 进行新的 build。
哪些内容可以作为 live update 发布审计日志会记录 bundle upload、channel 变更以及成员变更。Channel 历史记录会列出所有已上线的 bundle,每个 bundle 都可以附带注释和 commit 链接。通过角色权限可以限制谁能 upload bundle 或更改 channel。
审计日志在试用期间,您可以为自己的 App 配置 staging channel、加密 bundle 以及审核所需的 updater 配置。
无需等待应用商店审核,即可向患者端 App 发布加密的 Capgo Live Updates。
来自 Martin 的人工支持
14 天无限免费试用。无需信用卡 14 天退款保证。随时取消。
有企业级需求? 联系我们的团队
14 天免费试用,无需信用卡。Enterprise 方案提供 BAA、SOC 2 Type II、ISO 27001、SSO 及自托管选项。