PlanetScale
ربط
اربط PlanetScale من الطرفية. مرّر --help للأعلام التي يقبلها PlanetScale، إضافة إلى --no-browser للبيئات بلا واجهة.
polylane cloud connect --provider planetscaleتفويض OAuth، أو رمز خدمة من إعدادات مؤسسة PlanetScale الخاصة بك.
يُربط PlanetScale عبر OAuth: انقر Connect with PlanetScale، وفوّض حق القراءة على PlanetScale، فتُعاد توجيهك مع بدء المزامنة أصلاً. إذا كان حساب PlanetScale الخاص بك يستطيع الوصول إلى أكثر من مؤسسة، فاختر المؤسسة التي تريد ربطها عند المطالبة. تُشفَّر الرموز قبل تخزينها، ولا يراها الوكيل أبداً.
بديل رمز الخدمة
إن كنت تفضّل بيانات اعتماد طويلة الأمد، فاربط برمز خدمة بدلاً من ذلك:
- افتح PlanetScale، وانتقل إلى Settings → Service tokens في مؤسستك.
- انقر Create service token وانسخ كلاً من معرّف الرمز والرمز.
- امنح الرمز حق القراءة على المؤسسة وقواعد بياناتها (مثل
read_databasesوread_branches). - الصق معرّف الرمز والرمز في Polylane. إذا كان الرمز يستطيع الوصول إلى أكثر من مؤسسة، فقدّم أيضاً اسم المؤسسة التي تريد ربطها.
- يتحقق Polylane من الرمز ويبدأ المزامنة.
يغطي كل اتصال مؤسسة PlanetScale واحدة. يكتشف Polylane قواعد بياناتها وفروعها، بما في ذلك الحالة والخطة والمنطقة ونشاط المخطط.
استكشاف الأخطاء
خطأ "Invalid service token"
- كلا معرّف الرمز والرمز مطلوبان؛ ولا يستطيع الرمز وحده المصادقة.
- تحقق من أن الرمز لم يُحذف في إعدادات PlanetScale.
- تأكد من أن الرمز يملك حق القراءة على المؤسسة.
خطأ "Multiple PlanetScale organizations are reachable"
- تستطيع بيانات الاعتماد الوصول إلى أكثر من مؤسسة، فسمّ المؤسسة التي تريد ربطها.
- عند الربط عبر OAuth في وحدة التحكم، اختر المؤسسة عند المطالبة بعد التفويض.
- عند الربط عبر API، عيّن حقل
organizationإلى اسم المؤسسة.
موارد مفقودة
- قد يستغرق PlanetScale بضع دقائق لمزامنة كل شيء.
- أطلق Sync يدوياً من رأس الحساب للتحديث.
الفصل
افصل الحساب في Polylane، ثم احذف رمز الخدمة من إعدادات مؤسسة PlanetScale الخاصة بك.
اربط PlanetScale من مهمة CI أو أي بيئة أخرى بلا متصفح.
لا يحتاج ربط PlanetScale إلى متصفح: نقطة النهاية نفسها التي تستدعيها وحدة التحكم تناسب مهمة CI. ينشئ طلب POST موثَّق واحد الاتصال ويبدأ المزامنة الأولى.
المتطلبات الأساسية
- مفتاح API من Polylane بنطاقَي
cloud_accounts:writeوcloud_accounts:read. انظر مفاتيح API وOAuth. - معرّف مساحة عملك، الذي يبدأ بـ
ws_. اقرأه منGET /v1/workspacesبالمفتاح نفسه. - زوج رموز خدمة من PlanetScale من Settings → Service tokens في مؤسستك، مع صلاحية قراءة على المؤسسة (مثل
read_databasesوread_branches). يحتاج تدفق OAuth في وحدة التحكم إلى متصفح؛ ولا تحتاج رموز الخدمة إليه.
إنشاء الاتصال
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "planetscale",
"workspaceId": "ws_0abc123",
"tokenId": "<service-token-id>",
"token": "<service-token>",
"organization": "my-org"
}'
يربط استدعاء واحد مؤسسة PlanetScale واحدة.
- لا يجوز حذف
organizationإلا حين يصل الرمز إلى مؤسسة واحدة بالضبط؛ وإلا يفشل الاستدعاء بالرمز400الذي يسرد أسماء المؤسسات التي يمكن الوصول إليها.
تسرد الاستجابة ما رُبط، مع المزامنة الأولى جارية أصلاً. مختصرة إلى الحقلين اللذين تقرؤهما بقية التدفق:
{
"success": true,
"result": {
"provider": "planetscale",
"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"
ثم ألغِ بيانات اعتماد PlanetScale على جانب المزود، كما هو موضح تحت الفصل أدناه.
فصل
يوقف الفصل كل مزامنة وفحص ويحذف بيانات الاعتماد التي احتفظ بها Polylane. يزيل Polylane ما تسمح له API الخاصة بـ PlanetScale بإزالته. ويبقى ما يلي حتى تزيله بنفسك:
- OAuth grant
polylane cloud disconnect <id>الأدوات
2العمليات التي يستطيع الوكلاء إجراءها في المحادثات.
الموارد المدعومة
2أنواع الموارد التي تظهر في مخطط بنيتك التحتية.