Skip to content

2 · จัดกลุ่มตาม Category

มุมมองเดียวกับ master register แต่ตัดคอลัมน์ file:line/Source ออกเพื่อให้เห็นภาพรวมต่อ category ได้เร็ว — ต้องการ citation เต็มให้ดูที่ master register ID เดียวกันหาได้จากที่นั่นเสมอ

จำนวนรวม 275 รายการ แบ่งเป็น 6 category:

CategoryความหมายจำนวนCriticalHighMediumLow
SECSecurity894430141
PERFPerformance1101100
CORRCorrectness / data integrity3012081
LEGLegacy / EOL / dependency2218121
QUALCode quality9908847
OBSObservability2402211
รวม275466914911

QUAL เป็น category ที่ใหญ่ที่สุด (99 รายการ, 36% ของทั้งหมด) ส่วนใหญ่เป็น Medium (hygiene/dead code/naming) — สะท้อนว่าปัญหาที่ใหญ่ที่สุดเชิงจำนวนของแพลตฟอร์มไม่ใช่ bug เดี่ยว ๆ แต่เป็นการสะสมของโค้ดค้าง ไฟล์ backup, และความไม่สม่ำเสมอของ pattern ข้าม repo SEC เป็น category ที่มี Critical มากที่สุด (44 จาก 46 Critical รวมทั้งหมดเป็น SEC)


SEC — Security (89)

