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

# FTP Bağlantısı

> FTP/SFTP/FTPS sunucularına güvenli dosya aktarımı için merkezi bağlantı tanımı oluşturur. Güvenli dosya aktarımı, dizin yönetimi ve otomatik yeniden deneme desteği sağlar

## Genel Bakış

<AccordionGroup>
  <Accordion title="Amacı Nedir?">
    <CardGroup cols={2}>
      <Card title="Merkezi Yönetim" icon="database">
        Connection (Bağlantı) tanımını merkezi tutarak FTP/SFTP/FTPS erişimini tüm Integration Flow adımlarında tutarlı hale getirir.
      </Card>

      <Card title="Otomatik Kimlik Doğrulama" icon="shield">
        Dosya aktarımı yapan Connector adımlarında otomatik kimlik doğrulama ve SSL/TLS parametrelerini yeniden kullanarak yapılandırma süresini kısaltır.
      </Card>

      <Card title="Güvenlik" icon="lock">
        Çalışma dizini (workingDir) kısıtlamasıyla sadece yetkili klasörlere erişilmesini sağlayarak veri sızıntısı riskini azaltır.
      </Card>

      <Card title="Yeniden Deneme" icon="repeat">
        Yeniden deneme (retryCount) ve timeout değerleri sayesinde kararsız ağlarda bile aktarım başarısını yükseltir.
      </Card>

      <Card title="Ortam Bazlı Yönetim" icon="code-branch">
        Ortam seçimi ile Test Connection yapılabilir; Environment Variable desteği ile host, port, username, password gibi alanlarda `${var}` syntax kullanılabilir.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Çalışma Prensibi">
    <CardGroup cols={2}>
      <Card title="Bağlantı Başlatma" icon="play">
        Integration Flow veya Connector içerisinden FTP/SFTP/FTPS bağlantısı talep edildiğinde, sistem yapılandırılmış connection parametrelerini okur.
      </Card>

      <Card title="Kimlik Doğrulama" icon="shield">
        Kullanıcı adı ve parola ile hedef FTP dizinine erişim sağlanır. SSH anahtar tabanlı kimlik doğrulama desteklenmez.
      </Card>

      <Card title="Veri İletişimi" icon="arrows-rotate">
        Seçilen protokol üzerinden TCP katmanında dosya yükleme/indirme, listeleme veya silme işlemleri gerçekleştirilir.
      </Card>

      <Card title="Bağlantı Yönetimi" icon="gear">
        İşlem tamamlandığında oturum kapatılır.
      </Card>

      <Card title="Hata Yönetimi" icon="triangle-exclamation">
        Bağlantı hatası, timeout veya authentication hatası durumunda tanımlı retryCount devreye girer, sonuç deployment loglarına yazılır.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Kullanım Alanları">
    <CardGroup cols={2}>
      <Card title="Partner Dosya Alımı" icon="download">
        Partner sistemlerinden gelen dosyaların belirli aralıklarla indirilmesi
      </Card>

      <Card title="Toplu Rapor Yükleme" icon="upload">
        Toplu rapor veya log dosyalarının düzenli olarak FTP sunucularına yüklenmesi
      </Card>

      <Card title="SFTP Finansal Veri" icon="money-bill">
        SFTP üzerinden finansal veri paylaşımı yapan dış servislerle entegrasyon
      </Card>

      <Card title="FTPS Regülasyon" icon="shield">
        FTPS (Explicit) ile regülasyon gereği şifreli aktarım zorunluluğu bulunan kurum bağlantıları
      </Card>

      <Card title="Legacy Sistem Entegrasyonu" icon="server">
        İç ağdaki Legacy dosya aktarım sunucularının Integration Flow adımlarında kullanılması
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Teknik Özellikler ve Yetenekler

