wf-team-invite
Propósito
Convierte una lista pegada de personas — «nombre + dirección», con cualquier formato
que le haya dado una persona — en cuentas de usuario, roles, tarjetas de personal e
invitaciones, y envía a cada persona el enlace que inicia su sesión.
Existe porque cuatro servicios tienen que avanzar juntos para una fila de esa lista
(, rp-identity, rp-access, rp-staff más una lambda de correo) y losrp-auth
microservicios no se llaman entre sí.
Por qué también es el límite de privilegios
rechaza directamente un JWT de usuario (rp-access), por lo que ninguna@Access("internal")
superficie puede asignar un rol. centimanus ejecuta este script con , y quiénSERVICE_TOKEN
puede ejecutarlo es una concesión ordinaria — — comprobadawf/workflows/wf-team-invite.js(x)
en el extremo () y escrita en un único archivo de preajustes. Por esosignal_provider.zig:146
el producto no tiene el concepto de «administrador».
El script no puede ver quién lo llamó, así que la protección contra la escalada es una lista fija:, manager, operator. viewer y owner no se pueden conceder aquí.root
Estructura
- fuentes de texto —
+files.materialize, además defiles.extractText;rawText - personas — primero
, y una expresión regular línea por línea como alternativa;rt.llm - un
por persona — usuario, preajuste base + rol, etiquetas de grupo, tarjeta,rt.attempt
invitación; - la carta — su propio intento, de modo que un relay rechazado sea una rama y no una cuenta
perdida; - el informe, cuyos
la superficie convierte en una tabla abierta compuesta exactamentestaffIds
por estas personas.
Volver a ejecutar la misma lista no causa problemas: una dirección conocida se , nuncaupdated
se crea una segunda cuenta.
Dependencias directas del módulo
,g-access,g-auth,g-files,g-identity,g-notify,g-ses,g-smtpg-staff
Pertenencia a la solución
production
Fuente
modules/workflows/wf-team-invite