
# keenauth_environment_settings

Die Ressource `keenauth_environment_settings` verwaltet die Einstellungen der Umgebung: Sprachen, Zeitzone, Sitzungen, Registrierung, Sicherheitsbenachrichtigungen, Kontowiederherstellung, MFA, Front-Channel Logout und die erlaubten ersten Faktoren. Der Angriffsschutz gehört nicht zu diesen Einstellungen.

## Ein Objekt pro Umgebung

Die Einstellungen existieren einmal pro Umgebung und sind immer vorhanden. Deklarieren Sie die Ressource höchstens einmal pro Provider-Konfiguration. Beim Erstellen der Ressource werden die aktuellen Einstellungen gelesen und nur das geschrieben, was Ihre Konfiguration ändert. Das Löschen entfernt sie nur aus dem State; die Umgebung behält ihre Einstellungen.

## Nur was Sie schreiben, wird verwaltet

Ein Attribut oder eine Gruppe, die Sie weglassen, behält ihren aktuellen Wert. Wird ein Attribut aus der Konfiguration entfernt, behält es seinen letzten Wert. Listen wie `allowed_first_factors` und `signup.email_domains` sind Mengen, daher spielt ihre Reihenfolge keine Rolle.

```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"]
  }
}
```

## Gruppen

| Attribut | Was es steuert |
|---|---|
| `locales` | Aktivierte Sprachen und die Standardsprache. Die Standardsprache muss aktiviert sein. |
| `default_zoneinfo` | Standard-IANA-Zeitzone. |
| `session` | Leerlauf- und absolute Timeouts in Sekunden, Grenze für gleichzeitige Sitzungen und was an dieser Grenze passiert, Anomalie-Aktion. Das Leerlauf-Timeout darf nicht größer sein als das absolute Timeout. |
| `signup` | Registrierungsmodus sowie Allowlist oder Denylist für E-Mail-Domains. Schreiben Sie Domains in Kleinbuchstaben; internationalisierte Namen als A-Labels (`xn--…`). |
| `security_notifications` | Hauptschalter und die Ereignisse, die eine Benachrichtigungs-E-Mail auslösen. |
| `account_recovery` | Wiederherstellungsmodus, Wartezeit in Stunden und der Support-Link, der angezeigt wird, wenn die Wiederherstellung deaktiviert ist. |
| `mfa` | E-Mail als zweiter Faktor und ihr Sicherheitsniveau, Issuer-Name für TOTP, Wiederherstellungscodes und deren Anzahl. |
| `frontchannel_logout_enabled` | OpenID-Connect-Front-Channel-Logout. |
| `allowed_first_factors` | Erlaubte erste Faktoren in der Umgebung. Anwendungs- und Organisationsrichtlinien können diese Menge nur einschränken. |

## Sichere Änderungen

- Ein Update sendet nur die geänderten Felder als JSON Merge Patch mit `If-Match`. Hat jemand die Einstellungen nach dem Plan geändert, antwortet die API mit `412` und nichts ändert sich. Führen Sie `plan` erneut aus.
- Eine Änderung im Dashboard erscheint im nächsten `plan` als Drift, und `apply` setzt sie für die verwalteten Attribute zurück.
- Eine Richtlinie zu verschärfen (kürzere Sitzungen, eine niedrigere Sitzungsgrenze, strengere Registrierung oder Wiederherstellung, Entfernen eines ersten Faktors) gilt sofort für neue Sitzungen und Anmeldungen. Bestehende Sitzungen laufen bis zum Ende ihrer Laufzeit.

## Import

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