تصف هذه الصفحة ما هو قائم فعلاً في Bunyawi Apps وترتيب وتسليم. كُتبت كقائمة حقائق لا وعود، وتُحدَّث حين تتغيّر الحقائق. سياسة الخصوصية تقول ما نجمعه ولماذا؛ وشروط معالجة البيانات تقول ما نلتزم به تجاه التاجر بصفتنا معالِجاً لديه.
١. أين تعمل المنصّة
- تعمل المنصّة على خادم واحد (droplet) لدى DigitalOcean في فرانكفورت بألمانيا (منطقة الاتحاد الأوروبي
fra1)، ويقف Cloudflare أمامه. - TLS في كل مكان: يُنهي Cloudflare اتصال TLS عند الحافة، والاتصال من Cloudflare إلى الخادم الأصلي مشفّر هو الآخر بـ TLS بشهادة من Let's Encrypt. لا يوجد مسار HTTP غير مشفّر إلى الواجهات البرمجية.
- يعمل ترتيب كخدمة مستقلة بقاعدة بيانات خاصة به، منفصلة عن Bunyawi Apps، ولوحته على عنوان خاص بها هو ops.bunyawi.com. ولا تستمع الخدمة إلا داخل الخادم، ولا تستطيع الوصول إلى موقع ops.bunyawi.com على الخادم إلا شبكة Cloudflare.
- قواعد بيانات PostgreSQL تستمع على localhost فقط. لا يمكن الوصول إليها من الإنترنت، ولا يوجد منفذ عامّ لقاعدة البيانات.
- بيانات كل تاجر معزولة داخل قاعدة البيانات بأمان مستوى الصفّ (row-level security) في PostgreSQL مفتاحه معرّف المستأجر. الاستعلام الذي يُنفَّذ في سياق تاجر لا يمكنه إرجاع صفوف تاجر آخر، حتى لو كان في شفرة التطبيق خطأ. وفي ترتيب لا يستطيع دور قاعدة البيانات الذي يستخدمه التطبيق تخطّي هذه القاعدة ولا تغيير بنية قاعدة البيانات.
٢. ما الذي نعالجه
تعالج Bunyawi Apps فقط ما يحتاجه تطبيق التاجر ليعمل:
- الطلبات: رقم الطلب والأصناف والإجماليات والحالة.
- اسم العميل وبريده وهاتفه وعنوان الشحن — فقط حين تكون شوبيفاي قد منحت تثبيت التاجر هذه الصلاحية (موافقة شوبيفاي على بيانات العملاء المحمية).
- رموز الإشعارات، لتصل تحديثات الطلب إلى الجهاز.
- هوية تسجيل الدخول عبر Firebase Auth (معرّف المستخدم والبريد أو مزوّد الدخول المرتبط به).
ويعالج ترتيب وتسليم طلبات التاجر من شوبيفاي، ورسائل واتساب وبيانات شركات الشحن المتعلّقة بها، وحسابات فريق التاجر، وأجهزة تسليم، وطابعات برنامج الطباعة — والقائمة الكاملة في سياسة الخصوصية.
لا نستقبل بيانات البطاقات ولا نخزّنها أبداً. يتمّ الدفع في صفحة دفع شوبيفاي أو عبر بوابة الدفع الخاصة بالتاجر؛ وأرقام البطاقات لا تمرّ عبر Bunyawi.
٣. كم نحتفظ بها
Bunyawi Apps
- الطلبات: تُحفظ ما دام التطبيق مثبّتاً لدى التاجر — فهي سجلّاته الضريبية والتجارية.
- اسم العميل وبريده وهاتفه: تُمحى من طلباته حين ترسل شوبيفاي
customers/redact، أو حين يحذف العميل حسابه من التطبيق. يبقى الطلب نفسه، بلا صاحبه. - حمولات الخطافات (webhooks) الخام: ٩٠ يوماً.
- سلال التطبيق المتروكة: ٣٠ يوماً.
- طلبات إتمام الشراء: ٩٠ يوماً.
- سجلّات التدقيق والوصول: ٣٦٥ يوماً.
- المتجر الذي أُلغي تثبيته: يُحذف كل شيء بعد ٣٠ يوماً من إلغاء التثبيت — أو فوراً حين ترسل شوبيفاي
shop/redact.
ترتيب وتسليم
- رموز الدخول والتحقّق: يوم واحد.
- الجلسات ورموز الأجهزة المنتهية: ٣٠ يوماً.
- حمولات الخطافات الخام: ٩٠ يوماً.
- ملفات البوالص وأوراق التغليف، وصور المرتجعات: ٣٠ يوماً.
- سجلّ التدقيق: سنة واحدة.
- النشاط المحذوف: يُحذف كل شيء خلال ٣٠ يوماً من طلب المالك.
النسخ الاحتياطية المشفّرة لكليهما تُحفظ ١٤ يوماً.
٤. التشفير
- أثناء النقل: TLS على كل خطوة، كما سبق.
- أثناء التخزين: يقع مجلد بيانات PostgreSQL على وحدة تخزين كتلية من DigitalOcean مشفّرة أثناء التخزين على مستوى طبقة التخزين (LUKS)، وهي موصولة بهذا الخادم وحده.
- النسخ الاحتياطية: تُنسخ قواعد البيانات احتياطياً كل ليلة. تُشفَّر كل نسخة بـ AES-256 (عبر GnuPG) قبل أن تُكتب على القرص، والمفتاح يحتفظ به المشغّل وحده. والنسخة التي لا يمكن فكّ تشفيرها واستعادتها تُستبعد.
- بيانات دخول التاجر في ترتيب — مفاتيح ورموز شوبيفاي وشركات الشحن وواتساب و Gmail — مشفّرة بـ AES-256-GCM، وكل منها مربوط بنشاطه، ولا تُعرض كاملة أبداً. والمفتاح الرئيسي ليس داخل قاعدة البيانات.
- أسرار الخادم — بيانات اعتماد قواعد البيانات ومفاتيح الواجهات البرمجية ومفاتيح التوقيع والمفاتيح الرئيسية لترتيب — تعيش في ملفات على الخادم لا يقرؤها إلا root والخدمة التي تستخدمها. ولا تُودَع في مستودع الشفرة أبداً ولا تُكتب في أي سجلّ.
٥. الحسابات وتسجيل الدخول (ترتيب وتسليم)
- كلمات المرور من ١٢ إلى ١٢٨ حرفاً، بلا رموز إجبارية وبلا انتهاء صلاحية إجباري. تُرفض كلمات المرور الشائعة، وتلك التي تحتوي على اسم المستخدم أو اسم النشاط؛ وتُفحص أيضاً مقابل كلمات المرور المسرّبة المعروفة بطريقة تحفظ الخصوصية لا تُرسل إلا أول خمسة أحرف من بصمة كلمة المرور.
- تُخزَّن كلمات المرور بـ Argon2id. ولا يستطيع أحد في Bunyawi رؤيتها.
- كل دخول إلى لوحة ترتيب يحتاج أيضاً رمزاً من ٦ أحرف يُرسَل إلى بريد الحساب. يعمل الرمز مرة واحدة، لمدة ١٠ دقائق، وخمس محاولات خاطئة تُلغيه.
- يستطيع كل صاحب حساب في اللوحة إضافة تطبيق للمصادقة؛ وهو إلزامي للوحة الإدارة الخاصة بـ Bunyawi.
- تنتهي الجلسات بعد ٦٠ دقيقة بلا نشاط، وبعد ١٢ ساعة في كل الأحوال. ويرى كل شخص جلساته ويُنهيها من الإعدادات ← الأمان؛ وتغيير كلمة المرور يُنهي كل الجلسات الأخرى.
- تغيير بيانات دخول شركات الشحن أو شوبيفاي أو واتساب، أو أدوار الفريق، أو البريد أو كلمة المرور، يحتاج إدخال كلمة المرور مرة أخرى.
- محاولات الدخول الفاشلة المتكرّرة تُبطَّأ ثم تُقفَل، دون كشف ما إذا كان الحساب موجوداً.
- تسليم: افتراضياً لا يعمل الهاتف الجديد إلا بعد موافقة المالك أو أحد المسؤولين. ويحصل على رموز دخول قصيرة العمر تُجدَّد برموز تُستخدم مرة واحدة؛ وإعادة استخدام رمز قديم تُخرج الهاتف. وتُحفظ الرموز في المخزن الآمن بالهاتف.
- يُربَط برنامج الطباعة برمز من ٨ أحرف يُستخدم مرة واحدة وينتهي بعد ١٠ دقائق. ويمكن إزالته في أي وقت من الإعدادات ← الطباعة.
٦. من يستطيع الوصول
- يشغّل Bunyawi مشغّل واحد. لا يوجد فريق دعم له صلاحية على بيئة الإنتاج.
- الوصول الإداري إلى الخادم مقصور على المشغّل.
- يصل تجّار Bunyawi Apps إلى لوحة تحكّمهم فقط عبر تسجيل دخول موظفي شوبيفاي نفسه ورموز جلساته. لا نرى كلمة مرور التاجر ولا نخزّنها أبداً.
- يسجّل مشترو Bunyawi Apps الدخول عبر Firebase Auth: Google أو Apple أو البريد مع التحقّق. لا نخزّن كلمات مرور المشترين.
- حسابات المشغّل نفسه — GitHub و Google و DigitalOcean و Cloudflare و Shopify Partners — تستخدم كلمات مرور فريدة من ١٦ حرفاً فأكثر من مدير كلمات مرور، مع التحقّق بخطوتين.
- في Bunyawi Apps، كل تغيير في لوحة التحكّم، وكل قراءة لبيانات شخصية لعميل، يُكتب في سجلّ تدقيق خاص بكل تاجر يستطيع التاجر الاطّلاع عليه.
- في ترتيب، تُكتب مرات الدخول ومحاولات الدخول الفاشلة والرموز المرسَلة وتغييرات كلمة المرور وتطبيق المصادقة وإنهاء الجلسات وتغييرات الإعدادات وبيانات الدخول والفريق والموافقة على الأجهزة والإلغاءات والتصدير في سجلّ تدقيق يستطيع التطبيق الإضافة إليه دون تعديله. ويرى كل شخص نشاطه الأخير.
٧. بيانات الاختبار وبيئة الإنتاج
- الطلبات التجريبية في Bunyawi Apps نماذج ثابتة في الذاكرة. لا تُكتب في قاعدة البيانات أبداً، ولا تظهر إلا لحسابات اختبار مدرجة في قائمة مسموح بها.
- في ترتيب نشاط تجريبي بشركة شحن محاكاة، يُستخدم لمراجعة المتاجر وللاختبار. لا يحجز شحنة حقيقية أبداً.
- يجري التطوير على بيانات محلية على جهاز المطوّر، وتستخدم الاختبارات الآلية قاعدة بيانات مؤقتة — ولا يجري أي منهما على قاعدة بيانات الإنتاج.
٨. إن وقع خطأ
- الاحتواء — تدوير السرّ المتأثّر وحجب المصدر عند Cloudflare.
- التقييم — تحديد النطاق من سجلّات الخادم وسجلّ التدقيق: أي التجّار، وأي البيانات، وأي فترة.
- الإبلاغ — مراسلة كل تاجر متأثّر بالبريد خلال ٧٢ ساعة بما حدث وما البيانات المعنية، وإبلاغ شوبيفاي حيث تقتضي شروطها ذلك.
- الإصلاح — معالجة السبب الجذري وإعادة النشر.
- التعلّم — كتابة تقرير ما بعد الحادث وإجراء التغيير الذي يمنع تكراره.
للإبلاغ عن ثغرة أو حادث مشتبه به، راسل privacy@bunyawi.com. يقرأ المشغّل البلاغات بنفسه.
٩. طلبات أصحاب البيانات
- يستطيع عميل Bunyawi Apps حذف حسابه من داخل التطبيق. يُزال اسمه وبريده وهاتفه من طلباته في تلك اللحظة.
- يستطيع مستخدم تسليم حذف حسابه من داخل التطبيق، من الإعدادات ← حذف حسابي. ماذا يحدث بعدها.
- التاجر الذي يتلقّى طلباً من عميل يحوّله إلى privacy@bunyawi.com.
- خطافات شوبيفاي
customers/data_requestوcustomers/redactوshop/redactمنفَّذة في Bunyawi Apps وتُنفَّذ تلقائياً.
١٠. المعالِجون من الباطن
الأطراف الثالثة التي تتعامل بالضرورة مع بعض هذه البيانات، ولأي غرض:
- DigitalOcean — الاستضافة (فرانكفورت).
- Cloudflare — DNS وشبكة التوزيع وإنهاء TLS وتحويل البريد.
- Brevo — يرسل رموز الدخول ورسائل الحسابات في ترتيب.
- Google — خوادم بريد Gmail ترسل تلك الرسائل حين يتعذّر ذلك على Brevo.
- Google Firebase — في Bunyawi Apps: مصادقة العملاء، والإشعارات (أندرويد، و iPhone إلى أن يرفع التاجر مفتاح إشعارات Apple)، وتقارير الأعطال وإحصاءات الاستخدام.
- Apple — في Bunyawi Apps: إشعارات iOS (خدمة إشعارات Apple، APNs).
- Google Play — توزيع تطبيقات أندرويد وخدمات الجهاز.
- GitHub — استضافة الشفرة وخطّ البناء.
- Codemagic — في Bunyawi Apps: بناء تطبيق iOS؛ يرى مفتاح App Store Connect الخاص بالتاجر طوال مدة البناء.
- Google (Gemini) — في ترتيب: يقرأ عنوان توصيل، أو كلمات رسائل العميل على واتساب، حين لا يستطيع مطابق الكلمات تحديدها؛ وما يُرسَل مبيَّن في سياسة الخصوصية.
- Telegram — في Bunyawi Apps: تنبيه المشغّل حين يطلب متجر النشر؛ يحمل اسم المتجر ونطاقه على شوبيفاي، ولا شيء عن العملاء.
أما شوبيفاي و Meta (واتساب) و Fincart و Bosta — ولشكاوى Bosta، بريد التاجر على Gmail — فخدمات يربطها التاجر بحساباته هو، ومذكورة في سياسة الخصوصية. وإن تغيّرت قائمة المعالِجين من الباطن، يُراسَل التجّار بالبريد قبل سريان التغيير.