QueryProxy
Doküman menüsü

Giriş

QueryProxy nedir, hangi sorunu çözer ve bir sorgu geliştiricinin editöründen maskelenmiş, denetlenmiş sonuca nasıl ulaşır.

Güncelleme:

QueryProxy, kendi sunucunuzda çalışan bir veritabanı erişim denetimi ve sorgu onay portalıdır. Ekibinizle veritabanlarınızın arasında durur; geliştiriciler üretim parolalarını hiç ellerine almadan üretim verisiyle çalışabilir.

Parola paylaşmak ya da geçici tüneller açmak yerine ekibiniz tek bir akışı izler:

  1. Gönder — geliştirici, DBA’in kendisine tanımladığı bir bağlantı üzerinde, korumalı editörde SQL yazar. Kimlik bilgileri şifreli kasadan çıkmaz.
  2. Denetle — SQL çalışmadan önce parse edilip incelenir: WHERE’siz UPDATE/DELETE reddedilir, LIMIT’siz SELECT’e limit eklenir, sunucuda kod çalıştırmaya ya da dosyalara uzanan komutlar engellenir.
  3. Onayla — bir DBA, talebi web kuyruğundan ya da doğrudan Slack / Teams’ten onaylar veya reddeder. Kimse kendi talebini onaylayamaz.
  4. Çalıştır — kuyruk işçisi sorguyu asenkron çalıştırır, sonucu satır satır akıtır, kişisel verileri diske değmeden maskeler ve her adımı değiştirilemez denetim günlüğüne yazar.

Nasıl çalışır

Aynı akış bir şema olarak. Her ok denetim günlüğüne yazılan bir adımdır; onaylı sorguları kuyruk ve işçi çalıştırır, bu yüzden işçi isteğe bağlı değildir.

Developer ──▶ Query Studio ──▶ SQL guards (AST) ──▶ pending request
                                                        │
                       Slack / Teams ◀── notification ──┤
                            │                           │
                            ▼                           ▼
                     Approve / Reject ──────▶ queue ──▶ worker
                     (HMAC-verified)                    │ cursor streaming
                                                        ▼
                                        masked NDJSON result on storage disk
                                                        │
                              viewer / CSV download ◀───┘   (all steps audited)

Neler sunar

  • Takımlar ve roller — Admin, DBA, Developer ve Auditor rolleri; bağlantılar, talepler ve denetim izleri takım bazında izoledir.
  • Bağlantı kasası — AES-256 ile şifreli kimlik bilgileriyle PostgreSQL, MySQL ile MariaDB, SQL Server ve SQLite hedefleri.
  • SQL korumaları — desen eşleme değil, gerçek parse ile uygulanır. Arkasındaki fikir veritabanı erişim denetimi yazısında anlatılır; diğer araçlarla karşılaştırması ayrıca ele alınır.
  • ChatOps onayları — etkileşimli Slack düğmeleri ve Teams aksiyon ucu; ikisi de zaman damgalı, yeniden oynatmaya karşı korumalı HMAC-SHA256 imzalarıyla doğrulanır. Her Approve / Reject kontrolü ayrıca tek bir talebe bağlı, tek kullanımlık bir aksiyon token’ı taşır ve signing secret’ı yalnızca sistem yöneticisi belirleyebilir.
  • Dinamik veri maskeleme — kolon deseni ve içerik regex kuralları, sonuçlar yazılırken uygulanır.
  • İki adımlı doğrulama — kurtarma kodlu, isteğe bağlı TOTP; rol bazında zorunlu kılabileceğiniz kurulum genelinde bir gereksinim; her kod yalnızca bir kez kullanılabilir.
  • Değiştirilemez denetim günlüğü — kim istedi, kim onayladı, ne çalıştı, neye dokundu.

Mimariye bakış

QueryProxy tek bir Laravel uygulaması + bir kuyruk işçisi + bir zamanlayıcıdır — üçü de tek bir konteynerde, tek bir docker run ile başlar. Varsayılan kurulumda hiçbir harici servis gerekmez: uygulama veritabanı SQLite, kuyruk veritabanı tabanlıdır. Büyüdüğünüzde MySQL/PostgreSQL ve Redis’e geçmek bir taşıma değil, yapılandırma değişikliğidir.

Lisans

QueryProxy, AGPL-3.0 lisansıyla açık kaynaktır. Değiştirilmiş bir kopyayı ağ servisi olarak çalıştırıyorsanız, değişikliklerinizi aynı lisansla yayımlamanız gerekir.

Denemeye hazır mısınız? Hızlı başlangıç ile devam edin.

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