Değişiklik günlüğü
Biçim: Keep a Changelog; sürümleme semver. Yeni değişiklikler en üstte [Yayınlanmamış] başlığı altında toplanır; sürüm etiketinden (vX.Y.Z) önce başlık sürüm numarası ve tarihle değiştirilir (release iş akışı bu bölümü…
Biçim: Keep a Changelog; sürümleme semver. Yeni değişiklikler en üstte [Yayınlanmamış] başlığı altında toplanır; sürüm etiketinden (vX.Y.Z) önce başlık sürüm numarası ve tarihle değiştirilir (release iş akışı bu bölümü GitHub Release notu olarak yayınlar).
[1.0.0] - 2026-10-16
İlk genel üretim sürümü (pushizo.com). 0.6.0 sonrasındaki tüm geliştirme bu sürümde toplanmıştır; ayrıntılar aşağıdaki alt bölümlerde.
Öne çıkanlar
- Pushizo marka adı: ürün HeroSignal'den Pushizo'ya taşındı; paketler
@pushizo/*, imajlarghcr.io/exec0de/pushizo-*, SDK paket adları ve varsayılan API kökühttps://api.pushizo.com, hata dokümantasyonuhttps://docs.pushizo.com/errors. - v2 fazları (15–21): kurumsal kimlik (SAML/OIDC SSO, SCIM, JWT kimlik doğrulama), ölçek mimarisi (ClickHouse, Kafka, Go dispatcher, Helm), iOS Live Activities, Huawei HMS, konum; sürükle-bırak e-posta editörü, HTML in-app, şablon galerisi, Data Feeds, Dynamic Content, AI içerik asistanı; WhatsApp, RCS, iki yönlü SMS, teslim edilebilirlik; Event Streams, veri ambarı dışa aktarımı, hazır entegrasyonlar ve MCP sunucusu; veri yerleşimi (EU/TR), white-label ve bayi.
- Platform yönetim paneli (
/admin): organizasyonlar, hesaplar, faturalama, özellik bayrakları, kötüye kullanım, destek, olaylar (incident), app taşıma onayları, sistem sağlığı ve denetim kaydı; gerekçe zorunlu işlemler, MFA'lı yönetici erişimi (ADMIN_MFA_REQUIRED). - OneSignal tarzı kurulum akışı: "Başlarken" ve SDK kurulum sayfaları (platform seçimi, adım adım kurulum, kod örneklerinde genel API adresi).
- Tanıtım sitesi ve SEO:
apps/web(pushizo.com) — çok dilli statik sayfalar, sitemap, robots,llms.txt, OG görselleri, IndexNow; dokümantasyon sitesi docs.pushizo.com. - Yayına alma: tek sunucu Docker Compose üretim yığını (nginx + Let's Encrypt,
www→ kök alan adı yönlendirmesi), isteğe bağlı staging, e-posta öncelikli Alertmanager, ayrı kimlik bilgili sunucu dışı yedek, üretimde zayıf/varsayılan gizli değerlerin reddi (SESSION_SECRET≥ 32, geliştirme S3 parolası, yerel SMTP).
v2 Faz 15, 16, 17a ve 17b (2026-10-15, ADR-0023…0026)
Eklendi
- Kurumsal kimlik (Faz 15): SAML 2.0 ve OIDC SSO (alan adı DNS doğrulaması, JIT, IdP grup → rol, test girişi, "yalnızca SSO" ve sahip kurtarma kodları), SCIM 2.0 (
/scim/v2/Users,/Groups), org'lar arası app taşıma (iki sahip + platform admin onayı), olay başına saklama süresi, SIEM denetim akışı (audit.createdwebhook'u ve günlük NDJSON). - JWT identity verification: app başına ES256 genel anahtarları (
/v1/apps/:appId/identity-keys),identity_verification_mode(hmac | jwt | both); Web/Android/iOS/Flutter/RN/Capacitor/Cordova/MAUI/Unity SDK'larındalogin(externalId, { jwt })veupdateUserJwt; Node/PHP/Python/Go/Java/.NET/Ruby sunucu SDK'larında belirteç üretme yardımcısı. - iOS Live Activities (Faz 17a): tür kaydı ve şema doğrulaması,
POST /v1/apps/:appId/live-activities/:activityType/start|update|end, SDK push-to-start/güncelleme belirteci uçları (sahiplik kanıtı zorunlu), APNsliveactivityyükü, journeylive_activitydüğümü (Liquid + şema çevirisi), dashboard Live Activities sayfası, iOS SDKPushizo.LiveActivities.registerve köprülerde genel tür. - Huawei HMS, Flutter web, Mac Catalyst, konum (Faz 17b, ADR-0025):
hms_pushkanalı ve Push Kit sağlayıcısı (OAuth, data mesajı, doğrulama), Androidpushizo-hmsmodülü, Flutter web (Web SDK köprüsü), iOS Mac Catalyst; tüm SDK'lardaLocation.setShared/isShared/requestPermission(yalnızca ön plan, KVKK rıza kaydı, kapatınca silme), segmentte "yarıçap içinde" koşulu, dashboard Huawei kanal kartı ve kullanıcı konumu. - Ölçek mimarisi (Faz 16, ADR-0026): ClickHouse analitik deposu (outbox aktarımı,
AnalyticsStore,dualkarşılaştırma, backfill, saklama/silme yansıtması), isteğe bağlı Kafka olay ingest yolu (packages/ingest), Go dispatcher (services/dispatcher, TS ile ortak test vektörleri), Helm 0.2.0 (PDB, NetworkPolicy, ExternalSecrets, KEDA, blue/green, dispatcher), k6-operator yük testi manifestleri; yerelde ClickHouse ve Kafka kurulumu (infra:install). - Migration
0029_enterprise_identity,0030_live_activities,0031_hms_push,0032_subscription_location,0033_analytics_outbox; dashboard Organizasyon → Güvenlik sayfası, admin app taşıma sayfası, girişte SSO.
Faz 0–14 denetimi ve güvenlik sertleştirmesi (2026-10-15, ADR-0022)
Güvenlik
- Yol kanonikleştirme ve rota desenine göre kimlik türü (API anahtarı yalnızca
/v1, oturum yalnızca/internal//admin);/internalve/adminmutasyonlarında köken + içerik türü denetimi; HTML yanıtlarına CSP. TRUST_PROXYile sınırlı vekil güveni (XFF sahteciliğiyle IP izin listesi/hız sınırı atlatılamaz); IPv6 CIDR izin listesi.- API anahtarı kapsamı rol iznine bağlandı; app kapsamlı üyeler için org geneli işlem ve okuma sınırları.
- Giriş kilidi atomik ve fail-closed, hesap başına MFA sınırı, MFA değişince oturumların kapatılması, OAuth ön-ele geçirme koruması ve onaylı hesap bağlama, güvenli
nextyönlendirmesi. - SDK sahiplik kanıtı e-posta/SMS yeniden kaydına, olaylara, in-app/inbox ve tercih uçlarına genişletildi (ADR-0016 K7–K9).
- SSRF: Web Push uç noktası ve FCM
token_uriizin listeleri, kiracı SMTP sunucusu için özel adres reddi ve IP sabitleme; Liquid sandbox; doğrusal e-posta HTML işleme (ReDoS); tehlikeli URL şemaları reddi. - Resend imza zorunluluğu (üretim), SNS TopicArn/tazelik; hook token'larının log maskelemesi; MinIO en az yetkili servis kullanıcısı; API Explorer SRI.
Eklendi
- Başarısız kuyruk işleri (DLQ) listesi ve yeniden deneme (admin), kanal durumu ucu, olay tanımlarında imleç sayfalama, kampanya onayında kota önizlemesi, segment/şablon arama.
- Migration
0026(tercih FK),0027(teslimat sahiplenme kirası),0028(partition RLS). npm run setupvedocs/YENI_BILGISAYAR.md(yeni bilgisayarda tek komut kurulum, yerel parolalar);.gitattributes(betikler LF).
Düzeltildi
- Eşzamanlı dispatch aynı teslimatı iki kez gönderebiliyordu;
delivereddurumusentile eziliyordu. - Kampanya PATCH'i gönderilmeyen alanları varsayılana döndürüyordu; düzenleme sonrası onay korunuyordu.
- Kullanıcı birleştirmede tercihler kayboluyordu; silme birleşik kayıtları bırakıyordu.
- CI: ESLint bellek yetersizliği (çıkış 134); Node 20 tabanlı action sürümleri güncellendi.
Faz 11–14 ve denetim turu (2026-10-08 … 2026-10-14)
Eklendi
- Journey'ler (Faz 11, ADR-0018): 13 düğüm türlü motor (bekleme, koşul, split, zaman penceresi, gönderim A/B, webhook, tag), giriş/çıkış kuralları, hedefler, takvim, sürümleme, çökme sonrası kurtarma; React Flow builder, run zaman çizelgesi,
journey.*webhook'ları; gönderim düğümünde tercih kategorisi. - A/B ve tercihler (Faz 12, ADR-0019): kampanya/journey/in-app A/B (deterministik atama, holdout, z-testi, otomatik/elle kazanan; in-app kazanan
0024), kategoriler ve kullanıcı tercihleri (API, tüm istemci SDK'ları dahil RN/Capacitor/Cordova/MAUI/Unity, barındırılan tercih merkezi), etiketler, şablon analitiği, çoklu frekans pencereleri, outcome türleri (unique/unattributed),usage_durationsegmenti, retention kohortu, SMS HELP/STOP yanıtları. - Faturalama ve platform (Faz 13, ADR-0020): plan matrisi, deneme, kota ve özellik kapıları, Stripe/iyzico/mock, kullanım raporu, kötüye kullanım incelemeleri, askıya alma, platform admin ve denetim kaydı, support session, feature flag'ler, status sayfası (+ e-posta aboneliği
0025), OAuth girişi ve hesap bağlama, Composer rolü. - Operasyon (Faz 14): Docker/compose/Helm, CI/CD (release, SDK yayını, E2E, Stripe test modu, gitleaks, Dependabot, PR imaj derleme), Prometheus/Grafana/Alertmanager, Sentry, sentetik izleme, kaos tatbikatı, wal-g + günlük temel yedek, runbook'lar, docs-site (+ dağıtım), OneSignal göç aracı, Postman koleksiyonu,
GO_LIVE_CHECKLIST.md.
Güvenlik
- Üretim Postgres'te uygulama rolü NOSUPERUSER/NOBYPASSRLS (RLS gerçekten uygulanır); API/worker açılışta rolü denetler.
- Faturalama tablolarına RLS (
0022); OAuth giriş CSRF koruması; support session için MFA; üretimde mock sağlayıcı yalnızca açık izinle; log maskelemesine OAuth/MFA parametreleri.
Düzeltildi
- Netgsm gelen kutusunda HELP aboneliği yeniden açıyordu.
- Kategori opt-out'u kategoride tanımlı olmayan kanalları da bastırıyordu.
- Deneme süresi, yönetici tarafından atanmış daha yüksek planı Starter'a düşürüyordu.
- Kuyruk derinliği metriği öncelikli (
prioritized) işleri saymıyordu (alarmlar/KEDA kördü). - Duman testi dışarıya kapalı
/readyz'yi çağırıyordu; imzalı indirme bağlantıları/storageönekiyle SigV4 doğrulamasından geçemiyordu. - A/B kampanyada bildirim kutusu öğesi varyant içeriğini kullanmıyordu; varyant içeriği hazır kontrolünde doğrulanmıyordu.
[0.6.0] — 2026-10-07 (Faz 10: e-posta, SMS, in-app, bildirim kutusu)
Eklendi
- E-posta: SMTP, Amazon SES (SigV4), Resend sağlayıcıları; MJML/HTML gövde (Liquid çıktısı HTML kaçışlı), ön başlık, düz metin sürüm; HMAC imzalı açılma pikseli ve tıklama yönlendirmesi (açık yönlendirme yok), RFC 8058 tek tık List-Unsubscribe (
/t/o,/t/c,/t/u), tr/en altbilgi; DKIM/SPF/DMARC rehberi. - SMS: Twilio ve Netgsm (
encoding: TR, İYS filtresi); kısa link (/t/s), GSM-7/UCS-2/Türkçe kaydırma segment sayımı (smsSegments), STOP/START (Twilio gelen mesaj, Netgsm gelen kutusu sorgusu, genel webhook). - Gelen geri bildirim:
/hooks/email/{ses|resend|smtp|mock}/{token},/hooks/sms/{twilio|mock}/{token}(SNS/Svix/Twilio imzaları); bounce/complaint/teslim/açılma/tıklama teslimata, sayaçlara ve webhook'lara işlenir; Netgsm rapor sorgusu. - Suppression list: özet + maskeli değer; audience ve gönderim anında kontrol; internal + public API, dashboard ekranı.
- In-app mesajlar: blok tabanlı modal/banner/tam ekran, tetikler (oturum, olay, ekran, trigger), segment kitlesi, sıklık, istatistik; Web/Android/iOS/Flutter render ve
InAppMessagesAPI'si; dashboard editörü ve canlı önizleme. - Bildirim kutusu:
add_to_inboxmesajları; SDKInbox(liste, okundu, tümü, arşiv) ve uçları; kullanıcı detayında inbox. - SDK:
User.addEmail/removeEmail/addSms/removeSms(anonim kullanıcıyauser.subscription_idile bağlama); Nodehs.suppressions, PHPSuppressions; örnek uygulamalar güncellendi. - Dashboard: E-posta/SMS kanal ayarları ve webhook adresi kartı, kampanya/şablon editöründe E-posta ve SMS sekmeleri (MJML editörü + sandbox önizleme, segment sayacı).
- Migration
0015_email_sms_inapp_inbox(up/down); ADR-0015;docs/messaging.md; metriklermessaging_feedback_total,suppression_entries_total; E2Emessaging.spec.ts,in-app-inbox.spec.ts.
Düzeltildi (Faz 10 eksik turu)
- Hedefte kanal verilmeyen push mesajı/kampanyası artık e-posta/SMS abonelerine push metniyle gitmez: kanallar içerikten çıkarılır (push → push kanalları,
email_*→ e-posta, SMS yalnızca açıkça); hedeflenen kanalın içerik eksiği 422. - Tekrarlanan tek tık abonelikten çıkma ve şikâyet olayları sayaçları ikinci kez artırmaz.
- SES/SNS geri bildiriminde konu bölgesi kanalın SES bölgesiyle eşleşmeli.
- In-app gösterim kayıtları olay saklama süresine (global + organizasyon) tabi; süreli suppression kayıtları bitişte silinir.
- In-app mesaj kitlesinde kullanılan segment silinemez (409).
- Kök
npm run dev17 kalıcı görevle turbo'nun varsayılan eşzamanlılık sınırına (10) takılıyordu;--concurrency=32(PlaywrightwebServeryeniden sunucu başlatabilir).
Değişti
- E-posta/SMS abonelik token'ları kayıt ve CSV içe aktarmada kanonik biçime getirilir (küçük harf e-posta, E.164); geçersiz değer 400.
- E-posta/SMS kanalında mock dışı sağlayıcı artık 501 değil, kanalla uyumsuz sağlayıcı 400.
ci:localOpenAPI denetimi birleşim (oneOf/anyOf) varyantlarını ayırt eder: yeni varyant kırıcı sayılmaz, mevcut varyanta zorunlu alan eklemek sayılır.
[0.5.0] — 2026-10-07 (Faz 9: webhook'lar)
Eklendi
- Giden webhook'lar: endpoint yönetimi (internal + public
admin), 20 olay türü, HMAC-SHA256 imza (Pushizo-Signature), 24 saatlik secret rotasyonu, özel başlıklar (şifreli), batch modu (delivery.*100'erli), test gönderimi, teslim geçmişi, tekil/toplu replay. - Teslim motoru: transactional outbox + worker taraması (ADR-0014), üstel yeniden deneme (1 dk → 24 sa, 7 istek sonra
dead), SSRF koruması (https, özel IP/yerel ad reddi, DNS sonrası IP sabitleme, yönlendirme yok), endpoint sağlığı (7 günfailing+ e-posta, 14 gündisabled), 30 gün saklama,webhook_deliveries_totalmetriği. - SDK: Node
verifyWebhookSignature/constructWebhookEvents/hs.webhooks; PHPPushizo\Webhook. - Dashboard: Webhooks liste ve detay ekranları, imza doğrulama örnekleri; trace'te webhook teslimleri.
- Migration
0014_webhooks(up/down);docs/webhooks.md; E2Ewebhooks.spec.ts.
Düzeltildi (Faz 9 eksik turu)
- Kullanıcı silme ve app veri temizliği webhook teslim geçmişindeki kişisel veriyi de siler (KVKK/GDPR).
- Webhook taraması: endpoint başına kota ve eşzamanlılık sınırı, devre kesici, kira korumalı gönderim (çok worker'da çift gönderim önlenir).
event.receivedaboneliğinde olay adı filtresi zorunlu; başarısız test gönderimi endpoint sağlığını etkilemez; alias/external_id değişimindeuser.updated; alias ekleme çakışması transaction'ı bozmaz; 64 KB üzeri yük kesilir.- Bildirim merkezinde sorunlu webhook'lar; gecikme metrikleri ve
tests/load/webhooks-bench.mjs(p95 4,5 sn).
[0.4.0] — 2026-10-07 (Faz 0–8 derin denetim ve eksik kapatma)
Eklendi
- Veri & Gizlilik: organizasyon silme (30 gün bekleme sonrası kalıcı temizlik), org saklama süresi ve oturum süresi politikaları, org veri dışa aktarma talebi, app verilerini temizleme; "beni hatırla" girişi.
- API:
Idempotency-Keybaşlığı,filter[...]vesortparametreleri, export/import cursor sayfalaması, bildirim geçmişi (GET /v1/notifications/{id}/history),?kind=filtresi,X-HTTP-Method-Override, SDK alias vedismisseduçları, SDK hata raporları, kanal kimlik bilgisi dosya yükleme, statik segmentler (segments/{id}/refresh), bildirim merkezi, kullanıcı son mesajları, kampanya canlı akışı (SSE), genel bakışta özel tarih aralığı ve son kampanyalar, web push istem/SW ayarları SDK config'te, public organizasyon/üye/audit uçları. - Teslimat: FCM data-only ve ortak
hs {dlv, msg, url, buttons}payload alanı, 4 KB payload sınırı, cihaz bazında APNs ortamı, iOS rozet artırma, app başına adil sıralama ve sağlayıcı hız sınırı,rate_limitediçin deneme sayılmayan erteleme, kimlik bilgisi reddinde sahibine e-posta,mock:open, test cihazı adları. - SDK'lar: Android 12+ uyumlu bildirim açma, token değişiminde güncelleme, alias API'si (Web/Android/iOS/Flutter), Flutter ön plan engelleme, iOS NSE rozet/kategori birleştirme, web slidedown kaydırma tetikleyicisi ve kategoriler, SW yeniden deneme, SDK hata raporlama, Node SDK
notifications.history. - Dashboard: ⌘K komut paleti, bildirim zili, global app seçici; request_id'li hata durumları; DataTable/CodeBlock/DateRangePicker/JsonViewer/Stepper; yerel sayı biçimi ve hesap saat dilimi; API anahtarı süresi; gönderim onay modalı; kişiselleştirme değişken seçici; web izin istemi tasarımcısı; kullanıcı detayı düzenleme; SDK hataları log sekmesi.
- Araçlar:
npm run ci:local(OpenAPI kırıcı değişiklik, npm audit, gizli bilgi taraması, i18n, migration çiftleri),npm run openapi:baseline, k6 olay ingest betiği. - Migration'lar
0010–0013(up/down); ADR-0011, ADR-0012, ADR-0013.
Değişti
- Kiracı dışı erişim her zaman
404 HS_NOT_FOUND(ADR-0011); geçersiz cursor400 HS_VALIDATION_ERROR. - Analitik açılma/tıklama sayıları teslimat satırındaki zaman damgalarından hesaplanır (olay saklama süresinden bağımsız).
- Depolama anahtarları
org/{org_id}/app/{app_id}/…önekli; istek logu kimlik önekirlg_.
Güvenlik
- fastify 5.11.3 → 5.12.5 (yüksek önem, 7 GHSA), js-yaml 5.3.0 → 5.4.3 (
overrides); TOTP tekrar kullanım engeli, API anahtarı iptal önbelleği yarışı, artan giriş gecikmesi, JSON derinlik ve gövde boyutu sınırları, aktif DEK önbelleğinin rotasyonu algılaması.
[0.3.0] — 2026-10-07 (Faz 8: olaylar, analitik, dönüşüm, export/import)
Eklendi
- Olay işleme: toplu referans çözümleme ile ingest,
eventskuyruğu (tanım kaydı, kullanıcı × olay × gün sayaçları, son etkinlik), dönüşüm atribüsyonu (direct_click/influenced, kampanya ve mesajconvertedsayaçları), canlı olay akışı (SSE). - Analitik API ve ekranları: teslimat (gün/kanal/kampanya), abonelik büyümesi, olay hacmi, dönüşüm/gelir, funnel, sağlayıcı sağlığı (hata kodları, gecikme p50/p95), etkileşim ısı haritası; tarih aralığı, önceki dönemle karşılaştırma, CSV export; ECharts grafikleri.
- Export/Import: CSV export işleri (users/subscriptions/events/deliveries → S3 uyumlu depolama, imzalı indirme bağlantısı), Pushizo CSV ve OneSignal player CSV içe aktarma (hata raporu),
packages/storageSigV4 istemcisi. - Retention: olay/teslimat/teslimat olayı/audit saklama süreleri partition düşürme ile uygulanır;
event_definitions.count_30dgünlük yeniden hesap. - Dashboard: Olaylar, Analitik ve Dışa/İçe Aktarım ekranları; segment olay koşulları
user_event_countsile hızlandırıldı. Migration0009_events_analytics(up/down).
Performans
- 1M olay ingest tek API sürecinde 11679 olay/sn (hedef ≥ 5k); 100.000 kullanıcı export 2,0 sn (18,1 MB CSV, hedef < 60 sn); 1M olay ingest sırasında worker olay işlemesi eşzamanlı çalıştı.
[0.2.0] — 2026-10-07 (Faz 7: segmentler, şablonlar, kampanyalar)
Eklendi
- Segmentler: iç içe
all/any/nonekoşul AST'si → parametrik SQL derleyici (tag/özellik/dil/cihaz/semver/olay sayısı/mesaj etkileşimi/segment üyeliği), canlı önizleme ve önbellekli tahmin uçları, dashboard segment builder. - Şablonlar: sürümlü mesaj şablonları (
template_versions), geri alma, Liquid render önizlemesi;POST /v1/notificationsiçindetemplate_id. - Kampanyalar: durum makinesi (taslak/zamanlandı/çalışıyor/duraklatıldı/tamamlandı/iptal/başarısız), planlı ve tekrarlı (cron + saat dilimi) gönderim, kullanıcı saat dilimi ve akıllı teslimat, hız sınırı, frekans/sessiz saat istisnaları, onay akışı (
settings.campaignApprovalRequired), kopyalama, istatistik/rollup uçları; dashboard 5 adımlı kampanya oluşturucu ve detay ekranı. - Worker:
schedulerkuyruğu (planlı tarama, tekrarlı tetikleme, saatlikdelivery_event_rollups, kampanya kapanışı); duraklatılmış kampanya teslimatlarının ertelenmesi. - Hedefleme:
included_segments,excluded_segments,filters,allvedelayed_optionartık Public API'de çalışır (Faz 4501yanıtları kaldırıldı). - Migration
0008_campaigns(up/down), RLS politikaları; E2Ecampaign.spec.ts; erişilebilirlik taraması Faz 7 ekranlarını kapsar. - Tamamlama turu: Teslimat politikaları ekranı (sessiz saat, frekans sınırı, varsayılan TTL); segmentin kullanıldığı kampanyalar; kampanya listesinde tür/kanal filtresi ve iptal; kampanya detayında abone bazlı teslimat tablosu ve "başarısızlara yeniden gönder"; ad yazarak iptal onayı; Kullanıcılar sayfasında segment builder filtresi ve
POST /v1/apps/{app_id}/users/search; hedef kitle snapshot'ı (segment_snapshot);TABLESAMPLEile büyük tablo tahmini; builderbetween/subscription.status; içerik editöründe kanal sekmeleri; Chrome önizleme çerçevesi.
[0.1.0] — 2026-10-06 (MVP: Faz 0–6)
Eklendi
- Altyapı (Faz 0): npm workspaces + Turborepo monorepo; NestJS 11 + Fastify API; BullMQ worker; Next.js 16 dashboard; Drizzle + SQL migration'lar (
up/down); pino + Prometheus metrikleri; OpenAPI üretimi ve tip güvenli istemci. - Kimlik ve kiracılık (Faz 1): kayıt/giriş/e-posta doğrulama/parola sıfırlama, oturum yönetimi, TOTP MFA + kurtarma kodları, giriş kilidi; organizasyon/üyelik/davet, roller ve app kapsamı, API anahtarları (scope, iptal ≤ 60 sn önbellek), audit log, Redis hız sınırı, Postgres RLS ikinci savunma hattı, org MFA zorunluluğu ve IP izin listesi.
- Son kullanıcı kimliği (Faz 2): end user / alias / abonelik modeli, anonim → kimlikli birleştirme, tag/özellik merge-patch, identity verification (HMAC), SDK API (
/sdk/v1), public Users/Subscriptions API, KVKK/GDPR silme ve veri dışa aktarma. - Sağlayıcılar (Faz 3): envelope encryption (DEK + MASTER_KEY, rotasyon komutları), APNs HTTP/2, FCM HTTP v1, Web Push (VAPID), mock sağlayıcı, kanal doğrulama uçları.
- Teslimat motoru (Faz 4):
POST /v1/notifications(idempotency), audience/dispatch worker'ları, LiquidJS kişiselleştirme, bastırma (frekans sınırı, sessiz saat), planlı yeniden deneme, sayaçlar, trace ekranı, test cihazları, kuyruk-veritabanı uzlaştırma işi. - SDK'lar (Faz 5): Web (
@pushizo/web), Android, iOS (+ Notification Service Extension), Flutter, Node, PHP; örnek uygulamalar vedocs/sdk/*rehberleri. - Dashboard çekirdeği (Faz 6): onboarding stepper (simülasyon modu, canlı cihaz algılama, test push), Genel Bakış KPI'ları, SDK Kurulumu, Test Cihazları, API Explorer, Loglar; tr/en, koyu tema, axe erişilebilirlik taraması.
Güvenlik
- Güvenlik başlıkları (CSP, HSTS,
X-Content-Type-Options,Referrer-Policy,Permissions-Policy,X-Frame-Options) API ve dashboard'da. - Gizli bilgiler (p8, servis hesabı, VAPID private, SDK secret) yalnızca şifreli saklanır; API'den geri okunamaz.