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

77 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2meet Data Optimizer — Spoke SSO AddOn
> 為 **2meet-spoke-sso**OAuth 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 UUID`2mso_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
```bash
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](../2meet-data-optimizer-hub-addon/) 同期 ship。
詳見 [PLAN.md](PLAN.md) 與 [DESIGN.md](DESIGN.md)。
---
## License
GPL-2.0-or-later