Use essa referência para entender as chaves atualmente compatíveis em managed-settings.json.
Para obter métodos de implantação e clientes com suporte, consulte Configurando configurações gerenciadas pela empresa.
Regras de precedência
Quando várias fontes de configurações estão presentes, as configurações anteriores nesta lista têm precedência sobre as configurações posteriormente na lista:
- Configurações gerenciadas por MDM
- Configurações gerenciadas pelo servidor
- Configurações baseadas em arquivo
- Configurações no nível do usuário
Como exceção, as seguintes chaves são compostas na direção mais restritiva entre diferentes métodos de entrega:
sandboxpermissions.deny,permissions.askepermissions.allow
Chaves com suporte
| Key | Purpose | Copilot CLI | VS Code | GitHub Copilot app | Copilot cloud agent | JetBrains IDEs |
|---|---|---|---|---|---|---|
permissions.disable | Desabilita o desvio ou o comportamento de permitir tudo no estilo YOLO | |||||
permissions.deny | Bloqueia operações específicas | |||||
permissions.ask | Requer uma nova aprovação humana antes que operações específicas possam continuar | |||||
permissions.allow | Permite que operações específicas prossigam sem um prompt | |||||
model | Define a seleção de modelo automático como o padrão para novas conversas | |||||
enabledPlugins | Habilita ou desabilita plug-ins específicos por chave | |||||
extra | Adiciona marketplaces de plug-in que os usuários podem acessar | |||||
strict | Restringe a instalação do plug-in a marketplaces explicitamente listados | |||||
telemetry | Configura a exportação do OpenTelemetry, roteando dados de uso Copilot para um coletor de sua escolha | |||||
remoteControl | Restringe se as sessões hospedadas neste dispositivo podem ser controladas remotamente, com base no status de autorização de SSO do cliente de controle para as organizações listadas. Não afeta a capacidade do usuário de controlar remotamente as sessões hospedadas em outros dispositivos | |||||
allowedMcpServers | Define uma lista de permissões de servidores MCP permitidos para execução. Qualquer servidor não correspondido é bloqueado. Deixe em branco para permitir todos os servidores; sujeito às regras de negação | |||||
deniedMcpServers | Define servidores MCP bloqueados incondicionalmente, mesmo que eles também correspondam a uma entrada em allowedMcpServers | |||||
sandbox | Impõe restrições mínimas de área restrita local para execução de comando, sistema de arquivos e acesso à rede, credenciais e servidores MCP e LSP locais |
Aplicando configurações diferentes às equipes corporativas
Para implantações gerenciadas pelo servidor, a organização pode aplicar diferentes políticas de governança a grupos de usuários com base em seu pertencimento à equipe da empresa. A empresa define todas as configurações— a associação de equipe determina apenas quais usuários recebem um determinado conjunto de valores.
Para tornar uma chave elegível para valores específicos da equipe, marque-a como substituível em managed-settings.json, usando a sintaxe { "overridable": <VALUE> }. Uma chave substituível usa o valor da equipe quando configurado ou recua para o padrão corporativo quando a equipe não o configura. A sintaxe { "overridable": <VALUE> } aplica-se às teclas model, permissions.disableBypassPermissionsMode, permissions.deny, permissions.ask, permissions.allow, allowedMcpServers e deniedMcpServers. As chaves que não são marcadas como substituíveis permanecem uma decisão de nível corporativo que as equipes não podem modificar.
enabledPlugins e extraKnownMarketplaces funcionam de forma aditiva. A configuração corporativa managed-settings.json define uma base, e um arquivo de equipe corporativa pode adicionar mais plug-ins e marketplaces a ela. Para obter as etapas completas de instalação, consulte Configurando configurações gerenciadas pela empresa.
Configuração de exemplo
O exemplo a seguir mostra essas chaves em um arquivo de configurações gerenciadas.
{
"model": "auto",
"permissions": {
"disableBypassPermissionsMode": "disable",
"deny": [
"Shell(rm -rf *)",
"Read(~/.ssh/**)",
"Edit(//etc/**)",
"Domain(*.unapproved.example)"
],
"ask": [
"Shell(git push *)",
"Edit(/src/**)",
"Domain(api.github.com)"
],
"allow": [
"Shell(npm test *)",
"Read(/src/**)",
"Domain(registry.npmjs.org)"
]
},
"enabledPlugins": {
"my-plugin@agent-skills": true
},
"extraKnownMarketplaces": {
"agent-skills": {
"source": {
"source": "github",
"repo": "OWNER/REPO"
},
"autoUpdate": true
}
},
"strictKnownMarketplaces": [
{
"source": "github",
"repo": "OWNER/REPO"
}
],
"telemetry": {
"enabled": true,
"endpoint": "https://otel-collector.example.com",
"protocol": "http/protobuf",
"captureContent": false,
"lockCaptureContent": true,
"serviceName": "copilot",
"resourceAttributes": {
"deployment.environment": "production"
},
"headers": {
"Authorization": "Bearer TOKEN"
}
},
"remoteControl": {
"mode": "requireSSO",
"githubDotComOrganizations": ["ORG-NAME"]
},
"allowedMcpServers": [
{ "serverUrl": "https://api.githubcopilot.com/*" },
{ "serverCommand": ["npx", "@playwright/mcp@latest"] },
{ "serverCommand": ["cmd", "/c", "uvx", "markitdown-mcp"] }
],
"deniedMcpServers": [
{
"serverCommand": [
"npx",
"-y",
"@modelcontextprotocol/server-filesystem",
"/"
]
}
],
"sandbox": {
"enabled": true,
"allowBypass": false,
"sandboxMcpServers": true,
"sandboxLspServers": true
}
}
enabledPlugins
Define plug-ins instalados ou bloqueados automaticamente para todos os usuários corporativos. Cada entrada usa o formato PLUGIN-NAME@MARKETPLACE-NAME como a chave, com um valor booliano: true para exigir que o plug-in seja habilitado ou false para exigir que ele seja desabilitado. Consulte Sobre os padrões de plug-in gerenciados pela empresa.
extraKnownMarketplaces
Define outros marketplaces de plug-in disponíveis para os usuários. Cada entrada é um objeto de marketplace nomeado que contém uma propriedade source e um booleano autoUpdate opcional.
Defina autoUpdate como true para exigir que os clientes atualizem periodicamente esse marketplace e os plugins instalados a partir dele. Defina-o para false exigir que as atualizações automáticas permaneçam desabilitadas para esse marketplace. Se você omitir autoUpdate, os clientes usarão o comportamento padrão existente ou o comportamento configurado pelo usuário.
Como as configurações gerenciadas têm precedência, os usuários não podem substituir um valor definido autoUpdate . A configuração aplica-se apenas àquele marketplace, e quaisquer restrições em strictKnownMarketplaces ainda se aplicam antes das operações de recarregamento e atualização.
Há suporte para os seguintes tipos de origem:
"github"— requerrepoem formatoOWNER/REPO; opcionalref(ramificação, marcação ou SHA) e subdiretóriopath"git"— requerurl; opcionalrefepath"directory"— requerpath
Consulte Sobre os padrões de plug-in gerenciados pela empresa.
strictKnownMarketplaces
Restringe a instalação do plug-in somente aos marketplaces definidos explicitamente pela empresa. Uma matriz vazia significa bloqueio completo. Cada entrada é um objeto do marketplace com uma source propriedade que indica o tipo de origem. Há suporte para os seguintes tipos de origem:
"github"— requerrepono formatoOWNER/REPO; opcionalrefepath"git"— requerurl; opcionalrefepath"url"— requerurl; objeto opcionalheaders"npm"— requerpackage"file"— requerpath"directory"— requerpath"hostPattern"— requerhostPattern(hosts do marketplace na correspondência regex)"pathPattern"— requerpathPattern(caminhos do marketplace na correspondência regex)
modelo
Define a seleção de modelo automático como o padrão para novas conversas. Consulte Sobre Copilotauto model selection.
- Quando você define
modelcomo"auto", novas sessões usam o modelo Automático, a menos que o usuário especifique um modelo diferente por conversa. - Essa chave é substituível pelo mapeamento de equipe empresarial. No
managed-settings.json, use a sintaxe{ "overridable": "auto" }para personalizar a configuração da chave para cada equipe. Em seguida, você pode definir"model": "unmanaged"em um arquivo de configurações da equipe, fornecendo uma especialização que tem precedência sobremanaged-settings.jsonpara os membros da equipe em questão.
Observação
model foi originalmente documentado como permissions.model. Os clientes ainda leem o valor permissions.model aninhado quando a chave model de nível superior está ausente, mas você deve usar a chave model de nível superior em novas configurações.
permissões
negar, perguntar, permitir
As chaves permissions.deny, permissions.ask e permissions.allow usam a precedência negar > solicitar > permitir. Se uma fonte gerenciada por MDM, gerenciada pelo servidor ou baseada em arquivo definir qualquer regra de permissão — ou se qualquer fonte aplicável declarar uma lista allow —, uma operação compatível não correspondente exigirá aprovação por padrão. Caso contrário, segue o fluxo normal de permissões.
denybloqueia operações específicas, independentemente de também corresponderem a uma regraallowouask. Uma regra de negação definida por qualquer fonte de configurações gerenciadas bloqueia a operação para todos os usuários, independentemente das regras nas outras fontes.askrequer aprovação única e nova antes que uma operação específica possa continuar, mesmo que a operação seja permitida de outra forma. Uma regra gerenciadaasknão pode ser atendida pelo modo de bypass (também conhecido como modo allow-all ou YOLO), uma configuração de aprovação automática, um gancho ou outro atalho de aprovação ou uma concessão persistida de uma aprovação anterior. A mesma operação será solicitada novamente na próxima vez em que for necessária.allowpermite que uma operação específica prossiga sem um prompt. A lista de permissões efetiva é a interseção de todas as fontes que a declaram, não a união. Uma fonte que não declara umaallowlista não coloca nenhuma restrição própria nessa chave.
As regras usam os seguintes seletores:
| Seletor | Partidas |
|---|---|
Shell(...) | Comandos do Shell. Use <command> * (por exemplo, git push *) para corresponder a um prefixo de comando; caso contrário, a regra corresponderá ao texto exato. |
Bash(...) é um alias de compatibilidade para Shell(...). | |
PowerShell(...) usa a mesma família de seletores com correspondência de comandos sem distinção entre maiúsculas e minúsculas. | |
Read(...) | Caminhos de leitura e visualização dos arquivos. Oferece suporte a padrões glob e a estas raízes: // para a raiz do sistema de arquivos, / para a raiz do espaço de trabalho, ~/ para o diretório pessoal e ./ para o diretório de trabalho atual. |
Edit(...) | Os caminhos para gravar e editar arquivos seguem o mesmo critério de correspondência que Read(...). |
Write(...) é um alias para Edit(...). | |
Domain(...) | Origens de rede. Um host simples usa HTTPS por padrão, e a correspondência de hosts não diferencia maiúsculas de minúsculas. Use *. para incluir subdomínios; por exemplo, *.example.com corresponde a example.com e seus subdomínios. |
Cada subchave é substituível para equipes empresariais. Defina o valor da empresa como { "overridable": <VALUE> }, substituindo <VALUE> pela matriz de regras. Em seguida, use a sintaxe padrão para definir regras de substituição no arquivo de cada equipe.
disableBypassPermissionsMode
Impede que os usuários habilitem o modo de bypass (também conhecido como "modo YOLO"). O modo de bypass permite que um agente execute comandos, acesse arquivos e busque URLs sem solicitar aprovação.
Quando você define disableBypassPermissionsMode como "disable", os usuários não podem ativar o modo de bypass:
- Em Copilot CLI, todas as opções de linha de comando que permitem todas as permissões (
--yolo,--allow-alle as opções individuais--allow-all-tools,--allow-all-pathse--allow-all-urls) são suprimidas na inicialização e não podem conceder permissões elevadas. Os comandos de barra/yoloe/allow-alltambém estão bloqueados. - Em VS Code, a configuração de aprovação automática global (
chat.tools.global.autoApprove) está desativada e não pode ser habilitada novamente. - Em GitHub Copilot app, a configuração "Permitir tudo" de "Permissões de ferramentas" está bloqueada nas configurações da sessão.
- Essa chave é substituível pelo mapeamento de equipe empresarial. No
managed-settings.json, use a sintaxe{ "overridable": "disable" }para personalizar a configuração da chave para cada equipe. Em seguida, você pode definir"disableBypassPermissionsMode": "unmanaged"em um arquivo de configurações da equipe, fornecendo uma especialização que tem precedência sobremanaged-settings.jsonpara os membros da equipe em questão.
telemetria
Configura a exportação do OpenTelemetry, encaminhando os dados de uso Copilot para um coletor à sua escolha.
Essa propriedade tem suporte para Copilot CLI e VS Code.
Quando você define a propriedade telemetry, a telemetria de Copilot é enviada para o endpoint que você especificar. Há suporte para as seguintes sub-propriedades:
enabled: Defina comotruepara ativar a exportação de telemetria ou comofalsepara desativá-la.endpoint: a URL do coletor OTLP (por exemplo,https://otel-collector.example.com).protocol: o protocolo de transporte para exportação de telemetria. Os valores aceitos são"http/json"e"http/protobuf".captureContent: defina comotruepara incluir o conteúdo do prompt e da resposta na carga de telemetria, oufalsepara excluí-lo.lockCaptureContent: definido comotruepara impedir que os usuários alterem a configuraçãocaptureContent.serviceName: um rótulo para o nome do serviço de telemetria (por exemplo,"copilot").resourceAttributes: um objeto de atributos de recurso OpenTelemetry a ser anexado a toda a telemetria exportada (por exemplo,{"deployment.environment": "production"}).headers: um objeto de cabeçalhos HTTP para incluir com cada solicitação de telemetria (por exemplo, um cabeçalhoAuthorizationpara o coletor).
remoteControl
Restringe se as Copilot sessões hospedadas em um dispositivo podem ser controladas remotamente. Isso não afeta a capacidade de um usuário de controlar remotamente suas sessões hospedadas em outros dispositivos.
mode: Defina como"disabled"para impedir o controle remoto de sessões no dispositivo,"requireSSO"para permitir o controle remoto apenas a partir de um cliente autorizado por SSO para as organizações listadas emgithubDotComOrganizations, ou"enabled"para permiti-lo sem restrições.githubDotComOrganizations: uma matriz de logons da organização. Necessário quandomodeé"requireSSO".
allowedMcpServers
Define uma lista de permissões de servidores MCP permitidos para execução. Quando definido, somente servidores correspondentes a pelo menos uma entrada são permitidos. Qualquer servidor que não seja correspondido é bloqueado.
Omita completamente essa chave para permitir todos os servidores, desde que respeitadas as entradas em deniedMcpServers. Defina-a como uma matriz vazia para bloquear todos os servidores, exceto servidores padrão internos.
Quando várias fontes de configurações definem allowedMcpServers, a lista de permissões efetiva é a interseção de todas as fontes. Um servidor deve ser autorizado por cada origem para ser executado.
Cada entrada deve conter exatamente uma propriedade correspondente.
| Property | Comportamento correspondente | Servidores aplicáveis |
|---|---|---|
serverName | Corresponde exatamente ao rótulo do servidor atribuído pelo usuário. Não há suporte para caracteres curinga. Como os usuários escolhem nomes de servidor, usem serverUrl ou serverCommand quando você precisar impor a identidade de um servidor. | Qualquer servidor. Os servidores na memória só podem usar serverName. |
serverUrl | Corresponde a uma URL do servidor remoto. | |
* Dá suporte a curingas para subdomínios ou prefixos de caminho, por exemplo, https:/ ou https:/. | Servidores remotos que se conectam via HTTP ou SSE (eventos enviados pelo servidor). Essa propriedade não se aplica aos servidores locais, mesmo que eles tenham uma URL. | |
serverCommand | Corresponde ao comando exato e a cada argumento de um servidor local, por exemplo, ["npx", "-y", "my-mcp-server"]. Não há suporte para curingas e expansão de linha de comando. | Servidores locais que usam entrada e saída padrão (stdio). Essa propriedade não se aplica a servidores remotos, mesmo que eles tenham um comando. |
Essa chave é substituível para as equipes corporativas. Empacote os objetos correspondentes em overridable no nível corporativo e, em seguida, use a sintaxe regular para definir listas de permissões e listas de bloqueio no arquivo de cada equipe.
Canonização de URL
Antes de comparar um serverUrl padrão com uma URL do servidor, o cliente normaliza os dois valores:
- Converte o esquema e o host em letras minúsculas.
- Converte nomes de host internacionalizados ou Unicode em Punycode.
- Remove a porta padrão,
:80para HTTP ou:443para HTTPS. - Decodifica octetos de host codificados por porcentagem. Por exemplo,
%65vilse tornaráevil. - Remove os fragmentos de URL e os pontos à direita de nomes DNS.
- Impede que curingas no componente de autoridade correspondam ao limite
/no caminho.
deniedMcpServers
Define servidores MCP bloqueados incondicionalmente. Um servidor que corresponde a qualquer entrada é bloqueado mesmo que ele também corresponda a uma entrada em allowedMcpServers. As regras de negação sempre têm precedência sobre as regras de permissão.
Servidores de primeira parte Copilot , como o servidor MCP interno GitHub , são isentos de regras de negação e não podem ser bloqueados.
Quando várias fontes de configuração definem deniedMcpServers, a lista de bloqueio efetiva é a união de todas as fontes. Um servidor bloqueado por qualquer origem é bloqueado para todos.
Cada entrada usa a mesma serverName, serverUrlou serverCommand propriedades descritas em allowedMcpServers.
sandbox
Impõe restrições mínimas de sandbox local para Copilot CLI. As configurações de área restrita gerenciada impõem restrições em vez de padrões:
- Para configurações de ativação forçada, um valor gerenciado de
trueaplica a configuração.falseou a omissão deixa a configuração do usuário inalterada. - Para configurações de funcionalidade, um valor gerenciado de
falseproíbe a funcionalidade.trueou a omissão deixa a configuração do usuário inalterada. - As listas de caminhos de leitura/gravação e somente leitura gerenciadas restringem as concessões configuradas pelo usuário, enquanto os caminhos bloqueados gerenciados adicionam bloqueios configurados pelo usuário.
Há suporte para as seguintes sub-propriedades:
enabled:truerequer o isolamento em área restrita e impede que os usuários o desativem.allowBypass:falseimpede que o modelo solicite que um comando individual seja executado fora da área restrita.addCurrentWorkingDirectory:falseimpede que Copilot CLI adicione automaticamente o diretório de trabalho atual aos caminhos de leitura e gravação da sandbox.sandboxMcpServers:trueexige que os servidores MCP locais iniciados por Copilot CLI sejam executados na área restrita. Os servidores MCP remotos não são executados na área restrita local.sandboxLspServers:trueexige que os servidores de linguagem iniciados por Copilot CLI sejam executados no sandbox.gitAuth:falseimpede que Copilot CLI injete um token GitHub para operações Git HTTPS autenticadas no ambiente restrito.ghAuth:falseimpede Copilot CLI de injetar um token GitHub para GitHub CLI no sandbox.allowDevToolAccess:falseimpede o acesso automático à configuração da ferramenta de desenvolvimento, caches, registros e carrinhos de ferramentas. Esses locais podem conter credenciais ou tokens de registro de pacotes. Desabilitar o acesso pode fazer com que a restauração de pacotes, as operações autenticadas no registro ou as compilações que usam caches compartilhados falhem, a menos que você conceda explicitamente acesso aos caminhos necessários.userPolicy: um objeto que configura restrições do sistema de arquivos, de rede e específicas do Seatbelt no macOS. As propriedades compatíveis são descritas nas seções a seguir.
sandbox.userPolicy.filesystem
Configura o acesso ao sistema de arquivos para processos em sandbox. Os caminhos devem ser absolutos. As listas de concessões gerenciadas são comparadas com as listas configuradas pelo usuário pela cadeia de caracteres do caminho exata, e não pela cobertura de caminhos pai ou filho.
readwritePaths: uma matriz de caminhos que os processos em área restrita podem ler e gravar. Um caminho configurado pelo usuário permanecerá disponível somente se sua cadeia de caracteres exata também aparecer em todas as fontes gerenciadas que especificam essa propriedade. Uma matriz gerenciada vazia remove todas as concessões de caminho de leitura/gravação configuradas pelo usuário, mas não remove o acesso montado separadamente, como diretórios temporários ou o diretório de trabalho atual.readonlyPaths: uma matriz de caminhos que os processos em área restrita podem ler, mas não gravar. Um caminho configurado pelo usuário permanecerá disponível somente se sua cadeia de caracteres exata também aparecer em todas as fontes gerenciadas que especificam essa propriedade. Uma matriz gerenciada vazia remove todas as concessões de caminho somente leitura configuradas pelo usuário, mas não remove o acesso montado separadamente.deniedPaths: uma matriz de caminhos que os processos em área restrita não podem acessar. Um valor gerenciado é adicionado aos caminhos bloqueados de um usuário, em vez de substituí-los.
sandbox.userPolicy.network
Configura o acesso à rede para processos em área restrita.
allowOutbound:falsebloqueia o acesso à rede de saída.allowLocalNetwork:falseimpede o acesso à rede local.
O comportamento da rede varia de acordo com o sistema operacional. Em particular, um proxy não é um limite de controle de saída completo porque alguns aplicativos podem ignorar as configurações de proxy.
sandbox.userPolicy.seatbelt
Configura opções de Cinto de Segurança específicas do macOS.
keychainAccess:falseimpede que processos em área restrita acessem o conjunto de chaves do macOS.