इस प्रोजेक्ट के बारे में
Cairn एक Composer पैकेज है जो सीधे Laravel एप्लिकेशन के भीतर वेब analytics जोड़ता है। इसकी इंस्टॉलेशन प्रक्रिया में एक 'composer require' और उसके बाद 'php artisan migrate' शामिल है, जिसके बाद /cairn पर एक डैशबोर्ड उपलब्ध हो जाता है। चूंकि ट्रैकिंग ब्राउज़र टैग के बजाय एप्लिकेशन के अंदर चलती है, इसलिए यह route names, Eloquent models और authenticated users की रिपोर्ट दे सकता है।
प्राइवेसी मॉडल: विज़िटर्स की पहचान एक साल्टेड हैश (salted hash) द्वारा की जाती है जिसे हर 24 घंटे में नए रैंडम बाइट्स से पुनर्जीवित किया जाता है, और पिछला साल्ट नष्ट कर दिया जाता है। README इसके परिणामों को स्पष्ट करता है: लौटने वाले विज़िटर्स की गिनती नहीं की जा सकती, बहु-दिवसीय यात्राएं और मल्टी-टच एट्रिब्यूशन असंभव हैं, और क्रॉस-डिवाइस ट्रैकिंग मौजूद नहीं है। इसके बदले में, डिफॉल्ट कॉन्फ़िगरेशन विज़िटर के डिवाइस पर कुछ भी स्टोर नहीं करता, डेटाबेस, लॉग या बैकअप में कोई IP एड्रेस नहीं रखता, और किसी कुकी-सहमति बैनर की आवश्यकता नहीं होती; एनालिटिक्स टेबल के ब्रीच होने पर लोगों के बजाय केवल काउंट्स लीक होंगे। दो वैकल्पिक सेटिंग्स इसे बदलती हैं और डिफॉल्ट रूप से बंद रहती हैं: privacy.track_user_id प्रविष्टियों को साइन-इन उपयोगकर्ताओं से जोड़ता है, और privacy.durable_identity रोटेटिंग हैश को कुकी से बदल देता है। कंट्री रिपोर्टिंग भी डिफॉल्ट रूप से बंद है और यह प्रति-अनुरोध थर्ड-पार्टी लुकअप के बजाय 'cairn:geoip' के साथ डाउनलोड की गई स्थानीय MaxMind GeoLite2 फ़ाइल का उपयोग करता है।
डैशबोर्ड और रिपोर्टिंग: डैशबोर्ड सर्वर-रेंडर्ड Blade है, जो बिना JavaScript के पढ़ा जा सकता है, फ़िल्टर के लिए लिंक और सर्वर-कंप्यूटेड इनलाइन SVG चार्ट का उपयोग करता है, और हर चार्ट के नीचे एक टेबल रखता है। डिफॉल्ट रूप से अठारह विजेट्स मिलते हैं और तीन और एक कॉन्फ़िगरेशन लाइन से जोड़े जा सकते हैं। विजेट्स ऐसी क्लासेस हैं जिन्हें पुनर्व्यवस्थित, हटाया या सबक्लास किया जा सकता है, जिसमें रैंक की गई तालिकाओं के लिए एक डायमेंशन विजेट शामिल है। डैशबोर्ड, API, Pulse कार्ड और CSV एक्सपोर्ट सहित हर सतह एक ही क्वेरी लेयर से गुजरती है। एक रिपोर्ट बिल्डर route जैसे डायमेंशन्स द्वारा ग्रुप किए गए विज़िटर्स, पेजव्यू और बाउंस रेट जैसे मेट्रिक्स का समर्थन करता है, जिसमें पीरियड तुलना, ऑर्डरिंग और लिमिट्स शामिल हैं। व्युत्पन्न मेट्रिक्स (Derived metrics) को उनके स्टोर किए गए घटकों से प्रदर्शित स्तर पर पुनर्गणना किया जाता है, न कि औसत निकाला जाता है, और ऐसी चीज़ का अनुरोध करना जो कभी रोल-अप नहीं हुई थी, रॉ प्रविष्टियों को स्कैन करने के बजाय एरर थ्रो करता है।
ऑपरेशन्स: आवश्यकताओं में 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 डैशबोर्ड प्रदर्शित होता है। एक वैकल्पिक बीकन पेज पर समय, स्क्रॉल डेप्थ, स्क्रीन साइज और Core Web Vitals को मापता है।
स्कोप और लाइसेंस: README जानबूझकर तय किए गए गैर-लक्ष्यों (non-goals) को सूचीबद्ध करता है, जिसमें दिनों तक किसी का पीछा करना, IP एड्रेस स्टोर करना, फनल्स, कोहोर्ट विश्लेषण, हीटमैप्स, सेशन रिप्ले, A/B टेस्टिंग, लास्ट क्लिक से आगे एट्रिब्यूशन और व्यवहारिक बॉट डिटेक्शन शामिल हैं। यह बताता है कि Cairn आपको यह नहीं बता सकता कि कोई परिनियोजन (deployment) किसी नियम का पालन करता है या नहीं। प्रोजेक्ट को स्थिर बताया गया है, जो 1.0.0 से सिमेंटिक वर्जनिंग का पालन करता है, और यह MIT लाइसेंस के तहत है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.