لماذا تحتاج لمنصة feature flags
النشر المستمر يفترض فصلاً بين نشر الكود وتفعيل الميزة للمستخدمين. بدون هذا الفصل، كل إصدار ثنائي — إما يراه الجميع، أو لا أحد. عند حدوث مشكلة، الخيار الوحيد هو rollback كامل يستغرق 10 إلى 30 دقيقة.
Unleash يكسر هذا الارتباط: تنشر الكود، ثم تفعّل الميزة تدريجياً أو تطفئها في ثوانٍ — دون pipeline نشر ودون hotfix. ميزة غير عاملة؟ أطفئ الإشارة فوراً وحقّق بهدوء بدلاً من ليلة بيضاء.
الفائدة الثانية هي التجربة: بتعريف شريحة مستخدمين (متبنّون أوائل، خطة Pro، مستخدمو دولة محددة)، تفعّل ميزة لهم وحدهم وتقيس الأثر قبل الطرح الشامل. هذا نموذج A/B testing حقيقي في بيئة الإنتاج.
Unleash مفتوحة المصدر (Apache-2.0) تغطي هذه الحالات بمشاريع وبيئات واستراتيجيات تفعيل وسجل مراجعة كامل — دون قفل بمورّد.
مزايا Unleash المستضافة ذاتياً
- تبديلات في الوقت الفعلي — فعّل أو عطّل ميزة دون إعادة النشر.
- طرح تدريجي — افتح لـ5 %، 20 %، 50 % من المستخدمين بالاستهداف.
- بيئات منفصلة — حالات إشارات مستقلة لكل بيئة.
- SDK متعدد اللغات — عملاء رسميون لـNode.js وPython وGo وJava و.NET وRuby وPHP.
- سجل مراجعة كامل — كل تغيير يسجّل المؤلف والوقت.
- تحديثات بلا توقف —
docker compose pull && docker compose up -d.
المتطلبات
Unleash مصمم للعمل على VPS متواضع. الحد الأدنى الموصى به هو 1 vCPU و1 جيجابايت RAM — تطبيق Node.js يستهلك نحو 86 ميغابايت والـPostgreSQL 17 نحو 46 ميغابايت في وضع الخمول، أي ما مجموعه 132 ميغابايت في ظروف الاختبار. في الإنتاج مع حركة SDK نشطة، خطّط لـ256 ميغابايت كهامش أمان — VPS بجيجابايت يكفي بيُسر.
بدون نطاق، الوصول عبر نفق SSH: ssh -L 4242:127.0.0.1:<port> root@<ip-vps> ثم فتح http://localhost:4242/. للوصول الدائم من تطبيقاتك وخطوط CI، ربط نطاق من لوحة ServOrbit: nginx سيوكّل Unleash عبر HTTPS تلقائياً.
Docker يجب أن يكون مثبّتاً على VPS. قالب ServOrbit يُهيّئه مسبقاً — لا إعداد يدوي مطلوب.
نشر Unleash على VPS ServOrbit
الطلب من Marketplace ServOrbit
من منطقة عملاء ServOrbit، ثبّت Unleash بنقرة واحدة من Marketplace: اختر فئة التطوير، حدّد Unleash وأكّد طلبك. تُنشر stack Docker Compose (Unleash + PostgreSQL 17) تلقائياً مع healthcheck مدمج.
تسجيل الدخول للواجهة
افتح
https://<نطاقك>/في المتصفح. صفحة الدخول في/auth/simple/login— أدخلadminوكلمة المرور من espace client ServOrbit.إنشاء مشروع وأول flag
في واجهة Unleash، أنشئ مشروعاً (مثلاً
my-app). داخله، انقر على New feature flag. أعطه اسماً، واختر النوع — Release للطرح التدريجي، Kill switch لمفتاح أمان، Experiment لاختبار A/B — ثم أكّد. الإشارة تُنشأ معطّلة افتراضياً في جميع البيئات.ضبط استراتيجية التفعيل
انقر على الإشارة ثم على Add strategy في البيئة المختارة (افتراضياً
production). Unleash يقدم عدة استراتيجيات: Standard (مفعّل للجميع)، Gradual rollout (نسبة مئوية)، UserIDs (قائمة محددة)، Remote address (حسب IP). للطرح التدريجي، اختر Gradual rollout وحدّد النسبة عند 10 %. انقر Save strategy — الإشارة نشطة الآن لـ10 % من مستخدميك.ربط تطبيقك بـSDK
ثبّت SDK للغتك:
npm install unleash-client(Node.js)،pip install UnleashClient(Python)، أو الحزمة المعادلة في إطارك. هيئّه بـ URL الـAPI (https://<نطاقك>/api) ومفتاح CLIENT (أنشئه من Unleash → Settings → API access → Add new API token، نوع CLIENT). ثم استدعِclient.isEnabled('my-flag')أينما تريد تقييد السلوك.المراقبة والتعديل
تابع تقييمات الإشارات في تبويب Metrics. غيّر استراتيجية الطرح أو عطّل الإشارة من الواجهة — دون إعادة النشر.
لإشارات نوع Kill switch، فعّل بيانات الانطباع في SDK (impressionDataAll: true): كل تقييم ينشئ حدثاً يمكنك توجيهه إلى مكدسة observability (Glitchtip، Plausible) لربط الطرح بتغيرات مقاييسك.
إدارة البيئات والترقية
Unleash مفتوحة المصدر تنشئ بيئتَين افتراضيتَين: development وproduction. كل إشارة لها حالة مستقلة لكل بيئة — يمكنك تفعيل ميزة في development للفريق كله مع إبقاء الطرح في production عند 0 %.
لإضافة بيئة staging، اذهب إلى Unleash → Settings → Environments → Add environment. سمّها staging واحفظ. كل إشارة ستعرض الآن ثلاثة تبويبات بيئة. يجب تهيئة SDK بـenvironment: 'staging' (أو 'development') لتصل التقييمات إلى الحالة الصحيحة.
نمط شائع: تفعيل ميزة في staging لكامل فريق الجودة (استراتيجية UserIDs بقائمة البريد الداخلي)، وفي production بطرح تدريجي عند 5 %. الاستراتيجيتان تتعايشان في نفس الإشارة — دون تعارض.
الأمان ورموز API
Unleash تفصل الرموز بالنوع والبيئة. رمز CLIENT يعطي قراءة فقط لحالات الإشارات لبيئة محددة — هو الرمز الذي يُحقن في تطبيقاتك. رمز ADMIN يعطي وصولاً كاملاً لـAPI الإدارة — للسكريبتات وأدوات التكامل فقط، ولا يُضمَّن في كود العميل أبداً.
لإنشاء رمز CLIENT: Unleash → Settings → API access → Add new API token. اختر النوع CLIENT، حدّد البيئة (production) ونطاق المشاريع. انسخ القيمة المولّدة — تظهر مرة واحدة فقط. خزّنها في أسرار CI (UNLEASH_API_TOKEN) أو في مخزن الأسرار.
على ServOrbit، Unleash مرتبط بـ127.0.0.1 ومعرّض فقط عبر nginx — المنفذ 4242 غير مكشوف مباشرة من الإنترنت. nginx يضيف TLS، وكلمة المرور الأولية متاحة من منطقة العملاء؛ غيّرها عند أول تسجيل دخول.
سجل CVE وسبب تثبيت الإصدار 8.0.3
Unleash 8.0.3 مثبَّت في قالب ServOrbit لسبب محدد: صُحِّحت ثغرتان بين 8.0.0 و8.0.3. CVE-2026-63004 (CVSS 5.5، SSRF) سمحت لمدير مصادق بإطلاق طلبات خادم داخلية عبر إعداد webhooks. CVE-2026-63466 (CVSS 4.1، XSS مخزَّن) سمحت بحقن HTML في أوصاف الإشارات. كلتاهما تستلزمان المصادقة وكلتاهما مُصلَّحتان في 8.0.3. تثبيت تاغ دقيق عوضاً عن :latest يضمن أنك تعرف دائماً الإصدار الذي يعمل.