البريد الإلكتروني - عنصر أساسي في استمرارية العمليات

في السنوات الأخيرة، أدت رقمية عمليات العمل الداخلية إلى زيادة حادة في المعلومات الحاسمة المتعلقة بالعمل المخزنة بشكل إلكتروني في الاقتصادات العالمية. يمكن تخزين هذه البيانات داخل أنظمة الشركة (الداخلية) وفي خدمات السحابة (سحابة خاصة أو عامة).

12/03/2024 SintelSedat Akfidan 7 دقيقة قراءة
البريد الإلكتروني - عنصر أساسي في استمرارية العمليات

أدوات

يمكنك استدعاء وظائف واحدة أو أكثر لمساعدتك في استعلام المستخدم.

تم تقديم توقيعات الوظائف داخل علامات XML : {"type": "function", "function": {"name": "google-surf__search", "description": "بحث جوجل فردي -> عنوان / رابط / نص ملخص لكل نتيجة. يتم تخزين النتائج لـ 24 ساعة، لذا فإن تكرار الاستعلام مجاني -- يفضل إعادة التحقق بدلاً من تخزين النتائج الخاصة بك. لأسئلة الحداثة / اليوم / الكسرية، ضع SURF_CACHE_TTL_SEARCH_MS=0 لتجاوز التخزين المؤقت. الحد الافتراضي 10 (ماكس 20). المكالمة الأولى ~4s (تدفئة كروم)، ثم ~2s. عند وجود CAPTCHA، يفتح متصفح جوجل مرئيًا لشخص ما لحله (حماية IP مشتركة)؛ SURF_CLOUD_MODE=true يجعله يفشل بسرعة بدلاً من ذلك.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"query": {"type": "string", "minLength": 1, "maxLength": 400, "description": "سؤال بحث جوجل. استخدم ترشيحات site: واقتباسات للحصول على مطابقة دقيقة."}, "limit": {"default": 10, "description": "عدد النتائج القصوى (الافتراضي 10).", "type": "integer", "minimum": 1, "maximum": 20}}, "required": ["query"]}}} {"type": "function", "function": {"name": "google-surf__search_parallel", "description": "تشغيل 2-10 بحث جوجل متوازية. استخدم هذا لمقارنة زوايا متعددة في مكالمة واحدة. كل سؤال يحسب ضد الحد الداخلي (~10/دقيقة) -- لا تكرر هذا للنسخة الكبيرة. المكالمة الأولى تضيف 5-10s دفعة دافئة. فشل كل سؤال منفصلاً في مصفوفة النتائج. معطل في الوضع السحابي.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"queries": {"minItems": 1, "maxItems": 10, "type": "array", "items": {"type": "string", "description": ""}, "description": "2-10 استفسارات لتشغيلها متوازية."}, "limit": {"default": 10, "description": "عدد النتائج لكل استعلام.", "type": "integer", "minimum": 1, "maximum": 20}}, "required": ["queries"]}}} {"type": "function", "function": {"name": "google-surf__extract", "description": "احصل على رابط علني واحد -> نص مقالة نظيف. HTML عبر Mozilla Readability؛ يتم اكتشاف PDF الأكاديمي (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC) عبر نوع المحتوى، سحر %PDF، meta citation_pdf_url، وقواعد URL لكل نطاق. العمق المرتبط بالمستوى: mode=\"abstract\" يعود بـ ~1500 حرف (صفحة PDF 1 أو وصف HTML) - مسح رخيص لتحديد الصلة قبل دفع ثمن النص الكامل. mode=\"full\" (الافتراضي) يعود بالكامل مقالة. أفضل جهد: فشل العودة بـ errorInfo بدلًا من رميها.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"url": {"type": "string", "description": "الرابط العام http(s). يتم حظر الـ Loopback/ips الخاصة إلا إذا كان SURF_ALLOW_PRIVATE=true."}, "max_chars": {"default": 8000, "description": "الحد من الحد الأقصى لعدد الحروف (8000 بالعطل الافتراضي، يُحدد عبر SURF_EXTRACT_MAX_CHARS).", "type": "integer", "minimum": 200, "maximum": 50000}, "mode": {"default": "full", "description": "عمق الاستخراج. full = جسم المقالة بالكامل (الافتراضي؛ يستخدم Playwright إذا لزم الأمر). abstract = مسح رخيص: صفحة PDF 1 أو وصف HTML (~1500 حرف)؛ استخدم لتحديد الصلة قبل دفع ثمن النص الكامل. metadata = عدد الصفحات فقط (PDF). يتم اكتشاف PDF الأكاديمي (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC) تلقائيًا؛ الوضع المجرد يتجاهل Playwright بالنسبة لهم.", "type": "string", "enum": ["full", "abstract", "metadata"]}}, "required": ["url"]}}} {"type": "function", "function": {"name": "google-surf__search_extract", "description": "بحث جوجل واحد + استخراج متوازي من النتائج الأعلى. الوضع الافتراضي mode=\"abstract\" يعود بـ SERP مُثريًا بملخصات ~1500 حرف لكل نتيجة - مسح رخيص لما يحتويه النتائج الأعلى، أقل عدد من الرموز من جلب جميع الجسدية. تبديل إلى mode=\"full\" فقط عندما تحتاج إلى نصوص المقالة الفعلية (بطيء، العديد من الرموز). فشل استخراج كل صفحة مفصولة. معطل في الوضع السحابي.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"query": {"type": "string", "minLength": 1, "maxLength": 400, "description": "سؤال البحث."}, "limit": {"default": 5, "description": "عدد النتائج للاستخراج (الافتراضي 5، ماكس 10).", "type": "integer", "minimum": 1, "maximum": 10}, "max_chars": {"description": "الحد من الحد الأقصى لعدد الحروف لكل نتيجة. الافتراضي يعتمد على الوضع: ~1500 لملخص، 8000 لل كامل (SURF_EXTRACT_MAX_CHARS، محدود إلى 20000 هنا).", "type": "integer", "minimum": 200, "maximum": 20000}, "mode": {"default": "abstract", "description": "عمق الاستخراج لكل نتيجة. abstract (الافتراضي) = مسح رخيص، ~1500 حرف / نتيجة، مثالي لتحديد الصلة. full = جسم كامل لكل نتيجة، بطيء وعدد كبير من الرموز؛ فقط عندما تحتاج حقًا إلى نصوص المقالة.", "type": "string", "enum": ["full", "abstract"]}}, "required": ["query"]}}} {"type": "function", "function": {"name": "google-surf__health", "description": "حالة الخادم MCP: الوضع التسلسلي + الانتقالات، استخدام الحدّ المحدد للسرعة، حجم التخزين المؤقت، الإعدادات. قم بإجراء هذا إذا بدأت عمليات البحث بالفشل أو العودة فارغة - تحقق من cascade.totalCaptchas و queueSize للحدّ المحدد، وتقليل حجم البحث إذا كانت مرتفعة.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}} {"type": "function", "function": {"name": "semgrep__semgrep_rule_schema", "description": "\nاحصل على مخطط قاعدة Semgrep\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - الحصول على المخطط المطلوب لكتابة قاعدة Semgrep\n - تحتاج إلى معرفة ما هي الحقول المتاحة لقاعدة Semgrep\n - التحقق من ما هي الحقول المتاحة لقاعدة Semgrep\n - التحقق من صحة ترميز قاعدة Semgrep\n", "parameters": {"properties": {}, "title": "semgrep_rule_schemaArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__get_supported_languages", "description": "\nيعيد قائمة اللغات المدعومة من قبل Semgrep\n\nاستخدم هذا الأداة فقط إذا كنت غير متأكد من اللغات التي يدعمها Semgrep.\n", "parameters": {"properties": {}, "title": "get_supported_languagesArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__semgrep_findings", "description": "\nيحصل على نتائج من واجهة API لتطبيق Semgrep AppSec Findings.\n\nهذه الوظيفة تعيد نتائج الأمان، والجودة الكودية، ونتائج سلسلة التوريد التي تم تحديدها بالفعل من قبل عمليات Semgrep السابقة وتم رفعها إلى منصة Semgrep AppSec. لا يقوم هذا بأداء عملية مسح جديدة أو تحليل الكود مباشرةً. بدلًا من ذلك، ي_query_ واجهة API لـ Semgrep للوصول إلى نتائج المسح التاريخية لمستودع معين أو مجموعة من المستودعات.\n\nالسلوك الافتراضي: يفترض هذا الأداة ترشيحًا حسب المستودع الحالي. يجب أن يحدد النموذج اسم المستودع الحالي ويمرره في معلمة 'repos' لضمان أن تكون النتائج مقيدة بالكود القائم. ومع ذلك، يمكن للمستخدمين طلب نتائج من مستودعات أخرى بشكل صريح، وفي هذه الحالة يجب أن يحترم النموذج هذا الطلب.\n\nاستخدم هذه الوظيفة عندما يشير السؤال إلى ملخص، قائمة، أو تحليل لنتائج موجودة، مثل:\n - "يرجى قائمة أعلى 10 نتائج أمنية واقترح حلولًا لها."\n - "أظهر جميع الثغرات الحرجة المفتوحة في هذا المستودع."\n - "ملخص نتائج مسح Semgrep الأخيرة."\n - "احصل على نتائج من المستودع X" (طلب صريح لمستودع مختلف)\n\nهذه الوظيفة مثالية ل:\n- مراجعة، قائمة، أو ملخص نتائج المسح السابقة.\n- تقديم رؤى قابلة للتنفيذ أو توجيهات إصلاح بناءً على بيانات المسح السابقة.\n\nلا تستخدم هذه الوظيفة لأداء مسح جديد أو فحص كود لم يتم تحليله بواسطة Semgrep. لمسح جديد، استخدم الوظيفة المناسبة للمسح.\n", "parameters": {"properties": {"issue_type": {"default": "ISSUE_TYPE_SAST", "description": "نوع المشكلة لترشيحها.", "enum": ["ISSUE_TYPE_SAST", "ISSUE_TYPE_SCA"], "title": "نوع المشكلة", "type": "string"}, "repos": {"default": [], "description": "قائمة بأسماء المستودعات لترشيحها. اشتمل على مالك واسم المستودع، مثل 'owner/repository'", "items": {"type": "string", "description": ""}, "title": "المستودعات", "type": "array"}, "status": {"default": "ISSUE_TAB_OPEN", "description": "حالة المشكلة لترشيحها.", "enum": ["ISSUE_TAB_OPEN", "ISSUE_TAB_CLOSED", "ISSUE_TAB_IGNORED", "ISSUE_TAB_REVIEWING", "ISSUE_TAB_FIXING"], "title": "الحالة", "type": "string"}, "severities": {"anyOf": [{"items": {"enum": ["SEVERITY_CRITICAL", "SEVERITY_HIGH", "SEVERITY_MEDIUM", "SEVERITY_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "شدة المشكلات لترشيحها.", "title": "الشدّة"}, "confidence": {"anyOf": [{"items": {"enum": ["CONFIDENCE_HIGH", "CONFIDENCE_MEDIUM", "CONFIDENCE_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "الثقة في المشكلات لترشيحها.", "title": "الثقة"}, "autotriage_verdict": {"anyOf": [{"enum": ["VERDICT_TRUE_POSITIVE", "VERDICT_FALSE_POSITIVE"], "type": "string", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "حكم التriage التلقائي للمشكلات لترشيحها. إذا لم يُقدّم، يتم العودة بنتائج ذات أي حكم (بما في ذلك غير المقيّمة).", "title": "حكم التriage التلقائي"}, "refs": {"default": [], "description": "قائمة برماح git (أسماء الفرع) لترشيح النتائج حسبها. إذا لم تُقدّم، يتم العودة فقط بنتائج الفرع الأساسي.", "items": {"type": "string", "description": ""}, "title": "المرجع", "type": "array"}, "limit": {"default": 10, "description": "عدد أقصى للنتائج العائدة", "title": "الحد الأقصى", "type": "integer"}}, "title": "semgrep_findingsArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__semgrep_scan_with_custom_rule", "description": "\nيقوم بتشغيل مسح Semgrep مع قاعدة مخصصة على المحتوى المقدم\nويعود النتائج بصيغة JSON\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - مسح ملفات الكود لفحص أمني معين غير متضمن في القواعد الافتراضية لـ Semgrep\n - مسح ملفات الكود لفحص مشكلة معينة غير متضمنة في القواعد الافتراضية لـ Semgrep\n", "parameters": {"$defs": {"CodeFile": {"properties": {"path": {"description": "مسار ملف الكود", "title": "المسار", "type": "string"}, "content": {"description": "محتوى ملف الكود", "title": "المحتوى", "type": "string"}}, "required": ["path", "content"], "title": "ملف الكود", "type": "object"}}, "properties": {"code_files": {"description": "قائمة من القواميس تحتوي على مفاتيح 'path' و 'content'", "items": {"$ref": "#/$defs/CodeFile", "description": ""}, "title": "ملفات الكود", "type": "array"}, "rule": {"description": "سلاسل قواعد Semgrep باللغة YAML", "title": "القاعدة", "type": "string"}}, "required": ["code_files", "rule"], "title": "semgrep_scan_with_custom_ruleArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__semgrep_scan", "description": "\nيقوم بتشغيل مسح Semgrep محليًا على الملفات المقدمة ويُرجع النتائج بصيغة JSON.\n\nتتوقع الملفات أن تكون مسارات مطلقة لملفات الكود.\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - مسح ملفات الكود لفحص أمني\n - مسح ملفات الكود لفحص مشكلة أخرى\n", "parameters": {"$defs": {"CodePath": {"properties": {"path": {"description": "مسار مطلق لملف الكود", "title": "المسار", "type": "string"}}, "required": ["path"], "title": "مسار الكود", "type": "object"}}, "properties": {"code_files": {"description": "قائمة من القواميس تحتوي على 'path' يشير إلى مسار مطلق لملف الكود", "items": {"$ref": "#/$defs/CodePath", "description": ""}, "title": "ملفات الكود", "type": "array"}}, "required": ["code_files"], "title": "semgrep_scanArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__get_abstract_syntax_tree", "description": "\nيعيد شجرة التمثيل المجرد (AST) للملف المقدم في صيغة JSON\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - الحصول على شجرة تمثيل مجردة (AST) لملف الكود المقدم\n - الحصول على AST لملف\n - فهم بنية الكود بشكل أكثر تفصيلًا\n - رؤية ما يراه المترجم في الكود\n", "parameters": {"properties": {"code": {"description": "الكود للحصول على AST له", "title": "الكود", "type": "string"}, "language": {"description": "لغة البرمجة للك