IDRepoSeverityคำอธิบาย
SEC-VTRC-API-01vtrc-apiCriticalCommand injection ผ่าน execSync ใน PDF pipeline
SEC-VTRC-API-02vtrc-apiCriticalDefault JWT_SECRET = 'secret'
SEC-VTRC-API-03vtrc-apiCritical/webdeployment รัน shell binary โดยไม่มี auth
SEC-VTRC-API-04vtrc-apiCritical/file/:id/download ไม่มี apiKey check
SEC-CU-01cu-central-apiCriticalJWT_SECRET default เป็น empty string
SEC-CU-02cu-central-apiCriticalapiKeys hardcoded ในโค้ด 2 keys
SEC-CU-03cu-central-apiCritical.env.develop-test commit อยู่ในโค้ด
SEC-CU-04cu-central-apiCritical/auth/signinbypass passwordless signin live ใน production
SEC-CU-05cu-central-apiCriticalignoreAuth bypass — apiKey อย่างเดียวพอ
SEC-CU-06cu-central-apiCriticalrejectUnauthorized: false ใน LDAP connection
C1vtrc-rc-backofficeCritical.env committed มี secret จริง
C2vtrc-rc-backofficeCriticalMSSQL conn string ฝังใน bundle
C3vtrc-rc-backofficeCriticalSSO bypass รับ token ใน URL
SEC-BONEW-01vtrc-backoffice-newCriticalLogin ส่ง token เป็น URL path segment ข้าม origin
SEC-PMS-01pms-apiCriticalEndpoint คืนเงินเดือนพนักงานเป็น @Public()
SEC-PMS-02pms-apiCriticalCredential + JWT secret share กับ 3 service หลุดเข้า git
SEC-AIRECRUIT-01ai-recruitment-apiCriticalProduction credential + OpenAI key หลุดเข้า git
SEC-AIRECRUIT-02ai-recruitment-apiCriticalไม่มี authorization ระดับ role/scope
SEC-WORKFLOW-01workflow-apiCriticalไม่มี JWT guard ที่ไหนเลย role อนุมานจาก payload
SEC-WORKFLOW-02workflow-apiCritical.env.example มีรหัสผ่านจริง
SEC-COMMON-01vtrc-commonCriticalทุก controller เป็น @Public()
SEC-COMMON-03vtrc-commonCritical.env commit พร้อม MSSQL sa password + shared secret
SEC-JOBSCHED-01job-scheduler-apiCritical.env commit พร้อม MSSQL sa password + shared secret
SEC-CHAT-01chat-center-apiCriticalRaw SQL string interpolation — SQL injection
SEC-CHAT-04chat-center-apiCritical.env commit พร้อมรหัสผ่านจริงหลายระบบ
SEC-RCWEB-01recruitment-webCritical.env×3 track ใน git มี AES key จริง
SEC-REPORTLOG-01report-logCriticalLog ไฟล์ commit มี PII plaintext
SEC-RECRUIT-01recruitment-apiCriticalProduction credential หลุดเข้า git
SEC-RECRUIT-02recruitment-apiCriticalSQL injection ผ่าน dynamic EXEC string
SEC-BENEFIT-01benefit-apiCriticalProduction credential หลุดเข้า git
SEC-BENEFIT-02benefit-apiCriticalRaw SQL interpolation ข้าม 2 database
SEC-2WAYVTRC-012way-vtrc-apiCriticalMaster bypass token static string
SEC-2WAYVTRC-022way-vtrc-apiCriticalgetProfile ไม่มี middleware คืน PII
SEC-2WAYVTRC-032way-vtrc-apiCriticalMongoDB credential hardcode
SEC-2WAYLINE-012way-line-serviceCriticalทุก endpoint เป็น @Public()
SEC-2WAYAPI-012way-apiCriticalBackdoor login hardcode ออก JWT admin
SEC-2WAYAPI-022way-apiCriticalJWT secret มี default fallback ในซอร์ส
SEC-2WAYAPI-032way-apiCriticalSQL injection หลายโมดูล
SEC-2WAYAPI-042way-apiCriticalGlobal guard bypass ด้วย @Public() แทบทุก endpoint
SEC-MOBILE-01vtrc-mobileCriticalRSA private key hardcode compile เข้า bundle
SEC-MOBILE-02vtrc-mobileCriticalAndroid keystore + password commit plaintext
SEC-NEW-01new-vtrc-mobileCriticalRSA private key เดียวกับ vtrc-mobile copy ซ้ำ
SEC-MTVTRC-01meeting-vtrc-apiCritical.env×3 commit plaintext
SEC-MTVTRC-02meeting-vtrc-apiCriticalmockuser endpoint ไม่มี auth คืน PII
SEC-VTRC-API-05vtrc-apiHighcheckMenuAuth อ่าน role ผิดตัว
SEC-VTRC-API-06vtrc-apiHighCORS typo ทำให้ allowlist ไม่ทำงาน
SEC-VTRC-API-07vtrc-apiHighSQL injection ใน statLog cron
SEC-BO-01vtrc-backofficeHighToken ไม่มีวันหมดอายุ + XSS surface 20 ไฟล์
H1vtrc-rc-backofficeHighdangerouslySetInnerHTML 30 ไฟล์
H2vtrc-rc-backofficeHighAES key expose ใน bundle
H3vtrc-rc-backofficeHighToken เก็บใน web storage ทั้งหมด
H4vtrc-rc-backofficeHighapiKeyNews hardcode UUID
S-1vtrc-webHighToken เก็บใน web storage
S-3vtrc-webHighAES key+IV hardcoded remember password
S-4vtrc-webHighdangerouslySetInnerHTML ไม่มี sanitizer
SEC-COMMON-02vtrc-commonHighSQL injection ใน AddressRepository
SEC-CHAT-02chat-center-apiHighWebSocket chat ไม่มี guard
SEC-CHAT-03chat-center-apiHighLINE webhook ไม่ verify signature
SEC-RCWEB-02recruitment-webHighPII ใน localStorage ไม่มีวันหมดอายุ
SEC-RCWEB-03recruitment-webHighOTP bypass ด้วยค่าคงที่ในโค้ด prod
SEC-REPORTLOG-02report-logHigh.gitignore ปิดกฎ log ไว้โดยตั้งใจ
SEC-BENEFIT-03benefit-apiHighEndpoint เบิกค่ารักษาพยาบาลเป็น @Public()
SEC-2WAYVTRC-042way-vtrc-apiHighJWT secret hardcoded 2 ตัวไม่ตรงกัน
SEC-2WAYVTRC-052way-vtrc-apiHighMSSQL encrypt: false
SEC-2WAYMTBO-012way-meeting-backofficeHighJWT ใน localStorage ไม่ใช่ httpOnly
SEC-2WAYMTBO-022way-meeting-backofficeHighRoute guard client-side เท่านั้น
SEC-2WAYLINE-022way-line-serviceHighเรียกกันเองผ่าน hardcoded IP
SEC-2WAYAPI-052way-apiHighignoreExpiration: true เสมอ
SEC-2WAYAPI-062way-apiHighMSSQL encrypt: false
SEC-MOBILE-03vtrc-mobileHighapiKey hardcode ซ้ำ 3 จุด
SEC-NEW-02new-vtrc-mobileHighToken plain ใน AsyncStorage (regression)
SEC-MTVTRC-03meeting-vtrc-apiHighPath "secure" ไม่มี auth จริง
SEC-MTBO-01meeting-backofficeHighAPI key hardcode ในซอร์ส frontend
SEC-MTBO-02meeting-backofficeHigh.env URL จริงของ UAT commit
SEC-VTRC-API-08vtrc-apiMediumJWT verify ไม่ระบุ algorithms
M1vtrc-rc-backofficeMediumcheckLinkURL ใช้ includes ไม่ parse origin
M2vtrc-rc-backofficeMediumไม่มี queue สำหรับ token refresh
M3vtrc-rc-backofficeMediumไม่มี CSP
M4vtrc-rc-backofficeMediumไม่มี CSRF token
M5vtrc-rc-backofficeMediumไม่มี SRI สำหรับ CDN
S-2vtrc-webMediumapiKey base64 ในบันเดิล
S-5vtrc-webMediumisShow เป็น UI flag ไม่ใช่ auth gate
S-6vtrc-webMediumConsole override ปิด debug
S-8vtrc-webMediumไม่มี CSP
SEC-RCWEB-04recruitment-webMediumEmail/OTP ผ่าน query string GET
SEC-2WAYVTRC-062way-vtrc-apiMediumCORS wildcard + credentials ขัดแย้งกัน
SEC-OCRAPI-01vtrc-ocr-apiMediumCORS เปิดกว้าง config ไม่ถูกใช้
SEC-MTVTRC-04meeting-vtrc-apiMediumTinify API key hardcode
S-7vtrc-webLowGoogle Analytics ID เปิดเผย

