docs: les deux documents d exploitation qui manquaient
DOC-001 demandait quatre documents courts. Deux existaient — installation (deployment.md) et restauration (database-restore.md). Les deux autres n existaient pas. docs/roles-and-permissions.md decrit le comportement **implemente**, pas celui qu on souhaiterait, et note les endroits ou les deux divergent : un gerant gere toutes les equipes mais pas toutes les selections, asymetrie presente depuis toujours et ecrite nulle part ailleurs. Le piege du double rattachement coach/equipe y est en toutes lettres, avec le motif a ne jamais reintroduire. Le document dit aussi qui a raison en cas de desaccord : les tests. Une documentation d autorisation qui se contredit avec le code est pire que pas de documentation, parce qu on la croit. docs/incident-runbook.md part du symptome, pas du composant. Le reflexe d ouverture est la reference affichee sur la page d erreur — c est ce que l identifiant de requete rend possible, et sans un endroit qui le dise, la fonctionnalite ne sert a personne. Trois affirmations ont ete verifiees contre le code avant d etre ecrites, et deux etaient fausses : le corps de /health en echec dit database="error" et non "disconnected", et les evenements de verrouillage s appellent login.failure et account.throttled. La liste complete des quatorze evenements de auth.log est maintenant dans le manuel. README : index des documents, et deux points d etat corriges — TRUSTED_PROXY est desormais une variable, et l absence de validation des inscriptions par le staff est nommee comme decision en attente.
This commit is contained in:
@@ -94,14 +94,31 @@ Ce qui **n'est pas** fait, pour que personne ne s'y fie :
|
||||
à un modèle est absente de la production.
|
||||
- **Les secrets de l'historique git ne sont pas révoqués** — jeton du bot,
|
||||
mot de passe PostgreSQL, `SECRET_KEY`.
|
||||
- **`trusted_proxy='*'`** dans `wsgi.py` : l'en-tête `X-Forwarded-For` est
|
||||
- **`trusted_proxy='*'`** reste le défaut : l'en-tête `X-Forwarded-For` est
|
||||
accepté de n'importe quelle source, donc la limitation par IP est
|
||||
contournable. À régler avec la topologie réelle du déploiement.
|
||||
contournable. C'est désormais la variable `TRUSTED_PROXY` plutôt qu'une
|
||||
constante — `docs/deployment.md` donne la valeur pour chaque topologie.
|
||||
- **Les comptes créés par le formulaire d'inscription sont actifs
|
||||
immédiatement** : il n'y a pas d'étape de validation par le staff. Décision
|
||||
de produit en attente, voir `docs/roles-and-permissions.md`.
|
||||
- **L'identité Discord** transite encore par un champ caché du formulaire
|
||||
d'inscription : elle n'est pas prouvée par le passage OAuth2.
|
||||
|
||||
`docs/security-checklist.md` détaille la liste avant mise en production.
|
||||
|
||||
### Documentation
|
||||
|
||||
| Document | Pour |
|
||||
|---|---|
|
||||
| `docs/deployment.md` | Installer, déployer, revenir en arrière |
|
||||
| `docs/roles-and-permissions.md` | Qui peut faire quoi, et où c'est décidé |
|
||||
| `docs/database-restore.md` | Sauvegarder et restaurer |
|
||||
| `docs/database-schema.md` | Sortir de `create_all()` : relevé, Alembic, migrations |
|
||||
| `docs/incident-runbook.md` | Quand quelque chose ne va pas |
|
||||
| `docs/architecture.md` | Diagrammes |
|
||||
| `docs/translations.md` | Ajouter ou corriger une traduction |
|
||||
| `docs/security-checklist.md` | Avant une mise en production |
|
||||
|
||||
---
|
||||
|
||||
## Intégration Discord
|
||||
|
||||
Reference in New Issue
Block a user