運営アドミン / トーク管理
運営アドミン / トーク管理
本ページは 2 段構成。上段が biz/CS 向け(ユーザー提示可)、下段(
## 🔧 実装詳細以降)が dev 向け。biz/CS がユーザーへ提示・転用してよいのは上段のみ。
概要
運営アドミン向けのトーク管理機能群。トーク機能で発生する各種の整合性問題(最新投稿日時のずれ・参加者リストのずれ・サムネイル表示崩れ等)の運用復旧、CS 案件で削除済み含むトーク履歴の調査などをまとめて扱う。
主な対象操作:
- 削除済みを含むトーク一覧取得: CS 調査用に論理削除済みトークも含めた閲覧
- トーク参加者・権限の同期: トークルームの講師・入会者情報を内部キャッシュへ同期
- サムネイル再生成: 古い形式(base64)で保持されているサムネイルを最新形式(外部ストレージ)へ移行
- ルーム最新投稿日時の再計算: 各トークルームの最新投稿日時を全件再計算して反映
- 講座参加者の再同期(プレビュー対応): 指定講座の現入会者全員を内部キャッシュへ強制再投影。実行前にプレビューで影響規模を確認可能
- 誤チャンネル表示スレッド投稿の非表示メンテ(v2.30.0 追加): スレッド限定投稿チャンネルで受講者の投稿が誤って本流表示状態になっているものを一括非表示化
主な利用想定は、CS で「トークの最新表示が古い」「特定受講者が参加者一覧から消えた」「過去削除されたトークを調査したい」「サムネイル再生成」等の相談を受けたときの対応、またはリリース直後の整合性メンテナンス。
同期処理の挙動差: 「トーク参加者・権限の同期」は 追加 only の動作(既存の差分や名前変更は反映されない)。一方、「講座参加者の再同期」は 全件強制再投影 で、ユーザー名変更も反映できる。CS 対応で「名前変更が反映されない」相談時は後者の経路を使う。
退会済みユーザーの処理: 「トーク参加者・権限の同期」は追加 only のため、退会済みユーザーが内部キャッシュ上に残ってしまうケースがある。クリーンアップ専用の経路は提供していないため、必要な場合は内部対応となる。
誤チャンネル表示スレッド投稿の非表示メンテ(v2.30.0): スレッド限定投稿チャンネルで受講者の投稿が、本来チャンネル本流に表示されない設計のところ誤って本流表示状態になっているケースに対する一括補正機能。投稿本体は残し、本流の見え方のみ修正する非破壊的な操作。詳細は
../talk/thread.md参照。
📝 レビュー観点:
- 目的: トーク不整合の運用復旧、Firestore 側のデータ同期
- 誰が使うか: 運営アドミン
- どこで使うか: 運営アドミン汎用ツール経由
- 隣接機能との関係: トーク機能(
../talk/各ページ)- CS 問い合わせで頻発する論点: 「トークが見えない/更新されない」「最新トーク表示が古い」「サムネイル再生成」
- [本機能特有] アクセス情報同期は追加 only: 削除済みユーザーが Firestore に残存する可能性
- [本機能特有] 講座参加者 Firestore 再投影に dryRun: 影響規模を事前に確認可能
- [本機能特有] サインド URL 期限 24 時間: サムネイル再生成時に注意
利用シナリオ
シナリオ 1: 削除済み含むトーク履歴の調査
CS 案件で「過去に削除されたトーク内容を確認したい」要望に対して、運営アドミンが指定ルームの論理削除済み含むトーク一覧を取得して内容確認。調査用途で読み取りのみ。
シナリオ 2: 受講者名変更後の同期反映
受講者がプロフィール上の名前を変更したのにトークルーム内で旧名のまま表示される、といったケースで運営アドミンが講座参加者の再同期を実行。全件強制再投影なので名前変更も反映される。
シナリオ 3: サムネイルの形式移行
古い形式(画像データ自体が DB に直接保存されている形式)で残っているトークサムネイルを、最新の外部ストレージ形式へ移行。表示パフォーマンス改善・運用統一の目的で運営アドミンが実行。
シナリオ 4: ルーム最新投稿日時のずれ復旧
「特定ルームの最新投稿日時の表示が古い」CS 案件で、運営アドミンが全講座の最新投稿日時を再計算 + 内部キャッシュ反映。
シナリオ 5: 講座参加者の再同期(プレビュー利用)
講座配下の入会者全員を内部キャッシュへ再投影。事前にプレビューモード(dryRun)で影響人数を確認してから本実行する運用。
シナリオ 6: 誤チャンネル表示スレッド投稿の非表示化(v2.30.0)
スレッド限定投稿ルームで受講者のスレッド投稿が誤って本流表示状態になっているケースを、運営アドミンが一括補正。投稿本体は残し本流の見え方のみ修正。
よくある失敗ケース
- 存在しないルームの指定: ルームが見つからないエラー
- 退会者の参加者一覧残存: 追加 only 同期では救済されないため、別対応が必要
- 講師名変更が反映されない: 講座参加者の再同期では入会者のみが対象、講師の表示名変更は別経路
権限別仕様
権限定義は ../user-roles.md 参照。用語は ../terminology.md。
横断軸
| 操作 | 運営アドミン | 受講者 | 講師 |
|---|---|---|---|
| 削除済み含むトーク一覧取得 | ○ | × | × |
| アクセス情報の Firestore 同期 | ○ | × | × |
| サムネイル再生成 | ○ | × | × |
| 最新投稿日時の再計算 | ○ | × | × |
| 講座参加者の Firestore 再投影 | ○ | × | × |
📝 レビュー観点:
- 全操作が運営アドミン専用、講師には経路なし
機能詳細(ふるまい)
削除済み含むトーク一覧
- 指定ルーム配下のトーク履歴を、論理削除済みトークも含めて一覧取得
- ページング対応(既定 20 件 / ページ)、降順表示
- 主に CS 調査用途
トーク参加者・権限の同期
- 全講座を対象に、トークルーム・講師・入会者の参加者情報を内部キャッシュへ同期
- 追加 only の動作: 内部キャッシュに未登録の参加者を追加するのみ。既存の参加者削除や名前変更は反映されない
- 講師名や受講者名の変更を反映したい場合は「講座参加者の再同期」を利用
サムネイル再生成
- 古い形式(画像データが DB 内に直接保存されている形式)で残るサムネイルを最新の外部ストレージ形式へ移行
- 移行後、サムネイル表示用の一時 URL(24 時間有効)を内部キャッシュへ反映
- 一時 URL の期限切れ後の再発行は同経路を再度実行
最新投稿日時の再計算
- 全講座を対象に、各ルームの最新投稿日時を再計算
- 計算結果を DB と内部キャッシュ両方に反映
- 冪等な処理のため複数回実行しても結果は変わらない
講座参加者の再同期(プレビュー対応)
- 指定講座の現入会者全員を、内部キャッシュへ強制的に再投影
- 全件強制再投影 のため、ユーザー名変更などの差分も反映される
- 対象講座を指定しない場合は全講座対象
- プレビューモード(dryRun)で影響人数を事前確認可能。本実行前のチェックに利用
- 処理時間も結果として返却される
誤チャンネル表示スレッド投稿の非表示メンテ(v2.30.0)
スレッド限定投稿チャンネルで受講者がスレッド投稿時に、本来チャンネル本流に表示されない設計のところ、誤って本流表示状態になっている投稿を一括で本流非表示に戻すメンテ機能。
- 対象抽出: スレッド限定投稿ルーム配下で、本流非表示のはずが本流表示状態になっている受講者のスレッド投稿を一覧取得
- 一括非表示化: 抽出された投稿を一括で本流非表示に更新(投稿本体・スレッド構造には触らない)
- 結果返却: 検出件数 / 更新件数を返却
特徴:
- 投稿本体は残す(テキスト・添付・スレッド構造には触らない)
- 本流非表示にした投稿はスレッド内では引き続き閲覧可能
- 通知の再送・取消は行わない
- v2.29.4 以前に既に作成されてしまった誤状態の投稿に対する救済経路として運用
誤チャンネル表示された受講者スレッド投稿の非表示メンテ(v2.30.0 で追加)
スレッド限定投稿チャンネルで受講者がスレッド投稿時に、本来チャンネル本流に表示されない設計のところ、誤って本流表示状態(「チャンネルにも表示」フラグが ON)になってしまった投稿を、運営アドミンが一括で本流非表示に戻すメンテ機能。
操作の流れ:
- 対象抽出: スレッド限定投稿チャンネル配下の、本来本流非表示のはずなのに本流表示状態になっている受講者スレッド投稿を一覧取得
- 一括非表示化: 抽出された投稿を一括で本流非表示に更新(投稿本体の削除はせず、本流の見え方のみ修正)
- 結果返却: 検出件数 / 更新件数を返却
用途:
- v2.29.4 hotfix(FIN-398)以前に既に投稿されてしまった、誤って本流表示状態の受講者スレッド投稿を CS 連携で発見した際の救済
- スレッド限定投稿ルームで受講者の投稿が本来の意図と違う見え方になっているケースの整合性回復
注意:
- 投稿本体は残す(テキスト・添付・スレッド構造には触らない)
- 本流非表示にした投稿はスレッド内では引き続き閲覧可能
- 通知の再送・取消は行わない
- 関連 PSD:
../talk/thread.md「v2.29.4 / v2.30.0 の関連変更」
📝 レビュー観点:
- 入力 → 処理 → 出力: 経路入力 → 即時実行 → 件数 / 処理時間返却
- エッジケース: 退会済みなのに Firestore に残るケース、講師名変更が反映されないケース
- エラー表示: ルーム不在で
talk.room.not.exist等- [本機能特有] アクセス情報同期は追加 only: 退会者・名前変更は救済されない
- [本機能特有] 受講者と講師の同期経路差: 講座参加者再投影では入会者のみ、講師の表示名変更は別経路
admin 操作
本ページ全体が運営アドミン操作の集約。
該当なし / 実装されていない
- 退会済み受講者の Firestore からの削除: 未実装(追加 only 同期のみ)
- サブ講師 / メイン講師の名前変更を Firestore に反映: 既存経路では更新されない(追加 only)
- トーク本体の削除取消経路: 未検出
📝 レビュー観点:
- クリーンアップ系経路の必要性
品質 / 約束事項
- 応答性: 一覧は即時。Firestore 全件投影は規模次第で時間がかかる
- 信頼性: 各操作のトランザクション境界に依存。Firestore は冪等な強制 set
- 制限値:
- ページング: デフォルト 20 件
- サインド URL 期限: 24 時間(サムネイル再生成)
- データ保持: 論理削除済みトークも内部的に保持
📝 レビュー観点:
- [本機能特有] サインド URL 24h 期限: 期限切れ後の再発行経路
変更履歴(リリースノート候補)
v2.30.0: 2026-04-28
- [追加] 「誤チャンネル表示された受講者スレッド投稿の非表示メンテナンス機能」を追加(FIN-400)。スレッド限定投稿ルームで受講者の投稿が誤って本流表示状態になっているものを運営アドミン側で一括非表示に戻せる。CS 連携での救済経路として運用。詳細は
../talk/thread.md参照
v2.29.2: 2026-05-04(PSD 初版)
- [PSD 追加] 本ドキュメント初版作成。v2.29.2 時点の実装を起こし。機能追加・変更は含まない
📝 レビュー観点:
- 過去の主要変更(Firestore 投影系の追加 / dryRun オプション導入 等)
関連ドキュメント
- 権限定義:
../user-roles.md - 用語辞書:
../terminology.md - 関連 PSD:
../talk/— トーク機能各ページ