PERF — Performance (11)

IDRepoSeverityคำอธิบาย
PERF-2WAYBATCH-012way-batchHighCron 10 วินาที ทำงานจริงแค่ log เปล่า
PERF-VTRC-API-01vtrc-apiMediumexecSync block event loop
PERF-CU-01cu-central-apiMediumไม่มี timeout/retry/circuit breaker
PERF-BO-01vtrc-backofficeMediumไม่มี code splitting
P-1vtrc-webMediumBundle ~12MB ไม่มี code splitting
P-2vtrc-webMediumfetchPolicy: no-cache default
P-3vtrc-webMediumQuery profile ทุกครั้งที่ reload
P-4vtrc-webMediumไม่มี lazy loading รูปภาพ
P-5vtrc-webMediumWebpack 4
P-6vtrc-webMediumconsole.log กระจายเพิ่มขนาดบันเดิล
P-7vtrc-webMediumPDF.js worker แยกเพิ่ม request

CORR — Correctness / data integrity (30)

IDRepoSeverityคำอธิบาย
CORR-CU-01cu-central-apiCriticalaxios import จริงแต่ package.json มีแต่ typo — crash risk
CORR-VTRC-API-01vtrc-apiHighTransaction pattern ทั่วระบบไม่ทำงานจริง
CORR-VTRC-API-02vtrc-apiHighsignature mismatch drop device argument
CORR-VTRC-API-03vtrc-apiHighlimit cap ไม่ทำงาน เปิดช่อง DoS
CORR-CU-02cu-central-apiHighOTP inconsistency ระหว่าง 2 resolver
CORR-BO-02vtrc-backofficeHighisRemember hardcode = 1 เสมอ
CORR-BONEW-01vtrc-backoffice-newHighisRemember hardcode = 1 เสมอ (สืบทอด)
CORR-PMS-01pms-apiHighCron ทุก 1 นาทีไม่ป้องกัน overlap
CORR-AIRECRUIT-01ai-recruitment-apiHighSync mechanism ระหว่าง 2 ตารางไม่ปรากฏในโค้ด
CORR-WORKFLOW-01workflow-apiHighต่อฐานข้อมูล service อื่นตรง (distributed-monolith)
CORR-SSO-01sso-apiHighsignIn ไม่ออก JWT ของตัวเอง
CORR-CHAT-01chat-center-apiHighCron in-memory หายเมื่อ restart
CORR-CHAT-02chat-center-apiHighsynchronize: true บน production
CORR-RECRUIT-01recruitment-apiHighRace condition ลด remainingManpower
CORR-BENEFIT-01benefit-apiHighข้อมูลซ้ำ 2 schema ไม่มี sync mechanism
CORR-2WAYVTRC-012way-vtrc-apiHighMulti-table insert ไม่มี transaction
CORR-2WAYVTRC-022way-vtrc-apiHighMongoDB comment ปิดแต่ feature ยังพึ่งพา
CORR-MOBILE-01vtrc-mobileHighMEETING_API hardcode ชี้ UAT เสมอ
CORR-MTVTRC-01meeting-vtrc-apiHighrefreshtoken route ไม่ mount + ไม่ persist
CORR-MTBO-01meeting-backofficeHighBASE_PATH env ไม่มีผลจริง
CORR-MTBONEW-01meeting-backoffice-newHighอ่าน env vars แต่ไม่มี .env ไฟล์ใดเลย
CORR-VTRC-API-04vtrc-apiMediumSession fallback ข้าม user
CORR-BO-01vtrc-backofficeMediumunreachable code คืน endpoint ผิด
CORR-SSO-02sso-apiMediumcatch block ไม่เช็ค null ก่อนอ่าน
CORR-RCWEB-01recruitment-webMediumENV ประกาศผิด stage ไม่มีผลจริง
CORR-MTVTRC-02meeting-vtrc-apiMediumMulti-insert ไม่มี transaction
CORR-MTVTRC-03meeting-vtrc-apiMediumแจ้งเตือนตัวแทน comment ปิด
CORR-MTVTRC-04meeting-vtrc-apiMediumCron พลาด backlog ข้ามวัน
CORR-MTBO-02meeting-backofficeMediumSSG ไม่มี revalidate
CORR-WORKFLOW-02workflow-apiLowEnum ผสมเข้า raw SQL

