Kanallara genel bakış
Pushizo'nun desteklediği kanallar (Web Push, iOS, Android, Huawei, e-posta, SMS, WhatsApp, RCS, in-app, bildirim kutusu, Live Activities), sağlayıcıları ve kurulum gereksinimleri.
Her kanal app başına App ayarları → Kanallar ekranından ya da PUT /v1/apps/{app_id}/channels/{channel} (admin) ile yapılandırılır; POST …/validate sağlayıcıyla gerçek bağlantı testi yapar. Gizli alanlar (p8, servis hesabı, parola, API anahtarı) envelope encryption ile şifreli saklanır ve hiçbir yanıtta geri dönmez. Gerçek kimlik bilgisi yoksa her kanal simülasyon (mock) sağlayıcısıyla çalışır: teslimat hattı uçtan uca işler, mesaj cihaza gitmez.
Kanal (channel) | Sağlayıcı(lar) | Gerekenler | Abonelik ucu | Rehber |
|---|---|---|---|---|
web_push | VAPID (tarayıcı push servisleri) | Yalnızca etkinleştirme; subject | Tarayıcı aboneliği (PushSubscription) | Web Push |
ios_push | APNs HTTP/2 | .p8 (ya da .p12), Key ID, Team ID, Bundle ID, ortam | Cihaz token'ı | iOS Push |
android_push | FCM HTTP v1 | Firebase servis hesabı JSON'u | FCM token'ı | Android Push |
hms_push | Huawei Push Kit | App ID, client secret | HMS token'ı | Huawei HMS |
email | SMTP, Amazon SES, Resend | Sunucu/anahtar bilgileri, gönderici adresi (SPF/DKIM/DMARC) | E-posta adresi | E-posta |
sms | Twilio, Netgsm | Hesap bilgileri, gönderici numarası/başlığı | E.164 telefon | SMS |
whatsapp | Meta Cloud API, Twilio | İş hesabı, şablonlar | WhatsApp numarası | |
rcs | Twilio RCS | RCS gönderici (agent) | RCS uyumlu numara | RCS |
| In-app | — (SDK çizer) | Yok | Oturum/cihaz | In-app mesajlar |
| Bildirim kutusu | — | Yok | Kullanıcı | Bildirim kutusu |
| Live Activities | APNs (liveactivity) | iOS Push kanalı | Push-to-start / güncelleme belirteci | Live Activities |
Kanal durumu
GET /v1/apps/{app_id}/channels her kanal için status (unconfigured, active, invalid), son doğrulama zamanı ve hata nedenini döner. Worker 6 saatte bir kanal sağlık kontrolü yapar; APNs anahtarı/sertifikası ya da servis hesabı reddedilirse kanal invalid olur, org sahiplerine e-posta gider ve dashboard'da uyarı görünür. Bitiş tarihi yaklaşan sertifikalar için önceden bildirim yapılır.
Kanal seçimi ve içerik
POST /v1/notifications içinde target.channels ile kanal seçilir; verilmezse kanallar içerikten çıkarılır (contents → push kanalları, email_* → e-posta; SMS yalnızca açıkça). Her abonelik kendi kanalının alanlarıyla render edilir; kanal bazlı alanlar (ios_*, android_*, chrome_web_*, email_*, sms_*, whatsapp_*, rcs_*) için bildirim gönderme.
Tercihler ve bastırma
Kullanıcı kategorileri ve kanal tercihleri (tercihler), suppression list, sessiz saat ve frekans sınırı (teslimat politikaları) tüm kanallarda gönderim öncesi uygulanır; bastırılan teslimat suppressed durumunda suppression_reason ile kaydedilir.
Faturalama, planlar ve kota (Faz 13)
Plan matrisi, deneme, Stripe/iyzico/mock sağlayıcıları, kullanım raporu, kota ve özellik kapıları, uyarı e-postaları. Tasarım kararları: ADR-0020. Ortak kod: packages/billing (plan matrisi, sağlayıcı adaptörleri, kota…
Web Push
VAPID tabanlı tarayıcı push kanalı — kurulum, tarayıcı desteği, service worker, izin istemleri, içerik alanları ve sorun giderme.