هل MailStore Server متوافق مع تنظيم حماية البيانات العامة (GDPR)؟
الآن الرسمي: دخلت لائحة حماية البيانات العامة (GDPR) في التنفيذ من 25 مايو 2018. تهدف GDPR إلى استقرار قانون حماية البيانات الأوروبي تمامًا. حتى الآن، أظهرت التشريعات الوطنية المستندة إلى موجة حماية البيانات الأوروبية اختلافات كبيرة بين الدول؛ ستدخل GDPR في التنفيذ فورًا كقانون قابل للتطبيق في جميع دول الاتحاد الأوروبي. سيتم التركيز بشكل مستمر على حماية الأشخاص الحقيقيين عند معالجة البيانات الشخصية. الهدف المحدد لـ GDPR هو أن تأخذ الشركات التابعة للاتحاد الأوروبي أكثر في الاعتبار حقوق الأشخاص الحقيقيين فيما يتعلق بتخزين ومعالجة البيانات الشخصية. هذا هو ملخص سريع جدًا للنية والهدف التنظيمي، ولا يأخذ في الاعتبار تمامًا واسع النطاق لمعنى هذا.

أدوات
يمكنك استدعاء وظيفة أو أكثر لمساعدتك في استعلام المستخدم.
تم تقديم توقيعات الوظائف داخل علامات XML mode=\"abstract\" يعود ~1500 حرف (صفحة PDF 1 أو وصف HTML الميتا) -- مسح رخيص لتقديم تقييم الصلة قبل دفع ثمن الجسد الكامل. mode=\"full\" (الافتراضي) يعود كامل مقالة. أفضل جهد: الفشل يعود ببدائل خطأ بدلًا من الرمي.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"url": {"type": "string", "description": "عنوان URL العام. يتم حظر IP المحلية/الخاصة ما لم يكن 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 الأكاديمية تلقائيًا؛ وضع المجرد يتجاهل 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 وrateLimiter.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 Platform Findings.\n\nيقوم هذا الوظيفة باسترجاع العيوب الأمنية، ونوعية الكود، والعناصر السلسلة التي تم تحديدها مسبقًا من قبل عمليات Semgrep المسحية وأُرسلت إلى منصة Semgrep AppSec. لا يقوم هذا بأداء مسح جديد أو تحليل الكود مباشرة. بدلًا من ذلك، يقوم بالاستعلام إلى واجهة Semgrep API لاسترجاع نتائج المسح السابقة لمستودع معين أو مجموعة من المستودعات.\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": "الحكم التلقائي للفلترة. إذا لم يتم توفيره، تُعاد النتائج ذات أي حكم (بما في ذلك غير المصنفة).", "title": "الحكم التلقائي"}, "refs": {"default": [], "description": "قائمة برماح (أسماء الفروع) لفلترة النتائج. إذا لم يتم توفيره، تُعاد فقط النتائج من الفرع الأساسي.", "items": {"type": "string", "description": ""}, "title": "Refs", "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": "لغة البرمجة للكود", "title": "اللغة", "type": "string"}}, "required": ["code", "language"], "title": "get_abstract_syntax_treeArguments", "type": "object"}}