Workflow Versiyonlama: Community Edition için Change History, JSON Export, Git Backup Çözümü

Workflow History, Enterprise planı olmadan yalnızca 24 saat gösterir. İşte n8n workflow'larını JSON export ve Git ile kendiniz kalıcı olarak nasıl yedekleyebileceğiniz.

n8n'de workflow oluşturan herkes bunları sürekli değiştirir: bir node eklenir, bir filtre ayarlanır, sonradan bir hata yönetimi eklenir. Versiyonlama olmadan bu değişikliklerin her biri sessiz bir üzerine yazma işlemidir ve "Dün hangi versiyon hala stabil çalışıyordu?" sorusu artık cevaplanamaz. n8n bunun için yerleşik bir Change History sunar, ancak tam geçmiş ve Source Control üzerinden native Git senkronizasyonu Business ve Enterprise planlarına ayrılmıştır, ücretsiz Community Edition'a değil.

Diğer herkes için manuel JSON export bir çözüm olarak kalır: workflow'lar istenildiği zaman JSON dosyası olarak indirilebilir ve kendi Git deponuza eklenebilir. Bu makale, yerleşik Change History'nin gerçekte ne sunduğunu, sınırlarının nerede olduğunu ve Enterprise lisansı olmadan bile mevcut araçlarla nasıl çalışan bir yedekleme ve versiyonlama sistemi kurabileceğinizi gösteriyor.

Yerleşik workflow Change History ne gösterir?

n8n'deki her workflow'un, tüm kaydedilmiş versiyonların listelendiği bir menüyü açan kendi geçmiş simgesi vardır, her biri seçilen versiyonun canvas önizlemesiyle birlikte.n8n'in Change History dokümantasyonuna göre n8n, workflow'u kaydettiğinde, eski bir versiyonu geri yüklediğinde (bu durumda önceden aktif olan versiyon önce kaydedilir) veya Source Control üzerinden bir Git deposundan pull yaptığında otomatik olarak yeni bir versiyon oluşturur.

Kaydedilen her versiyon için birkaç işlem kullanılabilir:

  • Versiyonu geri yükle: mevcut workflow'u seçilen versiyonla değiştirir.
  • Yeni workflow olarak klonla: versiyonun bir kopyasını bağımsız bir workflow olarak oluşturur.
  • Versiyonu yeni sekmede aç: iki versiyonu doğrudan yan yana karşılaştırmaya olanak tanır.
  • İndir: seçilen versiyonu JSON dosyası olarak dışa aktarır.
  • Versiyonu adlandır: onu otomatik temizlemeye karşı korur, bu özellik Pro ve Enterprise kullanıcılarına ayrılmıştır.

Bu geçmişin kapsamı pratikte önemlidir. Plana göre belirgin şekilde farklılık gösterir:

  • Enterprise (Cloud veya Self-hosted): zaman sınırı olmadan tam workflow geçmişi.
  • Cloud Pro: son beş günün versiyonları.
  • Community Edition dahil diğer tüm kullanıcılar: yalnızca son 24 saatin versiyonları.

Bu somut olarak şu anlama gelir: Community Edition veya basit bir Cloud planı kullanan biri en geç bir gün sonra daha eski ara durumlara erişimini kaybeder. Gerçek, kalıcı bir versiyon geçmişi için yerleşik özellik bu durumlarda yeterli değildir.

Git üzerinden Source Control neden herkes için kullanılabilir değil?

n8n, Source Control ile workflow'ları bir depoyla otomatik olarak senkronize etmeyi sağlayan native bir Git entegrasyonu sunar, ayrı Git branch'leri üzerinden birden fazla ortam dahil.n8n'in Source Control ve Environments dokümantasyonuna göre bu özellik ise "Available on Business and Enterprise plans" durumundadır, yani ne ücretsiz Community Edition'ın ne de basit Cloud paketlerinin bir parçasıdır.

Source Control'ün kullanılabilir olduğu yerlerde kurulum Settings > Environments üzerinden yapılır. Orada Git deposu URL'sini, ya bir Deploy Key ile SSH üzerinden ya da bir Personal Access Token ile HTTPS üzerinden girersiniz ve n8n bunun için otomatik olarak bir SSH anahtarı oluşturur (varsayılan olarak ED25519). Instance sahipleri ve instance yöneticileri daha sonra hem push hem pull yapabilir, proje yöneticileri ise yalnızca push yapabilir. Birden fazla ortamla üretken şekilde çalışan ve Business veya Enterprise lisansına sahip olan herkes bu native yolu kullanmalıdır, bu da export'un manuel bakımını üzerinizden alır.

