Ir para o conteúdo
Explorar a documentação

Segurança e conflitos

A configuração é aditiva e não destrutiva. Ela planeja cada arquivo gerenciado antes que uma execução normal grave qualquer conteúdo.

Prévia

langdrift setup \
  --root /path/to/product \
  --project-id proj_example \
  --account-id acc_example \
  --name 'Example Product' \
  --dry-run \
  --json

O resultado atribui um status a cada caminho gerenciado:

  • create — o arquivo está ausente e seria criado
  • preserve — o JSON analisado já é igual ao valor esperado
  • conflict — o destino não pode ser reutilizado ou criado com segurança

Uma simulação valida e retorna esse plano sem gravar. Seu valor changed é false, inclusive quando arquivos seriam criados.

Preservação e conflitos

A comparação JSON ignora espaços em branco e a ordem das chaves dos objetos. Arquivos equivalentes são preservados byte a byte, incluindo formatação e datas. Arquivos existentes nunca são sobrescritos.

Os conflitos incluem:

  • JSON malformado ou truncado
  • um arquivo regular cujo valor analisado difere do projeto solicitado ou do esquema incluído
  • uma versão de protocolo não compatível
  • um destino que não é um arquivo regular
  • um diretório pai obrigatório que não é um diretório
  • um link simbólico em qualquer ponto de um caminho gerenciado
  • uma configuração de integração alterada em um projeto existente

Se a verificação prévia encontrar qualquer conflito, a configuração não grava nada, mesmo que outros arquivos gerenciados estejam ausentes. Revise manualmente os motivos de cada arquivo.

O caminho legado .drifts/execution é sempre um conflito. A versão 0.1.0 usa .drifts/loop e não migra, renomeia, mescla nem remove a estrutura legada.

Gravações e novas execuções

Arquivos ausentes são criados de forma exclusiva e sem seguir links simbólicos. Se um destino surgir após a verificação prévia, a configuração o preserva quando o conteúdo analisado corresponder. Caso contrário, ela falha com SETUP_CONCURRENT_CHANGE.

Uma nova execução sem alterações informa apenas preserve e retorna changed: false. Esquemas obrigatórios ausentes são recriados em uma execução segura posterior.

A sequência de gravação não é uma transação de sistema de arquivos. Se uma falha de E/S ou uma alteração concorrente ocorrer depois que um ou mais arquivos forem criados, esses arquivos podem permanecer. O conteúdo existente continua sem ser sobrescrito. Inspecione o plano informado, revise os arquivos inválidos e execute a configuração novamente para reparar os arquivos que ainda faltam.

Editar esta página no GitHub