Pushizo Docs
Rehberler

Veri yerleşimi (AB / Türkiye bölgeleri)

Pushizo her veri bölgesini ayrı bir hücre olarak çalıştırır: AB (Frankfurt) ve Türkiye (İstanbul) hücrelerinin kendi veritabanı, kuyruk, analitik deposu ve dosya depolaması vardır. Bir organizasyonun abonelik,…

Pushizo her veri bölgesini ayrı bir hücre olarak çalıştırır: AB (Frankfurt) ve Türkiye (İstanbul) hücrelerinin kendi veritabanı, kuyruk, analitik deposu ve dosya depolaması vardır. Bir organizasyonun abonelik, kullanıcı, olay, mesaj ve dosya verisi yalnızca seçtiği bölgede işlenir ve saklanır (KVKK / GDPR). Kararlar: docs/adr/0032-hucre-mimarisi-white-label-bayi.md.

Organizasyon oluştururken bölge seçimi

Panelde Yeni organizasyon formunda Veri bölgesi seçilir. Bölge sonradan panelden değiştirilemez; taşıma destek ekibinin yaptığı, doğrulamalı bir işlemdir (aşağıya bakın).

API ile (oturumlu dashboard API'si):

GET /internal/v1/cells
→ { "enabled": true, "current_cell_id": "eu", "control_plane": true,
    "cells": [{ "id": "eu", "name": "Avrupa (Frankfurt)", "api_url": "https://api.eu…", "dashboard_url": "https://app.eu…" }, …] }

POST /internal/v1/orgs
{ "name": "Acme", "region": "tr" }
→ 201 { "id": "org_…", "region": "tr", … }

Tek bölgeli kurulumlarda enabled: false döner ve region verilmez.

Bölgeler arasında geçiş (panel)

Hesabınız tüm bölgelerde aynıdır. GET /internal/v1/cells/orgs tüm bölgelerdeki organizasyonlarınızı listeler; başka bölgedeki bir organizasyona geçerken panel POST /internal/v1/cells/handoff ile 60 saniye geçerli, tek kullanımlık bir oturum devri bağlantısı alır ve sizi o bölgenin paneline (/handoff) yönlendirir. Başka bölgede kayıtlı bir hesapla yanlış bölgenin girişini kullanırsanız giriş 421 HS_WRONG_CELL ve doğru panel adresiyle yanıt verir.

SDK'lar ve sunucu API'si: bölgesel adres

Her bölgenin kendi API adresi vardır (ör. https://api.eu.pushizo.com, https://api.tr.pushizo.com).

  • Web, Android, iOS SDK'ları app yapılandırmasından (GET /sdk/v1/apps/:appId/config → api_url, cell_id) bölgesel adresi öğrenir ve sonraki isteklerde onu kullanır. init sırasında kendi alan adınızı/vekil sunucunuzu apiUrl ile verdiyseniz o adres korunur.
  • Yanlış bölgeye giden her istek işlenmeden 421 HS_WRONG_CELL döner; error.details içinde cell_id, api_url ve dashboard_url bulunur. Veri hiçbir zaman yanlış bölgeye yazılmaz.
  • Sunucu SDK'ları ve REST API: istemciyi org'unuzun bölgesel adresiyle yapılandırın:
import { Pushizo } from '@pushizo/node';
const hs = new Pushizo({ apiKey: process.env.PUSHIZO_API_KEY!, baseUrl: 'https://api.tr.pushizo.com' });

421 yanıtı alırsanız details.api_url'i yapılandırmanıza kalıcı olarak yazın.

Bölge taşıma

Taşıma, destek ekibi tarafından bakım penceresinde yapılır: organizasyon kısa süre salt okunur (askıda) olur, tüm veritabanı kayıtları, analitik verisi ve dosyalar (logo, dışa aktarımlar) hedef bölgeye kopyalanıp satır sayısı ve sağlama toplamlarıyla doğrulanır; doğrulama başarısızsa hiçbir şey değişmez. Kaynak bölgedeki kopya, ayrı bir adımda hedef doğrulandıktan sonra silinir. Taşıma sonrası:

  • SDK'lar yeni bölge adresine 421 yanıtıyla geçer; sunucu entegrasyonlarınızın baseUrl'ini güncelleyin.
  • Özel alan adı kullanıyorsanız CNAME kaydını yeni bölgenin hedefine güncelleyin (bkz. White-label).
  • Geçici sayaçlar (hız sınırı pencereleri gibi) sıfırlanır.

Operasyon adımları: docs/runbooks/cells.md.

Sık sorulanlar

  • Hangi veriler bölgede kalır? Organizasyon, app, abone, kullanıcı, olay, mesaj, teslimat, şablon, kampanya, denetim kaydı, dosyalar ve analitik. Bölgeler arasında yalnızca hesap kimliği (e-posta, ad) ve organizasyon → bölge eşlemesi (ad, kısa ad) paylaşılır.
  • Bölgeler arası trafik nasıl korunur? Hücreler yalnızca birbirinin API'sine, paylaşılan gizli anahtarla imzalı, zaman damgalı ve tek kullanımlık isteklerle erişir; birbirinin veri katmanına ağ erişimi yoktur.

Bu sayfada