Router — Confidentialité et rétention
Ce que Router enregistre à chaque appel, combien de temps, et comment désactiver la persistance des prompts.
Journalisé par défaut
| Donnée | Où | Contenu des prompts ? | Rétention |
|---|---|---|---|
| Prompts original + redacté, détections Guard | Table guard_audit (chiffrée au repos, Cloak AES-256-GCM) |
Oui (original + version redactée envoyée au modèle) | 90 jours, purge automatique |
| Coût, modèle, latence, clé API, appelant | Écritures comptables llm_usage (métadonnées : modèle, marge, latency_ms, generation_id, api_key_id, user_id, surface appelante) |
Non — métadonnées uniquement | Comptable (conservée) |
| Durée d'appel, modèle, résultat | Télémétrie [:meridian, :ai, :call] |
Non | Agrégats métriques |
| IDs de requête, statuts, coûts, erreurs | Logs applicatifs | Non (par construction : IDs, statuts, coûts) | Rotation standard |
| Requêtes bloquées par Guard | guard_audit avec halted: true, prompt redacté remplacé par [HALTED BY GUARD] |
Original conservé chiffré pour audit | 90 jours |
Côté fournisseur : les appels transitent par OpenRouter avec un champ user pseudonymisé (org:<id>:user:<id>) — jamais d'email ni de nom.
Option aucune-rétention (par requête)
Ajoutez "no_retention": true au body — ou l'en-tête X-No-Retention: true — et Router :
- Ne persiste aucun prompt (aucune ligne
guard_audit, y compris en cas de blocage Guard — la redaction reste appliquée en mémoire avant l'envoi) ; - Demande au fournisseur de ne ni retenir ni entraîner (
provider.data_collection = denysur l'appel OpenRouter).
curl https://router.signalorange.ca/api/v1/chat/completions \
-H "Authorization: Bearer $ROUTER_API_KEY" \
-H "X-No-Retention: true" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[...]}'
Limites honnêtes :
- La facturation reste tracée (montants, modèle, latence) — l'option porte sur les prompts, pas sur la comptabilité ;
- Si le modèle demandé ne peut pas garantir l'absence de rétention/entraînement (catalogue :
data_retention: "required"), Router refuse avec HTTP 400retention_not_supportedplutôt que de servir une garantie affaiblie ; - La garantie amont dépend du fournisseur : Router exige
denysur le fil, mais ne peut pas prouver cryptographiquement le comportement du fournisseur final.
Et après ?
- Router — Guard anti-exfiltration — ce qui est filtré avant l'envoi
- Router — API d'audit — inspecter les décisions Guard (90 jours)
- Référence API complète