Modal
ربط
اربط Modal من الطرفية. مرّر --help للأعلام التي يقبلها Modal، إضافة إلى --no-browser للبيئات بلا واجهة.
polylane cloud connect --provider modalمعرّف رمز وسرّ رمز من إعدادات Modal الخاصة بك.
يُربط Modal برمز منشأ في إعدادات Modal الخاصة بك. يحلّ رمز Modal إلى مساحة عمل واحدة بالضبط، فيربط رمز واحد مساحة عمل واحدة. تُشفَّر الرموز قبل تخزينها، ولا يراها الوكيل أبداً.
- افتح Modal، وانتقل إلى Settings → Tokens.
- انقر New token وانسخ كلاً من معرّف الرمز (يبدأ بـ
ak-) وسرّ الرمز (يبدأ بـas-). - الصق القيمتين في Polylane.
- يتحقق Polylane من الزوج ويبدأ المزامنة.
يكتشف Polylane بيئاتك، وداخل كل واحدة منها، تطبيقاتك ودوالك بما فيها نقاط نهاية الويب، وبيئات sandbox الجارية، والأحجام، والأسرار، والطوابير، والقواميس. تُخطَّط الأسرار بالاسم فقط: لا يعرض Modal قيم الأسرار أبداً.
لا يوفّر Modal خيار رمز للقراءة فقط، فيحمل الرمز أذونات الحساب الذي أنشأه. لا يقرأ Polylane من Modal إلا أثناء المزامنة.
استكشاف الأخطاء
خطأ "Invalid token"
- كلا معرّف الرمز وسرّ الرمز مطلوبان؛ ولا يستطيع أي منهما وحده المصادقة.
- تحقق من أن الرمز لم يُلغَ في إعدادات Modal.
- تأكد من أنك نسخت القيمة كاملة، بما في ذلك البادئتين
ak-وas-.
موارد مفقودة
- تُكتشف الدوال عبر تطبيقها، فلا يملك التطبيق الذي لم يُنشر أبداً دوالاً تُعرض.
- تُتخطى بيئات sandbox المنتهية: لا تظهر إلا الجارية.
- أطلق مزامنة يدوية للتحديث قبل التمرير المجدول التالي.
المقاييس والتكلفة
- تحمل التطبيقات رسمَين بيانيين: سطور سجل stderr لكل فترة، والإنفاق المقاس لكل ساعة. لا يبلّغ Modal إلا عن مقاييس لحظية لكل ما عداهما، فلا تملك الدوال وبيئات sandbox والأحجام رسوماً بيانية خاصة بها.
- أعداد stderr سطور سجل لا أعطال: تراجع Python واحد عدة سطور.
- يحتفظ Modal بالسجلات 24 ساعة، فلا يمتد الرسم البياني أبداً إلى ما قبل ذلك.
- يُنسب الإنفاق لكل تطبيق، ولا يثبّت Modal الساعة إلا بعد انتهائها، فتبدو أحدث ساعة منخفضة حتى تستقر.
اربط Modal من مهمة CI أو أي بيئة أخرى بلا متصفح.
لا يحتاج ربط Modal إلى متصفح: نقطة النهاية نفسها التي تستدعيها وحدة التحكم تناسب مهمة CI. ينشئ طلب POST موثَّق واحد الاتصال ويبدأ المزامنة الأولى.
المتطلبات الأساسية
- مفتاح API من Polylane بنطاقَي
cloud_accounts:writeوcloud_accounts:read. انظر مفاتيح API وOAuth. - معرّف مساحة عملك، الذي يبدأ بـ
ws_. اقرأه منGET /v1/workspacesبالمفتاح نفسه. - زوج رموز من Modal من Settings → Tokens: معرّف الرمز (يبدأ بـ
ak-) وسرّ الرمز (يبدأ بـas-).
إنشاء الاتصال
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "modal",
"workspaceId": "ws_0abc123",
"tokenId": "ak-...",
"tokenSecret": "as-..."
}'
يحلّ الرمز إلى مساحة عمل Modal واحدة بالضبط، فيربط استدعاء واحد مساحة عمل واحدة.
تسرد الاستجابة ما رُبط، مع المزامنة الأولى جارية أصلاً. مختصرة إلى الحقلين اللذين تقرؤهما بقية التدفق:
{
"success": true,
"result": {
"provider": "modal",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
يقع الحساب المربوط أصلاً في failures بدلاً من accounts، فلا يكرر تكرار الاستدعاء اتصالاً أبداً.
انتظار المزامنة الأولى
استطلع كل حساب مُعاد عبر id الخاص به حتى تصل status إلى ready (new عند التسجيل، وsyncing أثناء تدفق الموارد):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
أعطِ الحلقة موعداً نهائياً ليُفشل الربط الفاشل المهمة بدلاً من تعليقها. وبعد أن يصبح الحساب ready، تكون موارده في Topology ويكون Polylane قد بدأ فحصه الأول.
الفصل من API
يوقف حذف الاتصال كل مزامنة وفحص ويحذف بيانات الاعتماد التي احتفظ بها Polylane. يحتاج الاستدعاء إلى نطاق cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
ثم ألغِ بيانات اعتماد Modal على جانب المزود، كما هو موضح تحت الفصل أدناه.
فصل
يوقف الفصل كل مزامنة وفحص ويحذف بيانات الاعتماد التي احتفظ بها Polylane. يُزال أيضاً كل ما أعدّه Polylane في Modal؛ ولا يبقى شيء.
polylane cloud disconnect <id>الأدوات
5العمليات التي يستطيع الوكلاء إجراءها في المحادثات.
الموارد المدعومة
10أنواع الموارد التي تظهر في مخطط بنيتك التحتية.