
# keenauth_environment_settings

La ressource `keenauth_environment_settings` gère les paramètres de l'environnement : langues, fuseau horaire, sessions, inscription, notifications de sécurité, récupération de compte, MFA, Front-Channel Logout et premiers facteurs autorisés. La protection contre les attaques ne fait pas partie de ces paramètres.

## Un objet par environnement

Les paramètres existent une seule fois par environnement et sont toujours présents. Déclarez la ressource au plus une fois par configuration de fournisseur. Sa création lit les paramètres actuels et n'écrit que ce que votre configuration modifie. La détruire la retire seulement de l'état ; l'environnement conserve ses paramètres.

## Seul ce que vous écrivez est géré

Un attribut ou un groupe que vous omettez conserve sa valeur actuelle. Retirer un attribut de la configuration conserve sa dernière valeur. Les listes comme `allowed_first_factors` et `signup.email_domains` sont des ensembles : leur ordre n'a pas d'importance.

```terraform
resource "keenauth_environment_settings" "this" {
  default_zoneinfo      = "Europe/Istanbul"
  allowed_first_factors = ["passkey", "password", "social"]

  locales = {
    enabled = ["en", "tr"]
    default = "en"
  }

  session = {
    idle_timeout_s     = 86400
    absolute_timeout_s = 1209600
  }

  signup = {
    mode              = "open"
    email_domain_mode = "denylist"
    email_domains     = ["mailinator.com"]
  }
}
```

## Groupes

| Attribut | Ce qu'il contrôle |
|---|---|
| `locales` | Langues activées et langue par défaut. La langue par défaut doit être activée. |
| `default_zoneinfo` | Fuseau horaire IANA par défaut. |
| `session` | Délais d'inactivité et absolus en secondes, limite de sessions simultanées et ce qui se passe à la limite, action en cas d'anomalie. Le délai d'inactivité ne peut pas être supérieur au délai absolu. |
| `signup` | Mode d'inscription et liste d'autorisation ou de refus des domaines d'e-mail. Écrivez les domaines en minuscules ; les noms internationalisés en A-labels (`xn--…`). |
| `security_notifications` | Interrupteur général et événements qui envoient un e-mail de notification. |
| `account_recovery` | Mode de récupération, délai d'attente en heures et lien d'assistance affiché lorsque la récupération est désactivée. |
| `mfa` | E-mail comme second facteur et son niveau d'assurance, libellé d'émetteur TOTP, codes de récupération et leur nombre. |
| `frontchannel_logout_enabled` | Front-Channel Logout d'OpenID Connect. |
| `allowed_first_factors` | Premiers facteurs autorisés dans l'environnement. Les politiques des applications et des organisations ne peuvent que restreindre cet ensemble. |

## Modifications sûres

- Une mise à jour n'envoie que les champs modifiés, sous forme de JSON merge patch avec `If-Match`. Si quelqu'un a modifié les paramètres après le plan, l'API répond `412` et rien ne change. Relancez `plan`.
- Une modification faite dans le tableau de bord apparaît au prochain `plan` comme une dérive, et `apply` la rétablit pour les attributs que vous gérez.
- Resserrer une politique (sessions plus courtes, limite de sessions plus basse, inscription ou récupération plus strictes, suppression d'un premier facteur) s'applique immédiatement aux nouvelles sessions et connexions. Les sessions existantes vont jusqu'au terme de leur durée de vie.

## Importation

```shell
tofu import keenauth_environment_settings.this environment-settings
```
