Skip to content
Smarter by Design.Simpler for Business

API Commands ​

API Commands Nedir? ​

API Commands, TR7'nin kaynaklarını (vService, Backend Service, profil, ağ, kullanıcı, WAF, AGS, GTM…) komut satırından yöneten komut dalıdır. Pratikte panelin yaptığı işlerin komut satırı karşılığıdır: arayüzde tıklanarak yönetilen nesneler bu dal üzerinden komutlarla listelenir, görüntülenir, oluşturulur, değiştirilir ve silinir.

Dal, panelin REST arayüzünden türetilir: her kaynak komut ağacında bir düğüm, her kaynak üzerindeki işlem bir aksiyon olur. Ağaç Tab ile keşfedilir; alan adları, açıklamaları ve seçenek listeleri arayüzdekiyle aynı tanımlardan gelir.

10 Kaynak Dalı
ags · gtm · lb · network · settings…
Panelin konfigürasyon modülleriyle örtüşen üst düzey komutlar; her biri bir yetki alanına bağlıdır.
5 Standart Aksiyon
list · show · add · update · delete
Her koleksiyon kaynağında aynı, öngörülebilir işlem kümesi; destekleyen kaynaklarda ek olarak update-many.
Hiyerarşik ağaç
Tab ile keşif
Kaynak → alt kaynak → aksiyon → alan olarak dallanır; ezber gerekmez.
Alan Bazlı Yetki
görüntüleme · değiştirme
Okuma komutları alanı görme, yazan komutlar alanı değiştirme yetkisi ister.

Kısa sözdizimi:

<kaynak> [alt-kaynak …] <aksiyon> [<kimlik>] [zorunlu-alan değer …] [--isteğe-bağlı-alan değer …]

Komut Deseni ​

Bir API komutu, bir kaynağı hedef alan hiyerarşik yol ile o kaynak üzerinde çalıştırılacak bir aksiyondan oluşur. Yol soldan sağa daralır: en genel kaynaktan (lb, ags, network…) alt kaynağa, oradan aksiyona iner. Aksiyondan sonra alanlar yazılır.

Alanlar nasıl yazılır? ​

Bir aksiyona verilen alanlar iki türlüdür; biçim, alanın zorunlu olup olmadığını gösterir:

alan <değer>
Zorunlu — öneksiz yazılır ve tamamlama listesinde kırmızı görünür. Zorunlu alanlar sırayla istenir: biri verilmeden diğer alanlar listelenmez.
--alan <değer>
İsteğe bağlı — -- öneki ile yazılır. Verilmezse alan varsayılan değeriyle kalır.

Bir kaydı hedefleyen aksiyonlarda kaydın kimliği de zorunludur. show ve delete kimliği aksiyondan hemen sonra, alan adı yazmadan alır; update ise kimliği id alanıyla ister ve kimlik verilmeden diğer alanları listelemez. Kimlik alanı bir seçim listesidir: Tab mevcut kayıtları adlarıyla gösterir.

Alan tipleri ​

TipYazımı
metinSerbest metin değeri
sayı / portSayısal değer
mantıksaltrue ya da false değeri alır
seçimÖnceden tanımlı değerlerden biri (Tab listeler)
çoklu seçimHer seçim ayrı indeksle: --alan.0, --alan.1
listeÇok değerli alan; öğeler indeksle yazılır: --alan.0.altAlan
süreZaman aralığı değeri
adresIP adresi, ağ bloğu ya da adres/port çifti (addr.ip, addr.port)
parolaEkranda gösterilmeden, ayrı bir satırda sorulur

Özel karakter taşıyan değerler tırnak ister

Komut satırı bazı işaretleri ayırıcı sayar. Bu işaretleri içeren bir değer çift tırnak içine alınmadan yazılırsa komut yanlış ayrıştırılır:

İşaretTırnaksız yazılırsa
( )Değer parçalara bölünür; "%AGS_USER_INPUT(username)" biçiminde yazılmalıdır
#Satırın kalanı yorum sayılır ve yok olur; "#2563eb" biçiminde yazılmalıdır
;Değer burada bölünür
boşlukDeğer birden çok parçaya ayrılır