<AccordionGroup>
  <Accordion title="Temel Özellikler">
    <CardGroup cols={2}>
      <Card title="Çoklu Protokol Desteği" icon="network-wired">
        FTP, SFTP ve FTPS protokolleri tek bağlantı tanımı altında seçilebilir.
      </Card>

      <Card title="Çalışma Dizini İzolasyonu" icon="folder">
        workingDir alanı ile bağlantının erişebileceği dizin sınırlandırılır.
      </Card>

      <Card title="Retry Politikası" icon="repeat">
        retryCount ile ağ kesintilerinde otomatik yeniden deneme sağlanır.
      </Card>

      <Card title="Ortam Bazlı Yapılandırma" icon="code-branch">
        Test Connection için ortam seçimi zorunludur; environment variable'lar ortam bazlı çözümlenir.
      </Card>

      <Card title="Enable/Disable Kontrolü" icon="toggle-on">
        Connection'ı aktif veya pasif hale getirme (enable/disable toggle). Pasif durumda bağlantı kullanılamaz ancak yapılandırması saklanır.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="İleri Düzey Özellikler">
    <CardGroup cols={2}>
      <Card title="Implicit / Explicit FTPS Anahtarı" icon="shield">
        useImplicit ve useExplicit bayraklarıyla TLS el sıkışmasının nasıl yapılacağı belirlenir.
      </Card>

      <Card title="Dinamik Proje veya Global Konumlandırma" icon="share">
        Bağlantı proje içinde tutulabilir veya Move to Global ile tüm projelerde erişilebilir kılınır.
      </Card>

      <Card title="100 MB'a Kadar Import" icon="file-import">
        ZIP import işlemlerinde 100 MB boyuta kadar FTP bağlantı tanımları içe alınabilir.
      </Card>

      <Card title="Connection Test Özelliği" icon="flask">
        "Test Connection" butonu ile bağlantı parametrelerini kaydetmeden önce doğrulama imkanı. Test için ortam seçimi zorunludur.
      </Card>

      <Card title="Export/Import Özelliği" icon="file-export">
        Connection yapılandırmasını ZIP dosyası olarak export etme. Farklı ortamlara (Development, Test, Production) import etme. Versiyon kontrolü ve yedekleme imkanı.
      </Card>

      <Card title="Environment Variable Desteği" icon="code">
        Host, port, username, password, workingDir ve sslProtocol alanlarında `${variableName}` syntax ile ortam değişkenleri kullanılabilir.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Connection Parametreleri

<AccordionGroup>
  <Accordion title="Zorunlu Parametreler">
    <CardGroup cols={2}>
      <Card title="Name" icon="tag">
        **Açıklama:** Connection adı (benzersiz olmalı)\
        **Örnek Değer:** `Production_FTP`\
        **Notlar:** Boşlukla başlamaz, özel karakterler kullanılmamalı
      </Card>

      <Card title="Host" icon="server">
        **Açıklama:** FTP/SFTP sunucusunun adresi\
        **Örnek Değer:** `ftp.partner.local`\
        **Notlar:** IPv4/IPv6 veya FQDN kabul edilir
      </Card>

      <Card title="Port" icon="network-wired">
        **Açıklama:** Protokolün çalıştığı port\
        **Örnek Değer:** 21\
        **Notlar:** SFTP için 22, FTPS için 990 önerilir
      </Card>

      <Card title="Username" icon="user">
        **Açıklama:** Hedef sunucudaki kullanıcı adı\
        **Örnek Değer:** `partner_sync`\
        **Notlar:** Least privilege prensibine göre oluşturulmalı
      </Card>

      <Card title="WorkingDir" icon="folder">
        **Açıklama:** Başlangıç çalışma dizini\
        **Örnek Değer:** `/outbound`\
        **Notlar:** İlgili kullanıcının erişim izni olmalı
      </Card>

      <Card title="Protocol" icon="network-wired">
        **Açıklama:** Kullanılacak aktarım protokolü\
        **Örnek Değer:** FTP / SFTP / FTPS\
        **Notlar:** EnumFtpProtocol listesinden seçilir
      </Card>

      <Card title="Timeout" icon="clock">
        **Açıklama:** Bağlantı zaman aşımı (sn)\
        **Örnek Değer:** 30\
        **Notlar:** Saniye cinsindendir
      </Card>

      <Card title="RetryCount" icon="repeat">
        **Açıklama:** Yeniden deneme sayısı\
        **Örnek Değer:** 3\
        **Notlar:** Ağ kesintilerinde kaç tekrar yapılacağını belirtir
      </Card>

      <Card title="SSL Protocol" icon="shield">
        **Açıklama:** FTPS el sıkışmasında kullanılacak sürüm\
        **Örnek Değer:** TLS\
        **Notlar:** FTPS kullanımında zorunludur
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="İsteğe Bağlı Parametreler">
    <CardGroup cols={2}>
      <Card title="Password" icon="lock">
        **Açıklama:** Kullanıcı şifresi veya environment variable referansı\
        **Varsayılan Değer:** (Boş)\
        **Önerilen Değer:** `${variableName}` syntax ile environment variable kullanımı
      </Card>

      <Card title="UseImplicit" icon="toggle-on">
        **Açıklama:** FTPS implicit el sıkışmasını aktive eder\
        **Varsayılan Değer:** false\
        **Önerilen Değer:** true (FTPS implicit gereken ortamlarda)
      </Card>

      <Card title="UseExplicit" icon="toggle-on">
        **Açıklama:** FTPS explicit STARTTLS sürecini aktive eder\
        **Varsayılan Değer:** true\
        **Önerilen Değer:** true (varsayılan; FTPS dışı senaryolarda false yapılabilir)
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Kullanım Senaryoları

