項目
内容
文書ID
BD-02
版数
V2.3(2026-09-05・P0-4 Step 5 回写:F-21/F-23/F-24 実装済+F-22/F-25/F-26 実機検証注記〔MV-01〜03/07/08・2026-09-05〕。前版 V2.2=2026-09-03 実施状態回写〔P0-3 SF 側〕+F-08/F-12 実装実態修正+C-2 修订)
作成日
2026-08-31
対象
Booking × Salesforce Experience Cloud 連携(基本設計フェーズ・機能一覧)
本書は P0-2 基本設計四文書の一つ(BD-02)。要件(RD-01 REQ-xx)を機能(F-xx)へ分解した目録であり、機能設計書・画面一覧(BD-04)・ERD(BD-07)への索引となる。
雛形(交付物雛形集 4.2 機能一覧)の 8 項目=本書主表の 8 列:機能ID/機能名・概要/対応要件ID/対応業務ID/担当ロール/新規・改修・共通/優先度/備考。
対応要件ID・対応業務ID・優先度の記入根拠は RD-01『要件一覧』付録「要件 × 機能対応表」と RD-03『業務一覧』であり、既存の対応関係のみを引用する(新規の対応関係は製造しない)。
端点は booking-backend/docs/api-contract.md 実測(2026-08-31 読取)に基づき備考列に記載。画面記号 S-xx は BD-04、データモデルは BD-07 を参照。
状態図例:✅ 既存実装済み|🔵 P0 計画(未実装)|⚪ P1。システム構成は BD-01(system-architecture.md)。
機能ID
機能名・概要
対応要件ID
対応業務ID
担当ロール
新規・改修・共通
優先度
備考
F-01
電話番号認証コードログイン:6 桁 SMS 認証コードでログインし、access/refresh/csrf を HttpOnly Cookie で発行する
REQ-002
BIZ-02
顧客・管理者
既存流用(共通認証)
Must
端点 POST /v1/auth/login、POST /v1/auth/send-verification-code、GET /v1/auth/profile。画面 S-01
F-02
ユーザー登録:電話番号+認証コード+氏名/メールで顧客アカウントを登録(電話番号重複チェック付き)
REQ-001
BIZ-01
顧客
既存流用
Must
端点 POST /v1/auth/register、GET /v1/auth/check-phone。画面 S-02
F-03
トークン更新・ログアウト・検証:401 時の自動更新、ログアウト時にトークンを Redis ブラックリストへ登録、トークン有効性検証
REQ-003
BIZ-02
顧客・管理者
既存流用(共通認証)
Must
端点 POST /v1/auth/refresh、POST /v1/auth/logout、GET /v1/auth/verify
F-04
サービスカタログ照会:稼働中サービスの一覧を閲覧
REQ-004
BIZ-03
顧客
既存流用
Must
端点 GET /v1/services。画面 S-03
F-05
予約可能時間枠照会:指定日の空き時間枠を照会(時間枠容量は現状固定値 1)
REQ-005
BIZ-03
顧客
既存流用
Must
端点 GET /v1/time-slots/available-slots。容量 1 は RULE-06 の現行実装値。画面 S-03
F-06
予約作成:サービス・時間枠を検証し予約(status=PENDING)を作成
REQ-006
BIZ-03
顧客
既存流用
Must
端点 POST /v1/bookings。競合時は直列化+限定回数リトライ(P2034)。画面 S-03
F-07
本人予約照会:自分の予約リスト・詳細を照会(非管理者はバックエンド側で本人レコードに絞り込み)
REQ-007
BIZ-05
顧客
既存流用
Must
端点 GET /v1/bookings/all、GET /v1/bookings/:id。画面 S-03
F-08
予約変更・キャンセル・削除:状態遷移検証(RULE-05・RULE-07)のうえ変更・取消を実施。取消確認メールは非同期送信。DELETE は取消動作(行保留)
REQ-008
BIZ-04
顧客
既存流用
Must
端点 PATCH /v1/bookings/:id、PATCH /v1/bookings/:id/cancel、DELETE /v1/bookings/:id(取消=status→CANCELLED 設定・行保留〔ハード削除なし・2026-09-03 実装実態に合わせ修正〕)。画面 S-03
F-09
通知:サイト内通知一覧・既読化・未読数+WebSocket による通知配信
REQ-009
BIZ-06
顧客
既存流用
Could
端点 GET /v1/notifications ほか+WebSocket。検証はデモ環境での手動確認。画面 S-03
注(共通機能の対応):REQ-014(アクセス制御:フロント三層+JwtAuthGuard・AdminGuard・RolesGuard による最終裁定)は、RD-01 対応表のとおり F-01〜F-13 に共通するガード・アクセス制御として対応する(単独の F 番号は持たない)。
機能ID
機能名・概要
対応要件ID
対応業務ID
担当ロール
新規・改修・共通
優先度
備考
F-10
管理コンソール(予約管理タブ):全量リスト・日次別・統計サマリによる予約管理
REQ-010
BIZ-07
管理者
既存流用
Must
端点 GET /v1/bookings/all、GET /v1/bookings/by-date、GET /v1/bookings/stats/summary。画面 S-04
F-11
サービス管理タブ:サービス CRUD と稼働・停止
REQ-011
BIZ-08
管理者
既存流用
Must
端点 GET /v1/services/all、POST /v1/services/admin、PATCH /v1/services/admin/:id(/status)。画面 S-04
F-12
ユーザー管理タブ:ユーザー作成・照会・統計、状態変更(セッション取消)、ロール変更(guard 化済:JWT role≠DB role 旧トークン拒否〔9040902〕・DB セッション行対応は P1)、削除
REQ-013
BIZ-09
管理者
既存流用
Must
端点 POST /v1/users、GET /v1/users*、PUT /v1/users/:id/status、PUT /v1/users/:id、DELETE /v1/users/:id。セッション挙動の差は RULE-17。画面 S-04
F-13
時間枠管理:時間枠 CRUD と稼働・停止
REQ-012
BIZ-08
管理者
既存流用
Must
端点 POST /v1/time-slots ほか。BlockedTimeSlot モデルは在るが端点未実装(既知課題・RD-01 REQ-012 備考と一致)。画面 S-04
F-14
アカウント状態提示:無効化・降格ユーザーを提示ページへ誘導(?reason=ROLE_CHANGED_FROM_ADMIN)
REQ-015
BIZ-09
顧客・管理者(無効化・降格されたユーザー)
既存流用
Should
フロントエンドガードと連動。画面 S-05
F-15
ファイルアップロード:単一・複数ファイル、アバター画像
—(本スライス対象外)
—(対象業務なし)
顧客・管理者
既存流用
—
端点 POST /v1/upload/*(src/common/file-upload/ に実装)。予約 × EC 連携スライスの対象外のため要件化対象外(RD-01 §1 対象範囲の注記と一致・RD-03 の業務にも含まれない)
注:REQ-032(30 日保持・ハードデリート)に対応する retention モジュールは既存実装・稼働中 だが、機能一覧外の運用機能として扱う(RD-01 対応表の口径)。BIZ-16・RULE-15・NFR-11 を参照。
管理者アクセス制御三層(✅ 実測・詳細は BD-04 §3.3):Next.js middleware(Cookie 存在性のみ ・ロール判定なし)→ AuthGuard+routePermissions(クライアントルート権限・/bookings は customer のみ)→ AdminPage コンポーネント内ロール検知(非 admin は storage クリアのうえ S-05 へリダイレクト)。バックエンド AdminGuard/RolesGuard が最終裁定する。
注:api-contract.md 記載の /v1/system/* 端点群(設定・レポート)は SystemModule 未インポートのため現状不可用であり、本表に列挙しない(契約文書から誤って復元しないこと)。GET /v1/health、GET /v1/upload/stats は運用補助端点のため単独立項しない。
4. Salesforce 連携機能(✅ F-20〜F-26 全て実装済・P0-4 実機検証済〔MV-01〜03/07/08・2026-09-05・CHK-03 参照〕)
機能ID
機能名・概要
対応要件ID
対応業務ID
担当ロール
新規・改修・共通
優先度
備考
F-20
予約投影:予約正本(TERM-08)の変更(作成・変更・キャンセル全て=顧客自身の標準取消を含む)を Booking__c(TERM-09)へ冪等投影。External ID 定位+version ゲート+eventId 再送時は初回結果を返す。投影ホワイトリストに顧客 PII を含まない
REQ-018(主)・REQ-019/024/029/033
BIZ-12
システム(Booking API → Apex)
新規(P0-3 両側実装済〔SF 6b9d970・Booking 3d88923〕)
Must
検証アンカー MV-04・MV-05・MV-06。ホワイトリストは RULE-11(契約凍結・PII 5 項目除外)。遅延コマンドへの 404/409 フォールバックは REQ-033(G7 決定)
F-21
管理者入口遷移:Booking 管理コンソールに「Salesforce 管理ワークベンチ」ボタンを表示(ADMIN+静的マッピング active のときのみ有効)し、Site ログインページへ遷移(遷移=SSO ではない)
REQ-017(前提 REQ-026)
BIZ-10
管理者
新規(P0-4 実装済・2026-09-05)
Must
検証アンカー MV-02 ✅ 実機検証済。表示条件は RULE-16。実装=frontend SalesforceWorkbenchEntry(非 ADMIN 非表示/ADMIN+inactive 無効表示・target=_blank・rel=noopener noreferrer)
F-22
Site 独立ログイン:外部ユーザーが /02/login から Experience Site に独立ログイン(Booking の PW/JWT/Cookie は送信しない・RULE-18)
REQ-016
BIZ-11
管理者(外部ユーザーとして・TERM-07)
既存(P0-1 構築済み・ログイン部分 ✅ 検証済み)
Must
検証アンカー MV-03(ログイン部分)。判定基準の後半「権限付与済みページのみ閲覧可能」は MV-07 として P0-4 実機検証済み(2026-09-05・Guest 強制リダイレクト ec=302 も実測)
F-23
投影リスト表示:Site 内 LWC で自 Account の予約投影を閲覧(行級限定・読取専用)
REQ-020(+REQ-030)
BIZ-13
管理者(外部ユーザーとして)
新規(P0-4 実装済・2026-09-05)
Must
検証アンカー MV-07 ✅ 実機検証済(行級+字段級)。行級範囲は RULE-13(OWD Private+Sharing Set+CRUD/FLS)。実装=LWC bookingProjectionList(サンプルテンプレート置換済み)
F-24
キャンセルコマンド受理:Site から CANCEL_BOOKING を送信し、Booking_Command__c(TERM-11)を生成して commandId/QUEUED を即時返却。状態はポーリングで取得
REQ-021(+REQ-030)
BIZ-14
管理者(送信)+システム(受付)
新規(P0-3/P0-4 実装済・2026-09-04/09-05)
Must
検証アンカー MV-07/08 ✅ MV-08 実機検証済。唯一の逆方向コマンド種別
F-25
コマンドバックグラウンド実行:Queueable が Named Credential で Booking 統合端点を呼出。Booking 側は Integration Guard・静的マッピング・ADMIN/ACTIVE・状態・expectedVersion を検証し、同一トランザクションで正本を CANCELLED に更新。409=業務競合(リトライしない)・429/503/timeout=一時的障害(限定回数リトライ)。FAILED/ERROR は同一 commandId で手動 Retry 可能
REQ-022(主)・REQ-023・REQ-024・REQ-026・REQ-027・REQ-028・REQ-029・REQ-031
BIZ-14・BIZ-15
システム
新規(P0-3 計画→実装済・2026-09-03〔6ab01c9/8581f50〕)
Must
検証アンカー MV-08/09/10/11。エラー区分は RULE-09・手動 Retry は RULE-10(原 commandId・Retry UI は P1 保留)。監査フィールド(CorrelationId・AttemptCount・HttpStatus・NextAttemptAt・LastError)は REQ-031。A3 認証=静的 Bearer Token(EC 認証パラメータ guardSecret(既存・新規追加なし・2026-09-02 S-2 時存入値をそのまま使用)+カスタムヘッダー Authorization: Bearer {!$Credential.Booking_Integration_Guard.guardSecret}(実効形式・容器限定・org 実測 2026-09-04・旧記載の简单形式 {!$Credential.guardSecret} は史実)注入・NC 数式許可 ON)+Integration Guard 定数時間比較(C-2 修订 2026-09-03) 。MV-08 実機検証済み(2026-09-05・全链 QUEUED→SUCCEEDED)
F-26
結果書き戻し:コマンド成功後、バージョンゲート付きで canonical result を Booking__c に書き戻す(incomingVersion が現行より高い場合のみ更新)
REQ-025(+REQ-024)
BIZ-14
システム
新規(P0-3 計画→実装済・2026-09-03〔44d215d〕)
Must
検証アンカー MV-08 ✅ 実機検証済(B-00000 CANCELLED/v1/SYNCED・2026-09-05)。終状態の書込みは明示 200/409 のみ(RULE-14)
Booking 側の新規追加キャリア(P0-3 計画):統合端点 POST /v1/integrations/salesforce/booking-commands、HTTP クライアントと OAuth 依存の新規導入(現状 package.json に HTTP クライアント依存なし=実測)※追記 2026-09-04:3d88923 で @nestjs/axios 3.1.3 導入済み、静的操作者マッピング(TERM-26・salesforceUserId ↔ bookingUserId の事前登録 active 1 件)、同期状態フィールド(version/syncStatus の migration 実施済〔2026-09-02・booking-backend 71c88c8・第 14 モデル IntegrationCommand 同時作成・CHK-01 B-1〜B-3・runtime 接続は P0-3 残〕)。
機能ID
機能名・概要
対応要件ID
対応業務ID
担当ロール
新規・改修・共通
優先度
備考
F-30
Site アクセス・メンバー管理:Network Live・メンバー 4 件・SelfReg=false の維持確認
REQ-034(不実施事項の確認対象)
BIZ-11
管理者(外部ユーザー)
既存(P0-1)
Won't(REQ-034 は本件で実施しない・F-30 はその確認対象)
自己登録がないことの確認が受け入れ条件(REQ-034)
F-31
外部ユーザーライフサイクル(静的部分):事前設定 1 名の外部ユーザーで運用
REQ-038(動的部分は P1 保留)
BIZ-09・BIZ-10
管理者
既存(静的 1 名)+⚪ P1(動的部分)
Won't(動的部分は P1)
sfAccessStatus 状態遷移は設計目標(未実装)。P1 計画名は SalesforceUserLink(TERM-26)
F-32
オブジェクト権限マトリクス:Booking__c/Booking_Command__c の外部ユーザー最小 CRUD/FLS・Sharing Set 行級・External OWD=Private
REQ-030
BIZ-13・BIZ-14
システム(権限設定)
新規(P0-2 契約凍結・実施済 2026-09-02〔S-3/S-4・bc7a4ac〕)
Must
権限マトリクスは P0-2 で凍結。Admin_Note__c は SF ローカル(P1 表示項目)
F-33
信頼性配信・対合・告警:Outbox/Worker・DLQ・周期対合・指標告警
REQ-037(本件では対応しない)
BIZ-12・BIZ-15
システム
⚪ P1(本件スコープ外)
Won't
P0 は「直接呼出+有限リトライ+手動 Retry」。本番級の信頼性配信ではないことを明示。注:REQ-033(G7 決定)の対合側は P1 相当であり、P0 では周期対合を実施しない(RD-01 付録の REQ-033→F-20/F-33 関連と対応)
RD-07『システム化範囲』§4・RD-01 REQ-034〜REQ-038 と同一口径。以下は本スライスでは実施しない。
No.
対象外事項
先送り先
1
SSO/JIT/自己登録/自動ライセンスプール(REQ-034・F-30 で不実施を確認)
対応しない(必要時に別案件)
2
Salesforce 内部ユーザー/System Administrator による連携(REQ-035)
対応しない(外部ライセンス・最小権限の原則)
3
全項目自由双方向同期・改期・添付ファイル連携(REQ-036)。コマンド種別は CANCEL_BOOKING のみ
対応しない(P1 の Admin_Note__c 表示のみ)
4
Outbox/Worker/DLQ/周期対合・指標告警(REQ-037・F-33)
P1(保留)
5
動的 provisioning/deprovisioning(SalesforceUserLink・Contact/User 生成・提権降権・sfAccessStatus 状態遷移)(REQ-038・F-31 動的部分)
P1(保留)
6
Trigger/Batch/Email Service 等の技術要素追加(Flow/標準 REST による代替も評価のうえ否決済み)
対応しない
7
Exactly-once 配信・分散トランザクション・生産級高可用性・リアルタイム零遅延
対応しない(冪等=version+commandId による実質重複排除のみ)
8
SF 側からの改期・予約作成(改期が必要な場合は管理者が Booking 管理画面=BIZ-04 で手動対応)
対応しない
9
ロール変更時の全デバイスセッション取消(RULE-17・guard 化済〔booking-backend 9040902〕・DB セッション行対応は P1)
P1(強化項目)
10
F-15(ファイルアップロード):実装は存在するが本スライス(予約 × EC 連携)の対象外のため要件化対象外
対応しない(RD-01 §1 対象範囲の注記)
No.
未決事項
決定期限
1
【決定済 2026-09-01】F-20/F-25 の External ID=uuid id(TERM-14。DD-01 §5 未決 1 と同日クローズ)
決定済み(2026-09-01)
2
F-25 の手動 Retry UI(現行は手順ベースの手動対応)
P1(保留・REQ-028)