تخطَّ إلى المحتوى

إنشاء البيئات

يمكنك إنشاء بيئة جديدة عن طريق التفرع من أي بيئة نشطة موجودة. تستنسخ العملية قاعدة البيانات المصدر وتنسخ اختياريًا موارد التكوين، مما يمنحك مساحة عمل معزولة لتطوير أو اختبار التغييرات.


  1. افتح القائمة المنسدلة محدد البيئة في شريط التنقل العلوي لـ Backend Console.
  2. انقر على زر + إنشاء بيئة.
  3. ستظهر نافذة حوار modal مع خيارات التكوين التالية.
  • التفرع من: حدد البيئة المصدر للتفرع منها. تتوفر فقط البيئات ذات الحالة active كمصادر.
  • اسم البيئة: أدخل اسمًا فريدًا للبيئة الجديدة (مثل staging أو feature-auth أو qa-sprint-12). يجب أن تحتوي الأسماء على أحرف أبجدية رقمية وشرطات وشرطات سفلية فقط.

اختر كيفية استنساخ قاعدة البيانات المصدر:

  • Full (schema + بيانات): ينشئ نسخة كاملة من قاعدة البيانات المصدر، بما في ذلك جميع هياكل الجداول وبيانات الصفوف. استخدمه عندما تحتاج إلى بيانات واقعية للاختبار أو QA.
  • System (schema فقط): ينسخ فقط schema قاعدة البيانات (الجداول والأعمدة والفهارس والعلاقات والـ enums والـ views) دون أي بيانات صفوف. استخدمه لبيئات التطوير النظيفة حيث تريد البدء بمجموعة بيانات فارغة.

انسخ اختياريًا تكوينات الموارد من البيئة المصدر. يتم التحكم في كل خيار بواسطة خانة اختيار وتتطلب دور ProjectOwner:

  • موفرو تخزين الملفات: انسخ تكوينات موفري التخزين (S3 و GCS و Azure و Filestack) إلى البيئة الجديدة. يحصل كل موفر منسوخ على معرف فريد جديد.
  • مسارات البوابة: انسخ مسارات API gateway المخصصة و webhooks. يحافظ هذا على تكوين التوجيه في البيئة الجديدة.
  • تكوين الأمان: انسخ أصول CORS وإعدادات حد المعدل. يضمن هذا أن البيئة الجديدة ترث نفس سياسات الشبكة مثل الأصل.
  • متغيرات البيئة: انسخ أزواج المفتاح والقيمة لمتغيرات البيئة. يسمح هذا للبيئة الجديدة بالبدء بنفس أسرار التكوين مثل المصدر.

ملاحظة: تم استبعاد موفري المصادقة عمدًا من خيارات النسخ لأسباب أمنية. يجب تكوين أسرار عميل OAuth وبيانات اعتماد Cognito ومفاتيح المصادقة الأخرى بشكل مستقل لكل بيئة لمنع مشاركة بيانات الاعتماد عن طريق الخطأ.

  1. انقر على إنشاء بيئة لبدء عملية التفرع.

نافذة التفرع للبيئة مع خيارات النسخ


عند إنشاء بيئة جديدة، تحدث التسلسل التالي:

  1. التحقق: يتحقق النظام من أن اسم البيئة فريد وأن البيئة المصدر في حالة active.
  2. إنشاء السجل: يتم إنشاء سجل بيئة جديد وتسجيله مع المشروع في مخزن تكوين المنصة.
  3. استنساخ قاعدة البيانات: يتم استنساخ قاعدة بيانات PostgreSQL المصدر. في وضع Full، يتم تضمين جميع البيانات؛ في وضع System، يتم نسخ schema فقط (هياكل الجداول).
  4. مستخدمو قاعدة البيانات: يتم توفير بيانات اعتماد قاعدة بيانات آمنة جديدة تلقائيًا للبيئة المستنسخة.
  5. تسجيل التكوين: يتم ربط البيئة الجديدة بالإعدادات العامة للمشروع.
  6. نسخ الموارد: إذا تم التحديد، يتم نسخ موفري الملفات ومسارات البوابة وتكوين الأمان ومتغيرات البيئة من المصدر إلى البيئة الجديدة.
  7. تفعيل الحالة: تنتقل حالة البيئة إلى active وتصبح متاحة للاستخدام.

إذا فشلت أي خطوة، يقوم النظام بإجراء rollback تلقائي: يتم إزالة قاعدة البيانات المستنسخة وبيانات الاعتماد المرتبطة، مما يضمن عدم بقاء موارد يتيمة.


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"
}
}
}
}
الحقلالنوعمطلوبالوصف
projectIdStringنعمالمعرف الفريد للمشروع
nameStringنعماسم البيئة الجديدة
sourceEnvironmentStringنعماسم البيئة للتفرع منها
modeStringنعموضع الاستنساخ: "full" أو "system"
copyFileProvidersBooleanلانسخ تكوينات موفري تخزين الملفات
copyGatewayRoutesBooleanلانسخ مسارات API gateway المخصصة
copySecurityConfigBooleanلانسخ إعدادات CORS وحد المعدل
copyEnvironmentVariablesBooleanلانسخ أزواج المفتاح والقيمة لمتغيرات البيئة
  • إنشاء بيئة بدون علامات نسخ يتطلب وصولًا قياسيًا للمشروع.
  • تفعيل أي علامة نسخ (copyFileProviders أو copyGatewayRoutes أو copySecurityConfig أو copyEnvironmentVariables) يتطلب دور ProjectOwner، لأن هذه العمليات تتضمن نسخ بيانات تكوين حساسة.