<CardGroup cols={2}>
  <Card title="Partner Dosya Alımı" icon="file-import">
    **Durum:** Tedarikçi her gece XML yükler\
    **Çözüm:** WorkingDir=/inbox, Protocol=SFTP, RetryCount=5\
    **Beklenen Davranış:** Gece job'ı dosyaları güvenli şekilde indirir
  </Card>

  <Card title="Regülasyon FTPS Aktarımı" icon="shield">
    **Durum:** Banka sistemi FTPS implicit ister\
    **Çözüm:** UseImplicit=true, Port=990, SSL Protocol=TLS1.2\
    **Beklenen Davranış:** TLS el sıkışması başarılı olur, dosyalar şifreli taşınır
  </Card>

  <Card title="Legacy FTP Push" icon="server">
    **Durum:** Eski sistem sadece FTP destekler\
    **Çözüm:** Protocol=FTP, Port=21, Timeout=45\
    **Beklenen Davranış:** Gateway klasik FTP üzerinden yükleme yapar
  </Card>

  <Card title="Büyük Dosya Transferi" icon="file">
    **Durum:** Uzun süren transferler\
    **Çözüm:** Timeout=90, Flow'da chunk upload\
    **Beklenen Davranış:** Uzun süren transferlerde kopma yaşanmaz
  </Card>

  <Card title="Disaster Recovery" icon="shield-alt">
    **Durum:** DR ortamına paralel kopya gönderilir\
    **Çözüm:** Ortam=Production, Host=dr-ftp.local veya environment variable ile\
    **Beklenen Davranış:** Ana ve DR sistemleri senkron tutulur
  </Card>

  <Card title="Güvenlik Taraması" icon="search">
    **Durum:** SOC ekibi SFTP ile log çeker\
    **Çözüm:** Ortam=Test, Protocol=SFTP, WorkingDir=/audit\
    **Beklenen Davranış:** Sadece audit klasörü erişilir
  </Card>
</CardGroup>

## Connection Yapılandırma

### Yeni FTP Bağlantısı Oluşturma

<img src="https://mintcdn.com/apinizer/YX1NcEKlSBeHefxE/images/yonetici/baglantilar/ftp-variable-new.png?fit=max&auto=format&n=YX1NcEKlSBeHefxE&q=85&s=7992a58d044857d245b543b904379a07" alt="Image 2024 9 9 15 35 35 Pn" width="1000" className="mr-auto" data-path="images/yonetici/baglantilar/ftp-variable-new.png" />

#### Yapılandırma Adımları