LEG — Legacy / EOL / dependency (22)

IDRepoSeverityคำอธิบาย
LEG-CU-01cu-central-apiCriticalaxois typosquat ของ axios
LEG-CU-02cu-central-apiHigherror-ex pin git URL
LEG-CU-03cu-central-apiHighldapjs archived
LEG-CU-04cu-central-apiHighjsonwebtoken@8.5.1 EOL/CVE
LEG-CU-05cu-central-apiHighNode 12 + esm shim EOL
LEG-CU-06cu-central-apiHighxlsx prototype pollution history
LEG-MOBILE-01vtrc-mobileHighRN 0.63.2 + React 16.13.1 เก่ากว่า 5 ปี
LEG-MOBILE-02vtrc-mobileHighไม่มี runtime endpoint resolver
LEG-FRONT-01vtrc-application-frontHigh.ipa binary commit เข้า git
LEG-VTRC-API-01vtrc-apiMediumPlayground+introspection เปิดใน prod
LEG-BO-01vtrc-backofficeMediumDockerfile ไม่ build จาก source
LEG-BO-02vtrc-backofficeMediumreact-scripts 3.4.3 เก่ามาก
LEG-BO-03vtrc-backofficeMediumAntD v4.15.4 EOL
LEG-BONEW-01vtrc-backoffice-newMediumreact-scripts 3.4.3
LEG-BONEW-02vtrc-backoffice-newMediumAntD v4.15.4 EOL
LEG-OCRAPI-01vtrc-ocr-apiMediumไม่มี test suite
LEG-RCWEB-01recruitment-webMediumBase64 upload + validate client-only
LEG-BENEFIT-01benefit-apiMediumPackage ซ้ำ 2 ตัวทำหน้าที่เดียวกัน
LEG-2WAYVTRC-012way-vtrc-apiMediumts-node ตรงใน production
LEG-2WAYMTBO-012way-meeting-backofficeMediumNext.js 12 + React 17 EOL
LEG-2WAYBATCH-012way-batchMediumNode 16-alpine EOL
LEG-AIRECRUIT-01ai-recruitment-apiLowNode 18 ไม่ตรงกับ Node 20 ของกลุ่ม

