Private Docs

Security Uplift — ตัวขวาง deploy ไม่ใช่โค้ด แต่เป็น IaC PR ที่ค้างมาตั้งแต่ 25/08

รัน check-config-parity.py กับ IaC บน development จริงแล้วได้ exit=1 ทั้ง dev/sit/uat เพราะขาด 2 key ของ FieldEncryption — ตัวแก้เปิดเป็น PR #2528 ค้างอยู่ พร้อมลำดับ 4 ขั้นที่ต้องเกิดก่อน deploy และกับดัก lib 3 version ที่ยังไม่ merge

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

← กลับหน้าภาพรวม · หน้านี้สำหรับคนที่ดูแล deploy — ไม่เกี่ยวกับการ review โค้ด

🔴 parity gate ตกทั้ง 3 env

รัน check-config-parity.py เทียบ appsettings.{Env}.json ของ UserService กับ IaC config ที่ origin/development จริง ได้ exit=1 ทั้ง dev, sit, uat

[config-parity] IaC overlay would STRIP keys the service config defines:
  - FieldEncryption.AtRest.StepData.Enabled
  - FieldEncryption.Payload.CreateUser.Enabled

⇒ deploy ตอนนี้ = build FAIL ที่ config-parity gate ทุก env ไม่ว่าโค้ดจะผ่าน review ดีแค่ไหน

ตัวแก้มีอยู่แล้ว แต่ค้าง

Backend_Iac PR #2528 เปิดค้างตั้งแต่ 25/08 ยังไม่ merge — https://dev.azure.com/eximth/SuperApp/_git/Backend_Iac/pullrequest/2528

หมายเหตุ: ClientSignature ไม่ติด parity เพราะอยู่ใน base appsettings.json ซึ่ง overlay ของ CI ไม่ทับ (overlay แทนที่เฉพาะ appsettings.{ENV}.json)

กับดัก lib 3 version ที่ยังไม่ merge

SupApp_util_lib publish ขึ้น feed ไปแล้ว 3 version แต่ยังไม่เข้า development

versionPRสถานะ
10.14.0#2726ยังไม่ merge
10.15.0#2728ยังไม่ merge
10.16.0ยังไม่เปิด PR

🔴 feed นำหน้า development อยู่ 3 version — ถ้ามีใคร bump แล้ว publish จาก development ตอนนี้ security type ทั้งชุดจะหายเงียบ ๆ

ลำดับที่ต้องเกิดก่อน deploy

  1. merge IaC PR #2528 — ไม่งั้นตกตั้งแต่ parity gate
  2. merge lib PR #2726#2728 → เปิด PR 10.16.0
  3. push + เปิด PR UserService (90 commit บน poc/security-uplift)
  4. Sentinel — un-park spike 78cae0d แล้วให้ดึง lib 10.16.0

เรื่อง Sentinel

spike 78cae0d ที่พักไว้มี ClientKeysController + handler พร้อมแล้ว (5 ไฟล์ +95/−3) รอ sign-off ของ UserService ว่าเป็นต้นแบบได้

ข้อควรระวังตอน un-park: ClientSignature:KeyRegistryPrefix ของ Sentinel ต้องเป็น SuperAppPlatform ให้ตรงกับ UserService ไม่งั้น key ที่ register ผ่าน Sentinel จะมองไม่เห็นจาก UserService และทุก signed request จะได้ 401 SIG_KEY_NOT_FOUND

ค่านี้ตั้งไว้ล่วงหน้าใน UserService แล้ว รอฝั่ง Sentinel มาตรงกัน