Günlük
Günlük modülü, Platform OneEntry'de yöneticilerin sistemdeki diğer yöneticilerin eylemlerini ve kamuya açık İçerik API'sinin etkinliğini takip etmelerini sağlar. Modül, dört sekmeden oluşmaktadır:
| Sekme | Ne gösterir |
|---|---|
| Yönetici Eylem Günlüğü | Sistem içindeki yöneticilerin tüm eylemleri: varlık oluşturma, değiştirme, silme. |
| Yönetici Trafiği | Yöneticilerin giriş oturumları: ne zaman giriş yaptı, ne zaman çıktı, hangi cihazdan. |
| İçerik API İstatistikleri | Farklı dönemler için sitenin tüm kamuya açık uç noktalarının çağrı sayacı. |
| İçerik API Hataları | Kamu API'sinin tüm 4xx/5xx yanıtları, istek detayları ve yığın izleri ile birlikte. |
Modül arayüzünde sekmeler şu şekilde adlandırılmıştır: Yönetici Günlüğü, Yönetici Uygulamasına Erişim Günlüğü, İçerik API İstatistikleri, İçerik API Hataları.
Her sekme ayrı bir izin altında mevcuttur — bkz. Günlük için İzinler.
Yönetici Eylem Günlüğü
Ana sekme, sistemdeki tüm yöneticilerin eylemlerini gösterir. Daha önce sadece "Yönetici Eylem Günlüğü" olarak adlandırılıyordu — şimdi "Yönetici Eylem Günlüğü" olarak yeniden adlandırıldı, böylece yeni sekmelerden ayırt edilebilir.
Arayüz Öğeleri
Sekme, iki bloktan oluşmaktadır:
- Filtreler
- Eylem Listesi
Filtreler
Eylemleri filtrelemek için aşağıdaki alanlar mevcuttur:
- From — Eylemlerin filtrelenmeye başlanacağı tarih için metin girişi alanı.
- To — Eylemlerin filtrelenmeye son verileceği tarih için metin girişi alanı.
Tarihleri, bölgenizin tarih formatında bir dize olarak girebilir veya tarih giriş alanına tıkladığınızda açılan takvimden gerekli tarihi seçebilirsiniz.
- Yönetici ID — Benzersiz yönetici kimliği için sayısal giriş alanı.
- Kullanıcı eylemleri — Kullanıcı eylemleri için açılır liste:
- Oluşturma
- Değiştirme
- Silme
- Durum — Eylem durumları için açılır liste:
- Başarılı
- Hata
- Modül adı — Modül adları için açılır liste:
- Yöneticiler
- Özellik setleri
- Yedekleme
- Blokları yönetme
- Olay yönetimi
- Genel ayarlar
- Dosya yükleme
- Dosya editörü
- Formları yönetme
- Yerelleştirme
- İşaretçiler
- Menü
- Modüller
- İçerik yönetimi
- Ürünler
- Sipariş yönetimi
- Temel ayarlar
- Ödeme yönetimi
- Ürün durumu yönetimi
- KULLANICI
- Kimlik doğrulama sağlayıcıları ve kullanıcı yönetimi
- Şablon yönetimi
- Önizleme şablonu yönetimi
- Kayıt ID — Benzersiz kayıt kimliği için sayısal giriş alanı.
Filtreler bloğunun altında iki buton bulunmaktadır:
- Verileri Sil — From / To alanları ile belirlenen dönem için yönetici eylem kayıtlarını siler (bkz. Günlükleri Manuel Olarak Temizleme).
- Sıfırla — Uygulanan filtreleri sıfırlar.
Eylem Listesi
Eylem listesi, altı sütundan oluşan bir tablo şeklinde sunulmaktadır:
- Kullanıcı eylemleri
- Durum
- Kullanıcı girişi
- Modül adı
- Kayıt ID
- Tarih ve saat
Her sütun için, sütun başlığına tıklayarak verileri sıralama imkanı vardır. İlk tıklama azalan sıralama yapar, ikinci tıklama artan sıralama yapar, üçüncü tıklama sıralamayı sıfırlar.
Blok Görünürlüğü Denetimi
Her blok görünürlüğü geçişi (admin panelinde "göster/gizle" anahtarı) otomatik olarak Yönetici Eylem Günlüğü'ne kaydedilir. Hangi yöneticinin ve ne zaman belirli bir bloğun durumunu değiştirdiği görünür.
Blok görünürlüğü geçişi günlüğe kaydedilmiyordu — kimin ve ne zaman bir bloğu gizlediği/gösterdiği belirlenemiyordu. Şimdi bu mevcut ve işlem, "Blokları Yönetme" türü ile genel listede görüntüleniyor.
Yönetici Trafiği (Admin Access Log)
Yönetici Trafiği sekmesi, yöneticinin sisteme her giriş ve çıkışını ayrı bir kayıt olarak gösterir. Artık kimlerin ve ne zaman admin paneline girdiğini hemen görebilirsiniz — Grafana/Loki'ye başvurmadan. Bu, denetim için faydalıdır (özellikle birden fazla yöneticisi olan büyük ekipler için).
Tablo Alanları
Tablo, altı sütundan oluşmaktadır:
| Sütun | Ne anlama geliyor |
|---|---|
| Giriş | yöneticinin kullanıcı adı |
| IP | yöneticinin giriş yaptığı IP adresi |
| Giriş Zamanı | giriş tarihi ve saati |
| Çıkış Zamanı | çıkış tarihi ve saati (hala açık oturum için — boş) |
| Süre | oturum süresi (aktif için — girişten mevcut zamana kadar) |
| Sebep | oturum kapatma nedeni: logout (kendi isteğiyle "Çıkış" yaptı) veya admin_revoked (başka bir yönetici oturumu zorla sonlandırdı, örneğin logoutAll ile) |
Yönetici Eylem Günlüğü gibi, herhangi bir sütun başlığına tıklayarak sıralama yapabilirsiniz.
Token süresi dolması (expired) ve yeniden kimlik doğrulama (refresh) ayrı bir kayıt olarak yazılmaz — böyle bir oturum, aslında kullanılmadığında tembel bir şekilde kapalı olarak işaretlenir.
Filtreler
- From / to — dönem (tarih giriş alanları ile takvim).
- Yönetici ID — belirli bir yöneticiye göre filtreleme için sayısal alan.
- Oturum Durumu — oturum durumu için açılır liste: Tümü / Aktif / Kapalı.
"Verileri Sil" Butonu
From / To alanları ile belirlenen dönem için oturum kayıtlarını siler. Tıkladığınızda bir onay diyalogu açılır:
Eylemi Onayla — Belirtilen dönem için tüm kapalı oturumları silmek istiyor musunuz? Bu işlem geri alınamaz. Aktif oturumlar kalacaktır.
Sadece kapalı oturumlar silinir. Aktif oturumlar (açık kimlik doğrulaması olan) etkilenmez — bu, çalışan meslektaşların oturumlarını yanlışlıkla "kapamaktan" koruma sağlar.
İçerik API İstatistikleri
İçerik API İstatistikleri sekmesi, sitenin tüm kamuya açık uç noktalarının çağrı sayaçlarını (storefront API) farklı dönemler için gösterir — 1 saat, 24 saat, 7 gün.
Ne gösterir
- Tüm kamuya açık uç noktaların listesi (
GET /api/content/...) — otomatik olarak koddan toplanır, manuel olarak desteklenmesi gerekmez. - Her uç noktanın yanında sayaç — seçilen dönem içinde kaç kez çağrıldığı.
- Sayılar, trafiğimizden sorumlu merkezi Prometheus metriği nginx-ingress'ten alınır. Proje veritabanında ayrı sayaçlar oluşturulmaz.
Arayüz Öğeleri
- Dönem — dönem için açılır liste: Son Saat / Son 24 Saat / Son 7 Gün (varsayılan — Son 24 Saat).
- Yenile — verileri zorla güncelleme butonu.
Veriler, dört sütundan oluşan bir tablo ile sunulmaktadır:
| Sütun | Ne anlama geliyor |
|---|---|
| Yol | uç noktanın yolu (/api/content/...) |
| Yöntem | HTTP yöntemi (GET, POST, …) |
| Açıklama | uç noktanın kısa açıklaması |
| İstekler | seçilen dönem için çağrı sayısı |
Sayfanın üst kısmında bir bilgi banner'ı görüntülenir:
Otomatik temizleme geçerli değil — Veriler, Prometheus'tan gerçek zamanlı olarak okunur, saklama izleme altyapısı düzeyinde yapılandırılmıştır. Bu sekme, CMS veritabanında veri saklamaz.
Eğer Prometheus erişilemezse, tablonun üzerinde "Metriğin geçici olarak kullanılamadığı. Tüm uç noktalar sıfır sayısı ile görüntüleniyor." uyarısı belirir — uç nokta listesi yine de görüntülenir, ancak sayaç 0'dır.
Veriler, altyapı düzeyinde saklama süresi ile Prometheus'ta saklanır (genellikle 30 gün). Daha uzun süreli analiz için verileri kendiniz saklamanız gerekir. Sayfanın üst kısmındaki bilgi banner'ı bu durumu bildirir.
Neden gerekli
Pazarlama ve ürün ekipleri, hangi özelliklerin storefront API'sinin gerçekten kullanıldığını ve hangilerinin kullanılmadığını görebilir. Ayrıca "her şeyin çalışıp çalışmadığını" izlemek de kolaydır — bir uç noktanın çağrılarında ani bir düşüş genellikle ön tarafta bir sorun olduğunu gösterir.
Yanıt, 60 saniye boyunca Redis'te önbelleğe alınır — her "Yenile" tıkladığınızda Prometheus'u çağırmamak için.
İçerik API Hataları
İçerik API Hataları sekmesi, belirli bir dönem içinde kamu API'sinin verdiği tüm 4xx/5xx yanıtlarını gösterir. API'mizle istemci uygulamasını entegre eden geliştiricilerin artık sunucu günlüklerine erişmesine gerek yoktur — kendi isteklerindeki tüm hataları doğrudan admin panelinde görebilirler.
Ne gösterir
Her kayıt, ayrı bir HTTP hatasıdır. Tablo, beş sütundan oluşmaktadır:
| Sütun | Ne anlama geliyor |
|---|---|
| Zaman | hata zaman damgası |
| Durum | HTTP durumu (4xx / 5xx) |
| Yöntem | istek yöntemi (GET, POST, …) |
| Yol | yol (/api/content/...) |
| Mesaj | hata metni |
Seçilen dönem içinde hata yoksa, tablonun yerine "Seçilen dönem için kayıtlı hata yok." mesajı görüntülenir.
"Daha Fazla" alanı, aşağıdaki detayları içeren bir ekran açar:
- İstek Gövdesi (gizli bilgiler olmadan — şifreler, tokenler, yetkilendirme başlıkları maskelemektedir)
- Sorgu — sorgu dizesi parametreleri
- Başlıklar
- Yığın izi — genişletilmiş (8 KB'ye kadar)
Filtreler
- From / to — dönem (tarih giriş alanları ile takvim).
- HTTP Durumu — durumlar için açılır liste. Gruplardan seçebilirsiniz (4xx - İstemci tarafı, 5xx - Sunucu tarafı) veya belirli bir kod seçebilirsiniz: 400, 401, 403, 404, 422, 500, 502, 503.
- Yol — yol için filtreleme metni alanı (örneğin,
/api/content/blocks/*).
"Verileri Sil" Butonu
From / To alanları ile belirlenen dönem için hata kayıtlarını siler. Eğer dönem belirtilmemişse — tüm hataları siler.
Güvenlik — Sanitizer
Sanitizer, hassas verileri otomatik olarak keser. password, token, authorization, api_key, x-app-token, cookie, set-cookie (büyük/küçük harf duyarsız) alanları *** ile değiştirilir. Büyük gövdeler 2 KB'ye kadar kesilir.
Mimari
Hatalar, günlüğe yazma işleminin istek işleme sürecini yavaşlatmaması için hafif bir Bull kuyruğu aracılığıyla yazılır. Kuyruk dolduğunda (1000'den fazla bekleyen görev) — yeni hatalar sessizce reddedilir, böylece Redis "çökmemiş" olur.
Günlükleri Manuel Olarak Temizleme
Günlük kayıtları manuel olarak temizlenir — verileri veritabanında saklayan her sekmede "Verileri Sil" butonu bulunmaktadır:
| Sekme | Ne siler |
|---|---|
| Yönetici Eylem Günlüğü | Seçilen dönem için yönetici eylem kayıtları |
| Yönetici Trafiği | sadece kapalı oturumlar için seçilen dönem |
| İçerik API Hataları | Seçilen dönem için hata kayıtları |
Silme dönemi, sekmenin filtrelerindeki From / To alanları ile belirlenir. Eğer dönem belirtilmemişse — ilgili türdeki tüm kayıtlar silinir. Silme işlemi öncesinde her zaman "Eylemi Onayla" onay diyalogu görüntülenir, işlem geri alınamaz.
"Yönetici Trafiği" sekmesindeki "Verileri Sil" butonu yöneticilerin aktif oturumlarını silmez — mevcut anı kapsayan bir dönem belirleseniz bile, çalışan bir meslektaşın açık oturumu silinmeyecektir. Sadece kapalı oturumlar silinir.
İstatistik verileri, Prometheus'tan gerçek zamanlı olarak okunur ve CMS veritabanında saklanmaz, bu nedenle bu sekmede "Verileri Sil" butonu yoktur — bu durum "Otomatik temizleme geçerli değil" banner'ı ile bildirilir.
Günlük için İzinler
Her günlük sekmesi, izinler ağacında ayrı bir izin altında mevcuttur:
| Sekme | İzin |
|---|---|
| Yönetici Eylem Günlüğü | journal.viewAdminActions (mevcut izin, değişiklik yok) |
| Yönetici Trafiği | journal.viewAdminAccess (yeni izin) |
| İçerik API İstatistikleri | journal.viewContentApiStats (yeni izin) |
| İçerik API Hataları | journal.viewContentApiErrors (yeni izin) |
Sistem güncellenirken, her iki yeni izin (journal.viewContentApiStats, journal.viewContentApiErrors) mevcut tüm yöneticilere admins.get izni ile otomatik olarak verilmiştir — seed-migrasyonu aracılığıyla. Mevcut roller için hiçbir şey bozulmamıştır.