API

API'ye genel bakış

Alaf Server HTTP API'si — temel URL, kimlik doğrulama, izinler, hız limitleri ve standart JSON hata yapısı.

dashboard'ın ve alaf server CLI'sinin yapabildiği her şey aynı HTTP API'sine yapılan bir çağrıdır: proje oluşturma, deploy'ları tetikleme, domain'leri bağlama, analitik okuma, yedekleri yönetme. Bu, Hono üzerine kurulu düz bir JSON API'sidir, bu sayede bir script'ten, bir CI işinden veya bir AI agent'tan, birinci taraf istemcilerin yaptığı gibi yönetebilirsiniz.

Temel URL ve kimlik doğrulama

Her route, kendi instance'ınızda /api altında yer alır — örn. https://your-host/api/projects. Barındırılan bir /v1 gateway'i ve ayrı bir anahtar formatı yoktur: temel URL, Alaf Server'ı çalıştırdığınız yerdir. alaf server token create ile oluşturulan kişisel bir erişim token'ı ile bearer header (Authorization: Bearer <token>) olarak kimlik doğrulayın; dashboard bunun yerine bir oturum çerezi kullanır. Tüm ayrıntılar Kimlik Doğrulama bölümünde.

Kimlik doğrulama

Bir istek, kimliğini tam olarak dört yoldan biriyle kanıtlar. Alaf Server önce bir Bearer token'ı, ardından bir oturum çerezini, sonra da loopback fallback'i (yalnızca bu mod etkinse) kontrol eder.

