Kimiko Lisans SDK · 1.0
Next.js Sunucu Entegrasyonu
Revizyon 1 · 10.08.2026
Kimiko SDK'yı Client Component içine veya use client işaretli bir modüle aktarmayın. Lisans kararı sunucu sınırında verilmelidir.
Sunucuya özel modül
import "server-only";
import { licenseClient } from "@/lib/licensing/client";
export async function requireLicensedFeature(feature: string) {
const lease = await licenseClient.getCachedLease({ allowGrace: true });
if (!lease || lease.payload.status !== "ACTIVE") {
throw new Error("LICENSE_REQUIRED");
}
if (lease.payload.entitlements[feature] !== true) {
throw new Error("FEATURE_NOT_ENTITLED");
}
return lease;
}Route Handler veya Server Action, ücretli işlemi yapmadan hemen önce bu fonksiyonu çağırabilir. Kullanıcıya ham lease veya entitlement nesnesini göndermeyin; yalnız gereken izin kararını kullanın.
Zamanlanmış yenileme
Validate ve heartbeat çağrılarını her sayfa isteğinde çalıştırmayın. Ayrı cron/worker süreci kullanın. Worker başarısız olduğunda mevcut doğrulanmış lease, imzalı süre sınırları içinde çalışmaya devam edebilir.
Cache konumu
Cache dosyasını public klasörüne, statik export dizinine veya indirilebilir yedek konumuna koymayın. Serverless ortamda yerel disk kalıcı değilse veritabanı veya sır yöneticisi tabanlı atomik LeaseCache kullanın.