> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kazzle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sırlar

> API anahtarları, kimlik bilgileri ve hassas yapılandırma için şifreli kasa.

# Sırlar

Kazzle, API anahtarlarını, veritabanı kimlik bilgilerini, tokenları ve uygulamanızın ihtiyaç duyduğu diğer hassas değerleri depolamak için yerleşik bir şifreli kasaya sahiptir. Sırlar, KMS tarafından sarılmış veri şifreleme anahtarları kullanılarak AES-256-GCM ile beklemede şifrelenir — düz metin değerler hiçbir zaman veritabanına ulaşmaz.

## Kavramlar

**Koleksiyonlar** ilgili sırları bir araya getirir (örn. `stripe-keys`, `database-credentials`). Her koleksiyonun, yapılandırma dosyalarında ve CLI komutlarında başvurduğunuz bir **slug** (küçük harf, tire ile ayrılmış) vardır.

**Ortamlar** bir koleksiyon içinde isteğe bağlı kapsamlardır (örn. `production`, `staging`). Sırlar belirli bir ortama kapsamlandırılabilir veya koleksiyon düzeyinde varsayılan olarak bırakılabilir.

**Çözümleme sırası:** belirli bir koleksiyon + ortam için sırları çözerken, ortama özgü sırlar aynı ada sahip koleksiyon düzeyindeki sırları geçersiz kılar. Bu, çoğu sırrı ortamlar arasında paylaşmanıza ve ortam başına belirli değerleri geçersiz kılmanıza olanak tanır.

## Sırları yönetme

### Uygulamada

Koleksiyonlar, ortamlar ve sırları UI aracılığıyla oluşturmak için **Ayarlar > Kasa**'yı açın.

### AI ile

AI, koleksiyonlar oluşturabilir, ortamlar oluşturabilir, sırları depolayabilir, bunları kapsamlar arasında taşıyabilir ve sizin için silebilir.

AI, sır adlarını ve meta verileri görür ancak şifreli değerleri görmez.

### CLI ile

```bash theme={"theme":"material-theme-darker"}
# Sırları KEY=value satırları olarak dışa aktar
kazzle secrets.export --collection=stripe-keys --env=production
```

## Uygulamanızdan sırlara başvurma

Bir bileşenin `env` öğesini `kazzle.config.ts` içinde bir sır koleksiyonuna ve ortamına yönlendirin. Bu kapsamdaki her sır, adı sır adıyla eşleşen bir işlem ortam değişkeni olarak enjekte edilir:

```typescript theme={"theme":"material-theme-darker"}
import { defineConfig } from '@kazzle/app';

export default defineConfig({
  components: [
    {
      name: 'API Server',
      type: 'process',
      path: './server',
      env: {
        collection: 'stripe-keys',
        environment: 'production'
      }
    }
  ]
});
```

`env.collection` ve `env.environment` **slug**'tur, görünen adlar değildir. Koleksiyonun sırlarının yalnızca bir alt kümesini enjekte etmek için `env.include` kullanın:

```typescript theme={"theme":"material-theme-darker"}
env: {
  collection: 'stripe-keys',
  environment: 'production',
  include: ['STRIPE_SECRET_KEY']
}
```

## Sırlar ortam değişkenleri nasıl olur

Sırlar bir bileşen için çözümlendiğinde:

1. Koleksiyon, alanınız içinde slug tarafından bulunur
2. Belirtilen ortama kapsamlandırılmış sırlar yüklenir
3. Koleksiyon düzeyindeki sırlar (ortam yok) varsayılan olarak dahil edilir
4. Ortama özgü sırlar aynı ada sahip koleksiyon düzeyindeki sırları geçersiz kılar
5. Değerler içindeki sır başvuruları çözümlenir
6. Sır adları ortam değişkeni biçimine dönüştürülür: büyük harfli, alfasayısal olmayan karakterler alt çizgi olur

`Stripe Secret Key` adlı bir sır `STRIPE_SECRET_KEY` olur.

Her sırnın, nasıl enjekte edileceğini belirleyen bir **gövde modu** vardır:

* **`string`** sırları (API anahtarları, tokenlar, URI'ler) düz skaler dizeler olarak enjekte edilir
* **`json`** sırları (yapılandırılmış yapılandırma) JSON dizeler olarak enjekte edilir
* **`fields`** sırları (giriş kimlik bilgileri, yazılı alan çantaları) JSON dizeler olarak enjekte edilir

## Sırlar ne zaman enjekte edilir

| Bağlam                     | Enjekte edildi mi? | Ayrıntılar                                                                               |
| -------------------------- | ------------------ | ---------------------------------------------------------------------------------------- |
| **Dağıt** (işlem bileşeni) | Evet               | Üretimde çalışma zamanı ortam değişkenleri olarak eklenir                                |
| **Dağıt** (UI bileşeni)    | Kısmi              | Yalnızca `VITE_*` ön ekli sırlar derleme zamanında iletilir                              |
| **CLI** (`kazzle run`)     | Evet               | Komutun ortamına enjekte edilir                                                          |
| **CLI** (`secrets.export`) | Evet               | `KEY=value` satırları olarak dışa aktarılır                                              |
| **Dev önizlemesi**         | Henüz değil        | Önizleme başlatıcısı henüz bileşen `env` öğesini çözmez — şimdilik `kazzle run` kullanın |

## Şablon başvuruları

Sır değerleri, Kazzle'nin başka yerlerde kullandığı aynı söz dizimini kullanarak diğer sır alanlarına başvurabilir:

```
postgresql://${secret.123e4567-e89b-12d3-a456-426614174000.username}:${secret.123e4567-e89b-12d3-a456-426614174000.password}@db.example.com:5432/mydb
```

Desteklenen biçimler:

* `${secret.<uuid>.<field>}` — sır değerleri veya kasa başvurularının etkinleştirildiği araç parametreleri içinde belirli alan veya JSON yolu.
* `${secret.<uuid>}` — tüm sır gövdesi. Yalnızca bir araç açıkça tüm ham sırrı istediğinde kullanın; bunu uygulama env/yapılandırmasında kullanmayın.

Başvurular sırlar yüklendikten sonra çözümlenir. Döngüsel veya bozuk başvurular sessizce geri dönmek yerine başarısız olur.
