L lionbackup CLOUD
TILMELD LOGIN
Tilgængelig nu

lionbackup-API’et

Opret projekter, udsted og tilbagekald backup-tokens, forespørg zoner og organisationer: et REST-API med JSON, åben OpenAPI 3.1-specifikation og Terraform-provider. Det anvender de samme rettigheder som portalen.

Dit første kald i tre trin

  1. Opret en servicekonto og en nøgle

    I portalen under Developer opretter du en servicekonto og en API-nøgle til den. Servicekontoen har præcis de samme rettigheder som din brugerkonto; nøglen vises kun én gang.

  2. Byt nøglen til et adgangstoken

    Nøglen er ikke et bearer-token. Du bytter den til et adgangstoken, der gælder i 15 minutter:

    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. Send kald med tokenet

    Alle endpoints ligger under https://api.lionbackup.cloud/api/v1 og forventer tokenet i headeren Authorization:

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

Eksempel: opret et projekt og udsted et write-token

Et projekt kræver et navn og ID’et på dets storage-zone. Et backup-token hører til præcis ét projekt: med et write-token tager klienten backup, med et read-token gendanner den.

# Vælg zone: kun zoner med status "active" kan bruges
ZONE_ID=$(curl -s "$API/zones" -H "Authorization: Bearer $ACCESS_TOKEN" \
  | jq -r '.zones[] | select(.name == "de01-1") | .id')

# Opret projektet (rollen owner eller admin i organisationen)
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, …
}}

# Udsted et write-token til klienten
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" er backup-tokenet og vises kun i dette svar
{"token": {"id": "c4d1e8f2-…", "type": "write", "secret": "9f3e7b1c…"}}

Svar og ID’er er vist forkortet. Et projekt slettes ikke, men lukkes med POST /projects/{projectId}/close: write-tokens tilbagekaldes med det samme, read-tokens forbliver gyldige til gendannelse i opbevaringsperioden.

Alle endpoints

Projekter

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

Vis, opret, læs, ændr navn, alarm-e-mail og faktureringsreference, luk.

Backup-tokens

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

Opret read- og write-tokens til Linux, Windows og macOS, vis dem (kun metadata) og tilbagekald dem.

Oversigt

GET/zones GET/whoami GET/organizations GET/organizations/{orgId} GET/openapi.yaml

Storage-zoner med status, den aktive servicekonto, dine organisationer med din rolle og betalingsmetode, en enkelt organisation med dens SEPA Direct Debit-mandat (IBAN maskeret) og specifikationen for den kørende version.

Godt at vide

Samme rettigheder som i portalen

En servicekonto arver rettighederne fra sin ejer. Det, du ikke må se, svarer med 404; en handling, din rolle ikke tillader, svarer med 403.

Hemmeligheden vises én gang

Et backup-tokens hemmelighed vises kun i svaret på oprettelsen. Platformen gemmer kun en hash af den.

Ratebegrænsning

60 kald i minuttet pr. servicekonto og pr. IP-adresse. Hvert svar bærer X-RateLimit-headere; over grænsen svarer API’et med 429 og Retry-After.

Stabile fejlkoder

Hver fejl er et JSON-objekt {"error":"<code>"}, fx invalid_token, not_found eller project_closed.

Luk i stedet for at slette

Lukning af et projekt tilbagekalder alle write-tokens med det samme. Read-tokens forbliver gyldige, så længe der ligger backups i opbevaringsperioden, så du stadig kan gendanne.

Brugere og organisationer

Brugere, roller og organisationer administrerer du i portalen. API’et dækker projekter og backup-tokens; selve backuppen tager den open source-baserede lionbackup-klient.

Specifikation og Terraform

OpenAPI 3.1

Den komplette specifikation som openapi.yaml samt en interaktiv reference i dokumentationen. API’et leverer den samme fil under /api/v1/openapi.yaml og beskriver dermed altid den kørende version.

Terraform-provider

Med provideren lionbackup opretter du projekter og backup-tokens som infrastruktur-som-kode, til Terraform fra 1.9 og til OpenTofu. Opsætning og eksempel i dokumentationen.

Spørgsmål til API’et? Skriv til os via kontaktformularen.