Files
2meet-data-optimizer-spoke-…/README.md
T
wpdev 265bd14903 chore: initial snapshot of 2meet-data-optimizer-spoke-addon v0.1.0
Baseline before backporting wp-data-optimizer v3.0.1-v3.4.6.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY
2026-07-31 05:06:36 +08:00

2.2 KiB
Raw Blame History

2meet Data Optimizer — Spoke SSO AddOn

2meet-spoke-ssoOAuth client / SSO 客戶端)提供高效能 token cache 與 SLO 整合。


What it does

把 spoke-sso 對 wp-data-optimizer 的依存抽出來:

項目 內容
User entity group sso 群組 7 欄位 → flat table wp_wpdo_user_sso(取代 _tmso_* usermeta EAV
Custom tables 2 張 mso 自訂表(2mso_sso_config / 2mso_user_mapping)→ doctor 健診
CLI wp tmdo spoke-sync(從舊 tmso* usermeta 遷移)/ wp tmdo spoke-force-logout(強制 token 過期)
Crypto TMSO_Crypto interop wrapperrefresh_token AES-256-CBC encrypted

SSO Group 欄位

欄位 Type Searchable 用途
hub_global_user_id text Hub 全局 user UUID2mso_user_mapping.global_user_id bridge key
picture_url text SSO 大頭貼 URL
last_id_token_hash text SHA-256(last_id_token) for SLO 比較(不存明文,A-4 修復)
refresh_token_enc textarea 加密 refresh token (enc_vN:ciphertext)
token_expires_at datetime SSO token 過期時間(設過去可強制重新認證)
sso_last_login_at datetime 上次 SSO 登入時間
sso_login_count integer SSO 登入次數

設計原因:silent refresh 每 15 min 觸發一次,10M user 場景下 wp_usermeta EAV scan 會成熱點;flat table + object cache 命中可降低 DB load 10-50×。


Requirements

  • WordPress ≥ 6.0
  • PHP ≥ 8.1
  • 2meet-data-optimizer ≥ 0.1.0
  • 2meet-spoke-sso ≥ 1.15.0

Installation

wp plugin install /path/to/2meet-data-optimizer-spoke-addon-v0.1.0.zip --activate

# 驗證 sso group 已註冊
wp tmdo entity-fields --entity=user --group=sso

# 從舊 _tmso_* usermeta 遷移到 flat table
wp tmdo spoke-sync --dry-run
wp tmdo spoke-sync --batch-size=500

Fallback

若本 AddOn 未啟用,spoke-sso 仍能透過 native update_user_meta() 儲存 SSO 資訊(透過 _tmso_* usermeta 路徑),效能下降但功能不影響。


Phase

Phase 2 — 與 Hub AddOn 同期 ship。

詳見 PLAN.mdDESIGN.md


License

GPL-2.0-or-later