Skip to content
Cavanshirpro edited this page Sep 19, 2026 · 1 revision

Mimari ve istek yaşam döngüsü

English · Türkçe · Languages / Diller

Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe

Forge'da iki ayrı yönetim düzeyi bulunur. Uygulama API'si son kullanıcı veya servis isteklerini karşılar; Editör control plane'i kaynak belgelerini, ekip üyelerini ve çalışma alanını yönetir. Ayrı kimlik bilgileri ve ağ politikaları kullanırlar.

flowchart TD
  A["Uygulama istemcisi"] --> B["ASGI ve koruma"]
  B --> C["Proje seçimi ve yetkilendirme"]
  C --> D["CRUD, RPC veya hook"]
  D --> E["Proje SQL, MongoDB ve cache"]
  F["Masaüstü Editör"] --> G["Yönetim kimliği ve kapsamlar"]
  G --> H["Belge doğrulama ve atomik kayıt"]
  H --> I["JSON reload"]
  I --> C
Loading

Kaynaktan çalışan servise

  1. app/ altındaki açık proje kökleri keşfedilir.
  2. Manifest ve numaralı JSON parçaları birleştirilir; $env: başvuruları çözülür.
  3. Sıkı Pydantic modelleri ve semantik kontroller çalışır. Bilinmeyen alanlar hata üretir.
  4. Etkin feature pack'ler normal kaynak tanımlarına genişletilir.
  5. ProjectRuntime proje SQL/Mongo/cache/rate-limit/events/media servislerini oluşturur.
  6. Router katmanı seçilen özelliklerin endpointlerini kurar; OpenAPI üretilir.
  7. Lifespan başlangıç ve kapanış işleri bağlantıları ve kaynakları yönetir.

Kaynak haritası

Alan Başlıca dosyalar Sorumluluk
Model ve yükleme framework/config.py, schema.py Tipler, merge, env, keşif
Uygulama factory.py, runtime.py, reload.py ASGI, yaşam döngüsü, yenileme
Proje API routers/project.py CRUD/RPC/data/custom rotaları
Veri db.py, crud.py, operations.py, mongo.py Veri erişimi ve işlem kuralları
Kimlik security.py, protection.py Principal, izin ve istek koruması
Yönetim editor_api.py, editor_identity.py, editor_database.py Ekip ve doküman işlemleri
CLI cli.py, doctor.py Oluşturma, inceleme, migration

İzolasyonun kapsamı

Her proje farklı slug, API prefix, roller ve servis yapılandırmasına sahiptir. Ancak aynı Python sürecini, CPU/belleği, global ayarları ve iç kimlik veritabanını paylaşabilirler. Bir uygulamanın bozuk JSON değişikliği diğer uygulamaları durdurmadan reddedilebilir; bu özellik işletim sistemi sandbox'ı değildir. Güvenilmeyen hook, native çökme veya bellek tüketimine karşı ayrı süreç/container gerekir.

framework.factory.create_app() sabit bir yapılandırma anlık görüntüsü oluşturur. Normal geliştirme ve kaynak giriş noktaları framework.reload:create_live_app yolunu kullanarak JSON değişikliklerini izler. Hot reload bu farkı açıklar.

Bir HTTP isteğinde kontrol edilenler

Host/IP/HTTPS ve boyut politikaları, pre-auth limitleri, kimlik ve izinler, tenant/sahiplik, giriş şeması, veritabanı işlemi ve yanıt sınırları birlikte çalışır. Tek başına CORS, gizli bir URL veya Editörde pasif görünen bir düğme yetkilendirme sağlamaz. Cache de kullanıcının server tarafından belirlenen bağlamından ayrılmamalıdır.

Kaynak ve doğrulama

Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.


Wiki ana sayfa · Tüm sayfalar · Sürüm ve bakım

Clone this wiki locally