Ana içeriğe atla

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

// 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

TipDepolamaGosterimKodda ErisimKullanim Alani
variableDuz metinGorunurenv.ANAHTARURL’ler, yapilandirma, hassas olmayan veriler
secretSifrelenmisMaskeli (****)secrets.ANAHTARAPI 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
// 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

// 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