Skip to main content
يعمل Ayakaleaf Pro ضمن بنيتك التحتية. وأنت من يتحكم في بياناته والوصول إليه وحدود شبكته. تشرح هذه الصفحة نموذج الأمان الافتراضي، كما تحدد مسؤولياتك التشغيلية.

هل Ayakaleaf Pro موثوق وآمن؟

Ayakaleaf Pro هو تحسين مستضاف ذاتيًا لـ Overleaf Pro، والشيفرة المصدرية الخاصة بنا متاحة على ayaka-notes/ayakaleaf-pro. ويتحكم نشرك في مكان تشغيل الخدمات وموقع البيانات. يعتمد الأمان على إعداداتك وعملياتك التشغيلية. احمِ صلاحيات المسؤول، وفعّل HTTPS، وحافظ على النسخ الاحتياطية. نشكر OpenAI على دعمها الكريم. سنستخدم Codex Security بانتظام لفحص مستودعنا بحثًا عن مشكلات أمنية، وسنشارك نتائج إصلاح الثغرات علنًا.

إلى أين تذهب بياناتي؟

افتراضيًا، تبقى بيانات التطبيق داخل نشرك:
  • يخزّن MongoDB بيانات المستخدمين والمشاريع.
  • يخزّن Redis بيانات ذاكرة التخزين المؤقت والتعاون في الوقت الفعلي.
  • تحتفظ وحدات التخزين المحلية أو التخزين المتوافق مع S3 بملفات المشاريع.
لا تُعرَض افتراضيًا سوى خدمة الويب. وتتواصل الخدمات الداخلية عبر شبكة Docker.

هل ستُرسل بياناتي إلى أطراف ثالثة أو تُجلب منها؟