Çözüm: JSON export üzerinden manuel Git yedeklemesi

Business veya Enterprise lisansı olmadan, JSON export workflow'ları kalıcı ve versiyonlanmış şekilde güvence altına almanın en güvenilir yolu olmaya devam ediyor.n8n'in Export ve Import dokümantasyonuna göre n8n workflow'ları temelde JSON formatında saklar ve tam olarak bu format dışa aktarılabilir, bir Git deposuna eklenebilir ve orada diğer her kod değişikliği gibi commit edilebilir, etiketlenebilir ve geri alınabilir.

Arayüz üzerinden export

Tek tek workflow'lar için editör arayüzü tamamen yeterlidir:

  • Workflow'u açın ve sağ üstteki üç nokta menüsüne tıklayın.
  • Mevcut workflow'u bilgisayarınıza JSON dosyası olarak indirmek içinDownload seçeneğini seçin.
  • Alternatif olarak tek tek node'ları seçip Ctrl+C veya Cmd+C ile kopyalayabilir ve bir metin editörüne yapıştırabilirsiniz, bu da kısmi bölümler için geçerli workflow JSON'u üretir.
  • Bir JSON dosyası daha sonraImport from File veyaImport from URL üzerinden n8n'e tekrar yüklenebilir.

Dokümantasyon, dışa aktarılan JSON dosyalarının credential adları ve credential ID'leri içerdiğini açıkça belirtir. Böyle bir dosyayı paylaşmadan veya ortak bir depoya koymadan önce, hassas erişim bilgilerinin yanlışlıkla versiyon geçmişine karışmaması için bu bilgileri kaldırmalı veya anonimleştirmelisiniz.

Tüm instance'lar için komut satırı üzerinden export

Kendi barındırdığınız bir n8n instance'ının tüm workflow'larının eksiksiz bir yedeğini almak için CLI, manuel tek tek indirmeden daha uygundur.n8n'in komut satırı dokümantasyonuna göre bunun için ayrı export ve import komutları mevcuttur:

  • `n8n export:workflow --all --output=backups/latest/` tüm workflow'ları bir dizine dışa aktarır.
  • `n8n export:workflow --backup --output=backups/latest/` dahili olarak `--all --pretty --separate` ayarlayan özel backup modunu kullanır: tüm workflow'lar, okunabilir şekilde biçimlendirilmiş, her biri ayrı bir dosya olarak.
  • `n8n export:workflow --id=<ID> --output=file.json` hedefli olarak tek bir workflow'u dışa aktarır.
  • `n8n import:workflow --separate --input=backups/latest/` tek tek JSON dosyaları içeren eksiksiz bir dizini geri içe aktarır.
  • `n8n import:workflow --separate --input=backups/latest/ --activeState=fromJson` içe aktarma sırasında her workflow'un orijinal aktivasyon durumunu da devralır.

Bundan bir Git yedeklemesi nasıl kurulur

CLI'nin backup modunu düzenli bir cron job ve bir Git deposuyla birleştirin, sonuçta kendi yaptığınız ama sağlam bir versiyonlama elde edersiniz:

1. Diğer uygulama kodunuzdan ayrı, özel bir Git deposu oluşturun.

2. n8n sunucusunda `n8n export:workflow --backup --output=backups/latest/` komutunu çalıştıran günlük bir cron job kurun.

3. Dışa aktarılan dosyaları, otomatik veya manuel olarak, açıklayıcı bir commit mesajıyla depoya commit edin.

4. Her commit'ten önce, temizlenmemiş credential referanslarının bulunmadığını kontrol edin, ideal olarak `credentialId` gibi bilinen kalıpları filtreleyen veya işaretleyen basit bir script ile.

5. İstikrarlı production durumlarını açıkça işaretlemek için gerektiğinde `git tag` kullanın, böylece onları aylar sonra bile tekrar bulabilirsiniz.

Bununla özünde Source Control'ün native olarak sunduğu şeyi elde edersiniz, sadece otomatik bir push-pull mekanizması olmadan ve geri yüklerken biraz daha fazla manuel çalışmayla. Küçük ekipler ve bağımsız freelancer'lar için bu, bir Business lisansı ekonomik olarak karşılığını verene kadar genellikle kabul edilebilir bir uzlaşmadır.

