運営アドミン / マスターデータ管理
運営アドミン / マスターデータ管理
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
運営アドミン向けの「特定機能ドメインに収まらない横断的なマスターデータ操作」をまとめた機能群。各機能ドメイン(コンテンツ / 契約 / 講師 / 講座 / トーク / ユーザー / システム)の運営アドミン操作とは別に、複数領域を横断する整合性メンテナンスや汎用一括操作を担当する。
主な対象操作:
- 料金プラン公開状態の切替: 開始日 / 終了日 / 非表示フラグの代理更新
- 講座本体の全フィールド書換: 講座運営の全項目を一括上書き
- 講座設定の全フィールド書換: 各種設定(事業者登録 / ダウンロードフラグ等)の一括上書き
- 交付書面非表示の一括初期化: 投資助言を行わない講座の交付書面非表示フラグを一括 ON
- セレクション既読情報の再同期: 受講者のセレクション既読情報を内部キャッシュへ全件再投影
- ユーザータグ整合性チェック: タグ不在・名称不一致などの整合性問題を検出してレポート
主な利用想定は、システムリリース時のマスターデータ移行作業、整合性メンテナンス、CS 対応で「料金プランの公開状態がおかしい」「セレクションの既読が反映されない」「ユーザータグが消えた」といった相談を受けたときの調査・補修。
PATCH 部分更新の挙動注意: 料金プラン公開状態の更新では、フィールドに値を指定しないと内部的に「空の値で上書き」される挙動となっている。CS 対応では「変更したい項目のみ指定」ではなく「現状の全項目をそのまま渡しつつ、変更したい項目だけ書き換える」運用が安全。改善対象として認識されている。
大規模再同期の処理時間: セレクション既読の再同期処理は同期実行のため、件数規模が大きい場合は長時間化する。実行タイミングは運用判断で。
📝 レビュー観点:
- 目的: 横断的なマスターデータの一括操作・整合性メンテナンス
- 誰が使うか: 運営アドミン
- どこで使うか: 運営アドミン汎用ツール経由
- 隣接機能との関係: 講座管理(
./plan.md)、講師管理(./owner.md)- CS 問い合わせで頻発する論点: 「料金プラン公開状態の切替」「ユーザータグ整合性レポート」「ライブラリ既読の再投影タイミング」
- [本機能特有] PATCH の null 上書き挙動: 部分更新と銘打つが null を渡すと null 化される副作用
- [本機能特有] ライブラリ既読再投影は同期実行: 件数規模で長時間化リスク
- [本機能特有] 「マスター系」のスコープが曖昧: 他の運営アドミン機能 PSD と境界の判断が必要
利用シナリオ
シナリオ 1: 料金プラン公開状態の期間・表示切替
特定の料金プランの公開期間(開始日 / 終了日)や非表示フラグを運営アドミンが代理更新。プランの限定公開期間を運営側で調整するケースに利用。
シナリオ 2: 講座本体・講座設定の全項目代理書換
CS 対応で「講座の特定設定を一気に切り替えたい」要望に対して、講座本体や設定を全フィールド単位で上書き更新。通常の講師経路では手間のかかる設定群を運営側で一括反映する用途。
シナリオ 3: 交付書面非表示の一括初期化
投資助言を行わない講座の交付書面表示フラグを一括で初期化(非表示 ON)。法的要件の整理・運用方針変更時の一括反映用途。冪等な処理のため複数回実行しても結果は変わらない。
シナリオ 4: セレクション既読の再同期
「セレクション内のコンテンツ既読が反映されない」「既読がリセットされた」という CS 案件で、内部キャッシュへの再同期を実行して整合性を補修。
シナリオ 5: ユーザータグ整合性チェック
「ユーザータグの登録に不整合が出ている可能性がある」状況で、整合性レポートを取得。タグ不在・名称不一致などの問題が一覧で返るため、修正対応の起点として利用。読み取り専用処理のため副作用なし。
よくある失敗ケース
- 意図しないフィールドの空値化: 部分更新時に値を指定し忘れた項目が空値で上書きされる挙動。指定方法の確認が必要
- 大規模データの再同期処理: セレクション既読の全件再同期は規模次第で時間がかかる。実行中はシステム負荷も増えるため運用タイミングに注意
- 講座全フィールド書換の戻し作業: 全フィールド上書きの結果、想定と異なる値が反映されたケースの戻し。実行前のバックアップ・確認が重要
権限別仕様
権限定義は ../user-roles.md 参照。用語は ../terminology.md。
横断軸
| 操作 | 運営アドミン | 受講者 | 講師 |
|---|---|---|---|
| 料金プランの公開状態切替 | ○ | × | × |
| 講座の全フィールド書換 | ○ | × | × |
| 講座設定の全フィールド書換 | ○ | × | × |
| 交付書面非表示の一括初期化 | ○ | × | × |
| ライブラリ既読の Firestore 再投影 | ○ | × | × |
| ユーザータグ整合性チェック | ○ | × | × |
📝 レビュー観点:
- 全操作が運営アドミン専用、講師には経路なし
機能詳細(ふるまい)
料金プラン公開状態の切替
- 指定料金プランの開始日 / 終了日 / 非表示フラグを更新
- 部分更新形式だが、値を指定しなかったフィールドは空値で上書きされる挙動のため、運用上は変更したいフィールド以外も明示的に渡す方が安全(改善対象)
- 該当料金プランが存在しない場合はエラー
講座の全フィールド書換
- 講座本体の全項目を一括上書き
- 通常運用では講師の編集経路(
../plan-management/edit.md)を利用するが、本機能は運営アドミンによる代理一括書換を可能にする
講座設定の全フィールド書換
- 講座設定(事業者登録 / 各種ダウンロードフラグ / 個人情報タイプ 等)を一括上書き
- 設定切替が広範囲に及ぶケースの一括反映用途
交付書面非表示の一括初期化
- 投資助言を行わない講座について、交付書面の非表示フラグを一括 ON
- 冪等な処理(複数回実行しても結果は変わらない)
- 法的要件の整理・運用方針変更時の一括反映に利用
セレクション既読の再同期
- 内部に保持されているセレクション(ライブラリ)既読情報を、表示用キャッシュへ全件再投影
- 整合性破綻・既読反映遅延などの補修用途
- 同期実行のため件数規模次第で長時間化する
ユーザータグ整合性チェック
- ユーザータグの不整合(タグ不在・名称不一致等)を検出し、不一致一覧 + 件数を取得
- 読み取り専用処理(副作用なし)
- 不一致が見つかった場合の修正対応は別経路で実施
📝 レビュー観点:
- 入力 → 処理 → 出力: 経路入力 → 即時実行
- エッジケース: PATCH の null 渡し、ライブラリ件数規模、整合性チェックの大規模データ
- エラー表示: リソース不在
ResourceNotFoundException- [本機能特有] 「マスター系」のスコープ: 他の運営アドミン PSD で扱う
AdminMasterServiceの操作(registerPlan / freeContract / bankTransferContract / deleteReview / updateUserRole / updateTestUser 等)は本ページでは扱わない(各機能 PSD 参照)
admin 操作
本ページ全体が運営アドミン操作の集約。
該当なし / 実装されていない
- マスターデータ管理の専用 UI: 未実装(汎用ツール経由のみ)
📝 レビュー観点:
- 専用 UI の必要性
品質 / 約束事項
- 応答性: 即時。ライブラリ既読再投影は件数次第で長時間化
- 信頼性: トランザクション境界に依存
- 制限値:
- PATCH 部分更新: null フィールドは null 化される(改善課題)
- データ保持: 各テーブルの更新ポリシーに従う
📝 レビュー観点:
- [本機能特有] PATCH の null 上書き挙動: 改善課題
- [本機能特有] 同期実行のタイムアウトリスク: 大規模データで顕在化
変更履歴(リリースノート候補)
v2.29.2: 2026-05-04(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(PATCH 経路追加 / ユーザータグ整合性チェック追加 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
./overview.md— 全体像・認証認可./plan.md— 講座管理./owner.md— 講師管理