
# keenauth_branding

La risorsa `keenauth_branding` gestisce il tema dell'ambiente nella bozza di branding: colori per le varianti chiara e scura, font, raggio degli angoli, layout e logo.

## Bozza, poi pubblicazione

Le modifiche vanno nella bozza. Pubblicale nella dashboard o con `keenauth branding publish`. La pubblicazione rilascia in una sola volta tutte le bozze di branding dell'ambiente (temi di applicazioni e organizzazioni, testi, CSS personalizzato e template di pagina) e verifica il contrasto, quindi il provider non pubblica da solo. Vedi [Personalizza le pagine di accesso](/docs/guides/branding).

La bozza di branding esiste una sola volta per ambiente. Dichiara la risorsa al massimo una volta per configurazione del provider. Distruggerla la rimuove solo dallo stato; la bozza e le versioni pubblicate restano invariate.

## Scrivi il tema completo

`theme` è un oggetto JSON; usa `jsonencode`. Viene confrontato come JSON, quindi riordinare le chiavi produce un piano vuoto. I token che rimuovi dalla configurazione vengono azzerati ed ereditano il valore predefinito della piattaforma. Il `null` JSON e gli oggetti vuoti non sono ammessi. Se ometti `theme`, viene mantenuto il tema attuale.

```terraform
resource "keenauth_branding" "this" {
  theme = jsonencode({
    mode   = "system"
    layout = "center"
    font   = { size_base = 16 }
    radius = { card = 12, control = 8 }
    light  = { color = { primary = "#4f46e5", background = "#ffffff" } }
    dark   = { color = { primary = "#818cf8", background = "#0b0b0f" } }
  })
}
```

`logo`, `favicon` e `background_image` accettano gli ID degli asset di branding caricati. Il CSS personalizzato e il template di pagina non sono gestiti da questa risorsa.

## Modifiche sicure

Un aggiornamento invia solo i token modificati come JSON merge patch con `If-Match`. Se qualcuno ha modificato la bozza dopo la creazione del piano, l'API risponde `412` e nulla cambia. Esegui di nuovo `plan`. Un token aggiunto nella dashboard compare come deriva (drift), e `apply` lo rimuove.

## Importazione

```shell
tofu import keenauth_branding.this branding
```
