wf-team-invite
Objectif
Transforme une liste de personnes collée — « nom + adresse », quelle que soit la
forme sous laquelle un humain l’a écrite — en comptes utilisateur, rôles, fiches
de personnel et invitations, puis envoie à chaque personne le lien qui lui
permet de se connecter.
Cela existe parce que quatre services doivent avancer ensemble pour une ligne de
cette liste (, rp-identity, rp-access, rp-staff, ainsi qu’unerp-auth
lambda de messagerie), et que les microservices ne s’appellent pas entre eux.
Pourquoi c’est aussi la frontière des privilèges
refuse catégoriquement un JWT utilisateur (rp-access),@Access("internal")
donc aucune surface ne peut attribuer un rôle. centimanus exécute ce script avec, et les personnes autorisées à l’exécuter sont définies par uneSERVICE_TOKEN
permission ordinaire — — vérifiée à lawf/workflows/wf-team-invite.js(x)
périphérie () et inscrite dans un fichier de préréglagessignal_provider.zig:146
unique. C’est pourquoi le produit ne possède pas de concept
« administrateur ».
Le script ne peut pas voir qui l’a appelé, donc la protection contre l’escalade
repose sur une liste fixe : , manager, operator. viewer et owner neroot
peuvent pas être attribués ici.
Structure
- sources textuelles —
+files.materialize, ainsi quefiles.extractText;rawText - personnes —
en premier, puis une expression régulière ligne parrt.llm
ligne en secours ; - une tentative
par personne — utilisateur, préréglage de base +rt.attempt
rôle, étiquettes de groupe, fiche, invitation ; - la lettre — sa propre tentative, afin qu’un relais refusé constitue une
branche et non un compte perdu ; - le rapport, dont la surface transforme les
en une table ouvertestaffIds
contenant exactement ces personnes.
Réexécuter la même liste est sans danger : une adresse connue est ,updated
jamais un deuxième compte.
Dépendances directes du module
,g-access,g-auth,g-files,g-identity,g-notify,g-ses,g-smtpg-staff
Appartenance à la solution
production
Source
modules/workflows/wf-team-invite