Confirmations, journal et limites de débit
Comment un aperçu devient une action, le jeton de confirmation à usage unique, le journal d'audit et les limites d'appels.
Aucun outil ne modifie directement les données : les outils prepare_* créent un aperçu, l'utilisateur décide.
Aperçu puis confirmation
Réponse type d'un outil prepare_* :
{
"status": "preview_ready",
"action": "...",
"summary": "...",
"preview": "...",
"preview_url": "https://web.novadesko.com/ai-connector/preview/...",
"preview_url_expires_in_minutes": 30,
"confirmation_token": "ndk_...",
"next_step": "..."
}- L'IA montre l'aperçu et le lien
preview_url(page signée, PDF pour les documents). - Elle appelle
confirm_actionavec le jeton seulement après un oui explicite de l'utilisateur. L'utilisateur peut aussi confirmer ou annuler sur la page d'aperçu, connecté à Novadesko. - Le jeton est à usage unique, lié à l'utilisateur, à l'entreprise et au canal, et expire après 30 minutes. Le contenu de l'aperçu est figé (empreinte SHA-256) : ce qui est confirmé est exactement ce qui a été montré.
- L'action passe par les mêmes contrôleurs que l'application web : mêmes validations, même numérotation. Le numéro légal d'une facture est attribué à la confirmation.
- Pour changer un aperçu, l'IA rappelle l'outil
prepare_*: un nouvel aperçu est créé.list_pending_actionsliste ceux qui attendent.
Les outils portent les annotations MCP readOnlyHint et destructiveHint : confirm_action est marqué destructif, ce qui pousse la plupart des clients à demander aussi leur propre accord.
Contrôles à chaque appel
- outil connu et permis sur ce canal ;
- l'utilisateur est toujours membre de l'entreprise (et n'est pas un compte client portail) ;
- portée accordée ;
- limites de débit ;
- arguments : identifiants d'entreprise ou d'utilisateur retirés, puis schéma strict ;
- fonctionnalité incluse dans l'offre ;
- exécution, puis inscription au journal.
Les données renvoyées par les lectures sont marquées non fiables, et les balises qui pourraient imiter un appel d'outil sont neutralisées : un nom de client ou une note piégés ne peuvent pas commander l'IA.
Limites de débit
| Limite | Valeur |
|---|---|
| Appels d'outils par connexion | 120 par minute |
| Appels d'outils par entreprise (tous canaux) | 400 par minute |
| Confirmations par connexion | 30 par heure |
| Requêtes HTTP sur le point MCP (par jeton) | 600 par minute |
| Jeton et révocation (par IP et client) | 120 par minute |
| Enregistrement de client (par IP) | 120 par minute |
| Métadonnées (par IP) | 600 par minute |
Au-delà, l'outil renvoie un résultat en erreur (isError: true) du type « Trop d'appels en peu de temps. Réessayez dans N secondes. » ; les limites HTTP renvoient 429.
Journal d'audit
Chaque appel est inscrit avec la date, l'événement (consultation, aperçu, confirmation, annulation), l'outil, un résumé, le statut (ok, refusé, interdit...) et la plateforme (claude, chatgpt, gemini, nova). L'utilisateur voit le journal de chaque intégration dans Novadesko. Les conversations elles-mêmes ne sont ni reçues ni stockées par Novadesko.