A integração é formada por três peças que você já controla: uma entidade de serviço do Databricks, a CLI do Databricks instalada por meio de um blueprint de ambiente e (opcionalmente) o plugin de skills do Databricks. O Databricks, seus workspaces e todas as permissões permanecem na sua conta.
Escolha como o Devin se autentica
Comece pela Opção A se quiser o Devin rodando com o Databricks hoje mesmo. Você pode migrar para a Opção B depois, sem mexer na entidade de serviço nem em suas concessões.
Por que conectar o Devin ao Databricks?
- O Devin atua onde sua plataforma de dados está. A maior parte do trabalho no Databricks não se resume a editar notebooks em um repo. É investigar por que um job falhou, ler o schema de uma tabela, executar uma query em um warehouse ou inspecionar um pipeline. Dar o CLI ao Devin transforma tudo isso de perguntas feitas a um humano em tarefas que o próprio Devin pode realizar.
- Uma única identidade auditável. O Devin atua como uma entidade de serviço criada por você, então cada chamada à API, query e execução de job aparece nos audit logs do Databricks e na linhagem do Unity Catalog sob essa identidade, e não sob o token pessoal de um engenheiro.
- O Unity Catalog decide o que o Devin pode acessar. O OAuth decide se o Devin pode se autenticar. As concessões do Unity Catalog e as permissões do workspace decidem o que ele pode ler ou alterar. Você pode começar com acesso somente leitura em produção, dar ao Devin um catalog de sandbox para construir e só ampliar o escopo depois de observar como ele se comporta.
- Um caminho sem segredo armazenado. Com a federação de tokens OIDC (Opção B), o Devin nunca armazena um token ou client secret do Databricks. Cada sessão troca um token de identidade do Devin válido por 60 segundos por um token OAuth do Databricks de curta duração.
Visão geral
O plugin de skills do Databricks é uma quinta camada, opcional: ele ensina ao Devin fluxos de trabalho específicos do Databricks (Asset Bundles, jobs, SQL, Unity Catalog) em cima da CLI.
Pré-requisitos
- Uma conta Databricks na AWS, Azure ou GCP com acesso de account admin para a pessoa que fará a configuração. A criação de entidades de serviço, segredos OAuth e políticas de federação acontece no nível da conta.
- Um ou mais workspaces com o Unity Catalog ativado. Este guia pressupõe que o Unity Catalog governa os dados que o Devin deve acessar.
- A CLI do Databricks na máquina do próprio admin, para os comandos de nível de conta abaixo. Qualquer versão recente serve. A cópia usada pelo Devin é instalada separadamente na etapa 2.
- Permissão para editar o blueprint de ambiente da sua organização (Configurações > Ambiente > Blueprints).
- Para a Opção A, permissão para adicionar Devin Secrets.
- Para a Opção B, a URL do issuer OIDC e o ID da organização do seu Devin. A etapa 2 mostra como obter ambos a partir de um token dentro de uma sessão do Devin. Consulte Autenticação em nuvem com OIDC para mais contexto.
- As sessões do Devin precisam alcançar o host do seu workspace por HTTPS (por exemplo,
https://dbc-xxxx.cloud.databricks.com,https://adb-xxxx.azuredatabricks.netouhttps://xxxx.gcp.databricks.com). Se a sua organização usa uma network policy do Devin, adicione o host do workspace e, para comandos de nível de conta, o host da conta (accounts.cloud.databricks.com,accounts.azuredatabricks.netouaccounts.gcp.databricks.com). - Para a Opção B, o Databricks precisa conseguir buscar o JWKS do Devin em
https://<your-devin-host>/.well-known/jwks.jsonpela internet pública para verificar as assinaturas dos tokens.
Etapa 1: Criar uma entidade de serviço
Em seguida, atribua a entidade de serviço a cada workspace que o Devin deve usar. Faça isso no console da conta em User management → Service principals ou pela CLI:
USER, não ADMIN. O Devin não precisa ser admin do workspace.
Etapa 2: Conecte o Devin à entidade de serviço
- Opção A: client secret do OAuth. OAuth M2M padrão: a entidade de serviço recebe um client secret, que você armazena nos Secrets do Devin. É a forma mais rápida de começar.
- Opção B: federação de tokens OIDC. Cada sessão do Devin pode gerar um token OpenID Connect de curta duração assinado pelo Devin. A federação de tokens do Databricks permite que a entidade de serviço confie nesse issuer, de modo que o Devin troca seu próprio token de identidade por um token OAuth do Databricks. Nenhum segredo do Databricks chega a ser criado ou armazenado, e é por isso que o Databricks recomenda fortemente essa abordagem para cargas de trabalho automatizadas.
Opção A: client secret OAuth
1. Gere um segredo OAuth
sql, jobs e unity-catalog. Evite selecionar todos os escopos.
2. Adicione os Devin Secrets
A CLI seleciona o OAuth M2M automaticamente quando há um client ID e um client secret, portanto
DATABRICKS_AUTH_TYPE não é obrigatório. Defina-o como oauth-m2m apenas se quiser descartar explicitamente todos os outros métodos.
Os segredos são injetados como variáveis de ambiente no início de cada nova sessão, então a CLI não precisa de um arquivo de perfil. Um segredo rotacionado passa a valer na próxima sessão, sem necessidade de rebuild.
3. Adicione o blueprint
initialize; tudo o que for escrito ali fica embutido no snapshot.
4. Faça o build do snapshot
Opção B: federação de tokens OIDC
iss, sub, aud), e uma policy de federação na entidade de serviço instrui o Databricks a confiar neles. O blueprint instala a CLI devin-oidc, encapsula o databricks para que cada chamada leve um token novo e grava um perfil que aponta para a sua entidade de serviço. Em seguida, você lê as claims do token em uma sessão e cria uma policy que corresponda a elas.
1. Adicione o blueprint
O perfil não contém nenhum segredo, portanto é seguro gravá-lo durante o
initialize. Se você estiver migrando da Opção A, remova o Devin Secret DATABRICKS_CLIENT_SECRET assim que a policy abaixo estiver configurada, para que a CLI não encontre duas credenciais.
2. Faça o build do snapshot
3. Crie a policy de federação
1
Leia seu issuer e subject
Inicie uma nova sessão do Devin e peça que ele execute o comando a seguir. Ele imprime apenas as claims de identidade do token, nunca o token em si.Formato esperado:Em deployments enterprise,
iss é a sua URL personalizada do Devin (por exemplo, https://yourcompany.devinenterprise.com). Copie iss e sub exatamente como foram impressos. Não cole o token bruto em tickets ou documentos; ele é uma credencial bearer válida pelos próximos 60 segundos.2
Escreva a policy de federação
Salve isto como Os três campos exigem correspondência exata:
devin-federation-policy.json, substituindo os valores da etapa anterior:issuerdeve ser igual aoissdo token, incluindo o esquema e sem barra no final.audiencesdeve incluir a audience que o Devin solicita (databricks, neste guia).subjectdeve ser igual aosubdo token. O subject padrão é o ID da sua organização, portanto todas as sessões da organização podem se autenticar como esse principal. Essa é a granularidade adequada para o Databricks, porque as policies de federação comparam o subject como uma string literal. Claims por sessão, comodevin_id, mudam a cada sessão e não podem ser correspondidas por uma policy estática.
subject_claim, jwks_uri e jwks_json sem definição. O Databricks usa por padrão a claim sub e descobre o JWKS a partir do /.well-known/openid-configuration do issuer.3
Vincule a policy à entidade de serviço
Rebuilds e fixação de versão
setup-devin-oidc@main acompanham seus branches main upstream, ou seja, um build completo incorpora novas versões; já um build diferencial pula o initialize e mantém as versões já presentes no snapshot até que o blueprint seja alterado. Se você precisa de builds reproduzíveis, baixe o instalador a partir de uma tag de versão em vez de main (por exemplo, .../databricks/setup-cli/v1.17.0/install.sh), o que instala exatamente aquela versão do CLI, e fixe a GitHub Action em um SHA de commit (setup-devin-oidc@<sha>).
Etapa 3: Conceder permissões
Perfis de permissão
Os statements de concessão apontam para a entidade de serviço pelo seu ID de aplicação:
devin-agents e conceda as permissões ao grupo.
Etapa 4: Instale o plugin de skills do Databricks (opcional)
- Abra Customize → Plugins e escolha Add plugin → From repository.
- Informe o repositório
databricks/databricks-agent-skillse o subdiretórioplugins/databricks/claude. O manifest do plugin fica nessa subpasta, portanto a instalação a partir do repository root retorna No plugin manifest found. - Instale no escopo Organization caso tenha usado um blueprint de organização na Etapa 2. Se usou um blueprint de repositório, declare o plugin no
.devin/config.jsondesse repositório (consulte herança e níveis), assim apenas as sessões que têm a CLI também recebem as skills. - Fixe o plugin em um commit assim que ele estiver funcionando, para que mudanças upstream não cheguem às suas sessões sem revisão.
databricks auth login para configurar um perfil. Esse fluxo interativo no navegador não pode ser concluído em uma sessão do Devin sem supervisão, e não é necessário aqui: a entrada knowledge da Etapa 2 informa ao Devin que a CLI já está autenticada.
Etapa 5: Verificar
current-user me deve retornar a entidade de serviço, com userName igual ao ID de aplicação. Para confirmar qual método de autenticação a CLI escolheu:
oauth-m2m; na Opção B, env-oidc.
Uma autenticação bem-sucedida não significa que o Devin consegue acessar seus dados. Confirme que as concessões da Etapa 3 estão em vigor:
<catalog-name> por um catálogo que você concedeu na Etapa 3 (os exemplos ali usam analytics). Em seguida, peça ao Devin para executar uma pequena consulta somente leitura em um warehouse no qual ele tenha CAN USE e, caso você tenha configurado um perfil de Build, para criar e remover uma tabela em devin_dev. Uma consulta a uma tabela de produção na qual o Devin não tenha SELECT deve falhar; essa falha mostra o limite de permissão funcionando.

