VPN آپریشن کی تعریف کریں اس سے پہلے کہ API کا موازنہ کریں
کنکشن کنٹرول، پروفائل کی فراہمی، صارف انتظام اور مشاہدہ مختلف API ہیں۔ پہلے شے، عمل اور کامیابی کی شرط کا نام دیں۔
کوئی پروڈکٹ صفحہ کہتا ہے کہ اس میں API ہے، اور انٹیگریشن میٹنگ دوسرے سوال پر رک جاتی ہے۔ کون سا آپریشن، کس شے پر، کس نے بلایا، اور کیا کامیابی سمجھا جاتا ہے؟ پروڈکٹس کا موازنہ کرنے سے پہلے ان چاروں کا جواب دینا عام طور پر آدھے امیدوار ہٹا دیتا ہے۔ یہ باقی موازنے کو بھی ایسی چیز بنا دیتا ہے جسے کوئی ٹیسٹ طے کر سکے۔
«API ہے» کو ایک آپریشن سے بدلیں
API ایک ذریعہ ہے، صلاحیت نہیں۔ REST اینڈ پوائنٹ، مقامی ساکٹ اور کمانڈ لائن ریپر سبھی API کہلا سکتے ہیں، اور وہ یکساں آپریشن فراہم نہیں کرتے۔
دستاویزات دیکھنے سے پہلے آپریشن کو ایک جملے کے طور پر لکھیں۔
مقامی کنکشن شروع کرنا سامنے صارف والا کلائنٹ کی طرف کا عمل ہے۔ ڈیوائس پروفائل جاری کرنا پیچھے انوینٹری والا فراہمی کا عمل ہے۔ صارف کی رسائی بند کرنا آڈٹ نشان والا انتظامی عمل ہے۔ یہ تینوں عام طور پر مختلف اجزاء میں، مختلف ٹیموں کی ملکیت میں، مختلف اختیار کے ساتھ رہتے ہیں۔
چار فیلڈز جو معاہدے کو قابلِ آزمائش بناتی ہیں
ہر آپریشن کے لیے چار فیلڈز بھریں: شے، عمل، بلانے والا اور کامیابی کی شرط۔ کسی فیلڈ کے بغیر معاہدہ صرف ایک خواہش ہے۔
جدول ہی پوری ورک شیٹ ہے:
| Field | Question | Example |
|---|---|---|
| Object | What is being acted on? | One enrolled device |
| Action | Observe, create, change, start, stop, or revoke? | Revoke |
| Caller | Which identity calls it? | Deployment service |
| Success | What observable state proves it? | Future sign-in denied |
کامیابی کی شرط وہ فیلڈ ہے جسے لوگ چھوڑ دیتے ہیں، اور یہی فیصلہ کرتی ہے کہ انٹیگریشن کام کرتی ہے یا نہیں۔ محفوظ سیٹنگ فعال ٹنل نہیں ہے، اور بند شدہ اکاؤنٹ ختم شدہ سیشن نہیں ہے۔
اگر دو آپریشنوں کو مختلف بلانے والے درکار ہوں تو وہ دو انٹیگریشنز ہیں۔ انہیں ایک سروس اکاؤنٹ میں سمو دینا عام طور پر دونوں میں سے کسی کی ضرورت سے زیادہ اختیار دینا ہے۔
انٹرفیس کو اس کی اصل پرت سے ہم آہنگ کریں
OpenVPN کی کمیونٹی کا انتظامی انٹرفیس TCP یا Unix ساکٹ کے ذریعے ڈیمون سے بات کرتا ہے۔ اس کے کمانڈز میں حالت کا مشاہدہ اور ڈیمون کو سگنل شامل ہیں۔
یہ اسے ڈیمون کنٹرول چینل بناتا ہے، ہوسٹ شدہ سبسکرپشن API یا صارف رجسٹریشن سروس نہیں۔ اس کی دستاویزات کو غور سے پڑھنا آپ کو ایسی پرت پر تعمیر کرنے سے بچاتا ہے جو شے کی مالک نہیں۔
وہ دستاویز یہ بھی کہتی ہے کہ پروٹوکول کی اپنی انکرپشن نہیں۔ جو ساکٹ تک پہنچ سکتا ہے وہ ڈیمون کو کنٹرول کر سکتا ہے، اس لیے اسے حساس کنٹرول سمجھیں، میٹرک فیڈ نہیں۔ اسے loopback یا Unix ساکٹ سے باندھیں، اور اگر دور کا بلانے والا ضرورت رکھتا ہو تو محدود بندوبست کے پیچھے رکھیں۔ سہولت کے لیے اسے انٹرنیٹ پر کھولنا کنٹرول چینل کو واقعہ بنا دیتا ہے۔
کال کے بعد رویہ متعین کریں
قبولیت تکمیل کے برابر نہیں۔ ڈیمون ٹنل اٹھنے سے پہلے واپس آ سکتا ہے، اس لیے دستاویزی تکمیل یا ناکامی کے واقعے کا انتظار کریں اور اسے اپنی بھیجی گئی درخواست سے جوڑیں۔
فیصلہ کریں کہ جواب گم ہو جائے تو بلانے والا کیا کرے۔ تخلیق یا دوبارہ کنکشن کو اندھا دھند دہرانا یہ جانچنے کے برابر نہیں کہ پہلی درخواست پہلے ہی اثر کر چکی ہے۔
رسائی ہٹانا کم از کم تین مختلف عمل ہیں: آئندہ سائن اِن روکنا، فعال سیشن ختم کرنا اور اسناد منسوخ کرنا۔ وہی مانگیں جو پالیسی واقعی تقاضا کرتی ہے، اور معاہدے میں بتائیں کہ کون سا کیا ہے۔ بغیر ثبوت ایک کامیاب اکاؤنٹ اپ ڈیٹ کو مکمل منسوخی نہ کہیں۔ یہ فرق واقعے کے دوران، جب گھڑی چل رہی ہو، اہم ہے۔
پائلٹ سے معاہدہ جانچیں
چھوٹے منظور شدہ پائلٹ کو کامیابی، انکار، رکاوٹ اور دوبارہ کوشش کا احاطہ کرنا چاہیے، پھر وہ ایپلیکیشن عمل جس کی اجازت یا انکار ہونا چاہیے۔
ڈیمون سطح کے انٹرفیس کے لیے دو کمانڈز مشاہدے اور سگنل کی مشق کرتے ہیں:
echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505صرف وہی اختیار دیں جو آپریشن کا تقاضا ہے۔ راز روزمرہ لاگز سے باہر رکھیں، اور کافی نجی تفصیل درج کریں تاکہ بتا سکیں کہ کون سا ہدف متاثر ہوا اور کیسے ختم ہوا۔
اس صورت کے لیے بازیابی کا راستہ لکھیں جب خود کنٹرول API ڈاؤن ہو۔ وہ انٹرفیس منتخب کریں جو شے اور اس کے لائف سائیکل کا مالک ہے؛ پروڈکٹ صفحے کے آٹومیشن دعوے اس کا متبادل نہیں۔