# جاں نکلنے والے ویب ہُکس

Canonical page: https://phishdestroy.github.io/TgWitness/ur/docs/reference/webhooks/

ایچ ایم اے سی سگنیچرز، دوبارہ کوششوں اور ترسیل کی حیثیت کے ساتھ HTTPS وصول کنندگان کو محدود واقعات بھیجیں۔

**موجودہ مرکزی:** سورس چیک آؤٹ استعمال کریں؛ 0.7.0 پورٹیبل پریویو اس خصوصیت سے پہلے کا ہے۔

[ورک فلو گائیڈ](https://phishdestroy.github.io/TgWitness/docs/archive/) · [ویکی](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md)

منتخب ورک اسپیس میں Open **Integrations → Outgoing webhooks** کھولیں۔ ایک HTTPS ریسیور شامل کریں، کلیکٹر/میڈیا/ایکسپورٹ ایونٹس منتخب کریں، اور اختیاری طور پر نئے مشاہدات اور تبدیلیوں کے لیے چیٹس منتخب کریں۔ پیغام کا متن ڈیفالٹ طور پر بند ہوتا ہے۔ اقتباسات فعال کرنے سے پیغام-تبدیلی ایونٹس میں زیادہ سے زیادہ 1,000 حروف شامل ہوتے ہیں؛ خام ٹیلیگرام فیلڈز اور اسناد کبھی بھی بھیجے نہیں جاتے۔

ایک بار HMAC سیکرٹ کو وصول کنندہ کی محفوظ کنفیگریشن میں کاپی کریں۔ یہ TgWitness کے والٹ میں انکرپٹ ہوتا ہے اور پینل سے بازیاب نہیں کیا جا سکتا۔ اسے روٹ کرنے کے لیے منزل کو ہٹا کر دوبارہ بنائیں۔ **مصنوعی ٹیسٹ** قطاروں کو بغیر کسی چیٹ مواد کے ایک ٹیسٹ **بھیجیں**؛ اس کے نتیجے کو دیکھنے کے لیے ڈیلیوری اسٹیٹس کو ریفریش کریں۔

ڈیلیوری Apprise کے ساتھ موجودہ نوٹیفیکیشن لوپ کو بڑھاتی ہے۔ یہ ورک اسپیس کے بیرونی راستے اور موجودہ نجی منزل کی پابندیوں کا استعمال کرتی ہے۔ اس کے بعد کوئی براہِ راست فال بیک یا ری ڈائریکٹ نہیں ہوتا۔ URLs میں کریڈینشلز، کوئری اسٹرنگز یا فریگمنٹس شامل نہیں ہونے چاہئیں؛ نجی پتے کے لیے سرور سطح کے نیٹ ورک آپٹ-ان درکار ہے، نہ کہ ایسی سیٹنگ جسے پینل کا صارف بائی پاس کر سکے۔

## پی لوڈ اور دستخط

اسکیما: [`tgwitness.webhook/1`](https://github.com/phishdestroy/TgWitness/blob/main/integrations/webhook.schema.json)۔ ہر پے لوڈ میں `event_id`، `timestamp`، `workspace`، `type`، `synthetic`، اور کاؤنٹرز شامل ہوتے ہیں۔ جرنل پر مبنی ایونٹس میں ان کا ترتیب اور ہیش شامل ہوتا ہے۔ مکمل ایکسپورٹ کی تکمیل اور مصنوعی ٹیسٹ ڈیلیوری ایونٹس ہیں، جن میں کوئی من گھڑا ہوا دستخط شدہ جرنل حوالہ نہیں ہوتا۔ ٹیلیگرام حذف کرنے کے نوٹس اور `missing_on_recheck` الگ الگ اقسام کے طور پر رہتے ہیں۔

`X-TgWitness-Signature` ہیڈر `t=UNIX_SECONDS,v1=HEX_HMAC_SHA256` ہے۔ HMAC کو بالکل صحیح بائٹس `timestamp + "." + raw_request_body` پر کیلکولیٹ کریں، دیکھائے گئے سیکرٹ کو UTF-8 بائٹس کے طور پر استعمال کرتے ہوئے۔ دستخطوں کا موازنہ مستقل وقت میں کریں باڈی کو پارس کرنے یا اس پر عمل کرنے سے پہلے۔ اپنی گھڑی سے پانچ منٹ سے زیادہ کے ٹائم اسٹیمپ مسترد کریں۔ ٹائم اسٹیمپ ہر ڈیلیوری کی کوشش پر تازہ کاری کیا جاتا ہے۔

`event_id` کو پائیدار اسٹوریج میں idempotency کلید کے طور پر استعمال کریں، ضمنی اثرات سے پہلے ایک ایٹمی منفرد پابندی کے ساتھ۔ صرف ایک درست دستخط حالیہ درخواست کے دوبارہ چلائے جانے سے نہیں روکتا۔ پراسیس شدہ IDs کو کم از کم پوری ریٹری ونڈو کے لیے محفوظ رکھیں؛ اگر وصول کنندہ ذخیرہ شدہ واقعات کو دوبارہ پراسیس کر سکتا ہے تو انہیں زیادہ دیر تک برقرار رکھیں۔

## دوبارہ کوششیں

ڈیلیوریز HTTP درخواستوں سے پہلے پائیدار طور پر قطار میں رکھی جاتی ہیں۔ یہ 'کم از کم ایک بار' (at-least-once) معنیات استعمال کرتی ہیں: ایک گمشدہ تصدیق یا دوبارہ آغاز ایک ہی ID کے ساتھ کسی ایونٹ کو دوبارہ پہنچا سکتا ہے۔ 15 سیکنڈ سے شروع ہو کر اور ایک گھنٹے تک محدود رہنے کے ساتھ، نمایاں طور پر بڑھتے وقفوں کے ساتھ آٹھ کوششیں کی جاتی ہیں۔ کامیابی کے لیے 2xx جواب درکار ہوتا ہے۔ ختم شدہ جابز ایک واضح خرابی چھوڑ جاتے ہیں؛ دوبارہ کوششوں کے ختم ہونے کے بعد ترسیل کی ضمانت نہیں ہوتی۔

قطار میں 1,000 ڈیلیوریز رکھی جا سکتی ہیں۔ جب یہ بھر جائے تو جرنل کے واقعات کی اسکیننگ رک جاتی ہے اور جگہ دستیاب ہونے پر دوبارہ شروع ہو جاتی ہے۔ ایک مکمل ایکسپورٹ کی تکمیل جو قطار میں نہیں رکھی جا سکتی، ایک واضح قطاری خرابی ظاہر کرتی ہے۔ ہر نوٹیفکیشن پاس پر پانچ تک ترسیلات کی کوشش کی جاتی ہے، اور تازہ ترین 100 کوشش کے ریکارڈز محفوظ رکھے جاتے ہیں۔ منزل کو ہٹانے سے اس کی زیر التواء ترسیلات بھی ہٹا دی جاتی ہیں۔

## n8n مثال

[مثال کے طور پر ورک فلو کو](https://github.com/phishdestroy/TgWitness/blob/main/integrations/n8n-tgwitness.json) درآمد کریں۔ یہ غیر فعال ہے اور اس میں کوئی سیکرٹس یا نیچے کی جانب کوئی ایکشنز شامل نہیں ہیں۔ n8n ورکر ماحول میں `TGWITNESS_WEBHOOK_SECRET` سیٹ کریں، اس ماحول کو رسائی کی اجازت دیں، اور کوڈ نوڈ کے لیے `crypto` بلٹ ان کی اجازت دیں۔ یہ مثال ویب ہُک نوڈ کے raw-body آپشن کا استعمال کرتی ہے، دستخط/تازگی کی جانچ کرتی ہے، اور تصدیق شدہ ایونٹس کی تصدیق کرتی ہے۔ یہ نوڈ کے [دستاویزی نفاذ](https://github.com/n8n-io/n8n/blob/master/packages/nodes-base/nodes/Webhook/Webhook.node.ts) سے مطابقت رکھتا ہے۔

SIEM لکھائی یا نوٹیفیکیشنز شامل کرنے سے پہلے، `event_id` کی کلید کے ساتھ پائیدار آئیڈیمپوٹنسی اسٹوریج شامل کریں۔ آپ نے بھیجنے کے لیے منتخب کردہ ڈیٹا کے مطابق n8n ورک فلو کی ترمیم اور ایگزیکیوشن لاگ کو برقرار رکھنے پر پابندی لگائیں۔ TgWitness کوئی ان باؤنڈ کمانڈز شامل نہیں کرتا۔
