Documentation / Sécurité
Sandbox et autorisations
Où l’agent peut travailler, ce qu’il fait sans demander et ce qui attend toujours votre approbation.
L’agent travaille à l’intérieur d’un périmètre que le moteur de Yuli applique à chaque opération. C’est vous qui décidez jusqu’où s’étend ce périmètre et ce que l’agent peut faire sans vous demander.
Dans le projet et hors du projet
Par sécurité, l’agent et le panneau de projet ne peuvent créer, déplacer, copier ou supprimer des fichiers qu’à l’intérieur du projet ouvert.
| Où | Ce qui se passe |
|---|---|
| Dans le projet | L’agent travaille selon l’autonomie configurée. Chaque modification passe par la fenêtre des modifications. |
| Dossier autorisé hors du projet | Il peut lire, ou lire et écrire, selon ce que vous avez choisi. |
| Tout autre chemin ou une modification de la machine | Il vous demande toujours confirmation. |
Donner accès à un autre dossier
- Ouvrez Projet → Accès aux dossiers….
- Cliquez sur Ajouter un dossier… et choisissez-le dans la boîte de dialogue du système.
- Choisissez Lecture et écriture ou Lecture seule pour ce dossier.
- Pour révoquer l’accès, cliquez sur Retirer l'accès.
Les autorisations sont définies par projet. Un nouveau dossier est ajouté en lecture et écriture ; passez-le en lecture seule si vous avez seulement besoin que l’agent le consulte.
Confiance du projet
La première fois que vous ouvrez un projet, Yuli demande « Faites-vous confiance à ce projet ? ». Faire confiance permet d’exécuter les processeurs d’annotations (Lombok) et les tâches de compilation (Maven/Gradle) du projet pour une analyse complète.
| Option | Ce qu’elle fait |
|---|---|
| Faire confiance | Exécute Lombok et Maven/Gradle pour résoudre les dépendances. Analyse complète. |
| Mode restreint | N’exécute aucun code du dépôt : javac analyse avec -proc:none, Lombok est modélisé en interne et seul le classpath déjà enregistré est utilisé. |
Modifiez cette décision dans Projet → Options globales… → Sécurité → Projets de confiance : Faire confiance, Restreindre, Oublier ou Redemander à l'ouverture.
La confiance n’affecte que l’intelligence du code et le build. Elle ne modifie pas les autorisations de l’agent.
Ce que l’agent fait sans demander
Le moteur évalue chaque action et lui attribue un niveau de risque (faible, moyen, élevé ou critique), accompagné d’une explication et de la manière de l’annuler. Selon le préréglage d’autorisation, il approuve seulement ce qui est sûr ou vous pose la question.
| Préréglage | Modifier un fichier | Créer un fichier | Exécuter une commande | Supprimer |
|---|---|---|---|---|
| Prudent | Demande | Demande | Demande | Demande |
| Équilibré (par défaut) | Seul | Demande | Demande | Demande |
| Autonome | Seul | Seul | Seul | Demande |
Tant que l’agent vous interroge à chaque étape, « Tout approuver ? » apparaît au-dessus de la zone de saisie du chat. Tout approuver passe en Autonome : l’agent modifie, remplace et lance sans vous demander d’approbation à chaque étape, et la fenêtre des modifications ainsi que le rollback permettent de tout annuler. Continuer à demander ferme la proposition.
Ce qui augmente le risque
- Supprimer des fichiers ou toucher à des chemins hors du projet.
- Les migrations et les fichiers
.sql. - La configuration de production (
application-prod, Terraform, Kubernetes, Helm). - Les manifestes de dépendances.
- Des modifications sur de nombreux fichiers à la fois.
git push,mergeou la réécriture de l’historique.- Des secrets dans le contenu.
- L’accès réseau (
curl,scp,ssh,docker push,npm publish,mvn deploy). DROP,TRUNCATEouDELETE FROM.
Autonomie avancée
Agent → Autonomie… ouvre les règles permettant aux propositions de s’appliquer d’elles-mêmes. Elle est désactivée par défaut : vous examinez chaque proposition avant qu’elle n’atteigne le disque.
| Paramètre | Ce qu’il fait |
|---|---|
| Nombre maximal de fichiers par tour | Au-delà de ce nombre, une autorisation est demandée. |
| Chemins autorisés (pathsAllow) | Globs où l’application automatique est permise, par exemple src/**. Vide, il autorise tout chemin non refusé. |
| Chemins refusés (pathsDeny) | Globs qui exigent toujours une autorisation humaine, par exemple **/.env. |
| Exiger une vérification réussie | N’applique automatiquement que si la vérification du projet est au vert. |
Les chemins refusés par défaut incluent **/.env, **/.env.*, **/credentials*, **/*.pem, **/*id_rsa*, **/.ssh/** et **/migrations/**.
Chemins qui demandent toujours confirmation
Aucun préréglage ne peut contourner ces cas. Écrire dans un chemin contenant .env, credentials, secret, id_rsa, .pem, .git/ ou .ssh/ demande toujours votre confirmation.
En outre, le contrat de qualité protège le contrat lui-même, les hooks Git et les fichiers de CI : un agent ne peut pas les modifier.
Git, CI et DevOps : uniquement sur demande
L’agent ne fait ni commit, ni push, ni merge, ni rebase, ni tags, ni opérations de CI de sa propre initiative. Les commandes telles que git commit, git push, gh, glab, az pipelines, az repos ainsi que les outils des serveurs MCP de GitHub, GitLab, Jenkins ou CloudBees sont bloqués.
- Yuli détecte dans votre message une demande explicite, en espagnol ou en anglais : « haz commit », « súbelo », « push », « crea un PR », « despliega »…
- Avec cette demande, Git est activé pour la session.
- Même ainsi, chaque action demande votre approbation.
Créer une branche ou un worktree nécessite sa propre demande explicite. Même si vous demandez « haz commit y push », l’agent travaille sur la branche actuelle.
Clients de base de données bloqués
L’agent ne peut pas utiliser de clients de base de données en ligne de commande : sqlplus, sqlcl, sqlcmd, bcp, sqlite3, psql, mysql, mariadb, mongo, mongosh, isql, db2, impdp, expdp, rman et similaires. Toute requête passe par les outils de Yuli et leur politique. Voir Base de données sécurisée.
En mode abonnement
Avec Claude Code, Kiro, Codex ou Antigravity, les mêmes règles s’appliquent. Yuli les applique au moyen de hooks et en tant que client ACP :
- Dans le projet, l’agent travaille sans interruption ; en dehors, il vous demande.
- Git, CI et branches uniquement si vous les demandez.
- Les secrets ne sont jamais lus.
Dans Options globales → IA et modèles → Mode IA, vous pouvez désactiver Faire respecter les règles pour passer en « avertissement seul » : Yuli signale ce qui manque, mais ne bloque pas. Git et les secrets restent toujours protégés.