Ga direct naar de documentatie
API

Een rol bijwerken

Elk veld optioneel, en `permissions` vervangt de hele lijst.

PATCHapi.openemail.uk/roles/{id}

Voert de echte aanroep uit op je workspace, met je eigen sleutel.

PATCH /roles/{id}

Elk veld optioneel, en permissions vervangt de hele lijst.

Voorbeeld

Vereist roles:write. Een veld weglaten laat het ongemoeid, en dat is wat PATCH betekent.

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"] }'
Antwoord
{  "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 VERVANGT de hele lijst. Er is geen aanroep om er één toe te kennen en die komt er ook niet: een lijst is wat er geaudit wordt, en een patch op index is een verloren update zodra er twee tabbladen openstaan. Lees de rol, wijzig het item dat je bedoelde, stuur ze allemaal terug. Eén permissie sturen voegt geen permissie toe. Het laat de rol precies die ene houden, plus wat die impliceert.

description is naast optioneel ook nullable, en dat verschil is precies waar een patch om draait: weglaten behoudt de opgeslagen zin, null sturen wist hem. Zonder nullable was er geen manier om een beschrijving te verwijderen, behalve door er een spatie voor in de plaats te zetten.

De owner is de enige rol die een PATCH weigert, en dan weigert hij elk veld ervan: role_immutable, een 409 met param: "roleId". Al het andere neemt een nieuwe naam net zo gemakkelijk aan als een nieuwe permissielijst, de aangelegde standaardrollen inbegrepen. builtin legt vast waar een rol vandaan komt, niet wat ermee mag gebeuren. Een naam die een andere rol al heeft, levert in plaats daarvan role_name_taken op, een 409 met param: "name".

De wijziging landt op het EERSTVOLGENDE request van iedereen die de rol heeft, API keys inbegrepen, omdat het plafond per request wordt bepaald en niet gecachet. Een rol versmallen is daarmee een live intrekking die werkt zonder dat de keys eronder geroteerd worden. Een rol verbreden is net zo live, en dat is de helft die het onthouden waard is.