Yedekleme hedefleri API'si
Yedeklemelerin yazıldığı depolama hedeflerini (S3-uyumlu, SFTP, yerel veya başka bir Alaf Server sunucusu) yönetin ve bağlantı ön kontrolü (preflight) çalıştırın.
Bir yedekleme hedefi, yeniden kullanılabilir bir depolama hedefidir — bir S3-uyumlu bucket, bir SFTP server, yerel bir dosya sistemi yolu veya başka bir Alaf Server sunucusu — ki yedekleme politikaları arşivlerini buraya yazar. Bu API, bu hedefleri oluşturur ve yönetir ve bir hedefin gerçekten erişilebilir olduğunu kanıtlayan bir preflight (bir deneme nesnesi yazar, geri okur ve siler) çalıştırır. Kimlik bilgileri beklemedeyken şifrelenir; serileştirilmiş hedefler asla gizli değerler döndürmez, yalnızca hangilerinin yapılandırıldığını gösteren hasX bayraklarını döndürür.
Temel yol ve kimlik doğrulama
Tüm yollar, örneğin https://your-host/api/backup-destinations gibi, /api altında, örneğinize göredir.
alaf server token create ile oluşturulmuş bir kişisel erişim token'ını bir bearer header (Authorization: Bearer <token>) olarak gönderin. Dashboard bunun yerine oturum çerezinizi kullanır. Ayrıntılar için API genel bakışı ve kimlik doğrulama modeli bölümlerine bakın.
Bu modül hem self-hosted hem de cloud instance'larda mevcuttur. local hedef türü yalnızca self-hosted içindir — cloud modunda reddedilir ve self-hosted'da açıkça etkinleştirilmesi gerekir (aşağıya bakın).
Uç Noktalar
| Metot ve yol | İzin | Ne yapar |
|---|---|---|
GET /api/backup-destinations | backup_destination:list | Kuruluşun hedeflerini listeler (gizli bilgiler maskelenmiş). |
POST /api/backup-destinations | backup_destination:write | Bir hedef oluşturur. |
GET /api/backup-destinations/:id | backup_destination:read | Tek bir hedefi alır. |
PATCH /api/backup-destinations/:id | backup_destination:write | Bir hedefin alanlarını veya kimlik bilgilerini günceller. |
DELETE /api/backup-destinations/:id | backup_destination:admin | Bir hedefi siler. |
POST /api/backup-destinations/:id/preflight | backup_destination:write | Bağlantıyı doğrular (bir deneme yazar + okur + siler). |
Hedef oluştur
POST /api/backup-destinationsProp
Type
Gerekli alanlar kind'a bağlıdır:
s3_compatible—bucket,accessKeyIdvesecretAccessKey.sftp—sshHost,sshUservesftpPassword/sftpPrivateKey'den biri.alaf server_server—serverId(kuruluşunuzdaki bir sunucu).local—endpoint(BACKUP_LOCAL_ROOTiçindeki mutlak bir yol).
curl -X POST https://your-host/api/backup-destinations \
-H "Authorization: Bearer $ALAFSERVER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"prod-s3","kind":"s3_compatible","bucket":"my-backups","region":"us-east-1","accessKeyId":"AKIA...","secretAccessKey":"..."}'# CLI'dan aynı işlem:
alaf server backup destination create \
--name prod-s3 --kind s3_compatible \
--bucket my-backups --region us-east-1 \
--access-key-id AKIA... --secret-access-key ...Bir hedefi güncelle
Yalnızca değiştirmek istediğiniz alanları gönderin. Kimlik bilgileri için, undefined (atlanmış) depolanan değeri değiştirmez, null onu temizler ve bir string onu değiştirir. Oluşturulduktan sonra kind değiştirilemez.
PATCH /api/backup-destinations/:idProp
Type
curl -X PATCH https://your-host/api/backup-destinations/bkd_123 \
-H "Authorization: Bearer $ALAFSERVER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"pathPrefix":"nightly/","isDefault":true}'Preflight (bağlantıyı doğrula)
Küçük bir deneme nesnesi yazarak, geri okuyarak ve silerek hedefin çalıştığını kanıtlar. Başarılı olduğunda lastVerifiedAt'i damgalar; başarısız olduğunda hatayı lastVerifyError'a kaydeder.
POST /api/backup-destinations/:id/preflightcurl -X POST https://your-host/api/backup-destinations/bkd_123/preflight \
-H "Authorization: Bearer $ALAFSERVER_TOKEN"# CLI'dan aynı işlem:
alaf server backup destination preflight bkd_123Başarısız bir kontrol hala 200 döner
Hedef erişilemez veya yanlış yapılandırılmış olduğunda Preflight {"ok": false, "reason": "..."} ile 200 döndürür — neden (hatalı kimlik bilgileri, DNS hatası, izin reddedildi) HTTP status'ta değil, gövdededir. Buradaki bir 404, :id'nin kuruluşunuza ait olmadığı anlamına gelir.
Görebileceğiniz hatalar
400 — doğrulama başarısız oldu
Gövdede kind'ı için gerekli bir alan eksik (örn. bucket veya kimlik bilgileri olmayan bir S3 hedefi), name boş / 80 karakterden uzun veya mevcut bir hedefi kopyalıyor ya da desteklenmeyen bir kind geçtiniz. http_upload tanımlı ancak henüz desteklenmiyor.
400 — yerel hedefler devre dışı
Bir local hedefi BACKUP_ALLOW_LOCAL_DESTINATION=true ve yapılandırılmış bir BACKUP_LOCAL_ROOT gerektirir ve endpoint bu kök dizin içinde mutlak bir yola çözümlenmelidir. Yerel hedefler cloud modunda her zaman reddedilir.
Hedef başına rotada 404
:id kuruluşunuza ait değil (veya silindi). Geçerli ID'leri almak için hedeflerinizi GET /api/backup-destinations ile listeleyin.
Yedeklemeler API'si
Yedekleme politikalarını planlayın, yedeklemeleri çalıştırın ve inceleyin, geri yüklemeleri hazırlayın ve uygulayın, ve webhook ile yedeklemeleri tetikleyin.
Terminal API
Open an interactive SSH shell to a managed server over a WebSocket, authenticated by a single-use handshake ticket.