آن-پریمائز انسٹالیشن کو IP کے ذریعے محدود کریں
یہ صفحہ آن-پریمائز MonoChat انسٹالیشن چلانے والے آپریٹرز کے لیے ہے۔ یہ بتاتا ہے کہ ویب ایپ کو نیٹ ورک کی سطح پر (nginx یا فائر وال میں) اپنے نیٹ ورکس تک کیسے محدود کیا جائے، بغیر ان سروسز کو روکے جنہیں انٹرنیٹ سے MonoChat کو کال کرنا ضروری ہے۔
MonoChat کی اپنی کوئی IP اجازت فہرست نہیں ہے۔ پابندی آپ کے nginx، لوڈ بیلنسر یا فائر وال میں ہوتی ہے اور پوری انسٹالیشن پر لاگو ہوتی ہے، کسی ایک ورک اسپیس پر نہیں۔
کیا محدود کریں، کیا کھلا رکھیں
| اپنے نیٹ ورکس تک محدود رکھیں | انٹرنیٹ سے قابلِ رسائی رکھیں |
|---|---|
| ویب ایپ اور وہ سب کچھ جو دائیں طرف درج نہیں | نیچے دی گئی جدولوں میں ویب ہک اور کال بیک کے راستے |
DDP/WebSocket اینڈ پوائنٹ جس سے ویب ایپ جڑتی ہے (/websocket) |
ویب UI اور WebSocket اینڈ پوائنٹ کو ایک ساتھ محدود کریں: ایپ دونوں استعمال کرتی ہے۔ باقی سب کے لیے صرف نیچے دیے گئے راستوں کی اجازت دیں اور باقی بلاک کر دیں۔
وہ راستے جنہیں بیرونی سروسز کال کرتی ہیں
نیچے دیا گیا ہر راستہ MonoChat سرور رجسٹر کرتا ہے۔ کسی سیٹنگ سے بننے والا راستہ وہ hookPath ہے جو آپ نے سرور پر کنفیگر کیا (سرور سیٹنگز میں channelConnectors.<name> یا paymentSystemConnectors.<name> کے اندر)؛ لاحقہ کوڈ شامل کرتا ہے۔ صرف وہی کنیکٹرز کھولیں جو آپ استعمال کرتے ہیں۔
چینلز
| راستہ | کال کرنے والا | تعریف کہاں ہے |
|---|---|---|
<hookPath>/webhooks (POST) | omni-message، WhatsApp Cloud، WhatsApp Gupshup، Instagram، Messenger، Telegram، TikTok، Twilio SMS اور Varan OTP کے لیے | packages/app-connectors-om2-*/src/webhooks/webhook.ts; hookPath from channelConnectors.whatsappBusinessVegaCloud, whatsappBusinessVegaGupshup, instagramCastor, messengerRigel, telegramBotRegulus, tikTokTimir, twilioSms, varanOtp |
<hookPath>/webhooks, <hookPath>/sessions, <hookPath>/messages (POST) | آپ کے اپنے سسٹمز، Messages API چینل کے ذریعے | channelConnectors.messagesApi.hookPath, packages/app-connectors-messages-api/src/webhooks/webhook.ts |
<hookPath>/message, <hookPath>/info (POST) | Chatwoot | channelConnectors.chatwoot.hookPath, packages/app-connectors-chatwoot/src/webhook.ts |
<hookPath>/inbound (POST) | SIP فراہم کنندہ (جنرک SIP اور Sonitel SIP چینلز) | channelConnectors.genericSip.hookPath, channelConnectors.sonitelSip.hookPath |
/api/facebook/channels/:channelId/flows/:flowId (POST) | WhatsApp، WhatsApp Flows کے لیے | server/api/whatsapp-flow.js |
چینل فراہم کنندگان (Meta، Telegram، TikTok، Twilio) براہِ راست MonoChat کو کال نہیں کرتے۔ وہ omni-message کے ویب ہک لسنر کو کال کرتے ہیں، جو اوپر والے /webhooks راستے پر آگے بھیجتا ہے۔ اگر آپ omni-message خود چلاتے ہیں تو اس کا ویب ہک لسنر انٹرنیٹ سے ان راستوں پر قابلِ رسائی ہونا چاہیے: /webhooks/meta-messenger، /webhooks/instagram-business، /webhooks/wab-cloud، /webhooks/wab-gupshup/:channelId، /webhooks/wab-360-dialog/:channelId، /webhooks/telegram-bot/:channelId، /webhooks/tiktok اور /webhooks/twilio-sms/:channelId (omni-message میں apps/webhook-listener/src/modules/webhook-listeners/webhook-listeners.controller.ts)۔ MonoChat خود بھی omni-message کے لیے اوپر والے /webhooks راستوں پر قابلِ رسائی ہونا چاہیے۔
ادائیگی کے سسٹمز
ادائیگی فراہم کنندگان گاہک کے ادائیگی کرنے پر کال بیک کرتے ہیں، اور بعد میں گاہک کو واپس MonoChat بھیجتے ہیں۔ دونوں کا آپ کے نیٹ ورک کے باہر سے کام کرنا ضروری ہے۔
| کنیکٹر | اس کے hookPath (paymentSystemConnectors.<name>.hookPath) کے تحت راستے |
|---|---|
| Stripe | /webhook/:clientId (POST), /return/success/:paymentSystemId, /return/cancel/:paymentSystemId |
| HyperPay | /pay/:clientId/:paymentSystemOrderId, /result/:clientId/:paymentSystemOrderId |
| Mamo | /webhook/:clientId (POST), /return/:clientId/:paymentSystemOrderId |
| Midtrans | /webhook/:clientId (POST), /return/:paymentSystemOrderId |
| Paymob | /webhook/:clientId (POST), /return/:paymentSystemOrderId |
| PayTabs | /callback/:clientId/:paymentSystemOrderId (POST), /return/:paymentSystemOrderId |
| Tabby | /webhook/:clientId (POST), /return/:paymentSystemOrderId/:status |
| Tamara | /webhook/:clientId (POST), /return/:paymentSystemOrderId/:status |
| Tap | /webhook/:clientId (POST), /return/:clientId/:paymentSystemOrderId |
| Telr | /webhook/:clientId/:paymentSystemOrderId (POST), /return/:paymentSystemOrderId/:status |
| Ziina | /return/:clientId/:paymentSystemOrderId/:status |
| iyzico | /:transactionId (POST) |
| JCC | /:status |
| MyFatoorah | خود hookPath (POST)، /:paymentSystemOrderId/:status (POST) |
| N-Genius | خود hookPath (POST)، /:paymentSystemOrderId/:status |
| Paywall | /:paymentSystemOrderId/:status |
| UniqoPay | خود hookPath (POST)، /:paymentSystemOrderId/:status (POST) |
| VakıfBank Sanal POS | /:status (GET اور POST) |
| İş Yerim POS | خود hookPath (GET اور POST) |
سب سے آسان اصول یہ ہے کہ آپ جو ادائیگی کنیکٹر استعمال کرتے ہیں اس کے لیے <hookPath> اور اس کے نیچے سب کچھ کھول دیں۔ ہر ماخذ packages/app-connectors-<name>/src/webhook.ts ہے۔
سرور کے دیگر اینڈ پوائنٹس
| راستہ | استعمال | تعریف کہاں ہے |
|---|---|---|
/api/:slug/custom-functions/… (POST) | ایکسیس ٹوکن کے ساتھ HTTP کے ذریعے کسٹم فنکشن کال کرنا | lib/managers/custom-function-sdk/_/server/endpoint.js |
/api/ai-agent/mcp, /api/ai-agent/events (POST) | AI ایجنٹ رنز کا MonoChat کو رپورٹ واپس بھیجنا | server/api/ai-agent.ts |
/api/channels-manager/facebook/auth, /api/channels-manager/tiktok/auth (GET) | Facebook یا TikTok اکاؤنٹ جوڑنے کے بعد واپس آنے والا پاپ اپ | packages/app-managers-channel/src/webhook.ts |
/l/:_id (GET) | مختصر لنکس جو آپ گاہکوں کو بھیجتے ہیں | server/api/short-link.js |
/api/status (GET) | موبائل ایپ سرور اور اس کے سائن اِن اختیارات چیک کرتی ہے | server/api/status.js |
/.well-known/assetlinks.json, /.well-known/apple-app-site-association (GET) | Android اور iOS ایپ لنکس | server/api/assetlinks.js, server/api/apple-app-site-association.js |
اگر آپ ان خصوصیات کو اپنے نیٹ ورک کے باہر سے استعمال کرتے ہیں تو /api/:slug/custom-functions، /api/ai-agent، /l/ اور چینل کے دونوں پاپ اپ راستے کھولیں۔ چینل کے پاپ اپ راستے اکاؤنٹ جوڑنے والے شخص کے براؤزر میں کھلتے ہیں، اس لیے اگر چینلز صرف آپ کے نیٹ ورک کے لوگ جوڑتے ہیں تو یہ محدود رہ سکتے ہیں۔ /api/status اور دونوں /.well-known فائلیں صرف تب کھولیں جب آپ کے ایجنٹ MonoChat موبائل ایپ نیٹ ورک کے باہر سے استعمال کرتے ہوں۔
فراہم کنندہ کے ذریعے سائن اِن (OAuth)
جب سائن اِن فراہم کنندہ براؤزر کو واپس MonoChat پر ری ڈائریکٹ کرتا ہے تو یہ سائن اِن کرنے والے شخص کی عام براؤزر درخواست ہوتی ہے، اس لیے اس پر ویب ایپ جیسی ہی پابندی لاگو ہوتی ہے۔ ری ڈائریکٹ کے راستے ان لوگوں کے لیے قابلِ رسائی رکھیں جو اس طرح سائن اِن کرتے ہیں۔ یہ راستے سرور سیٹنگز میں public.oauth.<provider> کے اندر redirectPath کی قدریں ہیں (ڈیفالٹ مثالیں /api/oauth/google/redirect، /api/oauth/microsoft/redirect، /api/oauth/facebook/redirect اور /api/oauth/apple/redirect ہیں)۔ Apple سائن اِن براؤزر کو POST کے ذریعے واپس بھیجتا ہے (responseMode: form_post)، جسے وہی راستہ قبول کرتا ہے۔ موبائل ایپ کے لیے سرور /api/oauth/facebook/mobile، /api/oauth/microsoft/mobile اور /auth/oauth-callback/<provider> کا جواب بھی دیتا ہے (server/configs/oauth/mobile.ts)۔
اگر آپ Microsoft Marketplace انٹیگریشن استعمال کرتے ہیں تو microsoftMarketplace.redirectWebhookPath میں موجود راستہ Microsoft Marketplace کی درخواست وصول کرتا ہے اور انٹرنیٹ سے قابلِ رسائی ہونا چاہیے (server/configs/microsoft-marketplace/webook.ts)۔
پراکسی کے ذریعے کلائنٹ کا اصل IP آگے بھیجیں
MonoChat سیشنز اور اسٹیٹس لاگز کے لیے کلائنٹ IP ریکارڈ کرتا ہے۔ ریورس پراکسی یا لوڈ بیلنسر کے پیچھے، جب تک آپ اصل ایڈریس آگے نہ بھیجیں، اسے پراکسی کا ایڈریس نظر آتا ہے۔
- nginx (یا اپنے لوڈ بیلنسر) سے اصل ایڈریس
X-Forwarded-Forہیڈر میں بھجوائیں، مثلاًproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;۔ - MonoChat سرور پر ماحولیاتی متغیر
HTTP_FORWARDED_COUNTکو ایپ کے آگے موجود پراکسیز کی تعداد پر سیٹ کریں۔ اسے Meteor فریم ورک پڑھتا ہے، MonoChat کا کوڈ نہیں، اس لیے یہ آپ کی ڈیپلائمنٹ سیٹنگز میں رکھا جاتا ہے، سیٹنگز JSON میں نہیں۔
اپنی سیٹ اپ کی جانچ کریں
- ایسے نیٹ ورک سے جس کی اجازت نہیں، ویب ایپ کھولیں۔ اسے مسترد ہونا چاہیے۔
- اجازت یافتہ نیٹ ورک سے سائن اِن کریں اور ان باکس کھولیں۔ پیغامات لوڈ ہونے چاہییں، جس سے ثابت ہوتا ہے کہ WebSocket اینڈ پوائنٹ آپ کے لیے کھلا ہے۔
- اپنے نیٹ ورک کے باہر سے کسی منسلک چینل پر ٹیسٹ پیغام بھیجیں اور تصدیق کریں کہ وہ ان باکس میں پہنچ گیا۔
- چھوٹے ٹیسٹ آرڈر کے لیے ادائیگی کا لنک بنائیں، ادائیگی کریں، اور تصدیق کریں کہ آرڈر ادا شدہ دکھائی دیتا ہے۔
اپنے پراکسی اصولوں میں ہر تبدیلی کے بعد راستوں کی جانچ کریں۔ بلاک شدہ ویب ہک راستہ MonoChat میں کوئی خرابی نہیں دکھاتا: پیغامات اور ادائیگی کی تصدیقیں بس آنا بند ہو جاتی ہیں۔