Sobre el proyecto
Cairn es un paquete de Composer que añade analítica web directamente dentro de una aplicación Laravel. La instalación se describe como un único composer require seguido de php artisan migrate, tras lo cual un panel de control está disponible en /cairn. Debido a que el seguimiento se ejecuta dentro de la aplicación en lugar de a través de una etiqueta del navegador, puede informar sobre nombres de rutas, modelos Eloquent y usuarios autenticados.
Modelo de privacidad: los visitantes se identifican mediante un hash salteado que se regenera a partir de nuevos bytes aleatorios cada 24 horas, destruyendo la sal anterior. El README detalla las consecuencias: no se pueden contar los visitantes recurrentes, los recorridos de varios días y la atribución multitáctil son imposibles, y el seguimiento entre dispositivos no existe. A cambio, la configuración predeterminada no almacena nada en el dispositivo del visitante, no guarda ninguna dirección IP en la base de datos, registros o copias de seguridad, y no necesita un banner de consentimiento de cookies; una brecha en la tabla de analítica filtraría recuentos en lugar de personas. Dos ajustes opcionales cambian esto y están desactivados por defecto: privacy.track_user_id atribuye las entradas a usuarios conectados, y privacy.durable_identity reemplaza el hash rotativo por una cookie. Los informes por país también están desactivados por defecto y utilizan un archivo local MaxMind GeoLite2 descargado con cairn:geoip en lugar de una búsqueda de terceros por solicitud.
Panel de control e informes: el panel es Blade renderizado en el servidor, se lee sin JavaScript, utiliza enlaces para los filtros y gráficos SVG integrados computados en el servidor, y coloca una tabla debajo de cada gráfico. Se incluyen dieciocho widgets por defecto y tres más están a una línea de configuración de distancia. Los widgets son clases que pueden reordenarse, eliminarse o subclasificarse, incluyendo un widget de dimensión para tablas clasificadas. Cada superficie, incluyendo el panel, la API, las tarjetas de Pulse y la exportación CSV, pasa por una única capa de consulta. Un constructor de informes admite métricas como visitantes, vistas de página y tasa de rebote agrupadas por dimensiones como la ruta, con comparación de periodos, ordenación y límites. Las métricas derivadas se vuelven a computar a partir de sus componentes almacenados al nivel mostrado en lugar de promediarse, y solicitar algo que nunca fue consolidado lanza una excepción en lugar de escanear las entradas brutas.
Operaciones: los requisitos son PHP 8.2+, Laravel 12 o 13, y MySQL 8+, MariaDB 10.6+ o PostgreSQL 13+. Redis es opcional, y se indica que cada capacidad respaldada por Redis tiene un controlador respaldado por base de datos de igual corrección probado contra la misma suite. No hay paso de construcción de npm, Vite o Node. Los comandos de Artisan incluyen cairn:rollup, cairn:prune, cairn:work, cairn:partition, cairn:doctor, cairn:geoip, cairn:forget y cairn:export. Rollup y prune se programan automáticamente a menos que ya estén programados, y en hosts sin cron, una pequeña fracción de las solicitudes realiza el trabajo. La ruta del panel de control está protegida por un gate viewCairn que deniega a todo el mundo fuera del entorno local hasta que se defina. Los controladores del panel son blade (predeterminado), livewire, inertia y none; ni Livewire ni Inertia son obligatorios, y nombrar uno no instalado sirve el panel de Blade. Un beacon opcional mide el tiempo en la página, la profundidad del desplazamiento, el tamaño de la pantalla y los Core Web Vitals.
Alcance y licencia: el README enumera objetivos deliberadamente excluidos, incluyendo el seguimiento de cualquier persona a través de los días, el almacenamiento de direcciones IP, embudos, análisis de cohortes, mapas de calor, reproducción de sesiones, pruebas A/B, atribución más allá del último clic y detección de bots conductuales. Establece que Cairn no puede indicarle si un despliegue cumple con cualquier regulación. El proyecto se describe como estable, siguiendo el versionado semántico desde la 1.0.0, y tiene licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.