Omnigraph
그래프 엔진으로 컨텍스트를 조립하고, 객체 저장소 기반에서 에이전트가 코드처럼 그래프 데이터를 분기·타입·검토·병합·감사·거버넌스합니다
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
DataLite es una aplicación de página única (SPA) sin necesidad de servidor (serverless), procesando todo directamente en el navegador del usuario para garantizar privacidad y velocidad de carga.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Dashboards, gráficos y tablas dinámicas a partir de Excel y CSV, directo en el navegador. El análisis ocurre en el equipo del usuario; solo los proyectos que se guardan con DataLite Pro se suben a la nube.
Sitio: https://data-lite.vercel.app
src/main.jsx App React: carga, cuenta, proyectos, puertas de Pro
src/app/ Tablero tipo Power BI (Dashboard, panel de visuales, fórmulas, filtros) y ventanas de la nube
src/lib/data.js Lectura de archivos, detección de tipos, tabla dinámica, filtros
src/lib/formula.js Intérprete de fórmulas tipo Excel (sin eval): columnas, medidas y funciones propias
src/lib/model.js Modelo de datos: aplica columnas calculadas, medidas y funciones del usuario
src/lib/Chart.jsx Gráficos SVG propios (sin Chart.js); Visuals.jsx: treemap, combinado, dispersión, medidor, KPI, matriz
src/lib/exporters.js PowerPoint (gráficos nativos), PNG, Excel de varias hojas
src/lib/cloud.js Cliente Supabase sin dependencias: enlace al correo (PKCE), RPC, Storage, pagos
src/config.js URL y clave publicable de Supabase (públicas por diseño)
api/ Funciones de Vercel: checkout, confirmación y webhook de Wompi
supabase/migrations/ Esquema, RLS y funciones de la base de datos
tests/ Pruebas unitarias (node --test tests/*.test.mjs)
src/lib/samples.js Datos de ejemplo
src/consent.js Banner de cookies, AdSense condicionado al consentimiento, Vercel Analytics
src/styles.css Estilos
src/pages/ Contenido de cada página (encabezado JSON con título, descripción, schema)
build.mjs Compila JS/CSS y genera los .html, sitemap.xml
Los archivos generados (index.html, guias/*.html, assets/, sitemap.xml) se versionan para que Vercel sirva el sitio estático sin paso de compilación.
npm install
npm run bundle # recompila assets y páginas
npx serve . # vista local
Edita siempre en src/ y vuelve a ejecutar npm run bundle; no edites los .html de la raíz a mano.
ads.txt ya incluye el ID de editor pub-9781408296787253.AD_SLOTS dentro de src/consent.js.X-Frame-Options: DENY, nosniff, Permissions-Policy restrictiva, CORS limitado al propio dominio y CSP con lista blanca: scripts solo del propio dominio y de Google AdSense (ver vercel.json). Si AdSense agrega un dominio nuevo, revisa la consola del navegador y súmalo a la CSP.service_role y los secretos de Wompi solo existen en el servidor.src/lib/xlsx.js, con JSZip empaquetado): la app no ejecuta código de servidores externos. Los .xls antiguos no se leen; se pide guardarlos como .xlsx.dwluwzeqexgihihauuos (esquema en supabase/migrations/). Todo pasa por funciones SECURITY DEFINER con permisos validados; las tablas no se pueden leer ni escribir directo desde el navegador. Los datos de cada proyecto van comprimidos en el bucket privado datalite/<id>/data.bin.DL- a /api/pagos/webhook de DataLite. Además, la página /pago confirma la transacción al volver del checkout.SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (sensible), WOMPI_PUBLIC_KEY, WOMPI_INTEGRITY_SECRET, WOMPI_EVENTS_SECRET, SITE_URL. Sin ellas, el botón de pago muestra «se habilita en los próximos días» y nada se rompe.api/compartir/notificar envía la invitación por SMTP (cliente propio en api/_lib/smtp.js, TLS 465). La base autoriza cada envío (dl_claim_invite_email: solo el dueño con plan vigente, la persona debe estar invitada, máximo un aviso cada 12 h por persona y 40 al día por dueño). Variables en Vercel: SMTP_USER (la cuenta de Gmail), SMTP_PASS (contraseña de aplicación, sensible) y, opcionales, SMTP_HOST, SMTP_PORT, SMTP_FROM_NAME. Sin ellas, la invitación igual funciona y la app sugiere copiar el enlace.src/lib/connectors.js. Google Sheets con el selector oficial y permiso drive.file (exporta a .xlsx por la API de Drive); Excel en OneDrive/SharePoint con Microsoft Entra (código + PKCE en ventana emergente, retorno en /conectar/microsoft, descarga por Graph). Todo en el navegador; los tokens solo viven en memoria. Los identificadores públicos van en CONNECT de src/config.js; vacíos, los botones no aparecen.select public.dl_admin_activate_plan('[email protected]'); con la cuenta de administrador.api/conexiones/iniciar → ventana de Google/Microsoft → api/conexiones/callback, que guarda el refresh token cifrado (AES-256-GCM, TOKEN_ENC_KEY) en private.dl_connections. El navegador nunca lo ve.pg_cron (minuto 5 de cada hora) llama a api/reportes/cron con la clave guardada en Supabase Vault (datalite_cron_key), que el servidor valida con dl_check_cron_key.src/server/engine.js se empaqueta en api/_lib/engine.js (node build.mjs); usa el mismo lector y cálculo del tablero./reportes/baja) y la cabecera List-Unsubscribe de un clic.TOKEN_ENC_KEY, GOOGLE_CLIENT_SECRET, MICROSOFT_CLIENT_SECRET (además de SMTP_* y SUPABASE_*).https://data-lite.vercel.app/api/conexiones/callback.api/_lib/whatsapp.js ya envía alertas con la API oficial de WhatsApp Business (Meta Cloud API), pero está apagado. Para activarlo:
datalite_alerta (categoría Utilidad, idioma es) con 4 variables: alerta, proyecto, valor y enlace.WHATSAPP_TOKEN (token permanente de usuario del sistema), WHATSAPP_PHONE_ID y, si cambian, WHATSAPP_TEMPLATE y WHATSAPP_LANG.src/app/Schedules.jsx (hoy dice «Próximamente»), pedir los números con autorización del titular y actualizar la política de privacidad.Una tarea programada toma cada semana el primer tema pendiente de content-plan.md, escribe la guía en src/pages/guias/, recompila y abre un pull request con un post sugerido para LinkedIn y otro para X. Para publicar, revisa el PR y haz merge. El índice de guías y el sitemap se actualizan solos.
Los artículos pueden enlazar a la herramienta con un ejemplo ya cargado: /?ejemplo=ventas, /?ejemplo=produccion o /?ejemplo=gastos.