> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# İçerik yönetimi

Serbest yaşam döngüsü ve herkese açık okuma sınırı olan türlendirilmiş CMS girdileri.

## Başlangıç seviyesinde izlenecek yol

Önkoşullar: Aşağıdaki iki başlangıç kılavuzunu okuyun, Web yerel kurulumunu tamamlayın ve bu monorepo'yu düzenleyicinizde kökünden açın. Web ayarları `apps/web/.env.local`'ye aittir; Next.js, `.env` kökünü okumaz. Varsayılan sahte modda `/dashboard`, veritabanı olmayan bir demodur; `/auth`'nin taşınan bir veritabanına ihtiyacı var.

Kısa terimler: Çalışma alanı, bir ekibin ayrı kullanıcıları, verileri ve ayarlarıdır. Sunucu güvenilir arka uçtur; sağlayıcı anahtarlarını tarayıcı ve telefon kodundan uzak tutun. Geçiş, tabloları oluşturan veya güncelleyen sürümlü bir veritabanı değişikliğidir. Yapay zeka modeli yanıt veren motordur; model kataloğu, sunucunun mevcut model kimlikleri ve fiyatlarının listesidir. Sağlayıcı yapay zeka, e-posta veya faturalandırma hizmeti gibi bir dış hizmettir. Yetki, bir çalışma alanının bir özelliği kullanmasına olanak tanıyan bir yetkidir. Web kancası, bir hizmetin başka bir hizmetin URL'sine gönderdiği bir mesajdır.

1. Çalışma alanı sahibi veya yöneticisi olarak oturum açın, `/content`'yi açın ve benzersiz bir bilgi içeren bir gönderi, sayfa, belge veya rapor oluşturmak için formu kullanın. Taslak olarak kaydedin ve yayınlayın.

2. Durum değişikliklerini yayınlandı olarak onaylayın; yinelenen bir bilgi veya yönetim erişimi olmayan üye başarısız olmalıdır.

3. Geçitli test için `required_entitlement=ai.reference-task`'yi kullanın; doğrulanmış bir bağış olmadan sayfanın yalnızca teaser'ını göstermesi gerekir.

Özel kod için, sağlanan `prompts/README.md` ile başlayın ve en yakın istemi kopyalayın: Bir uygulama ekranı için `prompts/new-app-screen.md` veya genel bir sayfa için `prompts/new-landing-page.md`. Sunucu, veritabanı veya sağlayıcı çalışması için kodlama temsilcinize bu kılavuzun görevini verin ve ondan `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` ve eşleşen `.ai/` aynalarını okumasını isteyin; burada adı geçen kaynak dosyaların tamamını inceleyin; düzenlemeden önce dosyaları ve kontrolleri listeleyin; çalışma alanı sahipliğini ve yalnızca sunucuya ait sırları koruyun; ve size farkı göstereceğim. İstediğiniz davranışı, giriş ve çıkış alanlarını, izin verilen rolleri, beklenen başarıyı ve hataları ve test hesabını, sağlayıcıyı veya cihazı ona bildirin. Örnek değerleri kullanın; asla gerçek bir sırrı yapıştırmayın.

[Başlamadan önce](https://supastack.dev/tr/docs/web/before-you-start.md)

[Terminal temelleri](https://supastack.dev/tr/docs/web/terminal-basics.md)

[Web yerel kurulumu](https://supastack.dev/tr/docs/web/ship-in-5-minutes.md)

[Aracı istemleri ve proje belleği](https://supastack.dev/tr/docs/web/agents.md)


## Çalışma alanı girişleri oluşturma

`/content` yöneticisi `post`, `page`, `doc` ve `report` girişlerini yönetir. `content_entry` satırlarında taslak/yayınlanmış/arşivlenmiş durum, çalışma alanı kapsamlı bilgiler ve yazarlık bulunur. Yönetim eylemleri uygun sahip/yönetici rolünü gerektirir.

Bu CMS, kitin `src/resources`'deki genel docs/blog kataloğundan ayrıdır. Bir ürün, CMS girişlerini kendi sayfa kompozisyonu aracılığıyla işleyebilir.


## Cesedi sunucuya aktarın

`required_entitlement` null yapılabilir: ayarlanmamış girişler kontrol edilmez. Geçitli girişler için, yalnızca sunucuya yönelik `content-queries.ts`, okunabilir içerik veya boş gövdeli kilitli bir teaser yansıtır. `content-access.ts` projeksiyonun sahibidir; Müşteri tarafından sağlanan yetki talebine asla güvenmeyin.

Yayınlama `content.published`'yi yayar; planlanmış özetler, yayıncı ekibinin son girişlerini özetleyebilir. Yazılan içerik aynı zamanda hesap aktarımına da katılır.


## Yayınlamayı ve erişimi doğrulayın

Taslak görünürlüğünü, yayınlama/arşivleme geçişlerini, yinelenen bildirimleri, yanlış çalışma alanını, ücretsiz girişleri ve etkin olmayan ücretli hibeleri test edin. Sunucu erişimden sorumlu olmaya devam ederken sunum için ödeme duvarı bloğunu kullanın.

[Ücretli içerik eğitimi](https://supastack.dev/tr/docs/web/setup-ai.md)

[İçerik özetleri](https://supastack.dev/tr/docs/web/project-structure.md)

[Ödeme duvarı sunumu](https://supastack.dev/tr/docs/web/project-structure.md)


## Kurulum ve yapılandırma

/content çalışma alanı yüzeyi CMS girdilerini yönetir — post, page ve doc önerilen türlerdir, ancak sütun URL-güvenli herhangi bir ürün türünü kabul eder (küçük harf, rakam, tire, alt çizgi, en fazla 64 karakter). content_entry tablosu her satırı workspaceId ile sınırlar, createdBy damgalar ve slug'ları çalışma alanı ve tür başına benzersiz tutar.

Girdiler serbest bir draft ↔ published ↔ archived yaşam döngüsü izler — src/content.ts içindeki evaluateContentStatusChange geçersiz veya değişmemiş geçişleri reddeder ve publishedAt ilk yayınlamada damgalanır, sonraki yayından kaldırmalarda da kalır; böylece okuyucular özgün tarihi korur.

```
/content                    workspace CMS surface
src/content.ts              input + lifecycle rules
src/content-actions.ts      member+ mutations
content_entry               workspaceId, type, slug, status
```


## Uygulama iş akışı

Üye ve üzeri girdileri yazar — her mutasyon requireWorkspaceWriter (workspace-access.ts) üzerinden oturumu, etkin çalışma alanını ve en az üye rolünü çözer, böylece konuklar salt-okunur kalır. normalizeContentEntryInput yazmadan önce türü, 1–255 karakterlik başlığı ve URL-güvenli slug'ı doğrular.

listPublishedContentEntries bilinçli bir genel okuma sınırıdır: açık bir workspaceId alır, oturum gerektirmez ve yalnızca yayınlanmış satırları döndürür — vitrin sayfalarının, blogların ve dokümanların çalışma alanı içeriğini işlediği yoldur. Yayınlama bir content.published giden webhook'u çıkarır ve yazılan girdiler GDPR veri dışa aktarımına katılır.


## Doğrulama ve sorun giderme

Bir draft → publish → archive turu, aynı türde yinelenen bir slug ve çapraz çalışma alanı okuması deneyin. Genel sınırın asla taslak ya da başka bir çalışma alanının satırlarını döndürmediğini ve content.published'ın yayınlama eylemi başına bir kez tetiklendiğini doğrulayın.


## Sonraki

[E-ticaret](https://supastack.dev/tr/docs/web/commerce.md)
