fix(auth): garder l identite Discord du cote verifie
This commit is contained in:
+13
-4
@@ -1,8 +1,9 @@
|
||||
# Le schéma réel, et comment sortir de `create_all()`
|
||||
|
||||
> **État au 2026-08-11** : l'outil de relevé existe et est testé. Le relevé
|
||||
> lui-même n'a pas été exécuté — il demande un accès à la base de production,
|
||||
> qui ne peut pas venir du dépôt. Tout ce qui suit attend cette exécution.
|
||||
> **État au 2026-08-16** : l'outil de relevé existe et est testé, y compris
|
||||
> pour les collisions d'identité Discord. Le relevé lui-même n'a pas été
|
||||
> exécuté — il demande un accès à la base de production, qui ne peut pas venir
|
||||
> du dépôt. Tout changement de schéma ci-dessous attend cette exécution.
|
||||
|
||||
## Pourquoi c'est le nœud
|
||||
|
||||
@@ -60,6 +61,14 @@ existe-t-il encore ? (`SEC-003`) :
|
||||
python app/supporting_scripts/schema_report.py --check-seed-accounts
|
||||
```
|
||||
|
||||
L'identité Discord est désormais conservée côté serveur et toute nouvelle
|
||||
collision est refusée par l'application. Les doublons historiques restent à
|
||||
identifier avant d'ajouter la contrainte `UNIQUE` de `SEC-012` :
|
||||
|
||||
```bash
|
||||
python app/supporting_scripts/schema_report.py --check-discord-identities
|
||||
```
|
||||
|
||||
## Étape 3 — Alembic, décrivant le schéma **réel** (`DB-002`)
|
||||
|
||||
Le piège de cette étape tient en une phrase : **la migration initiale doit
|
||||
@@ -111,7 +120,7 @@ Dans cet ordre, parce qu'ils dépendent tous de `DB-002` :
|
||||
| `DB-008` | Trancher `attendance_confirmed` côté tryout | `discord_bot.py` écrit un attribut fantôme ; aujourd'hui journalisé en avertissement |
|
||||
| `DB-009` | Horodatages avec fuseau | `datetime.utcnow` partout, déprécié en 3.12 |
|
||||
| `ARCH-001` | Fusionner coach/équipe sur la relation m2m | Migration de données ; `app/permissions.py` rend la duplication inoffensive **en lecture** seulement, l'écriture crée toujours les deux |
|
||||
| `SEC-012` | Identité Discord côté serveur, `unique=True` | La colonne doit être unique, donc dédoublonnée d'abord |
|
||||
| `SEC-012` | Ajouter `unique=True` sur l'identité Discord | La valeur OAuth reste côté serveur et les nouvelles collisions sont refusées ; les lignes historiques doivent être dédoublonnées d'abord |
|
||||
|
||||
## Ce qu'on ne fait pas
|
||||
|
||||
|
||||
Reference in New Issue
Block a user