Yayına Alma (Go-Live) Kontrol Listesi

Test mağazasında doğruladığın eklentiyi üretime taşırken değişenler (base URL, limitler, billing) ve yayın öncesi/sonrası kontrol listesi. DEV ile PROD bilinçli olarak farklıdır — bu sayfa geçişte atlanmaması gerekenleri tek yerde toplar.

DEV → PROD: ne değişir?

KonuDEV (test)PROD (canlı)
Base URLhttps://sandbox.plugins.restomenum.apphttps://plugins.restomenum.app
Rate limit (okuma)5 / dk + 200/gün cap120 / dk (günlük cap yok)
Kurulumdev store — yalnız kendi eklentilerin, billing kapalımarketplace'ten gerçek tenant — ücretli plan varsa checkout/trial akışı işler
Webhook teslimiaynı sözleşme: imza, 10 sn timeout, 6 retry, breaker (Teslim Sağlığı)
Base URL'i koddan değil yapılandırmadan al — sandbox URL'i üretim build'ine gömülü kalması en sık go-live hatasıdır. Aynı şekilde client_secret /webhookSecret / apiKey asla repo'ya girmemeli; ortam değişkeni/secret yöneticisinden gelmeli.

Yayın öncesi kontrol listesi

  • İmza doğrulama: webhook + hook + action isteklerinde HMAC imzasını ham gövde üzerinde, timing-safe karşılaştırma ve ±5 dk toleransla doğruluyorsun; geçersiz imzaya 401 dönüyorsun.
  • Idempotency: envelope id ile dedup var — retry'da aynı event iki kez işlenmiyor (/webhook alıcısı).
  • Hızlı 2xx: webhook handler'ın ağır işi kuyruğa atıyor; 10 sn timeout'a takılmıyor (Limitler).
  • Minimal scope: manifest'te yalnız kullandığın scope'lar var; PII scope'ları (customers:read, users:read) için gerekçen net — inceleme hızlanır (Scope Referansı).
  • Custom UI varsa: her iframe sayfan frame-ancestors CSP'sini panel kaynaklarıyla — frame-ancestors https://app.restomenum.com https://test-restomenu.web.app http://localhost:* https://localhost:* http://127.0.0.1:* https://127.0.0.1:* (sabit origin'ler + offline/yerel kurulum) — sınırlıyor ve App Bridge kuralları tamam (iframe Güvenliği) — inceleme bunu otomatik denetler, eksikse onay reddedilir.
  • Hook/gate varsa: timeout'lar gerçekçi (5 sn içinde yanıt) ve failMode bilinçli seçilmiş (Hook'lar).
  • 429 stratejin hazır: üstel backoff + jitter (örnek desen).
  • Sürüm notu: önceki sürüme göre scope/event değişikliklerini sürüm notunda açıkladın (Versiyonlama) — yeni scope isteyen sürüm tenant'ta yeniden onay gerektirir.
  • Yayıncı kullanıcı adın: eklentin marketplace'te @kullanıcıadı yayıncı kimliğiyle listelenir. Portalda Hesap sayfasından kontrol et — kullanıcı adı global benzersizdir ve bir kez seçilir, sonrasında kilitlenir (değişiklik için destek talebi). Kaydolurken seçmediysen görünen adından otomatik türetilmiştir; ilk yayından önce istediğin hâle getir.

Yayın sonrası: izleme & sağlık

  • Teslim loglarını izle: portalda eklentinin Loglar sayfası teslim durumu/HTTP kodu/retry'ları gösterir — ilk hafta düzenli bak.
  • delivery.* lifecycle'larını işle: delivery.degraded / delivery.disabled sinyalleri endpoint'inin sağlığını bildirir; 72 saat kuralına takılmadan müdahale et (Teslim Sağlığı & Politikası).
  • Kurtarma yolunu bil: teslim durduysa endpoint'i düzelt → portaldan test event gönder / yeniden etkinleştir — başarılı teslim breaker'ı sıfırlar.
  • Changelog takibi: kırıcı olabilecek platform değişiklikleri Değişiklik Günlüğü'nde duyurulur.
Sorun mu var? Portaldaki Destek bölümünden ticket aç — eklenti/sürüm bağlamıyla birlikte gönder.