Skip to content

本番リリースに向けてプロジェクトオーナーが進めること

最終更新: 2026-08-18

1. この文書の目的

本番リリース目標を2026年9月1日、本番相当の受入テストを8月30日とした場合に、プロジェクトオーナー・運用責任者が自分で判断、準備、承認する事項をまとめる。

コード修正や自動テストは開発担当が進められるが、実際の法人・施設・利用者・端末・外部サービス・配布先を用意し、リリース可否を判断できるのは運用責任者である。ここにある未完了項目は、ローカルビルドが成功しても自動的には完了しない。

2. 最初に決めること(P0)

次の決定を、遅くとも8月20日までに記録する。決定がない項目は、実装を確定できずリリース判定を止める。

2.1 リリース範囲と責任者

  • [ ] 9月1日に対象とするアプリを確定する。候補はAPI、Management、Kiosk、Facility、Guardian、Staff、Provider。
  • [ ] 各アプリの承認者、テスト担当者、障害時の連絡先を1名以上決める。
  • [ ] Managementのオフライン版を先行運用する既定方針を採用するか、変更する場合は理由と新しい順序を記録する。
  • [ ] 9月1日に全施設へ展開するか、1施設または数施設で段階展開するかを決める。初回は段階展開を推奨する。
  • [ ] リリース対象版、versionName、versionCode、配布対象、ロールバック対象版を承認する。

2.2 セキュリティ方針の承認

  • [ ] API側PBKDF2の現行1,000回を600,000回以上へ引き上げるか、現行値を一時的に認めるリスク受入を行う。
  • [ ] 推奨は、600,000回以上へ引き上げ、ログイン・初期登録・大量デモシードの性能をステージングで測定すること。
  • [ ] 現行のデモ用 $demo$ パスワードを本番データへ使用しないことを確認する。
  • [ ] Secret、秘密鍵、初期パスワード、実児童情報をチャット、Issue、Git、ログへ貼り付けない運用を承認する。

2.3 ID・既存データ移行方針の承認

  • [ ] 新規IDが C/P/S + 法人コード3 + 施設コード2 + 制限英数4 の10文字で発行されることを承認する。
  • [ ] 制限英数が ABCDEFGHJKMNPQRSTUVWXYZ23456789 であることを確認する。
  • [ ] 現行の npm run db:migrate:account-codes を本番へ実行しない。
  • [ ] 既存利用者を新IDへ再発行するか、旧コードを認証時だけ許可する互換エイリアスを実装するか決める。
  • [ ] IDを変更する場合、ログインIDをソルトに使うパスワードの再設定・再通知・旧ID無効化の手順を承認する。
  • [ ] 移行対象、移行日時、バックアップ、照合方法、ロールバック方法、利用者への通知文を決める。

3. あなたが準備する実データと運用情報

3.1 法人・施設マスタ

  • [ ] 本番の法人一覧、正式名称、担当者、連絡先を確定する。
  • [ ] 各施設の正式名称、住所、電話番号、定員、開所日、緯度経度、タイムゾーンを確定する。
  • [ ] 法人コード3文字、施設コード2文字を割り当て、重複と誤読文字を確認する。
  • [ ] 施設ごとの利用開始日、休所日、延長時間、送迎・お迎えルールを登録する。
  • [ ] 本番とステージング、デモの法人・施設コードを混在させない。

3.2 利用者アカウント

  • [ ] 職員ごとの氏名、所属施設、ロール、権限、連絡先を確定する。
  • [ ] 児童ごとの氏名、カナ、所属施設、入所日、学校、保護者紐付けを確認する。
  • [ ] 保護者と児童の紐付け、通知先、緊急連絡先を確認する。
  • [ ] 初期パスワードを安全な経路で個別配布し、初回ログイン後の変更を必須にする。
  • [ ] Guardianは企業コード入力を求めず、法人コードを含む保護者IDだけでログインできることを利用者案内へ反映する。
  • [ ] 退職者、退所児童、無効アカウントの扱いと無効化日を決める。

3.3 端末・機材

  • [ ] Facility APKをインストールするAndroid端末、OS、端末番号、利用施設を台帳化する。
  • [ ] KioskのWindows/Linux/Android端末、端末識別子、設置場所を台帳化する。
  • [ ] NFCを使用する場合、PaSoRiまたは内蔵NFCの型番、ドライバ、接続方法を確定する。
  • [ ] NFCカード、QRコード、打刻対象の児童・職員を用意する。
  • [ ] 端末の日時、タイムゾーン、ネットワーク復旧、オフライン継続時間を確認する。
  • [ ] 予備端末、交換手順、故障時の紙運用または代替打刻手順を用意する。

4. あなたが用意する外部サービスと本番設定

秘密値そのものは共有せず、設定済みであることだけを確認する。

