عن المشروع

Cairn هي حزمة Composer تضيف تحليلات الويب مباشرة داخل تطبيق Laravel. يتم وصف التثبيت بأنه يتطلب أمر composer require واحد يليه php artisan migrate، وبعد ذلك تتوفر لوحة التحكم على المسار /cairn. وبما أن التتبع يعمل داخل التطبيق بدلاً من خلال وسوم المتصفح، فإنه يمكنه تقديم تقارير عن أسماء المسارات (route names)، ونماذج Eloquent، والمستخدمين المصادق عليهم. نموذج الخصوصية: يتم تحديد الزوار بواسطة salted hash يتم إعادة توليده من بايتات عشوائية جديدة كل 24 ساعة، مع تدمير الـ salt السابق. يوضح ملف README العواقب: لا يمكن حساب الزوار العائدين، وتعتبر رحلات المستخدم متعددة الأيام وإسناد النقاط المتعددة (multi-touch attribution) مستحيلة، كما لا يوجد تتبع عبر الأجهزة. في المقابل، لا يخزن التكوين الافتراضي أي شيء على جهاز الزائر، ولا يحتفظ بأي عنوان IP في قاعدة البيانات أو السجلات أو النسخ الاحتياطية، ولا يتطلب لافتة موافقة على ملفات تعريف الارتباط؛ حيث إن أي اختراق لجدول التحليلات سيسرب أعداداً وليس أشخاصاً. هناك إعدادان اختياريان يغيران ذلك وهما معطلان افتراضياً: privacy.track_user_id ينسب الإدخالات إلى المستخدمين المسجلين، و privacy.durable_identity يستبدل الـ hash الدوار بملف تعريف ارتباط. كما أن تقارير الدول معطلة افتراضياً وتستخدم ملف MaxMind GeoLite2 محلي يتم تنزيله عبر cairn:geoip بدلاً من البحث لدى طرف ثالث لكل طلب. لوحة التحكم والتقارير: لوحة التحكم عبارة عن Blade يتم رندرتها على الخادم، وتعمل بدون JavaScript، وتستخدم الروابط للتصفية ومخططات SVG مدمجة يتم حسابها على الخادم، وتضع جدولاً أسفل كل مخطط. تتوفر 18 أداة (widget) افتراضياً وثلاث أدوات إضافية يمكن تفعيلها بسطر واحد في التكوين. الأدوات عبارة عن فئات (classes) يمكن إعادة ترتيبها أو إزالتها أو اشتقاق فئات منها، بما في ذلك أداة الأبعاد للجداول المصنفة. تمر كل الواجهات، بما في ذلك لوحة التحكم و API وبطاقات Pulse وتصدير CSV، عبر طبقة استعلام واحدة. يدعم منشئ التقارير مقاييس مثل الزوار ومشاهدات الصفحات ومعدل الارتداد (bounce rate) مجمعة حسب الأبعاد مثل المسار، مع مقارنة الفترات والترتيب والحدود. يتم إعادة حساب المقاييس المشتقة من مكوناتها المخزنة عند المستوى المعروض بدلاً من حساب المتوسط، وطلب شيء لم يتم تجميعه (rolled up) يؤدي إلى ظهور خطأ بدلاً من مسح الإدخالات الخام. العمليات: المتطلبات هي PHP 8.2+، و Laravel 12 أو 13، و MySQL 8+ أو MariaDB 10.6+ أو PostgreSQL 13+. يعتبر Redis اختيارياً، ويُذكر أن كل ميزة مدعومة بـ Redis لها محرك مدعوم بقاعدة بيانات بنفس الدقة تم اختباره مقابل نفس المجموعة. لا توجد خطوة بناء لـ npm أو Vite أو Node. تشمل أوامر Artisan: cairn:rollup و cairn:prune و cairn:work و cairn:partition و cairn:doctor و cairn:geoip و cairn:forget و cairn:export. يتم جدولة rollup و prune تلقائياً ما لم تكن مجدولة بالفعل، وفي المضيفات التي لا تتوفر فيها cron، يقوم جزء صغير من الطلبات بتنفيذ العمل. مسار لوحة التحكم محمي بواسطة بوابة viewCairn تمنع الجميع خارج البيئة المحلية حتى يتم تعريفها. محركات لوحة التحكم هي blade (الافتراضي)، و livewire، و inertia، و none؛ ولا يشترط وجود Livewire أو Inertia، وتسمية محرك غير مثبت تؤدي إلى عرض لوحة تحكم Blade. هناك beacon اختياري يقيس الوقت المستغرق في الصفحة، وعمق التمرير، وحجم الشاشة، و Core Web Vitals. النطاق والترخيص: يدرج ملف README أهدافاً متعمدة غير مطلوبة، بما في ذلك تتبع أي شخص عبر الأيام، وتخزين عناوين IP، والأقماع (funnels)، وتحليل المجموعات (cohort analysis)، والخرائط الحرارية، وإعادة تشغيل الجلسات، واختبار A/B، والإسناد لما بعد النقرة الأخيرة، والكشف السلوكي عن البوتات. وينص على أن Cairn لا يمكنها إخبارك ما إذا كان النشر يتوافق مع أي لائحة تنظيمية. يوصف المشروع بأنه مستقر، ويتبع الإصدار الدلالي (semantic versioning) بدءاً من 1.0.0، وهو مرخص بموجب رخصة MIT.