Commit 606dc792 authored by Kourser's avatar Kourser
Browse files

Documentation : l'effacement des fichiers, et la presse illustrée

Le cahier de test décrivait la suppression comme une « cascade complète » sans
dire ce qu'elle emporte : la nuance qui compte est justement qu'un fichier
partagé — logo d'organisation, pièce jointe d'une copie — est épargné.

README et Nouveautés portent la commande de balayage, pour les instances qui
tournaient avant et gardent les fichiers de tout ce qui a été supprimé.

Co-Authored-By: default avatarClaude Opus 5 <noreply@anthropic.com>
parent 1ee089da
Loading
Loading
Loading
Loading
+15 −0
Changes for README.md: 15 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -156,6 +156,21 @@ node dist/scripts/reset-mfa.js --email=root@exemple.org --confirm
La commande avertit et n'écrit rien sans `--confirm`. Le compte se reconnecte alors avec son
seul mot de passe, et l'obligation le renvoie immédiatement vers un nouvel enrôlement.

### Fichiers téléversés : balayer les orphelins

Supprimer un exercice ou une organisation efface aussi ses fichiers téléversés — images
publiées par les joueurs, pièces jointes, logo. Les instances qui tournaient **avant** cette
version portent encore les fichiers de tout ce qui avait été supprimé : la base ne les connaît
plus, le disque les garde.

```bash
node dist/scripts/balayer-fichiers.js
```

Sans argument, la commande **mesure** et ne touche à rien. `--confirm` efface. À lancer
application arrêtée : un fichier téléversé à l'instant même, dont la ligne n'est pas encore
écrite, passerait pour orphelin.

### `TRUSTED_PROXIES` : à ne pas laisser au hasard

Le plafonnement des routes publiques (inscription, mot de passe oublié, bac à sable) compte les
+18 −0
Changes for docs-site/docs/nouveautes.md: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,24 @@ description: Journal daté des évolutions d'Enkadenn.
Ce qui a changé, du plus récent au plus ancien. Les correctifs d'affichage mineurs
ne sont pas tous listés ; les changements visibles pour un animateur ou un joueur le sont.

## 3 septembre 2026 — Supprimer efface aussi les fichiers

- **Supprimer un exercice ou une organisation efface les fichiers téléversés**, et plus
  seulement les lignes en base. Les images publiées par les joueurs pendant l'exercice
  restaient sur le disque, indéfiniment : de la donnée personnelle conservée sans finalité.
  C'est vrai des suppressions faites depuis la console, de la **purge de rétention** et de
  l'**échéance d'une séance de découverte**.
- **Les fichiers partagés sont épargnés.** Le logo d'une organisation est recopié dans chaque
  exercice créé, et la duplication recopie les pièces jointes : un fichier ne part que si plus
  aucun exercice ne le porte. Sans cette précaution, supprimer un exercice aurait fait
  disparaître le logo de l'organisation.
- **Remplacer ou retirer un logo** efface l'ancien fichier, quand il ne sert plus nulle part.
- **Instances déjà en service** : elles portent les fichiers de tout ce qui a été supprimé
  avant cette version. Une commande les [balaye](./administration-instance.md#balayer-les-fichiers-orphelins),
  après les avoir mesurés — elle ne touche à rien sans `--confirm`.
- **Presse** : l'illustration est aussi proposée quand on publie **directement** depuis
  l'onglet Communication, et non seulement en préparant un inject.

## 3 septembre 2026 — Le mur de crise s'aligne sur la vue joueur

- **Mur de crise et écran de salle** reprennent **le thème de l'application**. Ils portaient
+6 −3
Changes for docs/cahier-de-test.md: 6 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -194,7 +194,8 @@ C'est l'adresse que le visiteur transmet à sa cellule. Elle ne demande aucun co
| **Ouvrir** | | Idem |
| **Dupliquer** | | ⚠️ Copie **tout le scénario** : personnages, canaux, documents, phases, fiches réflexes, grille d'observation, questionnaire, chronogramme, réglages. **Ne copie pas** le déroulé : participants, messages, journal. Statut remis à brouillon, horloge à zéro |
| **Archiver** | Exercice non archivé | Passe en archivé ; disparaît de la liste courante |
| **Supprimer** | Exercice **archivé** | Confirmation, puis suppression définitive en cascade |
| **Supprimer** | Exercice **archivé** | Confirmation, puis suppression définitive en cascade. ⚠️ Les **fichiers** téléversés partent avec — images publiées par les joueurs, pièces jointes, logo propre — et pas seulement les lignes en base |
| idem | L'exercice est une **copie**, ou porte le logo de l'organisation | ⚠️ Les fichiers **partagés** sont épargnés : le logo de l'organisation est recopié dans chaque exercice, et la duplication recopie les pièces jointes. Un fichier ne part que si plus aucune ligne ne le porte |
| **Supprimer** | Exercice non archivé | Refus : seul un exercice archivé se supprime |
| Toute action | Organisation suspendue | ⚠️ Refus affiché à l'écran, pas un clic sans effet |

@@ -268,7 +269,7 @@ C'est l'adresse que le visiteur transmet à sa cellule. Elle ne demande aucun co
| **Générer le lien d'affichage** | | Lien pour l'écran de la salle : aucun compte, lecture seule |
| Chat : choix du canal, **Envoyer** | | Message posté au nom de l'animation |
| Réseaux : réseau, texte, ♥, **Publier** | | Publication visible côté joueur, engagement réglable |
| Presse : média, **Publier** | | Article dans le fil de presse des joueurs |
| Presse : média, 🖼, **Publier** | | Article dans le fil de presse des joueurs. L'illustration est facultative, et téléversée dès sa sélection : le format est refusé tout de suite, pas au moment de publier |
| Espace documentaire **Joueurs / 🔒 Animation** | | Deux espaces distincts : le second n'est jamais visible des joueurs |
| Téléversement d'un document | Type autorisé | Document publié ; ⚠️ un fichier exécutable dans le navigateur est refusé à l'entrée |
| **Supprimer** un document | | Confirmation nominative, puis retrait |
@@ -480,7 +481,9 @@ Bandeau permanent « ENVIRONNEMENT D'EXERCICE — SIMULATION » sur tous les ong
| Prolongation / fermeture | | Tracées au journal d'instance, avec leur auteur |
| **Organisations** : plafonds, **Suspendre** | | Une organisation suspendue bloque **aussi** ses joueurs et ses écrans de salle. ⚠️ Effet différé de **30 s au plus** : l'état est mis en cache, arbitrage assumé |
| **Observer / Intervenir** | | Bascule dans une organisation cliente, **tracée**, en lecture seule par défaut |
| **Supprimer** une organisation | | Slug redemandé en confirmation ; cascade complète |
| **Supprimer** une organisation | | Slug redemandé en confirmation ; cascade complète, **fichiers téléversés compris** |
| **Supervision** → compteur *Fichiers* | Une image téléversée puis son exercice supprimé | Le compteur revient à sa valeur d'avant : c'est le seul observable de l'état du disque. ⚠️ **Rafraîchir** est nécessaire, la mesure est mise en cache |
| Fichiers orphelins d'une instance antérieure | Accès au serveur | `balayer-fichiers.js` les mesure sans rien modifier, et ne les efface que sur `--confirm`. ⚠️ À lancer application arrêtée : un fichier téléversé à l'instant même, dont la ligne n'est pas encore écrite, passerait pour orphelin |
| **Réarmer le second facteur** d'un membre | | Motif obligatoire, tracé ; le délai de grâce repart |
| **Journal d'instance** | | Toutes les actions d'administration, conservées après suppression de l'organisation concernée |