Adres, yol ve eğik çizgi içeren değerler tırnaksız yazılabilir.

Keşif

Tab bulunulan konumdaki alt komutları ve alanları tamamlar. Satırın sonuna ? yazılıp Enter'a basıldığında o konumda kullanılabilecek alanlar Parameter / Description sütunlu bir tablo hâlinde listelenir ve komut çalıştırılmaz; hangi alanın zorunlu olduğunu ezberlemek gerekmez.

Aksiyonlar ​

Koleksiyon tutan her kaynak aynı aksiyon kümesiyle yönetilir. Tek nesneli (ayar) kaynaklarda yalnızca show ve update bulunur; bazı kaynaklarda add ya da delete tanımlı değildir.

AksiyonİşleviNot
listKaynakların tümünü kimlik ve ad sütunlarıyla listelerOkuma
show <kimlik>Tek bir kaydın ayrıntısını gösterirOkuma
add <alanlar>Yeni kayıt oluştururZorunlu alanlar öneksiz, isteğe bağlı alanlar -- önekli
update id <kimlik> [alanlar]Var olan kaydı güncellerYalnızca verilen alanlar değişir, diğerleri korunur
delete <kimlik>Belirtilen kaydı silerAynı komutta birden çok kimlik arka arkaya yazılabilir

update alan yazımının incelikleri. Güncelleme mevcut kaydı okuyup üzerine yazar; bu yüzden yalnız değişecek alanlar verilir. İki ek bayrak yalnızca güncellemede görünür: --alan.delete alanı boşaltır, çoklu seçim alanlarında --alan.all kullanılabilir tüm seçenekleri işaretler. Parola alanları eski kayıttan geri okunmadığı için güncellemede de yeniden istenir.

Toplu Güncelleme (update-many) ​

update-many, aynı değişikliği birçok kayda birden uygular. Sekiz kaynakta bulunur: lb service, lb backend, lb backend-group, lb hc, lb threat-protection, network ip, waf host-groups, waf options.

Yazım. Komuttan sonra ilk yazılan alan target'tır; tek zorunlu alan odur.

AlanDurumDeğer
targetZorunluselected — listeden seçilen kayıtlar · all — koleksiyonun tamamı
--ids.NKoşullutarget selected için hedef kimlikleri. Tab listesinde önerilmez: hedefler seçim listesinden işaretlenir. Betikte ve boru hattında elle yazılır.
--onErrorİsteğe bağlıabort (varsayılan) — hedeflerden biri bile doğrulamadan geçmezse hiçbir şey yazılmaz · skip — geçen hedefler yazılır

Hedef seçim listesi. target selected yazılıp hiç kimlik verilmediğinde, komut çalışmadan hemen önce onay kutulu bir liste açılır. Boşluk tuşu işaretler, Ctrl+A ekrandakilerin tümünü işaretler, harf yazmak listeyi süzer, Esc önce süzgeci temizler sonra listeden çıkar. En az bir kayıt işaretlenmelidir. Terminali olmayan bir çalıştırmada (betik ya da boru hattı) liste açılamaz; hedeflerin --ids.0 --ids.1 … biçiminde yazılması gerekir.

Onay. Her toplu güncelleme, uygulamadan önce onay ister. Uyarı başlığı target all için "Bu işlem koleksiyondaki TÜM nesneleri güncelleyecek", seçim için "N nesne güncellenecek" biçimindedir; ikinci satır seçilen kayıtları adlarıyla sayar (on beşten sonrası "+N tane daha" olarak toplanır). Onay sözcüğü yazılmadan hiçbir şey yazılmaz; yanlış bir şey yazıldığında işlem iptal edilir.

Hangi alanlar toplu yazılabilir. update-many düğümünde yalnız tek bir değerin birçok kayda güvenle yazılabildiği alanlar bulunur. Şunlar bu komutta yer almaz:

Dışarıda kalanNedeni
Kimlik, ad ve benzersiz değerlerAynı değer birden çok kayda yazılamaz
Tür ayıracı ve salt okunur alanlarKaydın kimliğini belirler, sonradan toplu değiştirilemez
Kendi kimliğini taşıyan liste öğeleriBir kaydın öğe kimlikleri ötekilere kopyalanamaz
Değeri başka bir alana bağlı alanlarGeçerli değer, kardeş alanın değerine göre değişir
Dosya ve serbest biçimli nesne alanlarıDeğer değil, yapı taşırlar

Koşula bağlı alanlar bu listede değildir: bir hedefte alan aktif değilse yalnız o hedefte atlanır, işlem hata vermez.

Sonuç raporu. Yanıt her hedefi ayrı ayrı bildirir: sonuç (applied, unchanged, skipped, failed), uygulanan alanlar, o nesnede aktif olmayan alanlar ve varsa hatalar.

CRUD dışı aksiyonlar. Ağaçta yalnızca kayıt yönetimi yoktur; bazı kaynaklar kendi işlemlerini de komut olarak sunar.

Örnek komutİşlevi
lb service restart · lb service status listServisi yeniden başlatır, çalışma durumunu listeler
lb certificate create-csr · lb certificate renew-internalSertifika isteği üretir, dahili üretilmiş sertifikayı yeniler
settings backup create · settings backup applyYedek oluşturur, yedeği uygular
settings update files · settings update applyGüncelleme dosyalarını listeler, güncellemeyi uygular
profile info · profile change-passwordOturum açan kullanıcının bilgisini gösterir, parolasını değiştirir
hw-mgmt configureDonanım yapılandırmasını uygular

Onay isteyen komutlar

Sistem üzerinde geri alınması güç etkisi olan komutlar (donanım yapılandırması, güncelleme uygulama, dahili sertifika yenileme, WAF kural sıfırlama ve tüm toplu güncellemeler) çalışmadan önce onay ister. Onay ekranı sarı bir uyarı başlığı ve Devam etmek için "evet" yazın: satırından oluşur; onay sözcüğü tam olarak yazılmadan hiçbir değişiklik yapılmaz. Ekran dili oturum açan kullanıcının tercihine bağlıdır: İngilizce arayüzde onay sözcüğü yes olur.

Komut Ağacı ​

Aşağıdaki üst düzey komutlar API dalını oluşturur. Parantezsiz açıklamalar, komutun ? çıktısında görünen arayüz karşılıklarıdır.

KomutYönettiği alan
agsAGS - AAM (Application Access Management) yönetimi — gateway, kimlik doğrulama, MFA, formlar, güvenlik politikaları, SSO
exitOturumu kapatır (Ctrl + D ile aynı)
gtmGlobal Traffic Manager — DNS tabanlı küresel trafik yönetimi
helpCLI kullanım kılavuzunu gösterir
historyKomut geçmişini gösterir
hw-mgmtDonanım yönetimi
lbLoad Balancer yönetimi — vService, Backend Service, gruplar, koşullar, aksiyonlar, profiller, sertifikalar
networkAğ yönetimi — arayüzler, adresler, route tabloları, güvenlik duvarı kuralları
profileProfil yönetimi — oturum açan kullanıcının kendi bilgileri
settingsGenel ayarlar — erişim, yedekleme, dizin/log aktarımı, NTP, bildirim
usersKullanıcı yönetimi — cihaz yöneticisi hesapları
v-devicevDevice yönetimi
wafWAF yönetimi — korunan servisler, sunucu grupları, kural kütüphanesi

INFO

Kök seviyede ayrıca logout (CLI kullanıcı çıkışı) ve sistem araçlarını çalıştıran sys-cmd bulunur.

Çıktı Biçimi ve Süzme ​

Yanıt döndüren komutların çıktısı istenen biçimde alınır ve süzülür:

Seçenekİşlev
--infoKomutu çalıştırmadan, ne yaptığının açıklamasını gösterir
--output jsonTek satırlık JSON
--output jsonpGirintili, okunaklı JSON
--output tab · comma · semicolonSütunları sekme, virgül ya da noktalı virgülle ayrılmış düz metin
--output compactDaralmış tablo
--output defaultÇerçeveli tablo (varsayılan görünüm)
--filter <kalıp>Çıktıyı kalıba göre süzer; eşleşen metin yeşil vurgulanır, eşleşmeyen satırlar gösterilmez

TIP

Çıktıyı daha ileri süzmek, dönüştürmek ya da dosyaya yazmak için Pipe Commands kullanılır (| grep, | jq, | to-file…); bir satırda en çok 8 süzgeç zincirlenebilir.

Örnek Senaryolar ​

TR7 WEB-CLI · A) Görüntüleme ve süzme
admin@TR7LBWAF01> lb service list # tüm vService'leri listele
admin@TR7LBWAF01> lb service show <kimlik> # birinin ayrıntısını göster
admin@TR7LBWAF01> lb service list --output jsonp # çıktıyı okunaklı JSON olarak al
admin@TR7LBWAF01> lb service list --filter portal # sonucu kalıba göre süz
admin@TR7LBWAF01>  
TR7 WEB-CLI · B) Yeni kayıt oluşturma
# zorunlu alanlar öneksiz, sırayla yazılır
admin@TR7LBWAF01> lb backend add name web-01 zoneId <vDevice> namespace <route-tablosu> \
addr.ip 10.20.0.15 addr.port 8080
admin@TR7LBWAF01> lb backend list # oluştuğunu doğrula
admin@TR7LBWAF01>  
TR7 WEB-CLI · C) Güncelleme, toplu güncelleme ve silme
admin@TR7LBWAF01> lb backend update id <kimlik> --name web-02 # yalnız değişen alan
admin@TR7LBWAF01> lb service update-many target selected --waf true
admin@TR7LBWAF01> lb backend delete <kimlik> <kimlik-2> # bir ya da çok kaydı sil
admin@TR7LBWAF01>  
TR7 WEB-CLI · D) Keşif ve açıklama
admin@TR7LBWAF01> lb service add --info # komut ne yapar, çalıştırmadan gör
admin@TR7LBWAF01> lb ? # alt komutları açıklamalı listele
admin@TR7LBWAF01> lb service add ? # bu konumdaki alanları listele
admin@TR7LBWAF01>  

Erişim ve Yetkiler ​

Her üst düzey komut bir yetki alanına eşlenir; komutun çalışıp çalışmayacağına kullanıcının o alandaki yetkisi karar verir.

Komut dalıYetki alanı
ags · lbLoad Balancer
networkNetwork
wafWAF
gtmGTM
usersUsers
settings · hw-mgmtSettings
profile · v-deviceEşlenmez; yetkiye sunucu karar verir
Aksiyon türüGereken yetki
Okuma (list, show, durum sorguları)Alanı görüntüleme
Yazma (add, update, update-many, delete ve işlem çalıştıran komutlar)Alanı değiştirme
  • superAdmin rolü bu denetimlerin dışındadır; tüm dallarda okuma ve yazma yapabilir.
  • readOnly rolü tüm alanları okur, hiçbir alanda yazamaz.
  • Alan rolleri (ör. networkManager, trafficUser, wafManager) yalnızca kendi alanlarına giren dalları kullanır; değiştirme yetkisi olanlar o alanda yazabilir.
  • lb dalı yük dengeleme, WAF ve sertifika alanlarını birlikte kapsar; bu alanlardan birinde yetkisi olan kullanıcı dala girebilir, hangi kaynağa erişebileceğine sunucu karar verir.

INFO

Yetki dışı bir komut çalıştırılmaz ve Permission denied. uyarısı döner (arayüz dili Türkçe olan kullanıcıda Yetkiniz bulunmamaktadır.). Erişim modelinin tamamı, kanal anahtarları ve oturum sınırları için Web CLI ana sayfasına bakılabilir.