Documentación de Mentat — en evolución continua.
IngenieríaOnboarding y usuarios

Onboarding y usuarios

Mentat es de acceso por invitación: no hay registro público. El ingeniero (o el admin del cliente) crea las cuentas y asigna roles. Mientras no exista un panel de admin, esto se hace con scripts.

Sembrar la organización + el primer admin

Una org nueva y su primer admin se crean con bootstrap-prod-admin.mjs (usa ADC; idempotente; exige --confirm):

ADMIN_EMAIL=admin@cliente.com ORG_ID=cliente ORG_NAME="Cliente SA" \
ADMIN_PASSWORD=... \
  node scripts/admin/bootstrap-prod-admin.mjs --confirm

Deja: usuario Auth (creado o existente) + /users/{uid} active con membership + /organizations/{orgId} + el member doc con rol admin.

Agregar miembros (editor / operator / viewer)

Para sumar al resto del equipo a una org ya existente, con un rol no-admin:

MEMBER_EMAIL=ana@cliente.com ORG_ID=cliente ROLE=operator \
MEMBER_PASSWORD=Temp1234! \
  node scripts/admin/add-org-member.mjs --confirm

Idempotente, preserva las memberships del usuario en otras orgs. Para admin usá el bootstrap.

Los roles

RolPuede
admintodo, incluida la gestión de usuarios
editorOntología, ActionTypes, DataSources (no usuarios)
operatorejecutar Actions y modificar datos operacionales
viewersolo lectura

La autorización se resuelve en el backend leyendo el member doc de la org (/organizations/{orgId}/members/{uid}) — sin custom claims.

El flujo de solicitud de acceso

La pantalla /login tiene un modo “solicitar acceso” para personas sin cuenta. Una solicitud queda en /accessRequests (con rate-limit por IP) y dispara un email al admin. El admin revisa y crea la cuenta (hoy con los scripts de arriba).

El estado del usuario pasa por invitedactive. Hoy la activación la hacen los scripts; la transición automática al primer login es deuda técnica conocida.

⚠️

Emails a usuarios reales: para que la notificación/invitación llegue (no caiga en spam), el dominio de envío tiene que estar verificado en Resend. Ver Notificaciones.

Multi-organización

Un usuario puede pertenecer a varias organizaciones con distintos roles (útil para un consultor de Dawoork que opera en varios clientes). El aislamiento entre tenants lo garantizan las Security Rules.