Przejdź do dokumentacji
API

Zaktualizuj rolę

Każde pole opcjonalne, a `permissions` zastępuje całą listę.

PATCHapi.openemail.uk/roles/{id}

Uruchamia prawdziwe wywołanie na twojej przestrzeni roboczej, twoim własnym kluczem.

PATCH /roles/{id}

Każde pole opcjonalne, a permissions zastępuje całą listę.

Przykład

Wymaga roles:write. Pominięcie pola zostawia je bez zmian — na tym polega PATCH.

curl
curl -X PATCH "$OE/roles/role_2b81de079c1f0a4b7e05d386" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "permissions": ["emails:read", "threads:read", "labels:read", "contacts:read"] }'
Odpowiedź
{  "object": "role",  "id": "role_2b81de079c1f0a4b7e05d386",  "name": "Support",  "description": "Answers the shared inboxes and nothing else.",  "permissions": ["emails:read", "threads:read", "labels:read", "contacts:read"],  "builtin": null,  "editable": true,  "deletable": true,  "members": 3,  "apiKeys": 1,  "createdAt": "2026-08-30T10:41:02.000Z",  "updatedAt": "2026-08-30T13:02:19.000Z"}

permissions ZASTĘPUJE całą listę. Nie ma wywołania przyznającego pojedyncze uprawnienie i nie będzie: to lista podlega audytowi, a patch adresowany indeksem to zgubiony zapis w chwili, gdy otwarte są dwie karty. Odczytaj rolę, zmień wpis, o który ci chodziło, odeślij wszystkie. Wysłanie jednego uprawnienia nie dodaje uprawnienia. Zostawia rolę dokładnie z tym jednym, plus tym, co ono implikuje.

description jest nie tylko opcjonalne, ale i nullowalne, i w tej różnicy tkwi cały sens patcha: pominięcie zachowuje zapisane zdanie, wysłanie null je czyści. Bez nullowalności nie byłoby sposobu, by usunąć opis inaczej niż zastępując go spacją.

Owner to jedyna rola, której PATCH odmawia, i odmawia dla każdego pola: role_immutable, 409 z param: "roleId". Wszystko inne przyjmuje nową nazwę równie chętnie jak nową listę uprawnień, role założone na start włącznie. builtin odnotowuje, skąd rola pochodzi, a nie co wolno z nią zrobić. Nazwa, którą ma już inna rola, to natomiast role_name_taken, 409 z param: "name".

Zmiana wchodzi w życie przy NASTĘPNYM żądaniu kogokolwiek, kto ma tę rolę, klucze API włącznie, bo pułap jest rozstrzygany per żądanie, a nie buforowany. Zawężenie roli jest więc odwołaniem uprawnień na żywo, skutecznym bez rotowania kluczy pod nią. Rozszerzenie działa równie na żywo, i to ta druga połowa warta zapamiętania.