Liens d'équipe (Yvv, 2026-10-21) : un lien réutilisable jusqu'à une date
et pour un nombre de personnes, révocable. Chaque ouverture demande un nom
et crée sa propre identité d'invitation, jamais administratrice ; un nom
déjà pris est refusé ; une personne déjà connectée reçoit les groupes.
trustinWallet montre par quel lien chaque identité est venue, et donne un
nouveau lien de connexion à une personne invitée (autre appareil).
Migration additive 0002 (table team_links, colonne identities.team_link).
Publication : yvv/libredecision-textes sur git.open.us.org, pour
l'instant (un dépôt pour l'ouverture, puis le dépôt officiel, viendront).
Huitième relecture (c3d6bf8 : ok), points corrigés :
- une négation n'est jamais coupée ni formée par collage (« ja mais ») ;
- caractères invisibles : tout l'ensemble Unicode des ignorables et les
contrôles autres que saut de ligne et tabulation ;
- sauts de ligne et indentation font partie de la forme (listes) ;
- un titre tient sur une ligne.
Boucle : 65 tests Rust, svelte-check, 9 vitest, e2e 13/13 (C12 ajouté).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
729 B
SQL
18 lines
729 B
SQL
-- Team links (2026-10-21): one link shared with a team until a date; each opening
|
|
-- makes its own invited identity, never an administrator. Additive only.
|
|
|
|
CREATE TABLE team_links (
|
|
token_hash TEXT PRIMARY KEY,
|
|
label TEXT NOT NULL, -- what the link is for, shown to whoever opens it
|
|
groups TEXT NOT NULL DEFAULT '[]', -- JSON array of group slugs granted on each opening
|
|
created_by TEXT NOT NULL,
|
|
created_at TEXT NOT NULL,
|
|
expires_at TEXT NOT NULL,
|
|
max_uses INTEGER NOT NULL,
|
|
uses INTEGER NOT NULL DEFAULT 0,
|
|
revoked_at TEXT
|
|
);
|
|
|
|
-- The team link an identity came from, if any (shown to administrators).
|
|
ALTER TABLE identities ADD COLUMN team_link TEXT;
|