QueryProxy
Doküman menüsü

Onay akışı

Roller, bağlantı tanımlamaları ve bir sorgu talebinin gönderimden onaya, maskelenmiş ve denetlenmiş sonuca uzanan yaşam döngüsü.

Güncelleme:

QueryProxy’de her şey tek bir nesnenin etrafında döner: sorgu talebi. Bu kılavuz kimin ne yapabildiğini ve bir talebin her adımda başına gelenleri anlatır.

Roller

Rol Yetkileri
Admin Sistem genelinde her şey: takımlar, kullanıcılar, tüm ayarlar. Kullanıcı bazında verilir (is_admin).
DBA Bağlantıları ve maskeleme kurallarını yönetir, erişim tanımlar, talepleri onaylar/reddeder; takımın her bağlantısına sorgu da gönderebilir.
Developer Tanımlanmış bağlantılar üzerinden sorgu gönderir, kendi (maskelenmiş) sonuçlarını görür.
Auditor Denetim günlüğüne (ve CSV dışa aktarımına) ve takımın Talepler listesi ile talep detayına (SQL, durum, talep sahibi, onaylayan, onay izi, DDL işareti) salt-okunur erişim; sonuç satırlarını görüntüleyemez ve indiremez; bağlantılara, onaylara, maskelemeye ve ChatOps ayarlarına erişimi yoktur.

Admin globaldir; DBA, Developer ve Auditor takım bazındadır. Bir kullanıcı birden çok takımda farklı rollerle yer alabilir. Bağlantılar, talepler, maskeleme kuralları ve denetim günlükleri takım sınırını asla aşmaz.

Denetim günlüğü Auditor ve Admin’e ayrılmıştır; DBA’nin erişimi yoktur.

Bağlantılar ve tanımlamalar

DBA’ler hedef veritabanlarını Connections altında kaydeder. Kimlik bilgileri (host, port, veritabanı, kullanıcı adı, parola) AES-256 ile şifreli saklanır. Parola kaydedildikten sonra bir daha gösterilmez — düzenleme formu onu boş bırakır, boş bırakmak da kayıtlı parolayı korur; diğer alanlar formda dolu gelir. Kimlik bilgileri günlüklere veya hata mesajlarına da düşmez.

Bir geliştirici, bir bağlantıyı ancak DBA kendisine tanımladıktan sonra görür (Connections → Grants). Tanımlanmamış bağlantılar Query Studio’da görünmez.

Talebin yaşam döngüsü

pending ──▶ approved ──▶ queued ──▶ running ──▶ completed
   │                                              │
   ├──▶ rejected  (gerekçe zorunlu)               └──▶ failed
   └──▶ cancelled (talep sahibi ya da admin)
  • Gönderim. Geliştirici Query Studio’da SQL yazar. SQL korumaları gönderimden önce doğrular — kural ihlal eden talep kuyruğa hiç girmez.
  • Bekleme. Talep, biri karar verene kadar süresiz bekler; otomatik zaman aşımı yoktur. Takım DBA’leri portalda ve yapılandırıldıysa Slack / Teams üzerinden bilgilendirilir.
  • Onay / Red. Takımın herhangi bir DBA’i karar verebilir — kendi talepleri hariç: kendine onay engellidir. Admin’ler bu engeli aşabilir; aşım denetim günlüğünde işaretlenir. Red için yazılı gerekçe zorunludur. Karar sohbetten geliyorsa aynı kurallara ek olarak iki koşul daha aranır: kontrolün taşıdığı tek kullanımlık aksiyon token’ı (o tek talebe bağlı, 24 saat ömürlü) geçerli olmalı ve çözülen onaylayan entegrasyonun takımına üye olmalıdır.
  • Çalıştırma. Onaylanan talepler kuyruğa girer ve işçi tarafından alınır. Okumalar veritabanı cursor’ı üzerinden sonuç dosyasına akar; her satıra yazılmadan önce maskeleme uygulanır. Yazmalar etkilenen satır sayısını raporlar; çok ifadeli talepler atomik çalışır ve herhangi bir ifade başarısız olursa tamamı geri alınır.
  • Sonuçlar. Talep sahibi (ve takımın DBA’leri) sonuçları sayfa sayfa görüntüleyebilir ya da CSV indirebilir. Denetçiler talep meta verisini, geçmişi ve onay izlerini görür — sonuç verisinin kendisini değil. Sonuç dosyaları yapılandırılan saklama süresi sonunda otomatik silinir.

Bildirimler

Talep sahipleri, talepleri karara bağlandığında ve çalıştırma bittiğinde; DBA’ler yeni gönderimlerde bilgilendirilir. Bildirimler portalın zil menüsünde görünür. Yeni gönderimler ve kararlar, sohbet kanalı yapılandırıldıysa orada da duyurulur; çalıştırma-bitti bildirimi yalnızca portalda talep sahibine gider, Slack’e ya da Teams’e gönderilmez.

Denetim izi

Yukarıdaki her adım bir denetim kaydı yazar: gönderim, karar (kanal ve aşım işaretiyle), çalıştırma başlangıcı/bitişi (süre ve etkilenen satırlarla), sonuç indirmeleri; ayrıca girişler, tanımlamalar ve yapılandırma değişiklikleri. Denetim kayıtları değiştirilemez — model katmanı güncelleme ve silmeyi reddeder. Denetçiler izi filtreleyebilir ve CSV olarak dışa aktarabilir.

Kayıtlar istemci IP’sini QueryProxy’nin gördüğü hâliyle tutar. Bir ters vekil arkasında bu, vekili TRUSTED_PROXIES’e yazmadıkça vekilin kendi adresidir — bkz. Yapılandırma.

Gezinmek için ok tuşları, açmak için Enter.