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
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.
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)
Send kald med tokenet
Alle endpoints ligger under
https://api.lionbackup.cloud/api/v1og forventer tokenet i headerenAuthorization: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.