النسخ الاحتياطي والاستعادةBackup and restore
ثلاث نسخ، على وسيطين، واحدة خارج الموقع، كلها داخل المملكة، وإحداها غير قابلة للحذف (Object Lock). استرجاع لنقطة زمنية بـ binlogs، واستعادة مكتب بمفرده، واختبار استعادة شهري يقارن البصمات ويسجل النتيجة.
بطاقة الميزة
| البند | القيمة |
|---|---|
| 1. اسم الميزة | النسخ الاحتياطي والاستعادة — Backup and restore |
| 2. المعرّف (Feature ID) | B37 |
| 3. مصدر المتطلب | دليل المطور ص17-18 (الجانب التقني 3) |
| 4. تصنيف المحتوى | متطلب وارد في الملفات 3-2-1 داخل المملكة، نسخة غير قابلة للحذف، binlogs، تشفير بمفتاح خارج الخادم، اختبار استعادة شهري. افتراض تنفيذي RPO ساعة وRTO أربع ساعات مقترحان للاجتماع لا التزام. |
| الوحدة | التشغيل والامتثال |
| الأدوار المعنية | مدير نظام، شريك |
| درجة الخطورة | حرجة |
| حالة الاعتماد | يحتاج تحققًا أو موافقة رسمية |
| المنصات المرتبطة | لا توجد |
5الهدف التجاري والمشكلة التي تعالجها
أي رقم في عقد الخدمة (RPO/RTO) لا يُعلن إلا إذا أثبته اختبار الاستعادة الشهري (دليل المطور ص46).
6المجال القانوني المرتبط للمطوّر غير المتخصص
النسخ تنتهي تلقائيًا بحسب سياسة الاحتفاظ؛ الحذف عند طلب صاحب البيانات يشمل كل النسخ ضمن حدود الاحتفاظ النظامي (دليل المطور ص14) B38 الاحتفاظ والإتلاف والتجميد القانوني.
7المستخدمون والأدوار والصلاحيات
مدير النظام ينفذ. الشريك يرى تقرير الاختبار.
8شروط البدء والاعتماديات
تخزين كائنات متوافق مع S3 داخل المملكة يدعم Object Lock. خزنة مفاتيح منفصلة.
9السيناريو الأساسي خطوة بخطوة
- يوميًا
bench backup --with-filesلكل موقع. - binlogs لقاعدة MariaDB للاسترجاع لنقطة زمنية.
- نسخ الملفات الخاصة و
site_configوفهرس المتجهات. - التشفير بمفتاح ليس على خادم التطبيق.
- خادم التطبيق يكتب ولا يحذف (صلاحية كتابة فقط).
- شهريًا: استعادة في بيئة staging، مقارنة البصمات، تسجيل النتيجة.
10السيناريوهات البديلة والاستثناءات
استعادة مكتب واحد: دون التأثير على غيره (قاعدة لكل موقع). خروج مكتب: تصدير كامل ثم حذف بحسب السياسة المكتوبة B42 عقود الخدمة ومستوى الخدمة ووصول الدعم.
11المدخلات والحقول
| الاسم العربي | الاسم البرمجي | النوع | إلزامي | التحقق | القيمة الافتراضية | مصدر البيانات |
|---|---|---|---|---|---|---|
| الموقع | site | Data | نعم | — | — | الجدولة |
| نوع النسخة | kind | Select | نعم | يومية / binlog / ملفات / متجهات | — | — |
| البصمة | sha256 | Data | تلقائي | — | — | — |
| اختبار الاستعادة: النتيجة | restore_result | Select | شهري | نجح / فشل | — | المدير |
| الزمن الفعلي | measured_minutes | Int | شهري | — | — | القياس |
12المخرجات والإشعارات والسجلات والتقارير
تقرير شهري: آخر نسخة ناجحة، زمن الاستعادة المقاس، فروق البصمات.
13قواعد العمل بصيغة قابلة للتحويل إلى كود
RULE B37.1 all copies inside KSA; one immutable (Object Lock)
RULE B37.2 encryption key not stored on app server
RULE B37.3 app server credentials: write-only to backup bucket
RULE B37.4 contract RPO/RTO <= measured values from last restore test14حالات السجل وانتقالاتها وشروطها
لا ينطبق على هذه الميزة.
15نموذج البيانات والعلاقات والقيود والفهارس
Backup Run وRestore Test اقتراح هندسي.
16DocTypes المطلوبة في Frappe
Backup Run،Restore Test(في لوحة التحكم المركزية) اقتراح هندسي.
17الشاشات والعناصر والأزرار ورسائل الخطأ
لوحة التشغيل: حالة النسخ لكل موقع.
18خدمات Backend ومسؤولية كل خدمة
سكربتات التشغيل خارج Frappe (cron على الخادم) اقتراح هندسي.
19واجهات API الداخلية
لا توجد واجهة API خاصة بهذه الميزة.
20الأحداث والمهام الخلفية والجدولة وإعادة المحاولة
يومي ومستمر (binlogs) وشهري (الاختبار).
21التكاملات المرتبطة بالميزة وحدودها
لا ينطبق على هذه الميزة.
22الأمن والخصوصية والتدقيق والاحتفاظ والحذف
لا وصول حذف من خادم التطبيق؛ المفتاح في خزنة.
23حالات الاختبار
| المعرّف | النوع | السيناريو | النتيجة المتوقعة |
|---|---|---|---|
B37-T01 | تشغيل | استعادة مكتب في staging | البصمات متطابقة. |
B37-T02 | أمني | حذف نسخة من خادم التطبيق | مرفوض. |
B37-T03 | تشغيل | استرجاع لنقطة زمنية | البيانات حتى النقطة. |
24معايير القبول
- اختبار استعادة ناجح مسجل قبل أول مكتب حقيقي.
25تعريف الاكتمال (Definition of Done)
- كل قواعد العمل في هذه الصفحة منفذة في الخادم (Controller أو Service)، لا في الواجهة وحدها.
- حالات الاختبار المذكورة هنا مكتوبة اختباراتٍ آلية في إطار اختبار Frappe، وتنجح مع كل دفعة كود.
- اختبارات الصلاحيات تثبت أن مستخدمًا خارج فريق الملف لا يرى السجل في القائمة ولا برابطه المباشر ولا في البحث العام ولا في العدّادات.
- الحقول المخصصة والأدوار ومسارات الاعتماد مُصدَّرة في Fixtures التطبيق، وتظهر بعد تثبيت نظيف على موقع فارغ دون إعداد يدوي.
- لا تعديل في ملفات Frappe أو ERPNext.
- كل قيمة قانونية (مدة، نسبة، مبلغ، قائمة) محفوظة في إعداد قابل للتعديل، وموسومة بحالة اعتمادها.
- نصوص الواجهة ورسائل الخطأ بالعربية، وتخبر المستخدم بما يفعله.
- معايير القبول في هذه الصفحة مُتحقق منها ومسجلة في مصفوفة التتبع.
26القرارات المفتوحة والمخاطر والاعتمادات المطلوبة
RPO وRTO (OD-09). مزود التخزين.