Ana içeriğe geç

authorities

authorities, bir kullanıcının belirli bir cihaz üzerindeki temel otoritesini temsil eder.

Global rol tek başına yeterli değildir. Aynı rolü taşıyan iki kullanıcı farklı cihazlarda farklı erişim seviyesine sahip olabilir. Bu tablo kullanıcı ile cihaz arasındaki ilişkiyi modeller: hangi kullanıcı hangi cihaza erişebilir, cihazın sahibi kim, yetki aktif mi. İlişkide kısıtlar vardır: bir kullanıcı aynı cihaza iki kez authority satırı olamaz (composite unique index: device_id + user_id). Kısaca: hangi kullanıcı hangi cihaza erişebilir, cihazın sorumlusu kim sorusunun cevabı bu tabloda yer alır.

Bu tablo yalnız kullanıcı-cihaz ilişkisini tutmuş. Bu ilişki üzerinde yapılabilecek spesifik aksiyon izinleri burada tanımlanmaz (o authority_permissions tablosundadır). Kullanıcının genel rol bilgisi burada tutulmaz (o users.role_id ile user_roles tablosunda). Cihazın fiziksel özellikleri ve konfigürasyonu bu tabloda değildir. Ownership atanması mekanizması: cihaz mobil app üzerinden kurulduğunda, kurumu yapan kullanıcı otomatik olarak owner: true ile sistemi (ID: 0) tarafından authority kaydı alır. Owner değiştirilmek istenirse, eski owner authority silinir, yeni authority kaydı eklenir ve sistem tarafından owner yapılır. Bu şekilde owner atanması sadece sistem (ID: 0) tarafından yapılır ve denetim izi korunur. Kısaca: bir kullanıcı belirli bir cihazda ne yapabilir sorusunun cevabı burada değildir.

İstisna kuralı: ai_agent rolündeki servis kullanıcıları için authorities kaydı açılmaz. Bu kullanıcılar cihazlara owner/operator olarak bağlanmaz; yalnız analiz servisleri üzerinden global read sorguları çalıştırır.

Yapilacaklar (Soft Delete ve Audit)

  • is_deleted ve delete_time alanlari eklendi; owner gecislerinde fiziksel silmeyi kaldirma hedefi belirlendi.
  • created_by ve updated_by alanlari eklendi.
  • create_time ve update_time yasam dongusu alanlari olarak korundu.
  • owner degisikligi, is_active degisikligi ve revoke islemlerini audit log tablosuna trigger ile yaz.
  • update_time alanini DB trigger ile deterministik yonet.

FK Davranis Notlari

FKON DELETEON UPDATENot
authorities.user_id -> users.idCASCADECASCADEKullanici silinince bagli authority kayitlari yetim kalmaz.
authorities.device_id -> devices.idCASCADECASCADECihaz silinince bagli authority kayitlari birlikte temizlenir.

Kolonlar

KolonTipNullKısıtlarAnlamı
idinthayırPK, AUTO INCREMENTAuthority anahtarı
device_idvarchar(21)hayırFK → devices.idYetkinin geçerli olduğu cihaz
user_idinthayırFK → users.idYetki sahibi kullanıcı
ownerbooleanhayırDEFAULT: falseCihazın sahibi/ana sorumlusu mu
is_activebooleanhayırDEFAULT: trueYetki aktif mi
assigned_byintevetFK → users.idYetkiyi veren kullanıcı
is_deletedbooleanhayırDEFAULT: falseSoft delete bayrağı
delete_timetimestampevet-Soft delete zamanı
created_byinthayırFK → users.idKaydı oluşturan actor
updated_byinthayırFK → users.idSon düzenleyen actor
create_timetimestamphayır-Oluşturma
update_timetimestamphayır-Güncelleme

Unique Constraint: (device_id, user_id) — bir kullanıcı aynı cihaza yalnız bir kez authority kaydı olabilir.

Örnek Kayıtlar

{
"id": 1,
"device_id": "46000000C47CA670",
"user_id": 1,
"owner": true,
"is_active": true,
"assigned_by": 1,
"is_deleted": false,
"delete_time": null,
"created_by": 1,
"updated_by": 1,
"create_time": "2026-04-03T10:00:00Z",
"update_time": "2026-04-03T10:00:00Z"
}

Özet: Mehmet Günce (user_id: 1) cihazın sahibi (owner: true). Kendi kendine yetki vermiş (assigned_by: 1).