4.1 Cloudflare / API

  • [ ] 本番Worker、staging Worker、カスタムドメイン、DNSを確定する。
  • [ ] productionとstagingのD1、KV (KV_AUTH)、R2 (REPORTS_BUCKET)、Queue (EVENT_QUEUE)を分離する。
  • [ ] JWT_SECRETACCESS_TOKEN_SECRETREFRESH_TOKEN_SECRETENCRYPTION_KEYをSecret管理へ登録する。
  • [ ] 必要な機能に応じてFCM、LINE、Provider、Kiosk、QR、更新署名のSecretを登録する。
  • [ ] ALLOWED_ORIGINSへ本番のGuardian、Staff、Facility、ProviderのOriginだけを登録する。
  • [ ] 本番D1 migrationの適用担当、バックアップ取得方法、復旧方法を確定する。
  • [ ] /health/v1/health、Cloudflareログ、アラート、利用量・エラー監視を確認する。
  • [ ] D1のAuditLogをJSONへ出力し、npx tsx scripts/verify-audit-log-chain.ts --file audit-logs.jsonok: trueになることを確認する。

4.2 Firebase / FCM

  • [ ] 本番Firebaseプロジェクトとstaging/demoプロジェクトを分離する。
  • [ ] Guardian/Staff/Facilityで使用するFirebase Web設定とVAPIDキーを本番環境ファイルへ設定する。
  • [ ] API側のFCMサービスアカウントをSecretとして設定する。
  • [ ] 実機へ通知を送信し、施設・児童・保護者の対象を誤らないことを確認する。
  • [ ] サービスアカウントの権限を必要最小限にし、JSONをGitやチャットへ保存しない。

4.3 LINE、更新配信、署名

  • [ ] LINE連携を使う場合、channel ID、channel secret、access token、Webhook URLを確定する。
  • [ ] 更新マニフェストの署名鍵、鍵ID、公開鍵、ローテーション手順を確定する。
  • [ ] Facilityの更新URLとAPIのUPDATE_BASE_URLが同じ運用方針であることを確認する。
  • [ ] Facility/Kiosk Androidの本番keystore、alias、パスワードの保管場所と担当者を決める。
  • [ ] Guardian/StaffはAPKを作らず、PWAホスティング、HTTPS、Service Worker更新方法を確定する。

5. 8月30日にあなたが立ち会う受入テスト

テストは本番相当環境、承認済みのテストアカウント、承認済みの端末で実施する。各項目に「実施者、日時、環境、対象バージョン、結果、証跡、課題番号」を残す。

5.1 API・認証

  • [ ] 正しいID・パスワードでGuardian、Staff、Facility、Providerへログインできる。
  • [ ] 誤パスワード、無効ID、期限切れアクセストークン、無効リフレッシュトークンが適切な401/403になる。
  • [ ] 未認証のauth/meが401であり、404や500にならない。
  • [ ] ログアウト後に保護APIへアクセスできない。
  • [ ] Guardianは法人コード入力なしでログインできる。
  • [ ] Staff、Guardian、Facility、Providerのロール境界を越えてデータを取得できない。

5.2 Facility APK

  • [ ] 本番APKの署名、package ID、versionName、versionCode、非debuggableを確認する。
  • [ ] ログイン後、ホーム、dashboard、児童一覧で児童名が正しく復号・表示される。
  • [ ] 出席、入退室、日報、事故報告、通知の主要導線を実データに近いテストデータで確認する。
  • [ ] /v1/facility/events/streamが404にならず、権限なしでは401になる。
  • [ ] オフライン入力、復旧後同期、重複送信防止、失敗データの再送を確認する。

5.3 Guardian PWA

  • [ ] Android/iOSの実機ブラウザでログイン、ホーム画面追加、再起動後の更新を確認する。
  • [ ] 欠席・遅刻・お迎え連絡を送信し、施設側へ反映される。
  • [ ] 児童情報、通知、既読状態、ログアウト、パスワード変更を確認する。
  • [ ] 古いService Workerやキャッシュが新バージョンを妨げない。

5.4 Staff PWA

  • [ ] 実機ブラウザでログイン、PWA更新、再ログインを確認する。
  • [ ] 自分の所属施設だけが表示され、シフト、業務連絡、マニュアルが利用できる。
  • [ ] 権限のない管理操作が拒否される。
  • [ ] 「新しいバージョンが利用可能です」の表示が、更新成功後に適切に消える。

5.5 Management

  • [ ] Windows自己完結型成果物をクリーンな端末または検証環境へ配置できる。
  • [ ] オフラインで児童・保護者・職員・施設データを参照・編集できる。
  • [ ] 再起動後も暗号化されたローカルデータを復号できる。
  • [ ] オンライン復帰後の同期、競合、失敗再試行、バックアップ・復元を確認する。
  • [ ] 補助金、請求、監査、権限設定の主要操作を確認する。

