1 · Repository map
โครงสร้างไฟล์ของ vtrc-backoffice-new (branch: uat — ไม่ใช่ master default ที่ว่างกว่า, 773 ไฟล์ที่ track ด้วย git)
โฟลเดอร์ระดับบนสุด
vtrc-backoffice-new/
├── src/ ซอร์สโค้ดแอป (React) — โครงสร้างตรงกับ vtrc-backoffice เกือบทั้งหมด
├── public/ static assets ของ CRA
├── build/ ผลลัพธ์ build ที่ commit ไว้ (~47 MB) — ห้ามแก้มือ
├── meeting/ nginx conf ย่อยสำหรับ path /meeting
├── rc/ nginx conf ย่อย (`rc/default.conf`) — ใช้เป็น target ของ Dockerfile stage-2
├── nginx/ nginx conf หลัก
├── docker-nginx/ ไฟล์เสริมสำหรับ nginx image
├── docker-compose.yml serve build/ ผ่าน nginx:latest โดยตรง (ไม่เรียก Dockerfile)
├── Dockerfile multi-stage build จริง (node:14.20 → nginx:1.24.0) — ดูเหมือนไม่ได้ถูกเรียกจาก docker-compose.yml
├── nginx.default.conf.bak ไฟล์ backup
└── package.json / package-lock.json(branch: uat) หลักฐานจำนวนไฟล์: git ls-files | wc -l = 773 ที่ commit 3672913 (vtrc-backoffice-new/.git, branch uat)
ข้อต่างเดียวที่พบระดับ root เทียบกับ vtrc-backoffice — มีโฟลเดอร์ rc/ เพิ่มเข้ามา (มีไฟล์เดียวคือ default.conf) ส่วน vtrc-backoffice ไม่มีโฟลเดอร์นี้
src/ breakdown — เทียบ vtrc-backoffice
| โฟลเดอร์ | จำนวนไฟล์ (branch: uat) | จำนวนไฟล์ vtrc-backoffice | ต่างกันอย่างไร |
|---|---|---|---|
src/pages/ | 297 | 296 | +1 ไฟล์ (Login/index_prd.js เพิ่มมา) |
src/components/ | 83 | 83 | เหมือนกัน |
src/recoil/states/ | 27 | 27 | เหมือนกัน |
src/utils/ | 21 | 21 | เหมือนกัน |
src/config/ | 12 | 11 | +1 ไฟล์ (appllo_bk.js) |
src/graphql/ | +1 ไฟล์ backup | — | +1 ไฟล์ (mutations_api-prd.js) และ queries.js/mutations.js มีบรรทัดมากกว่า (ดูด้านล่าง) |
(นับด้วย find {dir} -type f | wc -l ที่ working tree ของ vtrc-backoffice-new บน branch uat)
สรุป diff ไฟล์ทั้งหมดระหว่างสอง repo (diff <(find src -type f | sort) ของทั้งสอง repo) พบว่า vtrc-backoffice-new มีไฟล์เพิ่มมาเพียง 3 ไฟล์ จากทั้งหมด 700+ ไฟล์ใน src/:
src/config/appllo_bk.js— ไฟล์มีอยู่จริงแต่ เนื้อหาเป็นไฟล์เปล่า (0 บรรทัด) ยืนยันด้วยการอ่านไฟล์ตรง — ไม่ใช่ backup ของ apollo config ตามที่อาจดูจากชื่อไฟล์ (ทำเครื่องหมายแก้ไขจากสมมติฐานเดิม)src/graphql/mutations_api-prd.js(backup ของ mutations ก่อน deploy prod ล่าสุด — ชื่อไฟล์สื่อถึงการ snapshot ก่อน deploy)src/pages/Login/index_prd.js(backup ของ Login ก่อนเพิ่ม logiccheckEmployeeCU/SSO handoff — มีเนื้อหาเกือบเหมือนLogin/index.jsปัจจุบันทุกประการรวมถึงcheckEmployeeCUเอง จึงเป็นไปได้ว่าเป็น snapshot ที่ใกล้เคียงกับเวอร์ชันล่าสุดมากกว่าจะเป็นเวอร์ชันก่อนเพิ่มฟีเจอร์ — ดู 02-core-pipeline)
ไม่มีไฟล์ใดถูกลบออกเมื่อเทียบกับ vtrc-backoffice — ทุกไฟล์ของ vtrc-backoffice มีอยู่ใน vtrc-backoffice-new ด้วยชื่อ/ตำแหน่งเดียวกัน
src/graphql/ — ขนาดไฟล์ต่างจาก vtrc-backoffice
| ไฟล์ | บรรทัด (uat) | บรรทัด (vtrc-backoffice) |
|---|---|---|
queries.js | 3,352 | 3,316 |
mutations.js | 1,997 | 1,995 |
WorkForce/queries.js, WorkForce/mutations.js | เหมือนกัน | เหมือนกัน |
queries.js มีมากกว่า 36 บรรทัด — ส่วนใหญ่มาจาก query ใหม่ checkEmployeeCU (vtrc-backoffice-new/src/graphql/queries.js:36-46, branch: uat) ที่ไม่มีใน vtrc-backoffice เลย (full-text search ยืนยันไม่พบ string checkEmployeeCU ใน vtrc-backoffice/src เลยทั้ง repo)
src/pages/ — 41 module เหมือนกันทุกชื่อ
รายชื่อ module ตรงกับ vtrc-backoffice/01-repository-map ทุกตัวอักษร (ls src/pages | sort ให้ผลลัพธ์เดียวกันทั้งสอง repo) — ไม่มี module ใหม่หรือ module ที่ถูกลบ
Docker/deploy files — ต่างจาก vtrc-backoffice
| ไฟล์ | vtrc-backoffice | vtrc-backoffice-new (branch: uat) |
|---|---|---|
Dockerfile | FROM nginx:1.18 เท่านั้น ไม่ build จาก source (vtrc-backoffice/Dockerfile:1-2) | multi-stage node:14.20 build จริง → nginx:1.24.0 (vtrc-backoffice-new/Dockerfile:1-11) |
docker-compose.yml network name | uat-vtrc-backoffice-network (vtrc-backoffice/docker-compose.yml:19) | vtrc-backoffice-network (vtrc-backoffice-new/docker-compose.yml:19) |
| โฟลเดอร์ nginx conf พิเศษ | ไม่มี | rc/default.conf (vtrc-backoffice-new/Dockerfile:9 อ้างถึงไฟล์นี้ตรง) |
ชื่อ network สลับกับที่คาดไว้ตามชื่อ repo — vtrc-backoffice (repo "หลัก" ไม่มีคำ uat ในชื่อ) กลับอ้าง network ชื่อ uat-... ส่วน vtrc-backoffice-new (repo ที่ canonical branch คือ uat) กลับอ้าง network ที่ไม่มีคำ uat — เป็นไปได้ว่าเป็นความสับสนตอนตั้งชื่อ หรือ docker-compose.yml ไม่ใช่ config ที่ ops ใช้จริงบนเซิร์ฟเวอร์ (ทำเครื่องหมาย UNVERIFIED)
ขั้นตอนถัดไป
ไป 2 · API endpoint resolution + auth/login flow + SSO handoff