Skip to content

vtrc-backoffice-new · ภาพรวม

vtrc-backoffice-new เป็น Bitbucket repository คนละตัวจาก vtrc-backoffice (i3dev/vtrc-backoffice-new.git vs i3dev/vtrc-backoffice.gitvtrc-backoffice-new/.git/config:9) แต่ source code เกือบเหมือนกันทั้งหมด — package.json ของทั้งสอง repo ระบุ "name": "vtrc-backoffice" เหมือนกัน (vtrc-backoffice-new/package.json:2) และรายชื่อไฟล์ใน src/ ตรงกัน 99%+ (มีเพิ่มเพียง 3 ไฟล์ — ดูหัวข้อ "ความสัมพันธ์กับ vtrc-backoffice" ด้านล่าง)

เขียนเรื่อง branch ให้ถูก — default branch ของ repo นี้คือ master แต่ตาม canonical-truths ของแพลตฟอร์ม branch ที่ต้องใช้อ้างอิงจริงคือ uat (773 ไฟล์ที่ track ด้วย git — ยืนยันตรงกับตัวเลขที่ได้รับมาก่อนตรวจ) ทุก citation ในเอกสารกลุ่มนี้จึงระบุ (branch: uat) เสมอตามกฎ


vtrc-backoffice-new คืออะไร

หน้าที่หลักเหมือน vtrc-backoffice ทุกประการ — เครื่องมือ backoffice ของทีม HR/Admin สภากาชาดไทย (การลา สวัสดิการรักษาพยาบาล กองทุน ผู้แทน จัดการผู้ใช้ ฯลฯ) — รายชื่อ module ใน src/pages/ ตรงกับ vtrc-backoffice เกือบทั้งหมด (41 โฟลเดอร์เดียวกัน) ดู 03-features-map

สิ่งที่ต่างจาก vtrc-backoffice อย่างมีนัยสำคัญคือ login flow มี logic ใหม่ที่เช็คประเภทพนักงาน (checkEmployeeCU) แล้วส่ง SSO bypass token ไปยัง vtrc-rc-backoffice โดยตรงถ้าไม่ตรงเงื่อนไข — รายละเอียดเต็มดู 02-core-pipeline ซึ่งเป็นหลักฐานสำคัญของความสัมพันธ์ระหว่าง repo กลุ่ม backoffice ทั้งสาม (vtrc-backoffice, vtrc-backoffice-new, vtrc-rc-backoffice)


Stack และเวอร์ชัน (branch: uat)

ด้านค่าหลักฐาน
React^16.13.1vtrc-backoffice-new/package.json:31 (branch: uat)
Build toolCRA (react-scripts 3.4.3) ไม่ ejectvtrc-backoffice-new/package.json:40 (branch: uat)
AntDpackage.json ระบุ ^4.6.6, resolve จริงเป็น 4.15.4 — เวอร์ชันเดียวกันกับ vtrc-backoffice เป๊ะ (lockfile ยืนยันตรงกัน)vtrc-backoffice-new/package.json:11 (branch: uat), vtrc-backoffice-new/package-lock.json entry "antd": {"version": "4.15.4"}
Apollo Clientv2 (apollo-client@^2.6.3 + react-apollo@^3.1.5)vtrc-backoffice-new/package.json:13,32 (branch: uat)
State managementRecoil ^0.7.5vtrc-backoffice-new/package.json:44 (branch: uat)
Routingreact-router-dom ^5.2.0vtrc-backoffice-new/package.json:39 (branch: uat)

dependency ทุกตัวใน package.json เหมือนกับ vtrc-backoffice ทุกบรรทัด (ตรวจด้วย diff ตรง — ไม่มีความต่าง) — ยืนยันว่าเป็นการ fork/copy โครงสร้าง dependency มาทั้งชุด ไม่ใช่การเขียนใหม่


Entrypoint

เหมือน vtrc-backoffice ทุกประการ — src/index.js mount ผ่าน ApolloProvider + RecoilRoot (branch: uat) และ App/index.js ยัง override console.log/warn/error เป็น no-op เหมือนกัน:

vtrc-backoffice-new/src/containers/App/index.js:14

javascript
	console.log = console.warn = console.error = () => { };

(branch: uat)


Build tooling — ต่างจาก vtrc-backoffice อย่างชัดเจน

vtrc-backoffice-new มี Dockerfile แบบ multi-stage ที่ build จาก source จริง — ไม่เหมือน vtrc-backoffice ที่ image มีแค่ nginx เปล่า:

vtrc-backoffice-new/Dockerfile:1-11

dockerfile
FROM node:14.20 AS stage-1

WORKDIR /usr/src/app

ADD . .

RUN npm install --legacy-peer-deps

RUN npm run build

FROM nginx:1.24.0 AS stage-2

COPY  ./rc/default.conf /etc/nginx/conf.d/

COPY --from=stage-1 usr/src/app/build/ /usr/share/nginx/html/build/

(branch: uat)

อย่างไรก็ตาม docker-compose.yml ของ repo นี้ ไม่ได้ใช้ Dockerfile นี้เลย — ระบุ image: nginx:latest ตรงแล้ว mount ./build (ที่ commit ไว้ล่วงหน้า ~47 MB) เข้า container โดยตรง เหมือน vtrc-backoffice:

vtrc-backoffice-new/docker-compose.yml:1-19

yaml
version: '3.8'
services:
  web-server:
    image: nginx:latest
    container_name: nginx-web-server
    restart: always
    environment:
      TZ: Asia/Bangkok
    volumes:
      - ./build:/usr/share/nginx/html
      - ./meeting:/usr/share/nginx/meeting
      - ./nginx:/etc/nginx/conf.d
      - ./web-logs:/var/log/nginx
      - ./cert:/etc/sslcert
    ports:
      - 80:80
      - 443:443
    networks:
      - vtrc-backoffice-network

(branch: uat)

สรุป: Dockerfile ที่ build จาก source มีอยู่จริงแต่ ดูเหมือนไม่ได้ถูกเรียกใช้จาก docker-compose.yml ในรอบตรวจนี้ (docker-compose.yml ใช้ image: ไม่ใช่ build:) — เข้าข่ายว่า Dockerfile อาจถูกใช้แยกในอีก pipeline (เช่น CI ที่ build แล้ว push image ไปที่อื่น) ทำเครื่องหมาย UNVERIFIED สำหรับ pipeline จริงที่ ops ใช้งาน ดู QUAL-BONEW-01 ใน 04-scorecard


การเชื่อมต่อกับ vtrc-api

เหมือนกับ vtrc-backoffice — ใช้ checkLinkURL() แบบ window.location.href-based ตรงตาม pattern ที่ canonical-truths ระบุ (ไม่ใช่ NODE_ENV) รายละเอียดเต็มและความต่างจาก vtrc-backoffice (refresh flow ใหม่ที่ใช้ refreshTokenBO, origin เพิ่มสำหรับ uat-rc-vtrcbackoffice) ดู 02-core-pipeline


สิ่งที่บทนี้ไม่ cover

  • schema ฝั่ง vtrc-api — ดู Volume 3 (Legacy Core)
  • รายละเอียดของ vtrc-rc-backoffice ที่เป็นปลายทางของ SSO bypass — จัดทำโดยทีมอื่นในรอบนี้ (อ้างอิงจาก v1 archive เท่านั้น)
  • ความสัมพันธ์เต็มกับ vtrc-backoffice — ดู _partial-index-backoffices.md

โครงสร้างบท

บทชื่อ
01Repository map
02API endpoint resolution + auth/login flow + SSO handoff
03Feature/module list
04Scorecard + debt register