← Gestão de alterações: decisões em produção
06 / 12 · 60 MIN

Manifesto, autorização e janela

Relaciona aprovação, identidade do conteúdo, estado esperado, pessoas e calendário através de um plano verificável.

Definir o objeto da decisão

O manifesto do laboratório identifica hash do artefacto, destino, configuração, revisão esperada e janela. Cada campo responde a uma pergunta diferente: que conteúdo, onde, com que parâmetros, partindo de que estado e quando. Mudar o destino mantendo o pacote não conserva o âmbito aprovado. O script altera um campo de cada vez e verifica que o digest do manifesto muda. Este é um modelo pedagógico de ligação entre avaliação e execução, não um sistema de aprovação. Numa mudança fictícia de APS, compara o manifesto candidato com o revisto e descreve as diferenças para a autoridade aplicável. Não sobrescrevas a referência só para fazer desaparecer uma divergência.

Separar digest e confiança

O código serializa o seu pequeno objeto JSON com chaves ordenadas e calcula SHA256. Alterar apenas a ordem das chaves não muda esse resultado; alterar configuração ou destino muda-o. Esta serialização pertence ao exercício e não é apresentada como norma universal de assinatura de JSON. O digest permite comparar conteúdo com uma referência, mas não identifica quem aprovou nem demonstra que a referência é fiável. Também não prova correção funcional. Um processo real precisa de gerir identidade, integridade da referência, permissões e evidência da decisão. Ao apresentar o resultado, escreve conteúdo correspondente à referência e mantém separada a questão de quem tinha autoridade para a estabelecer.

Usar o estado esperado como pré-condição

Um plano preparado para revision=7 pode tornar-se inadequado quando uma mitigação urgente deixa o serviço na revisão oito. O laboratório usa duas ligações SQLite: uma lê sete, outra altera a linha para oito. O UPDATE condicionado a sete afeta zero linhas e conserva o estado intermédio. O SQL executou sem erro de sintaxe, mas não aplicou a alteração. Isto torna visível uma premissa desatualizada. Não removas a condição para obter uma linha alterada; reconcilia o plano com o estado atual. Mesmo que uma nova condição técnica passe, continua a ser necessária uma decisão válida sobre o novo contexto. O guard de uma linha não autoriza um deployment externo.

Tornar explícitas as regras de identidade e tempo

O exercício define duas regras locais: solicitante e aprovador têm identificadores de sujeito distintos, e o início pertence ao intervalo [start,end). Alice e Duty approver têm nomes diferentes mas o mesmo subject u17, pelo que não satisfazem a primeira regra. Um início exatamente igual a end falha a segunda, porque o extremo final está excluído. Estas regras são premissas do laboratório, não políticas do BNP Paribas nem comportamento universal de uma ferramenta. O script não autentica pessoas. Ao desenhar um controlo real, identifica a regra aplicável, a origem fiável da identidade e do tempo, as exceções autorizadas e a evidência necessária para explicar uma decisão.

Calcular a janela a partir de instantes

A janela fictícia começa em 01:30+01:00 e termina em 02:30+00:00 na mesma data. Os instantes são 00:30 UTC e 02:30 UTC, dando 120 minutos. Subtrair apenas os horários apresentados daria sessenta e perderia o offset. O código usa offsets explícitos; não consulta regras de horário de verão nem comprova a configuração dos relógios de uma organização. Num plano internacional, guarda data e referência temporal de cada limite e oferece uma apresentação clara às equipas locais. Distingue o fim autorizado, o último início seguro de recuperação e a disponibilidade de cada participante. Um convite de reunião não altera nenhum destes limites.

Acrescentar capacidade ao grafo de dependências

O plano tem freeze de dez minutos; depois, snapshot de vinte e configuração de quinze; deployment de 25 espera ambos e validação demora quinze. Sem restrições de pessoas, a validação acaba aos setenta. Porém, snapshot e configuração precisam do mesmo DBA a tempo inteiro. Colocar configuração depois do snapshot move o fim para 85. Com reserva adicional de 35, são necessários 120 minutos, não os noventa autorizados neste segundo fixture. Um grafo de precedências não é automaticamente um calendário viável em recursos. Mostra o conflito, a sequência corrigida e as opções: alterar âmbito, preparar trabalho separado quando possível, obter capacidade qualificada ou negociar outra janela com decisão válida.

python3 content/labs/change-evidence/run.py
# Package equality does not cover target, configuration or expected state.
# Explicit offsets: 01:30+01:00 -> 02:30+00:00 = 120 minutes
# Resource-feasible execution: 85; recovery reserve: 35; total: 120
NA PRÁTICA

O pacote aprovado permanece igual, mas uma mitigação noturna mudou a revisão do serviço. A equipa compara o novo manifesto e recalcula a janela antes de escolher o destino de execução.

Armadilhas comuns

Confundir hash com assinatura, rótulo com identidade, estado lido com autorização ou caminho crítico sem recursos com uma janela executável.

Tópicos relacionados: Gestão de projetos técnicos · Git · CI/CD

Leva esta ideia contigo

A autorização tem âmbito e condições. O plano deve continuar válido para o conteúdo, o estado, as pessoas e o tempo realmente disponíveis.

Criar conta

Referência: Guide for Security-Focused Configuration Management of Information Systems · DR Change Management 2026.1; independent technical curriculum