Slack entegrasyonu
Sorgu taleplerini Slack'ten etkileşimli düğmelerle onaylayıp reddedin — uçtan uca HMAC-SHA256 imzalarıyla doğrulanır.
Güncelleme:
Slack entegrasyonuyla yeni sorgu talepleri bir kanala Onayla / Reddet düğmeleriyle duyurulur; kararlar QueryProxy’ye geri akar — webdekiyle aynı kurallarla (rol denetimi, kendine onay yok) ve kriptografik doğrulamayla.
Kurulum
-
api.slack.com/apps adresinden çalışma alanınız için bir Slack uygulaması oluşturun.
-
Incoming Webhooks’u etkinleştirin ve onay kanalınız (ör.
#db-approvals) için bir webhook ekleyin. -
Interactivity’yi etkinleştirin ve istek URL’sini şuna ayarlayın:
https://queryproxy-sunucunuz/webhooks/slack/interactions -
QueryProxy’de (DBA olarak) ChatOps’u açın; webhook URL’sini ve uygulamanın signing secret’ını yapıştırın. İkisi de şifreli saklanır.
-
Admin → Users ekranında her onaylayıcının Slack üye kimliğini girin (ör.
U0123ABC— Slack profilinde Copy member ID ile görünür). Bu eşleme, Slack tıklamalarını QueryProxy kullanıcılarına bağlar.
Nasıl görünür
Bir talep gönderildiğinde QueryProxy; talep sahibi, bağlantı, SQL önizlemesi ve üç aksiyonla bir mesaj yayınlar: Approve, Reject ve Open in QueryProxy. Karardan sonra mesaj yerinde güncellenir — düğmeler kaybolur ve sonuç görünür; bayat bir mesajdan ikinci kez karar verilemez.
Slack’ten yapılan redler “Rejected via Slack by <isim>” genel gerekçesini kaydeder. Yazılı gerekçe için web arayüzünden reddedin.
Güvenlik
Slack’ten gelen her geri çağrı, herhangi bir şey olmadan önce doğrulanır:
- İmza —
X-Slack-Signaturebaşlığıv0=HMAC_SHA256("v0:{timestamp}:{raw_body}", signing_secret)ile sabit zamanlı karşılaştırmayla eşleşmelidir. - Tekrar koruması —
X-Slack-Request-Timestamp’e göre ±5 dakikadan eski istekler reddedilir. - Kimlik — tıklayan Slack kullanıcısı, talebin takımında DBA rolüne sahip bir QueryProxy kullanıcısına eşlenmiş olmalıdır. Eşlenmemiş veya yetkisiz kullanıcılar özel bir hata mesajı görür; hiçbir şey değişmez.
- Kurallar — kendine onay Slack’te de aynen engellidir.
Sahte veya bayat bir geri çağrı 401 döner ve hiçbir durumu değiştirmez.
Webhook ucu ayrıca hız sınırlıdır.