Uygulamayı aç
Moonborn — Developers

API key scope'ları

Bearer token'ları kısıtlayan 13 kanonik scope. Servis başı en-az-yetki key'leri çıkar.

Her Moonborn API key'i açık bir scope listesi taşır. Bir endpoint için gerekli scope'u eksik olan token'lar 403 forbidden döner.

Tam set

ScopeVerir
*Tüm scope'lar. Sadece Owner.
read:personasPersonaları listele, persona detay, lineage, DNA, voice oku
write:personasPersona yarat, refine et, fork'la, archive'le, restore et
read:chatChat oturumlarını listele, mesaj + memory oku
write:chatOturum başlat, mesaj gönder, oturum sonlandır
read:marketplaceMarketplace listing'lerini, koleksiyonları listele + oku
write:marketplaceListing'leri publish, fork, install, review
read:billingSubscription, fatura, ödeme yöntemi, usage oku
read:auditAudit log giriş'lerini oku
read:webhooksWebhook'ları, delivery'leri listele
write:webhooksWebhook yarat, güncelle, sil; delivery replay
read:configConfig item'larını, snapshot'ları, definition'ları oku
write:configConfig item yaz, item'ları kilitle, snapshot restore et

En-az-yetki pattern'leri

ServisScope'lar
Read-only dashboardread:personas, read:chat, read:audit
Gecelik sync worker'ıread:personas, read:chat, write:webhooks
Bir CI kalite gate'iread:personas, write:personas (audit re-run'ları için)
Bir finans ETL'iread:billing
Bir compliance archiverread:audit, read:config
Persona-generation workerwrite:personas, read:personas

Servis başı ayrı key çıkar. Production workload'ları arasında bir master key'i yeniden kullanma.

Scope'lu bir key çıkarmak

const key = await client.apiKeys.createApiKey({
  name: 'CI quality gate',
  scopes: ['read:personas', 'write:personas'],
  expiresAt: '2027-01-01T00:00:00Z',
});
 
console.log(key.plaintext);
// ⚠ Tam olarak bir kez döner. Hemen sakla; sonra elde edilemez.

IP allowlist

Ekstra bir katman için bir key'i IP allowlist ile eşle:

await client.apiKeys.updateApiKey({
  id: key.id,
  ipAllowlist: ['203.0.113.0/24'],
});

Allowlist dışındaki request'ler scope'tan bağımsız 403 forbidden döner.

Rotation

await client.apiKeys.rotateApiKey({ id: key.id });

Yeni bir plaintext döner; eski key konfigüre edilmiş grace period süresince geçerli kalır (api.api_keys.rotation_grace_minutes, default 60). Tüketicileri güncelle, sonra eski key'i expire et.

Tarif

  • 5 key'e kadar: Free.
  • Sınırsız key: Pro.
  • Custom scope'lar / IP allowlist / rotation grace tuning: Team+.
  • Org başı scope inventory (custom scope'lar): Enterprise.

Dürüst kapsam

API key scope'ları API erişimini kısıtlar. Workspace-seviyesi RBAC role'ler ürün içindeki kullanıcı aksiyonlarını kısıtlar. Çakışırlar — Viewer-role bir kullanıcı tarafından çıkarılan bir write:personas key'i, key'in scope'una ek olarak Viewer'ın read kısıtlamalarını miras alır.