src/cluster_erp/modules/logs/ içindeki logs modülü, sistemde olanların üç kaydına okuma erişimi verir: istek etkinlik günlüğü, hata günlüğü ve kalıcı değişiklik geçmişi. Etkinlik ve hata günlüklerini sunucu ara katmanı, değişiklik geçmişini çekirdek değişiklik geçmişi kancası yazar. Modülün kendisi bir okuma API'si, istemci hata bildirimleri için bir yazma ucu, ekranlar için metadata ve gizlilik işleyicileri ekler. Değişiklik geçmişinin nasıl yazıldığı değişiklik geçmişi sayfasındadır.
Bir bakışta¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Paket | src/cluster_erp/modules/logs/ |
klasör |
| Modül sınıfı | Module |
src/cluster_erp/modules/logs/module.py:15 |
name / version |
logs / 0.1.0 |
src/cluster_erp/modules/logs/module.py:16-22 |
| API öneki | /api/v1/logs (ModuleBase.api_prefix) |
src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/logs/module.py:31-44 |
| Alt modüller | Kaynağı olan 3: activity_log, error_log, change_history; deleted_records klasörü bu commit'te Python kaynağı tutmaz |
klasör listesi |
| Tablolar | 2: activity_log, error_log; değişiklik geçmişi tablosu core_change_history çekirdeğe aittir |
iki models.py dosyasındaki __tablename__, src/cluster_erp/core/change_history.py |
| Metadata'daki varlıklar | entities içinde 3 anahtar |
src/cluster_erp/modules/logs/module.py:124-130 |
| Uçlar | Pakette 9 uç dekoratörü | @...router.get/post/put/patch/delete için grep |
| Aksiyonlar | 0 ActionMeta girdisi |
pakette grep "ActionMeta(" |
| Göçler | 6 dosya | metni iki tablo adından birini içeren migrations/versions/ dosyaları |
| Sözleşmeler | 2 tüketir, 0 üretir | "Olaylar ve sorgular" bölümüne bakın |
| Web uygulamasında varlık | settings sistem katalog uygulamasının parçası (auth ve logs modülleri) |
src/cluster_erp/modules/app_store/catalog.json (settings girdisi) |
| Masaüstünde varlık | src/cluster_erp/desktop/modules/logs/ (activity_log_view.py, error_log_view.py) |
klasör |
Modül ne yapar¶
- Etkinlik günlüğü satırlarını listeler ve okur: kim hangi yöntem ve yolu çağırdı, durum kodu, süre ve dokunulan kayıt (
src/cluster_erp/modules/logs/activity_log/models.py:15-96,src/cluster_erp/modules/logs/activity_log/routes.py:18-68). - Hata günlüğü satırlarını kimliğe veya iz kimliğine göre listeler ve okur (
src/cluster_erp/modules/logs/error_log/routes.py:47-105). - Web ve masaüstü istemcilerinden gelen çökme raporlarını kaydeder (
src/cluster_erp/modules/logs/error_log/routes.py:22-44). - Tasarım gereği salt okunur olan değişiklik geçmişini listeler ve okur (
src/cluster_erp/modules/logs/change_history/routes.py:18-85).
Alt modüller¶
| Alt modül | Amaç | Ana varlıklar | Yönlendirici | Kaynak |
|---|---|---|---|---|
activity_log |
İstek etkinlik günlüğü | ActivityLog |
/activities |
src/cluster_erp/modules/logs/activity_log/routes.py:18 |
error_log |
Sunucu ve istemci hataları | ErrorLog |
/errors |
src/cluster_erp/modules/logs/error_log/routes.py:19 |
change_history |
core_change_history üzerinde okuma görünümü |
ChangeHistory (çekirdek model) |
/change-history |
src/cluster_erp/modules/logs/change_history/routes.py:18-19 |
Veri modeli¶
| Varlık | Tablo | Ana alanlar | Notlar | Kaynak |
|---|---|---|---|---|
ActivityLog |
activity_log |
actor_id, actor_username, method, path, status_code, duration_ms, ip, user_agent, module, entity_type, entity_id, entity_name, request_body_summary, summary, trace_id, occurred_at |
düz Base, ULID kimlik; yumuşak silme sütunu yok |
src/cluster_erp/modules/logs/activity_log/models.py:15-96 |
ErrorLog |
error_log |
trace_id, error_code, error_message, http_status, actor_id, actor_username, method, path, request_body_summary, ip, user_agent, stack_trace, exception_type, error_details, occurred_at |
düz Base |
src/cluster_erp/modules/logs/error_log/models.py:15-92 |
Etkinlik ara katmanı başarılı bir POST, PUT veya PATCH ile tek bir kaydın GET isteği için bir ActivityLog satırı; hata ayrıntısı taşıyan 400 ve üzeri bir yanıt için bir ErrorLog satırı yazar (src/cluster_erp/server/middleware.py:580-582, src/cluster_erp/server/middleware.py:619-660). İstek gövdeleri, operatör ayarları altında hassas anahtarlar çıkarılarak özetlenir (src/cluster_erp/server/middleware.py:65-66, src/cluster_erp/server/middleware.py:135). Ara katman istek hattı ve ara katman sayfasında anlatılır.
Ekranlar ve metadata¶
get_metadata, iki özel bölümle Sistem Günlükleri (İngilizce System Logs) kenar çubuğu grubunu tanımlar: Etkinlik Günlüğü (activity_log_view) ve Hata Günlüğü (error_log_view) (src/cluster_erp/modules/logs/module.py:84-123). change_history varlığı kalıcı değişiklik deposudur; kod yorumu onu eski silme kasasının yerine geçen yapı olarak adlandırır (src/cluster_erp/modules/logs/module.py:124-130). Web ayarlar ekranı devre dışı kayıtları bu geçmişten listeler; bkz. kayıtlar, belgeler, görüntüleyici ve paylaşım. Masaüstü görünümleri masaüstü modül ekranları sayfasında anlatılır.
Durum ve aksiyonlar¶
Modülün durumları yoktur ve hiçbir ActionMeta tanımlamaz. Değişiklik geçmişinin oluşturma, güncelleme veya silme ucu yoktur (src/cluster_erp/modules/logs/change_history/routes.py:18-19).
İş kuralları¶
- Değişiklik geçmişi listesi arama metni, varlık türü, tablo, aksiyon, işlemi yapan ve tarih aralığına göre, 1 ile 500 arası sayfa boyutuyla süzer. İşlemi yapanların kullanıcı adları gösterim için çözülür (
src/cluster_erp/modules/logs/change_history/routes.py:29-62,src/cluster_erp/modules/logs/change_history/services.py:26-111). GET /change-history/tables, ayrı tablo adlarını tam birDISTINCTyerine gevşek bir indeks taramasıyla listeler (src/cluster_erp/modules/logs/change_history/services.py:113-139).POST /errors/client, oturum açmış her kullanıcıdan rapor kabul eder ve kullanıcıyı, istemci adresini veUser-Agentbaşlığını kaydeder (src/cluster_erp/modules/logs/error_log/routes.py:22-44).- Etkinlik ve hata günlüğü satırları,
activity_log_retention_days(varsayılan 90) veerror_log_retention_days(varsayılan 365) sonrasında günlük bir geçişle yaşlanıp çıkar (src/cluster_erp/config/settings.py:638-639,src/cluster_erp/server/app.py:1267-1290). Bkz. ayarlar başvurusu.
Olaylar ve sorgular¶
Modül 2 sözleşme tüketir ve hiç üretmez; sayım fleet modülü sayfasındaki gibi yapılmıştır.
| Yön | Sözleşme sınıfı | İşleyici veya yayıcı | Kaynak |
|---|---|---|---|
| abone olur | CollectSubjectData, AnonymiseSubject |
privacy_handlers.py |
src/cluster_erp/modules/logs/module.py:46-62 |
Tam liste sözleşmeler başvurusunda yer alır.
İzinler¶
| İzin anahtarı | Kullanan | Kaynak |
|---|---|---|
activity_log.read |
etkinlik günlüğü | src/cluster_erp/modules/logs/activity_log/routes.py:33, src/cluster_erp/modules/logs/activity_log/routes.py:61 |
error_log.read |
hata günlüğü okumaları | src/cluster_erp/modules/logs/error_log/routes.py:58-98 |
change_history.read |
değişiklik geçmişi | src/cluster_erp/modules/logs/change_history/routes.py:40-77 |
POST /errors/client oturum açmış bir kullanıcı ister, izin anahtarı istemez (src/cluster_erp/modules/logs/error_log/routes.py:22-28).
Gizlilik, saklama ve geçmiş¶
privacy_handlers.py, bir kişi hakkındaki günlük satırlarının sayılarını ve zaman aralığını bildirir. Anonimleştirme, kişinin yaptığı veya kişi hakkındaki satırlardan kullanıcı adını, kayıt adlarını ve gövde özetlerini çıkarır; satırlar günlük saklama penceresi bitene kadar küçültülmüş olarak kalır (src/cluster_erp/modules/logs/privacy_handlers.py:1-9). Bkz. gizlilik ve ilgili kişi talepleri. Değişiklik geçmişinin temizliği records modülü sayfasındadır.
Analitik olgular¶
Bu modülde analytics_facts.py yoktur.
Ayarlar ve referans verileri¶
Modülün ayar bölümü yoktur. activity_log_retention_days ve error_log_retention_days günlük ayarları sunucu ayarlarıdır (src/cluster_erp/config/settings.py:638-639).
Testler¶
Ada göre ve tests/*.py içinde change_history ve log için grep ile bulundu.
| Tür | Dosya | Kapsar |
|---|---|---|
| e2e | web-client/_e2e_logs_profile.mjs |
günlük ekranları |
| pytest | tests/test_change_history_redaction.py, tests/test_change_history_tables_live.py |
değişiklik geçmişi karartma ve tablo listesi |
| pytest | tests/test_log_sanitizer.py |
gövde özeti temizleme |
Tutarsızlıklar¶
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| activity log | ActivityLog |
Günlüğe yazılan her isteğin işlemi yapan, yol, durum, süre ve etkilenen kayıtla birlikte tutulan kaydı. | etkinlik günlüğü | src/cluster_erp/modules/logs/activity_log/models.py:15 |
| error log | ErrorLog |
İz kimliğiyle birlikte her sunucu veya istemci hatası için bir satır. | Hata günlüğü | src/cluster_erp/modules/logs/error_log/models.py:15 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.