Dokümanlar/API ve Webhook'lar/Denetim Günlüğü

Denetim Günlüğü

Kurumunuzdaki her mutasyon — yönetici arayüzü eylemleri ve public API çağrıları dahil — tek bir denetim akışına kaydedilir. Bu uç noktaları, akışı bir SIEM'e göndermek, dahili uyumluluk raporları oluşturmak veya belirli bir değişikliği soruşturmak için kullanın. API anahtarında gerekli kapsam: audit-log:read.

Uç noktalar

MethodPathKapsamAmaç
GET/api/public/v1/audit-logaudit-log:readİsteğe bağlı filtrelerle sayfalı denetim olayları listesi.
GET/api/public/v1/audit-log/actionsaudit-log:readKurumunuz için kaydedilmiş benzersiz eylem adları. Filtre açılır listesi oluşturmak için kullanışlıdır.

Neler kaydedilir

Public API çağrıları otomatik olarak denetlenir. Girdi, çağrıyı yapan API anahtarının tam UUID'sini (scs_live_… token önekini değil) içeren <apiKeyId> ile birlikte actorRole = "api_key" ve actorEmail = "apikey:<apiKeyId>" taşır. Yönetici arayüzü eylemleri ise kişinin e-postasını ve org_admin rolünü kullanır. İki akış aynı günlükte iç içe geçer; böylece tek bir dışa aktarım tüm değişiklik geçmişini kapsar.

Denetim olaylarını listele

Olayları en yeniden eskiye doğru döner. Tüm filtreler isteğe bağlıdır ve birleştirilebilir.

GET /api/public/v1/audit-log
  ?action=sarif.ingested
  &actorEmail=apikey:7d8a3e0b-4f12-4cd6-b9e1-21f6cf5d4a73
  &from=2026-05-01T00:00:00Z
  &to=2026-05-29T23:59:59Z
  &page=1
  &pageSize=50
Authorization: Bearer scs_live_…

Sorgu parametreleri

ParametreTürVarsayılanNotlar
actionstringTam eşleşmeli eylem adı. Geçerli değerleri /audit-log/actions'den çekin.
actorEmailstringTam eşleşmeli aktör e-postası. API anahtarı girdileri için apikey:<api-key-uuid> formunu kullanın.
fromISO 8601createdAt (UTC) için dahili alt sınır.
toISO 8601createdAt (UTC) için dahili üst sınır.
pageinteger11 tabanlı sayfa indeksi.
pageSizeinteger50200 ile sınırlıdır. 1–200 dışındaki değerler 50'e düşer.

Yanıt

{
  "items": [
    {
      "id": "0e7a3b4c-9d2f-4e1a-b6c8-2c4f8d5a1e90",
      "createdAt": "2026-05-29T13:42:11.318Z",
      "actorEmail": "apikey:7d8a3e0b-4f12-4cd6-b9e1-21f6cf5d4a73",
      "actorRole": "api_key",
      "action": "assignment.created",
      "targetType": "assignment",
      "targetId": "b1d8c2a0-7e34-4f9a-9d51-8e2c91a4f607",
      "targetLabel": "jane.smith@acme.com / SQL Injection",
      "metadata": "{\"topicId\":\"sql-injection\",\"deadlineDays\":14}",
      "ipAddress": "203.0.113.42"
    },
    {
      "id": "ba98c9d4-5f60-4b21-9c0e-3f72e1b58a44",
      "createdAt": "2026-05-29T13:41:08.902Z",
      "actorEmail": "amelia.ng@acme.com",
      "actorRole": "org_admin",
      "action": "user.invited",
      "targetType": "user",
      "targetId": "c4f1d22a-83b7-4d2c-9a01-7e6b5d1f9c33",
      "targetLabel": "jane.smith@acme.com",
      "metadata": null,
      "ipAddress": "203.0.113.7"
    }
  ],
  "total": 2841,
  "page": 1,
  "pageSize": 50
}
  • metadata bir JSON dizgisidir (nesne değil). Client tarafında ayrıştırın; yapı eyleme göre değişir.
  • total tüm filtrelenmiş sayımı yansıtır, yalnızca mevcut sayfayı değil — sayfa sayısını türetmek için pageSize'a bölün.
  • User-agent ve diğer istek header'ları adli analiz için sunucu tarafında saklanır ama bu yanıtta dönmez.

Örnek

curl -sS \
  -H "Authorization: Bearer $SCH_API_KEY" \
  "https://api.limeplate.com/api/public/v1/audit-log?from=2026-05-01T00:00:00Z&pageSize=200"

Benzersiz eylemleri listele

Kurumunuz için şimdiye kadar kaydedilmiş her eylem adını alfabetik sırada döner. Liste kuruma özeldir — yeni bir kiracı, olaylar akmaya başlayana kadar boş bir dizi döner.

GET /api/public/v1/audit-log/actions
Authorization: Bearer scs_live_…

Yanıt

[
  "apikey.created",
  "apikey.revoked",
  "assignment.completed",
  "assignment.created",
  "course.published",
  "sarif.ingested",
  "user.invited",
  "user.role_changed",
  "webhook.created"
]

Örnek

curl -sS \
  -H "Authorization: Bearer $SCH_API_KEY" \
  https://api.limeplate.com/api/public/v1/audit-log/actions

SIEM'e gönderme

Tipik desen, /audit-log'i bir cron üzerinde yoklamak; from parametresini içeri aldığınız son createdAt'a eşitlemek ve items.length < pageSize olana kadar sayfalarda yürümektir. Sonuçlar en yeniden eskiye sıralı olduğundan, artımlı bir çekici aşağı akış sırasını kronolojik tutmak için sayfayı emitlemeden önce ters çevirmelidir. v1'de akışlı denetim webhook'u yoktur — belirli olaylara düşük gecikmeli tepki vermeniz gerektiğinde denetim yoklamasını Webhook'lar altında belgelenen hedeflenmiş alan webhook'larıyla eşleştirin.