<Steps>
  <Step title="Oluşturma Sayfasına Gitme">
    * Sol menüden **Connection → FTP Bağlantısı** bölümüne gidin.
    * Sağ üstteki **\[+ Create]** butonuna tıklayın.
  </Step>

  <Step title="Temel Bilgileri Girme">
    **Enable Status (Aktif Durumu):**

    * Toggle ile aktif/pasif durumu ayarlayın. Yeni connection'lar varsayılan olarak aktiftir.

    **Name (İsim) - Zorunlu:**

    * Örnek: `Production_FTP`
    * Benzersiz isim girin, boşlukla başlamaz.
    * Sistem otomatik kontrol eder. Yeşil tik: kullanılabilir. Kırmızı çarpı: mevcut isim.

    **Description (Açıklama):**

    * Örnek: "Partner FTP yüklemeleri"
    * Maks. 1000 karakter.
    * Connection'ın amacını açıklayın.

    <Info>
      Sayfanın üst kısmındaki işlem butonları alanında, **\[\<> Variable]** butonunu kullanarak dinamik değer seçebilir, Global variable ifadeleri sayesinde connection parametrelerini sabit değer yerine değişken tabanlı yönetebilirsiniz. Detaylı bilgi için [Dinamik Değişkenler](/tr/concepts/temel-kavramlar/dinamik-degiskenler) sayfasını inceleyebilirsiniz.
    </Info>
  </Step>

  <Step title="Environment (Ortam) Seçimi">
    * Dropdown menüden ortam seçin: **Development**, **Test**, veya **Production**.
    * Test Connection için ortam seçimi zorunludur.
  </Step>

  <Step title="FTP Specific Parametreler - Bölüm 1">
    * **Host & Port:** Hedef FTP adresini girin, protokole göre port ayarlayın.
    * **Protocol:** FTP, SFTP veya FTPS seçin.
    * **WorkingDir:** Erişilecek klasörün tam yolunu yazın.
    * **Username/Password:** Kullanıcı adı ve parola girin. Environment variable için **Variable** butonundan değişken seçip yapıştırabilirsiniz.
  </Step>

  <Step title="FTP Specific Parametreler - Bölüm 2">
    * **UseImplicit / UseExplicit:** FTPS el sıkışma şeklini seçin.
    * **SSL Protocol:** TLS sürümünü belirleyin (örn. TLS1.2).
    * **Timeout:** Ağ gecikmesine göre 30-90 sn arası ayarlayın.
    * **RetryCount:** Kararsız bağlantılarda 3-5 arası önerilir.
  </Step>

  <Step title="Güvenlik ve Authentication Ayarları">
    * Kullanıcı adı/şifre veya environment variable kullanın.
    * FTPS için gerekli sertifikaları trust store'a yükleyin (FTPS kullanıyorsanız).
    * **Uyarı:** Production ortamında anonim FTP erişimine izin vermeyin.
  </Step>

  <Step title="Test Connection">
    * **\[Test Connection]** butonuna tıklayın.
    * Ortam seçili olduğundan emin olun.
    * Bağlantı parametrelerinin doğru olup olmadığını test edin.
    * **Başarılı:** Yeşil onay mesajı
    * **Başarısız:** Hata detayları gösterilir
  </Step>

  <Step title="Kaydetme">
    * Sağ üstteki **\[Save and Deploy]** butonuna tıklayın.

    **Kontrol Listesi:**

    * Benzersiz isim
    * Zorunlu alanlar dolu
    * Test connection başarılı (önerilir)

    **Sonuç:**

    * Connection listeye eklenir
    * Integration Flow ve Connector adımlarında kullanılabilir hale gelir
    * Ortama göre aktif olur

    <Check>
      Connection başarıyla oluşturuldu! Artık Integration Flow ve Connector adımlarında kullanabilirsiniz.
    </Check>
  </Step>
</Steps>

### Connection'ı Silme

Connection'ı silmek için:

<CardGroup cols={2}>
  <Card title="Yöntem 1: Liste Ekranından" icon="list">
    * Connection listesinde satır sonundaki **⋮** menüsünden **Delete** seçeneğini tıklayın.
    * Onay dialogunda silme işlemini onaylayın.
  </Card>

  <Card title="Silme İpuçları" icon="info-circle">
    **Silmeden Önce Kontrol Edin:**

    * Integration Flow veya Connector adımlarında kullanılıyor olabilir.
    * Gerekirse alternatif bir connection atayın.
    * Silmeden önce Export ile yedek alın.
  </Card>

  <Card title="Alternatif: Deaktif Etme" icon="toggle-off">
    * Silmek yerine connection'ın aktif durumunu pasif hale getirin.
    * Connection pasif olur ancak silinmez.
    * Gerektiğinde aktif hale getirerek yeniden kullanabilirsiniz.
  </Card>