n8n versiyonları otomatik olarak ne kadar süre saklar?

Yerleşik workflow geçmişini kullanan ve saklama süresini kendisi kontrol etmek isteyen herkes, sunucu yapılandırmasında doğru ayarı bulacaktır.n8n'in workflow history ortam değişkenleri dokümantasyonuna göre `N8N_WORKFLOW_HISTORY_PRUNE_TIME` değişkeni, n8n eski versiyonları otomatik olarak silmeden önce kaç saat saklanacağını belirler. Varsayılan değer `-1`'dir, bu da teknik olarak tüm versiyonların sınırsız süreyle saklandığı anlamına gelir, ancak görünürlük için önceki bölümdeki plana bağlı sınırlar yine de geçerlidir.

Enterprise lisansı olmayan kendi barındırılan instance'larda yine de bu değişkeni bilinçli olarak ayarlamaya ve ek olarak JSON export çözümünü kurmaya değer. Böylece arayüzün o anda ne gösterdiğinden veya gizlediğinden bağımsız olarak versiyon geçmişiniz üzerinde kontrolü elinizde tutarsınız.

Sık sorulan sorular

Workflow versiyonlaması için mutlaka bir Enterprise lisansına ihtiyacım var mı?

Hayır. Tam geçmişe sahip yerleşik Change History ve Source Control üzerinden native Git senkronizasyonu gerçekten Business ve Enterprise planlarına ayrılmıştır, ancak manuel JSON export ücretsiz Community Edition dahil her n8n versiyonunda çalışır. Kendi Git deponuz ve düzenli bir CLI export ile birleştirildiğinde, manuel de olsa tam teşekküllü bir versiyonlama elde edersiniz.

n8n, Business veya Enterprise planı olmadan workflow versiyonlarını ne kadar süre saklar?

Community Edition'da ve basit planlarda, `N8N_WORKFLOW_HISTORY_PRUNE_TIME` ortam değişkeni sınırsız saklamaya ayarlanmış olsa bile arayüz üzerinden yalnızca son 24 saatin versiyonları görüntülenebilir. Daha geriye gitmesi gereken her şey için ya daha yüksek bir plana ya da JSON export üzerinden kendi yedekleme sisteminize ihtiyacınız vardır.

Dışa aktarılan JSON dosyaları erişim bilgilerimi içeriyor mu?

n8n dokümantasyonuna göre, dışa aktarılan workflow JSON dosyaları credential adları ve credential ID'leri içerir, ancak düz metin şifreler veya token'lar içermez. Yine de bu referansları, paylaşmadan veya ortak bir depoya eklemeden önce, kimsenin ID'lerden erişim bilgisi yapınız hakkında sonuç çıkaramaması için kaldırmalı veya anonimleştirmelisiniz.

Tüm workflow yerine tek tek node'ları yedekleyebilir miyim?

Evet. Canvas üzerinde tek tek node'ları seçip Ctrl+C veya Cmd+C ile kopyalarsanız, bir metin editöründe kaydedilip daha sonra tekrar yapıştırılabilen geçerli workflow JSON'u elde edersiniz. Bu, bir hata yönetimi veya standart bir HTTP yapılandırması gibi yeniden kullanılabilir yapı taşlarını ayrı ayrı versiyonlamak için iyi uygundur.

CLI backup seçeneği ile tüm workflow'ların basit bir export'u arasındaki fark nedir?

`n8n export:workflow --backup` komutu otomatik olarak `--all --pretty --separate` bayraklarını ayarlar, böylece instance'ın tüm workflow'larını dışa aktarır, JSON'u okunabilir şekilde biçimlendirir ve her workflow için ayrı bir dosya oluşturur. Bu bayraklar olmadan `--all` ile yapılan basit bir export ise tüm workflow'ları tek bir dosyaya veya biçimlendirilmemiş şekilde yazabilir, bu da Git'te sonraki diff karşılaştırmalarını önemli ölçüde daha karmaşık hale getirir. Bu nedenle temiz bir Git yedeklemesi için backup modu daha iyi seçimdir.

NordFlux hakkında

NordFlux UG (haftungsbeschränkt)

NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.

Hakkımızda daha fazlası
Ücretsiz ön analiz

Otomasyon veya KI hakkında somut sorularınız mı var?

Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.