A.1 Glossary — คำศัพท์
รวบรวมคำศัพท์ที่ใช้ในทั้ง manual — ทั้งคำทางเทคนิคและคำเฉพาะของ VTRC แบ่งเป็น 6 หมวด
วิธีใช้
ถ้าเจอคำที่ไม่เข้าใจใน volume อื่น ให้ค้นในตารางของหมวดที่เกี่ยวข้อง แต่ละ entry ระบุ volume ที่อธิบายคำนั้นละเอียดที่สุด
หมวด 1 — Identity & Authentication
| คำ | คำอธิบาย | อ้างถึง |
|---|---|---|
| JWT | JSON Web Token — token ที่เซ็นด้วย secret ใช้แทน session cookie | Vol 9.3 |
| Refresh token | token ที่ใช้ขอ JWT ใหม่เมื่อ JWT เดิมหมดอายุ | Vol 9.3 |
| Session | record ในตาราง Session เก็บ refreshToken, userSession (JSON), expireDate | Vol 8.5, Vol 9.3 |
| device key | API key ที่ระบุประเภท client (WEB, MOBILE, WEB_ADMIN) | Vol 9.2 |
| apiKey header | HTTP header ที่ส่ง device key ในทุก GraphQL request | Vol 9.2 |
| LDAP | Lightweight Directory Access Protocol — โปรโตคอลอ่าน directory (เช่น Active Directory) | Vol 4.3 |
| Active Directory (AD) | directory service ของ Microsoft ที่ VTRC ใช้เก็บบัญชีพนักงาน | Vol 4.3 |
| OTP | One-Time Password — รหัสผ่านครั้งเดียวที่ใช้สำหรับ login มือถือ | Vol 9.2 |
| RBAC | Role-Based Access Control — การควบคุมการเข้าถึงตาม role | Vol 9.4 |
| role JSON blob | โครงสร้าง JSON ในตาราง Session ที่เก็บสิทธิ์ของ user | Vol 9.4, Vol 8.5 |
| @auth directive | directive ของ Apollo ที่ป้องกัน resolver คำนวณถ้า user ไม่มีสิทธิ์ | Vol 9.4 |
| IS_PRODUCTION guard | pattern ที่ใช้ process.env.NODE_ENV === 'production' ควบคุมพฤติกรรม | Vol 3.2 |
| tokenCD | ตัวแปรในตาราง Session เก็บ cross-domain token (Centralize API) | Vol 8.5 |
หมวด 2 — Data & Persistence
| คำ | คำอธิบาย | อ้างถึง |
|---|---|---|
| Sequelize | ORM สำหรับ Node.js ที่ vtrc-api และ cu-central-api ใช้ | Vol 3.5, Vol 8.2 |
| TypeORM | ORM สำหรับ TypeScript ที่ centralize-api ใช้ | Vol 5.2 |
| Models global | object ที่เก็บ Sequelize model ทั้งหมดของ vtrc-api — ใช้ lookup แบบ global | Vol 8.2 |
| syncModelToTable | function ที่ vtrc-api เรียกตอน boot เพื่อ sync model กับ schema จริง | Vol 8.4 |
| SourceDB sharding | pattern ที่ cu-central-api ใช้ — แต่ละ "บริษัท" มี database ของตัวเอง | Vol 4.5 |
| cross-schema write | การเขียนข้อมูลข้าม schema ใน transaction เดียว (เช่น vtrc + vtrc-centralize) | Vol 8.11, Vol 14.4 |
| soft delete | การ "ลบ" โดยตั้ง flag (เช่น isDeleted=true) แทนการ DELETE จริง | Vol 8.3 |
| expand-then-contract | pattern การ migrate schema แบบ 3 phase — เพิ่ม, ย้าย, ลบ | Vol 15.7 |
| dual-write | เขียนข้อมูลทั้ง schema เก่าและใหม่ในช่วง migration | Vol 15.7 |
| backfill | script ที่เติมข้อมูลในคอลัมน์ใหม่จากข้อมูลเก่า | Vol 15.7 |
| transaction swallow | anti-pattern ที่ promise chain กลืน error ของ transaction | Vol 14.4 (CORR-2) |
| N+1 query | anti-pattern ที่มี query เดียว แต่ trigger sub-query N ครั้ง | Vol 14.3 |
หมวด 3 — Architecture & Patterns
| คำ | คำอธิบาย | อ้างถึง |
|---|---|---|
| monolith | application ที่รวมทุก feature ใน codebase เดียว | Vol 2.1 |
| microservices | architecture ที่แบ่ง feature เป็น service คนละตัว | Vol 15.4 |
| bounded context | ขอบเขตที่ model ของ domain มีความหมายเดียวกัน (มาจาก DDD) | Vol 15.1, Vol 15.6 |
| Strangler pattern | migration ที่ค่อย ๆ แทนที่ระบบเดิมทีละส่วน | Vol 15.1 |
| Hexagonal architecture | architecture ที่แยก domain จาก adapter ผ่าน port (Ports & Adapters) | Vol 15.6 |
| Domain-Driven Design (DDD) | วิธีออกแบบซอฟต์แวร์ที่ focus ที่ domain ของ business | Vol 15.6 |
| Feature-Sliced Design (FSD) | โครงสร้าง frontend ที่แบ่งตาม layer (pages, widgets, features, entities, shared) | Vol 15.5 |
| god controller | controller ที่ใหญ่ผิดปกติ (เช่น hospital.js 3,179 LOC) | Vol 14.3 (PERF-6) |
| god resolver | resolver ที่ใหญ่ผิดปกติ (เช่น version.js 3,716 LOC) | Vol 14.7 |
| anti-corruption layer | layer ที่แปลข้อมูลจากระบบเก่าเป็น model ใหม่ เพื่อป้องกันรบกวน | Vol 15.6 |
| saga pattern | วิธีจัด transaction ข้าม service โดยใช้ compensation | Vol 15.7 |
| outbox pattern | pattern ที่เขียน event ลงตารางก่อน publish เพื่อรับประกัน delivery | Vol 15.6 |
| forward/proxy pattern | pattern ที่ vtrc-api ส่งต่อ GraphQL request ไป cu-central-api โดยแทรก auth | Vol 10.9 |
| BFF | Backend For Frontend — service ที่ออกแบบเฉพาะสำหรับ frontend หนึ่งตัว | Vol 2.1 |
หมวด 4 — Frontend
| คำ | คำอธิบาย | อ้างถึง |
|---|---|---|
| Apollo Client | library ที่จัดการ GraphQL request, cache และ state | Vol 6.3, Vol 7.3 |
| errorLink | Apollo Link ที่จับ error ของ GraphQL และจัดการ token refresh | Vol 6.3 |
| checkLinkURL | function ที่ vtrc-web ใช้เลือก GraphQL endpoint ตาม origin ของหน้าเว็บ | Vol 6.3 |
| fetchPolicy | กำหนดว่า Apollo Client จะใช้ cache หรือ network (no-cache, cache-first, cache-and-network) | Vol 6.3, Vol 14.3 |
| SPA | Single Page Application | Vol 6.1 |
| SSR | Server-Side Rendering | Vol 15.5 |
| SSG | Static Site Generation | Vol 15.5 |
| dangerouslySetInnerHTML | prop ของ React ที่แทรก HTML ดิบ — เสี่ยง XSS ถ้าข้อมูลมาจาก user | Vol 6.9, Vol 7.9 |
| Ant Design (AntD) | component library สำหรับ React | Vol 6.8, Vol 7.8 |
| MUI | Material-UI — component library อีกตัวที่ backoffice ใช้ | Vol 7.8 |
| Recoil | state management library ที่ backoffice ใช้ | Vol 7.6 |
| recoil atom | unit ของ state ใน Recoil | Vol 7.6 |
หมวด 5 — VTRC Business Domain
| คำ | คำอธิบาย | อ้างถึง |
|---|---|---|
| VTRC | สภากาชาดไทย (Thai Red Cross) — องค์กรที่ระบบนี้สนับสนุน | Vol 1.1 |
| HRMI | HR Management Information — ระบบ HRMI ของ VTRC | Vol 1.3, Vol 11.8 |
| WDHospital | Welfare Draw Hospital — การเบิกสวัสดิการรักษาพยาบาล | Vol 11.3 |
| WDExport | Welfare Draw Export — การส่งออกข้อมูลการเบิกสวัสดิการ | Vol 11.3 |
| KBANK | ธนาคารกสิกรไทย — ใช้ส่งไฟล์โอนเงิน | Vol 11.3 |
| K-Cash | ระบบเงินสดของ KBANK | Vol 11.3 |
| NBC | National Blood Center — ศูนย์บริจาคโลหิตแห่งชาติ | Vol 1.3 |
| CU | Chulalongkorn University — ทำสัญญาให้บริการระบบ HR | Vol 1.1 |
| Conicle | platform ฝึกอบรม (LMS) ที่ VTRC ใช้ | Vol 11.10 |
| EmpCode | รหัสพนักงาน (ใช้ใน cu-central-api) | Vol 8.9 |
| EmpID | รหัสพนักงาน (ใช้ใน vtrc-api) | Vol 8.9 |
| orgCode | รหัสหน่วยงาน | Vol 8.5 |
| APP_TYPE | enum ที่ระบุประเภท client (WEB, MOBILE, WEB_ADMIN) | Vol 9.2 |
| MasterApprover | role พิเศษที่อนุมัติแทนผู้อื่นได้ | Vol 11.8 |
| payslip | สลิปเงินเดือน | Vol 11.4 |
| provident fund | กองทุนสำรองเลี้ยงชีพ | Vol 11.5 |
| study leave | การลาศึกษาต่อ | Vol 11.6 |
หมวด 6 — Operations & Debt
| คำ | คำอธิบาย | อ้างถึง |
|---|---|---|
| EOL | End Of Life — software ที่หยุดสนับสนุนอย่างเป็นทางการ | Vol 14.5 |
| CVE | Common Vulnerabilities and Exposures — ID สาธารณะของช่องโหว่ | Vol 14.6 |
| MTTR | Mean Time To Recover — เวลาเฉลี่ยตั้งแต่เกิด incident จนกู้คืน | Vol 13.11, Vol 15.0 |
| MTBF | Mean Time Between Failures — เวลาเฉลี่ยระหว่างความล้มเหลว | Vol 13.11 |
| RTO | Recovery Time Objective — เวลาเป้าหมายที่จะกู้ระบบกลับมาใช้ได้ | Vol 13.10 |
| RPO | Recovery Point Objective — ปริมาณข้อมูลสูญหายสูงสุดที่ยอมรับได้ | Vol 13.10 |
| HA | High Availability — ระบบที่ออกแบบให้พร้อมใช้งานสูง | Vol 12.7, Vol 15.8 |
| SPOF | Single Point Of Failure — จุดที่พังแล้วทั้งระบบพัง | Vol 12.7, Vol 14.3 |
| CI/CD | Continuous Integration / Continuous Deployment | Vol 12.8 |
| health endpoint | endpoint (ปกติ /health) ที่ตอบสถานะของ service | Vol 13.1, Vol 15.8 |
| observability | ความสามารถในการเข้าใจสถานะภายในของระบบจากภายนอก (log, metric, trace) | Vol 15.8 |
| SLO | Service Level Objective — เป้าหมายระดับบริการ | Vol 15.0 |
| SLA | Service Level Agreement — ข้อตกลงระดับบริการ | Vol 15.0 |
| WAF | Web Application Firewall — firewall ที่กรอง HTTP request ตาม rule | Vol 14.1, Vol 15.8 |
| typosquat | package ที่มีชื่อคล้าย package จริง เพื่อหลอกให้ติดตั้ง | Vol 14.6 |
| decision gate | จุดตัดสินใจระหว่าง Wave ที่ทีม stop และ evaluate | Vol 15.0, Vol 15.9 |
| guardrail | กฎอัตโนมัติที่ป้องกัน debt ใหม่ | Vol 14.11 |