Aller à la documentation
API

Créer un rôle

Un nom et une liste de permissions. Ce qui revient est plus long que ce que vous avez envoyé.

POSTapi.openemail.uk/roles

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

POST /roles

Un nom et une liste de permissions. Ce qui revient est plus long que ce que vous avez envoyé.

Exemple

Nécessite roles:write. Renvoie 201. Un rôle personnalisé a builtin: null, editable: true et deletable: true, et n'est détenu par personne tant que quelqu'un n'y a pas été déplacé.

curl
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"]  }'
Réponse
{  "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"}

Quatre permissions sont entrées et sept sont revenues. emails:send implique emails:read, threads:write implique threads:read, labels:write implique labels:read. Un rôle qui peut archiver un fil qu'il ne peut pas ouvrir est une case que quelqu'un a oubliée plutôt qu'une politique voulue par qui que ce soit : l'implication est donc enregistrée plutôt que refusée. La liste revient aussi dans l'ordre canonique, ce qui permet à un client de comparer deux rôles en JSON et de décider si le bouton Enregistrer est actif.

Une permission inconnue EST refusée ici plutôt qu'écartée : templates:writ donne invalid_parameter, un 422, en nommant la chaîne. Le service normalise en silence parce qu'il sert aussi au chemin d'amorçage et au chemin MCP, où faire échouer tout un rôle pour un seul mot non reconnu serait pire. C'est une mauvaise réponse pour un appel que quelqu'un a fait délibérément. Un 200 porteur d'un rôle incapable de modifier les modèles ne lui a rien appris, et il y passera l'après-midi.

Un nom en doublon sur le même espace de travail donne role_name_taken, un 409. Le 25e rôle personnalisé donne role_limit_reached, un 422. Cela borne la taille que peut atteindre une matrice avant que plus personne ne l'audite, et ce n'est pas une limite de forfait.

Créer un rôle ne le donne à personne. Y déplacer des personnes se fait avec PATCH /members/{userId}, et pointer une clé dessus se fait là où la clé est émise.