ניהול צוותי White Label דרך API ו-MCP ב-TrekMail
הזמינו לקוחות, שלטו בגישה לדומיינים, השעו או שחזרו חברים ובדקו פעילות White Label דרך נקודות קצה מוגבלות REST וכלי MCP.
פרטי המאמר
סוג, רמת קושי, תוכניות ומידע על עדכון אחרון.
▼
פרטי המאמר
סוג, רמת קושי, תוכניות ומידע על עדכון אחרון.
- סוג
- חומר עזר
- רמת קושי
- בינוני
- תוכניות
- Pro · Agency · + White Label add-on
- עודכן לאחרונה
- 15 באוק׳ 2026
אפשר לנהל חשבונות White Label בלי לחזור ללוח הבקרה. REST API ושרת MCP מכסים את מצב הגדרת החשבון, לקוחות וחברי צוות, תפקידים, גישה לדומיינים, הזמנות, השעיות, הסרות, שחזורים, מגבלות אחסון של לקוחות והיסטוריית פעילות. המיתוג נכלל באותה ערכת כלים של White Label ובמדריך המיתוג הייעודי שלה.
הגבול החשוב פשוט: חיבור לעולם אינו יכול להעניק גישה רחבה יותר מזו שכבר יש לאדם שמאחוריו. מנהל שמוגבל לדומיינים מסוימים אינו יכול להזמין מישהו לדומיינים לא קשורים, ותפקיד מותאם אישית אינו יכול להעניק הרשאות שאין למבצע הקריאה.
מה זמין
קטלוג MCP המלא כולל כעת 284 כלים דרך stdio ועד 283 כלים דרך HTTP מתארח. White Label מוסיף 23 כלים: שבעה למיתוג, 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 |
קריאת פעולות של חבר אחד וכניסות אחרונות |
GET |
/white-label/client-limits |
members:read |
הצגת מגבלות האחסון של הלקוחות, עם מה ששמור, משותף ובשימוש |
POST |
/white-label/client-limits |
members:write |
מתן מגבלת אחסון לדומיינים, או שינוי המגבלה שהם כבר חולקים |
GET |
/white-label/client-limits/{id} |
members:read |
קריאת מגבלת אחסון אחת של לקוח |
PATCH |
/white-label/client-limits/{id} |
members:write |
שינוי גודל המגבלה, קבוצת הדומיינים המלאה שלה, או שניהם |
DELETE |
/white-label/client-limits/{id} |
members:write |
הסרת מגבלה; הדומיינים שלה חוזרים לאחסון של החשבון |
כל כתיבה בטבלה הזו דורשת כותרת 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, כך שנקודת הקצה אינה חושפת שדייר או לקוח אחר קיים.
מגבלות אחסון של לקוחות
מגבלת אחסון של לקוח נותנת לדומיינים של הלקוח כמות מקום אחת, ב-MB, לתיבות הדואר ול-Drive שלהם. איך זה עובד בלוח הבקרה מוסבר במגבלת אחסון נפרדת לכל לקוח שלכם. מגבלה שהדומיינים שלה לא נמצאים אצל אף אחד בצוות, למשל מגבלה שנוצרה כאן לפני שהלקוח הוזמן, מופיעה בדף צוות ולקוחות בקטע מגבלות אחסון ללא לקוח.
- קריאה דורשת
members:read. קורא שמוגבל לחלק מהדומיינים רואה רק מגבלות שכל הדומיינים שלהן שייכים לו. מגבלה של לקוח אחר, או מגבלה שחלה גם על דומיין מחוץ לטווח שלו, לא מופיעה ברשימה ומחזירה404, כמו מזהה שלא קיים. - שינוי דורש
members:writeוקורא שמגיע לכל הדומיינים בחשבון. חבר שמוגבל לחלק מהדומיינים מקבל403 scope_blocked_by_membership; מפתח שמוגבל לחלק מהדומיינים מקבל403 token_resource_constrained. POSTפועל כמו הדף צוות ולקוחות: דומיינים בלי מגבלה מקבלים מגבלה חדשה (201); אם הדומיינים כבר חולקים מגבלה אחת, היא משתנה, והדומיינים שצוינו ואין להם מגבלה מצטרפים אליה (200).PATCHמקבלstorage_limit_mb,domain_idsאו את שניהם.domain_idsמחליף את כל הקבוצה, ודומיינים שלא נכללו חוזרים לאחסון של החשבון.- כל מגבלה מחזירה
storage_limit_mb,domain_ids,allocated_mb(גדלים קבועים של תיבות),pending_invites_mb(גדלים קבועים של הזמנות פתוחות),pool_mb(מה שתיבות עם אחסון משותף חולקות),used_bytesו-member_ids.
כל רשומת חבר כוללת את client_limit: המגבלה האחת שכל הדומיינים של החבר נמצאים תחתיה, עם id, storage_limit_mb, allocated_mb ו-used_bytes, או null. עבור קורא שמוגבל לחלק מהדומיינים הערך הוא null גם כשהמגבלה הזו חלה על דומיין מחוץ לטווח שלו.
הגודל של תיבת דואר עצמה נקבע עם PATCH /mailboxes/{id}/storage (mailboxes:write) או עם הכלי set_mailbox_storage, כפי שמתואר בסקירת ה-REST API.
כלי 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 | קריאת פעולות וכניסות של חבר אחד |
list_client_limits |
Read | הצגת מגבלות האחסון של הלקוחות והשימוש בהן |
set_client_limit |
Destructive | מתן מגבלה לדומיינים, שינויה או החלפת קבוצת הדומיינים שלה |
remove_client_limit |
Destructive + confirmation | הסרת מגבלה; הדומיינים שלה חוזרים לאחסון של החשבון |
כלי הזמנה דורשים TREKMAIL_ALLOW_SENDING=true ב-MCP מסוג stdio באחסון עצמי. כלים לשינוי גישה והכלים של מגבלות אחסון של לקוחות דורשים TREKMAIL_ALLOW_DESTRUCTIVE=true; הסרת חבר או מגבלה דורשת גם confirm_remove=true. ל-set_mailbox_storage, שאינו חלק מערכת White Label, יש אותה דרישה. המתגים האלה הם בקרות בטיחות מקומיות, לא הרשאות 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 |
אותו מפתח שימש שוב לקלט אחר | השתמשו בקלט המקורי או צרו מפתח חדש |
client_storage_limit_exceeded |
גודל קבוע של תיבה לא נכנס במה שנותר ממגבלת הלקוח | בחרו לכל היותר details.available_mb, השתמשו באחסון משותף או הגדילו את המגבלה |
client_storage_below_usage |
התיבה תהיה קטנה ממה שהיא כבר מאחסנת | בחרו לפחות details.used_mb, או אחסון משותף |
client_storage_limit_too_low |
המגבלה תהיה נמוכה ממה שהדומיינים שלה שומרים או מאחסנים | בחרו לפחות details.minimum_mb |
client_storage_domains_conflict |
הדומיינים נמצאים תחת מגבלות שונות | שנו כל מגבלה על הדומיינים שלה, או הוציאו קודם דומיין מהמגבלה שלו |
מאמרים קשורים
קפצו למדריכים הסמוכים שממשיכים את זרימת העבודה.