منصوبے کے بارے میں
Cairn ایک Composer پیکیج ہے جو براہ راست Laravel ایپلی کیشن کے اندر ویب اینالیٹکس کا اضافہ کرتا ہے۔ اس کی انسٹالیشن کے لیے صرف ایک composer require اور پھر php artisan migrate کی ضرورت ہوتی ہے، جس کے بعد /cairn پر ڈیش بورڈ دستیاب ہو جاتا ہے۔ چونکہ ٹریکنگ براؤزر ٹیگ کے بجائے ایپلی کیشن کے اندر چلتی ہے، اس لیے یہ route names، Eloquent models اور تصدیق شدہ صارفین کی رپورٹنگ کر سکتا ہے۔
پرائیویسی ماڈل: وزیٹرز کی شناخت ایک salted hash کے ذریعے کی جاتی ہے جو ہر 24 گھنٹے بعد نئے رینڈم بائٹس سے دوبارہ تیار ہوتا ہے، اور پچھلا سالٹ ختم کر دیا جاتا ہے۔ README میں اس کے نتائج واضح کیے گئے ہیں: واپس آنے والے وزیٹرز کی گنتی نہیں کی جا سکتی، کئی دنوں پر محیط سفر اور multi-touch attribution ناممکن ہیں، اور کراس ڈیوائس ٹریکنگ موجود نہیں ہے۔ اس کے بدلے میں، ڈیفالٹ کنفیگریشن وزیٹر کے ڈیوائس پر کچھ بھی محفوظ نہیں کرتی، ڈیٹا بیس، لاگز یا بیک اپ میں کوئی IP ایڈریس نہیں رکھتی، اور اسے کوکی کنسینٹ بینر کی ضرورت نہیں ہوتی؛ اینالیٹکس ٹیبل کے کسی بھی سیکیورٹی Breach کی صورت میں لوگوں کے بجائے صرف گنتی (counts) لیک ہوگی۔ دو اختیاری سیٹنگز اسے تبدیل کرتی ہیں جو ڈیفالٹ طور پر بند ہوتی ہیں: privacy.track_user_id انٹریز کو سائن-ان صارفین سے منسوب کرتا ہے، اور privacy.durable_identity گھومنے والے ہیش کو کوکی سے بدل دیتا ہے۔ کنٹری رپورٹنگ بھی ڈیفالٹ طور پر بند ہے اور یہ ہر ریکویسٹ پر تھرڈ پارٹی لک اپ کے بجائے cairn:geoip کے ذریعے ڈاؤن لوڈ کی گئی مقامی MaxMind GeoLite2 فائل کا استعمال کرتی ہے۔
ڈیش بورڈ اور رپورٹنگ: ڈیش بورڈ سرور رینڈرڈ Blade ہے، جو بغیر JavaScript کے پڑھا جا سکتا ہے، فلٹرز کے لیے لنکس اور سرور کے ذریعے کمپیوٹڈ inline SVG چارٹس استعمال کرتا ہے، اور ہر چارٹ کے نیچے ایک ٹیبل رکھتا ہے۔ ڈیفالٹ طور پر اٹھارہ وجٹس (widgets) فراہم کیے جاتے ہیں اور مزید تین ایک کنفیگ لائن کے ذریعے حاصل کیے جا سکتے ہیں۔ وجٹس ایسی کلاسز ہیں جنہیں ترتیب دیا جا سکتا ہے، ہٹایا جا سکتا ہے یا subclass کیا جا سکتا ہے، بشمول رینکڈ ٹیبلز کے لیے dimension widget۔ ہر سطح، بشمول ڈیش بورڈ، API، Pulse کارڈز اور CSV ایکسپورٹ، ایک ہی query layer سے گزرتی ہے۔ ایک رپورٹ بلڈر ایسی میٹرکس کو سپورٹ کرتا ہے جیسے وزیٹرز، پیج ویوز اور bounce rate جنہیں route جیسے dimensions کے مطابق گروپ کیا جا سکتا ہے، جس میں مدت کا موازنہ، ترتیب اور حدود شامل ہیں۔ Derived metrics کو ان کے اسٹورڈ اجزاء سے اس لیول پر دوبارہ کمپیوٹ کیا جاتا ہے جہاں وہ دکھائے جاتے ہیں بجائے اس کے کہ ان کی اوسط نکالی جائے، اور ایسی چیز کی درخواست کرنا جو کبھی رول اپ نہیں ہوئی تھی، خام Entries کو اسکین کرنے کے بجائے ایرر (throw) دیتا ہے۔
آپریشنز: ضروریات میں 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 میں جان بوجھ کر رکھے گئے غیر اہداف (non-goals) کی فہرست ہے، بشمول دنوں کے درمیان کسی کا پیچھا کرنا، IP ایڈریس اسٹور کرنا، funnels، cohort analysis، heatmaps، session replay، A/B testing، آخری کلک سے آگے attribution، اور behavioural bot detection۔ یہ واضح کرتا ہے کہ Cairn آپ کو یہ نہیں بتا سکتا کہ آیا کوئی تعیناتی (deployment) کسی بھی ریگولیشن کی تعمیل کرتی ہے یا نہیں۔ پروجیکٹ کو مستحکم (stable) قرار دیا گیا ہے، جو 1.0.0 سے semantic versioning پر عمل کرتا ہے، اور یہ MIT لائسنس کے تحت ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.