# webhooks יוצאים

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

שליחת אירועים מוגדרים למקבלים ב-HTTPS עם חתימות HMAC, ניסיונות חוזרים וסטטוס מסירה.

**עיקרי כרגע:** יש להשתמש ב-checkout מהמקור; גרסת התצוגה המקדימה הניידת 0.7.0 קדמה לתכונה זו.

[מדריך לתהליך העבודה](https://phishdestroy.github.io/TgWitness/docs/archive/) · [ויקי](https://github.com/phishdestroy/TgWitness/blob/main/docs/wiki/Archive-and-Integrations.md)

פתח את **'אינטגרציות' → 'webhooks יוצאים'** בסביבת העבודה הנבחרת. הוסף מקלט HTTPS, בחר אירועי איסוף/מדיה/ייצוא, ובאופן אופציונלי בחר צ'אטים עבור תצפיות ושינויים חדשים. טקסט ההודעה כבוי כברירת מחדל. הפעלת קטעים נבחרים מוסיפה לכל היותר 1,000 תווים לאירועי שינוי הודעות; שדות Telegram גולמיים ו פרטי הזדהות לעולם אינם נשלחים.

העתיקו את המפתח הסודי של HMAC פעם אחת לתוך התצורה המוגנת של המקבל. הוא מוצפן בכספת של TgWitness ואינו ניתן לשליפה מהלוח הבקרה. הסירו ויצרו מחדש יעד כדי לבצע רוטציה. **שלחו** לתורי **בדיקה סינתטיים** בדיקה ללא תוכן צ'אט; רעננו את סטטוס המסירה כדי לראות את התוצאה.

השירות מרחיב את מעגל ההתראות הקיים לצד Apprise. הוא משתמש בנתיב החיצוני של סביבת העבודה ובמגבלות הקיימות על יעדים פרטיים. אין כל מעבר לגיבוי ישיר או הפניה מחדש. כתובות URL אינן רשאיות להכיל פרטי הזדהות, מחרוזות שאילתה או קטעים; כתובות פרטיות דורשות הסכמה ברמת השרת, ולא הגדרה שהמשתמש בלוח הבקרה יכול לעקוף.

## תוכן וחתימה

סכימה: [`tgwitness.webhook/1`](https://github.com/phishdestroy/TgWitness/blob/main/integrations/webhook.schema.json). כל מטען מכיל `event_id`, `timestamp`, `workspace`, `type`, `synthetic`, ומונים. אירועים המבוססים על היומן כוללים את הרצף שלהם ואת ה-hash. השלמת ייצוא מלא ו בדיקות סינתטיות הן אירועי מסירה, ללא הפניה ליומן חתום מומצא. הודעות מחיקה מ-Telegram ו-`missing_on_recheck` נותרות סוגים נפרדים.

כותרת ה-`X-TgWitness-Signature` היא `t=UNIX_SECONDS,v1=HEX_HMAC_SHA256`. חשב HMAC על הבתים המדויקים `timestamp + "." + raw_request_body`, תוך שימוש בסוד המוצג כבתים בפורמט UTF-8. השווה חתימות בזמן קבוע לפני ניתוח או ביצוע פעולה על גוף ההודעה. דחה חותמות זמן המרוחקות יותר מחמש דקות מהשעון שלך. חותמת הזמן מתעדכנת בכל ניסיון מסירה.

השתמש ב-`event_id` כמפתח אידמפוטנטיות באחסון עמיד, עם אילוץ ייחודי אטומי לפני תופעות לוואי. חתימה תקפה כשלעצמה אינה מונעת שידור חוזר של בקשה אחרונה. שמור מזהים שעברו עיבוד לפחות למשך כל חלון הניסיון החוזר; שמור אותם זמן רב יותר אם המקבל יכול לעבד מחדש אירועים מאוחסנים.

## ניסיונות חוזרים

המשלוחים מועמדים בתור באופן קבוע לפני בקשות HTTP. הם משתמשים בסמנטיקה של "לפחות פעם אחת" : אישור שאבד או הפעלה מחדש עלולים לגרום למשלוח אירוע שוב עם אותו מזהה. יש שמונה ניסיונות עם נסיגה אקספוננציאלית, המתחילים ב-15 שניות ומסתיימים בשעה אחת. הצלחה דורשת תגובה מסוג 2xx. משימות שהסתיימו משאירות שגיאה גלויה; המסירה אינה מובטחת לאחר סיום הניסיונות החוזרים.

תור ההעברה מכיל 1,000 העברות. כאשר הוא מלא, סריקת אירועי היומן נעצרת ו מתחדשת לאחר שמתפנה מקום. השלמת ייצוא מלא שאינה ניתנת להכנסה לתור מציגה שגיאת תור גלויה. מתבצעים עד חמישה ניסיונות משלוח לכל מחזור התראות, וה-100 רשומות הניסיונות האחרונות נשמרות. הסרת יעד מובילה גם להסרת המשלוחים הממתינים שלו.

## דוגמה ל-n8n

ייבא [את זרימת העבודה לדוגמה](https://github.com/phishdestroy/TgWitness/blob/main/integrations/n8n-tgwitness.json). היא אינה פעילה ואינה מכילה סודות או פעולות המשך. הגדירו את `TGWITNESS_WEBHOOK_SECRET` בסביבת ה-n8n worker, אפשרו גישה לסביבה זו, ואפשרו את הפונקציה המובנית `crypto` עבור צומת ה-Code. הדוגמה משתמשת באופציית raw-body של צומת ה-Webhook, בודקת חתימה/תוקף, ומאשרת אירועים מאומתים. הדבר תואם [ליישום המתועד](https://github.com/n8n-io/n8n/blob/master/packages/nodes-base/nodes/Webhook/Webhook.node.ts) של הצומת.

לפני הוספת כתיבות או התראות SIEM, הוסף אחסון אידמפוטנטי עמיד המוגדר באמצעות מפתח `event_id`. הגבל את עריכת זרימת העבודה של n8n ואת שמירת יומן הביצוע בהתאם לנתונים שבחרת לשלוח. TgWitness אינו מוסיף פקודות נכנסות.
