Skip to content

Editor Remote ve Ekip

Cavanshirpro edited this page Sep 19, 2026 · 1 revision

Uzak Editör, founder, roller ve ekip çalışması

English · Türkçe · Languages / Diller

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

Control plane prefix'i /__forge/editor/v1 olur ve EDITOR_API_ENABLED=false iken mevcut değildir. App API key/JWT veya operator token bu alana giriş yapmaz.

Güvenli ilk kurulum

Yeni dağıtımda:

forge init --editor --production
forge migrate

Mevcut .env için CLI init uyarısını okuyun. Sonra gerçek topolojinize göre:

EDITOR_API_ENABLED=true
EDITOR_SETUP_ENABLED=true
EDITOR_REQUIRE_HTTPS=true
EDITOR_ALLOWED_IPS=10.20.0.0/16
EDITOR_TRUSTED_PROXY_CIDRS=127.0.0.1/32
EDITOR_TRUSTED_HOSTS=forge-admin.example.com
EDITOR_LEGACY_TOKEN_ENABLED=false
EDITOR_ALLOW_CREATE_PROJECTS=false
EDITOR_ALLOW_HOOKS=false
EDITOR_ALLOW_GRAPHS=true
EDITOR_ALLOWED_PROJECTS=WikiDemo

Örnek CIDR'lar sadece örnektir. Gerçek VPN/istemci ve reverse proxy aralıkları kullanılmalıdır. Güçlü EDITOR_TOKEN, forge init --editor tarafından üretilen tek kullanımlık setup sırrıdır.

Editörde File → Connect to server… üzerinden founder setup sayfasını bir kez tamamlayın. Sonra EDITOR_SETUP_ENABLED=false yapın, EDITOR_TOKEN değerini ortamdan kaldırın ve worker'ları yeniden başlatın. Bundan sonra kişi başına hesap ve süreli davet kullanın.

Roller

Rol Rank Genel amaç
Founder 1000 Korunan kurucu hesap
Administrator 800 Geniş yönetim, üst rank kısıtları sürer
Developer 600 Proje/config/graph geliştirme, ilan edilmiş DB okuma
Analyst 400 Doküman/veri okuma ve seçili işbirliği
Collaborator 200 Doküman ve ekip iletişimi; DB kapsamı yok
Viewer 100 Sınırlı okuma; DB metadata izni, row okuma değil

Tam yerleşik izin listeleri control plane referansında koddan üretilmiştir. Rol adı tek başına yetki açıklaması değildir. Kullanıcı birden fazla global/project membership taşıyabilir; izinler ve kapsamlar birlikte değerlendirilir.

Yönetici kendi rank'ına eşit/üst rol oluşturamaz, sahip olmadığı izni devredemez ve scope'u genişletemez. Document deny kuralları delegation sırasında korunur. Founder remote API ile devre dışı bırakılmaz veya başka role atanmaz. Yerleşik roller immutable'dır; ihtiyaca özel daha düşük custom roller oluşturulur.

Belgeler ve eşzamanlı kayıt

Allowlist app.json, doğrudan config/*.json, ayrıca açılmış graphs/*.forgegraph.json ve hooks/*.py ile sınırlıdır. .env, keyfi kaynak kodu, traversal ve symlink reddedilir.

Save sırasında mevcut SHA-256 revision gerekir. Server process/file lock alır, allowlist belgeleri staging'e kopyalar, tüm projeyi doğrular, geçici dosyayı fsync edip atomik değiştirir. Aynı filesystem'i paylaşan worker'lar için kilit vardır; farklı hostların konfigürasyon koordinasyonu ayrı tasarlanır.

EDITOR_READ_ONLY, role write izni olsa bile yazmayı engeller. Hook için hem EDITOR_ALLOW_HOOKS hem documents.hooks.write; graph için ayrı graph policy ve permission gerekir. Hook yetkisi süreç hesabı düzeyinde kod çalıştırma riski taşır.

Team workspace

Integrations → Server team workspace: profil, roller, üyelikler, project area, mesaj/announcement, not, attachment, DB browser, call ve audit sekmeleri sunar. Open area, yetkili proje üyelerine; restricted area rank/role koşullarına göre görünür. Private note herkese açık proje notu değildir.

DB browser raw SQL almaz. Runtime-declared kaynaklar, readable/hidden field politikaları ve bounded SELECT pagination üzerinden çalışır. Undeclared tablo erişimi ancak server switch ve databases.undeclared.read izniyle mümkündür.

Attachments public web root dışında, rastgele storage adlarıyla tutulur; indirme yetkili endpointten geçer. Dosya path'lerinin private olduğunu düşünerek ayrı auth'u atlamayın.

Ses/video ve session

WebRTC medya DTLS-SRTP ile peer-to-peer taşınır; Forge audio/video kaydetmez, bounded signaling sağlar. TURN gerektiğinde relay hizmeti ayrıca kurulur. TURN kimlik bilgileri yetkili katılımcı browser'ına gider; kısa ömürlü ve dar politika tercih edilir.

Qt WebEngine varsa off-the-record profil; yoksa sistem browser'ı kullanılır. Ticket kısa ömürlü ve single-use'dur; fragment'tan WebSocket subprotocol'a taşınır. Native ASGI/WSS gerekir. Session varsayılan mutlak ömrü 12 saat, idle sınırı 1 saattir; member disable session'ları iptal eder.

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