家庭アーカイブ:配備記録(2026-09-21)
状態:2026-09-22 03:58:03 JST、本番反映完了。完了記録と現在の実機のcommit・image・Compose・deployment.jsonを独立して照合済み。起動コマンドの再実行は不要。
ユーザーはモック合意・実装の確認後、「実機もいこう」と本番反映を依頼した。
配備する版
- 更新前の実機:
4b7f9be3069b5d46330824d5a4270c8a6a2028b4。SSHの読み取りで、配備記録・Composeのハッシュと一致を確認した。 - 配備済み:
8ec32083aed01256263dbad4237157ea729abcbc。 - push済みブランチ:
codex/family-archive-20260921-production。 - ソース:
.local-dev/family-archive-implementation/source。 - 配備ファイル:
.local-dev/truenas-family-archive-20260921/bundle。 - 実機の専用ディレクトリ:
/home/truenas_admin/family-archive-20260921-8ec3208。 - 実機サービス名:
hoikuict-family-archive-20260921-8ec3208。
開発ブランチ全体を上書きせず、既存の本番機能、バックアップ形式1、復元サービス、設定値を保持する。
起動前に完了した検査
- 本番用ブランチのアプリ全体テスト835件成功(416.30秒)。
- 既存の関連131件に加え、権限・認証・写真を含む179件を、実機の使い捨てコンテナでも実行する構成。テスト用wheelは同梱し、本番アプリへの依存追加は行わない。
- 配備手順の設定保持、ジョブ中の停止拒否、正常切替、失敗時の両ワーカー復旧、未公開のDB移行の取消を5テストで検証。Windowsと実機Linuxで成功。
- アーカイブ確認画面・記録画面・CSV出力・権限を検査する読み取り専用コードを架空DBで検証した。出力は件数のみ。
- 実機に転送した全ファイルのSHA256とPython構文を検証済み。ソース347ファイルのハッシュを固定。
起動後の処理
現在のアプリを稼働させたまま固定版をビルドし、ネットワークを無効にした隔離コンテナで179テストと実プロセスによる復元演習を行う。実データのコピーで追加項目の移行、既存データ保持、アーカイブ画面、保存済みバックアップとの互換性を検証する。
検証後に公開接続を短時間止め、実行中のバックアップを待ち、復元キューロック下で未完了ジョブがないことを確認してアプリと両ワーカーを停止する。ZFSスナップショット・主DB・施設文例DB・設定を退避し、新版へ切り替える。
既存の記録・添付・バックアップ設定を照合し、新しい一覧、アーカイブ確認、記録参照を本番DBに対して読み取り専用で検証する。家庭のアーカイブ・削除を検証目的で実行しない。全家庭が使用中のまま、履歴が空であることを確認して公開を再開する。
公開再開前に失敗した場合は、元の全テーブル・全列が変更されておらず、追加されたアーカイブ状態と履歴が未使用の場合に限り、直前の主DBコピーと旧イメージ・設定へ戻す。記録に差分がある場合は自動的に上書きせず、停止状態と退避物を保持する。公開再開後のDB自動巻戻しはしない。
認証と完了確認
sudo -n true は「a password is required」を返した。sudo設定や認証情報は変更せず、ユーザーに対話認証で起動するコマンドを案内済み。
起動後は専用ディレクトリの status.json を確認し、起動コマンドを重ねて実行しない。complete の後も、実機のcommit・image・Compose・deployment.jsonを独立して照合してから完了とする。
開始確認時点では本番の切替・移行・バックアップ取得は未実行。835件の成功はローカル検証であり、実機の隔離179テストの成功を意味しない。
本番反映の結果(2026-09-22)
ユーザーがsudo認証を実行し、03:50:48 JSTに開始、03:58:03 JSTに完了した。実機の隔離コンテナで179件すべて成功(失敗・スキップ・収集エラー0件)。実プロセスの復元・再認証・再ログイン等の演習、本番DBコピーでの移行、既存バックアップ5件の検査も成功した。
- 実機イメージ:
sha256:af1bea4d6641497d7f9511e4728d677034a31ee0f6ec2588930d7c17a5c11387。 - Compose:
a15583b8d1edf8b23827986068b6e95af2eba17992ef91c6ab212cf128a2db3b(変更なし)。 - deployment.json:
b5eea6007410b308141cf5a68133f3d7427e6779fc0544b66009aba40250c73f。 - 本番ソース:
/mnt/main/open-hoikuict-pilot/releases/8ec32083aed0-20260921T185048Z。 - アプリ、gateway、backup-worker、restore-workerが正常。公開用tunnelの再開を確認。
- 更新前の72テーブルの内容と添付8ファイルを保持。家庭148件、園児99件、保護者アカウント7件を維持。
- 全148家庭の一覧・アーカイブ確認・記録画面を読み取り専用で検査。アーカイブ可能53家庭、利用中のデータ等で保護95家庭。回答・初回入力履歴のある家庭5件も参照を確認した。
- 今回の配備による家庭のアーカイブ0件、削除0件。全148家庭が使用中、アーカイブ履歴0件のまま公開を再開。
- 家庭CSVの24列と出力範囲、閲覧専用職員の拒否を実機で検査。
- 定期バックアップは更新直前と同じ「無効・毎日02:00 JST」を保持。今回の配備で無効にしたものではない。
- 直前退避識別子:
before-family-archive-20260921T185048Z。ZFS snapshot、主DB、施設文例DB、既存設定を保持。
完了記録は .local-dev/truenas-family-archive-20260921/bundle/completed-status.json、live-after.json、verified-completion.json に保存した。
利用者は本番の「家族・兄弟姉妹の管理」を更新し、各家庭の「アーカイブ」から確認画面へ進む。アーカイブ済みのタブから「元に戻す」で復帰できる。
本番の検査はアプリ内での読み取り専用描画・データ照合による。認証した利用者として本番のアーカイブ操作を実行するブラウザー検証は行っていない。