Uygulamayı aç
Moonborn — Developers

Marka ekibi için denetim izi oku

Persona oluştur / refine / fork / arşivle eylemlerinin tamamını "kim ne zaman ne yaptı" sorusuna cevap verecek şekilde denetim kaydından filtrele.

Marka yönetişimi çoğu zaman "kim hangi karakterin sesini ne zaman değiştirdi?" sorusuna bir yanıt ister. Moonborn denetim kaydı bu sorunun yanıtını taşır — değiştirilemez, karma-zincirli, kategori bazlı filtrelenebilir.

Bu rehber marka kalite kontrol (QA) akışına odaklı bir denetim izi (audit trail) çıkarır: persona olaylarını filtreler, hangi kullanıcının hangi mutasyonu yaptığını okur, ve refine / fork ile değişen Mask katmanlarını PR inceleme akışına benzer biçimde gözden geçirir.

Bu rehberi bitirdiğinde

  • Denetim kaydını kategori ve eyleyen (actor) bazında filtreleyebileceksin.
  • Bir persona'nın mutasyon geçmişini baştan sona okuyabileceksin.
  • Refine ve fork olaylarının yükünden hangi katmanın değiştiğini çıkarabileceksin.
  • Marka-kritik kalite kontrol akışlarına denetim izini bağlayabileceksin.
  • Karma zincirini doğrulamak gerektiğinde dışa aktarma rehberine yönlenebileceksin.

Ön koşul: API anahtarı + read:audit yetkisi, en az bir persona, marka çalışma alanı.

1. Persona kategorisindeki olayları filtrele

Marka yönetişimi için en yararlı kategori persona'dır — oluşturma, refine, fork, arşivleme, geri yükleme eylemlerini kapsar.

const events = await client.audit.events.list({
  workspaceId: 'ws_...',
  category: 'persona',
  limit: 50,
});
 
for (const e of events.data) {
  console.log(
    `${e.occurredAt}  ${e.actor.email.padEnd(30)}  ${e.action.padEnd(20)}  ${e.target.id}`,
  );
}

Kategori kataloğu

KategoriNeyi kapsar
personaPersona oluştur, refine, fork, arşivle, geri yükle
configÇalışma alanı ve organizasyon yapılandırma maddesi değişiklikleri
rbacÜyelik, rol atama, davet olayları
billingPlan değişikliği, ödeme yöntemi güncellemeleri
webhooksWebhook oluştur, güncelle, sil, yeniden gönder

2. Belirli bir eyleyeni (actor) izle

Bir kullanıcının marka çalışma alanında yaptığı tüm değişiklikleri görmek için:

const events = await client.audit.events.list({
  workspaceId: 'ws_...',
  actorUserId: 'user_01H...',
  limit: 100,
});

3. Bir persona'nın tam geçmişini oku

Tek bir persona'nın oluşturulmasından bugüne tüm olaylar:

const history = await client.audit.events.list({
  workspaceId: 'ws_...',
  targetId: 'per_01H...',
  limit: 200,
  orderBy: 'occurred_at_asc', // eski → yeni
});
 
for (const e of history.data) {
  console.log(`${e.occurredAt}  ${e.action}`);
  if (e.action === 'persona.refined') {
    console.log(`  layer: ${e.payload.refine.layer}`);
    console.log(`  axis:  ${e.payload.refine.axis}`);
    console.log(`  amount: ${e.payload.refine.amount}`);
  }
}

Beklenen çıktı (kısaltılmış):

2026-05-01T10:00:00Z  persona.created
2026-05-03T14:30:00Z  persona.refined
  layer: mask
  axis: warmer
  amount: 0.3
2026-05-08T09:15:00Z  persona.forked
2026-05-12T11:00:00Z  persona.refined
  layer: mask
  axis: more-authoritative
  amount: 0.4

4. Refine olayından hangi katmanın değiştiğini çıkar

persona.refined olayının yükü hangi katmanın ne kadar değiştiğini taşır:

{
  "id": "evt_01H...",
  "action": "persona.refined",
  "target": { "kind": "persona", "id": "per_01H..." },
  "actor": { "kind": "user", "email": "lead@brand.co" },
  "occurredAt": "2026-05-03T14:30:00Z",
  "payload": {
    "refine": {
      "layer": "mask",
      "axis": "warmer",
      "amount": 0.3,
      "note": "Community variant — softer tone for Discord channel"
    },
    "before": { "voiceFingerprintId": "vfp_a..." },
    "after":  { "voiceFingerprintId": "vfp_b..." }
  }
}

Marka kalite kontrol incelemesinde dikkat edilecek alanlar:

  • layer — Soul / Self'in değişmesi marka DNA'sını etkiler; Mask / Surface değişiklikleri kanal varyantı sayılır.
  • axis + amount — refine yönünün şiddeti.
  • note — eyleyenin refine nedenini açıkladığı serbest metin.

5. Sayfalama

Aktif çalışma alanlarında 50–100 olay sınırı sıklıkla kullanılır; tam tarih aralığı için imleçle (cursor) sayfa sayfa oku:

let cursor: string | undefined;
const all = [];
 
do {
  const page = await client.audit.events.list({
    workspaceId: 'ws_...',
    category: 'persona',
    limit: 200,
    cursor,
  });
  all.push(...page.data);
  cursor = page.nextCursor;
} while (cursor);

6. Kalite kontrol akışına nasıl bağlanır

Tipik marka kalite kontrol döngüsü:

  1. Haftalık inceleme — geçen haftanın persona.refined ve persona.forked olaylarını listele.
  2. Soul / Self değişikliklerini işaretle — bunlar kanonik karakteri etkiler, inceleme gerekir.
  3. Mask refine'larını kanal eşlemesine göre grupla — hangi kanal hangi varyantı kullanıyor görünür kalır.
  4. Aylık uyumluluk arşividenetim kaydı dışa aktarımı ile JSONL arşiv çıkar, kendi depolamanda tut.

Saklama süresi (retention)

Denetim kaydı saklama süresi plana bağlıdır:

PlanVarsayılan saklama
Pro1 yıl
Team1 yıl
Enterprise7 yıl

privacy.retention.audit_log_years yapılandırma maddesi plan tabanını geçersiz kılabilir (yalnızca Enterprise).

Plan gereksinimi

  • Denetim kaydı okuma: her plan.
  • Dışa aktarım + karma zincir doğrulaması: Team ve üzeri.

İlgili

Denetim kaydını dışa aktar

Yıllık uyumluluk incelemeleri için imzalı dışa aktarma görevi, karma zincir doğrulaması.

Open →
Denetim + uyumluluk kullanım senaryosu

Denetim kaydının uyumluluk inceleme akışına bağlanma desenleri.

Open →
Audit + provocation testleri

Persona oluşturma + refine sırasında otomatik koşan denetim hattı.

Open →
Webhook olay kataloğu

Denetim olaylarını gerçek zamanlı yakalamak için webhook abonelikleri.

Open →