Denetim olaylarını listele
GET /v1/audit-events · izin audit-events:read
Ortamın denetim kayıtlarını imleç tabanlı sayfalama ile en yeniden en eskiye doğru listeler. admin akışı, yönetim API'si, kontrol paneli ve platform üzerinden yapılan değişiklikleri içerir; application akışı ise uygulamanızın yazdığı olayları içerir. Her kayıt, ortam ve akış bazında bir karma zincirinin parçasıdır; bu nedenle geçmiş, bir dışa aktarma (POST /v1/audit-exports) ile bağımsız olarak doğrulanabilir.
Ortam her zaman API anahtarından alınır; bir ortam parametresi yoktur.
İstek
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
limit |
sorgu | hayır | Sayfa boyutu, 1 ile 100 arası. Varsayılan 20. |
after |
sorgu | hayır | list_metadata.after değerinden gelen, şeffaf olmayan imleç (daha eski kayıtlar). before ile birlikte kullanılamaz. |
before |
sorgu | hayır | list_metadata.before değerinden gelen, şeffaf olmayan imleç (daha yeni kayıtlar). after ile birlikte kullanılamaz. |
stream |
sorgu | hayır | admin (varsayılan) veya application. |
from |
sorgu | hayır | RFC 3339 zamanı; bu zamanda veya sonrasındaki kayıtlar. Varsayılan, saklama penceresinin başlangıcı ile to eksi 92 gün değerlerinin daha geç olanıdır. |
to |
sorgu | hayır | RFC 3339 zamanı; bu zamandan önceki kayıtlar. Varsayılan şimdidir. from ile to arasındaki aralık en fazla 92 gündür. |
action |
sorgu | hayır | user. veya connection.updated gibi bir işlem öneki. |
category |
sorgu | hayır | authentication, session, token, administration, provisioning, federation, authorization, data_access, security, key_management, configuration veya application. |
actor_type |
sorgu | hayır | api_key, dashboard_user, m2m_client, agent veya system gibi bir işlem yapan türü. |
actor_id |
sorgu | hayır | Kaydedildiği biçimiyle tam işlem yapan kimliği (key_…, usr_…, system:<service>). |
target_type |
sorgu | hayır | user, organization veya audit_export gibi bir hedef türü. |
target_id |
sorgu | hayır | Tam hedef kimliği. target_type ile birlikte kullanıldığında ikisi de aynı hedefle eşleşmelidir. |
org_id |
sorgu | hayır | Bir kuruluşla ilgili kayıtlar (org_…). |
outcome |
sorgu | hayır | success, failure, denied veya error. |
request_id |
sorgu | hayır | Bir isteğin Idp-Request-Id değeri (UUID). |
correlation_id |
sorgu | hayır | Bir iş akışının Idp-Correlation-Id değeri (UUID). |
agent_only |
sorgu | hayır | true değeri yalnızca temsilci işlemlerini döndürür: actor_type değeri agent olan veya boş olmayan bir act_chain içeren kayıtlar. |
client |
sorgu | hayır | Çağrıyı yapan istemci türü: mcp (yönetim MCP sunucusu, metadata.client = mcp/<version>) veya cli (KeenAuth CLI, cli/<version>). Bu değeri istemci kendisi bildirir; kimin işlem yaptığının kanıtı değildir, kanıt kaydın işlem yapanıdır. Yalnızca listeleme için geçerlidir; bir dışa aktarmada client filtresi yoktur. |
Kayıtlar her zaman occurred_at (sonra id) alanına göre en yeniden en eskiye sıralanır; bir order parametresi yoktur (order=desc kabul edilir, başka bir değer validation_failed hatasıyla sonuçlanır). Bir imleç yalnızca üretildiği filtreler ve ortam ile geçerlidir. Toplam kayıt sayısı döndürülmez.
10 saniyeden uzun süren bir arama 422 search_too_broad hatasıyla durur: filtreleri ya da zaman aralığını daraltın, büyük aralıklar için bir dışa aktarma kullanın.
Yanıt
200 OK. data alanı sayfadaki kayıtları içerir; list_metadata.after daha eski kayıtlara, list_metadata.before ise daha yeni kayıtlara işaret eder (kayıt yoksa null). Boş alanlar null olarak döner.
ip ve user_agent alanları yalnızca anahtarda audit-events:read_ip izni varsa bulunur ve yalnızca 13 aydan yeni kayıtlarda doldurulur. İzin yoksa alanlar tamamen çıkarılır (maskelenmiş bir değer döndürülmez). ip_prefix, ip_country, ip_asn ve user_agent_family her zaman döndürülür. prev_hash, org_prev_hash ve record_hash dolgusuz base64url SHA-256 değerleridir.
{
"data": [
{
"id": "evt_01j9xk3m7q8r2s4t6v8w0y2z4a",
"stream": "admin",
"seq": 4182,
"schema_version": 1,
"action": "user.blocked",
"category": "administration",
"outcome": "success",
"reason_code": null,
"occurred_at": "2026-10-01T08:15:42.120Z",
"received_at": "2026-10-01T08:15:42.131Z",
"recorded_at": "2026-10-01T08:15:42.140Z",
"clock_anomaly": false,
"actor_type": "api_key",
"actor_id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d",
"act_chain": null,
"session_id": null,
"auth_context": null,
"elevation_ref": null,
"org_id": null,
"targets": [
{"type": "user", "id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p", "org_id": null, "name": null}
],
"application_id": null,
"ip_prefix": "203.0.113.0/24",
"ip_country": "DE",
"ip_asn": 64500,
"user_agent_family": "keenauth-go",
"request_id": "0192a6c1-7d3e-7a10-9b2c-3d4e5f607182",
"correlation_id": null,
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"producer_service": "directory",
"policy_ref": "perm:users:write",
"changes": {"status": {"old": "active", "new": "blocked"}},
"metadata": null,
"prev_hash": "n4bQgYhMfWWaL-qgxVrQFaO_TxsrC4Is0V1sFbDwCgg",
"org_prev_hash": null,
"record_hash": "LCa0a2j_xo_5m0U8HTBBNBNCLXBkg7-g-YpeiGJm564"
}
],
"list_metadata": {
"before": null,
"after": "<opaque cursor>"
}
}
Hatalar
Her hata, kararlı bir code değerine sahip bir application/problem+json gövdesidir.
| HTTP | code |
Ne zaman |
|---|---|---|
| 400 | invalid_cursor |
İmleç hatalıysa veya bu istek için üretilmediyse. |
| 400 | invalid_filter |
Denetim servisi bir filtreyi reddettiyse, örneğin aralık 92 günden uzunsa. |
| 400 | range_outside_retention |
from veya to, planınızın denetim saklama penceresinin dışındaysa. |
| 422 | validation_failed |
Bir sorgu parametresi geçersizse (limit aralık dışındaysa, zaman damgası hatalıysa, to from değerinden sonra değilse, stream, category veya outcome bilinmiyorsa, kimlik biçimi hatalıysa, parametre tekrarlanmışsa, order değeri desc dışındaysa). |
| 422 | search_too_broad |
Arama 10 saniyeden uzun sürdüyse; aramayı daraltın. |
| 401 | unauthenticated |
API anahtarı eksikse, geçersizse veya iptal edilmişse. |
| 403 | insufficient_permissions |
Anahtarda audit-events:read izni yoksa. |
| 429 | rate_limited |
Hız sınırı aşıldıysa; Retry-After değerine uyun. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyorsa; daha sonra yeniden deneyin. |
Örnek
curl "https://api.eu.keenauth.com/v1/audit-events?action=user.&from=2026-10-01T00:00:00Z" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
keenauth audit-events list --action user. --from 2026-10-01T00:00:00Z
Kişisel veriler
Bu uç nokta kişisel veri içerir: denetim olayları. KeenAuth API'lerinde kişisel veriler sayfasında neyin saklandığı, ne kadar süreyle tutulduğu ve nasıl silindiği açıklanır. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.