4NK_env/docs/logging_idnot.md
LeCoffre Deployment d8d4530d2d auto_clea
2025-09-25 21:26:28 +00:00

64 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

la # Journalisation et analyse du flux IdNot
## Nginx (serveur web du front)
- Fichier dinclusion: `/home/debian/4NK_env/lecoffre_node/conf/nginx/logging.conf`
- Inclus dans le vhost: `/home/debian/4NK_env/lecoffre_node/conf/nginx/dev4.4nkweb.com-https.conf`
- Logs générés:
- Access: `/var/log/nginx/lecoffre_front_access.log` (format JSON `lecoffre_json`)
- Error: `/var/log/nginx/lecoffre_front_error.log`
Champs JSON importants: `time`, `request_id`, `method`, `uri`, `status`, `request_time`, `upstream_status`, `upstream_response_time`, `x_forwarded_for`.
Propagation didentifiant de requête:
- `X-Request-ID` client → mappé dans `$x_request_id` (fallback `$request_id`).
- Re-transmis aux upstream via `proxy_set_header X-Request-ID $x_request_id;`.
Commandes utiles:
```bash
# Dernières lignes des requêtes IdNot state
grep '"uri":"/api/v1/idnot/state' /var/log/nginx/lecoffre_front_access.log | tail -n 50 | jq .
# Requêtes IdNot auth
grep '"uri":"/api/v1/idnot/auth' /var/log/nginx/lecoffre_front_access.log | tail -n 50 | jq .
```
## Front (lecoffre-front)
- Ajout dun `X-Request-ID` généré côté front lors du `POST /api/v1/idnot/state` pour corrélation.
- Code: `src/front/Api/Auth/IdNot/index.ts` (entête `X-Request-ID: front_<rand>`)
## Backend (dev3)
- À surveiller dans les logs applicatifs:
- `POST /api/v1/idnot/state`: génération de state (HMAC/TTL/nonce)
- `POST /api/v1/idnot/auth`: échange du code, puis appels vers IdNot et API Annuaire V2
- Appels sortants vers `https://qual-api.notaires.fr/...`: status, headers, body (tronqué), erreurs de parsing JSON
Conseils dinstrumentation backend:
- Loguer `X-Request-ID`, `Authorization` masqué, `Content-Type`, `Accept`.
- En cas déchec JSON, loguer les 200 premiers caractères du body et le header `content-type`.
## Points à surveiller spécifiquement
- `status` 4xx/5xx sur `/api/v1/idnot/auth` et temps `upstream_response_time` élevés.
- Réponses non-JSON de lAPI Annuaire (ex: body commençant par "No context") → probable manque de contexte/jeton.
- Cohérence `state` (émis côté backend) et `redirect_uri` fixe.
## Vérifications rapides
```bash
# Génération de state (OK attendu)
curl -sS --connect-timeout 3 --max-time 8 -X POST \
-H 'Content-Type: application/json' \
-d '{"next_url":"https://dev4.4nkweb.com/lecoffre/authorized-client"}' \
https://dev4.4nkweb.com/api/v1/idnot/state | jq .
# Auth (nécessite code valide)
curl -sS --connect-timeout 3 --max-time 10 -X POST \
-H 'Content-Type: application/json' \
-H "X-Request-ID: debug_manual_$(date +%s)" \
-d '{"code":"<CODE_IDNOT>"}' \
https://dev4.4nkweb.com/api/v1/idnot/auth | jq .
```