# Norden Kamu Kataloğu — Yayın Kabul ve Geri Dönüş Kontrol Listesi

Tarih: 31 Ağustos 2026  
Kapsam: Müşteri ve tedarikçiye sunulan kamu kataloğu. Admin kapsam dışıdır.

## 1. Kabul durumu

- **Yerel production kabulü:** GEÇTİ.
- **Canlı deployment kabulü:** HENÜZ YAPILMADI.
- **Neden:** Canlı alan adı/CDN yanıtları ile gerçek kullanıcı Core Web Vitals verisi bu yerel çalışma ortamında ölçülemez.
- **Yayın kararı:** Yerel paket yayın adayıdır; canlı kabul maddeleri tamamlanmadan “nihai production onayı” verilmez.

## 2. Doğrulanmış katalog matrisi

| Seri | Yayımlanmış ürün | Ölçüler | Yüzeyler | Wok model | TR / EN / RU teknik sahne |
|---|---:|---|---|---:|---|
| Nero | 23 | 30 / 60 / 90 cm | Inox + Siyah Cam | 13 | 5/5 · 5/5 · 5/5 |
| Nexus | 23 | 30 / 60 / 90 cm | Inox + Siyah Cam | 13 | 5/5 · 5/5 · 5/5 |
| Swan | 23 | 30 / 60 / 90 cm | Inox + Siyah Cam | 13 | 5/5 · 5/5 · 5/5 |
| Elite | 23 | 30 / 60 / 90 cm | Inox + Siyah Cam | 13 | 5/5 · 5/5 · 5/5 |
| Nirvana | 23 | 30 / 60 / 90 cm | Inox + Siyah Cam | 13 | 5/5 · 5/5 · 5/5 |
| Mono | 12 | 30 / 60 / 90 cm | Siyah Cam | 8 | 5/5 · 5/5 · 5/5 |
| Vitroceramic | 4 | 30 / 45 / 60 / 90 cm | Ceran | 0 | 5/5 · 5/5 · 5/5 |

Ek kanıtlar:

- 272/272 yayımlanmış ürün görseli diskte mevcut.
- Siyah cam gaz + Wok, Inox gaz, hibrit gaz + Ceran ve Vitroceramic olmak üzere dört temel ürün tipi üç dilde 12/12 rota olarak açılıyor.
- Altı gaz serisinin her birinde bir adet 60 cm, fiziksel yüzeyi `Siyah Cam` olan 2+2 Ceran hibriti bulunuyor. `Ceran` keşif filtresi bu altı hibrit ile dört tam elektrikli Vitroceramic modeli, toplam 10 gerçek sonucu gösteriyor.
- 432/432 kamu HTML sayfası ve 769 benzersiz iç hedef temiz.
- Her teknik sahne kendi görselini taşıyor; yanlış kesinlik veren dekoratif parça işaretleri yok.

## 3. Otomatik kalite kapıları

Her yayın adayında sırayla çalıştırılacak:

1. `npm run lint`
2. `npm run build`
3. Production sunucusu üzerinde `npm run audit:release-acceptance`
4. `npm run audit:performance`
5. `npm run audit:public-regression`

31 Ağustos 2026 sonucu: beş kapı da temiz.

## 4. Yerel production başlıkları

Doğrulananlar:

- Dinamik HTML: `private, no-cache, no-store, max-age=0, must-revalidate`
- Katalog görsel/video/PDF: bir gün cache + yedi gün SWR
- Hashli Next.js varlıkları: bir yıl `immutable`
- `X-Content-Type-Options: nosniff`
- `X-Frame-Options: SAMEORIGIN`
- `Referrer-Policy: strict-origin-when-cross-origin`
- `Permissions-Policy: camera=(), microphone=(), geolocation=()`
- Production yapılandırmasında HSTS: `max-age=31536000; includeSubDomains`
- Production yanıtında `Content-Security-Policy-Report-Only`: aynı origin medya/PDF, Google Maps iframe ve temel belge/script/style sınırları

Sınır: HSTS ve diğer başlıkların gerçek etkisi yalnız HTTPS kullanan canlı alan adı/CDN yanıtında onaylanabilir. Katı Content-Security-Policy, PDF görüntüleyici ve Google Haritalar için ihlal testi yapılmadan zorla etkinleştirilmemiştir.

## 5. Canlı yayın öncesi açık kabul maddeleri

- [ ] Canlı alan adı ve deployment URL'si kesinleşti.
- [ ] Aynı denetimler `NORDEN_AUDIT_BASE_URL` canlı hedefe verilerek tekrar çalıştı.
- [ ] CDN/proxy başlıkları HTML, ürün görseli, video, PDF, `/_next/static` ve `/_next/image` üzerinde ölçüldü.
- [ ] Masaüstü ve mobil Lighthouse ölçümü gerçek deployment üzerinde kaydedildi.
- [ ] Gerçek kullanıcı Core Web Vitals verisi toplanmaya başladı; ilk veri penceresi dolmadan nihai performans onayı verilmedi.
- [ ] Gerçek iOS Safari ve Android Chrome üzerinde hero video, seri scrollytelling, ürün galerisi/zoom, PDF ve iletişim haritası kontrol edildi.
- [ ] `lib/export-markets.ts` ülke listesi Norden tarafından doğrulandı.
- [x] Yerel production CSP Report-Only ihlal turu ana sayfa/harita, katalog, Gallery, liste, seri ve ürün detayında temiz geçti.
- [ ] Aynı CSP Report-Only turu canlı HTTPS/CDN ve gerçek cihazlarda temiz geçtikten sonra kontrollü enforcement kararı verildi.

