إنشاء البيئات
يمكنك إنشاء بيئة جديدة عن طريق التفرع من أي بيئة نشطة موجودة. تستنسخ العملية قاعدة البيانات المصدر وتنسخ اختياريًا موارد التكوين، مما يمنحك مساحة عمل معزولة لتطوير أو اختبار التغييرات.
كيفية إنشاء بيئة جديدة
Section titled “كيفية إنشاء بيئة جديدة”- افتح القائمة المنسدلة محدد البيئة في شريط التنقل العلوي لـ Backend Console.
- انقر على زر + إنشاء بيئة.
- ستظهر نافذة حوار modal مع خيارات التكوين التالية.
حقول التكوين
Section titled “حقول التكوين”- التفرع من: حدد البيئة المصدر للتفرع منها. تتوفر فقط البيئات ذات الحالة
activeكمصادر. - اسم البيئة: أدخل اسمًا فريدًا للبيئة الجديدة (مثل
stagingأوfeature-authأوqa-sprint-12). يجب أن تحتوي الأسماء على أحرف أبجدية رقمية وشرطات وشرطات سفلية فقط.
وضع الفرع
Section titled “وضع الفرع”اختر كيفية استنساخ قاعدة البيانات المصدر:
- Full (schema + بيانات): ينشئ نسخة كاملة من قاعدة البيانات المصدر، بما في ذلك جميع هياكل الجداول وبيانات الصفوف. استخدمه عندما تحتاج إلى بيانات واقعية للاختبار أو QA.
- System (schema فقط): ينسخ فقط schema قاعدة البيانات (الجداول والأعمدة والفهارس والعلاقات والـ enums والـ views) دون أي بيانات صفوف. استخدمه لبيئات التطوير النظيفة حيث تريد البدء بمجموعة بيانات فارغة.
نسخ التكوين من المصدر
Section titled “نسخ التكوين من المصدر”انسخ اختياريًا تكوينات الموارد من البيئة المصدر. يتم التحكم في كل خيار بواسطة خانة اختيار وتتطلب دور ProjectOwner:
- موفرو تخزين الملفات: انسخ تكوينات موفري التخزين (S3 و GCS و Azure و Filestack) إلى البيئة الجديدة. يحصل كل موفر منسوخ على معرف فريد جديد.
- مسارات البوابة: انسخ مسارات API gateway المخصصة و webhooks. يحافظ هذا على تكوين التوجيه في البيئة الجديدة.
- تكوين الأمان: انسخ أصول CORS وإعدادات حد المعدل. يضمن هذا أن البيئة الجديدة ترث نفس سياسات الشبكة مثل الأصل.
- متغيرات البيئة: انسخ أزواج المفتاح والقيمة لمتغيرات البيئة. يسمح هذا للبيئة الجديدة بالبدء بنفس أسرار التكوين مثل المصدر.
ملاحظة: تم استبعاد موفري المصادقة عمدًا من خيارات النسخ لأسباب أمنية. يجب تكوين أسرار عميل OAuth وبيانات اعتماد Cognito ومفاتيح المصادقة الأخرى بشكل مستقل لكل بيئة لمنع مشاركة بيانات الاعتماد عن طريق الخطأ.
- انقر على إنشاء بيئة لبدء عملية التفرع.

ما يحدث أثناء التفرع
Section titled “ما يحدث أثناء التفرع”عند إنشاء بيئة جديدة، تحدث التسلسل التالي:
- التحقق: يتحقق النظام من أن اسم البيئة فريد وأن البيئة المصدر في حالة
active. - إنشاء السجل: يتم إنشاء سجل بيئة جديد وتسجيله مع المشروع في مخزن تكوين المنصة.
- استنساخ قاعدة البيانات: يتم استنساخ قاعدة بيانات PostgreSQL المصدر. في وضع Full، يتم تضمين جميع البيانات؛ في وضع System، يتم نسخ schema فقط (هياكل الجداول).
- مستخدمو قاعدة البيانات: يتم توفير بيانات اعتماد قاعدة بيانات آمنة جديدة تلقائيًا للبيئة المستنسخة.
- تسجيل التكوين: يتم ربط البيئة الجديدة بالإعدادات العامة للمشروع.
- نسخ الموارد: إذا تم التحديد، يتم نسخ موفري الملفات ومسارات البوابة وتكوين الأمان ومتغيرات البيئة من المصدر إلى البيئة الجديدة.
- تفعيل الحالة: تنتقل حالة البيئة إلى
activeوتصبح متاحة للاستخدام.
إذا فشلت أي خطوة، يقوم النظام بإجراء rollback تلقائي: يتم إزالة قاعدة البيانات المستنسخة وبيانات الاعتماد المرتبطة، مما يضمن عدم بقاء موارد يتيمة.
GraphQL API
Section titled “GraphQL API”Mutation: branchEnvironment
Section titled “Mutation: branchEnvironment”mutation BranchEnvironment($input: BranchEnvironmentInput!) { branchEnvironment(input: $input) { success message environment { id name parentId parentName branchMode branchedAt status createdAt updatedAt } }}Variables:
{ "input": { "projectId": "f7e4a264-d659-4719-91e8-c2d74654e529", "name": "staging", "sourceEnvironment": "master", "mode": "full", "copyFileProviders": true, "copyGatewayRoutes": true, "copySecurityConfig": false, "copyEnvironmentVariables": true }}Response:
{ "data": { "branchEnvironment": { "success": true, "message": "Environment created successfully", "environment": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "staging", "parentId": "master-env-id", "parentName": "master", "branchMode": "full", "branchedAt": "2026-03-08T20:00:00Z", "status": "active", "createdAt": "2026-03-08T20:00:00Z", "updatedAt": "2026-03-08T20:00:05Z" } } }}Input Fields
Section titled “Input Fields”| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
projectId | String | نعم | المعرف الفريد للمشروع |
name | String | نعم | اسم البيئة الجديدة |
sourceEnvironment | String | نعم | اسم البيئة للتفرع منها |
mode | String | نعم | وضع الاستنساخ: "full" أو "system" |
copyFileProviders | Boolean | لا | نسخ تكوينات موفري تخزين الملفات |
copyGatewayRoutes | Boolean | لا | نسخ مسارات API gateway المخصصة |
copySecurityConfig | Boolean | لا | نسخ إعدادات CORS وحد المعدل |
copyEnvironmentVariables | Boolean | لا | نسخ أزواج المفتاح والقيمة لمتغيرات البيئة |
متطلبات الأذونات
Section titled “متطلبات الأذونات”- إنشاء بيئة بدون علامات نسخ يتطلب وصولًا قياسيًا للمشروع.
- تفعيل أي علامة نسخ (
copyFileProvidersأوcopyGatewayRoutesأوcopySecurityConfigأوcopyEnvironmentVariables) يتطلب دور ProjectOwner، لأن هذه العمليات تتضمن نسخ بيانات تكوين حساسة.