Private Docs

LINE Connectivity — สิ่งที่ยังค้าง

ที่เดียวสำหรับของที่ยังไม่จบ — PR ที่ยังไม่ merge, ของที่ยังไม่ได้ทำ, สิ่งที่รอทีมอื่น, ขอบเขตที่ทดสอบได้/ไม่ได้ และเส้นตายของ tunnel/LIFF · แยกออกมาเพื่อให้หน้า Architecture กับ Scenario เป็นเอกสารอธิบายระบบล้วน ๆ

อัปเดต: 2026-08-13

หน้านี้คือ ของที่ยังไม่จบ อย่างเดียว — เปลี่ยนบ่อย มีวันหมดอายุ Architecture กับ Scenario อธิบาย ระบบตามที่ออกแบบไว้ ซึ่งรวมของที่ยังไม่ merge ด้วย — ต่างกันตรงไหน ดูตารางล่าง


1. Baseline ที่เอกสารชุดนี้อ้างอิง

ส่วนอ้างอิงถึง
BackendBackend_UserService origin/development @ 2ec5e9a (= ของที่รันบน dev) + branch ของ PR #2076 (d0b4ac5) และ PR #2124 (cf6466b)
FrontendFrontend_LINE_Connectivity branch feature/line-connectivity-register @ 6ee1195 (PR #1743)
วิธียืนยันเดินหน้าจอจริงทั้งชุด 07/08/2569 · ตรวจเทียบโค้ด 11/08 และ 13/08/2569
ขอบเขต environmentdev เท่านั้น (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 · Unsubscribe LNU-001..022 · Consent Evidence LCE-001..011 · LIFF/Cross LCX-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 แล้วลิงก์ตาย ต้องสตาร์ตใหม่ทั้งคู่