0.6 · คำศัพท์ที่ต้องรู้
บทนี้รวม 50 คำศัพท์ที่จะเจอบ่อยใน volume อื่น เป็นคำคัดมาจาก codebase จริง — ถ้าเจอคำที่ไม่อยู่ในรายการนี้ ลองดูใน Volume 17 · Glossary ที่เก็บครบกว่า
จัดเป็น 5 หมวด
Identity & Auth
| คำ | คำอธิบาย | ที่พบ |
|---|---|---|
| apiKey | header ที่ระบุ "ตัวตนของแอป" — เป็น UUID ที่ map ไปยัง APP_TYPE | vtrc-api/api/src/config.js:41-148 |
| APP_TYPE | ประเภทแอป — WEB, MOBILE, WEB_ADMIN, INTEGRATE_APP, TWOWAY, MEETING | vtrc-api/api/src/config.js |
| JWT | JSON Web Token — เซ็นด้วย JWT_SECRET, TTL 15 นาที, carry { sessionId, uid } | vtrc-api/api/src/lib/repositories/auth/auth.js |
| accessToken | JWT ที่ใช้แนบใน Authorization: Bearer <token> — TTL 15m | — |
| refreshToken | token ยาวสำหรับขอ accessToken ใหม่ — SHA-384 of uuidv4 | auth.js:293 |
| Session | แถวในตาราง Session เก็บ session ของ user — TTL 1 วัน | models/core/session/ |
| LoginSession | session ชั่วคราวก่อน login สำเร็จ — TTL 15 นาที — จำกัด 3 attempts | loginSession.js:43 |
| tokenCD | Chula SSO token — cached ใน Session.tokenCD สำหรับ CU-affiliated users | models/core/session/ |
| @auth directive | Apollo GraphQL directive ที่บังคับ RBAC — @auth(accessRole: ["USER"], accessMenu: ["Leave"]) | directives/auth.js |
| role JSON blob | คอลัมน์ Users.role เก็บ role IDs เป็น JSON — ไม่ใช่ relation table | models/centralize/user/user.js:19-28 |
Data & Persistence
| คำ | คำอธิบาย | ที่พบ |
|---|---|---|
| HRMI | HR Management Information — ระบบ HR ภายนอกของสภากาชาด/จุฬา — VTRC เป็น read-mostly consumer | ทั่วระบบ |
| MariaDB | database engine สำหรับ application state — 2 schemas: vtrc + vtrc-centralize | vtrc-api/api/src/connector.js |
| MSSQL | Microsoft SQL Server — เก็บ HR master data (dbHRMI_Center, dbHRMI_Center_NBC) | centralize-api entities / SQL; cu-central connector |
| db, db2 | Sequelize ของ vtrc-api — db = schema vtrc, db2 = vtrc-centralize — ไม่มี dbHr ในไฟล์นี้ | vtrc-api/api/src/connector.js (export { db, db2 }) |
| dbHr | Sequelize MSSQL ของ cu-central-api — ไม่ใช่ของ vtrc-api | cu-central-api/main-api/src/connector.js |
| EmpCode | รหัสพนักงาน (string) — business key ที่ HRMI ใช้ และ VTRC ใช้อ้างอิงข้าม domain | ทุกที่ |
| EmpID | UUID 36 ตัวอักษร (string) — primary key ของ Employee ใน MSSQL | centralize-api entities / cu-central models |
| identityCard | เลขบัตรประชาชน 13 หลัก — ใช้เป็น password ของ PDF | routes.js:73 |
| orgCode | รหัสหน่วยงาน — ใช้ในการกำหนดผู้อนุมัติ (MasterApprover) | MasterApprover.orgCode |
| Sequelize | ORM ที่ใช้ใน vtrc-api และ cu-central-api (Node.js) | models/core/ |
| TypeORM | ORM ที่ใช้ใน centralize-api (NestJS/TypeScript) — modernization template | centralize-api/src/entities/ |
Architecture
| คำ | คำอธิบาย | ที่พบ |
|---|---|---|
| multi-repo monorepo | รูปแบบการจัดระเบียบ — 5 repos ใน workspace เดียว แต่ละ repo มี .git ของตัวเอง | workspace root |
| typeDefs | GraphQL type definitions — เขียนด้วยมือใน vtrc-api/api/src/typeDefs/*.js (43 ไฟล์) | api/src/typeDefs/ |
| resolver | function ที่ resolve GraphQL field — orchestrate controller → repository | api/src/resolvers/ |
| controller | business logic layer — อยู่ใน lib/controllers/ (31 โฟลเดอร์) | lib/controllers/ |
| repository | data access layer — อยู่ใน lib/repositories/ (31 โฟลเดอร์) | lib/repositories/ |
| centralize bridge | layer ใน vtrc-api ที่ proxy calls ไป cu-central-api ผ่าน END_POINT_CENTRALIZE (โฟลเดอร์ชื่อ centralize/ แต่ปลายทางคือ cu-central ไม่ใช่ NestJS) | api/src/centralize/controllers/ |
| Apollo v2 | GraphQL server/client เวอร์ชัน 2 — EOL แล้ว — ใช้ในทุก backend/frontend | package.json |
| NestJS | framework TypeScript ที่ใช้ใน centralize-api — เป็น modernization template แยกจาก live HR hop | centralize-api/ |
| checkLinkURL() | function เลือก GraphQL endpoint ตาม window.location.href — มีคนละไฟล์ใน vtrc-web และ vtrc-rc-backoffice | */src/config/apollo.js |
| replica (APP_NO) | instance ของ vtrc-api — รัน 4 replicas (#1,2,3,5) บน host เดียวกัน | docker-compose.yml |
Business Domain
| คำ | คำอธิบาย | ที่พบ |
|---|---|---|
| WDHospital | Welfare Withdrawal Hospital — คำขอเบิกค่ารักษาพยาบาล — 13-state machine | models/core/withdraw/hospital.js |
| WDExport | batch การ export การเบิกไปยังธนาคาร | models/core/withdraw/ |
| KBANK | ธนาคารกสิกรไทย — ธนาคารหลักที่ใช้ automated payout (K-Cash) | config.js:389, statusKcash ที่ 488-518 |
| K-Cash | ระบบ batch ของธนาคารกสิกรไทยสำหรับโอนเงินหมู่ — นำเข้าผลด้วยมือ ไม่มี cron ใน crons.js | config.js:488-518 (statusKcash) |
| Approver | ตารางที่เก็บ chain การอนุมัติ — shared ระหว่าง Leave และ WDHospital | models/core/withdraw/approver.js |
| MasterApprover | config ผู้อนุมัติตาม org — key ด้วย orgCode | MasterApprover table |
| LeaveDocument | ตารางหลักของคำขอลา — status ENUM มี typo (PEDDING_CANCLE) | models/core/leave/leave.js:59 |
| provident fund | กองทุนสงเคราะห์ — มี module providentFund.js | typeDefs/providentFund.js |
| conicle | ระบบ training/learning ภายนอก — APP_TYPE: INTEGRATE_APP | typeDefs/conicle.js |
| study leave | ลาไปศึกษาต่อ — module studyLeave.js + studyLeaveRequest.js | typeDefs/studyLeave*.js |
Tools & Processes
| คำ | คำอธิบาย | ที่พบ |
|---|---|---|
| qpdf | CLI tool สำหรับ encrypt PDF — vtrc-api เรียกผ่าน execSync | routes.js:73 |
| ejs | template engine สำหรับ render PDF (HTML → html-pdf → PDF) | *.ejs ไฟล์ |
| Redis | in-memory store ที่ vtrc-api เชื่อมผ่าน lib/redis.js — path สลิปไม่เขียน payslip:{emp}:{date} | lib/redis.js |
| node-schedule | cron-like scheduler ใน vtrc-api — ไม่มี HA; ไม่มี K-Cash job | api/src/crons.js |
| multer | multipart upload middleware — maxCount: 100 files | routes.js:45 |
| graphql-upload | multipart GraphQL uploads — maxFileSize: 20MB, maxFiles: 100 | index.js:25 |
| Swagger | OpenAPI doc — มีเฉพาะใน centralize-api ที่ /docs | centralize-api |
| firebase-admin | SDK สำหรับ FCM push notification | package.json |
| LDAP / AD | Active Directory ของจุฬา — cu-central-api ใช้ bind เพื่อ verify identity | ldapjs in cu-central-api |
| _bk / _bak files | ไฟล์ backup/legacy ที่ commit ไว้ใน repo (~131 ไฟล์) — ไม่ควร edit ตามกฎ workspace | ทั่วระบบ |
อ่านเพิ่ม
- Volume 17 · Glossary — คำศัพท์ทั้งหมดในระบบ พร้อม cross-reference
- Volume 17 · Acronyms — คำย่อ HRMI, NBC, KBANK, ACL, RBAC, ABAC, FSD, DDD, ...