Aggiorna il tema dell'ambiente

PATCH /v1/branding · autorizzazione branding:write

Modifica la bozza del tema dell'ambiente con un merge patch JSON (application/merge-patch+json, RFC 7396). Un token impostato a null (o un intero gruppo come "light": null) viene cancellato e torna a ereditare; "theme": null cancella ogni token. Vengono scritti solo i token modificati; una patch che non cambia nulla mantiene la versione. I valori vengono verificati in scrittura: i colori sono #rgb/#rrggbb, font.size_base 14-18, radius.card 0-24, radius.control 0-16, logo_height 24-80. logo, favicon e background_image devono indicare un'immagine di quel tipo caricata con Carica una risorsa di branding; altrimenti il campo fallisce con asset_not_found. Il contrasto viene verificato alla pubblicazione.

Richiesta

Campo Tipo Obbligatorio Descrizione
If-Match header sì L'ETag della bozza come l'ultima letta ("0" se mai scritta). Mancante: 428; obsoleto: 412.
theme object | null no BrandingTheme parziale; ogni campo e gruppo può essere null.

Risposta

200 OK con la bozza dell'ambiente e il suo ETag. theme contiene solo i token impostati; i token non impostati ereditano dal default della piattaforma.

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

Errori

HTTP code Quando
400 unknown_field Il corpo contiene un campo sconosciuto oppure non è un oggetto JSON.
412 precondition_failed If-Match non corrisponde alla versione attuale della bozza.
415 unsupported_media_type Il content type non è application/merge-patch+json.
422 validation_failed Un valore di token non è valido (invalid_value, out_of_range, unknown_token); pointer indica il token, per esempio /theme/light/color/primary.
428 precondition_required L'header If-Match manca.
401 unauthenticated La credenziale manca, non è valida o è stata revocata.
403 insufficient_permissions La credenziale non ha l'autorizzazione richiesta.
429 rate_limited È stato superato il limite di richieste; riprova dopo il periodo indicato in Retry-After.
503 service_unavailable Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo indicato in Retry-After.

Esempio

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}}'