</CardGroup>

### Connection'ı Dışa/İçe Aktarma

<Info>
  Bu adımda kullanıcı, mevcut connection'ları yedekleme, farklı ortamlara taşıma veya paylaşma amacıyla dışa aktarabilir (export) ya da daha önce dışa aktarılmış bir connection'ı tekrar içe aktarabilir (import). Bu işlem, sürüm yönetimi, test ve üretim ortamları arasında geçiş veya ekipler arası paylaşım süreçlerinde veri bütünlüğünü korumak için kullanılır.
</Info>

<AccordionGroup>
  <Accordion title="Dışa Aktarma (Export)">
    <CardGroup cols={2}>
      <Card title="Yöntem 1: Liste Ekranından" icon="list">
        * Connection listesinde satır sonundaki **⋮** menüsünden **Export** seçeneğini tıklayın.
        * ZIP dosyası otomatik olarak indirilir.
      </Card>

      <Card title="Dosya Formatı" icon="file-zipper">
        Format: `{Date}-ftp-integration-{ConnectionName}-export.zip`\
        Örnek: `13 Nov 2025-ftp-integration-Production_FTP-export.zip`
      </Card>

      <Card title="ZIP İçeriği" icon="folder-open">
        * Connection JSON dosyası
        * Metadata bilgileri
        * Bağımlılık bilgileri (örneğin sertifikalar, key store)
      </Card>

      <Card title="Kullanım Alanları" icon="list-check">
        * Yedekleme
        * Ortamlar arası taşıma (Test → Prod)
        * Versiyonlama
        * Ekip veya proje bazlı paylaşım
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="İçe Aktarma (Import)">
    <CardGroup cols={2}>
      <Card title="İçe Aktarma Adımları" icon="upload">
        * Ana listede **\[Import FTP Bağlantısı]** butonuna tıklayın.
        * İndirilen ZIP dosyasını seçin.
        * Sistem kontrolleri: Format geçerli mi? İsim çakışması var mı? Bağımlılıklar mevcut mu?
        * Ardından **\[Import]** butonuna tıklayın.
      </Card>

      <Card title="İçe Aktarma Senaryoları" icon="info-circle">
        **Senaryo 1: İsim Çakışması** → Eski connection'ın üzerine yazın veya yeni bir isimle oluşturun.

        **Senaryo 2: Eksik Bağımlılıklar** → Eksik sertifikaları veya key store'ları önce oluşturun veya import sırasında çıkarın.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

### Connection'ın Kullanım Alanları

<CardGroup cols={2}>
  <Card title="Connection Oluşturma ve Aktif Etme" icon="check-circle">
    **Adımlar:**

    1. Connection'ı oluşturun
    2. Test Connection ile bağlantıyı doğrulayın
    3. Save and Deploy ile kaydedin ve etkinleştirin
    4. Connection'ın Enabled durumda olduğundan emin olun.
  </Card>

  <Card title="Integration / Connector Adımlarında Kullanım" icon="plug">
    FTP/SFTP/FTPS protokolü ile dosya aktarımı gerektiren adımlarda connection seçilir. Örnek: "FTP Read File", "FTP List File" gibi adımlar. Bağlantı seçimi bu adımların yapılandırmasında yer alan Connection alanından yapılır. Aynı bağlantı, hem dosya gönderme hem alma adımlarında yeniden kullanılabilir.
  </Card>

  <Card title="Scheduled Job Kullanımı" icon="clock">
    Zamanlanmış görevlerde (ör. belirli aralıklarla dosya alma/gönderme, log arşivleme vb.) bağlantı seçilerek FTP/SFTP sunucularına erişim sağlanır. Connection değiştiğinde, job çalışma davranışı da buna göre güncellenir.
  </Card>

  <Card title="Test Amaçlı Kullanım" icon="flask">
    Connection Test özelliği ile bağlantının doğruluğu Integration Flow'dan bağımsız olarak kontrol edilebilir. Bu test hata ayıklama sürecinde kritik önem taşır.
    <Warning>Test sonuçları production aktarımının garantisi değildir; Integration Flow'u ayrıca test edin</Warning>
  </Card>
