- Noms des liens d'équipe : comparés sans casse, accents ni ponctuation (ld_engine::names), lettres latines seulement (pas de sosie cyrillique, grec ou pleine chasse), une ligne ; index unique (migration additive 0003) contre deux ouvertures simultanées sous le même nom. - Une personne déjà connectée ne prend une place que si le lien lui ajoute un groupe ; « Ce n'est pas moi » la déconnecte sur un navigateur partagé ; un lien collé dans le même onglet est relu. - Coller ou couper un mot de quantité n'est pas une coquille (« sur tout » → « surtout », « par tout » → « partout »). - Libellés sans caractère de contrôle ; la soumission revérifie le titre. Boucle : 68 tests Rust, svelte-check, 9 vitest, e2e 13/13. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
0006 — Accès : connect.monnaie-libre.fr, invitations, trustinWallet
Contexte. « Le même accès que pour le forum Monnaie libre », « toute personne avec une clé Duniter peut se loger et tout faire — sauf la gestion des accès », qui revient à trustinWallet (nouveau nom de trustWallet, déjà pris).
Décision.
- Connexion Ğ1 : libreDecision est client OAuth2 de connect.monnaie-libre.fr (comme le forum).
Le compte est la clé d'identité (
idty:N) ; on garde le nom affiché et le statut de membre. - En attendant l'inscription du client : liens d'invitation à usage unique (14 jours), le secret dans le fragment de l'URL (jamais dans les journaux du serveur). Un administrateur peut redonner un lien à une personne invitée (autre appareil, session perdue).
- Liens d'équipe (Yvv, 2026-10-21 : « je vais l'utiliser plein de fois, pendant tout le
dev, et la partager avec une équipe ») : un lien réutilisable jusqu'à une date (90 jours au
plus) et pour un nombre de personnes (500 au plus), révocable. Chaque ouverture demande un
nom et crée sa propre identité d'invitation, jamais administratrice. Un nom déjà pris est
refusé, quelle que soit sa tenue (casse, accents, ponctuation :
ld_engine::names, index unique) ; un nom s'écrit en lettres latines, chiffres, espace, trait d'union, apostrophe ou point (pas de sosie cyrillique, grec ou pleine chasse). Une personne déjà connectée garde son identité et reçoit les groupes ; elle ne prend une place que si le lien lui en ajoute un ; sur un navigateur partagé, « Ce n'est pas moi » la déconnecte. trustinWallet montre par quel lien chaque identité est venue. Limite assumée : une même personne qui l'ouvre deux fois, sous deux noms, a deux identités — sans effet dans Monnaie libre (seule la toile vote), à surveiller dans le groupe d'essai. - Sessions : cookie HttpOnly, SameSite=Lax, Secure en https, 30 jours, jeton haché en base ; en-tête anti-CSRF sur toute écriture.
- Les règles (qui voit, qui ouvre, qui administre) vivent dans
trustin-access, futur cœur du service trustinWallet ; le serveur ne décide jamais seul. - Une personne, une voix : là où l'électorat est la toile de confiance (Monnaie libre), seuls ses membres votent ; une identité d'invitation y lit et propose. Un nouveau lien ne vise jamais une identité Ğ1 (un administrateur ouvrirait une session à sa place).
- Premier administrateur : un lien d'invitation écrit au premier démarrage dans le volume de données (0600), jamais dans les journaux.
Coût. Tant que connect n'est pas branché, chaque testeuse a besoin d'un lien. Quand
trustinWallet deviendra un service, trustin-access deviendra son client.