Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Tus empleados IA, trabajando. Portal del cliente de Respondo.
Translation pending
BusinessTypeScript · JavaScriptGitHub @marcelovaldesr-uiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Portal donde cada pyme cliente entra y ve a sus empleados IA trabajando (Tino, Beto, Vera). Lee del schema ed_ del motor 2.0 (misma Supabase). App separada de respondo-hq (panel interno de fundadores) — no lo toca. Estado: código endurecido y validaciones locales en verde; el despliegue productivo sigue condicionado a aplicar/verificar migraciones y rotar secretos. Ver docs/audits/portal-deep-audit/EXECUTIVE_SUMMARY.md.Read the full README ↗
Portal donde cada pyme cliente entra y ve a sus empleados IA trabajando
(Tino, Beto, Vera). Lee del schema ed_ del motor 2.0 (misma Supabase).
App separada de respondo-hq (panel interno de fundadores) — no lo toca.
Estado: código endurecido y validaciones locales en verde; el despliegue
productivo sigue condicionado a aplicar/verificar migraciones y rotar secretos.
Ver
docs/audits/portal-deep-audit/EXECUTIVE_SUMMARY.md.
| Ruta | Qué es |
|---|---|
/ | Redirige: con sesión a /inicio, sin sesión a /login |
/login | Pedir enlace de acceso (sin contraseña) |
/inicio | Bienvenida, métricas del mes vs basal, tarjeta por empleado |
/conversaciones | Chats atendidos + pausar / tomar el control |
/probar | Chat en vivo con el asistente, con datos reales del negocio |
/informacion | Ver y editar lo que sabe el asistente + plantillas de rubro |
/estado | Diagnóstico: variables de entorno + conexión a Supabase |
/sin-acceso | Email autenticado pero no habilitado en portal_usuarios |
/auth/callback | Enlace de acceso enviado por correo (flujo PKCE) |
/auth/verificar | Enlace de acceso por token_hash (generado desde el admin) |
lib/db.ts); nunca llega al navegador.cliente_id del usuario logueado, resuelto vía portal_usuarios. Verificado:
un cliente no ve ni puede modificar datos de otro.sql/202_rls.sql y reforzado por las migraciones 272/273.
Debe comprobarse en la base desplegada; service_role hace que la autorización
derivada de sesión siga siendo el control primario del backend.lib/supabaseAuth.ts (servidor) y lib/supabaseNavegador.ts no se juntan.
El primero importa next/headers; si un componente "use client" lo importa,
Next falla al compilar. Ya pasó una vez.cookies() de next/headers. Si no, la
sesión se pierde al redirigir y el usuario vuelve al login sin ningún error
visible. También pasó.| Archivo | Qué hace |
|---|---|
respondo-2.0/motor/sql/100_empleados_digitales.sql | Tablas del motor |
respondo-2.0/motor/sql/101_addendum_n8n.sql | ed_mensajes y extras |
sql/200_portal.sql | portal_usuarios |
sql/201_resultados_y_seed.sql | ed_contactos, ed_resultados + seed demo |
sql/202_rls.sql | Row Level Security general ⚠️ verificar/aplicar |
sql/210 … sql/271 | Canales, agenda, insights, embudo, clases y media |
sql/272_security_hardening.sql | RLS clases, RPC y relaciones tenant ⚠️ probar/aplicar |
sql/273_operational_hardening.sql | rate limit global, inbox durable, auditoría, unión tenant y RPC paginadas ⚠️ probar/aplicar |
El 201 reemplaza el seed del 200 y es idempotente: se puede correr las veces que haga falta.
npm install
npm run check
npm run dev
Necesita .env.local con las variables de .env.example. Si algo no carga,
http://localhost:3000/estado dice si es problema de variables o de conexión.
En Supabase → Authentication → URL Configuration deben estar:
http://localhost:3000http://localhost:3000/auth/callback y
http://localhost:3000/auth/verificar[email protected], [email protected],
[email protected] y [email protected] (→ Aurora).Los dos clientes demo tienen IDs fijos (1111… y 2222…) y se borran con una
línea de SQL sin tocar nada más.
Se puede generar un enlace desde la API admin de Supabase y abrirlo directo:
POST {SUPABASE_URL}/auth/v1/admin/generate_link
{"type":"magiclink","email":"...","options":{"redirect_to":"http://localhost:3000/auth/verificar"}}
Devuelve hashed_token; el enlace es
/auth/verificar?token_hash=<token>&type=magiclink. Es de un solo uso.
docs/PUESTA_EN_PRODUCCION.md — SMTP, RLS, despliegue, checklist previo al
primer cliente real.docs/MOTOR_REGISTRO_RESULTADOS.md — nodo de n8n para que el motor escriba en
ed_resultados y ed_contactos. Sin esto, las tarjetas de Beto y Vera
muestran 0 en producción.docs/audits/portal-deep-audit/ — arquitectura, hallazgos, riesgos pendientes
y condiciones de salida para producción.git commit/build desde el sandbox de Cowork: los archivos editados
pueden verse truncados en el mount. Editar aquí, commitear tú.public/brand/ son recortes de los robots FLUX de la web.
El isotipo es una versión circular limpia: el archivo
Respondo_Isotipo_IndigoCoral.svg de la web no sirve, es una lámina del
manual de marca y se ve como cuadritos en tamaño chico.