إدارة فرق White Label عبر API وMCP في TrekMail
ادع العملاء وتحكم في وصول النطاقات وعلّق الأعضاء أو استعدهم وراجع نشاط White Label عبر نقاط REST محددة النطاق وأدوات MCP.
تفاصيل المقال
النوع والصعوبة والخطط ومعلومات آخر تحديث.
▼
تفاصيل المقال
النوع والصعوبة والخطط ومعلومات آخر تحديث.
- النوع
- مرجع
- الصعوبة
- متوسط
- الخطط
- Pro · Agency · + White Label add-on
- آخر تحديث
- 9 سبتمبر 2026
يمكن إدارة حسابات White Label دون الرجوع إلى لوحة التحكم. تغطي REST API وخادم MCP حالة إعداد الحساب والعملاء وأعضاء الفريق والأدوار والوصول إلى النطاقات والدعوات والتعليق والإزالة والاستعادة وسجل النشاط. وتشمل مجموعة أدوات White Label نفسها العلامة التجارية، مع دليل العلامة التجارية الخاص بها.
الحد المهم بسيط: لا يمكن للاتصال منح وصول أكبر مما يملكه الشخص الذي يقف وراءه. لا يستطيع المدير المقيّد بنطاقات معينة دعوة شخص إلى نطاقات غير مرتبطة، ولا يستطيع الدور المخصص منح صلاحيات لا يملكها المستدعي.
الميزات المتاحة
يتضمن كتالوج MCP الكامل الآن 261 أداة عبر stdio وما يصل إلى 260 أداة عبر HTTP المستضاف. تساهم White Label بعدد 20 أداة: سبع للعلامة التجارية و13 لإدارة الحساب والأعضاء والنشاط.
لا تُحمّل هذه الأدوات للجميع. يقيّم TrekMail استحقاق White Label الحالي للحساب، وعضوية الشخص الحالية، والرمز أو تفويض OAuth، وأي قيد على النطاق، ومجموعات الأدوات المحددة، وإعدادات الأمان المحلية قبل إنشاء tools/list. لا يتلقى الاتصال الذي لا يملك وصول White Label المخططات مطلقا.
حالات الاستحقاق
| الحالة | المالك | الأعضاء المفوضون | الكتابة |
|---|---|---|---|
| نشط | وصول كامل تسمح به النطاقات | وصول تسمح به النطاقات والعضوية | متاحة |
| مهلة الإلغاء | وصول استرداد للقراءة فقط | إزالة وصول White Label | محظورة |
| غير متاح | لا وصول إلى White Label API أو MCP | لا وصول إلى White Label API أو MCP | محظورة |
عند توفر وصول قراءة White Label، استدع GET /api/v1/white-label أو أداة get_white_label للتمييز بين active وgrace المخصص للقراءة فقط، ولرؤية تقدم الإعداد وموعد انتهاء المهلة. لا يستطيع الحساب غير المتاح استدعاء نقطة النهاية هذه. عندما تظل بيانات اعتماد محفوظة تشير إلى نطاق White Label لم يعد الحساب قادرا على استخدامه، تعيد API الرمز scope_blocked_by_entitlement وتوضح مكان إعادة التفعيل.
النطاقات
| النطاق | ما يسمح به |
|---|---|
branding:read |
قراءة إعدادات العلامة والأصول والمضيفين وسجلات DNS وحالة الإعداد |
branding:write |
تغيير العلامة التجارية والأصول والمعاينات والمضيفين وفحوص DNS |
members:read |
قراءة العملاء وأعضاء الفريق والأدوار ووصول النطاقات وكتالوج الوصول |
members:write |
دعوة الأشخاص وتحديث الوصول أو تعليقه أو استئنافه أو إزالته أو استعادته |
activity:read |
قراءة نشاط حساب White Label وعمليات دخول الأعضاء |
تحتاج نقطة نهاية نشاط العضو إلى activity:read وmembers:read معا، لأن استجابتها تحتوي على سجل عضو بالإضافة إلى النشاط. يستخدم اتصال OAuth المستضاف محدد tools:white_label لطلب مجموعة الأدوات هذه؛ وتظل نطاقات REST الفعلية مقيدة بالحساب والعضوية.
بالنسبة إلى خادم MCP مستضاف ذاتيا، أضف white_label إلى TREKMAIL_TOOLSETS عند استخدام قائمة سماح لمجموعات الأدوات. تحترم أدوات الكتابة أيضا بوابات الأمان المحلية الموضحة أدناه.
نقاط نهاية REST
تقع جميع المسارات تحت https://trekmail.net/api/v1.
| الطريقة | المسار | النطاق | الغرض |
|---|---|---|---|
GET |
/white-label |
branding:read |
قراءة الاستحقاق والعلامة الافتراضية وتقدم الإعداد وحالة النطاقات المتاحة |
GET |
/white-label/access-catalog |
members:read |
قراءة الأدوار ومجموعات الصلاحيات والصلاحيات القابلة للمنح والنطاقات المتاحة |
GET |
/white-label/members |
members:read |
عرض الأعضاء والدعوات مع البحث ومرشحات الحالة |
POST |
/white-label/members |
members:write |
دعوة عميل أو زميل في الفريق |
GET |
/white-label/members/{id} |
members:read |
قراءة عضو واحد وعملياته التالية المسموح بها |
PATCH |
/white-label/members/{id} |
members:write |
تغيير الدور أو وصول النطاقات أو الصلاحيات المخصصة أو الملاحظة |
POST |
/white-label/members/{id}:suspend |
members:write |
إيقاف الوصول فورا وإبطال مفاتيح العضو |
POST |
/white-label/members/{id}:resume |
members:write |
استئناف عضوية معلقة |
POST |
/white-label/members/{id}:resend-invitation |
members:write |
استبدال دعوة معلقة وإرسال دعوة جديدة |
DELETE |
/white-label/members/{id} |
members:write |
إزالة الوصول وإبطال مفاتيح العضو |
POST |
/white-label/members/{id}:restore |
members:write |
استعادة عضوية مزالة دون إحياء المفاتيح القديمة |
GET |
/white-label/activity |
activity:read |
قراءة نشاط الحساب، مع ترشيح اختياري حسب الإجراء أو العضو |
GET |
/white-label/members/{id}/activity |
activity:read + members:read |
قراءة إجراءات عضو واحد وعمليات دخوله الحديثة |
تتطلب كل عملية كتابة في هذا الجدول ترويسة Idempotency-Key. يؤدي تكرار الطلب نفسه بالمفتاح نفسه إلى إعادة النتيجة الآمنة الأصلية؛ وتُحجب الأسرار المستخدمة مرة واحدة في إعادة التشغيل، مثل رمز الدعوة. تؤدي إعادة استخدام مفتاح مع نص طلب مختلف إلى idempotency_mismatch.
اقرأ كتالوج الوصول أولا
لا تضع صلاحيات الأدوار كثوابت في عملية التكامل. استدع كتالوج الوصول قبل دعوة أو تغيير في الوصول. تعكس علامات grantable عضوية المستدعي الحالية، ويمكن أن تتغير عندما يعدّل المالك تلك العضوية.
الأدوار المتاحة حاليا للدعوات الجديدة هي:
client- يدير النطاقات وصناديق البريد المخصصة دون رؤية علاقة الموزع الخاصة مع TrekMail.webmail_only- يظهر في قائمة الفريق لكنه لا يتلقى صلاحيات لوحة التحكم.domain_admin- يدير النطاقات المخصصة وDNS الخاص بها، وليس صناديق البريد.mailbox_operator- يدير صناديق البريد داخل النطاقات المخصصة، وليس النطاقات نفسها.read_only- يمكنه فحص واجهة الحساب المسموح بها دون تغييرها.custom- يتلقى فقط الصلاحيات المدرجة فيpermissions.
تتطلب بعض الأدوار domain_ids صريحة؛ ويمكن لأدوار أخرى استخدام all_domains. يخبرك كتالوج الوصول بالقاعدة المطبقة. إذا حاول المستدعي منح دور أو صلاحية أو مجموعة نطاقات أوسع، يعيد TrekMail الرمز scope_blocked_by_membership بدلا من تضييق الدعوة بصمت.
دعوة عميل
curl -s -X POST "https://trekmail.net/api/v1/white-label/members" \
-H "Authorization: Bearer tm_live_your_token" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: invite-northwind-admin-20260904" \
-d '{
"email": "admin@northwind.example",
"role": "client",
"all_domains": false,
"domain_ids": [123, 124],
"note": "Northwind primary contact"
}'
تتضمن الاستجابة العضو، وما إذا نجح تسليم البريد الإلكتروني، وعنوان URL للدعوة يستخدم مرة واحدة. لا تمحو مشكلة التسليم الدعوة، إذ يستطيع المالك نسخ عنوان URL أو إعادة إرسالها لاحقا.
للدور المخصص، اقرأ grantable_permissions من كتالوج الوصول وأرسل القيم المحددة في permissions. يلزم إذن واحد على الأقل.
متابعة حالة العضو
تتضمن كل استجابة عضو allowed_operations. استخدم هذه القائمة بدلا من التخمين:
- يمكن تحديث الدعوة المعلقة أو تعليقها أو إعادة إرسالها أو إزالتها.
- يمكن تحديث العضو النشط أو تعليقه أو إزالته.
- يمكن تحديث العضو المعلق أو استئنافه أو إزالته.
- يمكن استعادة العضو المزال.
- يظهر صف المالك للسياق، لكن لا يمكن تغييره عبر نقاط النهاية هذه.
تُرشح القائمة أيضا للمستدعي الحالي. تكون فارغة للاتصال المخصص للقراءة فقط، ولعضوية المستدعي نفسه، وللأعضاء الذين تتجاوز صلاحياتهم ما يمكن للمستدعي إدارته.
لا يستطيع المستدعون إزالة أنفسهم أو تعليق أنفسهم. ولا يستطيع المستدعون المفوضون إدارة عضو يكون وصوله أوسع من وصولهم. تعيد الانتقالات غير الصالحة membership_state_conflict مع تلميح لإعادة قراءة العضو.
يؤدي تعليق شخص أو إزالته إلى إبطال مفاتيح API وصندوق البريد المنشأة ضمن تلك العضوية. لا يؤدي استئناف العضوية أو استعادتها إلى إعادة تلك المفاتيح القديمة؛ بل يجب على الشخص إعادة الاتصال أو إنشاء بيانات اعتماد جديدة.
حدود النشاط والخصوصية
يعيد GET /white-label/activity الدعوات وتغييرات الأدوار والنطاقات وعمليات التعليق والإزالة والاستعادة وإجراءات الأمان ذات الصلة. رشّح باستخدام action وmember_id وper_page.
يجمع GET /white-label/members/{id}/activity إجراءات حساب ذلك العضو مع عمليات الدخول الحديثة، بما فيها الوقت وعنوان IP والموقع التقريبي والمتصفح ونظام التشغيل ونوع الجهاز. يتطلب هذا المسار نطاقي القراءة كليهما عن قصد. لا يستطيع المستدعون المقيدون بالنطاقات طلب سوى الأعضاء الموجودين بالكامل داخل حدود نطاقاتهم؛ ويعاد العضو غير المتاح بالرمز 404، لذلك لا تكشف نقطة النهاية عن وجود مستأجر أو عميل آخر.
أدوات MCP
| الأداة | البوابة | الغرض |
|---|---|---|
get_white_label |
Read | الاستحقاق والعلامة وتقدم الإعداد والنطاقات |
get_white_label_access_catalog |
Read | الأدوار والصلاحيات والنطاقات التي يمكن للمستدعي منحها |
list_white_label_members |
Read | البحث عن العملاء والأعضاء والدعوات أو ترشيحها |
get_white_label_member |
Read | قراءة عضو واحد والعمليات التالية المسموح بها |
invite_white_label_member |
Sending | إنشاء دعوة وإرسالها بالبريد الإلكتروني |
update_white_label_member |
Destructive | تغيير الدور أو النطاقات أو الصلاحيات أو الملاحظة |
suspend_white_label_member |
Destructive | إيقاف الوصول وإبطال المفاتيح النشطة |
resume_white_label_member |
Destructive | استئناف عضوية معلقة |
resend_white_label_invitation |
Sending | استبدال دعوة معلقة وإرسالها بالبريد الإلكتروني |
remove_white_label_member |
Destructive + confirmation | إزالة الوصول وإبطال المفاتيح النشطة |
restore_white_label_member |
Destructive | استعادة عضوية مزالة |
list_white_label_activity |
Read | قراءة نشاط الحساب |
get_white_label_member_activity |
Read | قراءة إجراءات عضو واحد وعمليات دخوله |
تتطلب أدوات الدعوة TREKMAIL_ALLOW_SENDING=true على MCP المستضاف ذاتيا عبر stdio. وتتطلب أدوات تغيير الوصول TREKMAIL_ALLOW_DESTRUCTIVE=true؛ كما تتطلب الإزالة confirm_remove=true. هذه المفاتيح عناصر تحكم محلية في الأمان وليست صلاحيات API إضافية. يطبق MCP المستضاف سياسة الأمان المعتمدة الخاصة به.
تنشئ الأدوات مفاتيح تكرار حتمية عندما لا تقدم مفتاحا. يفيد تقديم idempotency_key خاص بك عندما يمكن إعادة تشغيل سير العمل في عملية مختلفة.
سير عمل آمن للأتمتة
- استدع
get_white_label. توقف عندscope_blocked_by_entitlement؛ وفي استجابةgraceالناجحة، تابع عمليات القراءة فقط. - استدع
get_white_label_access_catalogمباشرة قبل منح الوصول. - اعرض العضو المستهدف أو اقرأه قبل تغييره.
- تحقق من
allowed_operationsوالدور المقصود والصلاحيات ومعرفات النطاقات. - استخدم مفتاح تكرار ثابتا للكتابة.
- اقرأ العضو مرة أخرى وأبلغ عن الحالة الناتجة والصلاحيات الفعلية.
- تحقق من نشاط White Label عندما تحتاج إلى سجل تدقيق للتغيير.
أخطاء توضح ما يجب فعله
| الرمز | المعنى | الخطوة التالية |
|---|---|---|
insufficient_scope |
لم تُمنح بيانات الاعتماد النطاق المطلوب مطلقا | أضف ذلك النطاق أو أعد تفويض اتصال OAuth |
scope_blocked_by_entitlement |
التفويض المحفوظ موجود، لكن White Label غير نشط له الآن | أعد تنشيط White Label، ثم أعد إصدار بيانات الاعتماد أو تفويضها |
scope_blocked_by_membership |
دور الشخص الحالي أضيق من الإجراء أو المنحة المطلوبة | اطلب من المالك تغيير العضوية، أو اطلب وصولا أقل |
member_not_manageable |
الهدف هو المالك أو المستدعي نفسه أو عضو أوسع صلاحية | اختر عضوا داخل حدود إدارة المستدعي |
membership_state_conflict |
لا تناسب العملية حالة العضو الحالية | اقرأ allowed_operations واختر أحد تلك الإجراءات |
missing_idempotency_key |
أُرسلت عملية كتابة دون مفتاح | أعد المحاولة باستخدام Idempotency-Key ثابت |
idempotency_mismatch |
أعيد استخدام المفتاح نفسه لمدخلات مختلفة | استخدم الإدخال الأصلي أو أنشئ مفتاحا جديدا |
مقالات ذات صلة
انتقل إلى الأدلة القريبة التي تُكمل سير العمل.