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
| Kategori | Neyi kapsar |
|---|---|
persona | Persona 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ı |
billing | Plan değişikliği, ödeme yöntemi güncellemeleri |
webhooks | Webhook 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ü:
- Haftalık inceleme — geçen haftanın
persona.refinedvepersona.forkedolaylarını listele. - Soul / Self değişikliklerini işaretle — bunlar kanonik karakteri etkiler, inceleme gerekir.
- Mask refine'larını kanal eşlemesine göre grupla — hangi kanal hangi varyantı kullanıyor görünür kalır.
- Aylık uyumluluk arşivi — denetim 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:
| Plan | Varsayılan saklama |
|---|---|
| Pro | 1 yıl |
| Team | 1 yıl |
| Enterprise | 7 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
Yıllık uyumluluk incelemeleri için imzalı dışa aktarma görevi, karma zincir doğrulaması.
Denetim kaydının uyumluluk inceleme akışına bağlanma desenleri.
Persona oluşturma + refine sırasında otomatik koşan denetim hattı.
Denetim olaylarını gerçek zamanlı yakalamak için webhook abonelikleri.