
# keenauth_environment_settings

`keenauth_environment_settings` kaynağı ortamın ayarlarını yönetir: diller, saat dilimi, oturumlar, kayıt, güvenlik bildirimleri, hesap kurtarma, MFA, Front-Channel Logout ve izin verilen ilk faktörler. Saldırı koruması bu ayarların parçası değildir.

## Ortam başına tek nesne

Ayarlar her ortamda bir kez vardır ve her zaman vardır. Kaynağı bir sağlayıcı yapılandırmasında en çok bir kez tanımlayın. Kaynağı oluşturmak mevcut ayarları okur ve yalnız yapılandırmanızın değiştirdiklerini yazar. Kaynağı yok etmek onu yalnız durumdan (state) çıkarır; ortam ayarlarını korur.

## Yalnız yazdığınız yönetilir

Yazmadığınız bir alan ya da grup mevcut değerini korur. Yapılandırmadan çıkardığınız bir alan son değerini korur. `allowed_first_factors` ve `signup.email_domains` gibi listeler kümedir; sıraları önemli değildir.

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

## Gruplar

| Alan | Neyi denetler |
|---|---|
| `locales` | Etkin diller ve varsayılan dil. Varsayılan dil etkin olmalıdır. |
| `default_zoneinfo` | Varsayılan IANA saat dilimi. |
| `session` | Saniye cinsinden boşta kalma ve mutlak zaman aşımı, eşzamanlı oturum sınırı ve sınıra ulaşıldığında ne olacağı, anomali eylemi. Boşta kalma zaman aşımı mutlak zaman aşımından büyük olamaz. |
| `signup` | Kayıt modu ve e-posta alan adı izin ya da engel listesi. Alan adlarını küçük harfle yazın; uluslararası adları A-etiketi (`xn--…`) olarak yazın. |
| `security_notifications` | Ana anahtar ve bildirim e-postası gönderen olaylar. |
| `account_recovery` | Kurtarma modu, saat cinsinden bekleme süresi ve kurtarma kapalıyken gösterilen destek bağlantısı. |
| `mfa` | İkinci faktör olarak e-posta ve güvence düzeyi, TOTP yayıncı etiketi, kurtarma kodları ve sayısı. |
| `frontchannel_logout_enabled` | OpenID Connect Front-Channel Logout. |
| `allowed_first_factors` | Ortamda izin verilen ilk faktörler. Uygulama ve organizasyon politikaları bu kümeyi yalnız daraltabilir. |

## Güvenli değişiklik

- Güncelleme yalnız değişen alanları `If-Match` ile JSON merge patch olarak gönderir. Plan yapıldıktan sonra ayarları başka biri değiştirdiyse API `412` döner ve hiçbir şey değişmez. `plan` komutunu yeniden çalıştırın.
- Panoda yapılan bir değişiklik sonraki `plan` çıktısında sapma (drift) olarak görünür ve `apply`, yönettiğiniz alanlar için onu geri alır.
- Bir politikayı daraltmak (daha kısa oturumlar, daha düşük oturum sınırı, daha sıkı kayıt ya da kurtarma, bir ilk faktörü kaldırmak) yeni oturumlara ve girişlere hemen uygulanır. Mevcut oturumlar ömürlerinin sonuna kadar sürer.

## İçe aktarma

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