Menu da documentação
Primeiros passos
Painel e análises
- Painel em resumo
- Análise de custo
- Desempenho de pipeline
- Insights de otimização
- Knowledge Base
- Conecte seu agente de IA
Runners gerenciados
- Visão geral dos runners
- Execute seu primeiro job
- Migre dos hospedados pelo GitHub
- Latchkey CLI
- A página de Runners
- Runners personalizados (AI Scan)
- Autorreparo
- Imagem e software do runner
- Provisionamento e pools a quente
- Limites e concorrência
Cache
Equipe e notificações
Faturamento e planos
Ajuda
Segurança e permissões do GitHub
Exatamente o que o GitHub App do Latchkey pode ler e alterar, como a infraestrutura de runners é isolada e como funciona a exclusão.
Esta página descreve o que o Latchkey pode e não pode acessar, em termos claros, para que sua revisão de segurança tenha uma resposta direta. Ela cobre quatro coisas: o que o GitHub App lê, quando o Latchkey escreve nos seus repositórios, como a infraestrutura de runners é isolada e como funciona a exclusão de dados.
O que o Latchkey lê, e o que nunca toca#
O Latchkey lê
- Metadados de execução de workflow e de job: nomes, tempos, status, labels de runner
- Arquivos YAML de workflow em
.github/workflows/ - Metadados de repositório (nomes, visibilidade, branch padrão) para repos habilitados
- O plano da sua conta GitHub, para modelar os custos de runner do GitHub com precisão
O Latchkey nunca lê
- O código-fonte da sua aplicação além dos arquivos de workflow e dos manifestos de build necessários para diagnosticar uma falha
- Segredos e valores de variáveis de ambiente
- Issues e discussões de pull request
A fronteira é deliberada: tudo à esquerda existe para alimentar um recurso específico, e nada além disso é solicitado. Metadados de execução e de job são a matéria-prima dos painéis de análise; o YAML de workflow é o que a IA lê para propor otimizações, e o único tipo de arquivo que um PR de otimização edita; metadados de repositório orientam a lista de repositórios no modal de Monitoramento; e o seu plano GitHub alimenta o modelo de custo do lado do GitHub na página de Análise de custos.
Quando o Latchkey escreve nos seus repositórios#
Apenas por meio de pull requests, e apenas em duas situações:
- Você clica em aplicar em uma recomendação de otimização: o Latchkey abre um PR (branch
latchkey/insight-...) alterando o arquivo de workflow. - A auto-recuperação propõe uma correção durável: um PR de recuperação descrevendo a causa-raiz e a mudança.
| Momento de escrita | O que o dispara | O que você vê no GitHub |
|---|---|---|
| PR de otimização | Você clica em aplicar em uma recomendação na página Optimization Insights | Um pull request intitulado "Latchkey insight: <what it does>" em uma branch chamada latchkey/insight-... |
| PR de recuperação | A auto-recuperação diagnostica uma causa-raiz que precisa de uma correção durável no repositório | Um pull request intitulado "Latchkey heal: <error summary>" em uma branch latchkey/heal-..., descrevendo o que falhou, por quê, e o que a mudança faz |
| Gerenciamento do grupo de runners | Instalar o app, para que jobs latchkey-* possam rotear para runners gerenciados | O app gerencia seu próprio grupo de runners na sua organização; nenhum conteúdo de repositório muda |
Ambos os tipos de PR são pull requests comuns para sua equipe revisar, editar ou fechar. O Latchkey nunca faz push diretamente para suas branches e nunca mescla nada, então se você nunca mesclar um PR do Latchkey, nada no seu repositório muda. Pull requests de forks nunca são tocados. O grupo de runners que o app gerencia é encanamento de CI da organização, não conteúdo de repositório.
Isolamento de runners#
Runners gerenciados executam seu código, então seu modelo de isolamento importa mais do que qualquer outra coisa nesta página. Quatro propriedades trabalham juntas:
- Um job por runner. Todo runner gerenciado executa um único job e é destruído depois; nada persiste entre jobs ou entre clientes. O que quer que um job grave, instale ou quebre desaparece com a máquina.
- Rede privada. Runners vivem em subnets privadas sem IP público e sem acesso de entrada: o runner alcança o exterior para fazer seu trabalho, mas nada na internet pode iniciar uma conexão com ele.
- Padrões de instância reforçados, incluindo proteções obrigatórias de metadados de instância e discos criptografados.
- O registro é just-in-time. Runners novos se registram para exatamente um job com credenciais de uso único, então não há credenciais de runner de longa duração para roubar; uma credencial é gasta assim que seu job é concluído.
A auto-recuperação e seus segredos#
O diagnóstico de auto-recuperação roda localmente no runner, contra a saída do passo que seu job já imprime, então nada novo é exposto: segredos mascarados pelo GitHub Actions permanecem mascarados, e o runner, incluindo tudo o que o diagnóstico viu, é destruído após o job. Correções durante a execução só tocam o runner efêmero; correções duráveis sempre chegam apenas como pull requests para revisão, e pull requests de forks nunca são tocados. O modelo completo está em Auto-recuperação.
Chaves de API e o servidor MCP#
Se você conectar um agente de IA por MCP, a chave de API é a credencial a considerar:
- Somente leitura por padrão. As chaves podem ler dados de falhas e execuções de CI; alterar qualquer coisa no Latchkey ou no GitHub fica desativado por padrão, e cada escrita é um opt-in separado por chave na criação.
- O dispatch é opt-in por chave. Uma chave criada com Allow workflow dispatch também carrega o escopo
mcp:dispatch, permitindo que o agente dispare execuçõesworkflow_dispatchnos seus repositórios monitorados. Chaves criadas sem ele, incluindo todas as criadas antes de a opção existir, não podem disparar. - Executar jobs é opt-in por chave. Uma chave criada com Allow running CLI jobs (includes reading) carrega o escopo
jobs:run, permitindo que seu portador execute comandos avulsos em runners cobráveis do Latchkey no seu workspace. Allow reading CLI job status and logs concede apenasjobs:read. - Com escopo de workspace. O workspace é derivado da própria chave, então uma chave só pode ver os dados do seu próprio workspace.
- Exibida uma vez. A chave completa (começa com
lk_live_) é exibida apenas na criação; depois disso a interface mostra um placeholder. - Revogável. Revogue qualquer chave em Settings, API Keys: uma chave com permissão de escrita (dispatch ou jobs) perde o acesso imediatamente, uma chave somente leitura em cerca de um minuto. Chaves revogadas permanecem listadas para auditoria.
Qualquer pessoa que possua uma chave pode ler seus dados de falhas e execuções de CI, incluindo trechos de log de jobs concluídos; uma chave com dispatch habilitado pode ainda reexecutar qualquer workflow manualmente disparável em um repositório monitorado, e uma chave com jobs habilitados pode executar comandos em runners cobráveis, gastando minutos de runner. Trate as chaves como senhas: armazene-as na configuração do seu agente, não em um repositório, habilite escritas apenas onde precisar, e rotacione qualquer chave que possa ter vazado.
Tratamento de dados#
- Os dados são criptografados em trânsito (TLS) e em repouso.
- Dados de análise têm escopo do seu workspace e são isolados por organização: cada workspace tem seu próprio plano, equipe, repositórios e dados, e ser membro de um workspace nunca concede visibilidade sobre outro.
- Os diagnósticos de auto-recuperação trabalham sobre logs de passo dentro do runner; os relatórios de recuperação exibidos no seu painel contêm o diagnóstico e a ação tomada.
Excluindo seus dados#
- Desabilitar um repositório: a ingestão para imediatamente; seus dados são arquivados para fora do seu painel. Reabilitar depois inicia um novo backfill. Veja Gerenciando repositórios.
- Cancelar sua assinatura: o acesso é bloqueado, mas seus dados são retidos para que reassinar os restaure.
- Excluir o workspace (Settings, Account; apenas dono): remove permanentemente repositórios, dados de workflow e recursos de runner gerenciado, e cancela a cobrança.
- Excluir sua conta: remove sua conta Latchkey e os workspaces que você possui. Seus repositórios e workflows do GitHub nunca são afetados por nenhuma dessas ações.
O Latchkey consegue ler meus secrets?
Não. O Latchkey lê execuções e jobs de workflow, o YAML do workflow e manifests específicos de build como package.json, go.mod e Dockerfile ao diagnosticar uma falha. Ele nunca lê seus secrets nem valores de ambiente, que sequer ficam disponíveis para o caminho de análise.
O Latchkey escreve nos meus repositórios?
Apenas como pull requests que você revisa. PRs de otimização e PRs de correção são propostos como pull requests normais e só entram quando você faz o merge. Nada é enviado direto para uma branch.
O que acontece com meus dados se eu excluir meu workspace?
São removidos permanentemente. Os runners são máquinas de job único em rede privada, destruídas após cada job, então nada persiste ali entre jobs, e excluir o workspace remove junto os dados de analytics armazenados.