Sobre o projeto
Cairn é um pacote Composer que adiciona web analytics diretamente dentro de uma aplicação Laravel. A instalação é descrita como um único composer require seguido por php artisan migrate, após o qual um dashboard fica disponível em /cairn. Como o rastreamento é executado dentro da aplicação, em vez de através de uma tag de navegador, ele pode reportar nomes de rotas, modelos Eloquent e usuários autenticados.
Modelo de privacidade: os visitantes são identificados por um hash com salt que é regenerado a partir de novos bytes aleatórios a cada 24 horas, com o salt anterior destruído. O README detalha as consequências: visitantes recorrentes não podem ser contados, jornadas de vários dias e atribuição multi-touch são impossíveis, e o rastreamento entre dispositivos não existe. Em troca, a configuração padrão não armazena nada no dispositivo do visitante, não mantém endereços IP no banco de dados, logs ou backups, e não necessita de banner de consentimento de cookies; uma violação da tabela de analytics vazaria contagens em vez de pessoas. Duas configurações opcionais alteram isso e estão desligadas por padrão: privacy.track_user_id atribui entradas a usuários logados, e privacy.durable_identity substitui o hash rotativo por um cookie. O relatório de país também está desligado por padrão e utiliza um arquivo local MaxMind GeoLite2 baixado com cairn:geoip, em vez de uma consulta a terceiros por requisição.
Dashboard e relatórios: o dashboard é Blade renderizado no servidor, funciona sem JavaScript, utiliza links para filtros e gráficos SVG inline computados no servidor, e coloca uma tabela sob cada gráfico. Dezoito widgets são fornecidos por padrão e mais três estão a apenas uma linha de configuração de distância. Os widgets são classes que podem ser reordenadas, removidas ou subclassificadas, incluindo um widget de dimensão para tabelas ranqueadas. Todas as superfícies, incluindo dashboard, API, cartões do Pulse e exportação CSV, passam por uma única camada de consulta. Um construtor de relatórios suporta métricas como visitantes, pageviews e taxa de rejeição agrupadas por dimensões como rota, com comparação de período, ordenação e limites. Métricas derivadas são recomputadas a partir de seus componentes armazenados no nível exibido, em vez de serem calculadas por média, e a solicitação de algo que nunca foi consolidado gera um erro em vez de escanear entradas brutas.
Operações: os requisitos são PHP 8.2+, Laravel 12 ou 13, e MySQL 8+, MariaDB 10.6+ ou PostgreSQL 13+. O Redis é opcional, e afirma-se que cada capacidade suportada por Redis possui um driver baseado em banco de dados com a mesma correção, testada contra a mesma suíte. Não há etapa de build de npm, Vite ou Node. Os comandos Artisan incluem cairn:rollup, cairn:prune, cairn:work, cairn:partition, cairn:doctor, cairn:geoip, cairn:forget e cairn:export. Rollup e prune são agendados automaticamente, a menos que já estejam agendados, e em hosts sem cron, uma pequena fração das requisições assume o trabalho. A rota do dashboard é protegida por um gate viewCairn que nega a todos fora do ambiente local até que seja definido. Os drivers de dashboard são blade (padrão), livewire, inertia e none; nem Livewire nem Inertia são obrigatórios, e nomear um não instalado serve o dashboard Blade. Um beacon opcional mede o tempo na página, profundidade de rolagem, tamanho da tela e Core Web Vitals.
Escopo e licença: o README lista deliberadamente não-objetivos, incluindo rastrear qualquer pessoa ao longo de dias, armazenar endereços IP, funis, análise de coorte, heatmaps, replay de sessão, testes A/B, atribuição além do último clique e detecção comportamental de bots. Afirma que o Cairn não pode informar se uma implantação cumpre qualquer regulamentação. O projeto é descrito como estável, seguindo o versionamento semântico a partir de 1.0.0, e possui licença MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.