Platforma eklenen yeni özellikler, iyileştirmeler, düzeltmeler ve güvenlik güncellemeleri. Sırada ne olduğunu yol haritasında görebilirsiniz.
17.10.2026
Yeni Turizm Şirketleri İçin Tanıtım Sayfası
Otel, DMC ve acenteler için yeni sayfa: Turizm şirketleri. Sezonluk personelin girişi ve çıkışı, zimmet ve sezon sonu iade, tesis bazında envanter ve Wi-Fi bilgisi, transfer aracı sigortaları, döviz ödemeler ve rezervasyon sitesi izleme tek akışta anlatılıyor. Ayrıca tanıtım sayfalarındaki sayılar (webhook olayı, iş akışı tetikleyicisi, API sınırı) güncel değerlerle düzeltildi.
17.10.2026
İyileşti Aydınlatma Metni ve DPA: Envanter Ajanı, Çöp Kutusu, Uzaktan Destek
Aydınlatma metnine envanter ajanının topladığı veriler ile uzaktan destek bağlantı kayıtları eklendi; çöp kutusu (30 gün) ve bağlantı kayıtlarının saklama süreleri yazıldı. Ayrıntı: Gizlilik ve KVKK, DPA.
17.10.2026
Güvenlik Açık Oturumlar: Hesabınızın Açık Olduğu Cihazlar
Profil sayfasındaki Açık Oturumlar bölümünde hesabınızın hangi tarayıcı ve cihazlarda açık olduğunu, son kullanım zamanıyla görürsünüz. Tanımadığınız bir oturumu tek tıkla, ya da bu cihaz dışındaki tüm oturumları birlikte kapatabilirsiniz.
16.10.2026
Yeni İzlemede Bakım Pencereleri
İzleme sayfasındaki Bakım sekmesinden tek seferlik ya da haftalık tekrarlanan bakım zamanı tanımlayın. Bakım süresince kontroller yapılmaz, olay açılmaz ve bildirim gitmez; planlı yeniden başlatmalar artık gereksiz alarm üretmez. Bakım tüm şubeye ya da tek bir izleyiciye uygulanabilir.
14.10.2026
İyileşti WhatsApp Asistanı Taranmış PDF'leri de Okuyor
Tarayıcıdan çıkmış, metni seçilemeyen (görüntü) PDF'ler artık yapay zekâ ile okunuyor. Fatura, poliçe ya da servis raporunu taratıp gönderdiğinizde asistan içeriği özetler; kayıt ya da talep seçenekleri metinli PDF'lerle aynı şekilde çalışır.
12.10.2026
Yeni WhatsApp: Talep Yanıtı Bildirimi ve Sabah Özeti
- Talebinize yanıt geldiğinde haber: WhatsApp asistanından açtığınız destek talebine ekibimiz yanıt verdiğinde WhatsApp'tan da bildirim alırsınız. Yanıtın kendisi e-postanızda ve panelde Destek Merkezi'nde yer alır; WhatsApp mesajında yalnız talep numarası ve konusu bulunur.
- Sabah özeti: Yöneticinizin açtığı kullanıcılara her sabah, belirlenen saatte tek satırlık bir özet gelir; örneğin "3 lisans 7 gün içinde yenilenecek · 2 izin talebi onay bekliyor". Yalnız sayılar yer alır; o gün söylenecek bir şey yoksa mesaj gönderilmez.
Sabah özeti, SA panelinde WhatsApp ayarlarından kullanıcı bazında açılır.
12.10.2026
Yeni WhatsApp Asistanı Ekran Görüntülerini Okuyor
Bir hatayı anlatmak yerine ekran görüntüsünü ya da fotoğrafını WhatsApp asistanına gönderebilirsiniz. Asistan görseldeki hata mesajını, hata kodunu ve cihaz etiketini okur, ne gördüğünü yanıtın başında yazar ve sorunu buna göre yanıtlar.
- Cihazı tanır: Görselde seri numarası ya da cihaz etiketi varsa asistan cihazı panelinizde bulabilir.
- Açıklama da ekleyebilirsiniz: Görselin altına yazdığınız not soruyla birlikte değerlendirilir.
- Gizlilik: Görsel yalnız içeriğinin okunması için işlenir; sistemlerimizde saklanmaz. Ayrıntı aydınlatma metninde.
12.10.2026
Yeni WhatsApp'tan İzin Onayı ve PDF Rehberler
WhatsApp asistanıyla artık izin taleplerini telefonunuzdan onaylayabilir ve çözüm rehberlerini PDF olarak alabilirsiniz.
Neler değişti
- Bekleyen onaylar: İzin onaylama yetkiniz varsa menüde onayınızı bekleyen talep sayısını görürsünüz. Bir talep seçince ayrıntısı ve Onayla / Reddet düğmeleri gelir; reddederken yazdığınız gerekçe personele giden e-postada görünür.
- Panelle aynı kurallar: WhatsApp'tan verilen karar panelle aynı yetki kontrolünden geçer, denetim kaydına "WhatsApp" notuyla yazılır ve personele aynı e-posta gider. Aynı talebe iki kişi karar verirse ikincisi değişiklik yapmaz.
- PDF rehber: Asistan bir sorunu bilgi bankasındaki rehberle yanıtladığında "PDF olarak göndereyim mi?" diye sorar; rehber adım adım, paylaşılabilir bir PDF olarak gelir.
11.10.2026
Yeni WhatsApp Asistanı Sesli Mesajları Anlıyor
WhatsApp asistanına sorunuzu yazmak yerine sesli mesajla da gönderebilirsiniz. Asistan sesi metne çevirir, ne anladığını yanıtın başında gösterir ve soruyu yazılı soru gibi yanıtlar.
- Destek talebi de sesle: "Destek talebi aç" seçtikten sonra sorunu sesli anlatabilirsiniz; talep metni olarak kaydedilir.
- Gizlilik: Ses kaydı yalnız metne çevrilmek için işlenir; ses dosyasını sistemlerimizde saklamayız. Ayrıntı aydınlatma metninde.
- Sınır: Birkaç dakikadan uzun kayıtlar işlenmez; her sesli mesaj günlük soru sınırından bir soru sayılır.
11.10.2026
Yeni WhatsApp Asistanı: Destek Talebi, Ekibe Aktarma ve Kişisel Karşılama
WhatsApp asistanı artık yalnız soruları yanıtlamakla kalmıyor; gerektiğinde konuyu ekibinize aktarıyor.
Neler değişti
- Menüde işlemler: menü yazınca en üstte Destek talebi aç, Taleplerim ve Uzmana bağlan seçenekleri var.
- Ekibe aktarma: Asistan çözemeyeceği bir arızayı ya da sizin canınızın sıkıldığını fark ederse "Ekibimize aktarayım mı?" diye sorar. Onaylarsanız konuşmanın kısa bir özetiyle destek talebi açılır, yöneticilerinize panel bildirimi ve e-posta gider.
- Talep yalnız sizin onayınızla: Asistan kendiliğinden kayıt açmaz ya da değiştirmez; talep yalnız düğmeye bastığınızda ya da menüden seçtiğinizde açılır.
- Sizi tanıyan karşılama: Günün ilk mesajında adınızla karşılar ve açık destek talepleriniz varsa hatırlatır; önceki konuşmalarınızdaki konulara gerektiğinde atıfta bulunur.
- Görsel ya da belge gönderirseniz: Asistan henüz okuyamadığını söyler ve yazmanızı ister (eskiden yanıt vermiyordu).
11.10.2026
Güvenlik Gizlilik ve DPA: WhatsApp Asistanı İçin Meta Veri Kapsamı
Gizlilik Politikası ve Veri İşleme Sözleşmesi'ndeki Meta (WhatsApp Business Platform) satırı, yeni WhatsApp asistanını kapsayacak şekilde güncellendi.
- WhatsApp asistanı: Yöneticisinin açtığı kullanıcılar, onayladıkları WhatsApp numarasından panel kayıtlarıyla ilgili soru sorup yanıt alabilir. Asistan yalnız sorgular; kayıt ekleyemez, değiştiremez ya da silemez. Günlük soru sınırı vardır.
- Meta'ya giden veri: Bu özelliği kullanan kişilerde sorular ve panel kayıtlarından üretilen yanıtlar Meta altyapısından geçer. Yanıtlar yalnız kullanıcının yetkili olduğu kayıtları kapsar ve soruya göre personel adı gibi bilgiler içerebilir; şifre, lisans anahtarı ve kimlik numarası gönderilmez.
- Özellik varsayılan olarak kapalıdır; WhatsApp bildirim izni asistana otomatik izin vermez.
Kullanım Koşulları değişmedi; sizden yeni bir onay istenmez.
11.10.2026
İyileşti Yedekler: Veritabanları Artık Saatte Bir Yedekleniyor
Olası bir sunucu kaybında veritabanlarında kaybolabilecek veri en fazla 1 saatlik işlemle sınırlı.
Neler değişti
- Saatlik veritabanı yedeği: Tüm veritabanları her saat yedekleniyor, AES-256 ile şifrelenip iki ayrı sunucu dışı sağlayıcıya (Hetzner ve AWS Frankfurt) kopyalanıyor. AWS'deki kopyalar 30 gün boyunca silinemez.
- Günlük tam yedek devam ediyor: Yüklenen belgeler ve uygulama dosyaları gece alınan tam yedekte.
- Kurtarmada en güncel veri: Sunucu sıfırdan kurulursa veritabanları gece yedeğinden değil, en son saatlik yedekten yükleniyor.
- Daha net izleme: Durum sayfası gece yedeğini, sunucu anlık görüntüsünü ve saatlik veritabanı yedeğini ayrı ayrı gösteriyor. Aylık otomatik tatbikat saatlik yedekleri de denetliyor.
Sizin tarafınızda yapmanız gereken bir şey yok.
11.10.2026
İyileşti Donanım: Destek Bitiş Tarihi İşletim Sisteminden Otomatik
Cihazın kullanım ömrü sonu (EOL) tarihini artık elle girmeniz gerekmiyor. İşletim sistemi sürümünden otomatik hesaplanıyor ve uyarılar buna göre gidiyor.
Neler değişti
- Otomatik tarih: "Windows 11 Pro 24H2" ya da "Windows 10 Pro" gibi sürümü belli cihazlarda destek bitiş tarihi üretici takviminden alınıyor ve takvim değiştikçe güncelleniyor.
- Elle girdiğiniz tarih korunur: EOL alanına kendiniz tarih yazarsanız o kullanılır. Alanı boşaltırsanız yeniden otomatik hesaplanır.
- Desteği bitmiş cihazlar da bildirilir: Yaklaşan bitişler her gün, desteği çoktan bitmiş cihazlar haftada bir (pazartesi) e-postayla hatırlatılıyor. Depodaki, personele atanmamış cihazlar da kapsamda.
- Yapay zeka asistanı: "Desteği biten cihazlar" önerisi biten ve 180 gün içinde bitecek cihazları birlikte listeliyor.
Tarihin hesaplanabilmesi için işletim sistemini sürümüyle yazın (ör. Windows 11 Pro 24H2). Sürümsüz "Windows 11 Pro" kayıtlarında tarih sürüme bağlı olduğu için boş kalır.
11.10.2026
İyileşti E-posta: Teslim Edilemeyen Adresler Otomatik Engelleniyor
Geçersiz bir e-posta adresine (alan adı ya da posta kutusu yok) giden bildirim artık tekrar tekrar gönderilmiyor. Böylece panelin gönderdiği tüm e-postaların spam klasörüne düşme riski azalıyor.
Neler değişti
- Otomatik engel: Alıcının sunucusu "adres yok" ya da "alan adı yok" diye kalıcı hata döndürünce adres engellenir. Geçici hatalar (kutu dolu, sunucu meşgul) engellenmez.
- Ekip sayfasında uyarı: Adresi teslim edilemeyen kullanıcının yanında "E-posta teslim edilemiyor" etiketi görünür. Adresi düzelttikten sonra Tekrar dene ile engeli kaldırın; adres hâlâ geçersizse otomatik olarak yeniden engellenir.
- Bildirim kuyruğu düzeltmesi: Kendi e-posta sunucusunu tanımlamamış hesaplarda zamanlanmış bildirimler (lisans, servis, ödeme hatırlatmaları) gönderilemiyordu. Bu hata giderildi; gönderilemeyen e-postaların nedeni artık kaydediliyor.
11.10.2026
İyileşti E-posta Uyarı Ayarları Artık Profil Sayfasında
Lisans, servis, ödeme, cihaz destek bitişi ve evrak e-posta uyarılarınızı artık Profil › E-posta Uyarıları bölümünden yönetiyorsunuz. Eskiden bu ayarlar yalnız şube kaydının Hesap sekmesindeydi ve bulunması zordu.
- Cihaz destek bitişi (EOL) uyarısı eklendi: İşletim sisteminden hesaplanan destek bitiş tarihleri için e-posta alabilirsiniz.
- Yalnız ilgili uyarılar: Yetkiniz olmayan modüllerin uyarıları listede görünmez.
- Alıcı boşsa kendi adresiniz: Bir uyarıyı açıp alıcı yazmazsanız e-posta hesabınızdaki adrese gider.
11.10.2026
İyileşti Bildirimler: Aynı Gün Çıkan Uyarılar Tek E-postada
Aynı gün birden fazla türde uyarınız varsa (örneğin lisans yenileme, ödeme ve servis bitişi) artık ayrı ayrı e-posta yerine tek bir Günlük Uyarı Özeti alıyorsunuz.
Neler değişti
- Tek e-posta: Özetin başında hangi türden kaç kayıt olduğu, altında her tür kendi tablosuyla yer alır. Konu satırı da içeriği söyler: "Günlük uyarı özeti — 7 kayıt (3 lisans, 2 ödeme, 2 EOL)".
- Tür bazında kontrol: Her bölümde ilgili panel sayfasına bağlantı ve yalnız o uyarıyı kapatan "Bu uyarıdan çık" bağlantısı var.
- Tek tür varsa değişiklik yok: O gün yalnız bir tür uyarı çıktıysa e-posta eskisi gibi gelir.
Gönderim saatiniz ve "kaç gün önce" ayarlarınız aynen geçerli.
11.10.2026
İyileşti Bildirim E-postalarında Tek Tıkla Abonelikten Çıkma
Lisans, servis, ödeme, evrak ve cihaz destek bitişi uyarılarının altında artık "Bu uyarılardan çık" bağlantısı var. Alıcı panele giriş yapmadan o uyarıyı kendi adresi için kapatabilir.
Nasıl çalışır
- Yalnız o uyarı, yalnız o adres: Bir uyarı birden fazla adrese gidiyorsa yalnız bağlantıya tıklayan adres listeden çıkar; diğer alıcılar ve diğer uyarı türleri etkilenmez.
- Onaylı ve geri alınabilir: Bağlantı önce ne kapanacağını gösterir, onaydan sonra uygular. Yanlışlıkla yapıldıysa aynı sayfadan geri alınır.
- Güvenli: Bağlantı imzalıdır; başka bir adresin ya da kullanıcının ayarını değiştirmek için kullanılamaz. Her işlem denetim kaydına yazılır.
11.10.2026
İyileşti AI Asistanı: Kullanıcı Başına Günlük Soru Sınırı
Panel AI asistanında kullanıcı başına günlük soru sınırı var: varsayılan günde 100 soru. Normal kullanımı etkilemez; amaç, ele geçirilmiş bir hesabın ya da hatalı bir otomasyonun maliyeti şişirmesini önlemek.
- Hazır öneriler sınırsız: Asistanın açılış önerileri (yapay zekâ kullanmadan yanıtlanan hazır sorular) sınıra takılmaz.
- Kullanıcıya özel: Daha yüksek sınıra ihtiyacınız olursa destek ekibimize yazın; hesabınızdaki kullanıcıya özel tanımlarız.
10.10.2026
İyileşti Hatırlatmalar: Gecikmiş Ödemeler ve Ayrıntılı WhatsApp Bildirimleri
Ödeme hatırlatmaları artık vadesi geçmiş ödemeleri de kapsıyor; WhatsApp bildirimleri daha ayrıntılı.
Neler değişti
- Gecikmiş ödemeler: Vadesi son 90 gün içinde geçmiş ve ödenmemiş ödemeler hatırlatma e-postasında en üstte, "12 gün gecikmiş" biçiminde gösteriliyor.
- Ayrıntılı WhatsApp hatırlatmaları: WhatsApp bildirimi açık olan hesaplarda lisans, servis, ödeme, donanım ömrü ve sigorta hatırlatmaları kayıt adı, şube, tarih ve tutar gibi ayrıntılarla geliyor. Mesajdaki "Kayıtları aç" düğmesi ilgili sayfayı açıyor. Çalışan adları gönderilmez.
- İzin onayı bildirimi: Onay bekleyen bir izin talebi geldiğinde, onaylama yetkisi olan kişilere WhatsApp bildirimi de gidebiliyor.
Düzeltmeler
- Ödenmiş olarak işaretlenen ödemeler artık hatırlatılmıyor.
- Bağlantıyla paylaşılan izin formundan gelen talepler onaylayıcılara bildirilmiyordu; artık bildiriliyor.
10.10.2026
Güvenlik Gizlilik ve DPA: Amazon Web Services Alt İşleyici Olarak Eklendi
Amazon Web Services (AWS, Frankfurt — AB), Gizlilik Politikası'nın veri aktarımları tablosuna ve Veri İşleme Sözleşmesi'nin alt işleyici listesine eklendi. Sözleşme gereği müşterilerimize e-postayla önceden bildirildi.
- Şifreli yedek kopyası (10.10.2026'dan itibaren): Gece alınan sistem yedeğinin ikinci kopyası AWS'de saklanıyor. Yedek sunucumuzdan çıkmadan AES-256 ile şifrelenir; şifre anahtarı AWS'de bulunmaz.
- Yapay zekâ sağlayıcısı (en erken 10.11.2026'dan itibaren): Asistan mesajları, yanıt için panelden çekilen ilgili kayıtlar ve otomatik sınıflandırılan destek talepleri AWS üzerinde çalışan Anthropic Claude modeliyle işlenecek. İstekler yalnızca AB içindeki AWS bölgelerinde işlenir; içerik varsayılan olarak saklanmaz, model eğitiminde kullanılmaz ve Anthropic ile paylaşılmaz.
- Aktarım, AB Standart Sözleşme Maddelerini içeren AWS veri işleme eki kapsamındadır.
İtirazınız varsa 09.11.2026 tarihine kadar admin@teknikdanisman.net adresine yazabilirsiniz. Kullanım Koşulları değişmedi; sizden yeni bir onay istenmez.
10.10.2026
Güvenlik Yedekler: İkinci Sağlayıcıda Silinemez Kopya, Aylık Tatbikat ve Tam Sunucu Kurtarma Testi
Verilerinizin yedeği artık iki ayrı sağlayıcıda tutuluyor ve geri yüklenebildiği her ay otomatik olarak sınanıyor.
Neler değişti
- İkinci kopya, farklı sağlayıcı: Her gece AES-256 ile şifrelenen yedek, mevcut sunucu dışı depolamaya ek olarak Amazon Web Services'te (Frankfurt, AB) de saklanıyor. Altyapı sağlayıcılarımızdan biri tamamen erişilemez olsa bile yedekleriniz diğerinde durur.
- Silinemez yedek: Bu ikinci kopya, yüklendiği andan itibaren 30 gün boyunca kimse tarafından silinemez ya da değiştirilemez. Sunucumuz ele geçirilse bile saldırgan bu yedeklere dokunamaz. 30 günden eski yedekler otomatik silinir.
- Aylık otomatik tatbikat: Her ayın 1'inde en son yedek iki kopyadan da indiriliyor, şifresi çözülüyor, bütünlüğü kontrol ediliyor ve tüm veritabanları canlı sistemden ayrı bir ortamda geri yüklenip canlıyla karşılaştırılıyor. İlk otomatik tatbikatta tüm veritabanları yaklaşık 30 saniyede eksiksiz geri yüklendi.
- Tam sunucu tatbikatı: Sunucumuzun tamamen kaybedildiği senaryo da denendi. Farklı bir sağlayıcıda açılan boş bir sunucu, ikinci kopyadaki yedekten yaklaşık 3 dakikada çalışır hâle geldi ve gerçek bir oturum açma ile doğrulandı. Tatbikat sunucusu internete kapalı tutuldu ve ardından silindi; hiçbir bildirim gönderilmedi.
- Hesap kapatıldığında: Kapatılan firma hesabının verileri ve hesaba özel yedekleri eksiksiz silinir; yalnız yasal saklama gerektiren abonelik ve ödeme kayıtları korunur. Sistem genelindeki şifreli gece yedeklerinde veriler en fazla yaklaşık 30 gün daha kalır, sonra otomatik silinir.
Sizin tarafınızda yapmanız gereken bir şey yok. Ayrıntılar Güven Merkezi'nde.
09.10.2026
İyileşti Yapay Zekâ Asistanı: Panelinizin Durumuna Göre Öneriler
Asistanı açtığınızda gösterilen öneriler artık panelinizin o anki durumuna göre seçiliyor.
Neler değişti
- 12 hazır soru: Gecikmiş ve yaklaşan ödemeler, erişilemeyen izleme hedefleri, açık destek talepleri, bekleyen izinler, bugün izinde olanlar, bitecek lisans, servis ve sigortalar, garantisi ya da destek ömrü dolacak cihazlar ve özet istatistik.
- Önce dikkat gerektirenler: Kaydı olan ve aksiyon gerektiren öneriler öne çıkar, yanında kayıt sayısı görünür. Gecikmiş ödeme, bekleyen izin ve erişilemeyen hedef kırmızıyla işaretlenir. Yetkiniz olmayan modüllerin önerileri gösterilmez.
- Anında yanıt: Bu soruların yanıtı doğrudan panel verisinden, Türkçe ya da İngilizce olarak anında gelir.
- Hatırlatma: Bir yanıttan sonra 20 saniye yeni soru yazmazsanız öneriler sohbetin altında yeniden gösterilir.
08.10.2026
Güvenlik Yapay Zekâ Asistanı: Yetki Kontrolleri ve Doğru Para Birimi
Asistanın yanıtları artık her durumda kullanıcının yetkileriyle sınırlı; tutarlar kendi para birimleriyle gösteriliyor.
Neler değişti
- Şube ve modül yetkisi: Asistan, panel verisinden yanıt üretirken kullanıcının yetkili olduğu şubeler ve modüllerle sınırlı kalır. Örneğin ödeme modülünü göremeyen bir kullanıcı, asistana sorarak da ödeme bilgisine ulaşamaz.
- Firmalar arası tam ayrım: Asistanın sık sorulan soruları hızlandırmak için kullandığı yanıt önbelleği firmalar arasında tamamen ayrıldı.
- Para birimi: Asistan ödemeleri her zaman TL yazıyordu; artık kayıttaki para birimiyle gösteriyor.
- Doğru toplamlar: Ödemeler sayfasındaki göstergeler, ana sayfa ödeme grafiği ve öngörülerde farklı para birimleri artık TCMB kuruyla TL karşılığına çevrilerek toplanıyor.
07.10.2026
İyileşti Menüde Favoriler ve Yeni Yapay Zekâ Asistanı Paneli
Sık kullandığınız sayfalara daha hızlı ulaşın; asistan artık sayfanın yanında açılıyor.
Neler değişti
- Favoriler: Menüdeki bir sayfanın üzerine gelip yıldıza tıklayarak onu menünün üstündeki Favoriler grubuna sabitleyebilirsiniz (en fazla 15). Favorileriniz tüm cihazlarınızda ve mobil menüde de görünür.
- Asistan yan paneli: Yapay zekâ asistanı sağdan açılan, tam yükseklikte bir panelde. Geniş ekranlarda sayfanın üstüne binmeden yanına yerleşiyor, telefonda tam ekran açılıyor.
06.10.2026
Yeni Belgeler: Poliçe ve Yeni Donanıma Dosya Ekleme, Faturadan Otomatik Doldurma
Sigorta poliçelerine ve donanım kayıtlarına belge eklemek kolaylaştı; donanım faturasındaki bilgiler otomatik dolduruluyor.
Neler değişti
- Poliçe belgeleri: Poliçe formuna PDF, JPG ve PNG belgeler eklenebiliyor. Belgeler yalnız o şubeyi görme yetkisi olan kullanıcılara açılır; poliçe silinince belgeleri de silinir.
- Yeni donanımda belge: Belgeler artık donanım ilk kaydedilirken de eklenebiliyor.
- Faturadan doldur: Fatura PDF'i ya da fotoğrafı yüklendiğinde marka, model, seri numarası, RAM/işlemci/disk, satın alma ve garanti tarihleri, fatura numarası ve satıcı otomatik dolduruluyor. Çok kalemli faturada hangi kalemin kullanılacağı seçilebiliyor; e-Arşiv faturaları da okunuyor.
- Daha iyi poliçe okuma: Kasko, trafik, İMM ve DASK poliçelerinde büyük harfli metinler, tablo düzenleri, çok satırlı adresler ve araç bilgileri daha doğru okunuyor.
04.10.2026
Güvenlik Haftalık Otomatik Güvenlik Taraması ve Kendi Sunucumuzdan Sunulan Kütüphaneler
Sitemiz artık her hafta OWASP ZAP ile otomatik olarak taranıyor. İlk taramalarda bulunan maddeler aynı gün kapatıldı; panelin kullandığı tüm ön yüz kütüphaneleri de dış servislerden değil, kendi sunucularımızdan sunuluyor.
Neler değişti
- Haftalık güvenlik taraması: Herkese açık sayfalar her pazartesi güvenlik başlıkları, çerez ayarları, bilgi sızıntısı ve bilinen açığı olan kütüphaneler için taranıyor. Tarama saldırı denemesi yapmaz, formları göndermez.
- Kütüphaneler kendi sunucumuzda: Bootstrap, grafikler, takvim, tarih seçici, metin editörü gibi kütüphaneler artık sürümü sabitlenmiş olarak kendi sunucularımızdan yükleniyor. Böylece üçüncü taraf bir dağıtım ağındaki değişiklik ya da kesinti paneli etkilemiyor; tarayıcı güvenlik politikası da yalnız bizim sunucumuzdaki betiklere izin verecek şekilde daraltıldı.
- Daha sıkı çerçeve izni: Sayfaların içine yalnız gerekli kaynaklar (güvenlik doğrulaması ve iletişim sayfasındaki harita) yerleştirilebiliyor. Bankanızın 3D Secure ekranı için gereken geniş izin yalnız ödeme sayfasında açık.
- Statik dosyalarda güvenlik başlıkları: Görsel, yazı tipi ve stil dosyaları da artık HTTPS zorunluluğu (HSTS) ve içerik türü koruması başlıklarıyla sunuluyor.
- Daha az bilgi paylaşımı: Herkese açık sistem durumu uç noktası artık sunucu yazılım sürümünü ve iç sayıları göstermiyor; izleme servisleri için gereken durum bilgisi korunuyor.
- API belgeleri: API belgelerini gösteren bileşen güncel sürüme yükseltildi (içindeki HTML temizleme kütüphanesinin bilinen açıkları giderildi).
Düzeltmeler
- İzin takviminde ve IT Takviminde Türkçe ay ve gün adları yeniden görünüyor (yerelleştirme dosyası yüklenmiyordu).
Sizin tarafınızda yapmanız gereken bir şey yok. Güvenlik uygulamalarımızın ayrıntısı Güven Merkezi'nde.
04.10.2026
Güvenlik Gizlilik, Çerez Politikası ve DPA: Bot Koruması ve Harita Bilgisi Eklendi
Hukuki metinlerimizi sitenin bugünkü işleyişiyle birebir uyumlu hâle getirdik. İşleme amaçlarında ve haklarınızda bir değişiklik yok; eksik kalan üç bilgi eklendi.
- Cloudflare Turnstile: İletişim formları ve ücretsiz Alan Adı Kontrolü sayfasındaki bot koruması, Gizlilik Politikası'nın veri aktarımları tablosuna, Çerez Politikası'nın üçüncü taraf listesine ve Veri İşleme Sözleşmesi'nin alt işleyici listesine eklendi. Turnstile alan adımızda çerez bırakmaz; ABD'ye aktarım Standart Sözleşme Maddeleri ile güvence altındadır.
- Google Haritalar: İletişim sayfasındaki konum haritası (Google Haritalar) Gizlilik Politikası ve Çerez Politikası'nın üçüncü taraf listelerine eklendi; harita yalnız bu sayfada yüklenir.
- Giriş sayfası güvenlik çerezi: Giriş sayfasının önündeki tarayıcı bütünlüğü kontrolünün bıraktığı
td_sec_pass çerezi (4 saat, zorunlu) çerez listelerine eklendi.
Kullanım Koşulları değişmedi; sizden yeni bir onay istenmez.
03.10.2026
İyileşti Donanım Formu: İşletim Sistemi Sürüm Önerileri ve Destek Durumu
Donanım ve personel formlarındaki işletim sistemi alanı artık sürümlü öneriler sunuyor (ör. Windows 11 Pro 24H2, macOS 15 Sequoia, Ubuntu 24.04 LTS). Öneriler OS Güvenlik Denetimi ile aynı günlük kaynaktan gelir; yeni bir sürüm çıktığında listeye kendiliğinden eklenir.
- Windows 11'de her sürümün desteği farklı tarihte biter. Örneğin Windows 11 Pro 24H2'nin desteği 13 Ekim 2026'da sona eriyor; Enterprise baskısı bir yıl daha destek alıyor. Sürüm yazılan cihazlar denetimde tam tarihle görünür.
- Kayıtlı bir cihazı düzenlerken alanın altında destek durumu gösterilir: desteği bitti, yakında bitiyor ya da hangi tarihe kadar destekleniyor.
- Sürümü bilmiyorsanız Windows'ta Başlat menüsüne winver yazmanız yeterli.
03.10.2026
İyileşti E-posta Güvenliği Denetimi: MTA-STS, TLS-RPT ve DNSSEC
MX izleyicilerinin günlük e-posta güvenliği denetimine SPF, DKIM ve DMARC'ın yanında üç kontrol daha eklendi. Sonuçlar izleyici detay sayfasında görünür.
- MTA-STS: Gelen e-postaların şifreli bağlantıyla teslim edilmesini zorunlu kılan politika. Kayıt varsa politika dosyası da okunur ve doğrulanır. "Zorunlu" moddaki bir politika e-posta sunucunuzu kapsamıyorsa Sorunlu olarak işaretlenir, çünkü bu durumda gönderen sunucular e-postayı teslim etmez.
- TLS-RPT: Şifreli teslim hatalarının size raporlanıp raporlanmadığı.
- DNSSEC: Alan adınızın DNS yanıtlarının sahteciliğe karşı imzalı olup olmadığı.
MTA-STS ve DNSSEC isteğe bağlı güçlendirmelerdir. Eksik olmaları bilgi notu olarak gösterilir ve denetim notunu düşürmez. DNS sunucuları yavaş yanıt veren alan adlarında bazı kontroller o gün atlanır ve bu durum açıkça belirtilir.
03.10.2026
Yeni Yeni: Görev İzleyici — Yedekleriniz Gerçekten Alınıyor mu?
İzleme modülüne yeni bir izleyici türü eklendi: Görev (heartbeat). Gecelik yedekler, veri senkronizasyonları ve zamanlanmış betikler gibi işler bittiğinde size özel bir adrese kısa bir sinyal gönderir. Beklenen zamanda sinyal gelmezse ya da görev hata koduyla biterse panelde olay açılır ve e-posta ile haber verilir.
Nasıl kurulur
- İzleme > İzleyici Ekle ekranında tip olarak Görev / Zamanlanmış İş'i seçin. Görevin ne sıklıkla çalıştığını ve ne kadar gecikmeye izin verileceğini girin (ör. gecelik yedek için 1 gün + 2 saat).
- Kayıttan sonra size özel sinyal adresi ve kopyalanabilir hazır örnekler gösterilir: Windows PowerShell, Windows Görev Zamanlayıcı ve Linux/NAS (cron). Veeam gibi yedekleme yazılımlarının "iş sonrası betik" alanında da kullanılabilir.
- Görevin çıkış kodu sinyalle birlikte gönderilir; görev hata verirse sinyalin gecikmesini beklemeden anında uyarı gelir. Görev yeniden başarıyla çalıştığında olay kendiliğinden kapanır.
Paketler
Görev izleyiciler mevcut izleyici kotanızdan düşmez: Starter'da 2, Professional'da 20, Business ve Enterprise'da sınırsız.
Sinyal adresi tahmin edilemeyen gizli bir anahtar içerir ve yalnız ilgili şubede yazma yetkisi olan kullanıcılara gösterilir. Görevlerinizin çıktısı bize gönderilmez; yalnız görevin bittiği ve çıkış kodu iletilir.
03.10.2026
Yeni Ücretsiz Alan Adı ve E-posta Güvenliği Kontrolü (herkese açık)
Panelimizdeki Alan Adı Sağlığı ekranının herkese açık sürümü yayında: teknikdanisman.net/domain_check.php. Kayıt gerektirmeden herhangi bir alan adının SPF, DKIM, DMARC, CAA, MTA-STS ve DNSSEC durumunu kontrol eder; eksik veya hatalı her kayıt için DNS paneline yapıştırılacak hazır değeri verir.
- Yalnız herkese açık DNS kayıtları ve sitenin SSL sertifikası okunur; sorgulanan alan adı saklanmaz.
- Sonuç bağlantısı 10 dakika boyunca paylaşılabilir; örneğin BT ekibinize ya da alan adı sağlayıcınıza gönderebilirsiniz.
- Alan adlarınızın bu kontrollerden her gün otomatik geçmesi ve bir sorun olduğunda haber almak için İzleme modülünü kullanabilirsiniz.
03.10.2026
Yeni Yeni: Alan Adı Sağlığı — Eksik DNS Kayıtları İçin Hazır Değerler
İzleme > Alan Adı Sağlığı ekranı, izlediğiniz alan adlarını (veya yazdığınız herhangi bir alan adını) tek tıkla denetler ve eksik ya da hatalı her kayıt için DNS panelinize yapıştıracağınız hazır değeri verir.
Neler kontrol ediliyor
- SPF, DKIM, DMARC: Gmail ve Yahoo'nun toplu gönderenlerden istediği e-posta kimlik doğrulama kayıtları. Öneriler e-posta sağlayıcınıza göre hazırlanır (Microsoft 365, Google Workspace, Yandex, Zoho). Birden fazla SPF kaydı varsa birleştirilmiş tek kayıt önerilir; izleme modundaki DMARC için bir sonraki adım gösterilir.
- CAA: Alan adınıza hangi kuruluşların SSL sertifikası verebileceği. Öneri sitenizin mevcut sertifikasını veren kuruluşa göre yapılır; mevcut kayıt sertifika yenilemesini engelleyecekse uyarılırsınız.
- MTA-STS, TLS-RPT, DNSSEC: İsteğe bağlı güçlendirmeler. MTA-STS politikası e-posta sunucularınıza göre hazırlanır.
- E-posta kullanmayan alan adları: Sahte gönderimi engelleyen "e-posta yok" SPF ve DMARC kayıtları önerilir.
Her kayıt tür, ad ve değer olarak, kopyala düğmesiyle gösterilir. DNS sağlayıcınız (Cloudflare, GoDaddy, Natro vb.) tanınır ve gerekli yerde sağlayıcıya özel adımlar verilir. E-posta güvenliği uyarısı olan MX izleyicilerinin detay sayfasında da "Eklenecek kayıtları göster" bağlantısı bulunur.
02.10.2026
Yeni İzleme: SSL İzleyicilerine TLS Yapılandırma Denetimi
SSL izleyicileri artık yalnızca sertifikanın bitiş tarihine değil, sitenin şifreli bağlantı yapılandırmasına da bakıyor. Her izleyici günde bir kez denetlenir ve sonuç İyi, Uyarı veya Sorunlu olarak izleme listesinde ve izleyici detayında görünür.
Neler denetleniyor
- Sorunlu: kendinden imzalı sertifika, sertifikanın alan adını kapsamaması, süresi dolmuş sertifika, eksik ara sertifika veya güvenilmeyen kök, zayıf anahtar (2048 bitten küçük RSA), eski imza algoritması (SHA-1), TLS 1.2 desteğinin olmaması.
- Uyarı: 2020'den beri desteklenmeyen TLS 1.0 / 1.1'in hâlâ açık olması, HSTS başlığının olmaması veya süresinin kısa olması.
- Her bulgu, BT ekibinin doğrudan uygulayabileceği bir açıklamayla gösterilir; protokol, anahtar türü ve sertifikayı düzenleyen kuruluş da listelenir.
Bildirimler
- Denetim, izleyicinin çalışıyor/kapalı durumunu ve olay bildirimlerini değiştirmez; yeni uyarı e-postası gönderilmez.
- Sertifika sorunu yüzünden bağlantı kurulamazsa olay kaydında artık genel hata yerine somut neden yazar (ör. "Sertifika bu alan adı için düzenlenmemiş").
02.10.2026
İyileşti OS Güvenlik Denetimi: Güncel Destek Tarihleri ve Aktif İstismar Edilen Açıklar
İşletim sistemi güvenlik denetimi artık elle tutulan bir tabloya değil, her gün güncellenen iki açık kaynağa dayanıyor. Böylece yeni çıkan bir sürüm ya da ertelenen bir destek bitişi panele kendiliğinden yansır.
Destek bitişi (endoflife.date)
- Windows, Windows Server, macOS, Ubuntu, Debian, CentOS ve RHEL sürümlerinin destek bitiş tarihleri günlük olarak alınır.
- Windows 11'de her sürümün (23H2, 24H2 …) desteği farklı tarihte biter; ev/Pro ile Enterprise/Education tarihleri de ayrıdır. Envanterde sürüm yazılıysa (ör. "Windows 11 Pro 24H2") tam tarih gösterilir, yazılı değilse cihaz Sürüm belirtilmemiş olarak işaretlenir.
- Durumlar: desteği bitmiş, 180 gün içinde bitecek, destekleniyor.
Aktif istismar edilen açıklar (CISA KEV)
- Son 90 günde gerçek saldırılarda kullanıldığı doğrulanan Windows, macOS ve Linux çekirdeği açıkları, envanterinizdeki işletim sistemi ailelerine göre listelenir; fidye yazılımında kullanılanlar ayrıca belirtilir.
- Her açık NVD kaydına bağlantı verir. Bu açıklar için güncellemelerin öncelikle yüklenmesi önerilir.
02.10.2026
Yeni İzleme: E-posta Güvenliği Denetimi (SPF, DKIM, DMARC) ve Sızdırılmış Şifre Kontrolü
İki yeni güvenlik özelliği.
E-posta güvenliği denetimi
MX (e-posta) izleyicileri artık alan adının e-posta kimlik doğrulama kayıtlarını günde bir kez denetliyor ve sonucu İyi, Uyarı veya Sorunlu olarak gösteriyor. Bu kayıtlar eksikse başkaları şirketiniz adına sahte e-posta gönderebilir, kendi e-postalarınız da spam klasörüne düşebilir.
- SPF: kayıt var mı, tek mi, yetkisiz gönderimi engelliyor mu, 10 DNS sorgusu sınırını aşıyor mu.
- DMARC: kayıt var mı, politika izleme modunda mı (p=none) yoksa koruyor mu (quarantine/reject), rapor adresi tanımlı mı.
- DKIM: e-posta sağlayıcınız (Microsoft 365, Google Workspace, Yandex, Zoho) tanınır ve imza anahtarının yayımlanıp yayımlanmadığı kontrol edilir.
- Her bulgu, yapılacak işi söyleyen bir açıklamayla gösterilir; izleyici detayında mevcut SPF ve DMARC kayıtları da listelenir. Denetim yalnız DNS sorgusuyla yapılır, alan adınız hiçbir dış servise gönderilmez.
Sızdırılmış şifre kontrolü
- Kayıt, şifre sıfırlama, davet kabulü ve kullanıcı ekleme/düzenlemede şifre, bilinen veri ihlallerinde geçiyorsa kabul edilmez (Have I Been Pwned veri tabanı).
- Şifreniz veya tam özeti hiçbir yere gönderilmez: yalnız şifre özetinin ilk 5 karakteri sorgulanır, eşleşme panelde yapılır.
- Şifre kuralı tüm ekranlarda aynı: en az 8 karakter ve kullanıcı adı ya da e-postayla aynı olamaz.
30.09.2026
İyileşti Güvenilirlik: Yedekten Geri Yükleme Tatbikatı ve Kesintisiz AI Asistan
Verilerinizin ve yapay zeka asistanının her koşulda erişilebilir kalması için iki iyileştirme.
Yedekten geri yükleme tatbikatı
- Her gece alınan ve şifrelenerek sunucu dışına kopyalanan yedeğin gerçekten kullanılabilir olduğu uygulamalı olarak doğrulandı.
- En son yedek sunucu dışı depolamadan indirildi, şifresi çözüldü, dosya bütünlüğü kontrol edildi ve tüm veritabanları eksiksiz geri yüklendi. Tatbikat canlı sistemden tamamen ayrı yürütüldü; hizmette kesinti olmadı.
- Tatbikat düzenli olarak tekrarlanacak. Sıradaki adım, aynı yedekle boş bir sunucuya sıfırdan kurulum (yol haritası).
Kesintisiz AI asistan
- Birincil yapay zeka sağlayıcısı yanıt veremezse (yoğunluk, bakım, kullanım sınırı) sohbet artık her durumda otomatik olarak yedek sağlayıcıyla devam eder; hata mesajı görmezsiniz.
- Evrak tarama bu durumda standart metin tanımaya, destek talebi sınıflandırma kural tabanlı sınıflandırmaya geçer.
30.09.2026
Yeni Çevrimdışı Mod: İnternet Yokken Şube ve Cihaz Bilgileri
İnternetin çekmediği bir sunucu odasında ya da bodrum katta da cihaz ve şube bilgilerine ulaşabilirsiniz. Sahada sayfasında "Bu cihazda çevrimdışı kullan"ı açın; internet kesildiğinde panel otomatik olarak salt okunur çevrimdışı görünüme geçer.
Çevrimdışıyken
- Yetkili olduğunuz şubeler (adres, telefon, yetkili), cihazlar (zimmetli kişi, seri no, bilgisayar adı, IP, garanti) ve açık talepler aranabilir.
- Cihaz etiketindeki QR kodu okutup cihazın kartını açabilirsiniz.
- Bağlantı geri geldiğinde "Canlı panele dön" ile kaldığınız yere dönersiniz; veriler arka planda yenilenir.
Gizlilik ve güvenlik
- Cihaz bazında açılır, varsayılan kapalıdır. Şifreler (Wi-Fi, modem, panel), T.C. kimlik no, personel iletişim bilgileri ve talep içerikleri cihaza hiçbir zaman indirilmez.
- Veriler 7 gün sonra, çıkış yaptığınızda veya aynı cihazda başka biri giriş yaptığında otomatik silinir.
- Panel sayfaları tarayıcı önbelleğinde saklanmaz; çevrimdışı görünüm yalnız yukarıdaki sınırlı veriyi kullanır.
Düzeltme
- Panelin arka plan hizmeti (service worker) teknikdanisman.net'te hiç devreye girmiyordu; bu yüzden internet kesildiğinde çevrimdışı sayfası görünmüyordu. Düzeltildi.
30.09.2026
İyileşti Kullanım Koşulları, Gizlilik Politikası ve Veri İşleme Sözleşmesi Güncellendi
Hukuki metinlerimizi platformun bugünkü işleyişiyle birebir uyumlu hâle getirdik.
- Kullanım Koşulları: aboneliklerin otomatik yenilenmediği ve yenileme hatırlatmaları, ödeme süresinin bildirimden itibaren 15 iş günü olduğu, Üyelik sayfasından dönem sonunda iptal ve cihazda çevrimdışı mod açıklandı.
- Gizlilik Politikası ve Veri İşleme Sözleşmesi: AI hizmet sağlayıcıları (Google Gemini, Groq, NVIDIA), bu sağlayıcılara iletilen veriler ve koşulları ayrıntılı olarak listelendi.
- AI asistanı penceresine, sohbete hassas kişisel veri yazılmaması gerektiğini hatırlatan uyarı eklendi.
- Ödeme gecikmesinde hesabın askıya alınması, Kullanım Koşulları'nda taahhüt edildiği gibi bildirimden itibaren 15 iş günü sonra uygulanır (önceden 7 gün sonra uygulanıyordu).
30.09.2026
Yeni Sahada: Mobil Teknisyen Görev Akışı ve QR Tarayıcı
Saha ekibi için telefonda tek elle kullanılacak şekilde tasarlanmış yeni Sahada sayfası. Kenar çubuğunda "Sahada — Görevlerim", panel telefona yüklendiyse ana ekran simgesine uzun basınca "Görevlerim" ve "QR Tara" kısayolları.
Günün işleri, şube şube
- Size atanmış açık talepler aciliyet ve SLA sırasıyla, yetkili olduğunuz şubelerdeki atanmamış talepler "Üstlen" düğmesiyle, bekleyen ve tamirdeki servis kayıtları ve bugünkü hatırlatmalarınız tek ekranda.
- Her şube kartında tek dokunuşla arama ve haritada yol tarifi.
- Talebi yerinde "Çözüldü" olarak işaretleyin, yapılan işi not olarak ekleyin; talep sahibine bildirim gider.
QR tarayıcı
- Cihaz etiketindeki QR kodu telefon kamerasıyla okutun; cihazın kartı açılır: zimmetli kişi, garanti, açık talepler, son servisler.
- Karttan tek adımda servis kaydı ekleyin veya o cihaz için talep açın.
- Etiket okunmuyorsa seri numarasını yazarak aynı karta ulaşın. iPhone dahil tüm güncel tarayıcılarda çalışır.
Düzeltmeler
- Kenar çubuğundaki "QR Okut" kamerayı açamıyordu; artık yeni tarayıcıyı açıyor.
- Yönetici olmayan kullanıcılarda Destek Talepleri listesi hata veriyordu; şube ve tarih filtreleri de düzeltildi.
- Talep açarken yalnızca erişiminiz olan şubeler seçilebiliyor.
30.09.2026
İyileşti AI Asistanı: Kullanım Rehberi ve Sürüm Notlarından Anlamsal Cevap
AI asistanı artık sorunuzu kelime eşleşmesine değil anlamına göre, Panel Kullanım Rehberi, tüm sürüm notları ve bilgi tabanı içinde arıyor. "İnternet yokken cihaz bilgilerine nasıl bakarım?" gibi farklı kelimelerle sorulan sorular da doğru bölümü buluyor; yeni özellikler yayınlandığı gün asistanın bilgisine giriyor.
Neler değişti
- Cevabın altındaki "Kaynak" listesinde kullanılan rehber bölümü ve sürüm notu görünür; tıklayınca ilgili bölüme gidilir.
- Bilgi tabanındaki tüm makaleler anlamsal aramaya dahil edildi.
- Rehber ve sürüm notları her güncellemede otomatik olarak yeniden indekslenir.
- Asistan yalnızca kullanıcılara yönelik içerikten yararlanır; iç teknik belgeler cevaplara bağlam olarak eklenmez.
29.09.2026
İyileşti Webhook ve İş Akışları: Eksiksiz Olay Kapsamı ve Değişiklik Farkı
Webhook'lar ve iş akışları artık paneldeki her değişikliği, nereden yapılırsa yapılsın, neyin değiştiğiyle birlikte bildiriyor. Olay kataloğu 40 olaya çıktı.
Yeni kapsanan işlemler
- REST API ve AI asistanıyla yapılan ekleme, güncelleme ve silmeler.
- Liste sayfalarındaki hızlı işlemler: izin onay/red/iptal, ödeme arşiv/iptal/takip ve "ödendi" işareti, sigorta arşiv/iptal, ihtar arşivi.
- Şube taşıma, personel çıkışı ve zimmetten çıkarma; toplu silmede her kayıt için ayrı olay.
- Yeni olaylar:
license.renewed, service.renewed, insurance_policy.renewed, hr_warning.issued, support_ticket.deleted. Sunucu ve servis ekleme/silme artık da yayınlanıyor.
- Güncelleme olaylarında
changes alanı değişen her alanı önceki ve yeni değeriyle verir.
Güvenlik
- Olay yükleri yalnızca işlemin dokunduğu alanları taşır; lisans anahtarı, T.C. kimlik no ve uzak erişim kimliği maskelenir.
Düzeltmeler
- "Talep kapandı", "Talebe yanıt geldi" iş akışı tetikleyicileri hiç çalışmıyordu; destek talebi olayları artık iş akışlarını da tetikliyor.
- Destek talebinin yanıt, atama ve durum değişikliği webhook'ları bazı sayfalarda gönderilmiyordu.
- Yeni talep açıldığında talep sahibine yanlışlıkla "Yeni Cevap" e-postası gidiyordu.
- Personeli veya donanımı başka şubeye taşıma işlem yapıldığı halde hata sayfası gösteriyordu; depo kaydı olmayan şubeye donanım taşıma hiç çalışmıyordu.
- Webhook sayfasındaki olay test paneli, teslimat grafiği ve imza aracı çalışmıyordu.
29.09.2026
Yeni Ekip Yönetimi: Rol ve Şube Değiştirme, Kullanıcıyı Devre Dışı Bırakma
Yöneticiler artık Ekip sayfasından kullanıcıların rolünü ve şube erişimini değiştirebiliyor, işten ayrılan bir çalışanın erişimini tek tıkla kapatabiliyor.
Rol ve şube
- Her kullanıcının yanındaki düzenle düğmesiyle rol (Yönetici, Teknisyen, Şube yöneticisi, Şube portalı, Misafir) ve bağlı şube değiştirilir.
- Değişiklik anında geçerli olur: kullanıcının açık oturumu kapanır ve yeni yetkileriyle tekrar giriş yapar.
Devre dışı bırakma
- Devre dışı bırakılan hesabın açık oturumu hemen kapanır; şifreyle, Microsoft veya Google ile giriş yapamaz, "beni hatırla" bağlantıları geçersizleşir.
- Kullanıcının açık destek talepleri varsa devre dışı bırakırken bir ekip arkadaşına devredilir veya atamasız bırakılır; yeni sorumluya bildirim gider, talep geçmişinde devir kaydı tutulur. Kapanmış talepler olduğu gibi kalır.
- Devre dışı hesaplara bildirim e-postası gönderilmez ve plan kullanıcı sınırınızda koltuk kaplamaz.
- Kayıtlar silinmez: talep atamaları ve işlem geçmişi korunur, hesap istenirse yeniden etkinleştirilir.
- Güvenlik için yöneticiler kendi rollerini değiştiremez, kendilerini devre dışı bırakamaz; son aktif yönetici her zaman korunur.
Düzeltme
- Bulut yedekleme gecikme uyarısı e-postaları yöneticilere yeniden ulaşıyor.
29.09.2026
Yeni Ekip Daveti: Ekip Arkadaşlarınızı E-postayla Davet Edin
Yöneticiler artık ekip arkadaşlarını panelden doğrudan davet edebiliyor. Davet edilen kişi e-postadaki bağlantıyla kendi şifresini belirler; şifre paylaşmaya gerek kalmaz.
Yeni Ekip sayfası
- Kenar çubuğunda Yönetim → Ekip (ve kullanıcı menüsünde) tüm panel kullanıcılarını rolleri, bağlı şubeleri, iki adımlı doğrulama durumları ve son etkinlikleriyle listeler.
- Davet ederken rol seçilir: Yönetici, Teknisyen, Şube yöneticisi veya Misafir (salt okunur). Şubeye bağlı rollerde şube de davette belirlenir.
- Bekleyen davetler yeniden gönderilebilir veya iptal edilebilir. Bekleyen davetler plan kullanıcı sınırınızda koltuk sayılır.
- İlk kurulumdaki "Takımı davet edin" adımı artık gerçek davet e-postası gönderiyor.
Güvenlik
- Davet bağlantısı tek kullanımlıktır, 7 gün geçerlidir; yeniden gönderildiğinde önceki bağlantı geçersizleşir.
- Davet edilen e-posta adresi değiştirilemez; kişi yalnızca davette belirlenen rol ve şube yetkisiyle katılır.
- İlk kurulum sihirbazı yalnızca yöneticilere açıktır.
29.09.2026
Yeni Webhook: Abonelik ve Hesap Durumu Olayları
Panel aboneliğinizdeki değişiklikler artık kendi webhook'larınıza da gönderiliyor. Muhasebe/ERP sisteminize ödeme ve dönem bilgisini otomatik aktarabilir, ekibinizi Slack veya Teams üzerinden bilgilendirebilirsiniz. Webhooks sayfasında "Tüm abonelik olayları" ve "Tüm hesap durumu olayları" seçenekleriyle abone olun.
Yeni olaylar
subscription.renewed ve subscription.plan_changed: ödeme alındığında plan, dönem sonu ve tutarla birlikte.
subscription.payment_failed: ödeme başarısız olduğunda.
subscription.expiring: dönem sonuna 30 (yıllık), 7 ve 1 gün kala.
subscription.past_due: dönem sonu geçip 7 günlük ödeme süresi başladığında.
subscription.cancel_scheduled ve subscription.cancel_reverted: Üyelik sayfasından iptal planlandığında veya geri alındığında.
tenant.suspended ve tenant.reactivated: hesap askıya alındığında (ödeme, deneme süresi veya yönetim kararıyla) ve yeniden açıldığında.
Olayların kaynağı yükteki source alanında yazar. Ayrıntılar ve örnek yükler olay kataloğunda.
29.09.2026
İyileşti Abonelik Yönetimi: Panelde Yenileme Uyarısı ve Self-Servis İptal
Aboneliğinizin durumunu artık panelde her yerden görebilir, iptal ve iptali geri alma işlemlerini kendiniz yapabilirsiniz.
Yenileme
- Dönem sonuna 7 gün kala ve süre geçtiğinde yöneticiler panelin üst kısmında yenileme uyarısı görür; tek tıkla doğru planın ödeme ekranına gidilir.
- E-postadaki "Yenile" bağlantısı, giriş yaptıktan sonra doğrudan ödeme ekranını açar.
- Yıllık planlarda dönem sonuna 30 gün kala ek hatırlatma gönderilir.
- Süresi dolmadan yenilenen aboneliklerde kalan günler korunur; yeni dönem mevcut dönemin bitişinden başlar.
İptal
- Üyeliğim sayfasından abonelik iptal edilebilir; iptal dönem sonunda geçerli olur ve o güne kadar tüm özellikler açık kalır.
- İptal edilen aboneliğe yenileme hatırlatması gönderilmez; dönem sonuna kadar iptal tek tıkla geri alınabilir.
- Dönem bitince 7 gün boyunca verilerinizi dışa aktarabilirsiniz; hesap ardından askıya alınır, veriler silinmez.
29.09.2026
Yeni Sektörünüze Hazır Örnek Veriyle Başlayın: IT Şirketi, Otel ve Muhasebe Bürosu
Yeni hesap açtığınızda paneli boş ekranlarla değil, sektörünüze uygun gerçekçi örnek verilerle tanıyabilirsiniz. Tek tıkla yüklenir, tek tıkla kaldırılır.
Üç hazır şablon
- IT şirketi: bakımını üstlendiğiniz 3 müşteri firma; ofis bilgisayarları, Microsoft 365, antivirüs, domain, hosting ve SSL.
- Otel / turizm: merkez ofis ve 2 otel; resepsiyon ve rezervasyon ekipleri, otel yönetim sistemi (PMS), misafir Wi-Fi yazılımı ve PMS sunucusu.
- Muhasebe bürosu: merkez büro ve şube; muhasebe yazılımı, mali mühür, e-imza, e-defter kontörü ve NAS yedeklemesi.
Nasıl çalışır
- İlk kurulumda sektörünüzü seçtiğinizde uygun şablon otomatik önerilir. Mevcut hesaplarda Ana Sayfa'daki Kurulum Sihirbazı'ndan yüklenebilir.
- Örnek kayıtlar ayrı "(Örnek)" şubelerde tutulur; kendi gerçek kayıtlarınıza hiçbir şey eklenmez veya silinmez.
- Bazı lisans ve servislerin bitiş tarihi yakındır; hatırlatmaların ve gösterge panelinin nasıl çalıştığını hemen görürsünüz. Örnek kayıtlar için e-posta bildirimi gönderilmez.
- Örnek veriler plan limitlerinize sayılmaz ve Kurulum Sihirbazı'ndan tek tıkla kaldırılır.
29.09.2026
Düzeltme Zamanlanmış Raporlar Düzeltildi ve Her Güncellemede Otomatik Veri Tutarlılığı Kontrolü
Zamanlanmış e-posta raporları yeniden düzenlendi. Arka planda da her güncellemede tüm hesapların veritabanı yapısını otomatik doğrulayan bir kontrol devreye alındı.
Zamanlanmış raporlar
- Donanım, lisans, ödeme ve servis raporları eksiksiz dolu geliyor; durum sütunları (aktif, yakında bitiyor, süresi dolmuş, ödendi/bekliyor) otomatik hesaplanıyor.
- Donanım raporuna cihazın zimmetli olduğu personel, lisans raporuna sağlayıcı ve yıllık bedel eklendi.
- Belirli bir şubeye ayarlanmış raporlar artık şube listesi dahil yalnızca o şubenin verisini içeriyor.
- Örnek (demo) şubeler raporlara dahil edilmiyor.
Güvenilirlik
- Her güncellemede bildirim, rapor, plan limiti ve örnek veri sorguları tüm hesapların gerçek veritabanı yapısına karşı veri değiştirmeden denenir; uyumsuz bir sorgu yayına çıkmadan yakalanır.
29.09.2026
Yeni Aylık Donanım Yenileme Özeti ve Daha Doğru Bütçe Tahmini
Yöneticiler artık her ayın 1'inde, yenilenmesi önerilen cihazların listesini ve tahmini bütçeyi e-postayla alıyor.
Aylık yenileme özeti
- Yaş, garanti durumu, ömür sonu (EOL) tarihi ve son 12 aydaki servis geçmişine göre skoru 50 ve üzeri olan cihazlar listelenir; 80 ve üzeri "acil" olarak işaretlenir.
- Toplam tahmini bütçe, şube bazında dağılım ve en öncelikli 15 cihaz gerekçeleriyle birlikte gösterilir.
- Önerilecek cihaz yoksa e-posta gönderilmez. Özet Ayarlar → Aylık Raporlar bölümünden kapatılabilir.
Bütçe tahmini
- Klavye, fare, kulaklık, web kamerası, harici disk ve USB hub gibi çevre birimleri artık kendi fiyat aralıklarıyla tahmin ediliyor (önceden bilgisayar fiyatıyla hesaplanabiliyordu).
29.09.2026
Yeni Personel Çıkışında Otomatik Zimmet İade Tutanağı
Bir personelin çıkışı yapılırken üzerindeki tüm cihazlar için tek bir iade tutanağı artık otomatik oluşuyor. Tutanak, imza alanlarıyla birlikte yazdırmaya hazır olarak açılıyor.
İade tutanağı
- Çıkış formunda her cihaz için girdiğiniz durum, depo konumu ve hurdaya ayırma bilgisi tutanağa cihaz cihaz işlenir.
- Teslim eden olarak personelin, teslim alan olarak işlemi yapan kullanıcının adı yazılır.
- Tutanak personelin zimmet geçmişinde saklanır; daha sonra yeniden yazdırılabilir veya PDF olarak kaydedilebilir.
İyileştirmeler ve düzeltmeler
- Oturum zaman aşımına uğradıktan sonra tekrar giriş yaptığınızda, bulunduğunuz sayfaya geri dönersiniz.
- Zimmet tutanağı sayfasındaki "Yazdır" düğmesi yeniden çalışıyor.
- Hurda sorumlusu ve tutanaktaki teslim alan alanlarına "Sistem" yerine işlemi yapan kullanıcının adı yazılıyor.
- Zimmet tutanağı yalnızca aynı şubeye ait personel ve cihazlarla oluşturulabiliyor.
29.09.2026
İyileşti Komut Paleti: Bekleyen İşler, Tek Tuşla İzin Onayı ve AI'a Sor
Ctrl + K (Mac'te ⌘ + K) ile açılan komut paleti artık yalnızca sayfa açmıyor, iş de bitiriyor.
Bekleyenler
- Palet açıldığında en üstte onayınızı bekleyen izin talepleri ve size atanmış açık destek talepleri listelenir.
- Bir izin talebini seçip Enter'a basın, satır onaya hazır hale gelir; tekrar Enter ile onaylanır, Esc ile vazgeçilir. Personele her zamanki onay bildirimi gider.
- Size atanan talepler aciliyet ve SLA sırasıyla gösterilir, tek tuşla açılır.
Yeni komutlar
- AI asistanına sor: yazdığınız soruyu doğrudan yapay zekâ asistanına gönderir. Hiçbir sayfa veya kayıt eşleşmezse ilk seçenek budur.
- Tam aramada devam et: aramanızı tüm sonuçların listelendiği arama sayfasında açar.
- Açık/koyu tema ve Türkçe/İngilizce arasında geçiş.
Düzeltmeler
- Ctrl + K komut paletiyle birlikte AI asistanını da açıyor ve yazılanlar asistana gidiyordu; artık yalnızca palet açılır.
- Telefonda üst çubuktaki arama düğmesi paleti göstermiyordu; düzeltildi.
- İzin Yönetimi'nin Kanban görünümündeki Onayla/Reddet düğmeleri çalışmıyordu; düzeltildi.
- Aynı izin talebi iki kez onaylanamaz veya reddedilemez; iki yönetici aynı anda işlem yapsa bile personele tek bildirim gider.
28.09.2026
Yeni Bildirim E-postaları Yenilendi: Kayıt Başına Tüm Detaylar, Çoklu Alıcı ve Outlook Uyumu
Evrak, lisans ve servis bitiş bildirimleri artık her kaydın önemli tüm bilgilerini tek bakışta gösteriyor; panele girmeden hangi poliçenin, lisansın ya da domain'in yenileneceğini görebilirsiniz.
Kayıt başına detay kartı
- Evrak: poliçe no, sigorta şirketi, acente, sigortalı, plaka / marka-model, adres, geçerlilik aralığı, prim ve ödeme bilgisi.
- Lisans: sağlayıcı, lisans hesabı, adet / kullanılan koltuk, yıllık ücret (₺/$/€/£).
- Servis: domain, hizmet türü (Domain, Hosting, SSL, Bulut Yedekleme, VDS), sağlayıcı.
- Kalan gün rozeti renkli (≤3 gün kırmızı, ≤7 gün turuncu); her kartta kaydı panelde açan bağlantı.
- Şifre ve lisans anahtarı gibi gizli alanlar e-postaya hiçbir koşulda yazılmaz. Müşterinize giden bildirimlerde iç notlarınız da gösterilmez.
Birden fazla alıcı
- Her bildirim türüne virgülle ayırarak birden fazla e-posta adresi ekleyebilirsiniz; "Test Gönder" her adrese ayrı test e-postası atar.
Outlook ve koyu mod uyumu
- Logo ve başlık, Outlook koyu modunda artık kaybolmuyor.
- Rozetler ve butonlar Outlook masaüstünde de düzgün görünüyor.
- Veritabanı yedek bildirimi marka tasarımına taşındı: firma, tarih, dosya, boyut ve indirme butonu tek kartta.
Düzeltmeler ve güvenlik
- SSL, bulut yedekleme ve VDS kayıtları için bitiş bildirimleri gönderilmiyordu — düzeltildi. SMS ve haftalık özet de bu kayıtları artık sayıyor.
- Kişi bazlı bildirimler, alıcı kullanıcının panelde görebildiği şube ve modüllerle sınırlandı.
- Yedek indirme bağlantıları artık tek kullanımlık ve indirme kaydı tutuluyor.
- Açılır listelerin oku, pencere kapatma düğmesi ve onay kutusu işaretleri tüm sayfalarda yeniden görünür; koyu temada örnek metinler gerçek değerden ayırt edilebiliyor.
Bildirim alıcılarını Ayarlar → Uyarı Tercihleri bölümünden düzenleyebilirsiniz.
26.09.2026
İyileşti Grafiklerde Görünüm Seçici, TCMB Günlük Kurları ve Daha Hızlı Sayfalar
Raporları kendi tercih ettiğiniz grafik türüyle görebilir, döviz tutarlarını günlük TCMB kuruyla TL karşılığına çevirebilir ve panelde sayfalar arasında daha hızlı geçiş yapabilirsiniz.
Grafikler: her rapora 4 görünüm
- Dashboard'daki tüm grafiklere satır içi format seçici eklendi; seçiminiz hatırlanır.
- Gelir raporundaki 12 aylık gider grafiği ve departman maliyet raporu yeniden tasarlandı; her biri 4 farklı görünümle sunuluyor.
- "Yaklaşan Kritikler" halkası yeni grafik altyapısına taşındı; koyu temada daha okunaklı.
Döviz: sabit kur yerine TCMB günlük kuru
- USD, EUR ve GBP tutarları artık her iş günü TCMB'den alınan döviz alış kuruyla TL'ye çevriliyor; önceki sabit kur kaldırıldı.
- Ödeme ve lisans formları EUR ile GBP'yi de tanıyor. Dashboard ve aylık rapor toplamları para birimi bazında ayrı gösteriliyor.
İzleme modülü
- Yeni izleyici tipleri: MX, NS ve A kaydı — e-posta ve DNS yapılandırmanız değiştiğinde haberdar olun.
- Domain sorguları artık RDAP ile yapılıyor: daha güvenilir bitiş tarihi bilgisi.
- İzleyici listesinde 4 görüntüleme formatı ve "Yalnız sorunlular" filtresi; yanıt süresi trendinde çizgi, ayrı, ortalama ve ısı haritası görünümleri.
Hız ve kullanılabilirlik
- Sayfa HTML'i yaklaşık %30 küçüldü: ortak menü stil ve betikleri tarayıcıda önbelleğe alınabilir dosyalara taşındı.
- Sayfa geçişlerindeki kısa beyaz ekran yanıp sönmesi giderildi.
- Sol menü rozetleri daha hızlı hesaplanıyor; sık kullanılan sorgular için veritabanı indeksleri eklendi.
- Şube detayında Dijital Servisler kendi sekmesine taşındı; sol menü biraz genişletildi.
- Klavyeyle tablo sıralama, menüde aktif sayfa vurgusu ve kontrast iyileştirmeleri.
Bu sürümde ayrıca bildirim rozetleri ve menü dosyaları için güvenlik sertleştirmeleri yapıldı.
10.09.2026
İyileşti Şeffaflık: Veri Konumu, Alt İşleyen Listesi ve Yasal Metin Güncellemesi
Gizlilik Politikası, Veri İşleme Sözleşmesi (DPA) ve Trust Center; platformun güncel altyapısını ve özellik setini birebir yansıtacak şekilde gözden geçirildi.
Veri konumu netleştirildi
- Uygulama ve tüm tenant veritabanları Hetzner Online GmbH — Almanya (AB), NBG1 veri merkezinde barındırılıyor.
- Yurt dışı aktarım, sağlayıcının veri işleme sözleşmesi (AV-Vertrag) ve AB Standart Sözleşme Maddeleri (SCC 2021/914) ile güvenceye alınıyor; KVKK m.9 Kurul Standart Sözleşme bildirimi tamamlanma aşamasında.
- Natro (Türkiye) yalnızca genel tanıtım sitesinin yedek kopyasını barındırıyor — kişisel veya tenant verisi içermiyor.
Alt işleyen (sub-processor) listesi güncellendi
/dpa.php §5: Hetzner + Sentry (hata izleme) eklendi, konumlar ve aktarım dayanakları gerçek duruma göre düzeltildi.
/privacy.php §4: aynı düzeltme + AB içi barındırma vurgusu.
Yeni veri kategorileri ve özellikler yasal metinlere işlendi
- Gizlilik Politikası §2: "Teknik erişim" (ağ / modem panel / servis erişim bilgileri, AES-256 şifreli) ve "Çalışan kullanımı / davranışı" (Shadow SaaS tespiti) kategorileri eklendi.
- §3: Shadow SaaS gibi bireysel yazılım kullanımını gösteren özelliklerde hukuki sebep, ölçülülük ve çalışan bilgilendirmesi sorumluluğunun Veri Sorumlusu (Müşteri) tarafında olduğunu belirten "Çalışan izleme özellikleri" bilgilendirmesi eklendi.
- Hizmet Kullanım Koşulları §4: hizmet kapsamına Shadow SaaS keşfi, TCO raporlama, lisans geri alma analizi, AI araç envanteri, donanım/filo sağlık skorlaması ve otomatik SSL'li white-label özel alan adları eklendi.
- Çerez Politikası: İngilizce Gizlilik Politikası çerez bölümü, Türkçe sürümle ve canlı çerez tercih paneliyle eşitlendi (4 kategori: Gerekli / Analiz / Tercihler / Pazarlama).
Fiyatlandırma karşılaştırması
- Plan karşılaştırma tablosuna "White-label / özel alan adı (otomatik SSL)" satırı eklendi — Enterprise ayrımı artık tabloda görünüyor.
Hiçbir veri işleme uygulaması değişmedi; bu güncelleme mevcut durumu belgelere doğru şekilde yansıtır. Gizlilik Politikası ve DPA'nın "son güncelleme" tarihi 2026-09-10 olarak ayarlandı.
05.09.2026
İyileşti White-Label: Otomatik SSL + Custom Domain E-posta Linkleri
Enterprise white-label özelliği tam anlamıyla tamamlandı. Tenant'lar artık kendi subdomainlerini (ör. panel.acme.com) hem otomatik SSL ile hem de tutarlı e-posta linkleriyle kullanabilir.
Otomatik SSL Provisioning (Sprint 16.2)
- SA panelinde custom domain girilince
ssl_status='pending' kuyruğuna alınır.
- Her 5 dakikada çalışan cron DNS'in sunucuya (
78.47.156.55) çözümlendiğini doğrular, ardından Let's Encrypt certbot ile sertifika alır ve nginx conf'u dinamik olarak oluşturur.
- SSL aktif olunca badge "SSL Aktif" olur; başarısız olursa "Yeniden Dene" butonu görünür.
- Sertifika yenilemesi certbot systemd timer ile 12 saatte bir otomatik gerçekleşir — manuel işlem gerekmez.
CNAME ile Kurulum — A Kaydı Gerekmez
- Tenant'ın mevcut web sitesi başka hostingde olsa dahi yalnızca
panel.acme.com CNAME teknikdanisman.net kaydı yeterlidir.
- Ana domain (
acme.com) ve diğer servisler hiç etkilenmez.
- SA paneli DNS kurulum yönergesi buna göre güncellendi: CNAME öncelikli olarak vurgulandı.
E-posta Linkleri Custom Domain'e Göre Dinamik
tenant_base_url(int ) helper eklendi (config.php): ssl_status='active' custom domain varsa onu, yoksa APP_URL'i döner.
- Etkilenen e-posta şablonları: lisans/servis/ödeme/garanti uyarıları, sigorta bitiş uyarısı, donanım bakım hatırlatması, haftalık özet, not hatırlatmaları.
- Şifre sıfırlama ve İK izin portalı linkleri de custom domain üzerinden gönderilir.
- Static cache sayesinde toplu cron gönderiminde aynı tenant için tek DB sorgusu yapılır.
SA Panel Navigasyon İyileştirmesi
tenant_detail.php üst aksiyonlar bölümüne Branding & SSL butonu eklendi — tenant_settings.php?tab=branding'e doğrudan erişim sağlar.
03.09.2026
İyileşti Pazarlama Sayfaları İçerik Güncellemesi & UI Düzeltmeleri
Tüm public (giriş gerektirmeyen) sayfalar; sigorta modülü, donanım sağlık skoru ve müşteri portalı gibi yeni özellikler vurgulanacak şekilde güncellendi. Aynı zamanda navbar, tour ve form katmanında görsel düzeltmeler yapıldı.
İçerik Güncellemeleri
- register.php, pricing.php, about.php, home.php, tour.php — Sigorta modülü, donanım sağlık skoru/yenileme planlaması ve KVKK & GDPR uyumu her sayfada öne çıkarıldı.
- content/marketing.json — FAQ: import entry'ye sigorta modülü eklendi; pricing entry'deki eski lansman kampanyası "10 ay öde 12 ay kullan" ile değiştirildi.
- roadmap.php + lib/Roadmap.php — Now / Next / Later içeriği 2026-09-03 sistem durumuna göre güncellendi (TÜRKPATENT takibi, test coverage, ionCube, Docker Compose eklemeleri).
UI Düzeltmeleri
- Navbar hamburger breakpoint — 768px'ten 1200px'e yükseltildi. 7 nav bağlantısı + dil/tema toggle + CTA yaklaşık 1191px kaplıyor; artık büyük tablette de collapse olmadan görüntüleniyor.
- tour.php geniş ekran —
.tour-grid max-width 1040 → 1400px, gap 2.5 → 4rem; 1920px ekranda içerik artık tam kullanıyor.
- tour.php mobil ok bindirmesi — 768px'te slide padding 60px,
.tour-arrow 8px'e çekildi; sol ok artık metin üzerine binmiyor.
- register.php logo — Light modda
logo-cube-white.svg görünmezdi; logo-cube.svg (koyu) olarak değiştirildi. CSS dark-mode swap mekanizması korundu.
- register.php CAPTCHA —
max-width:110px kısıtlaması kaldırıldı; input tam genişlikte.
- marketing_brand_strip.php —
/assets/ root-absolute yolu assets/ relative yapıldı; href="/" → "./" (XAMPP subdir uyumu).
- home.php footer logo —
brand-cube-themed class eklendi; light modda white logo arka planla çakışmıyor.
- contact.php WhatsApp — E-posta kartlarıyla tutarlı
channel-link bağlantısı eklendi.
- legal_page.php — "Son güncelleme" etiketi
t() sarmalandı; EN modda da doğru çeviri görünüyor.
- self_host.php — Docker Compose roadmap tarihi Q3 → Q4 2026; ölü
.top/.brand/.nav CSS kaldırıldı.
- api.php —
spec-url="/openapi.php" → "openapi.php" relative; Redoc lokal subdir kurulumunda da çalışıyor.
- pricing.php — Pre-launch banner dark modda
#fff (çarpıcı beyaz) → zinc-800 (#27272a) + zinc-700 border; sayfayla uyumlu koyu ton.
01.09.2026
Yeni Sunucu Envanteri: Önizle · Düzenle · Sil İşlemleri
Şube detay sayfasının Sunucular sekmesindeki envanter tablosuna tam işlem sütunu eklendi. Her sunucu kaydı artık tablo satırından yönetilebilir.
👁 Önizleme Modalı
- Göz ikonuna tıklanınca AJAX çağrısı olmadan açılan Bootstrap modal: sunucunun tüm detaylarını (marka/model, OS, CPU/RAM/disk, dahili+harici IP, rol, konum, durum, tarihler, notlar) gösterir.
- Modal
data-* atributlarıyla beslenir; sayfa render'ında hazırdır.
- Write iznine sahip kullanıcılar için modal footer'da Düzenle kısa yolu görünür.
- Modal
document.body'e taşınır (parent stacking context escape) — buton tıklaması engellenmez.
✏️ Düzenle
- Kalem ikonu
server_form.php?edit_id={id}&return_to=customer_detail.php?tab=servers adresine bağlanır.
- Düzenleme tamamlandıktan sonra sunucular sekmesine geri dönülür.
🗑 Sil
- CSRF korumalı POST formu; onay diyaloğuyla silme işlemi gerçekleştirilir.
customer_id sahiplik doğrulaması + write izin kontrolü yapılır.
- Silme işlemi audit log'a kaydedilir.
🔧 IP Sütunu Düzeltmesi
- Tablo IP sütunu artık
ip_internal kolonunu okur (eski ip_address yerine); geriye dönük uyum korundu.
01.09.2026
Düzeltme Haber Akışı Görünürlük Düzeltmesi + Modal Backdrop
İki ayrı görsel sorun giderildi.
📰 Haber Akışı (News Ticker)
- Vercel temasında
--ui-primary token'ı ön plan rengi (#0a0a0a) olduğundan ticker arka planı sayfayla iç içe geçiyor ve görünmez oluyordu. --ui-brand-rgb token'ına geçildi.
- Service Worker
td-v86 sürümüne yükseltilerek eski sayfa cache'i temizlendi.
- Tenant DB'lerinde aktif haber bulunmayan durum için fallback mekanizması eklendi (
expected_tenant_db ile ikinci deneme).
🪟 Modal Backdrop Bulanıklığı
.modal-backdrop.show üzerindeki backdrop-filter: blur(8px) tüm sayfa içeriğini bulanıklaştırıyordu.
panel-vercel.css'te backdrop-filter: none !important override'ı eklenerek panel-polish.css ve panel-v2.css'ten gelen blur kuralları etkisiz kılındı.
01.09.2026
Yeni Şube Kimlik Bilgileri: Network & Modem Paneli Alanları
Şube detay sayfasının Kimlik Bilgileri sekmesine iki yeni kart eklendi. IT teknisyenleri artık ağ yapılandırmasını ve modem panel erişim bilgilerini aynı ekranda görebilir ve güncelleyebilir.
🌐 Network Bilgileri Kartı
- Sabit IP, Alt Ağ Maskesi, Ağ Geçidi ve DNS 1 alanları eklendi.
- Değerler doğrudan
customers tablosuna kaydedilir; mevcut şifre güncelleme formuyla entegre çalışır.
- DB:
static_ip, subnet_mask, default_gateway, dns_primary kolonları — migration 20260901_000002.
📡 Modem Paneli Bölümü
- İnternet kartının içine Panel IP, Kullanıcı Adı ve Şifre alanları eklendi.
- Şifre alanı diğer şifrelerle aynı
cv_encrypt() korumasına sahip; göster/gizle ve kopyala butonları mevcut.
- DB:
internet_modem_panel, internet_modem_panel_kullanici_adi, internet_modem_panel_sifre kolonları — migration 20260901_000003.
🔀 Düzen İyileştirmeleri
- Güvenlik Duvarı kartı sağ sütuna (Erişim Noktası altına) taşındı — mantıksal gruplanma iyileştirildi.
- Kimlik durumu göstergesi (
cred-status-dot) Network kartına eklendi.
31.08.2026
Güvenlik Güvenlik Denetimi & Performans Düzeltmeleri
Triple Audit (UI / Güvenlik / Performans) sonrası 7 kritik ve majör bulgu giderildi.
🔒 Güvenlik Düzeltmeleri
- SVG yükleme güvenlik açığı kapatıldı —
customer_form.php logo yükleme alanından SVG kaldırıldı; yalnızca jpg/jpeg/png/webp kabul ediliyor. uploads/logos/ klasörüne .htaccess + nginx whitelist eklendi.
- Canary token —
config.php boot sırasında hostname kontrolü; yetkisiz sunucuda TD_CANARY_URL fetch ile uyarı gönderiliyor. Lokal: TD_CANARY_DISABLED=true.
- TÜRKPATENT marka tescili — Başvuru No 2026/673388 (31.08.2026). 4-diamond logo + "teknik danışman" — Sınıf 35 (iş yönetimi) + 42 (yazılım hizmetleri). Ücret ₺5.640 ödendi.
⚡ Performans Düzeltmeleri
- Column prefs N×1.1s → tek istek —
column_prefs_api.php batch GET endpoint eklendi (?keys=k1,k2). assets/panel-col-drag.js paralel bireysel fetch'ten batch fetch'e geçirildi.
- Filo sağlık double JOIN → aggregate SQL —
hardware_fleet_health() tek geçişe optimize edildi.
🔧 Panel Düzeltmeleri
- SA Panel:
super_admin/subscriptions.php içerik kayma düzeltmesi.
- SA Panel:
super_admin/ai_kb_admin.php tablo sütun hizalama sabitleme (table-layout:fixed + <colgroup>).
- Migration format düzeltmesi:
version + name alanları zorunlu kılındı.
30.08.2026
Yeni Donanım Sağlık Skoru — Cihaz & Filo Sağlık Analizi
Her cihaza 0–100 arası otomatik sağlık skoru ve A/B/C/D kalite notu atan yeni lib/HardwareHealth.php modülü yayına alındı. Filo genelinde anlık IT sağlık durumunu tek bakışta özetler.
Puanlama Sinyalleri
- Garanti durumu — Garanti bilgisi yok (−10), ≤90 gün (−15), süresi dolmuş (−25)
- EOL yaklaşımı — ≤90 gün (−20), EOL geçti (−30)
- Açık servis kayıtları — Her açık kayıt −15 puan (en fazla −30)
- Cihaz yaşı — 3–5 yıl (−10), 5+ yıl (−20)
Grade sınırları: A ≥ 85 · B ≥ 65 · C ≥ 40 · D < 40
hardware.php Entegrasyonu
- Filo Sağlık kartı — Sekmeler üzerinde. Toplam skor/100, renkli progress bar (yeşil/sarı/kırmızı), risk badge'leri.
- Tablo kolonu — Her cihaz satırında
A 90, C 55 gibi skor rozeti; hover'da sinyal detayı tooltip.
- Batch SQL ile N+1 sorgu yok:
hardware_open_service_counts() tek sorguda tüm IDs için sayım.
- Filo özeti için
hardware_fleet_health() — aggregate SQL, tüm filo puanı tek geçişte.
İlgili Kütüphaneler
lib/HardwareLifecycle.php — Yenileme skoru: tamir maliyeti + kullanım ömrü + bütçe tahmini ile cihaz başına yenileme aciliyeti.
lib/CustomerHealth.php — Şube IT sağlık skoru: donanım + lisans + açık servis kombinasyonu.
25.08.2026
Product ITAM Zekası: Shadow SaaS · TCO Raporu · Son Kullanma Takvimi · Lisans Geri Alma · AI Araç Envanteri
Envanter koridoruna 5 analitik modül eklendi. Temel donanım/lisans takibinin ötesine geçerek stratejik IT varlık yönetimi (ITAM) katmanı tamamlandı.
👁 Shadow SaaS Tespiti (shadow_saas.php)
- Çalışanların IT onayı olmadan kullandığı SaaS araçlarını tespit eder.
- Her araç için Onayla / Bloke Et / İncele akışı — yönetici kararı audit log'a işlenir.
- Kullanım sıklığı, departman ve maliyet tahmini ile risk sınıflandırması.
💰 TCO Raporu (tco_report.php)
- Toplam Sahip Olma Maliyeti (TCO): lisans ücretleri + ödeme geçmişi + sigorta primleri + donanım amortisman maliyeti tek raporda.
- Müşteri bazlı filtre, TRY/USD döviz desteği, yıllık projeksiyon grafiği.
- Maliyet kalemlerine tıklayınca kayıt detayına derinleşme.
📅 Son Kullanma Takvimi (expiry_calendar.php)
- Lisans bitiş tarihleri + domain yenilemeler FullCalendar görünümünde renk-kodlu.
- 30 / 60 / 90 gün uyarı bandı — kritik yaklaşanlar otomatik öne çıkar.
- Takvim etkinliğine tıklayınca doğrudan ilgili kayıt formuna yönlendirme.
✂ Lisans Geri Alma (license_harvesting.php)
- Her lisans için
used_seats / quantity kullanım analizi — utilization bar inline görünüm.
- Düşük kullanım (<50 %) filtresi; boşta kalan koltuk × birim maliyet = potansiyel tasarruf hesabı (TRY + USD).
- Satır üstünde "kullanım gir" butonu → modal değil, inline form → kayıt → canlı güncelleme (CSRF korumalı AJAX).
- Özet KPI: toplam lisans, ortalama kullanım %, toplam boşa giden yıllık maliyet.
- DB:
licenses.used_seats yeni kolon (migrations/tenant/20260825_000002).
🤖 AI Araç Envanteri (ai_tools.php)
- Şirkette kullanılan tüm AI/ML araçlarını kart görünümünde takip eder.
- Kategoriler: Metin · Kod · Görsel · Ses · Veri Analizi · Otomasyon · Diğer.
- Veri hassasiyeti rozeti: Low / Medium / High / Critical — GDPR/KVKK risk değerlendirmesi için.
- Plan tipi (Free/Trial/Paid/Enterprise), koltuk sayısı, aylık maliyet (TRY/USD/EUR/GBP), inceleme tarihi.
- Ekle / Düzenle / Sil modalı body düzeyinde — stacking context sorunu yok.
- DB:
ai_tools yeni tablo (migrations/tenant/20260825_000004).
🔗 Navigasyon & entegrasyon
- Her iki yeni sayfa sidebar Envanter accordion'a eklendi: Lisans Geri Alma (✂) + AI Araçları (🖥) —
licenses modül izni ile korunuyor.
licenses.php satır aksiyonlarına "Kullanım / Harvesting" kısa yolu eklendi.
menu.php + güncellendi.
Özet: 5 yeni sayfa · 2 migration · 2 API endpoint (license_harvesting_api.php, ai_tools_api.php) · sidebar + menu güncelleme · tüm POST işlemleri CSRF korumalı.
12.08.2026
Shipped PayTR canlı moda alındı — uçtan uca doğrulama tamam
PayTR iFrame API entegrasyonu PRODUCTION modunda; ilk gerçek 1 TL + Starter (499 TL) ödemesi uçtan uca doğrulandı. Aboneler artık kart ile ödeme yaparak anında panel'e erişebiliyor.
- PAYTR_TEST_MODE=0 canlıda aktif — sandbox'tan production'a geçiş tamam.
- 1 TL smoke test (10:14:03):
/paytr_test.php → PayTR 3DS → webhook → PAYMENT_SUCCESS event #7. Hash verify + "OK" yanıtı doğrulandı.
- Starter 499 TL end-to-end (10:22:21):
/subscribe.php plan seç → PayTR iFrame → 3D Secure → callback → subscription upsert → tenant aktive. Full chain 6 aşama çalıştı.
- Kritik CSP fix: Canlı 3DS iframe için
frame-src 'self' https: gerekli — PayTR kullanıcıyı bankanın kendi 3DS sayfasına (acs.<banka>.com) yönlendirir; önceki dar frame-src 'self' https://www.paytr.com Chrome'un "This content is blocked" hatası verdiği için genişletildi. frame-ancestors 'self' sıkı kaldığından güvenlik seviyesi düşmedi.
- opcache invariant: Sunucuda
opcache.validate_timestamps=0 — config.local.php değişikliğinden sonra systemctl reload php8.3-fpm zorunlu adım.
- Test kayıtları temizlendi:
subscriptions.id=1 → cancelled, subscription_checkouts.id=1 → deleted, payment_events audit trail için korundu.
- RFC 0005 — production rollout checklist tamamı ✓ işaretli.
Sonraki: PayTR panelinden 1 TL + 499 TL iade işlemi (2-5 iş günü), tenant admin'lerine "Ödeme sistemi aktif" duyurusu, üyelik yenileme otomasyonu (mevcut kod tek seferlik ödeme — auto-renewal ayrı sprint).
12.08.2026
İyileşti Ödeme sağlayıcısı: iyzico → PayTR iFrame API
Abonelik ödeme altyapısı tamamen PayTR iFrame API'ye taşındı. Kod, DB şeması, webhook, testler ve dokümantasyon provider-agnostic hale getirildi — ileride başka sağlayıcı eklenirse minimum efor.
- iFrame API: Kullanıcı sitemizden çıkmaz — kart formu + 3D Secure PayTR tarafında (PCI-DSS yükü minimum).
/subscribe.php iframe embed, iframeResizer.min.js ile responsive.
- Webhook:
subscription_webhook.php PayTR "OK" text yanıtı + hash verify (merchant_oid + salt + status + total_amount) + idempotency (payment_events UNIQUE).
- Migration
20260812_000001: subscriptions.iyzico_ref → provider_ref + provider kolonu. iyzico_customer_ref / iyzico_plan_ref DROP. subscription_checkouts.iyzico_token → provider_token + merchant_oid. payment_events.source default 'iyzico' → 'paytr'.
- /paytr_test.php admin-only PoC: config kontrolü + plan catalog + 1 TL sandbox iFrame test.
- RFC 0005: iFrame vs Direct/Link karar gerekçesi + rollback planı + production checklist.
- RFC 0004 superseded olarak işaretlendi (tarihsel referans).
- Kaldırıldı:
lib/Iyzico.php, iyzico_test.php, tests/unit/Iyzico*.php. Yerine lib/PayTR.php + tests/unit/PayTR*.php.
- Etiketler güncellendi:
pricing.php, membership.php, home.php, trust.php, dpa.php, privacy.php, 4 landing experiment, llms.txt, README.md, SECURITY.md.
Aktivasyon adımı: PAYTR_MERCHANT_ID/KEY/SALT config.local.php'de tanımlı → PAYTR_TEST_MODE=0 ile production → PayTR mağaza panelinden Bildirim URL: https://teknikdanisman.net/subscription_webhook.php. Sandbox test kartı: 4355 0841 0000 0000 (CVC 000).
02.08.2026
Product Yerel PC Bulut Yedek Monitörü — Duplicati entegrasyonu (Professional+)
Ana bilgisayardaki muhasebe, belgeler ve proje klasörleri artık tenant'ın kendi Google Drive / OneDrive / Dropbox / S3 hesabına AES-256 şifreli otomatik yedeklenir. TD Panel merkezi izler — passphrase kullanıcıda kalır (zero-knowledge).
🔐 Mimari — TD Panel monitor + Duplicati agent
- Duplicati open-source Windows istemcisi müşteri PC'sine kurulur; AES-256 şifreleme, incremental + dedupe (5 GB backup değişince sadece 50 MB upload), 7-günlük deneme sonrası saldırganlık dostu retention (grandfather-father-son).
- TD Panel sadece orkestrator + monitor. Yedek içeriği sunucumuzdan asla geçmez — direkt PC → şifreli → kullanıcının cloud hesabı. Passphrase de sunucuda saklanmaz (kaybolursa restore imkansız → UI'da güçlü uyarı).
- Webhook receiver (backup_cloud_webhook.php): Duplicati
--send-http-url her backup sonrası JSON rapor postlar; TD Panel status/boyut/dosya sayısı/hata güncellenir.
📊 Kullanıcı arayüzü — backup_cloud.php
- Cihaz wizard'ı: sağlayıcı (4 seçenek) + tıklanabilir klasör preset chip'leri (Belgeler, Masaüstü, Muhasebe programları Logo/Mikro/ETA/Netsis, D:/E: sürücü kökü) + "Bilgisayardan Gözat" butonu (webkitdirectory + prefix picker modal).
- KPI Row: Kayıtlı cihaz sayısı · Son yedek yaşı · Toplam boyut · Sorunlu cihaz sayısı.
- Cihaz listesi: Status badge (Sağlıklı/Uyarı/Hatalı) · Config indir · Webhook URL kopyala · Sil.
- 12 adımlık kurulum rehberi (Duplicati indir → OAuth → passphrase → source seç → schedule → advanced webhook 3 ayarı → Run now → doğrulama) + Sık Sorunlar 5 madde.
🚨 Dashboard entegrasyonu + uyarı
- Bulut Yedek Sağlığı widget'ı dashboard'da: son 5 cihaz + genel status badge (Sağlıklı/Kontrol edin/Aksiyon gerekli).
- Alert cron (backup_cloud_alerts.php, günlük 09:00): 48 saat yedek yoksa veya status=fail ise tenant admin'lere HTML e-posta uyarısı — cihaz listesi + yaş + hata detayı ile.
💰 Plan matrisi
- Starter · Free: ❌ Yok
- Professional: ✅ 1 cihaz · 4 sağlayıcı · günlük yedek · 48h uyarı
- Business: ✅ + öncelikli destek
- Enterprise: ✅ + çoklu cihaz + custom retention politikaları
🔒 Güvenlik + KVKK
- Zero-knowledge encryption: Passphrase Duplicati kurulumunda kullanıcı belirler, sunucuya asla gitmez. Yedek içeriğine ne TD Panel ne de bulut sağlayıcı erişebilir.
- Webhook secret: 48-char hex, cihaz başına UNIQUE, rate-limited endpoint (60 req/60sn), body 500KB cap.
- Data ownership KVKK dostu: Yedek kullanıcının kendi bulut hesabında. TD Panel sadece taşıyıcı sinyal (status raporu). Cross-border data transfer sözleşmesi kullanıcının kendi cloud sağlayıcısıyla.
- Config export: Duplicati JSON import edilebilir; TargetURL provider bazlı (googledrive://, onedrivev2://, dropbox:///, s3://) — kullanıcı sonradan OAuth Login yapar.
Sayı özet: 813 satır kod · 5 yeni dosya (backup_cloud.php + webhook + widget + cron + migration) · 4 provider · 12 adım kurulum rehberi · plan gate (Professional+). MVP production-ready — Demo tenant üzerinde E2E test doğrulandı (POST 200, status/boyut/dosya sayısı/audit log). Kurulum ~10 dk müşteri PC'si başına.
30.07.2026
Product Landing + panel UX yenilemesi: premium arkaplan, sidebar akordeon, row aksiyonları, Stok terminolojisi
3 günlük yoğun UX yenilemesi. Landing sayfası premium hisseye çıktı, panel içi tutarlılık ve keşfedilebilirlik ciddi seviyede arttı. 40+ commit'in tematik özeti.
🎨 Premium arkaplan — landing + login
- Aurora + hairline grid —
partials/hero_backdrop.php reusable partial. 4 renkli gradient blob (mavi/cyan/mor/emerald) 22-40s organik float animation, mix-blend-mode: screen ile iç içe erir. Statik SVG 40×40 grid, kenar vignette maskesi ile merkezde tam, kenarlarda kaybolur.
- Uygulama:
home.php hero + login.php viewport-full. Sıfır JS (CSS-only), GPU-accelerated translate3d + will-change: transform. prefers-reduced-motion ve mobile guard'ları hazır.
- Landing 02-product-first patch — canlı badge (pulse dot), preview-frame accent glow, hero-copy içinde bağlamlı "Kurulum Sihirbazını Başlat" butonu, hareketli fake cursor dashboard mockup içinde (Vercel/Linear tarzı).
🌗 Dark mode kontrast fixleri
- Vercel binary override sorunu —
--ui-primary dark tema'da #ededed (beyaz-gri) olduğu için birçok yerde "beyaz-üstünde-beyaz" oluşuyordu. Toplam 10+ element düzeltildi:
- Pagination aktif sayfa,
.preset-btn.active, .td-save-bar .btn-save, .sidebar-badge-info, .notes-tab.active, .filter-pill.active, .view-segment a.active, .type-toggle radio labels, AI chat header, e-Fatura OAuth popup butonu
- Fix: sabit brand mavi (
#006AFF) safety override panel-vercel.css chain sonunda
- Bootstrap 5 body variable override — dark tema için
--bs-body-color, --bs-secondary-color, --bs-emphasis-color vb. 10 CSS var eklendi. .text-body, .text-secondary vb. utility'ler artık doğru kontrastta.
- FullCalendar dark mode — 12 FC CSS variable override (
--fc-neutral-bg-color, --fc-list-event-hover-bg-color vs.) + explicit .fc-list-day-cushion safety. Etkilenen sayfalar: it_calendar.php, hr_leaves.php, tour.php, about_panel.php.
- home.php dark contrast —
.bento-icon, .pricing-teaser, .testimonial-avatar için color: var(--bg) ile Vercel binary ters kontrast (Sprint 8.30 kalıntı bug).
📂 Sidebar akordeon — Envanter · İK · Destek
- 13 yeni alt sekme — tab yapılı sayfaların alt tab'larına doğrudan link:
- Envanter → Donanım: Stok, Hurda, Sunucular (3)
- Envanter → Sigorta/Belge: Takip, Arşiv, İptal (3)
- İnsan Kaynakları → İzin Yönetimi: Aktif, Arşiv, Takvim, Kanban (4)
- Destek → Notlar: Tümü, Notlar, Aktif Görevler, Tamamlanan (4)
- Destek → Önemli Linkler: Linkler, İndirmeler (2)
- Akordeon toggle — parent link'in yanında + / − düğmesi (CSS-only ::before, icon-agnostic). localStorage state persist. Active sub-tab varsa parent otomatik açık başlar.
- 3 render path unified —
renderPrimaryLink (Envanter), HR grubu, Destek grubu — hepsi tek tablosuna bağlı sub-aware active detection.
📋 Row aksiyonları standart sıra
- Kural: Detay → Düzenle → ... → Sil (Sil her zaman sonda, Detay her zaman başta). 7 sayfada tutarlı: hardware, licenses, services, employees, payments, insurance, customers.
- Extra aksiyonlar detay modal footer'ına taşındı — row temiz kalır, detay içinde bağlamlı akışlar:
hardware.php: Zimmet Tutanağı, Servis Kaydı, QR Etiket, Şubeye Taşı (4)
licenses.php + services.php: Yenile (+1 yıl)
payments.php: Faturaya Çevir (e-Fatura/e-Arşiv taslağı)
insurance.php takip tab: Yenile, Arşivle, İptal Et (3)
- JS pattern:
show.bs.modal event'inde trigger'ın data-* attribute'larından footer buton href/hidden input'ları dinamik set edilir. Permission gate (data-can-manage vb.) ile koşullu görünürlük.
📦 Envanter yönetimi — Stok terminolojisi + yeni özellik
- "Boştaki Sağlam" → "Stok" yeniden adlandırma (5 kullanıcı-görünür metin: tab label, redirect msg, section header, form etiketi, employee release desc). Sidebar sub-tab, tab label, modal başlığı tutarlı.
- Yeni: Hardware "Stoğa Taşı" özelliği —
hardware_form.php'de checkbox ile: cihazı [STOK] placeholder employee'ye çevirir, released_condition, released_at, released_from_employee_id, released_from_name alanları doldurulur. Hurda ile mutex (aynı anda ikisi işaretlenemez). Personel değişimi + audit için.
🎯 Dashboard + tab kart görsel tutarlılığı
- Vercel Geist palette — 3 kart set'i (KPI glance, metric cards, .mail-kpi support stats) hepsinde üst 3px renk çubuk, hover'da 5px. Palette-bağımsız sabit renkler:
- Blue
#0070f3, Emerald #10b981, Amber #f5a623, Red #ee0000, Cyan #22d3ee, Purple #7c3aed
- Panel-nav-tabs birleşimi — 8 sayfada (hardware, hr_leaves, insurance, important_links, payments, tools, e-posta admin) aynı
.panel-nav-tabs stili. Bootstrap standard + border-bottom active indicator.
- Dashboard hero orb ambience —
.panel-hero::before/::after subtle radial blur (mavi + cyan), "Sistem Aktif" trust badge'inde dashLivePulse yeşil nabız animasyonu.
🔧 UX iyileştirmeleri + temizlikler
- Notlar & Yapılacaklar composer redesign — Textarea üstte tam genişlik + alt bar (Not/Görev pill toggle + büyük Ekle CTA + ⌘↵ kısayol ipucu). Focus'ta subtle brand mavi glow. Linear/Notion tarzı.
- Görünümler → Görünüm (tekil) — buton stili Filtrele ile birebir aynı (
.btn-filter-apply). Filtrele butonunun yanına taşındı (4 sayfa) — CRUD cycle daha akıcı.
- Dışa Aktar UI kaldırıldı —
export_dropdown() boş string döndürüyor. Rapor (colPickerModal) tek export akışı olarak kaldı. 20+ sayfada dokunmadan silindi. Backend ?export=csv/xlsx/pdf handler'ları bulk toolbar için korundu.
- Kurulum Sihirbazı auto-open kaldırıldı — dashboard'a girişte artık otomatik açılmıyor. Hero'daki "Kurulum Sihirbazını Başlat" butonuna tıklandığında açılır.
- AI Chat header — brand mavi bg + beyaz metin sabitlendi (Vercel binary'de görünmeme sorunu çözüldü).
⚡ Performans + operasyon
- SA panel CSS cache-buster — 21 SA sayfasında
panel-v2.css ?v=filemtime eklendi. Deploy sonrası SA kullanıcıları eski CSS'i görmez.
- panel-vercel.css safety override chain — chain'in en sonuna 4 bölüm: Bootstrap dark vars, FC dark, contrast safety, 02-product-first global. panel-v2.css'e dokunmadan tüm bug'lar tek noktadan.
- Panel Kullanım Rehberi —
about_panel.php tab 4 tamamen güncellendi: 6 accordion + 1 yeni bölüm (Filtre, Görünüm, Kurulum Sihirbazı, AI Sohbet), 180 satır TR+EN paralel metin.
Sayı özet: 40+ commit · 60+ dosya düzenlemesi · +2000/-1500 net satır · 5 backup (rollback güvencesi). Panel görsel dili artık tutarlı (Vercel Geist), keşfedilebilirlik ↑ (sidebar akordeon + row-detay ayrımı), landing premium (aurora backdrop).
02.07.2026
Product HR self-servis izin portalı + takvim view + marka logo yayılımı
Personel kendi izin taleplerini güvenli bir portal üzerinden girer, İK takvim üzerinden onaylar. İş yükü azaltıcı 5-fazlı sprint.
- Kalıcı personel portalı —
hr_leave_portal.php
- İK
hr_leave_token.php'de "Kalıcı Portal Linki" seçer → token_type='personal', 365 gün TTL
- Personel
?t=<hash> ile giriş yapar: dashboard'da kullanılan / bekleyen / kalan yıllık kota tile'ları + yeni talep formu + son 20 talep + bekleyenler için "İptal Et"
- Mevcut tek-kullanımlık
hr_leave_public.php akışı korundu — geriye dönük uyumlu, otomatik yönlendirme
- Aynı personelde yeni portal linki üretildiğinde önceki otomatik iptal edilir (tek aktif invariant)
- HR takvim view —
hr_leaves.php?tab=takvim (FullCalendar 6.1)
- Ay / Hafta / Liste view, TR locale, status renk paleti (bekliyor sarı, onaylı yeşil, reddedildi kırmızı, iptal gri)
- Event click → detay modal: firma, tarih, gün, durum, kaynak, neden + onay/red butonları (canWrite + status='bekliyor' şartıyla)
- Yeni JSON endpoint
hr_leaves_calendar_api.php — customer_id + tarih range + opsiyonel status filtresi, TD_JSON_ENDPOINT pattern
- Reddedilen / iptal edilen event'ler için toggle checkbox — refetch tetikler
- Composite index
idx_hr_leaves_cal (customer_id, start_date, end_date) range query performansı
- Akıllı kontroller — portal formu submit öncesi
- Yıllık kota:
hr_leave_types.max_days_per_year aşılırsa HARD BLOCK — "talep 7 gün, kalan hakkınız 3 gün..."
- Departman çakışması: aynı departmanda o tarihte izinli var mı → SOFT WARNING + zorunlu onay checkbox, kaydolmaz
- Sticky form değerleri (validation error'da kullanıcı yeniden yazmasın)
- Bildirim akışı —
lib/HrLeaveMailer.php
- Yeni
onRejected(, , ) — personel'e "izin reddedildi" e-postası (opsiyonel İK notu)
- Yeni
notifyHrOfNewRequest(, ) — portal talebi sonrası İK ekibine (admin + can_write user'lar) toplu bilgi + CTA butonu
- Best-effort try/catch — mail hatası ana akışı bozmaz
- Marka logo yayılımı — 15 marketing/public sayfa
- Eski "TD" text mark → yeni 4-diamond cube (
logo-cube-white.svg · siyah karo)
- pricing, auth_guide, errors, examples, integrations, self_host, webhooks_catalog, changelog, roadmap, legal_page, components, trust, onboarding, status, api
- Her sayfa kendi lokal
.brand-mark CSS'i; background:#0a0a0a + overflow:hidden + child img rule ile normalize edildi
Şema değişikliği idempotent (hr_init.php içinde information_schema check + ALTER pattern'i), ilk HR sayfa yüklemesinde çalışır. sw.js td-v57 → td-v58, endpoint bypass listesine hr_leaves_calendar_api.php eklendi.
22.06.2026
Güvenlik Webhook secret rotation — Logger entegrasyonu + roadmap güncelleme
Webhook secret rotation altyapısı zaten implement edilmişti (7 gün grace period, X-TD-Signature-Previous header desteği, UI butonu). Bu güncellemede observability pipeline'a bağlandı.
Logger::warn('Webhook secret rotated') — rotation event'i audit_log yanında JSON event stream'e de düşer. Sentry uyumlu (anlık alarm).
- Context: webhook_id, grace_until (7 gün sonrası), rotated_by (user_id)
- Roadmap güncellemesi: "Webhook secret rotation UI" item'ı "shipped" durumunda olduğu için silindi; yerine "Webhook diff payload coverage genişletme" (insurance renewal, tenant lifecycle event'leri) eklendi.
Aktif rotation akışı: webhooks.php listede 🟡 turuncu butonu → confirm → yeni secret oluşur, eski 7 gün X-TD-Signature-Previous'a gider. Alıcı taraf bu sürede yeni secret'a geçer.
22.06.2026
Product Public webhook event kataloğu + PWA cilası
Geliştirici keşfedilebilirliği ve mobil deneyim için iki cila.
/webhooks_catalog.php — Stripe Events benzeri tek sayfa public referans.
- 10 entity × 3 action (created/updated/deleted) audit-derived event + 5 destek talebi event + sistem testi = 36 olay listelendi
- HMAC-SHA256 imzalama (Node.js doğrulama snippet'i dahil), secret rotation grace, idempotency notu
- Exponential backoff
[60, 300, 900, 3600, 21600] saniye, 10s timeout, 60 req/dk rate limit
- Örnek payload'lar:
hardware.created + support_ticket.replied
- Nav linkleri: api.php, status.php, changelog.php, roadmap.php — tüm dev docs cross-link
- PWA cilası — mobile install deneyimi tutarlandı.
- Auto-inject
theme-color Vercel blue (#006aff) — eski slate hex'leri kaldırıldı
- Stale
manifest.json silindi (hardcoded /teknikdanisman/ path ile prod'da kırıktı) — manifest.php dinamik APP_BASE çözüyor
- Offline fallback sayfası Geist Sans + outline icon + online listener auto-reload
Smoke test sayısı 7 → 8 (webhook catalog HTTP 200 + key string'ler doğrulanıyor).
22.06.2026
Yeni SSO/OIDC PoC — Microsoft Entra ID kanıtlandı (composer'sız)
Kurumsal müşteri unlock'unun ilk adımı: OpenID Connect entegrasyonu. Composer dependency'siz, vanilla PHP + OpenSSL ile RS256 JWT verify. Mevcut login flow'u hiç dokunmaz — PoC ayrı endpoint'te (/sso_test.php, admin-only).
lib/SsoOidcClient.php — minimal OIDC client
- Discovery (.well-known/openid-configuration)
- Authorization URL üretimi (state + nonce + CSRF guard)
- Code → ID token exchange
- RS256 imza doğrulama (JWKS fetch + OpenSSL public key reconstruction)
- Claims kontrolü: iss, aud, exp, nbf, nonce
/sso_test.php — admin-only test endpoint:
- Config eksikse adım adım kurulum ekranı (Azure Portal step-by-step)
- Microsoft'a redirect → callback'te ID token decode + claims göster
- "PoC kullanıcıya login açmadı, mevcut session aynen devam ediyor" disclaimer
- RFC 0003 — SSO/OIDC Entegrasyonu
— OIDC vs SAML kararı, provider strategy (Entra → Google → Okta), JIT provisioning
senaryoları, 3 sprint roll-out planı, başarı kriterleri
- 27 yeni unit test — base64url, JWT format validation, malformed input rejection. Toplam 204 → 231 passing
- docs/secrets.md bölüm 7 SSO config detayları + rotation prosedürü
Production rollout: Sprint 2'de ayrı RFC ile JIT user provisioning + login.php entegrasyonu + tenant başına SSO config UI. Bu PoC tasarımın kanıtı.
22.06.2026
Platform Restore otomasyonu — tek tenant + backup envanter scriptleri
DR runbook'taki "15 dk manuel adımlar" otomatize edildi. Drill veya gerçek incident anında zaman tasarrufu + insan hatası riski azalır.
ops/restore_tenant.sh — Tek tenant veya master DB restore.
- Sanity check: DB adı pattern (td_master veya td_tenant_*)
- Integrity verify: gunzip + SHA256SUMS karşılaştırma
- Interactive guard: "EVET" yazılmadıkça DROP yapmaz
- DROP+CREATE → restore → smoke (table/customer/employee count)
Logger::warn('Database restored') event Sentry'ye + audit trail
ops/list_backups.sh — Backup envanteri.
- Tüm timestamp'leri tablo halinde (boyut + içerik özeti)
- Latest symlink hedefi işaretli
- last_run / last_integrity_check / last_offsite_run meta JSON'ları yazdırır
- -v flag: her dump dosyası ayrı listelenir
- DR runbook bölüm 3.1 güncellendi: "A) Otomatik script (önerilen)" + "B) Manuel adımlar (fallback)" iki yöntem. Tahmini süre 15dk → 5dk.
Production'da sadece list_backups test edildi (read-only). restore_tenant gerçek tenant'a karşı çalıştırılmadı (drill kapsamı) — interactive guard sayesinde yanlışlıkla tetiklenemez.
22.06.2026
Yeni Public /roadmap.php — Şu an / Sırada / Sonra board
/roadmap.php yayında. Linear/Vercel-style "Now / Next / Later" üç sütun board.
- Şu an (3 item): iyzico aktivasyonu, off-site backup config, Sentry alarm verification
- Sırada (5 item): SSO production, ilk DR drill, Insurance UX, webhook secret rotation, Lighthouse threshold mandatory
- Sonra (7 item): Laravel parallel shell, SOC 2 Type 1, multi-currency, Google/Okta OIDC, PWA offline, webhook expansion, RAG AI
- 5 kategori chip: Enterprise · Ürün · Platform · Güvenlik · DX
- RFC linki her item için (RFC 0003 SSO, RFC 0004 iyzico vs.)
- Dark/light otomatik · responsive · prefers-color-scheme
- Tüm public sayfa navigation'larına eklendi (login/changelog/legal pages footer)
"Söz değil niyet" disclaimer notu açık. Stripe/Linear pattern — şeffaflık + esneklik. Kod-dağıtımıyla güncellenir, GitHub'da diff'lenebilir.
22.06.2026
İyileşti Ops setup docs + CI shellcheck — onboarding ve script güvenliği
Yeni sunucu setup'ı ve script regression risklerini azaltan üçlü:
ops/rclone.conf.example — Backblaze B2 EU / Cloudflare R2 / S3 uyumlu depolama için hazır rclone config template'leri (placeholder credentials). Off-site backup 10 dk'da aktivasyon.
docs/secrets.md — Tüm config.local.php constant'larının isim/format/amaç referansı. Gerçek değer içermez (KASA'da). DR senaryosunda secret restore akışı dokümante.
- CI: shellcheck job —
ops/*.sh dosyaları her push'ta lint edilir. Backup/integrity/offsite script'lerinde silent regression yakalanır.
- README.md documentation tablosuna 3 yeni link (DR runbook, secrets, ops).
22.06.2026
Yeni Off-site şifreli yedek upload — DR runbook #1 maddesi kapandı
Tek-bölge backup başarısızlık riski kapatıldı. Sunucuya rclone kuruldu, encrypt+upload script altyapısı hazır. Kullanıcı bir storage provider seçip TD_OFFSITE_REMOTE tanımlayınca otomatik aktif.
ops/offsite_upload.sh: Backup tamamlandıktan sonra otomatik tetiklenir · tar -czf - | gpg --symmetric AES256 ile şifreler · rclone'a 10MB/s bant limitiyle push · uzakta varlık doğrular · 30 gün uzak retention · last_offsite_run.json meta
- Eksik config = graceful skip:
TD_OFFSITE_REMOTE tanımlı değilse ana backup'ı bozmaz, meta'ya status: skipped yazar
- /health.php + /status.php:
backup_offsite component eklendi — yapılandırılmamış/eski/başarısız ayrımı
- Önerilen provider: Backblaze B2 EU, Cloudflare R2, AWS S3 Glacier EU veya kendi sunucunuz
- DR runbook: Step-by-step Storage Box kurulumu + provider karşılaştırma tablosu + restore drill prosedürü dokümante edildi
Senin yapacakların: Provider seç → rclone config → config.local.php'de TD_OFFSITE_REMOTE tanımla. ~10 dk iş. Sonrası otomatik.
22.06.2026
İyileşti iyzico subscription PoC — plan catalog tek kaynağa konsolide
Trial→paid funnel altyapısı: mevcut iyzico HTTP client + checkout + webhook + plan catalog mevcut ama legacy 3-plan modern 4-plan ile uyumsuzdu. Konsolidasyon tamamlandı, aktivasyon plan dokümante.
- Catalog tek kaynak (strangler-fig):
iyzico_plans_catalog() artık Subscription::planDefinitions()'tan derive — legacy basic/pro/enterprise → modern starter/professional/business. Enterprise (price=0) sales-led, iyzico checkout dışı.
- /iyzico_test.php admin-only PoC: config kontrolü + plan catalog görselleme + sandbox checkout test endpoint. Mevcut subscription flow'a hiç dokunmaz.
- RFC 0004:
- Plan catalog konsolidasyonu (before/after mimari diagram)
- iyzico integration full flow (checkout → callback → webhook)
- 4 alternatif değerlendirme (Stripe TR / PayTR / manuel / Paddle)
- 4 sprint roll-out planı (PoC → Sandbox → Production → Polish)
- Risk listesi: webhook race condition, PCI scope, dunning management
- docs/secrets.md bölüm 8 yenilendi: sandbox vs production, test kart, RFC 0004 link
- 22 yeni unit test — catalog derive doğrulama (slug eşleşmesi, legacy yokluğu, enterprise filtreleme). Toplam: 231 → 253 passing
Aktivasyon adımı: Senin iyzico sandbox hesabı aç → API key'leri config.local.php'e ekle → Pricing Plans iyzico merchant panel'de oluştur → end-to-end test. RFC 0004 Sprint 2 maddeleri.
22.06.2026
İyileşti InsuranceRenewalService — strangler-fig 3. resource
Sigorta poliçesi yenileme akışı (yeni INSERT + eski arşivle, atomic transaction) insurance_form.php'den çıkarılıp lib/InsuranceRenewalService.php'e taşındı.
- 22 satır kod tekrarı silindi — page-level POST handler 9 satıra düştü
- RenewalService ile paralel pattern — RFC 0002'de "ileride" notu kapandı. İki servis aynı disiplin (auth + audit_log + Logger::info + exception kontratı) ama farklı akış (bump vs archive_and_clone)
- 7 yeni unit test — toplam 197 → 204 passing. Validation + auth path doğrulandı
- Domain service çoğul: Artık
lib/ içinde 2 renewal service + RenewalRunner pattern, gelecekteki domain extraction'lar (notification, audit) için somut örnek
22.06.2026
Product Dev surface tamamlandı — Auth/Examples/Cron + 502 incident fix
Public developer dokümantasyonu Stripe-seviyesinde tamamlandı, operatör tarafı için cron görünürlüğü eklendi, aynı gün yaşanan SA 502 incident'i kapatıldı.
Dev docs (public)
- /auth_guide.php — Authentication getting-started: 4 adımlı ilk key flow, scope tablosu (read/write/admin), 90 günlük rotation prosedürü, env var / HTTPS / per-integration key güvenlik pratikleri, SSS.
- /examples.php — 5 senaryo × 5 dil (cURL, Node.js, Python, PHP, Go) = 25 snippet. Müşteri listele + pagination, personel oluştur + Idempotency-Key, servis/lisans yenile, webhook receiver (HMAC verify timing-safe), tüm sayfa pagination loop (rate-limit retry).
- Tab UI — dil seçici sekmeler + hover'da kopyala butonu (1.4s "Kopyalandı" feedback), Geist Sans/Mono tipografi.
Operatör tarafı (super admin)
super_admin/audit_search.php — Cross-tenant audit_log arama: filtre (tenant/action/entity/user/IP/free-text/tarih), action pill renkli (create yeşil, update sarı, delete kırmızı, login mavi), CSV export (UTF-8 BOM).
super_admin/cron_monitor.php — 8 zamanlanmış görev için son çalışma + status badge + KPI strip. Meta JSON dosyaları (last_run, last_integrity_check, last_offsite_run) + log mtime'larından okur. 2026-06-21 backup silent-failure incident'ine doğrudan yanıt.
Cross-link dev surface
Tüm public sayfalar birbirine bağlı: api ↔ auth_guide ↔ openapi ↔ postman ↔ examples ↔ webhooks_catalog ↔ errors ↔ changelog ↔ roadmap ↔ status.
Bonus: 502 incident kapatıldı
Aynı gün öğleden sonra SA paneli 502 incident'i yaşandı ve resolved. Root cause: super_admin/index.php'te ölü kodun (PDOStatement cast warning) Logger üzerinden FastCGI stderr buffer'ını taşırması. Fix: ölü kod kaldırıldı + master DB'ye audit_log tablosu eklendi + MigrationRunner DDL-safe yapıldı.
Test: prod karşı 335 yeşil (smoke 7 → 12). Investment-readiness: dev experience tarafı artık tam.
22.06.2026
Yeni Haftalık backup integrity check + Sentry alarm
"Backup alındı" ile "backup gerçekten geri yüklenebilir" arasındaki uçurumu kapatan haftalık otomasyon. Schrödinger backup pattern'ine son.
ops/verify_backup_integrity.sh + /etc/cron.d/teknikdanisman-backup-integrity (Pazar 04:00)
- 6 kontrol katmanı: latest symlink · SHA256SUMS doğrulama · her .sql.gz
gunzip -t · application_files.tar.gz tar -tzf · last_run freshness · off-site durumu
- Hata → Sentry: Script içinden PHP CLI ile
Logger::critical() çağrılır — existing observability pipeline reuse (zero ekstra altyapı)
- /health.php + /status.php:
backup_integrity component eklendi — 14 gün üstü stale → fail, 10 gün üstü warn
- İlk run smoke test: 8 dosya hash'i doğrulandı, 7 sql.gz OK, application files 3380 entry, status warn (sadece off-site eksik)
Bugünün bulgu örüntüsü: 2 ay sessiz backup hatası → Logger latent bug yakaladı → Yeni backup script → Off-site upload skeleton → Haftalık integrity check + Sentry alarm. Observability + DR güveninin somut zinciri.
22.06.2026
Düzeltme Backup script v2 + DR runbook — 2 aylık silent failure giderildi
Kritik bulgu: Eski backup script config.local.php'de tanımsız olan $DB_NAME environment'ı bekliyordu — 2 ay+ boş (388 byte) yedek üretiyordu. Latest symlink April 28'i gösteriyordu; tüm sistem yedeksizdi.
- Yeni script (
ops/teknikdanisman_backup.sh): Master DB + tüm aktif tenant DB'leri ayrı ayrı dump · application files · SHA256SUMS · atomic latest symlink · 14 gün retention · last_run.json meta dosyası
- Eski script:
/usr/local/bin/teknikdanisman_backup.sh.bak'a yedeklendi
- İlk başarılı run: Master 27KB + 6 tenant (4.2MB+5×~150KB) + app 47MB · toplam 52MB · 14 günden eski 54 boş klasör otomatik temizlendi
- /health.php + /status.php: "Yedekleme" component'i eklendi — <30 saat OK, 30-48 saat warn, >48 saat fail. Sentry alarm uyumlu
- DR runbook (
docs/disaster-recovery.md) yazıldı: RPO ≤ 24 saat, RTO ≤ 4 saat hedefleri · 3 senaryo (tek tenant / master / full sunucu) adım adım · quarterly drill takvimi · eksikler listesi (off-site, GPG encryption, integrity test)
- SECURITY.md Backup & DR + Observability bölümleri eklendi
Production yedek artık doğrulanmış şekilde işliyor.
22.06.2026
Platform Audit arama + Postman collection + Errors reference
Hem operatör (super admin) hem dev tarafında keşfedilebilirliği büyüten üç ekleme.
- Super Admin → Audit Arama (
super_admin/audit_search.php).
- Cross-tenant audit_log sorgusu: her aktif tenant'a tek tek bağlanır, filtreli çekim sonra global merge sort yapar.
- Filtreler: tenant, action, entity_type, user (id veya label), IP, free-text (context/old_values/new_values), tarih aralığı, limit 50–500.
- Action pill renkli (create yeşil, update sarı, delete kırmızı, login mavi), context kolonu tıklayınca genişler.
- CSV export — UTF-8 BOM ile Excel uyumlu.
- Eski şema fallback (user_label/old_values/new_values kolonları yoksa NULL select).
- /postman.php — Postman v2.1 collection JSON.
- 5 endpoint, 5 folder, attachment olarak indirilir → Postman/Insomnia/Bruno tek tık import.
- Bearer auth +
{{api_key}}/{{base_url}} variable'ları, query parametreleri keşfedilebilir disabled flag ile.
- POST'lar
{{$guid}} ile dinamik Idempotency-Key.
- /errors.php — Stripe ErrorReference benzeri public hata kataloğu.
- Transport/Auth + Resource + Validation hata kodları (toplam 25+) HTTP status, açıklama ve çözüm ile.
- Rate limit header'ları ve Idempotency-Key kullanımı dahil.
- Standart hata zarfı +
validation_failed alan-bazlı detay örnekleri.
Smoke test sayısı 7 → 11 (errors, postman, webhooks_catalog, audit_search guard). Cross-link'li dev surface: api ↔ openapi ↔ postman ↔ webhooks ↔ errors ↔ changelog ↔ roadmap ↔ status.
22.06.2026
Güvenlik Critical-path audit Logger entegrasyonu
Security-sensitive operasyonlar artık iki katmanlı audit: DB audit_log() (persistant trail) + Logger::info/warn (JSON event stream → nginx log → Sentry).
- Tenant lifecycle:
super_admin/tenant_form.php tenant created event (slug, db_name, plan_id, billing_cycle, created_by_sa)
- API key lifecycle:
api_keys.php create (info) + revoke (warn) + delete (warn) — key_id + tenant_id + label + scopes context
- Auth events:
login.php success (info) ve failed (warn) — username + remaining attempts
- System backup download:
super_admin/system_backup.php super admin tarafından manuel backup tetiklenmesi (warn) — sa_user + archive_bytes
Niye iki katman? audit_log() DB trail (sorgulanabilir, kim-ne-ne-zaman). Logger::warn/info JSON event stream — Sentry'ye opsiyonel iletim, log aggregator-ready, observability dashboard. Yatırımcı diligence'ta "audit log + observability" sorusuna iki yanıt.
21.06.2026
İyileşti Versiyonlu migration sistemi — Linear/Stripe pattern
Şema değişikliklerini izlenebilir, sıralı, idempotent şekilde uygulamak için yeni bir runner katmanı eklendi. Mevcut lib/Migrations.php (settings.php başında çalışan idempotent block'lar) coexist eder — sadece yeni migration'lar buraya gelir.
- Dosya tabanlı:
migrations/tenant/YYYYMMDD_NNNNNN_kebab-name.php veya migrations/master/...
- Tracking: Her DB'de otomatik
schema_migrations tablosu
- Transactional: Her migration kendi transaction'ında; hata → rollback + Logger::critical
- CLI:
php migrate.php status / up / rollback · --master · --tenant=slug filtreleri
- Observability bağlantısı: Hata Sentry DSN tanımlıysa anında alarm geçer
Detay ve örnek migration: migrations/README.md
21.06.2026
İyileşti Strangler-fig refactor başlangıcı — RenewalService
Mimari yenilenmenin ilk somut adımı: services.php ve licenses.php'in yenileme handler'larında birebir kopyalanan iş mantığı lib/RenewalService.php'e taşındı.
- 32 satır kod tekrarı silindi — page-level dosyalar 6 satıra düştü, sadece HTTP routing + flash kaldı
- Tek konfigürasyon noktası — yeni resource eklemek için
RESOURCE_CONFIG'e tek entry yeter (insurance.php ileride bunu kullanabilir)
- Test edilebilir hale geldi — PDO mock'la unit test mümkün
- Observability entegre — her yenileme
Logger::info('Resource renewed', ...) ile JSON log üretir
- Dokümantasyon: docs/rfcs/0002-renewal-service.md
Kullanıcı için davranış birebir aynı; bu büyük rebuild değil — strangler-fig pattern'inin canlı kanıtı. Yatırımcı diligence'ta "Refactor edebiliyor musunuz?" sorusuna somut yanıt.
21.06.2026
Yeni Public API dokümantasyonu — OpenAPI 3.0 + Redoc
Geliştirici dokümantasyonunu açık erişime aldık. Auth gereken eski api_docs.php içerideki referans olarak kalır; yeni public sayfa Redoc ile render edilmiş Stripe/Linear-style üç-kolon layout sunar.
- /api.php — interaktif Redoc reference
- /openapi.php — OpenAPI 3.0 spec (YAML, makine-okunur). Postman / Insomnia / kod üreticileri için doğrudan kullanılır.
- RFC 0001 + 0000 template yayımlandı: docs/rfcs/
Bearer token oluşturmak için panele giriş yapıp Ağ Araçları → API Anahtarları sekmesini kullanın.
21.06.2026
Yeni GitHub Actions CI — her push otomatik lint, test, spec validation
Repo'ya CI pipeline eklendi (.github/workflows/ci.yml). Her push ve pull_request'te aşağıdaki üç iş paralel/seri çalışır:
- PHP Lint — tüm
*.php dosyaları PHP 8.3 ile syntax check (vendor/uploads/backups hariç)
- Unit Tests —
php tests/run.php unit; lint başarılıysa çalışır (189 test)
- OpenAPI Spec Validation —
docs/openapi.yaml Redocly CLI ile validate edilir; spec implementation'la ayrışmasın
Concurrent run'lar otomatik iptal — son push hep güncel sonuç verir. README'ye CI badge eklendi; master branch'inin sağlığı doğrudan repo sayfasından görünür.
21.06.2026
İyileşti Personel evrak yönetimi tek ekrana toplandı
Personel düzenleme ekranı (employee_form.php) artık tüm evrak akışının tek merkezi. Daha önce ayrı bir employee_documents.php sayfasında olan yükleme/silme fonksiyonu, form içine konsolide edildi:
- 8 kategori aynı ekranda: İşe Başlangıç · Zimmet · İzin · İhtar · İşten Çıkış · Sözleşme · Sağlık & SGK · Diğer
- Her kategoride sistem tarafından oluşturulan formlar (yazdırma sayfaları) ve yüklenmiş ıslak imzalı evraklar yan yana listelenir
- Her satırda Aç/İndir + Sil butonu — sistem kayıtları için de silme desteği (örn. iptal edilen ihtar kayıtları)
- Yeni: İşten Çıkış için A4 print sayfası (
employee_termination_print.php) eklendi — teslim/iade checklist'i ile
Eski employee_documents.php URL'i artık employee_form.php?edit_id=X#section-documents adresine yönlendiriyor — eski bookmark'lar kırılmaz.
21.06.2026
Güvenlik Uyum tabanı: security.txt, gizlilik politikası, DPA
Kurumsal müşteri diligence süreçlerinde sıkça istenen üç belgeyi public olarak yayınladık:
Login sayfasının footer'ına tüm hukuki belgelere kısayollar eklendi. Güvenlik raporu için security@teknikdanisman.net aktif.
21.06.2026
Yeni REST API: yenileme endpoint + rate-limit header dogfood
RenewalService bugün web POST handler'larından çıkarıldı; aynı servis şimdi public API'a da bağlandı. Bir karar = iki kanaldan tüketim — strangler-fig dogfood.
- Yeni endpoint:
POST /api/v1/renew.php — body {"resource": "service" | "license", "id": 42}
- Yetki: Bearer token +
write scope + idempotency key opsiyonel
- Cevap:
{ object: "renewal", resource, id, updated_columns, fallback_used }
- Rate limit header'ları tüm endpoint'lerde aktif:
X-RateLimit-Limit / Remaining / Reset · 429'da Retry-After: 60
- OpenAPI spec güncellendi — /api.php sayfasında doğrudan görünür
- Limit aşımları artık loglanır (
Logger::warn 'API rate limit exceeded') → Sentry alarm uyumlu
- Cleanup query optimize: Eski rate-hit silme her request'te değil, %5 örnekleme ile (master DB yükü -95%)