
# keenauth_branding

La ressource `keenauth_branding` gère le thème de l'environnement du brouillon de personnalisation : couleurs des variantes claire et sombre, polices, rayon des angles, mise en page et logo.

## Brouillon, puis publication

Les modifications vont dans le brouillon. Publiez-les dans le tableau de bord ou avec `keenauth branding publish`. La publication diffuse en une seule fois tous les brouillons de personnalisation de l'environnement (thèmes des applications et des organisations, textes, CSS personnalisé et modèle de page) et vérifie le contraste. Le fournisseur ne publie donc pas de lui-même. Voir [Personnaliser vos pages de connexion](/docs/guides/branding).

Le brouillon de personnalisation existe une seule fois par environnement. Déclarez la ressource au plus une fois par configuration de fournisseur. La détruire la retire seulement de l'état ; le brouillon et les versions publiées restent inchangés.

## Écrire le thème complet

`theme` est un objet JSON ; utilisez `jsonencode`. Il est comparé en tant que JSON : réordonner les clés produit donc un plan vide. Les jetons que vous retirez de la configuration sont effacés et reprennent la valeur par défaut de la plateforme. Le `null` JSON et les objets vides ne sont pas autorisés. Si vous omettez `theme`, le thème actuel est conservé.

```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` et `background_image` acceptent les identifiants des ressources de personnalisation téléversées. Le CSS personnalisé et le modèle de page ne sont pas gérés par cette ressource.

## Modifications sûres

Une mise à jour n'envoie que les jetons modifiés, sous forme de JSON merge patch avec `If-Match`. Si quelqu'un a modifié le brouillon après le plan, l'API répond `412` et rien ne change. Relancez `plan`. Un jeton ajouté dans le tableau de bord apparaît comme une dérive, et `apply` le supprime.

## Importation

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