Assist_Design/docs/ja/how-it-works/system-overview.md
ramirez d7efc99fdc Add Japanese translations of UAT and how-it-works documentation
Translated all UAT test guides and how-it-works documentation to Japanese.
Files are organized under docs/ja/uat/ and docs/ja/how-it-works/.
2026-02-24 12:11:14 +09:00

4.5 KiB
Raw Blame History

sidebar_position, title
sidebar_position title
1 システム概要

ポータルの仕組み(概要)

目的:ポータルの機能、各システムが管理するデータ、データの鮮度管理方法を説明します。

コアコンポーネントと責務

  • Portal UI (Next.js) + BFF API (NestJS):すべてのユーザートラフィックを処理し、外部システムを呼び出します。
  • Postgresポータルユーザーとクロスシステムマッピング user_id ↔ whmcs_client_id ↔ sf_account_id を保存。
  • Redisキャッシュグローバルキャッシュ(商品カタログなど)とアカウントスコープキャッシュ(利用資格など)の組み合わせで負荷を軽減し、顧客データの混在を防ぎます。
  • WHMCS請求の管理システムクライアント、住所、請求書、支払い方法、サブスクリプション
  • SalesforceCRMアカウント/コンタクト)、商品カタログ/価格表、注文、サポートケースの管理システム。
  • FreebitSIMプロビジョニングのみ、モバイル/SIM注文のフルフィルメント時に使用。

高レベルデータフロー

  • サインアップポータルがSalesforceでCustomer Numberを確認 → WHMCSクライアント請求アカウントを作成 → ポータルユーザー + マッピングを保存 → Salesforceをポータルステータス + WHMCS IDで更新。
  • ログイン/リンク既存WHMCSユーザーがWHMCS認証情報を検証。ポータルユーザーを作成し、IDをマッピングし、Salesforceアカウントをポータルアクティブとしてマーク。
  • サービス & チェックアウト:商品/価格はSalesforceのポータル価格表から取得。利用資格はアカウントごとに確認。チェックアウト前にWHMCSの支払い方法が必要。
  • 注文Salesforceに住所スナップショット付きで作成。Salesforce変更イベントがフルフィルメントをトリガーし、対応するWHMCS注文を作成しSalesforceステータスを更新。
  • 請求請求書、支払い方法、サブスクリプションはWHMCSから読み取り。WHMCS内での請求書支払い用に安全なSSOリンクを生成。
  • サポートケースはOrigin = "Portal Website"でSalesforceに直接作成/読み取り。

データ所有権チートシート

  • ID & セッションPortal DBハッシュ化パスワード、WHMCS/SF認証情報の保存なし
  • 請求プロフィール & 住所WHMCS権威的ソース。ポータルが変更をWHMCSに書き戻し。
  • 注文 & 注文ステータスSalesforce真のソース。フルフィルメント時にWHMCSが請求/プロビジョニングコピーを受信。
  • サポートケースSalesforceポータルはアカウントのケースのみフィルター

キャッシュ & 鮮度Redis

  • サービスカタログイベント駆動Salesforce CDC+ 12時間の安全TTL。「volatile」データは60秒TTL。
  • 注文イベント駆動Salesforce CDC、TTLなし。
  • 請求書一覧90秒キャッシュ、詳細5分キャッシュ。
  • サブスクリプション/サービス一覧5分、個別10分キャッシュ。
  • 支払い方法15分キャッシュ。決済ゲートウェイ一覧1時間キャッシュ。
  • WHMCSクライアントプロフィール30分キャッシュ。
  • サポートケースSalesforceからライブ読み取りキャッシュなし

エラー時の動作

  • 安全に失敗し明確なメッセージを表示Customer Number不明、重複アカウント、支払い方法不足など。
  • WHMCS/Salesforceが一時的に利用不可の場合、部分的なデータではなく「後でやり直してください」メッセージを表示。
  • フルフィルメントがエラーコード/メッセージをSalesforceに書き戻し、チームがプロビジョニング停止の理由を確認可能。

パブリック vs アカウントAPIの境界

BFFは2種類のサービスカタログエンドポイントを公開

  • パブリックカタログ(パーソナライズなし)GET /api/public/services/* — Cookie/トークンを無視。パブリックキャッシュ可能。
  • アカウントカタログ(認証 + パーソナライズ)GET /api/account/services/* — 認証が必要。アカウント固有のカタログバリアント返却可能。