-- ============================================================================= -- Migration: 20260419000012_documents_content_hash -- V#51 — hash SHA-256 do conteúdo pra detecção de tampering. -- -- Coluna nullable (documentos antigos não têm). Calculado client-side via -- crypto.subtle.digest('SHA-256') antes do upload pro storage. -- Integridade pode ser verificada baixando o arquivo e recalculando o hash. -- ============================================================================= ALTER TABLE public.documents ADD COLUMN IF NOT EXISTS content_sha256 text; CREATE INDEX IF NOT EXISTS idx_documents_content_sha256 ON public.documents (content_sha256) WHERE content_sha256 IS NOT NULL; COMMENT ON COLUMN public.documents.content_sha256 IS 'V#51: SHA-256 hex (64 chars) do conteúdo no momento do upload. Permite verificar integridade. NULL pra documentos legados pré-V#51.';