Pular para conteúdo

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.