Aller à la documentation
API

Mettre à jour un rôle

Tous les champs sont facultatifs, et `permissions` remplace la liste entière.

PATCHapi.openemail.uk/roles/{id}

Exécute le véritable appel sur votre espace de travail, avec votre propre clé.

PATCH /roles/{id}

Tous les champs sont facultatifs, et permissions remplace la liste entière.

Exemple

Requiert roles:write. Omettre un champ le laisse intact, ce qui est le sens de 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"] }'
Réponse
{  "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 REMPLACE la liste entière. Il n'existe pas d'appel pour accorder une seule permission et il n'y en aura pas : c'est une liste que l'on audite, et un patch adressé par index est une mise à jour perdue dès que deux onglets sont ouverts. Lisez le rôle, modifiez l'entrée voulue, renvoyez-les toutes. Envoyer une seule permission n'ajoute pas une permission : le rôle ne détient plus exactement que celle-là, plus ce qu'elle implique.

description est nullable en plus d'être facultative, et c'est toute la raison d'être d'un patch : l'omettre conserve la phrase stockée, envoyer null l'efface. Sans le nullable, il n'y aurait aucun moyen de supprimer une description, sinon en la remplaçant par une espace.

Le propriétaire est le seul rôle qu'un PATCH refuse, et il en refuse tous les champs : role_immutable, un 409 avec param: "roleId". Tout le reste accepte un nouveau nom aussi volontiers qu'une nouvelle liste de permissions, rôles initiaux compris. builtin enregistre d'où vient un rôle, pas ce qu'on peut lui faire. Un nom qu'un autre rôle détient déjà donne plutôt role_name_taken, un 409 avec param: "name".

La modification prend effet à la requête SUIVANTE de quiconque détient le rôle, clés API comprises, parce que le plafond est résolu par requête plutôt que mis en cache. Restreindre un rôle est donc une révocation en direct, effective sans rotation des clés qui en dépendent. L'élargir est tout aussi immédiat, et c'est la moitié qu'il vaut la peine de retenir.