Mettre à jour le thème de l'environnement

PATCH /v1/branding · autorisation branding:write

Modifie le brouillon du thème de l'environnement à l'aide d'un merge patch JSON (application/merge-patch+json, RFC 7396). Un jeton défini à null (ou un groupe entier, tel que "light": null) est effacé et hérite à nouveau de la valeur par défaut ; "theme": null efface tous les jetons. Seuls les jetons modifiés sont écrits ; un patch qui ne modifie rien conserve la version. Les valeurs sont vérifiées à l'écriture : les couleurs sont #rgb/#rrggbb, font.size_base entre 14 et 18, radius.card entre 0 et 24, radius.control entre 0 et 16, logo_height entre 24 et 80. logo, favicon et background_image doivent désigner une image de ce type importée avec Importer un actif de marque ; sinon le champ échoue avec asset_not_found. Le contraste est vérifié à la publication.

Requête

Champ Type Obligatoire Description
If-Match en-tête oui L'ETag du brouillon tel que lu en dernier ("0" s'il n'a jamais été écrit). Absent : 428 ; obsolète : 412.
theme objet | null non BrandingTheme partiel ; chaque champ et chaque groupe peut valoir null.

Réponse

200 OK avec le brouillon de l'environnement et son ETag. theme ne contient que les jetons définis ; les jetons non définis héritent de la valeur par défaut de la plateforme.

{
  "theme": {"mode": "light", "light": {"color": {"primary": "#0a3d91"}}, "logo_height": 40},
  "css": null,
  "page_template": null,
  "updated_at": "2026-10-05T09:30:00.123456Z"
}

Erreurs

HTTP code Quand
400 unknown_field Le corps contient un champ inconnu ou n'est pas un objet JSON.
412 precondition_failed If-Match ne correspond pas à la version actuelle du brouillon.
415 unsupported_media_type Le type de contenu n'est pas application/merge-patch+json.
422 validation_failed La valeur d'un jeton est invalide (invalid_value, out_of_range, unknown_token) ; pointer désigne le jeton, par exemple /theme/light/color/primary.
428 precondition_required L'en-tête If-Match est absent.
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant ne dispose pas de l'autorisation requise.
429 rate_limited La limite de débit a été dépassée ; réessayez après la période indiquée par Retry-After.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez après la période indiquée par Retry-After.

Exemple

curl -X PATCH https://api.eu.keenauth.com/v1/branding \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "3"' \
  -d '{"theme":{"light":{"color":{"primary":"#0a3d91"}},"radius":null}}'