Pushizo Docs
Rehberler

White-label: marka, özel alan adı ve bayi hesabı

Pushizo'yu kendi markanızla sunun: panelde ve sistem e-postalarında ürün adınız, logonuz ve renkleriniz; kendi alan adlarınızda panel, izleme bağlantıları, tercih merkezi ve durum sayfası; ajanslar için alt müşteri…

Pushizo'yu kendi markanızla sunun: panelde ve sistem e-postalarında ürün adınız, logonuz ve renkleriniz; kendi alan adlarınızda panel, izleme bağlantıları, tercih merkezi ve durum sayfası; ajanslar için alt müşteri yönetimi ve toplu faturalama. Kararlar: docs/adr/0032-hucre-mimarisi-white-label-bayi.md.

ÖzellikPlan
Marka (ad, logo, renkler, destek e-postası) ve özel alan adlarıGrowth ve Enterprise (white_label)
"Powered by Pushizo" ibaresini gizlemeEnterprise (hide_powered_by)
Bayi hesabı (alt organizasyonlar, toplu döküm)Enterprise (reseller)

1. Marka

Organizasyon → Marka sayfasından ya da API ile:

PUT /internal/v1/orgs/:orgId/branding
{ "product_name": "Acme Push", "primary_color": "#112233", "secondary_color": "#445566",
  "support_email": "destek@acme.com", "hide_powered_by": true }
  • Renkler #RRGGBB; alanı kaldırmak için null gönderin. GET yanıtındaki effective alanı plan özellikleri ve (alt organizasyonda) bayi markası uygulanmış hâlidir.
  • Logo: PUT /internal/v1/orgs/:orgId/branding/logo (multipart file) — PNG, JPEG veya WebP, en çok 512 KB. Dosya türü içerikten doğrulanır; SVG kabul edilmez (betik taşıyabilir). Logo GET /branding/v1/logos/:orgId/:dosya adresinden sunulur; yeni logo yüklenince eskisi silinir. Harici bir https adresi de logo_url ile verilebilir.
  • Sistem e-postaları (davet, kullanım/deneme uyarıları, kanal ve webhook sağlık bildirimleri, veri ambarı hataları; parola sıfırlama ve e-posta doğrulama ise istek markalı panel alan adından geldiyse) markanızla gider: ürün adı, logo, birincil renk, destek adresi; bağlantılar etkin panel alan adınıza yönelir. "Powered by Pushizo" yalnızca planınız izin veriyor ve gizlemeyi seçtiyseniz kaldırılır.
  • Alt organizasyonun kendi markası yoksa bayinin markası kullanılır.

2. Özel alan adları

Desteklenen türler:

TürNe sunulur
dashboardMarkalı panel (giriş, kayıt ve tüm ekranlar)
trackingAçılma/tıklama izleme, abonelikten çıkış ve tercih bağlantıları (/t/…)
preference_centerAbonelik tercih merkezi ve abonelikten çıkış (/t/p, /t/u)
status_pageDurum sayfası (/status, /status.json)

Ekleme: Organizasyon → Özel alan adları → Ekle veya

POST /internal/v1/orgs/:orgId/custom-domains
{ "kind": "dashboard", "hostname": "panel.acme.com" }
→ 201 { "id": "cdm_…", "status": "pending",
        "verification": { "txt_name": "_pushizo-challenge.panel.acme.com", "txt_value": "hs-verify=…",
                          "cname_target": "edge.eu.pushizo.com" } }

DNS'e iki kayıt ekleyin:

KayıtAdDeğer
TXT_pushizo-challenge.panel.acme.comhs-verify=… (yanıttaki txt_value)
CNAMEpanel.acme.comyanıttaki cname_target

Durumlar: pending → (TXT doğrulandı) verified → (CNAME de doğru) active. Kontrol 5 dakikada bir otomatik yapılır; beklemek istemezseniz POST …/custom-domains/:id/verify. 72 saat içinde doğrulanamayan veya TXT kaydı silinen alan adı failed olur (yeniden doğrulama süreyi yeniden başlatır). last_error: txt_missing, txt_mismatch, cname_missing, cname_mismatch, dns_error.

  • TLS sertifikası, alan adı active olduktan sonra ilk istekte otomatik alınır (ACME); ek işlem gerekmez.
  • Bir alan adı tüm bölgelerde tek bir organizasyona ait olabilir (başka organizasyonda kayıtlıysa 409). Organizasyon başına en çok 20 alan adı; IP adresi, tek etiketli ad, port ve platformun kendi alan adları kullanılamaz.
  • Güvenlik: bir türün alan adında yalnızca o türün yolları açılır; izleme/tercih merkezi bağlantısı yalnızca alan adının organizasyonuna (veya bayinin alt organizasyonlarına) aitse çalışır. Markalı panelde yapılan oturumlu değişiklikler yalnızca o alan adının organizasyonu (ve bayinin alt organizasyonları) için kabul edilir.
  • Bölge taşımasından sonra CNAME'i yeni bölgenin hedefine güncelleyin (Veri yerleşimi).

3. Bayi hesabı

Bayi (Enterprise + reseller) alt organizasyonlar oluşturur ve yönetir. Alt organizasyonlar ayrı kiracılardır; verileri birbirinden ve bayiden yalıtılmıştır. Tek seviye desteklenir (alt organizasyon bayi olamaz).

İşlemUç (yetki org.manage)
Alt organizasyonları listele / oluşturGET / POST /internal/v1/orgs/:orgId/reseller/children (name, isteğe bağlı slug, plan_code)
Askıya al / sürdürPOST …/children/:childId/suspend (reason), POST …/children/:childId/resume
Destek erişimi al / bırakPOST / DELETE …/children/:childId/support-access (role: admin | viewer)
Aylık döküm (yetki billing.manage)GET …/reseller/statement?month=YYYY-AA
  • Yeni alt organizasyonun sahibi işlemi yapan bayi üyesidir; varsayılan plan starter, deneme süresi yoktur. Bayi alt organizasyona kendi planından yüksek bir plan atayamaz (400, details.max_plan_code).
  • Askıya alma: bayi yalnızca kendi koyduğu askıyı (reseller: önekli neden) kaldırabilir; platformun koyduğu askılar destek ekibine aittir.
  • Destek erişimi alt organizasyonda geri alınabilir bir üyeliktir ve hem bayinin hem alt organizasyonun denetim kaydına yazılır.
  • Faturalama bayi üzerinden toplu yapılır: alt organizasyonun kendi ödeme akışı yoktur (409 reseller_managed). Döküm her alt organizasyon için plan bedeli ve kullanımı (gönderilen mesaj, olay, API isteği; ayın en yüksek aktif abone ve MAU değeri) ile toplamları verir.
  • Alt organizasyonlar bayiyle aynı veri bölgesinde oluşturulur; bayi hiyerarşisindeki bir organizasyon tek başına başka bölgeye taşınamaz.

Bu sayfada