Ana içeriğe geç

stream_audit

stream_audit, streams tablosu uzerinde calisan kritik operasyonlarin (ilk asamada cihaz bazli tam silme) denetim izini tutar.

Bu tablo logs tablosunun yerine gecmez; operasyonel loglari destekleyen, daha sik sozlesmeli ve append-only audit kaydidir. Amac, kim-ne-zaman-neden-hangi kapsamda silme yapti sorusunu tek tablodan kesin olarak cevaplayabilmektir.

Kapsam

  • Ilk faz: ops.delete_device_streams_full(p_device_id, p_reason, p_actor) fonksiyon cagirilari.
  • Bu tablo yikici (delete) stream operasyonlarina ozel append-only denetim katmanidir.
  • Stage veya ledger durum gecisleri bu tabloda tutulmaz; bunlar operasyonel loglarda veya ayrik event akisi ile izlenir.

Baglam Zorunlulugu

Cagirici tipiZorunlu alanlar
apisource_type, service_name, ip_address
admin_uisource_type, service_name, ip_address, reason
jobsource_type, service_name, source_note
scriptsource_type, service_name, source_note

Not: sim_id sadece islem mobil baglamla dogrudan iliskiliyse doldurulur.

FK Davranis Notlari

FKON DELETEON UPDATENot
stream_audit.device_id -> devices.idSET NULLCASCADEAudit kaydi korunur, cihaz referansi opsiyonel kalir.
stream_audit.actor_id -> users.idSET NULLCASCADEAudit kaydi korunur, actor referansi opsiyonel kalir.

Kolonlar

KolonTipNullAnlami
idbiginthayirAudit kaydi birincil anahtari
operation_idvarchar(64)hayirTek silme operasyonu kimligi (idempotency/izleme)
action_typevarchar(40)hayirIslem tipi (or: delete_device_streams_full)
device_idvarchar(21)evetSilme kapsamindaki cihaz
actor_idintevetIslemi yapan actor kullanici
service_namevarchar(100)hayirCagiriyi yapan servis adi
source_typevarchar(40)hayirKaynak tipi (api, admin_ui, job, script)
source_notevarchar(255)evetBaglam notu (ticket no, run id vb.)
ip_addressvarchar(64)evetCagri IP bilgisi (varsa)
sim_idvarchar(64)evetMobil baglamdaki iliskili SIM kimligi
reasonvarchar(255)hayirOperasyon gerekcesi
deleted_stream_countinthayirSilinen stream satir sayisi
deleted_telemetry_countinthayirSilinen bagli telemetri satirlarinin toplam sayisi
deleted_breakdownjsonevetTablo bazli silme dagilimi (measurements_*, measurements, vb.)
statusvarchar(20)hayirIslem sonucu (started, succeeded, failed)
error_messagetextevetHata varsa detay metni
function_namevarchar(120)hayirCagrilan DB fonksiyonu
create_timetimestamphayirAudit kaydinin yazildigi zaman

Indeksler

IndeksTipAciklama
idPrimary KeyTablo birincil anahtari
operation_idUniqueAyni operasyon iki kez audit edilmez
(device_id, create_time)B-TreeCihaz bazli audit sorgulari
(actor_id, create_time)B-TreeActor bazli audit sorgulari
(status, create_time)B-TreeBasarili/basarisiz operasyon izleme
(source_type, create_time)B-TreeKaynak tipine gore denetim taramasi

Ornek Kayitlar

{
"id": 1,
"operation_id": "op-2026-04-10-0001",
"action_type": "delete_device_streams_full",
"device_id": "46000000C47CA670",
"actor_id": 1,
"service_name": "stream-cleaner",
"source_type": "admin_ui",
"source_note": "INC-2026-4182",
"ip_address": "10.0.3.45",
"sim_id": null,
"reason": "Cihaz saha degisimi oncesi sifirlama",
"deleted_stream_count": 12482,
"deleted_telemetry_count": 286941,
"deleted_breakdown": {
"measurements": 35640,
"measurements_device": 12482,
"measurements_current": 12482,
"measurements_voltage": 12482,
"measurements_power": 12482,
"measurements_energy": 12482,
"measurements_water": 11620,
"measurements_environment": 9852,
"measurements_location": 10211,
"measurements_register": 12035,
"streams": 12482
},
"status": "succeeded",
"error_message": null,
"function_name": "ops.delete_device_streams_full",
"create_time": "2026-04-10 09:15:02"
}

Ozet: Cihaz yeniden atama oncesi tum stream ve bagli telemetri zinciri tek operasyonla silinmis, audit kaniti kaydedilmis.