Dépanner Les Pannes Courantes
Objectif : fournir un guide strict symptôme-cause-correction pour les pannes d’intégration courantes.
Matrice Des Pannes
| Symptôme | Cause probable | Correctif |
|---|---|---|
POST /query renvoie 401 (Missing bearer token) | En-tête Authorization absent | Envoyer Authorization: Bearer <token> depuis le flux d’amorçage auth |
POST /query renvoie 401 (Invalid token) | JWT expiré/invalide ou issuer/audience incorrect | Réamorcer le token et confirmer la config auth (AUTH_ISSUER, AUTH_AUDIENCE, URL JWKS) |
POST /query renvoie 400 (start_ts must be <= end_ts) | Plage temporelle invalide dans le corps | Vérifier que start_ts est inférieur ou égal à end_ts |
POST /log renvoie 400/erreur de validation | Corps de requête non JSON valide | Toujours envoyer un corps JSON (minimum {}) |
Écriture canal privé renvoie 401 | Aucun token fourni pour canal protégé | Envoyer un token Bearer propriétaire valide |
Lecture/écriture canal privé renvoie 404 | Compte différent du propriétaire du canal | Utiliser un token avec claim JWT acc correspondante |
Upgrade WebSocket privé renvoie 401 | Token absent/invalide dans la requête d’upgrade | Inclure un en-tête Authorization valide pendant l’upgrade |
Upgrade WebSocket privé renvoie 404 | acc du token ne correspond pas au propriétaire | Reconnecter avec token du compte propriétaire |
POST /query renvoie files vide | Aucun fichier dans la plage ou filtres trop stricts | Élargir plage/filtres et vérifier que les workers uploader/compression tournent |
Endpoints /query absents de l’OpenAPI | Intégration base de données désactivée | Définir DATABASE_URL et redémarrer le service pour activer les routes query |
Diagnostic Rapide
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'
Diagnostic Auth Scripté
cd jsonlog
set -a && source .env && set +a
npm run test:auth:smoke
Ce flux smoke valide les comportements sans auth, avec auth invalide et avec auth valide pour /query.