4NK_env/IA_agents/logging_idnot.md

2.6 KiB
Raw Blame History

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:

# 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

# 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 .