7.3.3 · Persistence & integrations
branch: UAT
ไม่มี persistence ของตัวเอง
Pure SPA — package.json:6-27 ไม่มี DB/ORM driver ข้อมูลทั้งหมดจาก HTTP ไป backend
Integration 1 — meeting-vtrc-api
| Env | REACT_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)
| Env | REACT_APP_2WAY_API |
| Call | POST /getUserByCondition |
| Auth header | Bearer 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)