wf-team-invite
Zweck
Verwandelt eine eingefügte Liste von Personen — „Name + Adresse“, in jeder Form,
in der ein Mensch sie geschrieben hat — in Benutzerkonten, Rollen,
Mitarbeiterkarten und Einladungen und sendet jeder Person den Link, mit dem sie
sich anmeldet.
Es existiert, weil vier Dienste für eine Zeile dieser Liste gemeinsam arbeiten
müssen (, rp-identity, rp-access, rp-staff sowie eine Mail-Lambda),rp-auth
und Microservices rufen sich nicht gegenseitig auf.
Warum es auch die Privilegiengrenze ist
lehnt ein Benutzer-JWT direkt ab (rp-access), daher kann@Access("internal")
keine Oberfläche eine Rolle vergeben. centimanus führt dieses Skript mit aus, und wer es ausführen darf, ist eine gewöhnliche BerechtigungSERVICE_TOKEN
— — die am Rand (wf/workflows/wf-team-invite.js(x))signal_provider.zig:146
geprüft und in einer voreingestellten Datei festgehalten wird. Deshalb gibt es
im Produkt kein Konzept eines „Administrators“.
Das Skript kann nicht sehen, wer es aufgerufen hat, daher ist die
Eskalationssicherung eine feste Liste: , manager, operator. viewerowner
und können hier nicht vergeben werden.root
Aufbau
- Textquellen —
+files.materializesowiefiles.extractText;rawText - Personen — zuerst
, zeilenweise Regex als Fallback;rt.llm - ein
pro Person — Benutzer, Basisvoreinstellung + Rolle,rt.attempt
Gruppen-Tags, Karte, Einladung; - das Schreiben — ein eigener Versuch, sodass ein abgelehntes Relay ein Zweig
und kein verlorenes Konto ist; - der Bericht, dessen
die Oberfläche in eine offene Tabelle genaustaffIds
dieser Personen umwandelt.
Das erneute Ausführen derselben Liste ist unproblematisch: Eine bekannte Adresse
wird , niemals ein zweites Konto.updated
Direkte Modulabhängigkeiten
,g-access,g-auth,g-files,g-identity,g-notify,g-ses,g-smtpg-staff
Lösungszugehörigkeit
production
Quelle
modules/workflows/wf-team-invite