Files
glm-hub/README-SOLICITUDES-ACCESO.md

3.2 KiB

GLM Hub — Solicitudes de acceso

Cambios incluidos

  • Se retiró el texto de ayuda “Directa y fácil de escanear.” debajo de Descripción breve.
  • Control del catálogo sigue renderizándose exclusivamente para usuarios con role = admin.
  • Los usuarios normales ven una nueva sección ¿No tienes acceso a una aplicación?.
  • El formulario de solicitud se alimenta directamente del catálogo publicado en Supabase, por lo que al crear, ocultar o eliminar aplicaciones el dropdown se actualiza sin editar código.
  • La pantalla queda bloqueada mientras n8n registra la solicitud y envía los correos.
  • Los correos de aprobación se envían individualmente a Isaac Aracena, José Leopoldo Gómez y Máximo Gómez.
  • La primera decisión confirmada queda registrada de forma atómica en Supabase. Los clics posteriores no pueden cambiarla ni volver a avisar a IT Support.
  • Tras la decisión se envía un correo HTML a itsupport@gomezleemarketing.com con solicitante, aplicación, decisión y persona que decidió.

1. Supabase

Ejecuta completo:

SUPABASE-GLM-HUB-COMPLETO.sql

El script conserva las tablas anteriores y agrega:

  • glm_hub_access_requests
  • glm_hub_access_request_approvers
  • glm_hub_prepare_access_request(uuid)
  • glm_hub_issue_access_request_tokens(uuid)
  • glm_hub_decide_access_request(text, text)

La función que entrega los enlaces de aprobación solo puede ejecutarse con service_role; los enlaces nunca se devuelven al navegador del solicitante.

2. n8n

Importa:

n8n/GLM-Hub-Solicitudes-Acceso-Aprobacion.json

Después configura:

  1. En Crear solicitud en Supabase reemplaza TU_SUPABASE_ANON_KEY en apikey.
  2. En Emitir enlaces de aprobación reemplaza TU_SUPABASE_SERVICE_ROLE_KEY en apikey y Authorization.
  3. En Registrar decisión en Supabase reemplaza TU_SUPABASE_ANON_KEY en apikey y dentro de Bearer TU_SUPABASE_ANON_KEY.
  4. Selecciona una credencial Gmail válida en:
    • Enviar solicitud a aprobadores
    • Enviar decisión a IT Support
  5. Guarda, publica y activa el workflow.

El workflow no usa variables de entorno de n8n.

3. Frontend

El .env ya incluye:

VITE_ACCESS_REQUEST_WEBHOOK_URL="https://agenteit.digitalcompass.agency/webhook/glm-hub-solicitar-acceso"

El ZIP también contiene un dist actualizado. La versión fuente puede recompilarse normalmente con:

npm install
npm run build

Decisión desde correo

Los botones del correo abren una pantalla de confirmación antes de registrar la decisión. Esto evita que un escáner automático de enlaces de Gmail o seguridad corporativa apruebe o rechace una solicitud sin intervención humana.

Los botones permanecen visibles en los correos ya entregados, pero después de la primera decisión Supabase bloquea cualquier cambio posterior y muestra que la solicitud ya fue atendida.

Corrección 2026-07-29

  • El nodo Crear solicitud en Supabase usa la clave anon en apikey y el JWT vigente del usuario en Authorization.
  • Los nodos internos para emitir enlaces y registrar decisiones conservan la clave service_role.
  • Los errores visibles en el portal son mensajes para usuarios; los detalles técnicos quedan solamente en la ejecución de n8n.
  • El selector de áreas incluye CDC.