LINE Connectivity — สิ่งที่ยังค้าง
ที่เดียวสำหรับของที่ยังไม่จบ — PR ที่ยังไม่ merge, ของที่ยังไม่ได้ทำ, สิ่งที่รอทีมอื่น, ขอบเขตที่ทดสอบได้/ไม่ได้ และเส้นตายของ tunnel/LIFF · แยกออกมาเพื่อให้หน้า Architecture กับ Scenario เป็นเอกสารอธิบายระบบล้วน ๆ
อัปเดต: 2026-08-13
หน้านี้คือ ของที่ยังไม่จบ อย่างเดียว — เปลี่ยนบ่อย มีวันหมดอายุ Architecture กับ Scenario อธิบาย ระบบตามที่ออกแบบไว้ ซึ่งรวมของที่ยังไม่ merge ด้วย — ต่างกันตรงไหน ดูตารางล่าง
1. Baseline ที่เอกสารชุดนี้อ้างอิง
| ส่วน | อ้างอิงถึง |
|---|---|
| Backend | Backend_UserService origin/development @ 2ec5e9a (= ของที่รันบน dev) + branch ของ PR #2076 (d0b4ac5) และ PR #2124 (cf6466b) |
| Frontend | Frontend_LINE_Connectivity branch feature/line-connectivity-register @ 6ee1195 (PR #1743) |
| วิธียืนยัน | เดินหน้าจอจริงทั้งชุด 07/08/2569 · ตรวจเทียบโค้ด 11/08 และ 13/08/2569 |
| ขอบเขต environment | dev เท่านั้น (Owner 07/08) — SIT / UAT / PROD ตัดออกจากงานนี้ทั้งหมด · แต่ห้ามลบ key LineLogin ใน IaC ของ sit/uat เพราะ check-config-parity.py จะทำ build fail |
2. PR ที่ยังไม่ merge — ของบน dev ยังไม่เท่ากับเอกสาร
| PR | เรื่อง | ถ้ายังไม่ merge = บน dev เป็นยังไง |
|---|---|---|
| #2124 BE | บังคับ LINE ID token ทั้งสมัครและยกเลิก | ยัง ยกเลิกของคนอื่นได้ ด้วย email + juristicId ผ่าน API (ไม่ต้องมี OTP/บัญชี LINE) และยัง สมัครโดยไม่ส่ง token ได้ ⇒ ได้ binding ที่ LineUserId = null ซึ่งไม่นับเข้าเพดาน 20 คู่ และไม่โผล่ในรายการยกเลิกของใครเลย |
| #2076 BE | หลักฐาน consent รุ่นแข็ง (กฎ 7 · เก็บเนื้อหาจริง · ActingCapacity ตามความจริง) | ยังไม่ cross-check required condition (เช็คแค่ว่า consents ที่ส่งมา agreed ครบ) · เก็บแค่ hash ไม่เก็บเนื้อหา · เขียน ActingCapacity = JuristicRepresentative เสมอ ทั้งที่ยังไม่มีคำรับรองจริง |
| #1743 FE | ทั้งแอป LINE Connectivity + liffId ค่าจริง + liff.login() | — (ยังไม่มีการ deploy FE เลย รันผ่าน dev server + tunnel เท่านั้น) |
FE ยังมี PR ค้างซ้ำซ้อนอีก 2 ใบ (#1545, #1537) — branch ของ #1743 ครอบเนื้อหาทั้งสองใบแล้ว (
foundationเป็นบรรพบุรุษของregister) ⇒ merge #1743 ใบเดียวจบ อีกสองใบควรปิด
ลำดับที่แนะนำ: #2076 → #2124 → #1743 · #2124 ตั้งใจไม่แตะไฟล์ที่ #2076 แก้ จึงไม่ชนกัน
3. รอทีมอื่น
- ทีมกฎหมาย ยังไม่ประกาศ entry
LINE-JURISTIC-CAPACITYใน Centralized admin terms (ยืนยันจาก DB จริง 10/08) ⇒ checkbox “ทำการแทนนิติบุคคล” ไม่โผล่บนจอ และActingCapacityจะเป็นUnverified(หลัง #2076) — โค้ดทั้ง FE/BE พร้อมแล้ว รอข้อความอย่างเดียว
4. ของที่ยังไม่ได้ทำ (รู้แล้ว ยังไม่แก้)
| เรื่อง | สถานะ |
|---|---|
| Deploy FE | ยังไม่มี pipeline — รันผ่าน nx serve + devtunnel เท่านั้น (Owner เลื่อน deploy ไว้ท้ายสุดโดยตั้งใจ) |
| Race: 2 flow reactivate คู่เดียวกันพร้อมกัน | รู้แล้ว ยังไม่แก้ (ต้องใช้ concurrency token) — เกิดยากมาก ต้อง unsub แล้วมี 2 flow สมัครคู่เดียวกันพร้อมกันเป๊ะ |
| ยิง consent receipt เข้า ConsentService กลาง | ตัดสินใจไม่ทำ (Owner) — เพิ่มทีหลังได้โดยไม่แตะ schema |
แถวเก่าที่ LineUserId = null บน dev | เกิดจากช่องโหว่ก่อน #2124 · หลัง merge จะยกเลิกผ่าน API ไม่ได้อีก — ถ้าจะล้างต้องทำ one-off SQL แยก |
| ID token หมดอายุระหว่างใช้งาน | ยังต้องให้ผู้ใช้กด “ลองใหม่อีกครั้ง” เอง (ไม่มี auto-refresh) |
5. ขอบเขตการทดสอบ
- ชุด E2E อัตโนมัติเดิมเปิดเว็บ นอกแอป LINE (
liffIdว่าง) ⇒ ทุก subscription ที่มันสร้างมีLineUserId = null· ตั้งแต่ FE ตั้งliffIdจริงและ BE บังคับ token ชุดอัตโนมัติเดินไม่ได้อีกทั้งฝั่งสมัครและฝั่งยกเลิก (ตั้งใจ) — ถ้าจะรื้อกลับมาต้องหา LINE ID token จริงให้ harness - การทดสอบจริงต้องเปิดจากในแอป LINE ผ่านลิงก์
https://liff.line.me/{liffId}เท่านั้น — ลิงก์ tunnel ตรง ๆ ถึงเปิดในแอป LINE ก็ยังเป็น in-app browser ธรรมดา ไม่ใช่ LIFF จริง - เคสที่ทดสอบบน dev ไม่ได้จนกว่า #2076 merge: LCE-002 (ข้อ 4–5) · LCE-005 · LCE-011
- เคสที่ รอทีมกฎหมาย: LNC-024 (checkbox คำรับรองนิติบุคคล — วันนี้ผลออกมาเหมือน LNC-025 คือไม่มี checkbox เสมอ)
- ข้อจำกัดเชิงปฏิบัติ: OTP ผูกกับ อีเมล ไม่ใช่ flow — รันรวดเดียวทั้งชุดจะโดนล็อก 15 นาที ต้องรันแยกหรือหาอีเมลทดสอบตัวที่สอง
- เคสทดสอบทั้งหมด (67 เคส: Register
LNC-001..030· UnsubscribeLNU-001..022· Consent EvidenceLCE-001..011· LIFF/CrossLCX-001..004) อยู่ในไฟล์UAT_TEST_CASES_LINE_CONNECTIVITY.xlsxของ Atlas docs — ยังไม่มีใครรัน UAT จริง ผลว่างทั้งหมด
6. เส้นตายที่ต้องรู้
- devtunnel + LIFF endpoint หมดอายุ ~02/09/2569 (เพดาน 30 วันของบัญชีส่วนตัว ต่ออายุไม่ได้) — สร้างใหม่จะได้ subdomain ใหม่ ⇒ ทีม LIFF ต้องลงทะเบียน endpoint ใหม่ · ทางแก้จริงคือ deploy จริงให้มี domain ถาวร
- ทั้ง
nx serveและdevtunnel hostเป็น process บนเครื่อง dev — ปิดเครื่อง/ปิด session แล้วลิงก์ตาย ต้องสตาร์ตใหม่ทั้งคู่