डेव्ह लॉग: MCP, ईमेल ट्रॅकिंग आणि मेनू स्ट्रक्चर
मी आजचा दिवस MCP सर्व्हर्स, ऑटोमेटेड ईमेल ट्रॅकिंग आणि स्केलेबल ॲडमिन मेनू तयार करण्यात घालवला.
या कामातून मिळालेले काही महत्त्वाचे धडे खालीलप्रमाणे आहेत.
MCP सर्व्हर सुरक्षा
मी एक जेनेरिक MCP टूलबॉक्स तयार केला आणि अनेक एंटरप्राइझ ॲप्समध्ये सर्व्हर्स तैनात केले. तुमच्या सिस्टमशी संवाद साधू शकणारे एजंट्स तयार करताना, या नियमांचे पालन करा:
- एजंट्सना 'read' टूल्स सहज उपलब्ध करून द्या.
- 'write' टूल्स मर्यादित प्रमाणात द्या.
- प्रत्येक 'write' कृती मानवी परवानगीने (human-gated runbook) होणे अनिवार्य करा.
- तुमच्या 'create-user' टूल्समध्ये पासवर्ड हॅश करा. कधीही प्लेनटेक्स्ट (plaintext) साठवू नका.
- ऑडिट लॉगसाठी पब्लिक UUIDs वापरा. अंतर्गत डेटाबेस आयडी (internal database IDs) कधीही उघड करू नका.
- युजर कॉन्टेक्स्टसाठी फॉलबॅक (fallback) वापरा. एजंट HTTP किंवा STDIO वापरू शकतो. तुमचा कोड दोन्ही हाताळतो याची खात्री करा.
मॅन्युअल काम न करता ईमेल ट्रॅकिंग
मी ईमेल ओपन आणि क्लिक्स आपोआप ट्रॅक करणारी एक प्रणाली तयार केली आहे. डेव्हलपर्सना प्रत्येक ईमेलमध्ये ट्रॅकिंग पिक्सेल जोडायला लावू नका. त्याऐवजी, मेल-सेंडिंग लिसनर (mail-sending listener) वापरा.
- लिसनर मेसेज इंटरसेप्ट करतो.
- तो HTML मध्ये ट्रॅकिंग पिक्सेल इंजेक्ट करतो.
- तो क्लिक ट्रॅकिंगसाठी सर्व लिंक्स रॅप (wrap) करतो.
- तो सोप्या कोरिलेशनसाठी मेटाडेटा हॅश जोडतो.
दोन महत्त्वाच्या गोष्टी:
Mail::raw()टाळा. यामुळे HTML रीरायटिंग पाथ वगळला जातो. ट्रॅकिंग व्यवस्थित चालण्यासाठी योग्य HTML Mailables वापरा.- ट्रॅकिंग बाय डिफॉल्ट "on" ठेवा. जर वापरकर्त्यांना ते मॅन्युअली सुरू करावे लागले, तर ते विसरतील.
स्केलेबल ॲडमिन मेनू
जेव्हा तुम्ही अनेक ॲप्समध्ये मेनू व्यवस्थापित करता, तेव्हा एक मोठी फाईल वापरू नका. प्रत्येक ग्रुपसाठी लहान बिल्डर क्लासेस वापरा.
- प्रत्येक ग्रुपसाठी एक क्लास तयार करा (उदा. Settings, User Management).
- प्रत्येक क्लास स्वतःचे आयटम्स आणि आवश्यक परवानग्या (permissions) घोषित करतो.
- यामुळे तुमचे नेव्हिगेशन डिक्लेरेटिव्ह (declarative) राहते.
- लांब लेबल्स कंपोनंटच्या आत ट्रंकेट (truncate) करा, प्रत्येक आयटमसाठी वेगळे करू नका.
- टूल्स दोन तपासण्यांच्या आधारे नियंत्रित करा: युजर परवानग्या आणि विशिष्ट ॲप एडिशन.
मोठा दृष्टिकोन
उद्दिष्ट हे आहे की सेफ्टी नेट (safety net) स्वयंचलित करणे.
जर एखादे डायग्नोस्टिक टूल उपयुक्त असेल, तर ते बाय डिफॉल्ट सुरू ठेवा. जर तुम्हाला ते सुरू करायचे आहे हे लक्षात ठेवावे लागले, तर रात्री २ वाजता सिस्टम फेल झाल्यावर ते तुमच्याकडे नसेल. तुमचे धडे तुमच्या टूल्समध्येच समाविष्ट करा जेणेकरून तुम्हाला ते पुन्हा शिकावे लागणार नाही.