Repository navigation
Editor Remote ve Ekip
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.
Yeni dağıtımda:
forge init --editor --production
forge migrateMevcut .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.
| 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.
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.
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.
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.
Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.
main/framework/editor_api.pymain/framework/editor_identity.pymain/framework/editor_database.pymain/framework/settings.pyEditor/editor/src/TeamWorkspace.cpp