fix(q1): redact_pdf_vector raise on apply_redactions failure

Avant : silence sur apply_redactions échec → PDF sortait sans
rédaction (fuite RGPD critique en milieu santé).

Maintenant : log.warning + raise → l'exception remonte à
process_pdf qui la traitera en étape D (try/flag Q-PDF).

Note transitoire : tant que process_pdf:4655 a encore
'except: pass', le comportement net est "PDF non généré
silencieusement". C'est strictement meilleur qu'avant (pas
de fuite) mais pas encore optimal (pas d'alerte opérateur).
L'étape D complète la chaîne avec QuarantineManager.flag().

Ref: docs/coordination/inbox/for-dom/2026-05-29_consolide_pseudocode-Q1-v2.md §1 cas #5

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-29 18:01:29 +02:00
parent f104c0bce0
commit 72171554af

View File

@@ -3935,8 +3935,12 @@ def redact_pdf_vector(original_pdf: Path, audit: List[PiiHit], out_pdf: Path, oc
page.add_redact_annot(r, fill=(0, 0, 0))
try:
page.apply_redactions()
except Exception:
pass
except Exception as e:
# Q-1 : ne plus avaler silencieusement. Si apply_redactions échoue,
# le PDF sort SANS rédaction → fuite RGPD. On log + remonte pour
# que process_pdf flag la quarantaine PDF.
log.warning("apply_redactions failed on page %d: %s", page.number, e)
raise
doc.save(str(out_pdf), deflate=True, garbage=4, clean=True, incremental=False)
doc.close()