Utwórz rolę
Nazwa i lista uprawnień. To, co wraca, jest dłuższe niż to, co wysłałeś.
Uruchamia prawdziwe wywołanie na twojej przestrzeni roboczej, twoim własnym kluczem.
POST /roles
Nazwa i lista uprawnień. To, co wraca, jest dłuższe niż to, co wysłałeś.
Przykład
Wymaga roles:write. Zwraca 201. Rola własna ma builtin: null, editable: true i deletable: true i nie ma jej nikt, dopóki ktoś nie zostanie na nią przeniesiony.
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"}Weszły cztery uprawnienia, wróciło siedem. emails:send implikuje emails:read, threads:write implikuje threads:read, labels:write implikuje labels:read. Rola, która może zarchiwizować wątek, którego nie może otworzyć, to zapomniany checkbox, a nie polityka, którą ktokolwiek ma na myśli, więc implikacja jest zapisywana, a nie odrzucana. Lista wraca też w kanonicznej kolejności, co pozwala klientowi porównać dwie role jako JSON i zdecydować, czy przycisk zapisu jest aktywny.
Nieznane uprawnienie JEST tutaj odrzucane, a nie pomijane: templates:writ to invalid_parameter, 422, z podaniem tego ciągu. Usługa normalizuje po cichu, bo jest też ścieżką seedowania i ścieżką MCP, gdzie wywalenie całej roli przez jedno nierozpoznane słowo byłoby gorsze. Przy wywołaniu wykonanym świadomie przez człowieka jest to niewłaściwe. 200 niosące rolę, która nie może edytować szablonów, nie powiedziało mu nic, a on spędzi nad tym popołudnie.
Zduplikowana nazwa w tej samej przestrzeni roboczej to role_name_taken, 409. Dwudziesta piąta rola własna to role_limit_reached, 422. Pilnuje, jak dużą może się stać macierz, zanim nikt jej już nie audytuje, i nie jest granicą planu.
Utworzenie roli nie daje jej nikomu. Przenoszenie na nią osób to PATCH /members/{userId}, a skierowanie na nią klucza robi się tam, gdzie klucz się wydaje.