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:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user