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

# Zamanlanmis Gorev Degiskeni

> Zamanlanmis gorev betikleri icin ortam degiskenleri ve sifrelenmis gizli degerler.

### Zamanlanmis Gorev Degiskeni (Cron Job Variable)

Zamanlanmis Gorev Degiskenleri, otomasyon betiklerinizin calisma zamaninda ihtiyac duydugu yapilandirma degerlerini ve gizli degerleri saklar. Degiskenler cron gorev kodunuzda `env.ANAHTAR` olarak, gizli degerler ise `secrets.ANAHTAR` olarak erisilebilir.

#### Bir Bakista

* Iki tip: `variable` (duz metin) ve `secret` (sifrelenmis)
* Anahtarlar buyuk harf ve alt cizgi olmali (ornegin, `API_KEY`, `WEBHOOK_URL`)
* Gizli degerler duragan halde sifrelenir ve arayuzde maskelenir
* Bireysel cron gorevlerine kapsamli
* Deger basina maksimum 10KB

#### Veri Yapisi

```typescript theme={null}
// apps/azalt/src/server/db/types/cron-job.ts (basitlestirilmis)
interface CronJobVariable {
  id: string;
  cronJobId: string;
  key: string;              // Buyuk harfler, rakamlar, alt cizgiler
  value: string;            // Duz veya sifrelenmis deger
  type: "variable" | "secret";
  isEncrypted: boolean;     // Gizli degerler icin true
}
```

#### Degisken Tipleri

| Tip        | Depolama    | Gosterim         | Kodda Erisim      | Kullanim Alani                                |
| ---------- | ----------- | ---------------- | ----------------- | --------------------------------------------- |
| `variable` | Duz metin   | Gorunur          | `env.ANAHTAR`     | URL'ler, yapilandirma, hassas olmayan veriler |
| `secret`   | Sifrelenmis | Maskeli (`****`) | `secrets.ANAHTAR` | API anahtarlari, tokenlar, sifreler           |

#### Anahtar Adlandirma Kurallari

Degisken anahtarlari su kurallara uymalidir:

* Buyuk harfle baslamali (A-Z)
* Yalnizca buyuk harfler, rakamlar ve alt cizgiler icermeli
* Ornekler: `API_KEY`, `WEBHOOK_URL`, `MAX_RETRIES`, `S3_BUCKET_NAME`

```javascript theme={null}
// Gecerli anahtarlar
env.API_URL           // Yapilandirma URL'si
env.MAX_RETRIES       // Sayisal yapilandirma
secrets.API_KEY       // API kimlik dogrulamasi
secrets.DATABASE_URL  // Baglanti dizesi

// Gecersiz anahtarlar (reddedilecektir)
env.apiKey           // Kucuk harf izin verilmez
env.api-key          // Tire izin verilmez
env.2FA_SECRET       // Rakamla baslayamaz
```

#### Cron Gorev Kodunda Kullanim

```javascript theme={null}
// Ortam degiskenlerine eris
const apiUrl = env.API_URL;
const maxRetries = parseInt(env.MAX_RETRIES || '3');

// Gizli degerlere eris (calisma zamaninda otomatik sifre cozulur)
const apiKey = secrets.API_KEY;
const webhookSecret = secrets.WEBHOOK_SECRET;

// API cagrilarinda kullan
const response = await fetch(apiUrl, {
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'X-Webhook-Secret': webhookSecret
  }
});

// E-posta bildirimlerinde kullan
await email.send({
  to: env.ADMIN_EMAIL,
  subject: 'Gorev Tamamlandi',
  body: `${apiUrl} adresinden veri islendi`
});
```

#### Guvenlik ve Izinler

* **Olusturma/Guncelleme/Silme**: Sahip rolu gerekli (ust cron goreviyle ayni)
* **Goruntuleme**: Organizasyon uyeleri degisken anahtarlarini ve tiplerini gorebilir
* **Gizli Deger Degerleri**: API yanitlarinda asla gosterilmez (her zaman maskeli)
* **Sifreleme**: Organizasyonun sifreleme anahtari kullanilarak sifrelenir
* **Sifre Cozme**: Yalnizca sandbox icinde calisma zamaninda gerceklesir

#### API Notlari

* `cronJobVariable.list`: Maskeli gizli deger degerleriyle degiskenleri dondurur
* `cronJobVariable.create`: Yeni degisken olusturur (tip "secret" ise sifreler)
* `cronJobVariable.update`: Degeri gunceller (gizli degerleri yeniden sifreler)
* `cronJobVariable.delete`: Gorevden degiskeni kaldirir

#### En Iyi Uygulamalar

1. **Hassas veriler icin gizli deger kullanin**: API anahtarlari, tokenlar, sifreler her zaman secret olmali
2. **Yapilandirma icin degisken kullanin**: URL'ler, ozellik bayraklari, esikler variable olabilir
3. **Aciklayici adlandirma**: `URL1` yerine `SLACK_WEBHOOK_URL` gibi net isimler kullanin
4. **Amaci belgeleyin**: Her degiskeni aciklayan yorumlar ekleyin
5. **Gizli degerleri duzenli yenileyin**: API anahtarlarini ve tokenlari periyodik olarak guncelleyin

#### Ilgili Kavramlar

* CronJob - Ust zamanlanmis otomasyon gorevi
* CronJobExecution - Calisma gecmisi ve gunlukler
