HotDoc
予約手順や入力フォームの文言が頻繁に変更される予約フロー。
- Google Play インストール数
- 210万
- ストア評価
- 4.6
Capacitor アプリの Web レイヤーのみに修正を加える場合は、暗号化された live update として配信しましょう。ステージング用チャンネルでテストし、段階的にロールアウトを行い、コンプライアンスチームのためにすべてのリリース履歴を記録できます。
医療従事者から、投薬や受付画面のラベルが間違っているとの報告がありました。修正には数行のJavaScriptがあれば十分です。
ストアのみのプロセスでは、新しいバイナリをビルドして申請し、待つことになります。ストア審査は通常24〜48時間、場合によってはそれ以上かかります。
しかし、承認を得た後でも、修正を反映させるには患者やスタッフが手動でアップデートをインストールする必要があります。
予約、受付、リマインダー画面は頻繁に変更されます。Webレイヤーの修正であっても、新しいバイナリの作成、ストア審査、ユーザーによる更新を待たなければなりません。
審査担当者は、アップデーターが何を送信し、どこへ送るのか、そして自社のインフラ内で完結できるのかを知りたがっています。
医療従事者から問題が報告された際、チームは対象のデバイスがどのbundleとNative Buildのバージョンで動作しているかを特定しなければなりません。
コンプライアンスチームは、誰が、いつ、どのチャネルに変更をリリースしたのかを常に把握する必要があります。
暗号化されたbundle、段階的な公開、コンプライアンス担当者が確認可能なupdater設定。
Capgo CLI を使用して、修正済みのJavaScript、HTML、CSSをuploadします。デフォルトでは、デバイスはbundleをdownloadし、アプリがバックグラウンドに移行した際に適用します。Native code の変更には、引き続き各ストアでの審査が必要です。
Capgo はヘルスケアのお客様とBAAを締結しています。updaterは氏名、メールアドレス、診療録番号などを送信せず、送信データの制限や制御も可能です。
BAAおよびHIPAAオプションCLIでキーペアを作成します。Bundleはupload前に暗号化され、インストール前にアプリ側で検証されます。Capgo、ストレージプロバイダー、CDNからは暗号文しか見えません。
暗号化のドキュメント一部のデバイスにのみBundleを配信し、インストール状況やエラー率を確認してから対象を拡大します。Auto-pause機能により、エラー率の上昇時にロールアウトを自動停止できるほか、notifyAppReady()が呼び出されないBundleはデバイス上で自動的にロールバックされます。
仕組み
レビュー内容に合わせてアップデーターを一度設定すれば、あとは各Webレイヤーの修正をステージング経由で、段階的なプロダクションロールアウトで配信できます。以下のコマンドはすべて Capgo のドキュメントに基づいています。
3つのプラグインエンドポイントすべてをEUホストに向けるか、ホストされた統計が許可されていない場合は statsUrl を空文字列に設定してください。患者に紐づくカスタムIDは設定しないでください。この設定はストアビルドに含めて配信します。
// 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のシークレットに保管し、リポジトリには決して含めないでください。
npx @capgo/cli@latest key create
npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
npx cap sync 暗号化のドキュメント 暗号化されたbundleをステージングチャネルにアップロードし、患者に届く前にQAデバイスで動作を確認します。
npx @capgo/cli@latest bundle upload --channel staging --key-v2 チャネルのドキュメント まずは本番デバイスの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をコミットに紐付け、誰が配信したかの監査ログを保持し、アプリ内で実行中のバージョンを表示します。
アップロード時に --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とネイティブバージョンを取得し、設定画面やサポート画面に表示します。スタッフがサポートに使用中のバージョンを伝えられるようになります。
// 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 コンプライアンス責任者やベンダー審査に提示できる情報
EUエンドポイントの利用、アップデーター統計の無効化やセルフホスト、ライセンス版セルフホスティングへの移行が可能です。どの構成が合うかはコンプライアンス責任者が判断します。
CapgoとHIPAASOC 2 Type II、ISO 27001、SSOはEnterpriseプランに含まれます。DPAとサブプロセッサー一覧はベンダー審査用に公開されています。
アップデータープラグインとCapgoバックエンドはGitHubでオープンソースです。患者のデバイス上で動作するcodeをチームが確認できます。
Capacitor で構築されたアプリ
予約、診療記録、福利厚生などのアプリでは、ネイティブシェルを不安定にすることなく、受付画面、予約手順、プロバイダーとのメッセージング、患者向け教育コンテンツを更新できます。
予約手順や入力フォームの文言が頻繁に変更される予約フロー。
常に最新の状態に保つ必要がある、公開ガイダンスやドキュメントフローを備えた健康記録アプリ。
プロバイダー、資格、サポートの各ジャーニーにおいて、慎重なパッチ適用が求められる福利厚生アプリ。
リードデベロッパー、drivolino GmbH
“Capgo Capacitor Updater pluginのおかげで、アップデートの配信方法が完全に変わりました。以前は何日もかかっていた作業が、今ではわずか数分で終わります。”
NuTriQ 創業者
「本番環境のOTAアップデートを、App Storeの審査サイクル全体を待たずに即座に配信できることは、運用面で非常に大きな強みです。」
Webincode 開発者
「Device IDを特定のグループに追加して、そのグループにだけ変更をプッシュできるのは本当に助かります。」
よくある質問
セキュリティ審査やHIPAA準拠の確認を行うエンジニアリングチーム向けに回答します。
Capgo はヘルスケアのお客様と Business Associate Agreement (BAA) を締結しています。また、米国の組織ではすでに HIPAA 準拠のプログラム内で Capgo を運用しています。アップデーターが扱うデータは最小限かつデバイス単位に限定されています。より厳格な制御が必要な場合は、EU エンドポイントの使用、統計データの無効化、統計エンドポイントのセルフホスト、またはライセンス版のセルフホストへの移行が可能です。
BAA および HIPAA のオプション運用データとして、app ID、ランダムなアプリ単位のデバイス ID、プラットフォーム、bundle および Native Build のバージョン、OS バージョン、プラグインのバージョン、およびアップデートイベントを送信します。IP アドレスはトランスポート層で使用されます。氏名、メールアドレス、アカウント ID、または診療録番号(MRN)が送信されることはありません。患者やユーザーに紐付くカスタム ID を設定しないでください。
プライバシーとデータ収集についてはい。アップデート、統計、および channel のエンドポイントを plugin.eu.capgo.app に向けることで、プラグインのデータパスを欧州内に保持できます。また、統計データを独自の自社エンドポイントに送信することも可能です。Enterprise プランでは、専用環境、ハイブリッド構成、およびライセンス版のセルフホストオプションが利用できます。
EU データロケーション変更できるのは Web レイヤー(JavaScript、HTML、CSS、アセット)のみです。ネイティブの code、プラグイン、権限の変更には、引き続き App Store と Google Play 経由の新しいビルドが必要です。
何を live update として配信できるか監査ログには、bundle のアップロード、channel の変更、メンバーの変更が記録されます。channel の履歴には、公開されていたすべての bundle が一覧表示され、各 bundle にはコメントと commit リンクを付けられます。ロールによって、bundle をアップロードしたり channel を変更できるユーザーを制限できます。
監査ログトライアル期間中に、ご自身のアプリで staging channel、暗号化された bundle、審査に必要な updater config をセットアップできます。
ストア審査を待たずに、暗号化された Capgo の Live Update を患者向けアプリに配信しましょう。
Martinによる人的サポート
14日間無制限の無料トライアル。クレジットカード不要 14日間の返金保証。いつでも解約可能。
エンタープライズ向けのご相談は? チームに相談する
14日間の無料トライアル(クレジットカード不要)。Enterpriseプランでは、BAA、SOC 2 Type II、ISO 27001、SSO、およびセルフホスティングオプションに対応しています。