YöntemNe gönderirsinizKim kullanır
Kişisel erişim token'ıAuthorization: Bearer opsh_pat_…CLI, script'ler, server-to-server
Oturum çereziGirişte ayarlanan httpOnly çerezBir tarayıcıdaki dashboard
MCP OAuthOnayda bağlanan bir OAuth 2.1 erişim token'ı/api/mcp'ye bağlanan AI agent'lar
Sıfır-auth loopbackHiçbir şey (127.0.0.1'den gelen istek)Masaüstü uygulaması / isteğe bağlı tek kullanıcılı instance
curl https://your-host/api/projects \
  -H "Authorization: Bearer $ALAFSERVER_TOKEN"

Bearer yalnızca tarayıcı dışı istemciler içindir

Tarayıcı tarafından güvenilen bir kaynaktan sunulan bir Bearer token'ı reddedilir (BEARER_NOT_ALLOWED_FROM_BROWSER), böylece sızdırılmış bir oturum token'ı httpOnly çerezi dışında tekrar oynatılamaz. Bir token kuruluş kapsamlı olabilir (uyuşmayan bir X-Organization-Id'yi TOKEN_ORG_SCOPE ile reddeder) ve salt okunur olabilir (değişiklikleri TOKEN_READ_ONLY ile reddeder). MCP OAuth keşfi, kaynak kökünde sunulur: /.well-known/oauth-authorization-server ve /.well-known/oauth-protected-resource.

İzinler

Kimlik doğrulandıktan sonra, her route bir izin kontrolü çalıştırır. Her route resource:actionproject:read, domain:write, deployment:admin — şeklinde bir etiket bildirir ve alt kaynaklar araya bir segment ekler (project:service:write). Eylem, HTTP yöntemiyle uyumludur: read (bir tane GET), write (POST/PUT/PATCH), admin (DELETE ve yıkıcı), list (bir koleksiyon GET).

Erişim kuruluş başına belirlenir. Alaf Server, X-Organization-Id header'ından (oturum varsayılanınıza geri döner) hangi kuruluşu kastettiğinizi çözer, ardından oradaki rolünüzü kontrol eder — owner, admin, member veya restricted (yalnızca yetki). Herhangi bir route'un etiketi eksikse Alaf Server önyüklemeyi reddeder, bu nedenle yanlışlıkla korunmasız bir endpoint yoktur. Modül sayfalarındaki endpoint başına tablolar, her route için etiketi listeler; tam model için İzinler ve roller bölümüne bakın.

Hız limitleri

Tüm /api yüzeyi hız limitine tabidir. Kimliği doğrulanmamış istekler IP başına varsayılan bir limite tabi iken; kimliği doğrulanmış istekler kullanıcı başına daha cömert bir bütçe alır. Bazı route grupları daha sıkı veya daha gevşek adlandırılmış bir politika taşır. Limitler her dönen dakika içindir.

PolitikaLimitAnahtarUygulandığı yer
default-anon100 / dakIPKimliği doğrulanmamış herhangi bir route
default-authed600 / dakkullanıcıKimliği doğrulanmış herhangi bir route
auth-tight10 / dakIPPOST /api/auth/* (giriş, kayıt, sıfırlama)
mcp300 / dakIP/api/mcp (araç çağrısı patlamaları)
webhook-ingress120 / dakkaynak IPGelen webhook teslimatları
billing-portal20 / dakkuruluşStripe portalı / ödeme oluşturma

Her yanıt X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset header'larını taşır. /api/health asla sınırlanmaz (load balancers ve SSR onu sorgular).

429 — Çok fazla istek

Bir kova tükendiğinde, istek {"error":"Too many requests"} gövdesi ve bir Retry-After header'ı (saniye) ile 429 alır. Hemen yeniden denemek yerine pencere sıfırlanana kadar bekleyin.

Hata yapısı

Hatalar, kararlı bir yapıyla JSON olarak geri döner: insan tarafından okunabilir bir error mesajı ve, tipik hatalar için, makine tarafından okunabilir bir code. Doğrulama hataları, alan düzeyinde bir details haritası ekler.

{ "error": "This access token is read-only", "code": "TOKEN_READ_ONLY" }
DurumTipik codeAnlamı
400VALIDATION_ERRORİstek gövdesi şemayı geçemedi — hatalı alanlar için details'a bakın.
401INVALID_TOKEN, BEARER_NOT_ALLOWED_FROM_BROWSERKimliği doğrulanmadı veya kötü/süresi dolmuş bir token (hiç oturum yoksa düz Unauthorized).
403TOKEN_ORG_SCOPE, TOKEN_READ_ONLYKimliği doğrulandı ancak izin verilmedi — yanlış kuruluş, salt okunur token veya rolünüz/yetkileriniz eylemi reddediyor.
404Kaynak mevcut değil veya kuruluşunuzda değil (IDOR-güvenli).
409Mevcut durumla çakışma (örn. zaten devam eden bir silme işlemi).
429Hız limitine takıldı (yukarıya bakın).
503AUTH_UNAVAILABLEauth backend'ine ulaşılamıyor — yeniden deneyin; asla "oturum yok" olarak değerlendirilmez.
500İşlenmeyen server hatası ({"error":"Internal server error"}, kod yok).

Route grupları ve kullanılabilirlik

Route'lar modül başına monte edilir. Çoğu her deploy modunda mevcuttur; birkaçı yalnızca self-hosted'dir (ana bilgisayar dosya sistemine, SSH'ye veya yerel kuruluma dokunurlar ve bulut modunda asla yüklenmezler) ve bulut gateway'i route setini moda göre değiştirir.

Temel yolKapsarKullanılabilirlik
/api/healthLiveness + genel deploy meta verileriHer ikisi de (kimliği doğrulanmamış)
/api/authOturumlar, OAuth, kuruluş yönetimi (Better Auth)Her ikisi de
/api/projectsProjeler, env, deploy yapılandırmasıHer ikisi de
/api/projects/:id/servicesBir proje içindeki servislerHer ikisi de
/api/deploymentsBuild'ler, deploy'lar, geri almalarHer ikisi de
/api/domainsÖzel domain'ler, DNS, SSLHer ikisi de
/api/githubGitHub bağlantısı, repo'lar, webhooksHer ikisi de
/api/webhooksGelen sağlayıcı webhooks'ları ( /api/webhooks/backup da)Her ikisi de
/api/analyticsTrafik, kullanım, deployment istatistikleriHer ikisi de
/api (backups)Yedekleme çalıştırmaları ve geri yüklemelerHer ikisi de
/api/backup-destinationsYedekleme hedefleri, politikaları, zamanlamalarıHer ikisi de
/api/notificationsKanallar, abonelikler, teslimatlarHer ikisi de
/api/auditKuruluş denetim günlüğüHer ikisi de
/api/settingsÇalışma alanı / deploy varsayılanlarıHer ikisi de
/api/tokensKişisel erişim token'larıHer ikisi de
/api/permissionsRoller ve kaynak yetkileriHer ikisi de
/api/billingPlanlar, kullanım, ödemeHer ikisi de (moda özgü uzantılar)
/api/mcpModel Context Protocol JSON-RPC endpoint'iHer ikisi de
/api/imagesContainer image yardımcılarıHer ikisi de
/api/services/terminalEtkileşimli servis terminali (WebSocket)Her ikisi de
/api/cloudCloud hesap bağlantısı / gatewayHer ikisi de (SaaS vs yerel route seti)
/api/systemDosya sistemi tarama, instance kurulumu, provisioningYalnızca self-hosted
/api/mailSelf-hosted mail server sihirbazıYalnızca self-hosted
/api/migrationMevcut bir Docker host'unu benimsemeYalnızca self-hosted
/api/terminalEtkileşimli server (SSH) terminaliYalnızca self-hosted

Modül referansı

Health

Genel liveness ve deployment-info prob'ları.

Auth

Oturumlar, OAuth ve kuruluş yönetimi.

Projects

Projeler, env değişkenleri ve deploy ayarları oluşturun ve yapılandırın.

Services

Bir projeyi oluşturan servisleri yönetin.

Deployments

Build'leri tetikleyin, deploy edin, iptal edin, yeniden başlatın ve geri alın.

Domains

Domain'leri bağlayın, DNS'i önizleyin ve doğrulayın, SSL'i yönetin.

GitHub

Hesapları bağlayın, repo'lara göz atın ve push auto-deploy'u bağlayın.

Webhooks

Bir push'u bir deploy'a dönüştüren gelen sağlayıcı webhooks'ları.

Analytics

Trafik, kullanım, container ve deployment metrikleri.

Backups

Yedekleme çalıştırmaları, geri yüklemeler ve durumları.

Backup destinations

Yedekleme hedefleri, politikaları ve zamanlamaları.

Notifications

Kanallar, abonelikler ve uyarı akışı.

Audit

Kuruluşun denetim günlüğünü okuyun.

Settings

Çalışma alanı build ve deploy varsayılanları.

Tokens

Kişisel erişim token'ları oluşturun ve iptal edin.

Permissions

Rolleri ve kaynak başına yetkileri yönetin.

Billing

Planlar, kullanım ve ödeme.

MCP

AI agent'ları için Model Context Protocol endpoint'i.

Images

Servisler için build-image kataloğuna göz atın.

Service terminal

Çalışan bir servis container'ına bir shell açın.

Cloud

Bir instance'ı Alaf Server Cloud'a ve kontrol düzlemi endpoint'lerine bağlayın.

System

Self-hosted instance yönetimi (yalnızca self-hosted).

Mail

Self-hosted bir mail stack'i kurun ve çalıştırın (yalnızca self-hosted).

Migration

Mevcut bir Docker host'unu proje olarak benimseyin (yalnızca self-hosted).

Terminal

Yönetilen bir server'a etkileşimli SSH shell'i (yalnızca self-hosted).

On this page