Documentación de Mentat — en evolución continua.
OperaciónBootstrap de un tenant

Bootstrap de un tenant

De cero a un cliente operando en producción. Combina el alta de la org, la carga de la config y el onboarding de usuarios.

⚠️

Esto escribe en producción. Requiere ADC (gcloud auth application-default login) y la web API key del proyecto. Hacelo con intención.

Crear la org + el admin

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

Deja la org, el usuario Auth, su /users/{uid} activo y el member doc admin.

Cargar la config del caso

Con el template del cliente (copiado de reference-pilot.json):

AUTH_BASE="https://identitytoolkit.googleapis.com/v1" \
FUNCTIONS_BASE="https://us-central1-dawoork-mentat.cloudfunctions.net" \
SEED_API_KEY="<web-api-key>" \
SEED_EMAIL="admin@cliente.com" SEED_PASSWORD="<temporal>" \
SEED_ORG_ID="cliente" TEMPLATE="scripts/pilot/cliente.json" \
  node scripts/pilot/load-config.mjs --confirm-prod

Onboardear al equipo

Un comando por usuario no-admin:

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

Smoke en prod

SEED_EMAIL=ana@cliente.com SEED_PASSWORD=<temporal> SEED_ORG_ID=cliente \
AUTH_BASE="https://identitytoolkit.googleapis.com/v1" \
FUNCTIONS_BASE="https://us-central1-dawoork-mentat.cloudfunctions.net" \
SEED_API_KEY="<web-api-key>" \
  node scripts/pilot/prod-smoke.mjs

Verificar

Confirmá por la REST de Firestore que la org tiene sus ontologyTypes, actionTypes, dataSources, members, y que las otras orgs quedaron intactas.

Notas de seguridad: las contraseñas temporales no se versionan; comunicalas por canal seguro y pedí cambio al primer login. Verificá el dominio de email en Resend para que las invitaciones lleguen. Cuando exista el panel de admin, este flujo se reemplaza por esa UI.

⚠️

Si ADC está caído y no podés re-loguearte, el alta se puede hacer por la REST de Firestore + Identity Toolkit con el token de usuario de gcloud (equivalente pero manual). Es el plan B documentado.