QUAL — Code quality (99)

IDRepoSeverityคำอธิบาย
QUAL-CU-01cu-central-apiHighRBAC directive comment ออก
QUAL-PMS-01pms-apiHighเอกสารไม่ตรงกับโค้ดจริง
QUAL-AIRECRUIT-01ai-recruitment-apiHighDead code ไม่ถูก mount
QUAL-OCRAPI-01vtrc-ocr-apiHighOCR endpoint เป็น mock ทั้งหมด
QUAL-OCRAPI-02vtrc-ocr-apiHighผลลัพธ์เก็บ in-memory เท่านั้น
QUAL-RECRUIT-01recruitment-apiHighConnection ไม่ใช้งานยังเปิดค้าง
QUAL-BENEFIT-01benefit-apiHighLogic ซ้ำหลายร้อยบรรทัด
QUAL-NEW-01new-vtrc-mobileHighrefreshToken ยิง boilerplate URL
QUAL-VTRC-API-01vtrc-apiMediumOp.like บน JSON/TEXT column
QUAL-VTRC-API-02vtrc-apiMediumDynamic model access
QUAL-VTRC-API-03vtrc-apiMediumFire-and-forget cron
QUAL-VTRC-API-04vtrc-apiMediumawait map ไม่ Promise.all
QUAL-VTRC-API-05vtrc-apiMediumDebug artifact ค้าง
QUAL-CU-02cu-central-apiMediumclockTolerance misuse
QUAL-CU-03cu-central-apiMediumsignInDomains hardcode
QUAL-BO-01vtrc-backofficeMediumRoute block comment ค้าง
QUAL-BO-02vtrc-backofficeMediumcheckLinkURL ซ้ำ 2 ตัว
QUAL-BO-03vtrc-backofficeMedium41+ ไฟล์ backup
QUAL-BONEW-01vtrc-backoffice-newMediumDockerfile ไม่ตรงกับ compose
QUAL-BONEW-02vtrc-backoffice-newMediumชื่อ network สลับกับที่คาด
QUAL-BONEW-03vtrc-backoffice-newMediumไฟล์ backup เปล่า
QUAL-PMS-02pms-apiMediumDockerfile ไม่ล็อค lockfile
QUAL-PMS-03pms-apiMedium5 module ชื่อคล้ายกันมาก
QUAL-PMS-04pms-apiMediumAI service domain ภายนอกไม่ยืนยัน agreement
QUAL-AIRECRUIT-02ai-recruitment-apiMediumHardcode สมมติฐานประชากรใน prompt
QUAL-WORKFLOW-01workflow-apiMediumFallback query จาก schema drift
QUAL-WORKFLOW-02workflow-apiMediumชื่อ repo/package ไม่ตรงกัน
QUAL-WORKFLOW-03workflow-apiMediumschema.sql ไม่ตรง entity จริง
QUAL-WORKFLOW-04workflow-apiMediumไฟล์ service ใหญ่เกินจัดการ
QUAL-COMMON-01vtrc-commonMediumชื่อ endpoint ทำให้เข้าใจผิด
QUAL-COMMON-02vtrc-commonMediumlibs copy-paste ข้าม repo
QUAL-SSO-01sso-apiMediumverifySession เป็น stub
QUAL-SSO-02sso-apiMediumenv อ่านไม่สม่ำเสมอ
QUAL-JOBSCHED-01job-scheduler-apiMediumTypeOrmModule import ไม่ใช้
QUAL-JOBSCHED-02job-scheduler-apiMedium.env copy จาก repo อื่นไม่แก้
QUAL-JOBSCHED-03job-scheduler-apiMediumdev log commit เข้า git
QUAL-CHAT-01chat-center-apiMediumlibs copy-paste ข้าม repo
QUAL-CHAT-02chat-center-apiMediumconsole.log debug + dead code
QUAL-OCRAPI-03vtrc-ocr-apiMediumerror handler ซ้ำ 2 ชุด
QUAL-OCRAPI-04vtrc-ocr-apiMediumresponse helper ไม่ถูกใช้
QUAL-OCRAPI-05vtrc-ocr-apiMediumไม่มี .env.example
QUAL-RCWEB-01recruitment-webMediumdead code api/login.js
QUAL-RCWEB-02recruitment-webMediumaxios.js dead code + misnamed param
QUAL-RCWEB-03recruitment-webMediumtypo env var สอดคล้องกัน 3 จุด
QUAL-RCWEB-04recruitment-webMediumDecrypt logic ซ้ำ 2 ที่
QUAL-REPORTLOG-01report-logMediumusers.json ไม่มี context
QUAL-REPORTLOG-02report-logMediumScript เฉพาะกิจ hardcode ค่า
QUAL-RECRUIT-02recruitment-apiMediumdev URL ใน prod env
QUAL-RECRUIT-03recruitment-apiMediumBusiness rule ไม่มี enum
QUAL-BENEFIT-02benefit-apiMediumvalidateData stub คืน true เสมอ
QUAL-BENEFIT-03benefit-apiMediumdocType magic number
QUAL-2WAYVTRC-012way-vtrc-apiMediumMock tutorial mount ที่ path จริง
QUAL-2WAYVTRC-022way-vtrc-apiMediumชื่อ package ไม่เคยแก้
QUAL-2WAYMTBO-012way-meeting-backofficeMediumชื่อ repo ทำให้เข้าใจผิด
QUAL-2WAYMTBO-022way-meeting-backofficeMediumError swallow ด้วย console.log
QUAL-2WAYMTBO-032way-meeting-backofficeMediumroomEmpCode hardcode
QUAL-2WAYMTBO-042way-meeting-backofficeMediumMUI v4/v5 ปนกัน
QUAL-2WAYLINE-012way-line-serviceMediumTypeORM ไม่ได้ใช้งานจริง
QUAL-2WAYLINE-022way-line-serviceMediumenv var ไม่ได้ใช้
QUAL-2WAYLINE-032way-line-serviceMediumscratch files commit
QUAL-2WAYBATCH-012way-batchMediumโมดูลไม่ import เข้า AppModule
QUAL-2WAYBATCH-022way-batchMediumไม่มี .env.example
QUAL-2WAYAPI-012way-apiMediumโมดูลซ้ำไม่ต่อสาย
QUAL-2WAYAPI-022way-apiMediumAppModule import ตัวเอง
QUAL-2WAYAPI-032way-apiMediumconsole.log ปน logger รวม PII
QUAL-2WAYAPI-042way-apiMediumNode version ไม่ตรงกัน
QUAL-2WAYAPI-052way-apiMediumPackage manager ไม่สอดคล้อง
QUAL-2WAYAPI-062way-apiMediumHardcoded IP แทน config
QUAL-MOBILE-01vtrc-mobileMediumTypo ชื่อไฟล์/route 20+ จุด
QUAL-MOBILE-02vtrc-mobileMediumTest มีแค่ default smoke test
QUAL-MOBILE-03vtrc-mobileMediumNavigation library ไม่มี release ใหม่
QUAL-MOBILE-04vtrc-mobileMediumชื่อ package ไม่เคยเปลี่ยน
QUAL-MOBILE-05vtrc-mobileMediumสอง async pattern สับสน
QUAL-NEW-02new-vtrc-mobileMediumDefault host UAT ไม่ใช่ prod
QUAL-NEW-03new-vtrc-mobileMediumรหัสผ่านเก็บใน persisted state
QUAL-NEW-04new-vtrc-mobileMediumชื่อ package scaffold เดิม
QUAL-NEW-05new-vtrc-mobileMediumScreen ไฟล์ครบแต่ comment ปิด
QUAL-FRONT-01vtrc-application-frontMediumเวอร์ชัน hardcode ในหน้าเว็บ
QUAL-FRONT-02vtrc-application-frontMediumQR code asset ค้าง
QUAL-MTVTRC-01meeting-vtrc-apiMediummongoose dependency ไม่ได้ใช้
QUAL-MTVTRC-02meeting-vtrc-apiMediumตาราง login ไม่มี route อ้างถึง
QUAL-MTVTRC-03meeting-vtrc-apiMediumชื่อไฟล์ case-sensitive risk
QUAL-MTVTRC-04meeting-vtrc-apiMediumcron สะกดผิดเป็น corn ทั่ว repo
QUAL-MTVTRC-05meeting-vtrc-apiMediumไม่มี Dockerfile แต่ compose build
QUAL-MTBO-01meeting-backofficeMediumpackage name ไม่สัมพันธ์กับแอป
QUAL-MTBO-02meeting-backofficeMediumignoreBuildErrors: true
QUAL-MTBO-03meeting-backofficeMediumรัน dev server ใน production
QUAL-MTBO-04meeting-backofficeMediumSidebar ไม่ครบเมนู
QUAL-MTBO-05meeting-backofficeMediumLocale เยอรมันไม่ได้ใช้
QUAL-MTBONEW-01meeting-backoffice-newMediumbuild/ commit เข้า git
QUAL-MTBONEW-02meeting-backoffice-newMediumไม่มี error tracking
QUAL-MTBONEW-03meeting-backoffice-newMediumcompose ไม่ตรงวิธี deploy จริง
QUAL-BONEW-04vtrc-backoffice-newLowเมนูปิดไม่มีคำอธิบาย
QUAL-PMS-05pms-apiLowTODO ค้าง
QUAL-PMS-06pms-apiLowTypo ชื่อ entity ถาวร
QUAL-AIRECRUIT-03ai-recruitment-apiLowไฟล์ภาพ 300+ ไฟล์ commit
QUAL-RECRUIT-04recruitment-apiLowTemplate สำรองปนไฟล์จริง
QUAL-BENEFIT-04benefit-apiLowไฟล์ผู้ใช้จริง commit ใน uploads/
QUAL-BENEFIT-05benefit-apiLowBase entity ซ้ำ 2 ตัว

