Persist observed tender source revisions and expose paginated history

This commit is contained in:
2026-09-06 10:49:30 +03:00
parent a0f4824c7e
commit 68fe84e9c7
9 changed files with 166 additions and 0 deletions
+10
View File
@@ -671,3 +671,13 @@ Takip/hazırlık kaydıyla saklanan ihale özetine durum ve doküman sürümü e
Kullanıcı durumu İKN üzerinden birleştirilir; kaynak kimliği değişse de not ve fiyat taslağı korunur. İhale durumunun değişmesi hazırlık kaynak onayını da geçersizleştirir. Bu uyarı son kaydedilen bilgilere göre karşılaştırmadır; tüm zeyilname olaylarının kalıcı geçmişi değildir. Yeni kayıtta karşılaştırma tabanı güncellenir.
Test: tarih/saat/iptal/sürüm değişiminde doğru dört fark; değişen kaynak id'sine rağmen kayıtların korunması; eski bilinmeyen alanlarda yanlış uyarı olmaması; yeni tabanla farkın temizlenmesi. Tüm 144 test ve üretim derlemesi geçti; ayrıntı getirme bağlantısı sonrasında derleme yeniden doğrulandı. Yeni uyarının tarayıcı kabulü ve tam kaynak sürüm arşivi açık. Canlı yayın yapılmadı.
### D04 — Kalıcı kaynak gözlem geçmişi
Ortak veri dizininde `tender-history.sqlite` eklendi. Havuz derlemesinde ve havuzla eşleşen ilan.gov.tr ayrıntısı okunduğunda, izin verilen genel kaynak alanlarının SHA-256 karşılığı son kaynak sürümüyle karşılaştırılır. Aynı içerik yeni kayıt üretmez; A → B → A dönüşü iki ayrı değişiklik olarak saklanır. Eksik liste alanı önceki ayrıntıyı silmez. Kullanıcı notları, dosyaları ve firma verileri gözleme alınmaz.
Resmi İKN ortak ihale anahtarıdır; doğrudan temin numarası kurumla birlikte kapsamlanır. Kaynak kimlikleri ayrı izlenir; liste/ayrıntı farklı kaynak kanallarıdır. Gözlem zamanı kayıt zamanıdır, resmi zeyilname tarihi değildir. Kaynaklar arasındaki çelişkiyi birleştirip hangisinin doğru olduğunu belirlemez.
Oturum gerektiren sayfalı geçmiş API'si ve ayrıntı ekranında isteğe bağlı geçmiş görünümü eklendi. Önce/sonra metinleri açılabilir, daha eski kayıtlar getirilebilir. Boş geçmiş değişiklik yokluğunun kanıtı olarak sunulmaz. Kayıt hatası havuz uyarısına, okuma hatası yeniden denemeli ekran durumuna yansır. Kaynak kaydı yalnız uygulamanın gözlemlediği andan itibaren birikir; geçmişe dönük resmi zeyilnameler yüklenmiş değildir.
Doğrulama: gerçek SQLite yeniden açılışları, aynı veriyi tekrar alma, değer geri dönüşü, kaynak ayrımı, kurum kapsamlı DT kimliği, sayfalama; HTTP oturum/boş sonuç/geçersiz sayfa/metot. Tüm 147 test ve üretim derlemesi geçti. Son depo-açılış temizliği değişikliğinden sonra iki depo testi tekrar geçti. Canlı kaynak birikimi, tarayıcıdan dolu geçmiş ve zeyilname bildirim kabulü açık. Bu volume kullanıcı yedeğinin kapsamı dışında; tam D11 yedeğine ayrıca dahil edilmeli. Canlı yayın yapılmadı.
+2
View File
@@ -31,3 +31,5 @@ Yedek aracı SQLite snapshot oluşturur, bütünlük kontrolü yapar, referansl
## Bekleyen dosya temizliği
`20260906_document_file_cleanup` migration'ı, mantıksal olarak silinmiş belgelerin fiziksel dosyalarını kalıcı kuyrukta tutar. Erişim kaydı ve temizleme görevi aynı transaction'da değişir; sonraki veritabanı açılışları temizliği yeniden dener. Dosya sistemi sorunu sürüyorsa kuyrukta kalır. Bu dosyalar aktif belge yedeğine dahil değildir; yedekte kuyruk kaydı bulunup dosya bulunmazsa yeniden açılışta ENOENT başarılı temizleme olarak ele alınır. Fiziksel silmenin anında tamamlandığı varsayılmamalı; işletim kontrolünde kuyruk büyüklüğü ve volume izinleri izlenmelidir.
Kaynak gözlem geçmişi `IHALEIST_SHARED_DATA_DIR/tender-history.sqlite` içinde saklanır (değişken yoksa `server/data`). Kullanıcı verisi yedek aracı bu depoyu kapsamaz; tam yayın/geri dönüş provasında ortak veri volume'uyla birlikte ayrıca yedeklenmelidir.