5.6 Kiosk

  • [ ] Windows/Linux/Androidの対象成果物を起動できる。
  • [ ] NFCとQRの入退室、職員打刻、誤入力、未登録カードを確認する。
  • [ ] オフライン打刻、端末保存、復旧後のFIFO同期、重複防止を確認する。
  • [ ] 端末再起動、日時ずれ、ネットワーク断、API障害時の表示を確認する。

5.7 Provider

  • [ ] 法人・施設作成時に法人コード3文字、施設コード2文字が発行される。
  • [ ] 職員・児童・保護者の新規発行IDが10文字の仕様に一致する。
  • [ ] ID衝突時に再生成され、既存アカウントを上書きしない。
  • [ ] 法人管理者が他法人の施設・利用者・監査データを閲覧できない。

5.8 通知・外部連携

  • [ ] FCM通知が正しい保護者・端末へ届く。
  • [ ] LINE連携を使う場合、Webhook署名と対象施設の紐付けを確認する。
  • [ ] 帳票をR2へ保存・取得でき、権限のない利用者が取得できない。
  • [ ] 更新確認と署名検証が本番URLで成功する。

6. 合格証跡の残し方

各テストでは、次の情報を1行単位で残す。

項目記録内容
Test IDAPI-AUTH-01など一意な番号
実施日時日本時間、開始・終了
環境production-like、staging、端末名
API・PWA・APK・Managementの版数
アカウント実IDではなくマスキング値
期待結果HTTPコード、画面、通知、同期状態
実結果実際に確認した内容
証跡ログ・スクリーンショット・manifest・checksumの保存先
判定PASS / FAIL / BLOCKED
課題課題番号、担当者、期限

児童氏名、電話番号、メールアドレス、Secret、token、keystore情報は証跡へ直接記録しない。必要な場合はマスキングまたはテスト用ダミー値を使用する。

7. Go / No-Go判定

Goの最低条件

  • [ ] P0の方針決定がすべて記録済み。
  • [ ] 本番環境とstaging環境の設定・Secret・DBが分離済み。
  • [ ] 8月30日の必須受入テストにFAILまたは未確認がない。
  • [ ] 本番成果物、manifest、SHA-256、署名、ロールバック版が一致する。
  • [ ] バックアップ、監視、連絡網、障害時の停止・復旧手順が利用可能。

No-Go条件

次のいずれかが残る場合は、9月1日の全体展開を延期するか、対象機能を明示的に外す。

  • [ ] PBKDF2の未承認、または重大な認証・権限問題。
  • [ ] 既存ID移行方式が未決定、または所属スコープを保証できない。
  • [ ] 本番Secret、署名、DB、FCM、実機のいずれかが未確認。
  • [ ] 児童名の復号不良、同期欠損、重複打刻、他施設データ漏洩。
  • [ ] ロールバック版またはDBバックアップから復旧できない。

8. 日程別の実行順

期限あなたが行うこと完了の証拠
8/20リリース範囲、責任者、PBKDF2、ID移行方式を決定承認記録
8/22法人・施設・利用者・端末・外部サービス台帳を確定台帳、設定一覧
8/25stagingへ実データ相当の匿名テストデータを投入データ照合結果
8/28本番Secret・署名・ドメイン・バックアップ・監視を確認設定チェックリスト
8/29本番相当スモークテストに立ち会うスモークテスト結果
8/30全受入テストを実施し、FAILを分類する受入試験記録
8/31Go/No-Go、版凍結、最終バックアップを承認判定記録、manifest
9/1段階リリース、監視、問題時の停止判断展開記録、監視ログ

9. 開発側へ依頼する事項

あなたが判断を終えたら、開発側へ次を依頼する。

  1. 承認済みのPBKDF2方針を実装し、ログイン性能と既存ハッシュ移行を検証する。
  2. 承認済みのID移行方式を実装し、バックアップ・再発行・ロールバックを自動化する。
  3. 監査ログの全件検証ツールと同時書き込みテストを追加する。
  4. 受入テストで見つかった不具合を、再現手順・原因・修正・再テスト結果付きでクローズする。
  5. 本番候補をクリーンな環境でビルドし、manifest、checksum、署名、設定検査を提出する。
  6. docs/の利用者向け手順とdocs-dev/の技術手順に差分がない状態を保つ。

10. すぐに着手する10項目

  1. 9月1日の対象アプリと段階展開対象を確定する。
  2. 8月30日のテスト責任者と参加者を確定する。
  3. PBKDF2 600,000回以上への引き上げ方針を決める。
  4. 既存ID・法人コードの移行方式を決める。
  5. 本番法人・施設一覧とコード候補を確定する。
  6. 本番ユーザー・児童・保護者台帳を匿名化せず安全な管理場所で整備する。
  7. Facility/Kioskの実機、NFC、QR、予備機を確保する。
  8. Cloudflare、Firebase、LINE、更新署名、Android署名の担当者を決める。
  9. ロールバック版、DBバックアップ、障害連絡網を準備する。
  10. このチェックリストの各項目に担当者と期限を割り当てる。

放課後リンク 開発プロジェクト