OBS — Observability (24)

IDRepoSeverityคำอธิบาย
OBS-VTRC-API-01vtrc-apiHighPII logging เต็มรูปแบบ
OBS-PMS-01pms-apiHighCron error handling แบบ silent
OBS-VTRC-API-02vtrc-apiMediumRedis caching layer ตายทั้งระบบ
OBS-VTRC-API-03vtrc-apiMediumไม่มี structured logging/tracing/health check
OBS-CU-01cu-central-apiMediumDead connection เปิด pool ค้าง
OBS-BO-01vtrc-backofficeMediumconsole override เป็น no-op
OBS-BONEW-01vtrc-backoffice-newMediumconsole override เป็น no-op
OBS-PMS-02pms-apiMediumconsole.log มากที่สุดในกลุ่ม
OBS-AIRECRUIT-01ai-recruitment-apiMediumไม่มี test suite เลย
OBS-AIRECRUIT-02ai-recruitment-apiMediumconsole.log แทน logger ที่มีอยู่
OBS-COMMON-01vtrc-commonMediumเอกสาร workspace อธิบายผิด
OBS-SSO-01sso-apiMediumไม่มีไฟล์ deploy manifest ใดเลย
OBS-JOBSCHED-01job-scheduler-apiMediumEXPOSE port ไม่ตรงพอร์ตจริง
OBS-CHAT-01chat-center-apiMediumไม่มี deployment manifest
OBS-OCRAPI-01vtrc-ocr-apiMediumHealth check ไม่ตรวจ dependency จริง
OBS-REPORTLOG-01report-logMediumไม่มี error handling
OBS-RECRUIT-01recruitment-apiMediumconsole.log ปน logger 71 จุด
OBS-BENEFIT-01benefit-apiMediumPII หลุดเข้า production stdout
OBS-BENEFIT-02benefit-apiMediumไม่มี health check endpoint
OBS-2WAYMTBO-012way-meeting-backofficeMediumชื่อ env var ไม่สื่อความหมาย
OBS-MOBILE-01vtrc-mobileMediumไม่มี crash reporting SDK
OBS-MTVTRC-01meeting-vtrc-apiMediumSentry DSN hardcode
OBS-MTBONEW-01meeting-backoffice-newMediumCommit history บางเกินไป
OBS-RECRUIT-02recruitment-apiLowTest coverage กระจุกบางโมดูล

ไป master register หรือ จัดกลุ่มตาม Severity