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.
Backups API, bir projenin yedekleme politikalarını (neyin ve hangi programa göre yedekleneceğini), ürettikleri çalıştırmaları
ve bir çalıştırmanın verilerini geri yükleyen geri yüklemeleri yönetir. Bu API,
Yedekleme Hedefleri API'si (yedeklemelerin depolandığı yer) ile eşleşir — dashboard'da bu,
projenin Yedeklemeler sekmesidir ve terminalden alaf server backup
komutudur.
Temel yol ve kimlik doğrulama
Tüm yollar, örneğinizle ilişkilidir, /api altında bulunur — örn. https://your-host/api/backup-runs/<id>.
alaf server token create ile oluşturulmuş kişisel bir erişim token'ını bearer header olarak (Authorization: Bearer <token>) gönderin.
Dashboard bunun yerine oturum çerezinizi kullanır. Tam kimlik doğrulama modeli için API genel bakışına bakın.
Rotalar birkaç öneke ayrılmıştır: politika oluşturma ve listeleme proje kapsamlıdır
(/api/projects/:projectId/backup-policies), mevcut bir politika, çalıştırma veya geri yükleme ise kendi kimliğiyle
(/api/backup-policies/:id, /api/backup-runs/:id, /api/backup-restores/:id) ele alınır. Gelen
POST /api/webhooks/backup tetikleyicisi, kendi kimlik doğrulaması olmayan önekinde bulunur. Hem self-hosted
hem de cloud örneklerinde mevcuttur; proje kapsamlı politika ve çalıştırma rotaları, cloud projeleri için Alaf Server Cloud'a proxy yapar.
Uç Noktalar
| Metot ve yol | İzin | Ne işe yarar |
|---|---|---|
GET /api/projects/:projectId/backup-policies | project:write | Bir projenin yedekleme politikalarını (programlar/saklama) listeler. |
POST /api/projects/:projectId/backup-policies | project:write | Bir proje için yedekleme politikası oluşturur. |
PATCH /api/backup-policies/:policyId | backup_destination:backup_policy:write | Bir politikayı günceller. |
DELETE /api/backup-policies/:policyId | backup_destination:backup_policy:write | Bir politikayı siler. |
POST /api/backup-policies/:policyId/run | backup_destination:backup_policy:write | Politikanın yedeklemesini şimdi tetikler. |
GET /api/projects/:projectId/backup-runs | project:write | Bir projenin yedekleme çalıştırmalarını (geçmiş, durum) listeler. |
GET /api/backup-runs/:runId | backup_destination:backup_run:read | Bir yedekleme çalıştırmasının ayrıntılarını/durumunu alır. |
GET /api/backup-runs/:runId/stream | backup_destination:backup_run:read | Bir çalıştırmanın canlı ilerlemesinin SSE akışı. |
POST /api/backup-runs/:runId/protect | backup_destination:backup_run:write | Bir çalıştırmayı saklama budamasından korur (veya serbest bırakır). |
POST /api/backup-runs/:runId/restore/prepare | backup_destination:backup_run:write | Bir çalıştırmadan geri yükleme hazırlar; bir onay token'ı döndürür. |
POST /api/backup-restores/:restoreId/apply | backup_destination:backup_restore:write | Hazırlanmış bir geri yüklemeyi uygular (yıkıcı). |
POST /api/backup-restores/:restoreId/cancel | backup_destination:backup_restore:write | Hazırlanmış veya devam eden bir geri yüklemeyi iptal eder. |
GET /api/backup-restores/:restoreId | backup_destination:backup_restore:read | Bir geri yüklemenin durumunu alır. |
GET /api/backup-restores/:restoreId/stream | backup_destination:backup_restore:read | Bir geri yüklemenin canlı ilerlemesinin SSE akışı. |
POST /api/webhooks/backup | public | Gelen bir webhook'tan yedeklemeyi tetikler (bearer token kimlik bilgisidir). |
Kaynak başına rotalar ikinci bir izin kontrolü çalıştırır
Yukarıda gösterilen izin etiketinin ötesinde, çoğu :id rotası da bir işleyici içi kontrolü çalıştırır. Politika güncelleme,
silme ve manuel çalıştırma rotaları üst projeyi yeniden kontrol eder (güncellemek veya çalıştırmak için yazma, admin
silmek için). Çalıştırma ve geri yükleme rotaları bunun yerine çalıştırmanın veya geri yüklemenin kendisini kontrol eder: görüntülemek veya akış yapmak için okuma,
bir çalıştırmayı korumak için yazma ve her yıkıcı geri yükleme adımı (hazırlama, uygulama, iptal) için admin.
Kuruluşunuzda olmayan bir :id 404 döndürür.
Yedekleme politikası oluşturma
Bir politika, bir projeyi (isteğe bağlı olarak tek bir hizmeti) bir hedefe bağlar,
ayrıca isteğe bağlı bir program ve saklama kuralları içerir. İstek gövdesi satır içi okunur (bu modül için TypeBox şema dosyası yoktur);
destinationId tek gerekli alandır.
POST /api/projects/:projectId/backup-policiesProp
Type
curl -X POST https://your-host/api/projects/proj_123/backup-policies \
-H "Authorization: Bearer $ALAFSERVER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"destinationId":"dst_abc","cronExpression":"0 3 * * *","retainCount":7}'# CLI'dan aynı işlem:
alaf server backup policy create --project proj_123 --destination dst_abc \
--cron "0 3 * * *" --retain-count 7Bir politikayı güncelleme
PATCH yalnızca aşağıda izin verilen alanları kabul eder — projectId, serviceId ve createdBy değiştirilemez
ve webhook token'ı doğrudan yazılmak yerine enableWebhook / rotateWebhookToken bayrakları aracılığıyla kontrol edilir.
Bilinmeyen alanlar atılır.
PATCH /api/backup-policies/:policyIdProp
Type
Bir yedeklemeyi manuel olarak tetikleme
Politika için bir çalıştırmayı hemen başlatır. { data: { runId } } döndürür — çalıştırma akışı ile takip edin.
POST /api/backup-policies/:policyId/runcurl -X POST https://your-host/api/backup-policies/bkp_abc/run \
-H "Authorization: Bearer $ALAFSERVER_TOKEN"# Tetikle ve tamamlanana kadar akış yap:
alaf server backup policy run bkp_abc --followBir çalıştırmayı saklamadan koruma
Saklama budaması, bir politikanın retainCount / retainDays değerini aşan çalıştırmaları siler. Bir çalıştırmayı saklamak için kilitleyin veya tekrar uygun hale gelmesi için kilidi serbest bırakın.
POST /api/backup-runs/:runId/protectProp
Type
# Süresiz olarak kilitle veya serbest bırak:
alaf server backup run protect run_xyz
alaf server backup run protect run_xyz --releaseBir geri yüklemeyi hazırlama ve uygulama
Geri yükleme iki adımdan oluşur. Hazırlama geri yüklemeyi hazırlar ve tek kullanımlık bir confirmationToken döndürür; uygulama ise (yıkıcı) geri yüklemeyi gerçekten çalıştırmak için bu token'ı geri yansıtır. Bu, kazara yeniden göndermelere karşı koruma sağlar.
POST /api/backup-runs/:runId/restore/prepareProp
Type
Yanıt { data: { restoreId, confirmationToken } } şeklindedir. Uygulamak için her ikisini de geçirin:
POST /api/backup-restores/:restoreId/applyProp
Type
# Hazırla, sonra döndürülen token ile uygula:
alaf server backup run restore run_xyz
alaf server backup restore apply rst_123 --token <confirmationToken>Hazırlanmış veya devam eden bir geri yüklemeyi POST /api/backup-restores/:restoreId/cancel
(alaf server backup restore cancel rst_123) ile iptal edin.
Canlı ilerleme (SSE)
Hem çalıştırmalar hem de geri yüklemeler, mevcut satırı hemen bir snapshot olayıyla, ardından canlı transition / progress olaylarıyla ve son bir complete olayıyla yayan bir Server-Sent Events kanalı sunar. Terminal durumları succeeded, failed, cancelled ve server_error'dır; akış, bunlardan birine ulaşıldığında (veya satır zaten terminal durumundaysa hemen) kapanır.
GET /api/backup-runs/:runId/stream
GET /api/backup-restores/:restoreId/stream# CLI'ın --follow bayrağı bu akışları tüketir:
alaf server backup run get run_xyz --follow
alaf server backup restore get rst_123 --followWebhook ile yedeklemeyi tetikleme
POST /api/webhooks/backup tek kimlik doğrulaması olmayan rotadır — politika başına webhook token'ı kimlik bilgisidir ve bearer header olarak gönderilir (politikada enableWebhook aracılığıyla etkinleştirin). İstek gövdesi yoktur.
Başarılı olduğunda { data: { runId } } döndürür; her başarısızlık opak bir 404 döndürür, böylece bir deneme kötü bir token'ı devre dışı bırakılmış bir politikadan ayırt edemez. Rota, tetikleme-sel baskınını engellemek için hız sınırlıdır.
POST /api/webhooks/backupcurl -X POST https://your-host/api/webhooks/backup \
-H "Authorization: Bearer $POLICY_WEBHOOK_TOKEN"Görebileceğiniz hatalar
400 — geçersiz cron ifadesi
createPolicy / updatePolicy cron'u önceden doğrular, böylece ayrıştırılamayan bir program politikayı sessizce devre dışı bırakamaz.
İfadeyi düzeltin (örn. 0 3 * * *) ve tekrar deneyin.
400 — confirmationToken gerekli
restore/prepare tarafından döndürülen tam token olmadan bir geri yükleme uygulamak reddedilir.
Kaybettiyseniz yeni bir token almak için hazırlama işlemini tekrar çalıştırın.
Kaynak başına rotada 404
:id kuruluşunuza ait değil (veya silindi) — webhook'un kötü bir token için döndürdüğü aynı opak 404.
Geçerli kimlikleri almak için GET /api/projects/:projectId/backup-runs ile çalıştırmaları listeleyin.
System API
Self-hosted instance administration — onboarding, SSH servers, component install, tunnels, filesystem browse, team-mode migration, and whole-instance data transfer.
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.