لا يغادر أي شيء نشرك ما لم تفعّل ميزة تتطلب ذلك. لا يرسل Ayakaleaf Pro أي بيانات قياس عن بُعد، ولا تحليلات استخدام، ولا تقارير أعطال. كما أن الإبلاغ عن الأخطاء والتحليلات معطّلان في الإعداد الافتراضي. هناك عدة ميزات لا تُجري أي طلبات خارجية على الإطلاق. تُخزَّن القوالب وتُقدَّم من نشرك الخاص. ويُنفَّذ مشغّل سكربتات Python في متصفح المستخدم عبر WebAssembly، وتُقدَّم بيئة تشغيله من خدمة الويب الخاصة بك بدلًا من CDN عام، لذا لا تصل شيفرة السكربتات ومخرجاتها إلى الشبكة أبدًا. ولا يمكن الوصول إلى Git Bridge إلا عبر شبكة Docker الداخلية. أما البحث الكامل في المشاريع، ولوحة الرموز، وتتبع التغييرات، وسجل المشاريع، ولوحة الإدارة، فهي محلية بالكامل. وتُنشأ حاويات الترجمة المعزولة مع تعطيل الشبكة. أما طلبات الميزات المتبقية فتصل إلى الوجهات التالية، وكل طلب منها يصدر عن خدمة الويب:
ميزات الذكاء الاصطناعي معطّلة افتراضيًا. وعند تفعيلها، ترسل الدردشة واقتراحات أخطاء LaTeX المطالبات وسياق المشروع ذا الصلة إلى نقطة نهاية النموذج المحددة باستخدام AI_BASE_URL. ويرسل بحث الويب الاختياري الاستعلامات إلى الخدمة المتوافقة مع Tavily المُعدّة، ويرسل البحث في الوثائق الاستعلامات إلى DOCS_MCP_URL (القيمة الافتراضية: https://docs.overleaf.com/~gitbook/mcp). ويمكن تضمين نتائج البحث في الطلبات المرسلة إلى مزوّد النموذج. راجع تكامل الذكاء الاصطناعي للاطلاع على الإعداد وعناصر تحكم المستخدم.
يتصل تكامل GitHub بـ github.com و api.github.com. ويُفعَّل لكل مستخدم على حدة بربط حساب GitHub، ويطلب التفويض النطاقات read:org و repo و workflow. وعند الدفع (push)، يُرفع المحتوى الكامل لملفات المشروع على شكل Git blobs، تُجمَّع بعد ذلك في trees و commits. كما يُجري عمليات على الفروع والمراجع والمقارنة والدمج، ويقرأ الملف الشخصي للحساب المرتبط وعضويات المؤسسات وقائمة المستودعات. يغادر محتوى المشروع نشرك في كلا الاتجاهين — لذا تعامل مع حساب GitHub المرتبط باعتباره مسار تصدير لكل مشروع مرتبط به.
يتصل تكامل Zotero بـ www.zotero.org للتفويض وبـ api.zotero.org لبيانات المكتبة. ويُفعَّل لكل مستخدم على حدة بربط حساب Zotero. وتُرسَل مصافحة OAuth ومفتاح API الخاص بالمستخدم. والقراءة أحادية الاتجاه: تُجلب مكتبات المراجع بصيغة BibTeX، ولا يُرفع أي محتوى من المشاريع.
يتصل تكامل Mendeley بـ api.mendeley.com للتفويض ولبيانات المكتبة معًا. ويُفعَّل لكل مستخدم على حدة بربط حساب Mendeley. تطلب مصافحة OAuth النطاق all الخاص بـ Mendeley — وهو النطاق الوحيد الذي تتيحه واجهته البرمجية — لكن Ayakaleaf لا يُجري سوى عمليات القراءة: تُجلب مكتبات المراجع ومكتبات المجموعات بصيغة BibTeX، ولا يُرفع أي محتوى من المشاريع. تُجدَّد رموز الوصول تلقائيًا؛ وعندما يُلغي Mendeley منحة ما، يُتجاهل بيان الاعتماد المخزّن ويُطلب من المستخدم ربط الحساب مرة أخرى.
تُجلب صفحات الوثائق من https://learnwiki.overleaf.com، ويمكن تغيير ذلك باستخدام WIKI_URL. تُجري خدمة الويب هذه الطلبات، وليس متصفح المستخدم، لذا ترى الويكي الأصلية خادمك ولا ترى أبدًا عناوين مستخدميك. لا يُرسل سوى عنوان الصفحة المطلوبة، وتُخزَّن الاستجابات مؤقتًا على القرص. وجّه WIKI_URL إلى نسخة مرآة خاصة بك، أو احظر الوجهة، إذا لم تكن حركة مرور الوثائق الصادرة مقبولة.
يتصل إرسال البريد الإلكتروني بأي خادم SMTP أو واجهة برمجية للبريد تقوم بإعدادها؛ ولا توجد قيمة افتراضية. وتغادر عناوين المستلمين ومحتويات الرسائل نشرك، بما في ذلك روابط إعادة تعيين كلمة المرور والدعوات.
هناك فحصان اختياريان معطّلان افتراضيًا. فحص كلمات المرور المخترقة غير نشط ما لم يُضبط HAVE_I_BEEN_PWNED_ENABLED؛ وعند تفعيله يرسل الأحرف الأولى من تجزئة SHA-1 لكلمة المرور إلى api.pwnedpasswords.com، ولا يرسل كلمة المرور نفسها أبدًا. والتحقق عبر CAPTCHA غير نشط ما لم يُعدّ مفتاح موقع reCAPTCHA، ويتصل بـ www.google.com عند تفعيله.
لا يصل تسجيل الدخول الموحد إلا إلى مزوّد الهوية الذي تحدده، وتعتمد البيانات التي تنتقل إليه على البروتوكول. مع LDAP تتصل خدمة الويب بدليلك مباشرة: فهي ترتبط (bind) بحساب الخدمة الذي تُعدّه، وتبحث ضمن القاعدة والمرشح وقائمة السمات التي تحددها، وتتحقق من كلمة المرور المُدخلة في نموذج تسجيل الدخول مقابل دليلك، بحيث يصل اسم المستخدم وكلمة المرور إلى خادم الدليل. ويؤدي تفعيل جهات الاتصال المستندة إلى الدليل إلى إجراء بحث إضافي لملء قائمة جهات الاتصال. ومع OIDC تستبدل خدمة الويب رمز التفويض عند نقطة نهاية الرموز لديك، ثم تستدعي نقطة نهاية معلومات المستخدم، طالبةً النطاقات openid profile email افتراضيًا؛ ويمكن تغيير ذلك باستخدام OVERLEAF_OIDC_SCOPE. ومع SAML ينتقل طلب المصادقة عبر متصفح المستخدم إلى مزوّد الهوية بدلًا من اتصال مباشر بالخادم. وفي الحالات الثلاث جميعها، يصل اسم المستخدم وعنوان بريده الإلكتروني من المزوّد بدلًا من إرسالهما إليه، ثم يُخزَّنان في سجل المستخدم المحلي.
تُحفظ بيانات اعتماد الأطراف الثالثة — رموز OAuth ومفاتيح API — في MongoDB ضمن سجل المستخدم، مشفّرة باستخدام AES-256-CTR مع salt ومتجه تهيئة خاصين بكل سجل. ولا تُخزَّن أبدًا كنص صريح ولا تُكتب في السجلات أبدًا. يأتي مفتاح التشفير من ${PROVIDER}_CIPHER_PASSWORD إذا كان مضبوطًا (مثل Zotero و Mendeley)؛ وإلا فيُنشأ مفتاح عند أول استخدام ويُحفظ داخل وحدة تخزين البيانات بأذونات تقتصر على المالك. انسخ هذا المفتاح احتياطيًا مع وحدة تخزين البيانات: فإذا فُقد، فلن يمكن فك تشفير بيانات الاعتماد المخزّنة، وسيتعين على كل مستخدم ربط حساباته مرة أخرى.
يجلب نشرك الملفات المرتبطة من عنوان URL نيابةً عن المستخدم، لذا تكون الوجهة أي عنوان يقدّمه المستخدم. ملفات URL المرتبطة معطّلة ما لم تُضف url إلى ENABLED_LINKED_FILE_TYPES، والإعداد الافتراضي لا يتضمنها. كما تستخدم عمليات استيراد ZIP و TeX الخارجية عبر Open in Overleaf API المكوّن نفسه linked-url-proxy. تحلّ الطلبات المباشرة اسم المضيف الهدف وترفض نطاقات الشبكة المقيّدة، مع مراعاة استثناءات الموارد المسموح بها المُعدّة. وعند إعداد OVERLEAF_LINKED_URL_OUTBOUND_PROXY، يتولى الوكيل الصادر حلّ أسماء المضيفين، لذا يجب أن يفرض بنفسه قيود الشبكة الداخلية؛ إذ لا تنطبق فحوص الشبكة في التطبيق إلا على عناوين URL التي تحتوي على عناوين IP. راجع External URL — Outbound Proxy للتفاصيل. تجلب هذه الطلبات عنوان URL المقدَّم بدلًا من رفع ملفات المشاريع.
إذا كانت سياستك تتطلب قائمة سماح للاتصالات الصادرة، فاسمح فقط بالمضيفين الخاصين بالميزات التي فعّلتها — github.com و api.github.com لـ GitHub، و www.zotero.org و api.zotero.org لـ Zotero، و api.mendeley.com لـ Mendeley، و learnwiki.overleaf.com أو WIKI_URL الخاص بك للوثائق، و api.pwnedpasswords.com لفحص كلمات المرور، و www.google.com لـ CAPTCHA، بالإضافة إلى خادم البريد ومزوّد الهوية الخاصين بك. وإذا كانت ميزات الذكاء الاصطناعي أو البحث مفعّلة، فاسمح أيضًا بنقاط نهاية النموذج وبحث الويب و MCP الخاص بالوثائق المُعدّة. واحظر الوجهات التي لا تتطلبها الميزات المفعّلة لديك. وحيثما يجب فحص حركة المرور الصادرة أو تسجيلها مركزيًا، يمكن توجيه كل من تكاملات GitHub و Zotero و Mendeley عبر وكيل HTTP بضبط GITHUB_SYNC_PROXY_URL و MENDELEY_PROXY_URL و ZOTERO_PROXY_URL. ويمكن لجلب عناوين URL المرتبطة وعمليات الاستيراد عن بُعد استخدام OVERLEAF_LINKED_URL_OUTBOUND_PROXY. ولا يمكن تقييد الملفات المرتبطة من عنوان URL بقائمة مضيفين، لأن المستخدم هو من يختار الوجهة وقت الطلب؛ لذا قيّد هذه الميزة عبر إعداد الموارد المسموح بها الخاص بمكوّن الوكيل، أو اتركها معطّلة.
إذا نشرت Ayakaleaf Pro مع تفعيل تخزين s3.md، فهل تكون البيانات المخزّنة في S3 مشفّرة؟لا. البيانات غير مشفّرة. تُخزَّن جميع أجزاء السجل وملفات القوالب وملفات PDF وغيرها من الملفات كنص صريح. إذا كنت تستخدم مزوّد تخزين S3 خارجيًا تابعًا لطرف ثالث، فيُرجى إيلاء اهتمام كبير لأمن البيانات وخصوصيتها.

هل عمليات ترجمة المشاريع معزولة؟

يدعم Ayakaleaf Pro الترجمة المعزولة. تعمل كل عملية ترجمة في حاوية منفصلة. ولا تملك الحاويات المعزولة أي وصول إلى الشبكة افتراضيًا، مما يقلل من التعرض لموارد الشبكة الداخلية. تتطلب الترجمة المعزولة الوصول إلى Docker socket الخاص بالمضيف. لذا اقصر إدارة المضيف على المشغّلين الموثوقين.

هل يمكنني الوثوق بعمليات بناء CI وصور الحاويات؟

يبني GitHub Actions صور حاويات Ayakaleaf Pro وينشرها. والصور متاحة من GitHub Container Registry العام. تدعم الصور amd64 و arm64. ويختار Docker البنية المطابقة عند سحب الصورة. لا تستخدم الوسم latest في بيئة الإنتاج. ثبّت إصدارًا صريحًا، ويُفضّل استخدام digest الصورة. اختبر كل ترقية في بيئة غير إنتاجية. وتحقق من الصورة والإعدادات والتكاملات قبل الطرح.

هل الشيفرة مفتوحة المصدر؟

Ayakaleaf Pro ومستودعات الميزات ذات الصلة متاحة للعامة. يتيح ذلك للمستخدمين مراجعة التغييرات وتتبع المصادر الأصلية. تدعم الشيفرة المصدرية العامة المراجعة المستقلة. لكنها لا تضمن بحد ذاتها إمكانية إعادة إنتاج إصدارات البناء. قبل الترقية، راجع:
  • وسم الإصدار أو الـ commit.
  • إصدار الصورة أو الـ digest الخاص بها.
  • اعتماديات الأطراف الثالثة ومتطلبات التراخيص.
آخر تعديل في ٥ أكتوبر ٢٠٢٦