Add audited administrator resolution of uncertain email deliveries
This commit is contained in:
@@ -821,3 +821,9 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö
|
||||
- İlk çağrıdan 23 saat geçmiş belirsiz grup otomatik yeniden gönderilmez; abonelik listesinde inceleme gereksinimi gösterilir. Abonelik silinince bekleyen grup iptal edilir; hâlihazırda sağlayıcıya ulaşmış isteği geri çekme garantisi yoktur.
|
||||
- 186 test ve üretim derlemesi geçti. Gerçek depo/notifier + kontrollü sağlayıcıyla hata→kaynak değişikliği→aynı gövde/anahtar retry→kabul test edildi. Kaynak sabitleme, işçi yarışması, eski işçi reddi, atomik görülme, süre aşımı ve abonelik silme test edildi.
|
||||
- Gerçek Resend teslimi, gerçek SIGKILL/outbox kabulü ve belirsiz gönderimin yönetici çözüm ekranı henüz yok. Telegram ayrı kalıcı kuyrukta değil; e-posta kabulünden sonra süreç kesilirse Telegram bildirimi eksik kalabilir. Sağlayıcı hesap değişimi/geri yükleme işlemleri için runbook kısıtları eklendi. Planın tümü açık.
|
||||
|
||||
### Belirsiz e-posta gönderimi yönetici incelemesi — 6 Eylül 2026
|
||||
- Mobil PWA içinde yalnız yöneticiye açık bekleyen gönderim/inceleme listesi eklendi. /api/admin/notify/outbox yetkilendirmesi sunucuda 401/403 ile uygulanır; UI gizleme tek kontrol değildir.
|
||||
- Belirsiz iş confirmed_sent (sağlayıcı id, açık kontrol onayı, 20+ karakter açıklama) veya skip (yeniden göndermeden kapatma) ile çözülebilir. Yeni e-posta gönderilmez. İki karar da grup kimliklerini görülmüş sayarak aynı grubun yeniden oluşmasını önler; yalnız confirmed_sent son gönderim tarihi oluşturur.
|
||||
- notification_outbox_reviews aktör, karar, açıklama ve zamanı tutar. Karar ve abonelik görülme güncellemesi atomiktir; yalnız uncertain durumunda tek karar kabul edilir. Abonelik sonradan silinse de karar geçmişi korunur.
|
||||
- 189 test ve derleme geçti. HTTP yönetici yetkisi, geçersiz/eskimiş karar, sağlayıcı kanıtı gereksinimi, tekrar karar reddi, replay engeli ve unsubscribe sonrası inceleme geçmişi test edildi. Yeni yönetici ekranının tarayıcı kabulü henüz yapılmadı; sağlayıcı kaydının gerçek doğrulaması insan incelemesidir.
|
||||
|
||||
@@ -66,4 +66,4 @@ E-posta aboneliği deposu `notify.sqlite` da `IHALEIST_USER_DATA_DIR` ayarını
|
||||
|
||||
notify.sqlite abonelik kimliği geçişi: `criteria_key` sütunu eklendi; konu ve kurum kümeleri dahil bütün filtreler aboneliğin kimliğine katılır. Eski tablo işlem içinde yeniden kurulur; id, oluşturulma, aktiflik, son gönderim, görülen ihaleler ve AUTOINCREMENT üst sınırı korunur. Eski eşdeğer yinelenen kayıtlar silinmez; ayrı legacy kimliğiyle korunur. Bozuk eski konu/kurum JSON'u geçişi başarısız yapar ve transaction geri alınır. Yükseltmeden önce notify.sqlite yedeği alınmalı; eski uygulama koduna dönülecekse eski unique kuralını kullanan INSERT nedeniyle yalnız kodu geri almak yeterli değildir: eşleşen eski veritabanı yedeğiyle birlikte geri dönüş gerekir. Yeni sürümde oluşan kayıtların geri dönüşte nasıl korunacağı ayrıca değerlendirilmelidir.
|
||||
|
||||
Kalıcı e-posta kuyruğu aynı notify.sqlite içinde `notification_outbox` tablosundadır. Tam içerik/gönderen/alıcı ve ihale listesi ile sağlayıcı istek kimliği burada korunur; yedeğe dahil edilmelidir. Bir bekleyen grup abonelik başına tek aktif kayıtla tutulur. 120 saniyelik işçi sahipliği, 30 saniyelik sağlayıcı isteğinden uzundur. İlk denemeden 23 saat sonra belirsiz kayıt otomatik tekrar gönderilmez; Resend'in 24 saatlik tekrar önleme süresine güvenli pay bırakılır. Yönetici sağlayıcı kaydını doğrulamalıdır; belirsiz kaydın elle çözüm ekranı henüz yoktur. Bekleyen iş varken sağlayıcı hesabı/anahtarı değiştirilmemelidir: tekrar önleme anahtarı farklı sağlayıcı hesapları arasında garanti vermez. Eski uygulamaya dönmek kuyruğu yok sayabileceğinden kod ve DB geri dönüşü birlikte değerlendirilmelidir.
|
||||
Kalıcı e-posta kuyruğu aynı notify.sqlite içinde `notification_outbox` tablosundadır. Tam içerik/gönderen/alıcı ve ihale listesi ile sağlayıcı istek kimliği burada korunur; yedeğe dahil edilmelidir. Bir bekleyen grup abonelik başına tek aktif kayıtla tutulur. 120 saniyelik işçi sahipliği, 30 saniyelik sağlayıcı isteğinden uzundur. İlk denemeden 23 saat sonra belirsiz kayıt otomatik tekrar gönderilmez; Resend'in 24 saatlik tekrar önleme süresine güvenli pay bırakılır. Yönetici sağlayıcı kaydını doğrulamalıdır; Mobil PWA sayfasındaki yöneticiye özel E-posta gönderim incelemesi bölümünden kayıt karara bağlanır. Sağlayıcı kabulü doğrulandıysa gönderim kimliği/onay/açıklama ile kapatılır; aksi halde yeniden göndermeden kapatma seçilebilir. Her iki işlem de yeni e-posta göndermez ve açıklamalı karar geçmişini korur. Bekleyen iş varken sağlayıcı hesabı/anahtarı değiştirilmemelidir: tekrar önleme anahtarı farklı sağlayıcı hesapları arasında garanti vermez. Eski uygulamaya dönmek kuyruğu yok sayabileceğinden kod ve DB geri dönüşü birlikte değerlendirilmelidir.
|
||||
|
||||
Reference in New Issue
Block a user