From 29daff82edc2b1e6c8f0ec96a2ebe74467dfa780 Mon Sep 17 00:00:00 2001 From: Milton Gonzalez Date: Wed, 9 Sep 2026 23:56:19 -0500 Subject: [PATCH] docs: registra el deploy a produccion de v1.7.0 (invitar por correo) Co-Authored-By: Claude Sonnet 5 --- PRODUCCION.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/PRODUCCION.md b/PRODUCCION.md index f682356..a557447 100644 --- a/PRODUCCION.md +++ b/PRODUCCION.md @@ -201,6 +201,26 @@ iRedMail): - Sin migracion nueva (la columna `role_in_project` ya existia desde el MVP). Redeploy solo backend+frontend; PID confirmado distinto en ambos servicios. +## Actualizacion v1.7.0 (2026-09-10) — invitar a un proyecto por correo + +- Migracion `004_project_member_invite.sql` aplicada sobre `.32`: agrega el status `invited` al + enum de `users`. +- Agregar miembro a un proyecto ahora acepta un correo que todavia no es usuario: crea una cuenta + `invited` (nombre/clave placeholder) y manda un correo con un enlace de un solo uso + (`/aceptar-invitacion`, vence 7 dias) para que la persona elija su nombre y clave. Nuevos + endpoints publicos `GET /api/auth/invite` y `POST /api/auth/accept-invite`. +- Verificado de punta a punta en dev con curl + Playwright: invitar por correo nuevo -> correo + logueado (modo dev) -> `GET /api/auth/invite` devuelve el email -> `POST /api/auth/accept-invite` + crea la cuenta, la activa y devuelve sesion iniciada -> aparece como miembro del proyecto sin + pasos adicionales -> login normal con la clave elegida funciona -> reusar el mismo token una + segunda vez falla (un solo uso). Tambien: invitar un correo ya existente simplemente lo agrega + como miembro directo (`invited:false`), sin crear nada nuevo ni mandar correo. Sin errores de + consola. +- Redeploy a produccion: migracion aplicada, backend y frontend reconstruidos y reiniciados (PID + confirmado distinto en ambos), verificado contra `https://project.linkedcorp.net` (`GET + /api/auth/invite` sin token responde `400` de validacion, no `401` — confirma que quedo publico + como se espera; `/aceptar-invitacion` carga con `200`). + ## Comandos utiles ```bash