Pemecahan Masalah Kegagalan Umum
Tujuan: memberikan panduan ketat gejala-penyebab-perbaikan untuk kegagalan integrasi yang umum.
Matriks Kegagalan
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
POST /query mengembalikan 401 (Missing bearer token) | Header Authorization tidak ada | Kirim Authorization: Bearer <token> dari alur bootstrap auth |
POST /query mengembalikan 401 (Invalid token) | JWT kedaluwarsa/tidak valid atau issuer/audience salah | Bootstrap ulang token dan konfirmasi konfigurasi auth (AUTH_ISSUER, AUTH_AUDIENCE, URL JWKS) |
POST /query mengembalikan 400 (start_ts must be <= end_ts) | Rentang waktu pada body tidak valid | Pastikan start_ts kurang dari atau sama dengan end_ts |
POST /log mengembalikan 400/error validasi | Body request bukan objek JSON valid | Selalu kirim body JSON (minimal {}) |
Tulis channel privat mengembalikan 401 | Tidak ada token untuk channel yang dilindungi | Kirim token Bearer pemilik yang valid |
Baca/tulis channel privat mengembalikan 404 | Akun tidak cocok dengan pemilik channel | Gunakan token dengan claim JWT acc yang sesuai |
Upgrade WebSocket privat mengembalikan 401 | Token hilang/tidak valid saat upgrade | Sertakan header Authorization yang valid saat upgrade |
Upgrade WebSocket privat mengembalikan 404 | acc token tidak cocok dengan pemilik channel | Sambungkan ulang dengan token akun pemilik |
POST /query mengembalikan files kosong | Tidak ada file dalam rentang atau filter terlalu sempit | Perluas rentang/filter dan verifikasi worker uploader/kompresi berjalan |
Endpoint /query hilang dari OpenAPI | Integrasi database dinonaktifkan | Set DATABASE_URL dan restart service untuk mengaktifkan rute query |
Diagnostik Cepat
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'
Diagnostik Auth Dengan Script
cd jsonlog
set -a && source .env && set +a
npm run test:auth:smoke
Alur smoke ini memvalidasi perilaku tanpa auth, auth tidak valid, dan auth valid untuk /query.