+16
−5
+2
−1
+15
−0
+175
−0
Loading
La cascade en base n'emporte que des lignes. Supprimer un exercice ou une
organisation laissait donc sur le disque, indéfiniment, les images téléversées
par les joueurs pendant l'exercice — de la donnée personnelle conservée sans
finalité, et sans aucun moyen de l'effacer. SECURITY.md promettait déjà cet
effacement ; il n'était vrai que de la ligne.
Les cinq chemins de suppression relèvent maintenant les clés AVANT de supprimer
— après, la cascade les a effacées et plus rien ne dit quels fichiers
appartenaient à l'exercice — puis effacent celles que plus aucune ligne ne
porte : exercice, purge de rétention, séance de découverte fermée ou échue,
organisation supprimée depuis la console d'instance.
Le comptage de références n'est pas une précaution de confort. Une même clé est
PARTAGÉE : le logo d'une organisation est recopié dans chaque exercice créé, et
la duplication recopie l'assetPath des documents. Effacer sur la seule foi des
clés de l'exercice supprimé crevait le logo de l'organisation — vérifié en
sabotant volontairement le filtre, la recette le rattrape.
Remplacer ou retirer un logo abandonnait son fichier de la même façon : c'est
le même défaut, traité au même endroit.
Pour les installations antérieures, qui portent les fichiers de tout ce qui a
été supprimé avant cette version, balayer-fichiers.ts les mesure puis les
efface sur --confirm.
Le harnais de recette sait désormais envoyer du multipart : les routes de
téléversement n'étaient pas testables.
Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>