Yapılandırma
Her Kazzle uygulamasının proje kökünde birkazzle.config.ts dosyası vardır. Bu dosya uygulamanızın içeriğini tanımlar — bileşenler, beceriler ve meta veriler.
Hızlı başlangıç
import { defineConfig } from '@kazzle/app';
export default defineConfig({
components: [
{ name: 'My App', type: 'ui', path: '.' }
]
});
defineConfig yardımcısı TypeScript otomatik tamamlama ve doğrulama sağlar. Türler her şablonda bulunan @kazzle/app paketinden gelir.
Üst düzey alanlar
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
name | string | hayır | Uygulama kataloğunda gösterilen pazarlama görüntü adı. Atlanırsa slug’a geri döner. |
subtitle | string | hayır | Katalogda uygulama adının altında gösterilen kısa tek satırlık etiket (örn. “Mac uygulamalarını Kazzle’dan kontrol edin”). Yayınlamak için gerekli — atlanırsa yayınlama başarısız olur. |
version | string | hayır | Yazar tarafından ayarlanan sürüm etiketi (örn. “1.2.0”). Yalnızca görüntüleme amaçlı; yayınlandığında anlık görüntü alınır ve klonlarda çatallanmış sürüm olarak gösterilir. |
icon | string | hayır | Repo kökü göre uygulama simgesi dosyasının yolu (png, jpg, svg, webp, ico). Yayınlandığında CDN’ye yüklenir. |
accentColor | string | hayır | İsteğe bağlı marka vurgu rengi hex dizesi olarak (örn. “#3b82f6”). Uygulama simgesi yongasını ve detay kahramanını tinter. Atlanırsa vurgu simgeden otomatik olarak örneklenir. |
kazzleAuth | "optional" | "required" | hayır | Uygulama başlatma yüzeyi için kimlik doğrulama kapısı — “optional” (Kazzle kullanıcısı varsa kimlik sağlanır) veya “required” (görüntülemek için oturum açmış Kazzle kullanıcısı olmalı). |
launchUrl | string | hayır | Uygulamaya tıklandığında Kazzle içinde açılan tam URL, olduğu gibi kullanılır. Atlanırsa başlatma yüzeyi UI bileşeninin dağıtılmış önizleme URL’sidir. |
webhookUrl | string | hayır | Kazzle’ın app.installed / app.uninstalled üzerine POST yaptığı yayıncı uç noktası (yükleme anahtarını teslim eder). |
appLogin | boolean | hayır | Bu uygulama için son kullanıcı girişi (@kazzle/app/auth aracılığıyla — bugün Google). kazzleAuth’tan farklı (başlatma yüzeyinin Kazzle hesabı kapısı); appLogin uygulamanın KENDİ kullanıcıları, kendi veritabanında depolanır. İşlem + veritabanı gerektirir. |
components | object[] | hayır | Yürütülebilir bileşenler — UI ön uçları veya arka plan işlemleri |
skills | object[] | hayır | YZ beceri tanımları — YZ’nin alan bilgisi için okuduğu markdown dosyaları |
capabilities | object | hayır | Kısayol tuşları, bildirimler ve durum çubuğu varlığı gibi isteğe bağlı masaüstü entegrasyon özellikleri |
Bileşen alanları
components[] içindeki her giriş:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
name | string | evet | Uygulama içinde benzersiz bileşen adı |
type | "ui" | "process" | evet | Bileşen türü — ui (maks 1) veya process |
path | string | evet | Uygulama dizini içinde giriş yolu |
runtime | object | hayır | Komutlar ve isteğe bağlı env geçersiz kılmaları: { dev?, prod? } |
runtime.dev.command | string | hayır | Dev sunucusunu başlatma komutu (örn. "bun run dev") |
runtime.dev.env | object | hayır | Yalnızca dev env geçersiz kılması. Bileşen env’ye geri döner. |
runtime.prod.command | string | hayır | Üretimde başlatma komutu (örn. "bun run start") |
runtime.prod.build | string | hayır | Üretim için derleme komutu (örn. "vite build") |
runtime.prod.env | object | hayır | Yalnızca üretim env geçersiz kılması. Bileşen env’ye geri döner. |
schedule | string | hayır | İşlem bileşenleri için Cron zamanlaması (örn. "*/5 * * * *") |
trigger | "webhook" | "event" | hayır | İşlem bileşenleri için tetikleme modu |
env | object | hayır | Gizli koleksiyonu + env var enjeksiyonu için ortam |
env.collection | string | evet (env varsa) | Gizli koleksiyonu slug’u |
env.environment | string | evet (env varsa) | Ortam slug’u |
env.include | string[] | hayır | Yalnızca bu env var adlarını enjekte et. Atlanırsa koleksiyondan + ortamdan tümünü enjekte et. |
Beceri alanları
skills[] içindeki her giriş:
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
name | string | evet | Beceri adı |
path | string | evet | SKILL.md dosyasının uygulama köküne göre yolu |
Kısıtlamalar
- Uygulama başına maksimum 1 UI bileşeni
- Bileşen
namedeğerleri uygulama içinde benzersiz olmalıdır
Şablon örnekleri
ai app
import { defineConfig } from '@kazzle/app';
export default defineConfig({
/** Tek satırlık katalog etiketi. Yayınlamak için gerekli. */
subtitle: 'My App',
icon: 'components/ui/public/favicon.svg',
components: [
{ name: 'ui', type: 'ui', path: './components/ui' },
{ name: 'server', type: 'process', path: './components/server/index.ts', runtime: { dev: { command: 'bun run dev' }, prod: { command: 'bun run start' } } },
],
});
login app
import { defineConfig } from '@kazzle/app';
export default defineConfig({
/** Tek satırlık katalog etiketi. Yayınlamak için gerekli. */
subtitle: 'My App',
icon: 'components/ui/public/favicon.svg',
/** Son kullanıcı girişi (Kazzle aracılığıyla Google). Kullanıcılar bu uygulamanın kendi veritabanında yaşar. */
appLogin: true,
components: [
{ name: 'ui', type: 'ui', path: './components/ui' },
{ name: 'server', type: 'process', path: './components/server/index.ts', runtime: { dev: { command: 'bun run dev' }, prod: { command: 'bun run start' } } },
],
});
ui db app
import { defineConfig } from '@kazzle/app';
export default defineConfig({
/** Tek satırlık katalog etiketi. Yayınlamak için gerekli. */
subtitle: 'My App',
icon: 'components/ui/public/favicon.svg',
components: [
{ name: 'ui', type: 'ui', path: './components/ui' },
{ name: 'server', type: 'process', path: './components/server/index.ts', runtime: { dev: { command: 'bun run dev' }, prod: { command: 'bun run start' } } },
],
});