> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Formatos em disco do Devin air-gapped

> Locais estáveis dos arquivos do Devin Desktop e da CLI air-gapped no macOS, Linux e Windows, além do schema JSONL do registro de auditoria e exemplos para ingestão em SIEM.

> [!NOTE]
>
> Esta documentação se refere às implantações federais do Devin. [Voltar para a Documentação do Devin](/pt-BR/get-started/devin-intro)

A CLI e o Desktop air-gapped armazenam todo o seu estado em um pequeno conjunto de arquivos com formatos documentados e estáveis. Esta página mostra onde fica cada arquivo, quais deles você cria e o schema exato do registro de auditoria, para que você possa encaminhá-lo ao seu SIEM.

***

## Localização dos arquivos

### Arquivos criados por você

Estes são os arquivos de entrada machine-wide. Cada um tem um caminho padrão e uma variável de ambiente que o substitui; essa variável precisa estar definida no ambiente em que o agente é iniciado (consulte [Variáveis de ambiente da chave de API](/pt-BR/federal/air-gapped/models-file#api-key-environment-variables) para saber como fazer isso no Desktop).

| Arquivo | Caminho padrão | Override | Formato | Documentado em |
| - | - | - | - | - |
| Licença | `/etc/devin/license.devin-onprem-license` | `DEVIN_LICENSE_FILE` | Token assinado, linha única | [Licença](/pt-BR/federal/air-gapped/license) |
| Arquivo de modelos | `/etc/devin/models.json` | `DEVIN_MODELS_FILE` | JSON, `"version": 0` | [Arquivo de modelos](/pt-BR/federal/air-gapped/models-file) |
| Arquivo de autenticação (opcional, ativa o SSO) | `/etc/devin/auth.json` | `DEVIN_AUTH_FILE` | JSON, `"version": 0` | [SSO](/pt-BR/federal/air-gapped/sso) |
| Pacote de CAs (opcional) | nenhum | `DEVIN_CA_BUNDLE` | PEM | [Rede e certificados](/pt-BR/federal/air-gapped/network-and-certificates) |
| Política machine-wide (opcional) | Linux `/etc/devin/system.json`, macOS `/Library/Application Support/Devin/system.json` | nenhum | JSON | [Configuração de sistema da CLI](/pt-BR/cli/enterprise/system-config) |

Os valores padrão são os mesmos no macOS e no Linux. No Windows, a licença, o arquivo de modelos e o arquivo de autenticação ficam, por padrão, em `C:\ProgramData\Devin\` (`license.devin-onprem-license`, `models.json`, `auth.json`), o arquivo de políticas machine-wide fica em `C:\ProgramData\Devin\system.json` e as variáveis de override são as mesmas; [restrinja o acesso à pasta](/pt-BR/federal/air-gapped/install#windows-lock-down-the-configuration-folder) antes de colocar arquivos nela. A CLI apenas lê esses arquivos e nunca grava neles, então você pode gerenciá-los com suas ferramentas de gerenciamento de configuração e deixá-los como somente leitura.

### Estado por usuário gravado pela CLI

A CLI segue a estrutura de diretórios base XDG **tanto** no macOS quanto no Linux (ela não usa `~/Library` para armazenar o próprio estado). As variáveis `XDG_CONFIG_HOME` e `XDG_DATA_HOME` são respeitadas quando definidas.

| Caminho | Conteúdo |
| - | - |
| `~/.config/devin/config.json` | Configuração do usuário compartilhada com a Devin CLI padrão (permissões, `proxy` etc.). Nunca contém credenciais. Consulte a [referência do arquivo de configuração da CLI](/pt-BR/cli/reference/configuration/config-file). |
| `~/.config/devin/mcp_config.json` | Servidores MCP configurados localmente. |
| `~/.local/share/devin/sso_tokens.toml` | Cache de tokens SSO gravado por `devin auth login`, com permissões restritas ao proprietário (`0600`). Excluído por `devin auth logout`. |
| `~/.local/share/devin/cli-federal/sessions.db` | Histórico de sessões (SQLite). Contém o conteúdo das conversas; trate-o como dado sensível. |
| `~/.local/share/devin/cli-federal/audit/` | Diretório do registro de auditoria: `audit.jsonl`, os arquivos rotacionados `audit-<timestamp>.jsonl` e o bloqueio consultivo `.audit.lock`. O schema está descrito abaixo. |

`cli-federal` é o subdiretório do produto usado pelo build air-gapped; ele mantém esse estado separado de qualquer instalação da Devin CLI padrão na mesma máquina, que usa `cli`.

No Windows, a CLI não lê as variáveis `XDG_*`. Ela mantém os mesmos arquivos em `%APPDATA%\devin\` e o cache em `%LOCALAPPDATA%\devin\`:

| Caminho (Windows) | Conteúdo |
| - | - |
| `%APPDATA%\devin\config.json` | Configuração do usuário, conforme descrito acima. |
| `%APPDATA%\devin\mcp_config.json` | Servidores MCP configurados localmente. |
| `%APPDATA%\devin\sso_tokens.toml` | Cache de tokens SSO. |
| `%APPDATA%\devin\cli-federal\sessions.db` | Histórico de sessões (SQLite). |
| `%APPDATA%\devin\cli-federal\audit\` | Diretório do registro de auditoria. |

### Estado específico do Desktop

O aplicativo Desktop fica isolado de qualquer outra instalação do Devin Desktop ou do Windsurf na mesma máquina:

| Caminho | Conteúdo |
| - | - |
| `~/.devin-airgap-config/` | Um `XDG_CONFIG_HOME` isolado que o Desktop repassa ao agente incluído no pacote. Dentro dele, `devin/config.json` é um link simbólico para o `~/.config/devin/config.json` real, de modo que a CLI e o agente incluído compartilham uma única configuração do usuário. Nenhum outro item de `~/.config/devin/` (em especial o `mcp_config.json`) fica visível para o agente dentro do Desktop. |
| `~/.devin-airgap/` | Diretório de extensões do Desktop. |
| `~/.codeium/windsurf-airgap/` | Estado do language-server. |
| Linux `~/.config/Devin - Airgap/`, macOS `~/Library/Application Support/Devin - Airgap/` | Dados de usuário do Desktop: `User/settings.json` (incluindo `devin.acp.agentEnv`) e estado das janelas. |

O link simbólico só é criado na inicialização do Desktop se não existir nada em `~/.devin-airgap-config/devin/config.json`. Se já houver um arquivo comum nesse local, o Desktop não mexe nele e o agente incluído passa a usar esse arquivo em vez do compartilhado; o canal de saída **Devin ACP** registra uma linha `WARNING: … is a regular file, not a symlink`. Para restaurar o link, exclua o arquivo e reinicie o Desktop.

No Windows, não há link simbólico. O agente incluído no Desktop e a CLI compartilham diretamente o `%APPDATA%\devin\config.json`, e o Desktop não carrega o `%APPDATA%\devin\mcp_config.json` do usuário. Os dados de usuário do Desktop ficam em `%APPDATA%\Devin - Airgap\`.

Somente `~/.devin-airgap-config/` e `~/.devin-airgap/` podem ser excluídos com segurança para uma reinstalação do zero. Os diretórios `~/.config/devin/` e `~/.local/share/devin/` também pertencem à CLI independente.

## Registro de auditoria

A CLI air-gapped grava um registro de auditoria local, estruturado e append-only (somente acréscimo). Ele fica sempre ativo (não há controle para desativá-lo), não existe em nenhum outro build do Devin e é gravado na estação de trabalho para sua própria revisão e para ingestão no SIEM.

### Local e rotação

| Propriedade | Valor |
| - | - |
| Arquivo ativo | `~/.local/share/devin/cli-federal/audit/audit.jsonl` (Windows: `%APPDATA%\devin\cli-federal\audit\audit.jsonl`) |
| Formato | JSON Lines: um objeto JSON autocontido por linha, em UTF-8 |
| Permissões | O diretório e os arquivos são criados com acesso restrito ao proprietário (`0600`) |
| Rotação | Quando `audit.jsonl` atinge 10 MiB, ele é renomeado para `audit-<UTC timestamp>.jsonl` (por exemplo, `audit-20260127T234500123Z.jsonl`) e um novo arquivo é iniciado |
| Retenção | São mantidos no máximo 10 arquivos rotacionados; os mais antigos são excluídos primeiro |
| Concorrência | A rotação é protegida pelo bloqueio consultivo `.audit.lock`, para que processos simultâneos da CLI nunca executem uma rotação duplicada |

Se precisar de retenção ilimitada, envie os arquivos rotacionados para o seu SIEM antes que sejam descartados. Como a CLI apenas acrescenta linhas e nunca reescreve as existentes, basta um coletor padrão de leitura contínua de arquivos; consulte [Encaminhe o registro de auditoria para o seu SIEM](#forward-the-audit-log-to-your-siem).

### Garantias de ocultação de dados

Os eventos contêm apenas caminhos e metadados. O log nunca inclui prompts, respostas do modelo, código, conteúdo de arquivos, valores de segredos, chaves de API nem linhas de comando de shell completas: para ferramentas de shell, apenas o nome do programa (o primeiro token) é registrado.

### Envelope (versão 1 do schema)

Toda linha contém este envelope; os campos específicos de cada evento ficam no mesmo nível que ele.

| Campo | Tipo | Descrição |
| - | - | - |
| `schema_version` | number | Atualmente `1`. Incrementado apenas em caso de alterações incompatíveis. |
| `ts` | string | Carimbo de data/hora UTC no formato RFC 3339, com milissegundos. |
| `pid` | number | ID do processo da CLI que emitiu o evento. |
| `event` | string | Tipo de evento; determina os demais campos. |

Configure seu parser para ignorar campos desconhecidos e valores de `event` desconhecidos: novos campos e tipos de evento podem ser adicionados sem que o `schema_version` seja incrementado.

### Tipos de evento

#### `session_start`

Emitido quando uma sessão de agente é iniciada (sessão raiz nova ou retomada).

| Campo | Tipo | Descrição |
| - | - | - |
| `session_id` | string | ID da sessão da CLI. Use-o para correlacionar todos os demais eventos da sessão. |
| `source` | string | Como a sessão foi iniciada (por exemplo, `startup`). |
| `cli_version` | string | Versão publicada da CLI, conforme exibida por `devin --version`. |
| `actor` | object | Atribuição de identidade; consulte [objeto `actor`](#actor-object). |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:00.123Z","pid":4242,"event":"session_start","session_id":"a1b2","source":"startup","cli_version":"1.2.3","actor":{"os_user":"jsmith","git_user_name":"J. Smith","git_user_email":"jsmith@example.com","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"6f1c…","sso_user":"jsmith","sso_groups":["/devin-users"]}}
```

#### `session_end`

Emitido quando a sessão termina ou o agente é encerrado.

| Campo | Tipo | Descrição |
| - | - | - |
| `session_id` | string | ID da sessão da CLI. |
| `reason` | string | `prompt_input_exit`, `clear`, `resume`, `logout` ou `other`. |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:59:59.000Z","pid":4242,"event":"session_end","session_id":"a1b2","reason":"prompt_input_exit"}
```

Em uma saída limpa, cada `session_start` é pareado com exatamente um `session_end` para o mesmo `session_id`. A CLI executa o agente em um processo filho, que ela encerra durante a finalização; por isso, o processo pai registra o `session_end` da sessão filha (motivo `other`) quando a sessão termina. Uma sessão encerrada por `SIGKILL` ou por queda de energia não consegue gravar um evento final; trate um `session_start` sem um `session_end` correspondente como um encerramento anormal.

#### `tool_call`

Emitido após cada execução de ferramenta pelo agente.

| Campo | Tipo | Descrição |
| - | - | - |
| `session_id` | string | ID da sessão da CLI. |
| `tool_name` | string | Nome da ferramenta (por exemplo, `read`, `write`, `exec`). |
| `tool_id` | string | ID único desta invocação da ferramenta. |
| `success` | boolean | Indica se a ferramenta reportou sucesso. |
| `program` | string, opcional | Para ferramentas de shell: apenas o nome do programa, nunca os argumentos. |
| `paths` | string\[], opcional | Caminhos do sistema de arquivos aos quais o escopo da ferramenta estava restrito. Omitido quando vazio. |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:07.001Z","pid":4242,"event":"tool_call","session_id":"a1b2","tool_name":"exec","tool_id":"t_01","success":true,"program":"cargo"}
```

#### `file_read` e `file_write`

Emitidos junto com `tool_call`, uma vez para cada caminho no escopo de permissão resolvido da ferramenta. Eles descrevem o acesso para o qual a ferramenta tinha *escopo definido*, e não operações de E/S verificadas: uma ferramenta aprovada com escopo de leitura sobre vários caminhos emite um `file_read` para cada caminho, mesmo que tenha acessado apenas alguns deles, e os eventos são emitidos independentemente de a chamada de ferramenta ter sido bem-sucedida ou não.

| Campo | Tipo | Descrição |
| - | - | - |
| `session_id` | string | ID da sessão da CLI. |
| `path` | string | Caminho no sistema de arquivos. |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:09.410Z","pid":4242,"event":"file_write","session_id":"a1b2","path":"/home/jsmith/repo/src/main.rs"}
```

#### `model_call`

Emitido após cada requisição de inferência a um endpoint de modelo definido no seu arquivo de modelos.

| Campo | Tipo | Descrição |
| - | - | - |
| `session_id` | string | ID da sessão da CLI. |
| `model` | string | Nome do modelo no arquivo de modelos. |
| `endpoint` | string, opcional | URL base do endpoint configurado. |
| `input_tokens` | number, opcional | Total de tokens de entrada, incluindo leituras de cache. |
| `output_tokens` | number, opcional | Tokens de saída. |
| `cache_read_tokens` | number, opcional | Tokens de leitura de cache, quando informados pelo endpoint. |
| `cache_creation_tokens` | number, opcional | Tokens de gravação de cache, quando informados. |

Os campos de tokens são omitidos quando o endpoint não informa o uso.

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:12.900Z","pid":4242,"event":"model_call","session_id":"a1b2","model":"llama-3-70b","endpoint":"https://models.internal:8000/v1","input_tokens":5120,"output_tokens":384}
```

#### `auth`

| Campo | Tipo | Descrição |
| - | - | - |
| `action` | string | Uma das ações abaixo. |
| `actor` | object | Atribuição de identidade; consulte [objeto `actor`](#actor-object). |
| `error_code` | string, opcional | Em `sso_login_denied` e `sso_revalidation_failed`: o código `IDPnnn` exibido ao usuário. Omitido em ações bem-sucedidas. |

| `action` | Descrição |
| - | - |
| `identity_resolved` | Atribuição de identidade no início da sessão e após cada comando `devin auth` (assim, `status` indica o login que validou e `logout` não indica nenhum). |
| `license_validated` | O arquivo de licença foi validado com sucesso na inicialização. |
| `license_installed` | Um arquivo de licença foi gravado pela página de Configurações do Desktop. Não inclui o caminho nem o conteúdo do arquivo. |
| `sso_login` | Login via SSO concluído (`devin auth login` ou login pelo Desktop). |
| `sso_login_denied` | Login via SSO recusado após a resposta do IdP: o grupo obrigatório está ausente (`IDP004`) ou o token de ID retornado falhou na validação ou não foi enviado (`IDP005`). `actor` contém a identidade atestada pelo IdP quando o token foi validado; nada é armazenado em cache. |
| `sso_refresh` | Tokens de SSO renovados junto ao IdP. |
| `sso_logout` | Logout do SSO (`devin auth logout` ou logout pelo Desktop). |
| `sso_revalidation_failed` | Um agente em execução perdeu o login via SSO e está sendo encerrado; consulte [Revalidação em sessões em execução](/pt-BR/federal/air-gapped/sso#revalidation-in-running-sessions). |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:44:58.000Z","pid":4241,"event":"auth","action":"sso_login","actor":{"os_user":"jsmith","git_user_name":"J. Smith","git_user_email":"jsmith@example.com","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"6f1c…","sso_user":"jsmith","sso_groups":["/devin-users"]}}
{"schema_version":1,"ts":"2026-01-28T08:10:02.512Z","pid":5150,"event":"auth","action":"sso_login_denied","error_code":"IDP004","actor":{"os_user":"rjones","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"a90d…","sso_user":"rjones","sso_groups":["/contractors"]}}
{"schema_version":1,"ts":"2026-01-28T09:00:00.000Z","pid":4242,"event":"auth","action":"sso_revalidation_failed","error_code":"IDP003","actor":{"os_user":"jsmith","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"6f1c…","sso_user":"jsmith","sso_groups":["/devin-users"]}}
```

### Objeto `actor`

A atribuição de identidade é composta pelo usuário do sistema operacional, pela identidade Git local e (quando o SSO está configurado) pela identidade do token de ID validado. Campos indisponíveis são omitidos.

| Campo | Tipo | Descrição |
| - | - | - |
| `os_user` | string, opcional | `$USER`. |
| `git_user_name` | string, opcional | `git config user.name`. |
| `git_user_email` | string, opcional | `git config user.email`. |
| `sso_issuer` | string, opcional | A URL do emissor do IdP usada para validar o token. |
| `sso_subject` | string, opcional | A claim `sub` do token de ID. |
| `sso_user` | string, opcional | A identidade exibida por `devin auth status` (`preferred_username`, `email` ou `sub`). |
| `sso_groups` | string\[], opcional | As declarações de grupo do token (`groups` por padrão ou o `groups_claim` configurado). |

Os campos de SSO aparecem em todo evento `auth` que tenha um token validado disponível (`sso_login`, `sso_refresh`, `sso_logout`, `sso_login_denied`), em `sso_revalidation_failed` para o login validado pelo processo (ou, se nenhum tiver sido validado, para o login que ainda está no cache de tokens) e em `session_start` e `identity_resolved` para o login que o processo em execução validou na inicialização. `tool_call`, `file_read`, `file_write` e `model_call` não incluem `actor`; para atribuí-los, use o `session_id` para associá-los ao respectivo `session_start`.

> [!NOTE]
>
> `sso_groups` grava o pertencimento a grupos do IdP de cada usuário na máquina local. O diretório e os arquivos de auditoria só podem ser acessados pelo proprietário; inclua-os na revisão de tratamento de dados se os nomes de grupos forem confidenciais no seu ambiente.

### Encaminhe o registro de auditoria para o seu SIEM

O Devin não envia registros de auditoria para nenhum lugar. Para agregar o uso de várias estações de trabalho, aponte o agente de coleta de logs que o seu SIEM já utiliza (por exemplo, um Splunk universal forwarder ou o Elastic Agent) para o diretório de auditoria em cada estação de trabalho. Nenhuma configuração do Devin é necessária.

Configure a entrada de arquivos do agente com os seguintes parâmetros:

| Configuração | Valor |
| - | - |
| Arquivos a coletar | `audit*.jsonl` no diretório de auditoria. Esse padrão abrange o arquivo ativo e os arquivos rotacionados. Não colete `.audit.lock`. |
| Caminho para todos os usuários em uma estação de trabalho | Linux: `/home/*/.local/share/devin/cli-federal/audit/audit*.jsonl`. macOS: `/Users/*/.local/share/devin/cli-federal/audit/audit*.jsonl`. Esses caminhos cobrem apenas diretórios home em `/home` e `/Users`; ajuste-os se os diretórios home estiverem em outro local ou se os seus usuários definirem `XDG_DATA_HOME`. |
| Formato do registro | Um objeto JSON por linha. Não é necessário tratar registros de múltiplas linhas. |
| Carimbo de data/hora | O campo `ts`: RFC 3339, UTC, com precisão de milissegundos. |
| Posição inicial | Início do arquivo, para que os registros gravados antes da instalação do agente também sejam coletados. |
| Rotação | A rotação renomeia o arquivo ativo e inicia um novo `audit.jsonl`. O agente deve acompanhar os arquivos pela identidade, e não pelo nome, para que um arquivo renomeado não seja lido novamente. Verifique como o seu agente lida com arquivos renomeados. |
| Campos desconhecidos | Mantenha-os. Novos campos e tipos de evento podem ser adicionados sem alteração de `schema_version`. |

> [!WARNING]
>
> O diretório e os arquivos de auditoria só podem ser lidos pelo usuário proprietário, e o Devin redefine essas permissões sempre que abre o registro de auditoria. Execute o agente de coleta como root ou como o próprio usuário. Não altere as permissões dos arquivos para dar acesso a outra conta; a alteração não persiste.

A estação de trabalho de cada usuário mantém o arquivo ativo e no máximo 10 arquivos rotacionados de 10 MiB cada, cerca de 110 MiB no total. Registros além desse limite são excluídos; portanto, uma estação de trabalho que gere mais do que esse volume entre uma coleta e outra perde os registros mais antigos.

Para confirmar que a coleta está funcionando, inicie e encerre uma sessão do Devin em uma estação de trabalho e, em seguida, pesquise no seu SIEM um registro `session_start` e um registro `session_end` com o mesmo `session_id`.

#### Exemplo: Splunk universal forwarder

Implante estes dois arquivos em um app em cada forwarder (por exemplo, `$SPLUNK_HOME/etc/apps/devin_audit/local/`). Use apenas a stanza `monitor` correspondente ao sistema operacional da estação de trabalho e substitua `devin` pelo índice que você deseja usar.

```ini inputs.conf theme={null}
[monitor:///home/*/.local/share/devin/cli-federal/audit/audit*.jsonl]
sourcetype = devin:airgap:audit
index = devin
disabled = 0

[monitor:///Users/*/.local/share/devin/cli-federal/audit/audit*.jsonl]
sourcetype = devin:airgap:audit
index = devin
disabled = 0
```

```ini props.conf theme={null}
[devin:airgap:audit]
INDEXED_EXTRACTIONS = json
KV_MODE = none
SHOULD_LINEMERGE = false
TIMESTAMP_FIELDS = ts
TIME_FORMAT = %Y-%m-%dT%H:%M:%S.%3NZ
TZ = UTC
```

O `props.conf` precisa estar no forwarder, e não apenas nos indexers, porque `INDEXED_EXTRACTIONS` é aplicado onde o arquivo é lido. Não defina `crcSalt`: assim, o forwarder reconhece um arquivo rotacionado pelo conteúdo e não o lê novamente com o novo nome. Todos os diretórios no caminho com curinga precisam ter permissão de leitura para a conta com a qual o forwarder é executado; um forwarder instalado como uma conta de serviço não root não consegue ler os diretórios de auditoria acessíveis apenas ao proprietário.

Os campos chegam como campos indexados com seus nomes JSON, de modo que `actor.sso_user`, `model` e `input_tokens` podem ser pesquisados diretamente:

```text theme={null}
index=devin sourcetype="devin:airgap:audit" event=model_call | stats sum(input_tokens) sum(output_tokens) by model
```

#### Exemplo: Elastic (Filebeat ou Elastic Agent)

Adicione esta entrada `filestream` ao `filebeat.yml`. Mantenha apenas o caminho correspondente ao sistema operacional da estação de trabalho.

```yaml filebeat.yml theme={null}
filebeat.inputs:
  - type: filestream
    id: devin-airgap-audit
    paths:
      - /home/*/.local/share/devin/cli-federal/audit/audit*.jsonl
      - /Users/*/.local/share/devin/cli-federal/audit/audit*.jsonl
    prospector.scanner.fingerprint.length: 64
    parsers:
      - ndjson:
          target: devin
          add_error_key: true
    processors:
      - timestamp:
          field: devin.ts
          layouts:
            - "2006-01-02T15:04:05.999Z"
```

O parser `ndjson` coloca cada registro sob o prefixo `devin.` (`devin.event`, `devin.session_id`, `devin.actor.sso_user`). Não defina `target: ""`: o campo `event` do registro é uma string, o que entra em conflito com o objeto `event` do Elastic Common Schema e faz o Elasticsearch rejeitar os documentos. O processador `timestamp` copia `ts` para `@timestamp`; a Elastic classifica esse processador como beta, então, se preferir, remova-o e defina `@timestamp` a partir de `devin.ts` em um pipeline de ingestão. O `id` deve ser único entre seus inputs `filestream`. A identidade de arquivo padrão do Filebeat é uma impressão digital (fingerprint) do início do arquivo, que continua identificando o arquivo após a renomeação feita pela rotação, portanto não é necessário configurar nada para a rotação. O comprimento da impressão digital foi reduzido do padrão de 1024 bytes para 64 porque as versões 9.0 a 9.4 do Filebeat ignoram um arquivo até que ele atinja pelo menos esse tamanho, o que faria com que uma estação de trabalho com poucos registros fosse ignorada. Os primeiros 64 bytes de um arquivo de auditoria contêm o `ts` e o `pid` do primeiro registro, o que garante impressões digitais distintas. Alterar o comprimento posteriormente faz com que o Filebeat leia todos os arquivos novamente.

Com o Elastic Agent, adicione a integração Custom Logs (Filestream) à política do agente, informe os mesmos caminhos e coloque os blocos `parsers` e `processors` acima no campo de configuração personalizada da integração.

> [!NOTE]
>
> A Cognition não testou estes exemplos em um deployment do Splunk ou do Elastic. Valide-os no seu ambiente e consulte a documentação do fornecedor referente à versão instalada antes de implantá-los nas estações de trabalho.

Campos úteis para indexar ou pesquisar:

| Pergunta | Campos |
| - | - |
| Quem usou o Devin e quando | `event` = `session_start`, com `actor.sso_user` (ou `actor.os_user`) e `ts` |
| Qual versão está implantada | `cli_version` em `session_start` |
| Uso de tokens por modelo | `event` = `model_call`, com `model`, `input_tokens`, `output_tokens` |
| Chamadas de ferramentas com falha | `event` = `tool_call`, com `success` = `false` |
| Logins recusados | `event` = `auth`, com `action` = `sso_login_denied` e `error_code` |

Somente os registros `session_start` e `auth` identificam o usuário. Para atribuir registros `tool_call`, `file_read`, `file_write` e `model_call` a um usuário, associe-os ao registro `session_start` com o mesmo `session_id`.

## Relatório de diagnósticos

`devin diagnostics` gera um relatório em texto simples, com dados sensíveis ocultados, que você pode revisar antes de enviá-lo ao suporte da Cognition. O relatório contém apenas versões, a estrutura da configuração (se cada arquivo existe e pode ser interpretado), nomes de modelos, se cada variável de chave de API está definida e estatísticas do registro de auditoria. Ele nunca inclui prompts, código, conteúdo de arquivos, valores de segredos, URLs de endpoints ou valores de variáveis de ambiente.

```sh theme={null}
devin diagnostics
```

```text theme={null}
Diagnostics written to devin-diagnostics-20260127T234500Z.txt
The report is plain text and stays on this machine; review it before sharing.
```

Use `--output <path>` para definir o nome do arquivo. O relatório é gravado com permissão restrita ao proprietário (`0600`). Consulte [Solução de problemas](/pt-BR/federal/air-gapped/troubleshooting) para saber o que incluir em uma solicitação de suporte.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.