ساخت یک نقش
یک نام و فهرستی از مجوزها. آنچه برمیگردد بلندتر از چیزی است که فرستادهاید.
فراخوانی واقعی را با کلید خودتان روی فضای کاری شما اجرا میکند.
POST /roles
یک نام و فهرستی از مجوزها. آنچه برمیگردد بلندتر از چیزی است که فرستادهاید.
نمونه
نیازمند roles:write است. 201 برمیگرداند. یک نقش سفارشی builtin: null، editable: true و deletable: true است، و تا وقتی کسی روی آن منتقل نشود هیچکس آن را ندارد.
curl -X POST "$OE/roles" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "name": "Support", "description": "Answers the shared inboxes and nothing else.", "permissions": ["emails:send", "threads:write", "labels:write", "contacts:read"] }'{ "object": "role", "id": "role_2b81de079c1f0a4b7e05d386", "name": "Support", "description": "Answers the shared inboxes and nothing else.", "permissions": [ "emails:send", "emails:read", "threads:read", "threads:write", "labels:read", "labels:write", "contacts:read" ], "builtin": null, "editable": true, "deletable": true, "members": 0, "apiKeys": 0, "createdAt": "2026-08-30T10:41:02.000Z", "updatedAt": "2026-08-30T10:41:02.000Z"}چهار مجوز رفت و هفتتا برگشت. emails:send مستلزم emails:read است، threads:write مستلزم threads:read و labels:write مستلزم labels:read. نقشی که بتواند رشتهای را بایگانی کند که نمیتواند بازش کند، تیکی است که کسی فراموش کرده نه سیاستی که کسی منظور داشته باشد، پس این استلزام ذخیره میشود نه رد. فهرست همچنین به ترتیب متعارف برمیگردد، و همین است که به کلاینت اجازه میدهد دو نقش را بهصورت JSON مقایسه کند و تصمیم بگیرد دکمهٔ ذخیره فعال باشد یا نه.
مجوز ناشناخته اینجا رد میشود نه اینکه کنار گذاشته شود: templates:writ یعنی invalid_parameter، یک 422 که آن رشته را نام میبرد. سرویس بیصدا نرمالسازی میکند چون همان مسیر seeding و مسیر MCP هم هست، جایی که شکستدادن کل یک نقش به خاطر یک واژهٔ ناشناخته بدتر میبود. روی فراخوانیای که کسی عمداً کرده این کار نادرست است. یک 200 که نقشی را با خود بیاورد که نمیتواند قالبها را ویرایش کند چیزی به او نگفته است، و او بعدازظهرش را پایش میگذارد.
نام تکراری روی همان فضای کاری role_name_taken است، یک 409. بیستوپنجمین نقش سفارشی role_limit_reached است، یک 422. این نگه میدارد که ماتریس دسترسیها پیش از آنکه دیگر کسی بازبینیاش نکند چقدر بزرگ شود، و مرز پلن نیست.
ساختن یک نقش آن را به کسی نمیدهد. جابهجاکردن افراد روی آن PATCH /members/{userId} است، و نشانهرفتن یک کلید به آن جایی انجام میشود که کلید صادر میشود.