## 6. Yayın öncesi geri dönüş hazırlığı

- [ ] Önceki çalışan deployment/release kimliği kaydedildi.
- [ ] Yeni build çıktısından bağımsız önceki çalışan paket korunuyor.
- [x] Yerel yayın adayı `dev.db` yedeği alındı; kaynak/yedek hash eş ve SQLite bütünlüğü `ok`.
- [ ] Canlı yayın öncesi production veritabanı ve kullanıcı yüklemeleri ayrıca yedeklendi.
- [x] Yerel ortam değişkenlerinin isim listesi ve yapılandırma parmak izleri kaydedildi; gizli değerler rapora/arşive yazılmadı.
- [ ] Yeni yayında veri şeması değişikliği varsa geri dönüş uyumluluğu ayrıca doğrulandı.
- [ ] Yayın sorumlusu ve geri dönüş kararı verecek kişi belli.

## 7. Yayın sonrası hızlı kontrol

- [ ] TR / EN / RU ana sayfa ve koleksiyon merkezi HTTP 200.
- [ ] Yedi seri sayfası açılıyor; her birinde beş teknik sahne ve model şeridi var.
- [ ] Dört temsilî ürün tipi üç dilde açılıyor.
- [ ] `Yüzey / teknoloji > Ceran` filtresi altı hibrit ve dört tam elektrikli modeli gösteriyor; hibrit kartları `Siyah Cam · Gaz + Ceran` olarak ayrışıyor.
- [ ] Katalog PDF görüntüleniyor ve indiriliyor; sertifika sayfası sahte belge göstermiyor.
- [ ] Hero ana film `norden-main.mp4`; diğer filmler ilk HTML yüküne toplu sızmıyor.
- [ ] Gallery, iletişim formu/WhatsApp, Google Harita, robots ve sitemap çalışıyor.
- [ ] Görsellerde 404, yatay taşma, hydration/console hatası ve beklenmeyen tam ekran ışık yok.

## 8. Geri dönüş tetikleri

Aşağıdakilerden biri oluşursa yeni sürüm yayında tutulmaz:

- Kamu rotalarında sürekli 5xx veya temel ürün/seri rotalarında 404.
- Ürün görsellerinin, katalog PDF'sinin ya da ana videonun toplu yüklenmemesi.
- TR / EN / RU dil veya canonical eşleşmesinin bozulması.
- Sepete/satışa etkisi olmasa bile müşteriye yanlış teknik özellik, yüzey, ölçü veya seri gösterilmesi.
- Mobilde temel akışı engelleyen taşma, kilitlenme veya yüksek süreli ana-thread sorunu.
- Güvenlik/cache başlıklarının CDN tarafından tehlikeli biçimde değiştirilmesi.

## 9. Geri dönüş sırası

1. Yeni yayın trafiği durdurulur veya deployment sağlayıcısında önceki çalışan sürüm yeniden etkinleştirilir.
2. Veri değişikliği yoksa veritabanına dokunulmaz. Veri göçü yapıldıysa yalnız doğrulanmış yedekten ve belirlenmiş prosedürle geri dönülür.
3. CDN yalnız değişen uygulama/statik yollar için temizlenir; geniş ve kontrolsüz cache temizliği yapılmaz.
4. TR / EN / RU ana sayfa, yedi seri, dört temsilî ürün, katalog, robots ve sitemap hızlı kontrolü tekrar edilir.
5. Sorunun nedeni ve etkilenen sürüm kaydedilmeden yeni bir yayın denemesi yapılmaz.

Bu belge, canlı deployment bilgileri geldikçe tarih ve ölçüm kanıtlarıyla güncellenecektir.

## 10. Admin 2.0 canlı kabul kapısı - 1 Eylül 2026

Yerel panel uygulanmış olsa da aşağıdakiler tamamlanmadan `/admin` production proxy üzerinden açılmaz:

- [ ] İlk Ana Yönetici bootstrap'ı güçlü bcrypt hash ile yapıldı; düz `ADMIN_PASSWORD` production ortamında, repo ve Docker imajında yok; parola doğrulama verisi DB'de; 72 UTF-8 byte sınırı giriş, oluşturma, sıfırlama ve değiştirme akışlarında doğrulandı.
- [ ] `ADMIN_SESSION_SECRET` en az 32 bayt rastgele değer; repo, Docker imajı, log ve Obsidian'da yok.
- [ ] PostgreSQL migration ve SQLite aktarımı staging'de adet/ilişki kontrolünden geçti.
- [ ] Medya yüklemeleri kalıcı R2 anahtarlarına gidiyor; web container dosya sistemine güvenmiyor.
- [ ] Reverse proxy `/admin/login` ve upload rotasında oran ve istek boyutu sınırı uyguluyor.
- [ ] HTTPS cookie, no-store, noindex, 401/redirect ve bağımsız server-action yetkisi staging'de ölçüldü.
- [ ] `npm run admin:audit-rbac` staging üzerinde 26/26 geçti; test hesabı ve test oturumları temizlendi.
- [ ] VPN/IP allowlist uygulanacak mı; değilse TOTP/WebAuthn veya harici MFA katmanı kararı yazılı ve test edilmiş.
- [ ] Admin mutasyonundan önce otomatik DB yedeği ve başarısız yayın için restore prosedürü doğrulandı.
- [ ] En az bir ürün, seri, Gallery kaydı, ülke ve ana sayfa bölümü staging'de düzenlenip TR/EN/RU public çıktısı karşılaştırıldı.
