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.