</CardGroup>

## Best Practices

<AccordionGroup>
  <Accordion title="Yapılması Gerekenler ve En İyi Uygulamalar">
    <CardGroup cols={2}>
      <Card title="Çalışma Dizini Yönetimi" icon="folder">
        **Kötü:** Kullanıcıya root dizin erişimi vermek\
        **İyi:** Yalnızca gerekli klasöre izin vermek\
        **En İyi:** Her senaryo için ayrı workingDir tanımlayıp ACL ile sınırlandırmak
      </Card>

      <Card title="Kimlik Bilgileri Yönetimi" icon="lock">
        **Kötü:** Parolayı formda düz metin olarak saklamak\
        **İyi:** Environment variable kullanarak hassas bilgileri saklamak\
        **En İyi:** Variable butonu ile `${var}` referansları kullanmak
      </Card>

      <Card title="Protokol Seçimi" icon="network-wired">
        **Kötü:** Varsayılan FTP'yi her ortamda kullanmak\
        **İyi:** Gerektiğinde SFTP veya FTPS seçmek\
        **En İyi:** Ortam bazlı protokol yönetip güvenlik gereksimiyle eşlemek
      </Card>

      <Card title="Ortam Yönetimi" icon="server">
        **Kötü:** Tüm ortamlarda aynı connection parametrelerini kullanmak\
        **İyi:** Her ortam için ayrı connection oluşturmak\
        **En İyi:** Environment seçeneğini kullanarak tek connection'da tüm ortamları yönetmek, ortamlar arası geçişte sadece environment değiştirmek
      </Card>

      <Card title="Connection Test" icon="check-circle">
        **Kötü:** Connection'ı test etmeden kaydetmek ve deploy etmek\
        **İyi:** Kaydetmeden önce Test Connection ile doğrulamak\
        **En İyi:** Her parametre değişikliğinden sonra test etmek, production'a geçmeden önce test ortamında tam entegrasyon testi yapmak
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Güvenlik En İyi Uygulamaları">
    <CardGroup cols={2}>
      <Card title="IP ve Firewall Kısıtları" icon="shield">
        FTP sunucularını sadece Apinizer gateway IP aralığına açın, gerektiğinde pasif FTP port aralığını beyaz listeleyin
      </Card>

      <Card title="Dosya Bütünlüğü" icon="file-check">
        Transfer sonrası checksum doğrulaması yaparak beklenmeyen manipülasyonları yakalayın
      </Card>

      <Card title="Kimlik Bilgileri Yönetimi" icon="lock">
        Kullanıcı adı ve şifre gibi hassas bilgileri environment variable kullanarak saklayın. Kimlik bilgilerini kod veya konfigürasyon dosyalarına hardcode etmeyin. Periyodik olarak şifreleri güncelleyin
      </Card>

      <Card title="SSL/TLS Kullanımı" icon="shield-alt">
        Production ortamında mutlaka SSL/TLS aktif edin. Self-signed sertifikalar sadece development ortamında kullanın. Sertifika expiration tarihlerini takip edin ve zamanında yenileyin
      </Card>

      <Card title="Erişim Kontrolü" icon="user-shield">
        Connection yapılandırmasını sadece yetkili kullanıcıların değiştirmesine izin verin. Connection değişiklik loglarını saklayın. Kritik connection'lar için değişiklik approval süreci uygulayın
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Kaçınılması Gerekenler">
    <CardGroup cols={2}>
      <Card title="Anonim FTP Kullanımı" icon="ban">
        **Neden kaçınılmalı:** Kimlik doğrulama bypass edilir, veri sızıntısı olur\
        **Alternatif:** Kimlik bilgisi zorunlu kullanıcılar tanımlayın
      </Card>

      <Card title="Geniş Yetkili Kullanıcılar" icon="user-times">
        **Neden kaçınılmalı:** Gereksiz silme/yazma yetkisi riski artırır\
        **Alternatif:** Salt okunur veya sadece gerekli dizinlere yetkili hesaplar kullanın
      </Card>

      <Card title="Yanlış Protokol Seçimi" icon="exclamation-triangle">
        **Neden kaçınılmalı:** FTPS gereksinimi olan ortamda FTP seçimi regülasyon ihlali doğurur\
        **Alternatif:** Gereksinime göre SFTP/FTPS seçin, protokolü dökümante edin
      </Card>

      <Card title="Production Connection'ı Test Ortamında Kullanma" icon="exclamation-triangle">
        **Neden kaçınılmalı:** Test verileri production sistemine yazılabilir, gerçek kullanıcılar etkilenebilir, güvenlik riski oluşur\
        **Alternatif:** Her ortam için ayrı connection oluşturun, environment parametresini kullanın, connection isimlerini ortama göre prefix ekleyerek ayırın (Test\_, Prod\_)
      </Card>

      <Card title="Çok Düşük Timeout Değerleri" icon="clock">
        **Neden kaçınılmalı:** Ağ gecikmelerinde connection sürekli timeout olur, Entegrasyon adımları başarısız olur\
        **Alternatif:** Gerçek kullanım senaryolarına göre timeout değerlerini ayarlayın, network latency'yi ölçün ve timeout'ları buna göre belirleyin
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Performans İpuçları">
    <CardGroup cols={2}>
      <Card title="Dosya Segmentasyonu" icon="file">
        **Öneri:** Büyük dosyaları Integration Flow seviyesinde parçalara ayırın\
        **Etki:** Transfer süresi kısalır, yeniden deneme maliyeti düşer
      </Card>

      <Card title="Pasif/aktif FTP Seçimi" icon="network-wired">
        **Öneri:** Firewall arkasında pasif FTP kullanın ve port aralığını daraltın\
        **Etki:** Ağ sorunları azalır, bağlantı stabilitesi artar
      </Card>

      <Card title="Timeout Değerleri Optimizasyonu" icon="clock">
        **Öneri:** Gerçek network latency'yi ölçün, timeout değerlerini buna göre ayarlayın, çok düşük veya çok yüksek timeout'lardan kaçının\
        **Etki:** Gereksiz beklemeler önlenir, hızlı fail-over sağlanır, kullanıcı deneyimi iyileşir
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Sorun Giderme (Troubleshooting)

