管理コンソール

管理コンソールのページと運用

提供済みの各管理ページと、請求、モデレーション、書き込み操作に対する安全策を説明します。

スターターのコミット 2a1a04a と同期しています。

メニューではなく、運用担当者が知りたいことから始めます。「この請求はどの組織のものか」「クレジットが付かないのはなぜか」「このアカウントを停止すべきか」「この上限を誰が変更したか」。管理コンソールはアプリケーション側の証拠を集めますが、Stripe、アクセス解析、問い合わせ管理の代わりにはなりません。

最も安全な手段を選ぶ

  • まず事実を確認します。/users で正しい認証事業者のアカウントを特定し、/organizations でテナント、プラン、クレジット、請求を調べます。
  • 問い合わせ対応と調査には admin_ro を使い、記録に残る書き込みが必要なときだけ admin_rw を持つ運用担当者へ引き継ぎます。
  • Webhook の原因を直した後は Stripe の Resend を使います。担当者がシステム外で処理し、アプリ側のイベントを終端状態にするときだけ Resolve を使います。
  • 不正利用への対応でアクセスを止めるならアカウント停止、顧客の依頼による消去にはアカウントのデータライフサイクルを使います。保持する記録とその理由が異なります。

操作完了の条件: 対象のアカウントと組織を確認し、最小権限の操作を選び、正本となるシステムで結果を検証し、すべての書き込みに内容の分かる /audit 記録が残ることです。

管理コンソールは運用作業のための画面であり、プロダクト分析の代わりではありません。概要画面では、直近の登録、有効または支払い遅延中のサブスクリプション、停止中のアカウント、判断待ちの Stripe イベントなど、担当者の次の行動につながる状態を強調します。売上、コンバージョン、解約率は Stripe または分析ツールで扱います。

ワークスペース

  • / は運用指標、最近のアカウントと注文、対応待ちキュー、手動プランとクレジット付与ツールを表示します。ユーザーを対象にした付与は、そのユーザーの個人組織に適用されます。
  • /users はメール、UUID、ニックネームで検索し、プロバイダーに紐づく正確なアカウントを特定します。1 つのメールに複数のアカウント行が存在できるため、メールは認可キーではありません。
  • /organizations は名前、スラッグ、UUID、Stripe 顧客 ID で検索します。組織は、共有クレジット、プラン、サブスクリプション、Stripe 顧客を所有するテナントです。詳細画面では、識別情報、メンバー、現在適用されるプラン、サブスクリプション履歴、クレジット台帳、注文、利用人数上限の上書きを確認できます。

サポートではアカウントと組織の区別が重要です。/users で人物を特定し、/organizations で請求と権限が属するワークスペースを調べます。

売上関連

  • /orders は注文番号、サブスクリプション、組織、ユーザー UUID、メールでフィルターまたは検索できます。履行列は、支払い済み注文が約束したクレジットと対応する台帳行を比較し、付与漏れや重複を見えるようにします。
  • /stripe-events は Stripe の未加工データを公開せず、記録された Webhook 配信と処理状態を表示します。保留中のイベントは原因を直し、Stripe の Resend を使って外部サービスの現在状態から再実行します。Resolve は、担当者がシステム外で処理したことを記録する操作で、メモが必須です。解決は終端状態であり、イベントの再処理ではありません。
  • /reconciliation は7日、30日、90日の期間について、ローカル側の請求照合を実行します。クレジットのない支払い済み注文、台帳残高のずれ、停止した Webhook イベントを検出します。アプリに一度も届かなかった Stripe の請求は検出できないため、Stripe 側との比較には pnpm reconcile:stripe を使います。

製品運用

  • /reservations は予約番号、サービス、ユーザー、時刻、タイムゾーン、状態を一覧表示します。製品設定で予約が無効なら、停止中の機能を照会せず、その旨を表示します。
  • /feedbacks は顧客の評価、内容、状態、識別情報、送信日時を表示します。
  • /affiliates は紹介されたユーザー、紹介者、状態、対象注文、支払額、報酬を表示します。

これらはリリース済みコンソールの確認画面です。製品サービスに未実装のワークフロー状態や編集機能を追加するものではありません。

信頼と安全

  • /moderation はアカウントの停止と復元を行い、完全一致メールまたはドメインの登録ブロックルールを管理します。停止は有効なセッションを無効化してログインを防ぎますが、ユーザー、台帳、アップロード、組織の記録は残します。アカウント削除ではありません。
  • /audit は管理書き込みのページ分割された履歴で、実行者、ロール、操作、対象、状態、メモ、ネットワーク情報、メタデータを表示します。

既定では、停止は同じメールアドレスを共有する全アカウント行を対象にし、ブロックルールも追加します。これにより、新しい OAuth アカウントによる回避を防ぎます。メール照合ではプラス接尾辞を除去し、Gmail ではドットも除去します。ドメインルールは使い捨てメールの大量登録に対応するためのものです。

書き込みの安全策

提供される書き込み機能は、手動クレジット付与、無償プランの付与と取り消し、組織の利用人数上限の上書きとリセット、アカウントの停止と復元、ブロックリスト変更、Stripe イベントの終端解決に限定されています。

すべての提供済み書き込みルートは admin_rw を要求し、同一オリジンのリクエストを検証して、管理操作用の監査ロガーを呼び出します。クレジット付与には冪等性キーが必要です。決定的かつ一意な台帳取引番号を生成するため、同じ操作を再試行しても二重に付与されません。手動のプランとクレジットは既定で無期限です。7日、30日、90日、または任意の有効期限を指定する場合は、未来の日時でなければなりません。

保存済みの Stripe Webhook データを再処理するボタンは意図的に用意していません。原因を修正して Stripe の Resend を使ってください。また、アカウント停止を削除へ変換することもありません。ユーザーの依頼によるデータ出力と消去は、別のアカウントデータライフサイクルに従います。

ローカル開発以外に公開する前に、管理コンソールのセットアップとアクセスを確認してください。

永続 job の復旧

/jobs は payload JSON や dedupe key を出さず、status、attempt、due age、subject、安全な error を表示します。Write operator は監査 note 付きで idempotent failed job の retry または未 claim notification の cancel ができます。Running job は provider effect 済みの可能性があるため取消できません。Credit、storage、account lifecycle、campaign は所有 workflow から復旧します。

管理コンソールのページと運用 · Sushi SaaS