Skip to content

report-log — Repository Map

บทนี้เป็นแผนที่ไฟล์ของ report-log (branch: master) — สคริปต์วิเคราะห์ + คลัง log ดิบจาก vtrc-api production


แผนที่โฟลเดอร์

report-log/                                    (branch: master)
├── app.js                                     # entrypoint เดียว — IIFE วิเคราะห์ log
├── package.json                               # moment เท่านั้น
├── users.json                                 # array UUID 9,486 รายการ ("user จุฬา")
├── .gitignore                                 # `# *.log` comment ปิด — อนุญาต commit log
├── request_2023-02-17.log                     # วันแรก
├── request_2023-02-18.log
│   ...                                        # รวม 63 ไฟล์ contiguous
└── request_2023-04-20.log                     # วันสุดท้าย

ไม่มี src/, routes/, README, Dockerfile, package-lock.json

นับไฟล์: ls request_*.log | wc -l63 (ไม่ใช่ 50 ตามเอกสารเก่า — แก้ในเล่มนี้)


app.js — สัญลักษณ์ทั้งหมด

SymbolบทบาทCitation
dateStartวันเริ่ม hard-code "2023-02-17"app.js:4
webdevice apikey ของ WEBapp.js:6 = fd77b56f-1489-4fb1-a094-a614f0d16198
mobiledevice apikey ของ MOBILEapp.js:7 = 346155c3-cea8-41f3-a9a0-305d0cc7ccf4
array[]31 GraphQL substring patterns ที่ต้องการนับapp.js:9-47
usersrequire("./users.json")app.js:49
menu[]31 ป้ายเมนูไทย (1:1 กับ array)app.js:51-83
readDataอ่านไฟล์ 1 วัน → setDataapp.js:85-88
setDataแกนวิเคราะห์ + จัด type JM/JW/OM/OWapp.js:90-148
setVerticalDatapivot CSV — ไม่ถูกเรียกจาก IIFEapp.js:150-206
IIFEloop วันที่, อ่าน log; CSV export comment ปิดapp.js:208-230

Mapping apikey → APP_TYPE ใน vtrc-api

ค่า web / mobile ใน app.js:6-7 ตรงกับ API_DEVICE_KEY ของ vtrc-api:

apikey (header)APP_TYPECitation
fd77b56f-1489-4fb1-a094-a614f0d16198WEBvtrc-api/api/src/config.js (API_DEVICE_KEY WEB)
346155c3-cea8-41f3-a9a0-305d0cc7ccf4MOBILEvtrc-api/api/src/config.js (API_DEVICE_KEY MOBILE)

array[]menu[] (31 คู่)

ลำดับ index ต้องตรงกัน — menu[count] ถูกใช้ตอน count++ ใน loop ของ array (app.js:94-145)