<AccordionGroup>
  <Accordion title="Directory Listing Başarısız">
    <Warning>
      Yanlış workingDir, kullanıcının listeleme yetkisi yok veya firewall pasif port aralığını engelliyor olabilir.
    </Warning>

    <Steps>
      <Step title="WorkingDir Doğrulama">
        WorkingDir değerini doğrulayın.
      </Step>

      <Step title="Kullanıcı İzinleri">
        FTP kullanıcı izinlerini kontrol edin.
      </Step>

      <Step title="Pasif Port Aralığı">
        Pasif port aralığını açın.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="SSL/TLS Negotiation Hatası">
    <Warning>
      Yanlış sslProtocol değeri, sertifika süresi doldu veya UseImplicit/UseExplicit uyumsuz olabilir.
    </Warning>

    <Steps>
      <Step title="TLS Sürümü">
        TLS sürümünü karşı tarafla hizalayın.
      </Step>

      <Step title="Sertifika Yenileme">
        Sertifikayı yenileyin.
      </Step>

      <Step title="FTPS Modu">
        Doğru FTPS modunu seçin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Connection Timeout">
    <Warning>
      Network gecikmesi, hedef sistem yavaş yanıt veriyor veya timeout değeri çok düşük olabilir.
    </Warning>

    <Steps>
      <Step title="Network Kontrolü">
        Network connectivity kontrol edin.
      </Step>

      <Step title="Sistem Sağlığı">
        Hedef sistem sağlığını kontrol edin.
      </Step>

      <Step title="Timeout Ayarları">
        Timeout değerlerini artırın.
      </Step>

      <Step title="Log İnceleme">
        Connection loglarını inceleyin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Authentication Failed">
    <Warning>
      Yanlış kullanıcı adı/şifre, expired credentials veya yetki problemi olabilir.
    </Warning>

    <Steps>
      <Step title="Kimlik Bilgileri">
        Kimlik bilgilerini doğrulayın.
      </Step>

      <Step title="Kullanıcı Durumu">
        Hedef sistemde kullanıcının aktif olduğunu kontrol edin.
      </Step>

      <Step title="Yetki Kontrolü">
        Gerekli yetkilerin verildiğini kontrol edin.
      </Step>

      <Step title="Sertifika Kontrolü">
        SSL/TLS sertifikalarını kontrol edin.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Connection Test Başarılı Ama Entegrasyon Akışı Hata Veriyor">
    <Warning>
      Integration/Connector adımında farklı connection seçili olabilir, adım yanlış yapılandırılmış olabilir veya Flow/Job redeploy edilmemiş olabilir.
    </Warning>

    <Steps>
      <Step title="Enable Toggle">
        Connection'ın enable toggle'ının aktif olduğunu kontrol edin.
      </Step>

      <Step title="Connection Seçimi">
        Integration Flow'da doğru connection'ın seçildiğini doğrulayın.
      </Step>

      <Step title="Connection Deploy">
        Connection'ı tekrar deploy edin.
      </Step>

      <Step title="Flow/Job Deploy">
        Integration Flow veya Job'ı redeploy edin.
      </Step>

      <Step title="Log Kontrolü">
        Gateway loglarını kontrol edin.
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

