PushizoDocs
Güvenlik & uyum

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", … }
```text

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:

```ts
import { Pushizo } from '@pushizo/node';
const hs = new Pushizo({ apiKey: process.env.PUSHIZO_API_KEY!, baseUrl: 'https://api.tr.pushizo.com' });
```text

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](/docs/security/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