L lionbackup CLOUD
REGISTRIEREN LOGIN
Jetzt verfügbar

Die lionbackup-API

Projekte anlegen, Backup-Token ausstellen und widerrufen, Zonen und Organisationen abfragen: eine REST-API mit JSON, offener OpenAPI-3.1-Spezifikation und Terraform-Provider. Sie prüft dieselben Rechte wie das Portal.

In drei Schritten zum ersten Aufruf

  1. Service Account und Schlüssel anlegen

    Im Portal unter Developer legen Sie einen Service Account und dazu einen API-Schlüssel an. Der Service Account hat genau die Rechte Ihres Benutzerkontos; der Schlüssel wird nur einmal angezeigt.

  2. Schlüssel gegen ein Zugriffstoken tauschen

    Der Schlüssel ist kein Bearer-Token. Sie tauschen ihn gegen ein Zugriffstoken, das 15 Minuten gilt:

    ACCESS_TOKEN=$(curl -s https://authentik.prod.lionbackup.cloud/application/o/token/ \
      -d grant_type=client_credentials \
      -d client_id=lionbackup-api \
      -d client_secret="$LIONBACKUP_API_KEY" \
      -d scope="profile lionbackup_api" | jq -r .access_token)
  3. Aufrufe mit dem Token senden

    Alle Endpunkte liegen unter https://api.lionbackup.cloud/api/v1 und erwarten das Token in der Kopfzeile Authorization:

    API=https://api.lionbackup.cloud/api/v1
    
    curl -s "$API/organizations" -H "Authorization: Bearer $ACCESS_TOKEN"
    
    # 200
    {"organizations": [{
      "id": "9b2e6c1a-…", "name": "Beispiel GmbH",
      "status": "approved", "role": "owner"
    }]}

Beispiel: Projekt anlegen und Write-Token ausstellen

Ein Projekt braucht einen Namen und die Kennung seiner Storage-Zone. Ein Backup-Token gehört zu genau einem Projekt: Mit einem Write-Token sichert der Client, mit einem Read-Token stellt er wieder her.

# Zone wählen: buchbar sind Zonen mit status "active"
ZONE_ID=$(curl -s "$API/zones" -H "Authorization: Bearer $ACCESS_TOKEN" \
  | jq -r '.zones[] | select(.name == "de01-1") | .id')

# Projekt anlegen (Rolle owner oder admin in der Organisation)
curl -s -X POST "$API/organizations/$ORG_ID/projects" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"name\":\"web-servers\",\"availability_zone_id\":\"$ZONE_ID\"}"

# 201
{"project": {
  "id": "ea1296ad-…", "name": "web-servers", "status": "active",
  "availability_zone_id": "b0000001-…", "alert_email": null, …
}}

# Write-Token für den Client ausstellen
curl -s -X POST "$API/projects/$PROJECT_ID/tokens" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"write","operating_system":"Linux"}'

# 201: "secret" ist das Backup-Token und erscheint nur in dieser Antwort
{"token": {"id": "c4d1e8f2-…", "type": "write", "secret": "9f3e7b1c…"}}

Antworten und Kennungen sind gekürzt dargestellt. Ein Projekt wird nicht gelöscht, sondern mit POST /projects/{projectId}/close geschlossen: Write-Token werden sofort widerrufen, Read-Token bleiben für Wiederherstellungen während der Vorhaltezeit gültig.

Alle Endpunkte

Projekte

GET/organizations/{orgId}/projects POST/organizations/{orgId}/projects GET/projects/{projectId} PATCH/projects/{projectId} POST/projects/{projectId}/close

Auflisten, anlegen, lesen, Name, Alarm-E-Mail und Abrechnungsreferenz ändern, schließen.

Backup-Token

GET/projects/{projectId}/tokens POST/projects/{projectId}/tokens DELETE/projects/{projectId}/tokens/{tokenId}

Read- und Write-Token für Linux, Windows und macOS anlegen, auflisten (nur Metadaten) und widerrufen.

Verzeichnis

GET/zones GET/organizations GET/whoami GET/openapi.yaml

Storage-Zonen mit Status, Ihre Organisationen samt Rolle, das handelnde Service Account und die Spezifikation des laufenden Standes.

Gut zu wissen

Rechte wie im Portal

Ein Service Account erbt die Rechte seines Besitzers. Was Sie nicht sehen dürfen, antwortet mit 404; eine Aktion, die Ihre Rolle nicht erlaubt, mit 403.

Geheimnis nur einmal

Das Geheimnis eines Backup-Tokens erscheint nur in der Antwort auf das Anlegen. Die Plattform speichert davon nur einen Hash.

Ratenbegrenzung

60 Anfragen pro Minute je Service Account und je IP-Adresse. Jede Antwort trägt X-RateLimit-Kopfzeilen; darüber antwortet die API mit 429 und Retry-After.

Stabile Fehlercodes

Jeder Fehler ist ein JSON-Objekt {"error":"<code>"}, etwa invalid_token, not_found oder project_closed.

Schließen statt löschen

Das Schließen eines Projekts widerruft alle Write-Token sofort. Read-Token bleiben gültig, solange Backups in der Vorhaltezeit liegen, damit Sie weiterhin wiederherstellen können.

Benutzer und Organisationen

Benutzer, Rollen und Organisationen verwalten Sie im Portal. Die API deckt Projekte und Backup-Token ab; die Sicherung selbst übernimmt der quelloffene lionbackup-Client.

Spezifikation und Terraform

OpenAPI 3.1

Die vollständige Spezifikation als openapi.yaml, dazu eine interaktive Referenz in der Dokumentation. Die API liefert dieselbe Datei unter /api/v1/openapi.yaml aus und beschreibt damit immer den laufenden Stand.

Terraform-Provider

Mit dem Provider lionbackup legen Sie Projekte und Backup-Token als Infrastruktur-Code an, für Terraform ab 1.9 und OpenTofu. Einrichtung und Beispiel in der Dokumentation.

Fragen zur API beantworten wir über das Kontaktformular.