Documentação / Segurança
Sandbox e permissões
Onde o agente pode trabalhar, o que ele faz sem perguntar e o que sempre aguarda a sua aprovação.
O agente trabalha dentro de um perímetro que o motor do Yuli aplica em cada operação. Você decide até onde esse perímetro se estende e quanto o agente pode fazer sem perguntar.
Dentro e fora do projeto
Por segurança, o agente e o painel do projeto só podem criar, mover, copiar ou excluir arquivos dentro do projeto aberto.
| Onde | O que acontece |
|---|---|
| Dentro do projeto | O agente trabalha de acordo com a autonomia configurada. Cada alteração passa pela janela de alterações. |
| Pasta autorizada fora do projeto | Pode ler, ou ler e escrever, conforme o que você escolheu. |
| Qualquer outro caminho ou uma alteração no computador | Sempre pede a sua confirmação. |
Dar acesso a outra pasta
- Abra Projeto → Acesso a pastas….
- Clique em Adicionar pasta… e escolha-a na caixa de diálogo do sistema.
- Escolha Leitura e escrita ou Somente leitura para essa pasta.
- Para revogar, clique em Remover acesso.
As permissões são por projeto. Uma pasta nova é adicionada com leitura e escrita; mude para somente leitura se você só precisa que o agente consulte.
Confiança do projeto
Na primeira vez que você abre um projeto, o Yuli pergunta “Você confia neste projeto?”. Confiar permite executar processadores de anotações (Lombok) e tarefas de compilação (Maven/Gradle) do projeto para uma análise completa.
| Opção | O que faz |
|---|---|
| Confiar | Executa o Lombok e o Maven/Gradle para resolver dependências. Análise completa. |
| Modo restrito | Não executa código do repositório: o javac analisa com -proc:none, o Lombok é modelado internamente e só é usado o classpath já salvo. |
Mude a decisão em Projeto → Opções globais… → Segurança → Projetos confiáveis: Confiar, Restringir, Esquecer ou Perguntar novamente ao abri-lo.
A confiança afeta apenas a inteligência de código e o build. Ela não muda as permissões do agente.
Quanto o agente faz sem perguntar
O motor avalia cada ação e atribui a ela um nível de risco (baixo, médio, alto ou crítico), com uma explicação e a forma de desfazê-la. Conforme a predefinição de autorização, ele aprova sozinho o que é seguro ou pergunta a você.
| Predefinição | Modificar um arquivo | Criar um arquivo | Executar um comando | Excluir |
|---|---|---|---|---|
| Cauteloso | Pergunta | Pergunta | Pergunta | Pergunta |
| Equilibrado (padrão) | Sozinho | Pergunta | Pergunta | Pergunta |
| Autônomo | Sozinho | Sozinho | Sozinho | Pergunta |
Enquanto o agente pergunta a cada passo, acima da caixa do chat aparece “Aprovar tudo?”. Aprovar tudo muda para Autônomo: o agente edita, substitui e executa sem pedir aprovação a cada passo, e a janela de alterações e o rollback desfazem tudo. Continuar perguntando descarta a sugestão.
O que aumenta o risco
- Excluir arquivos ou mexer em caminhos fora do projeto.
- Migrações e arquivos
.sql. - Configuração de produção (
application-prod, Terraform, Kubernetes, Helm). - Manifestos de dependências.
- Alterações em muitos arquivos de uma vez.
git push,mergeou reescrever o histórico.- Segredos no conteúdo.
- Acesso à rede (
curl,scp,ssh,docker push,npm publish,mvn deploy). DROP,TRUNCATEouDELETE FROM.
Autonomia avançada
Agente → Autonomia… abre as regras para que as propostas sejam aplicadas sozinhas. Ela vem desligada: você revisa cada proposta antes que ela chegue ao disco.
| Configuração | O que faz |
|---|---|
| Máximo de arquivos por turno | Acima desse número, pede autorização. |
| Caminhos permitidos (pathsAllow) | Globs em que se pode aplicar sozinho, por exemplo src/**. Vazio permite qualquer caminho não negado. |
| Caminhos negados (pathsDeny) | Globs que sempre exigem autorização humana, por exemplo **/.env. |
| Exigir verificação aprovada | Só aplica sozinho se a verificação do projeto estiver verde. |
Os caminhos negados por padrão incluem **/.env, **/.env.*, **/credentials*, **/*.pem, **/*id_rsa*, **/.ssh/** e **/migrations/**.
Caminhos que sempre pedem confirmação
Nenhuma predefinição pode ignorar estes casos. Escrever em um caminho que contenha .env, credentials, secret, id_rsa, .pem, .git/ ou .ssh/ sempre pede a sua confirmação.
Além disso, o contrato de qualidade protege o próprio contrato, os hooks do Git e os arquivos de CI: um agente não pode editá-los.
Git, CI e DevOps: só se você pedir
O agente não faz commit, push, merge, rebase, tags nem operações de CI por iniciativa própria. São bloqueados comandos como git commit, git push, gh, glab, az pipelines, az repos e as ferramentas de servidores MCP do GitHub, GitLab, Jenkins ou CloudBees.
- O Yuli detecta na sua mensagem um pedido explícito, em espanhol ou inglês: “haz commit”, “súbelo”, “push”, “crea un PR”, “despliega”…
- Com o pedido, o Git fica habilitado para essa sessão.
- Mesmo assim, cada ação pede a sua aprovação.
Criar um branch ou um worktree exige um pedido explícito próprio. Mesmo que você peça “haz commit y push”, o agente trabalha no branch atual.
Clientes de banco de dados bloqueados
O agente não pode usar clientes de banco de dados de linha de comando: sqlplus, sqlcl, sqlcmd, bcp, sqlite3, psql, mysql, mariadb, mongo, mongosh, isql, db2, impdp, expdp, rman e similares. Toda consulta passa pelas ferramentas do Yuli e pela sua política. Veja Banco de dados seguro.
No Modo assinatura
Com o Claude Code, o Kiro, o Codex ou o Antigravity valem as mesmas regras. O Yuli as aplica com hooks e como cliente ACP:
- Dentro do projeto, o agente trabalha sem interrupções; fora dele, pergunta a você.
- Git, CI e branches só se você pedir.
- Os segredos nunca são lidos.
Em Opções globais → IA e modelos → Modo de IA você pode desativar Fazer cumprir as regras para passar a “Só avisar”: o Yuli informa o que falta, mas não bloqueia. Git e segredos são sempre protegidos.