AUR-402 — Registry canônico de profiles OCI
Documento histórico do board. Pode descrever componentes removidos; para uso atual, consulte o guia do produto.
registry.v1.json é um objeto JSON versionado com entradas ordenadas:
o profile bootstrap existente, o profile Go offline e a chave registry-v1. Cada entrada fixa o
schema, o lock e o image-set por SHA-256. O lock é separado e também fixa a
imagem por digest; nenhuma tag é aceita.
O loader rejeita JSON estruturalmente inválido, inclusive qualquer conteúdo
após o documento, chaves duplicadas ou fora de ordem, profiles desconhecidos,
paths fora da allowlist canônica, digests divergentes, locks ausentes e imagens
mutáveis ou fora da allowlist de imagem aprovada. O loader mantém a validação completa dos profiles legados e aceita a entrada Go versionada para que seu schema e lock sejam validados pelo dono AUR-403. A validação é somente leitura e ocorre antes de
qualquer consulta a engine ou rede. Os códigos estáveis são schema-invalid,
duplicate-profile, order-invalid, profile-unregistered, digest-invalid,
schema-digest-mismatch, lock-path-invalid, lock-missing,
lock-digest-mismatch, mutable-input, unsafe-plan e
image-set-digest-mismatch.
Um schema ou lock path que não seja exatamente o path canônico allowlisted,
incluindo qualquer tentativa de .., é rejeitado como unsafe-plan antes de
qualquer leitura fora da raiz permitida.
O image-set digest é SHA-256 da referência completa name@sha256:<digest> do
lock. Isso torna a derivação determinística sem introduzir um manifesto ou
download adicional. O profile usado para executar a acceptance permanece
bootstrap-readonly-v1; AUR-402 apenas valida o registry.
O AC-001 executa unit, contract, integration, E2E e os três mutantes usando
um cache Go privado compartilhado. Quando um card dependente possui os paths de
compatibilidade do AUR-402, mas seu staging não inclui os entrypoints históricos
de contract, integration e E2E, AURUM_A402_EMBEDDED_LAYERS=1 materializa no
diretório temporário as mesmas asserções dessas camadas. O modo normal continua
exigindo e executando os entrypoints canônicos; seletores isolados nunca usam a
materialização.