#Pattern ใน array (ย่อ)Label ใน menuCitation
0sendVerifyCode(citizenId:verifyUser,verifyUserapp.js:10,52
1loginเข้าสู่ระบบ,Loginapp.js:11,53
2fetchCountAllNotificationแจ้งเตือน,/notificationapp.js:12,54
3fetchListPostข่าวสาร,/newsapp.js:13,55
4query ($wdHospitalId: ID,รายการเบิกทั้งหมด,/hospital/searchapp.js:15,56
5fetchMedicalExpensesLicensee(empCode: $empCode)ผู้มีสิทธิเบิกค่ารักษาพยาบาล,/hospital/createapp.js:16,57
6"category":"NEWS"ข่าวสารการเบิกค่ารักษาพยาบาล,/hospital/Newsapp.js:17,58
7fetchAllProvidentFundDetailข้อมูลกองทุนสำรองเลี้ยงชีพ,/Fund/Detailapp.js:19,59
8"category":"PROVIDENTFUND"ข่าวสารกองทุนสำรองเลี้ยงชีพ,/Fund/Newsapp.js:20,60
9fetchLeaveDocumentListค่าการศึกษาบุตร,/childEducationFeeapp.js:23,61
10fetchLeaveDayAllรายการขอลาทั้งหมด,/Leave/searchapp.js:24,62
11fetchMasterConfigTypeLeaveเพิ่มคำขอลา,Leave/dayapp.js:25,63
12timeAttendanceByDateคู่มือการใช้งาน,Leave/LeaveManualapp.js:26,64
13dropDownSlipPaymentแสดงเวลาเข้า-ออก,/timeAttendanceapp.js:27,65
14docGroupId":"4c2df2e2-...เอกสารเกี่ยวกับเงินได้,/slipapp.js:29,66
15docGroupId":"8526a141-...ประกาศ,/policy/dashboard/4c2df2e2-...app.js:30,67
16docGroupId": "5ee299a1-...แถลงการณ์,/policy/dashboard/8526a141-...app.js:31,68
17docGroupId": "edbba2e2-...คำสั่ง,/policy/dashboard/5ee299a1-...app.js:32,69
18fetchCourseแบบฟอร์ม,/policy/dashboard/edbba2e2-...app.js:33,70
19fetchListOrganizationGroupหลักสูตร,/courseapp.js:34,71
20fetchEmployeeDetailข้อมูลลิงก์หน่วยงาน,/aboutsapp.js:36,72
21changePasswordข้อมูลส่วนตัว,/profile/listapp.js:37,73
22***********M**************เปลี่ยนรหัสผ่าน,/profile/resetPasswordapp.js:38,74
23***********M**************เบอร์โทรศัพท์ใหม่,/profile/FormPhoneapp.js:39,75
24licenseExpirationDate ... fetchEmployeeEmplGroupข้อมูลบุคลากร,/employeeRegistration/detailapp.js:40,76
25fetchEmployeeProfileHistoryประวัติการทำงาน,/employeeRegistration/workHistoryapp.js:41,77
26remark ... fetchAddressข้อมูลที่อยู่,/employeeRegistration/addressapp.js:42,78
27licenseExpirationDate ... fetchEmployeeFamilyสมาชิกในครอบครัว/สิทธิรักษาพยาบาล,...app.js:43,79
28fetchEmployeeBankAccountข้อมูลการเงิน,/employeeRegistration/paymentapp.js:44,80
29dropdownListRelationค่าลดหย่อนภาษี,/employeeRegistration/taxapp.js:45,81
30fetchListContactUsCategoryข้อมูลติดต่อภายใน,/contactapp.js:46,82

หมายเหตุ: บางคู่ pattern↔menu ดูไม่ตรง semantic (เช่น index 9–13) — เอกสารนี้บันทึกตามที่ commit ไว้ ไม่แก้ความหมายทางธุรกิจโดยไม่มีหลักฐานเพิ่ม

Placeholder ***********M************** ที่ index 22–23 จะ match ยากมากใน log จริง — อาจเป็น marker ที่ลืมแทน pattern จริง


users.json

PropertyValueCitation
โครงสร้างJSON array ของ UUID stringsusers.json:1
จำนวน9,486 UUIDspython json.load → 9486
บทบาทในโค้ดfilter "user จุฬา only" (JMM/JWW) vs อื่น (OMM/OWW)app.js:124-142
แหล่งที่มาไม่มี README / metadata ใน repoUNVERIFIED

.gitignore และนโยบาย log

# Log files
# *.log

(report-log/.gitignore:16-17) — บรรทัด ignore ถูก comment ปิด ทำให้ไฟล์ *.log commit ได้โดยตั้งใจ — ดู SEC-REPORTLOG-02


แหล่งที่มาของไฟล์ log (ยืนยันจากเนื้อหา)

ทุกบรรทัดตัวอย่างมี:

  • host":"vtrcapi.redcross.or.th" — production GraphQL host
  • apikey เป็น UUID ของ WEB หรือ MOBILE ตามตารางด้านบน
  • authorization":"_REPLACED_" — ตรงกับ redaction ของ GraphQLLogging

ตัวอย่างบรรทัดแรกของ request_2023-04-20.log:1:

4/20/2023, 12:00:05 AM - [INFO] {"query":" mutation { createPostRead(...)",
  "headers":{"x-real-ip":"...","host":"vtrcapi.redcross.or.th","apikey":"346155c3-...",
  "authorization":"_REPLACED_",...},
  "from":{"appId":"88599de2-...","userId":"73d63803-..."}}

ยืนยันว่าเป็น export จาก request logging ของ vtrc-api ไม่ใช่ log ของ report-log เอง