## Sık Sorulan Sorular (SSS)

<AccordionGroup>
  <Accordion title="FTP ve SFTP için ayrı connection tanımlamak zorunda mıyım?">
    <Info>
      Aynı bağlantıda protokolü değiştirebilirsiniz ancak her protokol için ayrı ortam parametreleri oluşturmak izlenebilirliği artırır.
    </Info>
  </Accordion>

  <Accordion title="Çalışma dizinini sonradan değiştirmek akışları etkiler mi?">
    <Warning>
      Evet, Flow'da kullanılan tüm dosya yolları yeni workingDir'e göre güncellenmelidir; aksi halde "dosya bulunamadı" hatası alırsınız.
    </Warning>
  </Accordion>

  <Accordion title="Pasif FTP port aralığını nereden yönetebilirim?">
    <Info>
      Port aralığı FTP sunucusunda tanımlanır, gateway tarafında firewall'a aynı aralık açılmalıdır. Connection dokümanında bilgi amaçlı not düşebilirsiniz.
    </Info>
  </Accordion>

  <Accordion title="SFTP anahtar dosyasını nasıl bağlarım?">
    <Info>
      SFTP bağlantısı sadece kullanıcı adı ve parola ile kimlik doğrulaması destekler. SSH anahtar tabanlı kimlik doğrulama mevcut sürümde desteklenmemektedir.
    </Info>
  </Accordion>

  <Accordion title="Aynı bağlantıyı hem indirme hem yüklemede kullanabilir miyim?">
    <Check>
      Evet, yeter ki kullanıcı yetkileri her iki işleme izin versin; Integration Flow adımlarında aynı connection seçilebilir.
    </Check>
  </Accordion>

  <Accordion title="Aynı connection'ı birden fazla Integration Flow'da kullanabilir miyim?">
    <Check>
      Evet, aynı connection birden fazla Integration Flow veya Connector adımında kullanılabilir. Bu merkezi yönetim sağlar ve konfigürasyon tutarlılığını garanti eder. Ancak connection'da yapılan değişiklikler tüm kullanım yerlerini etkileyeceği için dikkatli olunmalıdır.
    </Check>
  </Accordion>

  <Accordion title="Test ve Production için farklı connection'lar mı oluşturmalıyım?">
    <Check>
      Evet, her ortam için ayrı connection oluşturmanız önerilir. Alternatif olarak environment parametresini kullanarak tek connection içinde tüm ortamları yönetebilirsiniz. Bu yaklaşım daha kolay yönetim ve daha az hata riski sağlar.
    </Check>
  </Accordion>

  <Accordion title="Test Connection başarılı ama Integration Flow'da çalışmıyor, neden?">
    <Warning>
      Birkaç neden olabilir:
    </Warning>

    1. Connection enable toggle'ı pasif olabilir
    2. Integration adımında farklı bir connection seçili olabilir
    3. Connection deploy edilmemiş olabilir
    4. Integration Flow henüz redeploy edilmemiş olabilir
  </Accordion>
</AccordionGroup>
