แก้ปัญหาความล้มเหลวที่พบบ่อย
วัตถุประสงค์: ให้แนวทางแบบเข้มงวดจากอาการ-สาเหตุ-วิธีแก้ สำหรับปัญหาการเชื่อมต่อที่พบบ่อย
ตารางความล้มเหลว
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ไข |
|---|---|---|
POST /query ตอบ 401 (Missing bearer token) | ไม่มี Authorization header | ส่ง Authorization: Bearer <token> จากขั้นตอนบูตสแตรป auth |
POST /query ตอบ 401 (Invalid token) | JWT หมดอายุ/ไม่ถูกต้อง หรือ issuer/audience ไม่ตรง | บูตสแตรป token ใหม่และตรวจ config auth (AUTH_ISSUER, AUTH_AUDIENCE, JWKS URL) |
POST /query ตอบ 400 (start_ts must be <= end_ts) | ช่วงเวลาใน body ไม่ถูกต้อง | ตรวจให้ start_ts น้อยกว่าหรือเท่ากับ end_ts |
POST /log ตอบ 400/validation error | body ไม่ใช่ JSON object ที่ถูกต้อง | ส่ง JSON body ทุกครั้ง (อย่างน้อย {}) |
เขียนช่องทางส่วนตัวได้ 401 | ไม่มี token สำหรับช่องทางที่ต้องป้องกัน | ส่ง Bearer token ของเจ้าของที่ถูกต้อง |
อ่าน/เขียนช่องทางส่วนตัวได้ 404 | บัญชีไม่ตรงกับเจ้าของช่องทาง | ใช้ token ที่มี JWT claim acc ตรงกัน |
WebSocket private upgrade ได้ 401 | token หายไป/ไม่ถูกต้องในคำขอ upgrade | ใส่ Authorization header ที่ถูกต้องระหว่าง upgrade |
WebSocket private upgrade ได้ 404 | acc ใน token ไม่ตรงกับเจ้าของช่องทาง | เชื่อมต่อใหม่ด้วย token ของบัญชีเจ้าของ |
POST /query ได้ files ว่าง | ไม่มีไฟล์ในช่วงเวลาหรือกรองแคบเกินไป | ขยายช่วงเวลา/ตัวกรอง และตรวจ worker อัปโหลด/บีบอัดว่ายังทำงานอยู่ |
ไม่พบ endpoint /query ใน OpenAPI | ปิดใช้งาน integration กับฐานข้อมูล | ตั้งค่า DATABASE_URL และรีสตาร์ตบริการเพื่อเปิดเส้นทาง query |
ตรวจสอบด่วน
JSONLOG_BASE_URL="http://localhost:3002"
curl -sS "${JSONLOG_BASE_URL}/health"
curl -sS "${JSONLOG_BASE_URL}/stats"
curl -sS "${JSONLOG_BASE_URL}/openapi.json" | jq '.paths | keys'
ตรวจสอบ Auth ด้วยสคริปต์
cd jsonlog
set -a && source .env && set +a
npm run test:auth:smoke
ชุด smoke นี้ตรวจพฤติกรรม /query ในกรณีไม่มี auth, auth ไม่ถูกต้อง และ auth ถูกต้อง