L lionbackup CLOUD
REGISTRATI LOGIN
Disponibile ora

L’API di lionbackup

Creare progetti, emettere e revocare token di backup, interrogare zone e organizzazioni: una REST API con JSON, specifica OpenAPI 3.1 aperta e provider Terraform. Applica gli stessi permessi del portale.

La prima chiamata in tre passi

  1. Creare un service account e una chiave

    Nel portale, alla voce Developer, create un service account e una chiave API associata. Il service account ha esattamente i permessi del vostro account utente; la chiave viene mostrata una sola volta.

  2. Scambiare la chiave con un token di accesso

    La chiave non è un bearer token. La scambiate con un token di accesso valido per 15 minuti:

    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. Inviare le richieste con il token

    Tutti gli endpoint si trovano sotto https://api.lionbackup.cloud/api/v1 e richiedono il token nell’intestazione Authorization:

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

Esempio: creare un progetto ed emettere un token write

Un progetto richiede un nome e l’ID della sua zona di storage. Un token di backup appartiene a un solo progetto: con un token write il client esegue il backup, con un token read il ripristino.

# Scegliere la zona: utilizzabili solo le zone con status "active"
ZONE_ID=$(curl -s "$API/zones" -H "Authorization: Bearer $ACCESS_TOKEN" \
  | jq -r '.zones[] | select(.name == "de01-1") | .id')

# Creare il progetto (ruolo owner o admin nell’organizzazione)
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, …
}}

# Emettere un token write per il client
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" è il token di backup e compare solo in questa risposta
{"token": {"id": "c4d1e8f2-…", "type": "write", "secret": "9f3e7b1c…"}}

Risposte e ID sono mostrati in forma abbreviata. Un progetto non viene eliminato ma chiuso con POST /projects/{projectId}/close: i token write vengono revocati subito, i token read restano validi per i ripristini durante il periodo di conservazione.

Tutti gli endpoint

Progetti

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

Elencare, creare, leggere, modificare nome, e-mail di allarme e riferimento di fatturazione, chiudere.

Token di backup

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

Creare token read e write per Linux, Windows e macOS, elencarli (solo metadati) e revocarli.

Directory

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

Zone di storage con stato, il service account attivo, le vostre organizzazioni con il vostro ruolo e il metodo di pagamento, una singola organizzazione con il suo mandato di addebito diretto SEPA (IBAN mascherato) e la specifica della versione in esecuzione.

Buono a sapersi

Gli stessi permessi del portale

Un service account eredita i permessi del suo proprietario. Ciò che non potete vedere risponde con 404; un’azione non consentita dal vostro ruolo risponde con 403.

Il segreto compare una sola volta

Il segreto di un token di backup compare solo nella risposta alla sua creazione. La piattaforma ne conserva soltanto un hash.

Limite di richieste

60 richieste al minuto per service account e per indirizzo IP. Ogni risposta include le intestazioni X-RateLimit; oltre il limite l’API risponde con 429 e Retry-After.

Codici di errore stabili

Ogni errore è un oggetto JSON {"error":"<code>"}, ad esempio invalid_token, not_found o project_closed.

Chiudere invece di eliminare

La chiusura di un progetto revoca subito tutti i token write. I token read restano validi finché i backup sono nel periodo di conservazione, così potete ancora ripristinare.

Utenti e organizzazioni

Utenti, ruoli e organizzazioni si gestiscono nel portale. L’API copre progetti e token di backup; i backup veri e propri li esegue il client open source di lionbackup.

Specifica e Terraform

OpenAPI 3.1

La specifica completa come openapi.yaml, più un riferimento interattivo nella documentazione. L’API serve lo stesso file in /api/v1/openapi.yaml e descrive quindi sempre la versione in esecuzione.

Provider Terraform

Con il provider lionbackup gestite progetti e token di backup come infrastruttura come codice, per Terraform dalla 1.9 e per OpenTofu. Configurazione ed esempio nella documentazione.

Domande sull’API? Scriveteci tramite il modulo di contatto.