P4: Site Hub CMS
DetayVersiyon: 1.1.0 · Durum: Onaylandı — ilk deploy admin.customremap.com
Müşteri tuning sitelerinin içerik yönetim katmanıdır. Filament admin paneli admin.{domain} subdomain’inde çalışır; landing Astro instance’ı Hub Content API’den okur.
Kapsam
Bölüm başlığı “Kapsam”Kapsam içi
Bölüm başlığı “Kapsam içi”| Fonksiyon | Açıklama |
|---|---|
| İçerik CRUD | Sayfalar, slider, blog, FAQ, services, contact blokları |
| Site kaydı | Site slug, domain, locale, tema ayarları |
| Content API | Landing tüketicileri için read-only JSON endpoint’leri |
| Revalidation webhook | Admin kaydı → landing cache bust (~5 sn) |
| Medya | Upload, CDN path, Filament media library |
Kapsam dışı
Bölüm başlığı “Kapsam dışı”- Kendi marka Next.js admin (
/admindahili) — P1 modeli - Müşteriye Hub kaynak kodu teslimi
- Portal iş akışları (dosya upload, kredi) — P5/P6
Teknik model
Bölüm başlığı “Teknik model”Kod tabanı: reprocarspain admin + Filament yapısı alınır (D-030). Site başına deploy modeli:
admin.customremap.com customremap.com├── Laravel + Filament ├── Astro 5 landing├── PostgreSQL (site DB) └── Content API consumer└── POST webhook ──────────────► revalidate tags| Bileşen | Spec |
|---|---|
| Admin URL | admin.{musteri-domain} |
| Framework | Laravel + Filament 3 |
| API prefix | GET /api/v1/sites/{slug}/* |
| Revalidation | POST /api/v1/webhooks/revalidate — tag bazlı |
| SLA hedefi | Admin kayıt → ziyaretçi görür: ~5 saniye (ADR-002: Anlık İçerik Yayını (Revalidation)) |
| Fallback | Retry queue (3 deneme) + Filament’te manuel cache temizle |
Content API (planlanan sözleşme)
Bölüm başlığı “Content API (planlanan sözleşme)”| Endpoint | Amaç |
|---|---|
GET /api/v1/sites/{slug}/homepage | Ana sayfa blokları |
GET /api/v1/sites/{slug}/blog | Blog listesi |
GET /api/v1/sites/{slug}/blog/{id} | Tek yazı |
GET /api/v1/sites/{slug}/services | Hizmet listesi |
POST /api/v1/webhooks/revalidate | Cache invalidation |
OpenAPI spec zorunluluğu: Mimari Backlog BL-004.
Blog revalidation kuralları
Bölüm başlığı “Blog revalidation kuralları”Yayınlanan yazı: blog + blog:{id} tag revalidate. Taslak kayıt revalidate tetiklemez. Silme işlemi blog listesi tag’ini yeniler.
İş modeli
Bölüm başlığı “İş modeli”Hub YGT Labs operasyonunda kalır; müşteri yalnızca Filament UI erişimi alır. Teslim senaryosunda landing repo + içerik dump verilir; admin backend verilmez.
İlk müşteri: customremap.com (admin.customremap.com). reprocarspain referans olarak kalır; yeni müşteriler Hub + Astro fabrikasından üretilir.
Deploy ve backlog
Bölüm başlığı “Deploy ve backlog”| ID | İş | Durum |
|---|---|---|
| BL-002 | Site Hub repo/deploy modeli (OD-001) | in_progress |
| BL-004 | Content API OpenAPI | open |
| BL-007 | Revalidation SLA ölçümü | open |
| OD-001 | Composer package adı / repo yapısı | Kısmen çözüldü |
Geçici kabul: site başına reprocar admin kopyası; ileride paylaşımlı Hub paketi hedeflenir.
İlgili okuma
Bölüm başlığı “İlgili okuma”- P2: Müşteri Landing Fabrikası — Astro tüketici
- ADR-002: Anlık İçerik Yayını (Revalidation)
- Açık Kararlar OD-001