sso-api
sso-api (default branch main ว่างเปล่า, canonical: master, 35 ไฟล์) เป็น gateway/adapter ที่คั่นระหว่างแพลตฟอร์ม VTRC กับระบบ SSO ภายนอกของสภากาชาดไทย (เรียกผ่าน SSO_END_POINT ด้วย HTTP Basic Auth + AES encryption ของ username/password) พร้อมกลไก auto-provision username SSO ตัวใหม่จากข้อมูลพนักงานใน HRMI ถ้ายังไม่เคยผูก SSO มาก่อน
repo นี้ยังอยู่ในสถานะพัฒนาตอนต้น — ไม่มี Dockerfile, ไม่มี docker-compose.yml, ไม่มี .env/.env.example ใด ๆ commit เข้า git (ต่างจากอีก 4 repo ในกลุ่มที่ตรวจสอบ) วิธี deploy จริงจึง UNVERIFIED จากในโค้ด
Stack และเวอร์ชัน
| ส่วน | ค่า | หลักฐาน |
|---|---|---|
| Framework | NestJS ^10.0.0 — ใหม่กว่า อีก 4 repo ในกลุ่มนี้ที่ยังอยู่ ^9.0.0 | sso-api/package.json:23-29 (branch: master) |
| ORM | TypeORM ^0.3.20 บน MSSQL, connection ชื่อ main | sso-api/src/app.module.ts:20-25 |
| JWT | @nestjs/jwt ^10.2.0 (สร้าง JwtModule.register() แต่การ sign token จริงถูก comment ปิดไว้ — ดู 02-core-pipeline) | sso-api/package.json:26, src/app.module.ts:16-19 |
| Auth (ฝั่งรับ request) | Passport JWT ผ่าน guard เดียวกับ template กลาง | sso-api/libs/jwt/jwt-auth.guard.ts |
| Encryption | AES-256-CBC (custom, libs/common/aes-encrypt.ts / aes-decrypt.ts) | sso-api/libs/common/aes-encrypt.ts:3-13 |
Entry point
src/main.ts — bootstrap ด้วย NestFactory.create() (พิมพ์เป็น NestExpressApplication), global prefix {BASE_PATH}{API_VERSION_PATH}, JwtAuthGuard เป็น global guard, Swagger ที่ {BASE_PATH}docs (sso-api/src/main.ts:10-42, branch: master)
พอร์ตและ path
พอร์ตจริง UNVERIFIED — ไม่มี .env/.env.example ใน repo config/configuration.ts อ่าน process.env.PORT แบบไม่มี default ที่ hardcode ไว้ในโค้ด (sso-api/config/configuration.ts:4, src/main.ts:19 fallback เป็น 3000 ถ้า ConfigService คืนค่า falsy) BASE_PATH/API_VERSION_PATH เช่นเดียวกันคือ env var ที่ไม่มีค่า default ปรากฏในโค้ด
Deploy artifact
UNVERIFIED — ไม่พบ Dockerfile, docker-compose.yml, หรือ CI pipeline file ใดในทั้ง repo (branch: master) ต่างจาก chat-center-api, job-scheduler-api, vtrc-common ที่มีครบ