Para transferir una organización en Supabase sin dejarla sin dueño, exige que el propietario actual inicie la operación, que el destinatario autenticado la acepte y que una función de base de datos cambie ambos roles dentro de una sola transacción. RLS debe impedir que un miembro normal se ascienda modificando su propia fila.
Índice
¿Qué modelo evita dos propietarios o una organización huérfana?
El modelo evita esos estados representando las membresías con roles y aplicando una restricción o procedimiento que preserve un solo propietario por organización. Una solicitud separada guarda destinatario, organización, creador, estado y caducidad; todavía no concede propiedad.
No rebajes primero al dueño actual para ascender después al nuevo. Si la segunda escritura falla, el tenant queda sin autoridad. Ejecuta ambas modificaciones juntas y registra el actor, el destinatario y el momento.
¿Cuál es la forma rápida: construirlo sobre IndiePack?
La forma rápida es usar IndiePack como base de Next.js 15 y Supabase con PostgreSQL, autenticación social y RLS. Sobre ese recorrido añades únicamente la transferencia propia de tu SaaS B2B, manteniendo secretos y decisiones de rol en el servidor.
Ver IndiePackVer precio¿Cómo se confirma que el destinatario correcto acepta la propiedad?
Se confirma iniciando sesión y vinculando el identificador autenticado con una solicitud pendiente válida. El email sirve para avisar y el token para localizar la solicitud, pero la cuenta autenticada es la identidad que terminará en la membresía.
Pide una confirmación explícita porque el cambio afecta facturación, miembros y datos. La transferencia de propiedad es más sensible que el acceso invitado a un solo proyecto: cambia quién puede administrar todo el tenant.
¿Qué debe impedir RLS durante el cambio de propietario?
RLS debe impedir que un miembro edite directamente su rol, cambie la organización de una membresía o acepte una solicitud dirigida a otra identidad. La función de transferencia valida al dueño actual y opera con un alcance reducido; no expongas una service role genérica al navegador.
El aislamiento base sigue el modelo de organizaciones con Supabase RLS. Después del cambio, el propietario anterior conserva solo el rol decidido por producto y sus consultas se evalúan de nuevo con ese permiso.
¿Cómo se prueba que la transferencia no rompe el tenant?
Se prueba con propietario, miembro, destinatario y usuario externo: intento de autoascenso, solicitud caducada, doble aceptación, dos pestañas y fallo intermedio. Confirma que siempre queda un único propietario y que los datos de otra organización nunca entran en la operación.
Verifica también auditoría, notificaciones y recuperación por soporte sin atajos en el cliente. Con IndiePack, el resultado correcto mantiene la base en castellano y añade una regla B2B concreta: propiedad transferible, operación atómica y permisos demostrables.