Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗CRM inmobiliario construido con Next.js 14 (App Router), Tailwind CSS y Supabase.
@supabase/supabase-js + @supabase/ssr)npm install
npm run dev
Las credenciales viven en .env.local:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
app/
layout.js # layout raíz (fuente + metadata, lang es)
page.js # redirige a /dashboard
login/page.js # Módulo 1 — pantalla de login
(app)/
layout.js # layout protegido (sidebar + guard de sesión)
dashboard/page.js # placeholder (Módulo 5)
components/
Sidebar.js # navegación + datos del usuario + logout
lib/supabase/
client.js # cliente browser
server.js # cliente server (cookies)
middleware.js # refresco de sesión + protección de rutas
getPerfil.js # carga el perfil desde `usuarios` (defensivo)
middleware.js # entrada del middleware
Para que los módulos que leen/escriben datos funcionen:
supabase/rls_fix.sql (ver abajo).supabase/storage_setup.sql
para crear el bucket propiedades y sus políticas (necesario para subir fotos).usuariosAl conectar contra Supabase, todas las tablas devuelven:
code 42P17 — infinite recursion detected in policy for relation "usuarios"
La política RLS de usuarios se consulta a sí misma (patrón típico: "para saber
si el usuario es admin, hago SELECT sobre usuarios"), lo que genera recursión.
Como las demás tablas (propiedades, leads, contactos, etc.) también
verifican el rol consultando usuarios, ninguna tabla se puede leer.
El login NO está afectado (Supabase Auth es independiente), pero ningún módulo que lea datos funcionará hasta resolver esto.
El fix completo y autocontenido está en supabase/rls_fix.sql.
Resumen: el vínculo Auth ↔ usuarios es la columna auth_id (= auth.uid()),
mientras que usuarios.id es el ID interno al que apuntan leads.agente_id,
propiedades.agente_id, interacciones.usuario_id, etc. El fix crea dos
funciones SECURITY DEFINER (mi_rol() y mi_usuario_id()) que leen sin
disparar RLS, y reemplaza las políticas recursivas de usuarios. Arreglando
solo usuarios (la raíz), el resto de las tablas vuelve a leerse.