Especifica o layout do objeto, metadados, isolamento, validação, entrega e controles de ameaça para retenção. Esta referência fixa o limite de adoção, comportamento em falhas e evidências observáveis, deixando limites específicos do ambiente configuráveis.
Status do pacote: contexto de referência pronto para revisão humana. O contrato e os cenários de teste estão completos, mas não se afirma que uma implementação adotante os tenha aprovado.
Decisão
Para Retenção, adote um registro de propriedade separado da chave opaca do objeto. Use um limite de propriedade, modelo de estado explícito e interfaces versionadas; mantenha decisões de política separadas de adaptadores e efeitos colaterais. Este pacote é um contrato de referência: a equipe adotante deve escolher limites numéricos, provedores, jurisdições e responsáveis operacionais com base em evidências do seu próprio ambiente.
Escopo
- Os atores, entradas, saídas, estados, versões de política ou esquema e resultados visíveis externamente descritos por este bloco de arquitetura.
- Interfaces primárias e alternativas, trabalhos em segundo plano, caches, integrações, caminhos de suporte e evidências que podem exercer o mesmo limite.
- Configuração específica de adoção, implantação, recuperação e responsabilidades de verificação necessárias para aplicar a referência com segurança.
Fora deste bloco
- Escolher um fornecedor universal, framework, jurisdição, limite numérico, período de retenção ou objetivo de nível de serviço para todos os adotantes.
- Afirmar que cenários empacotados foram executados contra uma implementação a jusante ou que esta referência concede certificação legal, de segurança ou acessibilidade.
Contrato
- Autorizar contra o registro de propriedade para upload, leitura, visualização, compartilhamento e exclusão; possuir uma URL ou chave não é autorização.
- Limitar tamanho, contagem, tipo de mídia, descompressão, tempo de processamento e consumo de armazenamento antes de iniciar trabalhos custosos.
- Manter objetos novos ou suspeitos em quarentena até que validação e varredura alcancem um resultado terminal de política.
- Gerar chaves de objeto independentemente dos nomes de arquivo do usuário e impedir que nomes de arquivo, rótulos MIME e metadados selecionem comportamento executável.
- Documentar propriedade dos componentes e direção permitida das dependências, incluindo quais dados podem cruzar cada limite.
- Fazer com que caminhos síncronos, assíncronos e em lote implementem as mesmas invariantes de autoridade e estado.
- Criar um cronograma versionado por classe de informação e artefato com gatilho, duração, jurisdição, proprietário, precedência de exceção, data de revisão e método de descarte verificado.
- Aplicar retenções sem redefinir silenciosamente o vencimento ordinário, propagar liberação ou exclusão através de armazenamentos ativos e derivados, e auditar prova segura da política em vez de reter o conteúdo proibido como evidência.
Orientações de implementação
- Comece com o estado do domínio e contrato de interface, depois conecte adaptadores, armazenamento, filas e código específico do provedor.
- Modele entradas, saídas, atores, estados, invariantes, efeitos colaterais e evidências de Retenção antes de selecionar detalhes de framework ou fornecedor.
- Armazene a versão aplicável do contrato ou política de Retenção com o estado material para que migrações, reprodução e decisões de suporte permaneçam atribuíveis.
- Introduza o caminho por trás da implantação controlada, compare resultados esperados e observados, e mantenha uma rota de recuperação testada até que a evidência de adoção esteja completa.
Tratamento de falhas e salvaguardas
- Processamento ou propriedade ambígua deixa o objeto em quarentena; limpeza requer evidência de propriedade e um período de carência recuperável.
- Estado de Retenção inválido ou contraditório é rejeitado ou colocado em quarentena; a implementação nunca supõe um valor que amplie autoridade ou duplique um efeito.
- Retentativas são limitadas e usam identidade durável; após esgotamento, o trabalho alcança um estado terminal inspecionável com um responsável contabilizável.
Verificação e operações
- Exercite o contrato através de cada adaptador e prove que uma dependência falha não pode contornar o limite autoritativo.
- Monitore sucesso, negação, falha de validação, falha de dependência, esgotamento de retentativas e recuperação de Retenção por versão do contrato sem dimensões sensíveis da carga útil.
- Reexecute fixtures positivos e negativos pareados após mudanças de política, esquema, dependência, migração ou limite e preserve a evidência resultante.
Suposições de adoção
- Nomes e valores no exemplo são um fixture concreto, não padrões universais; adotantes os substituem por evidência documentada e propriedade.
- O sistema adotante pode fornecer identidade autenticada, versões duráveis de operação ou registro, telemetria limitada e um caminho controlado para mudanças.
Os exemplos com aparência executável neste pacote são fixtures e contratos de aceitação. Execute o validador da coleção para verificar estrutura e metadados, depois traduza e execute os cenários no repositório alvo antes de registrar evidências da implementação.
Referências
- OWASP File Upload Cheat Sheet
- Regulation (EU) 2016/679 (GDPR), official text (aplica-se a partir de 2026-09-08)