Skip to content

7.3.3 · Persistence & integrations

branch: UAT


ไม่มี persistence ของตัวเอง

Pure SPA — package.json:6-27 ไม่มี DB/ORM driver ข้อมูลทั้งหมดจาก HTTP ไป backend


Integration 1 — meeting-vtrc-api

EnvREACT_APP_MEETING_API
ค่าใน gitไม่มี — ต้อง inject ตอน build
Paths/secure/group/*, /secure/approver/*, /secure/find*

หน้าที่: group/approver admin เหมือน meeting-backoffice

ใน bundle ที่ commit ไม่พบ hostname uat-vtrcapi / vtrcapi เป็น string คงที่ — บ่งชี้ว่า build นั้นอาจไม่ได้ตั้ง REACT_APP_MEETING_API (ดู scorecard CORR-MTBONEW-01)


Integration 2 — 2way-vtrc-api (/2way)

EnvREACT_APP_2WAY_API
CallPOST /getUserByCondition
Auth headerBearer testnaja (hardcode ในซอร์ส + bundle)

ใช้ค้นหาพนักงานตอนสร้างกลุ่ม/ผู้อนุมัติ


Integration 3 — Embed ใน legacy backoffice (deploy จริง)

ไม่ใช่ HTTP integration แต่เป็น static asset coupling:

meeting-backoffice-new/build/
        │  (copy / commit sync)

vtrc-backoffice/meeting/
vtrc-backoffice-new/meeting/
vtrc-rc-backoffice/meeting/

หลักฐาน: sha1 ไฟล์ main.633a23c6.js ตรงกันทั้งสี่ที่ (ดู 01)

ผู้ใช้เปิดผ่าน host ของ backoffice หลัก เช่น path /meeting-backoffice/ ภายใต้ origin ของ vtrcbackoffice / UAT equivalent — ไม่ ผ่าน basePath /meetingbo ของ Next twin

ผลต่อ CORS / cookies

เมื่อ embed ภายใต้ origin เดียวกับ backoffice:

  • API ไป uat-vtrcapi.redcross.or.th ยังเป็น cross-origin → พึ่ง CORS ของ API gateway
  • Cookie ของ backoffice ไม่ ถูกส่งไป API อัตโนมัติจากโค้ดนี้ (ใช้ Bearer ปลอมบน 2way เท่านั้น)

Integration 4 — Sentry

ไม่มี — ไม่มี @sentry/* ใน dependencies, ไม่มี config file

ต่างจาก meeting-backoffice ที่มี dependency + webpack wrap (แม้ init จะถูก comment)

Error ของหน้า embed นี้จะไม่ขึ้น Sentry project ของ meeting Next โดยอัตโนมัติ


Integration 5 — Docker / GCR compose

docker-compose.yml อ้าง gcr.io/vtrc-nonprod/meeting-backoffice:latest และ network ร่วม backoffice UAT

ตีความอย่างระมัดระวัง:

  • ชื่อ image มีคำว่า meeting-backoffice (อาจเป็น image คนละก้อนกับ Next หรือ build จาก repo นี้ — UNVERIFIED จาก Dockerfile ใน repo นี้เพียงอย่างเดียว เพราะ Dockerfile ไม่ได้ npm run build แล้ว serve static)
  • หลักฐานที่แข็งที่สุดว่าผู้ใช้เห็นอะไร = ไฟล์ใน */meeting/ ที่ sha ตรงกับ build/ ไม่ใช่การที่ compose รันอยู่

BASE_PATH=/meeting-backoffice ใน compose ไม่ ถูกอ่านโดย CRA runtime ของ bundle ที่ build แล้ว


แผนภาพ

User browser
  └── vtrc-*-backoffice origin
        └── /meeting-backoffice/*   ← static files from this repo's build/
              ├── GET/POST  → meeting-vtrc-api (/meeting/secure/...)
              └── POST      → 2way-vtrc-api (/2way/getUserByCondition)
                                Authorization: Bearer testnaja

Sentry: none
Auth entry ([token]): none in this repo

สิ่งที่ไม่มี

  • LDAP client
  • PDF / email
  • WebSocket
  • GraphQL
  • ไฟล์ env ตัวอย่างใน git
  • ลิงก์ไป 2way-meeting-backoffice (คนละระบบ — ชื่อคล้ายแต่ไม่เกี่ยว meeting platform)