管理コンソールのページと運用
提供済みの各管理ページと、請求、モデレーション、書き込み操作に対する安全策を説明します。
Starter のコミット
7d452a6と同期しています。
管理コンソールは運用ワークスペースであり、製品分析の代替ではありません。概要画面では、直近の登録、有効および支払い遅延中のサブスクリプション、停止中のアカウント、判断待ちの Stripe イベントなど、担当者の次の行動を変える状態を強調します。売上、コンバージョン、チャーンは Stripe または分析ツールで扱います。
ワークスペース
/は運用指標、最近のアカウントと注文、対応待ちキュー、手動プランとクレジット付与ツールを表示します。ユーザーを対象にした付与は、そのユーザーの個人組織に適用されます。/usersはメール、UUID、ニックネームで検索し、プロバイダーに紐づく正確なアカウントを特定します。1 つのメールに複数のアカウント行が存在できるため、メールは認可キーではありません。/organizationsは名前、slug、UUID、Stripe 顧客 ID で検索します。組織は共有クレジット、プラン、サブスクリプション、Stripe 顧客を所有するテナントです。詳細画面では、識別情報、メンバー、解決済みプラン、サブスクリプション履歴、クレジット台帳、注文、シート上限の上書きを確認できます。
サポートではアカウントと組織の区別が重要です。/users で人物を特定し、/organizations で請求と権限が属するワークスペースを調べます。
売上関連
/ordersは注文番号、サブスクリプション、組織、ユーザー UUID、メールでフィルターまたは検索できます。履行列は、支払い済み注文が約束したクレジットと対応する台帳行を比較し、付与漏れや重複を見えるようにします。/stripe-eventsは Stripe の生ペイロードを公開せず、記録された webhook 配信と処理状態を表示します。保留中のイベントは原因を直し、Stripe の Resend を使ってプロバイダーの現在状態に対して再実行します。Resolve は担当者がシステム外で処理したことを記録する操作で、メモが必須です。解決は終端状態であり、リプレイではありません。/reconciliationは 7、30、90 日の期間についてローカル側の請求照合を実行します。クレジットのない支払い済み注文、台帳残高のずれ、停止した webhook イベントを検出します。アプリに一度も届かなかった Stripe の請求は検出できないため、プロバイダー側との比較にはpnpm reconcile:stripeを使います。
製品運用
/reservationsは予約番号、サービス、ユーザー、時刻、タイムゾーン、状態を一覧表示します。製品設定で予約が無効なら、停止中の機能を照会せず、その旨を表示します。/feedbacksは顧客の評価、内容、状態、識別情報、送信日時を表示します。/affiliatesは紹介されたユーザー、紹介者、状態、対象注文、支払額、報酬を表示します。
これらはリリース済みコンソールの確認画面です。製品サービスに未実装のワークフロー状態や編集機能を追加するものではありません。
信頼と安全
/moderationはアカウントの停止と復元を行い、完全一致メールまたはドメインの登録ブロックルールを管理します。停止は有効なセッションを無効化してログインを防ぎますが、ユーザー、台帳、アップロード、組織の記録は残します。アカウント削除ではありません。/auditは管理書き込みのページ分割された履歴で、実行者、ロール、操作、対象、状態、メモ、ネットワーク情報、メタデータを表示します。
既定では、停止は同じメールアドレスを共有する全アカウント行を対象にし、ブロックルールも追加します。これにより、新しい OAuth アカウントによる回避を防ぎます。メール照合ではプラス接尾辞を除去し、Gmail ではドットも除去します。ドメインルールは使い捨てメールの大量登録に対応するためのものです。
書き込みの安全策
提供される書き込みツールは、手動クレジット付与、無償プランの付与と取り消し、組織シート上限の上書きとリセット、アカウントの停止と復元、ブロックリスト変更、Stripe イベントの終端解決に限定されています。
すべての提供済み書き込みルートは admin_rw を要求し、同一オリジンのリクエストを検証して管理監査ロガーを呼び出します。クレジット付与には冪等キーが必要で、決定的かつ一意な台帳トランザクション番号を生成するため、同じ操作を再試行しても二重付与されません。手動のプランとクレジットは既定で無期限です。任意の 7、30、90 日またはカスタム有効期限は未来でなければなりません。
保存済み Stripe webhook ペイロードを再生するボタンは意図的にありません。原因を修正して Stripe の Resend を使ってください。また、停止を削除に変換することもありません。ユーザー要求によるエクスポートと消去は、別のアカウントデータライフサイクルに従います。
ローカル開発以外に公開する前に、管理コンソールのセットアップとアクセスを確認してください。