Ana içeriğe geç

Device User AuthZ Cache

Bu sayfa, device:{device_id}:user:{user_id}:authz key ailesinin Qapu içindeki işletim sözleşmesini tanımlar.

Bu key ailesi, bir kullanıcının belirli bir cihaz üzerindeki efektif yetkisini tek lookup ile çözmek için kullanılır.

Key Pattern

  • device:{device_id}:user:{user_id}:authz

Örnek:

  • device:46000000C47CA670:user:123:authz

Redis DB Alanı

  • Önerilen DB: 0

Authoritative Source

  • authorities
  • authority_permissions
  • permissions
  • gerektiğinde users

Kanonik Yapı

{
"user_id": 123,
"device_id": "46000000C47CA670",
"authority_id": 88,
"owner": true,
"is_active": true,
"permissions": [
"pump.start",
"pump.stop",
"reports.view"
],
"auth_version": 7
}

Kullanım Amacı

Bu key ile şu sorular tek GET ile çözülür:

  • kullanıcı bu cihaza erişebilir mi?
  • authority aktif mi?
  • owner mı?
  • hangi aksiyonları yapabilir?

TTL ve Invalidation

  • TTL: 2m - 10m

Invalidation tetikleri:

  1. authority değişirse
  2. authority owner flag değişirse
  3. authority active flag değişirse
  4. authority permissions değişirse
  5. kullanıcı status veya auth_version değişirse

Çapraz Referanslar

  • /projects/qapu/services/api/jwt-auth-flow
  • /projects/qapu/services/redis/keyspace/auth-session
  • /projects/qapu/services/redis/keyspace/user-auth-context
  • /projects/qapu/services/redis/keyspace/authority-permissions-cache