متغيرات بيئة التطبيق
يمكن لـ OpenFactory تخزين قيم بيئة بنطاق التطبيق وبنطاق الحساب، وتشفيرها في حالة السكون، وعرضها في VM تطبيق مرشح أثناء النشر. هذا مخزن أسرار مبكر مدعوم بالملفات، وليس خزنا مُدارا.
النطاق والأسبقية
- قيم الحساب افتراضيات قابلة لإعادة الاستخدام لكل تطبيق يملكه ذلك الحساب.
- قيم التطبيق تتجاوز قيم الحساب ذات الاسم نفسه.
- القيم المُدارة يكتبها رمز منتج معد وتسجل المنتج الذي يملك المفتاح.
- قيمة متغيرة تزيد
env_version؛ نشر ناجح يسجل الإصدار المطبق. الفرق يعني أن إعادة نشر مطلوبة.
يجب أن تكون الأسماء معرفات بيئة بأحرف كبيرة، ومحدودة بـ 128
حرفا، ولا يمكنها استخدام البادئة المحجوزة OPENFACTORY_. قيم
المستخدم محدودة بـ 8 KiB والتطبيق محدود بـ 100 مفتاح.
سير MCP
عمليات الإدراج تخفي القيم دائما. اكشف قيمة واحدة فقط عند الضرورة:
set_app_env(
app_id="550e8400-e29b-41d4-a716-446655440000",
set={"API_BASE_URL": "https://api.example.internal"}
)
list_app_env(app_id="550e8400-e29b-41d4-a716-446655440000")
reveal_app_env(
app_id="550e8400-e29b-41d4-a716-446655440000",
name="API_BASE_URL"
)النمط نفسه متاح كـ set_account_env، وlist_account_env،
وreveal_account_env. عمليات التعيين/الحذف على مستوى التطبيق
تعيد env_version وredeploy_hint؛ تعيين قيمة لا يغيّر VM قيد التشغيل.
سطح REST
| Method | Path | الغرض |
|---|---|---|
GET | /api/apps/{app_id}/env | قائمة مفاتيح التطبيق المخفية وحالة الإصدار |
PUT | /api/apps/{app_id}/env | تعيين/حذف معاملاتي لمفاتيح التطبيق |
POST | /api/apps/{app_id}/env/reveal | كشف نص واضح مدقّق لمفتاح تطبيق واحد |
GET | /api/account/env | قائمة مفاتيح الحساب المخفية |
PUT | /api/account/env | تعيين/حذف معاملاتي لمفاتيح الحساب |
POST | /api/account/env/reveal | كشف نص واضح مدقّق لمفتاح حساب واحد |
PUT | /api/apps/{app_id}/env/managed | منتج معد ينشر مفاتيح مُدارة |
DELETE | /api/apps/{app_id}/env/managed/{name} | المنتج يزيل مفتاحا مُدارا يملكه |
أسطح المستخدم تفرض سياق المالك المحلول. نقاط النهاية المُدارة تستخدم
اعتماد bearer من شكل <kid>.<secret> من ملف رمز المنتج المعد من
المشغّل؛ دون ذلك الملف تعيد واجهة المنتج غير متاح.
سلوك النشر
أثناء النشر، يفك الخلفية تشفير قيم الحساب، ويضع فوقها قيم التطبيق،
ويضيف حقول تشغيل المنصة، ويكتب /etc/openfactory/app.env في VM
بصلاحية 0600. تُبدأ العملية بذلك الملف كبيئتها. إذا فشل فك
التشفير، أو تسليم الملف، أو بدء التشغيل، لا يُرقَّى المرشح.
حد الأمان
- القيم المخزنة تستخدم تشفير Fernet. يجب على المشغّل توفير وحماية
OPENFACTORY_ENV_MASTER_KEY؛ فقده أو استبداله يجعل القيم القائمة غير قابلة لفك التشفير. - استجابات الإدراج مخفية. الكشوف الصريحة والتغييرات تلحق حدث تدقيق JSONL.
- التخزين الحالي ومسار التدقيق ملفات محلية. لا توفر مفاتيح مدعومة بالعتاد، ولا موافقة متعددة الأطراف، ولا تسجيلا يكشف العبث، ولا تدويرا تلقائيا، ولا ضمان استعادة من كارثة.
- سجلات التطبيق والنشر لا توفر بعد حدا كاملا لتنقيح الأسرار. عملية تطبع بيئتها، أو URL يحمل اعتمادا، أو سرا في خطأ يمكن أن تكشفه في السجلات وأدلة الاختبار.
لذلك، لا تستخدم مخزن المعاينة هذا لاعتمادات إنتاج حتى يملك نشراك تحكمات وصول مستقلة، واختبارات نسخ واستعادة، وتحقق تنقيح سجلات، وقواعد احتفاظ، وإجراء موثّق لتدوير المفاتيح. لا تضع أسرارا في الوصفات، أو الشفرة المصدرية، أو الأوامر، أو عناوين URL، أو أوصاف الاختبار، أو توقعات التحقق.
راجع نشر التطبيق لتدفق ترقية المرشح.