Repository navigation
SDK Control Plane
English · Türkçe · Languages / Diller
Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe
Control plane istemcileri uygulama CRUD'dan ayrı /__forge/editor/v1 API'sini kullanır. Sunucuda bu yüzey etkin olmalı, ağ/HTTPS/Host politikası ve kullanıcı rolleri erişime izin vermelidir.
import json
from getpass import getpass
from json_api_forge import EditorControlPlaneClient
with EditorControlPlaneClient("https://forge-admin.example.com") as control:
control.login("worker.name", getpass("Parola: "))
print(control.projects().data)
old = control.document("WikiDemo", "app.json")
content = json.loads(old.data["content"])
content["version"] = "1.0.1"
saved = control.save_document(
"WikiDemo", "app.json",
json.dumps(content, ensure_ascii=False, indent=2) + "\n",
expected_sha256=old.data["sha256"],
)
print(saved.data)
control.logout()Buradaki WikiDemo, control plane'in listelediği proje dizini adıdır; uygulama helper'ındaki wiki-demo slug'ı ile aynı parametre değildir. Başka biri dosyayı değiştirmişse eski SHA ile kayıt 409 üretir. Yeni belge için server'ın desteklediği expected_sha256="new" sözleşmesi kullanılır; mevcut dosyayı zorla ezmek için kullanılmaz.
setup_status, setup_founder, register, login, logout hesap yaşam döngüsüdür. Founder kurulum token'ı yalnız ilk hesap içindir. Davet kayıtları exact-format, single-use ve expiring token kullanır. Setup tamamlandığında server setup politikasını kapatın.
Oturum bellekte tutulur; auth response'undaki access token dönen payload'dan kaldırılır. has_session, set_session_token, clear_session oturum yardımcılarıdır. logout server session'ını kapatmayı dener ve belleği temizler; close/aclose sadece yerel session/transport temizliği olarak düşünülmelidir, server logout çağrısının yerine geçtiğini varsaymayın. Yetkili request 401 alırsa session temizlenir.
| Alan | Metot örnekleri |
|---|---|
| Profil/yetki |
capabilities, profile, update_profile
|
| Proje/belge |
projects, create_project, documents, document, save_document, validate_project
|
| Roller/üyeler |
roles, create_role, update_role, members, update_member, create_invitation
|
| İşbirliği |
areas, create_area, messages, post_message, notes, create_note
|
| Veritabanı |
database_catalog, database_rows
|
| Dosya |
attachments, upload_attachment, download_attachment
|
| Çağrı/audit |
start_call, call_ticket, call_client_url, audit
|
UI veya SDK metodu bulunması yetki verildiği anlamına gelmez; server her istekte güncel kapsamı uygular. update_member membership listesini değiştirme semantiği taşır; mevcut ilişkileri okumadan kısmi ekleme gibi kullanmayın.
Upload normal, symlink olmayan dosyadan bounded snapshot alır ve dosya kimliğini kontrol eder. Download geçici özel dosyaya yazar, fsync ve atomic replacement uygular. Hedef yolun var olan dosyasının değişebileceğini dikkate alın. Büyük attachment için hem client hem server sınırları gerekir.
start_call ve call_ticket signaling/katılım hazırlığıdır. SDK'nin kendisi ses/video yakalayan Python WebRTC motoru değildir. call_client_url ticket'ı URL fragment'ında taşır; browser sayfası WebSocket subprotocol ile sunar. Ticket'ı query parametresine çevirmeyin.
Async sınıfta eşdeğer çağrılar await, context manager async with kullanır. Tam imzalar ve bütün request modelleri referans indeksinde yer alır.
Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.
python-library/json_api_forge/control_plane.pymain/framework/editor_api.pypython-library/contract-tests/test_against_main.py