Vai al contenuto principale

Chiavi API

Le chiavi API consentono di accedere ai vostri dati BeePass da applicazioni esterne, script o integrazioni di terze parti senza passare dall'interfaccia web. Ogni chiave dispone di permessi granulari per risorsa.

Funzionamento

[La vostra applicazione]
│ Authorization: Bearer bp_live_a3f8...5e82

https://beepass.io/api/v1/queens
│ Validazione SHA-256 → ricerca DB → verifica permessi

[Dati restituiti in JSON]
  1. Create una chiave dall'interfaccia web (menu avatar → Chiavi API)
  2. Copiate la chiave — verrà mostrata una sola volta
  3. Utilizzatela nell'intestazione Authorization delle vostre richieste

Formato della chiave

bp_live_ + 64 caratteri esadecimali = 72 caratteri

Esempio: bp_live_a3f8e2b1c4d5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1

Sicurezza

La chiave in chiaro viene mostrata una sola volta al momento della creazione. BeePass conserva solo un hash SHA-256 — è impossibile recuperare una chiave smarrita. Dovrete crearne una nuova.

Utilizzo

Aggiungete la chiave nell'intestazione Authorization di ogni richiesta:

curl -H "Authorization: Bearer bp_live_a3f8..." \
https://beepass.io/api/v1/queens
const response = await fetch('https://beepass.io/api/v1/queens', {
headers: {
'Authorization': 'Bearer bp_live_a3f8...',
'Content-Type': 'application/json'
}
});
const data = await response.json();
import requests

headers = {
'Authorization': 'Bearer bp_live_a3f8...',
'Content-Type': 'application/json'
}
response = requests.get('https://beepass.io/api/v1/queens', headers=headers)
data = response.json()

Permessi

Ogni chiave definisce un livello di accesso per risorsa:

RisorsaDescrizione
QueensRegine F0 e F1 (ceppi, produzione)
EvaluationsValutazioni delle prestazioni
BLUPValori genetici stimati (EBV)
HiveApiari e arnie
AccountProfilo e impostazioni dell'account

Livelli di permesso

LivelloLettura (GET)Scrittura (POST/PUT/DELETE)
Nessuno--
LetturaSi-
ScritturaSiSi
suggerimento

Il livello Scrittura include automaticamente la lettura. Non è necessario definire entrambi.

Modelli predefiniti

ModelloDescrizionePermessi
Sola letturaConsultazione di tutti i datiTutte le risorse in lettura
ValutatoreInserimento valutazioni sul campoValutazioni in scrittura, resto in lettura (eccetto Apiario)
PersonalizzatoConfigurazione manualeScegliete ogni permesso

Restrizioni

Scadenza (TTL)

Definite una durata di vita per la vostra chiave:

OpzioneDescrizione
7 giorniTest e sviluppo
30 giorniIntegrazioni temporanee
90 giorniUtilizzo standard
365 giorniIntegrazioni a lungo termine
MaiNessuna scadenza automatica

Una chiave scaduta viene automaticamente rifiutata. Resta visibile nell'elenco con lo stato "Scaduta".

Restrizione IP

Limitate l'utilizzo di una chiave a indirizzi IP specifici per rafforzare la sicurezza:

  • IP singolo: 203.0.113.5
  • Sottorete CIDR: 192.168.1.0/24

Se nessun IP è definito, la chiave può essere utilizzata da qualsiasi indirizzo.

info

La restrizione IP viene verificata ad ogni richiesta. L'IP del client viene estratto dalle intestazioni CF-Connecting-IP, X-Forwarded-For o X-Real-IP.

Gestione delle chiavi

Creare una chiave

Accedete alla pagina Chiavi API dal menu avatar nell'header, poi cliccate su Genera una chiave. La procedura guidata in 4 passaggi vi accompagna:

  1. Nome — Scegliete un nome descrittivo e un modello di permessi
  2. Permessi — Regolate i permessi per risorsa (modalità personalizzata)
  3. Restrizioni — Definite la scadenza e gli IP autorizzati
  4. Chiave generata — Copiate la vostra chiave immediatamente

Disattivare / Riattivare

Utilizzate lo switch nella colonna "Attiva" della tabella per disattivare temporaneamente una chiave senza eliminarla. Una chiave disattivata viene immediatamente rifiutata dall'API.

Revocare

Cliccate sull'icona cestino e confermate la revoca. La chiave passa allo stato "Revocata" e non può più essere riattivata.

Limiti

LimiteValore
Numero massimo di chiavi per utente20
Creazioni per ora10
Lunghezza del nomeDa 1 a 100 caratteri

API di gestione

Le chiavi vengono gestite tramite l'API REST standard (autenticazione tramite sessione Supabase):

MetodoRottaDescrizione
GET/api/api-keysElencare le vostre chiavi (senza l'hash)
POST/api/api-keysCreare una nuova chiave
PUT/api/api-keys/{id}Modificare il nome o lo stato
DELETE/api/api-keysRevocare una chiave

Creare una chiave (POST)

curl -X POST https://beepass.io/api/api-keys \
-H "Content-Type: application/json" \
-b "sb-cookie=..." \
-d '{
"name": "La mia app mobile",
"permissions": {
"queens": "read",
"evaluations": "write",
"blup": "read",
"hive": "none",
"account": "read"
},
"expires_in_days": 90,
"ip_allowlist": ["203.0.113.0/24"]
}'

Risposta (201):

{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"key": "bp_live_a3f8e2b1c4d5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1",
"key_prefix": "bp_live_a3f8e2b1...f0a1"
}
}

Revocare una chiave (DELETE)

curl -X DELETE https://beepass.io/api/api-keys \
-H "Content-Type: application/json" \
-b "sb-cookie=..." \
-d '{ "id": "550e8400-e29b-41d4-a716-446655440000" }'

Codici di errore

CodiceSituazione
400Parametri non validi (nome, permessi, TTL, IP)
400Massimo 20 chiavi raggiunto
401Sessione non autenticata
429Limite di creazione superato (10/h)

Permessi dettagliati

Ogni risorsa accetta tre livelli di accesso. Il livello write include automaticamente la lettura.

Risorsanonereadwrite
queensNessun accessoLeggere le regineCreare/modificare regine
evaluationsNessun accessoLeggere le valutazioniInviare valutazioni
blupNessun accessoLeggere gli EBV
hiveNessun accessoLeggere gli apiariModificare gli apiari
accountNessun accessoLeggere il profiloModificare il profilo
info

La risorsa blup non prevede il livello write. I valori genetici sono calcolati dalla pipeline e non possono essere modificati tramite l'API.

Restrizione per IP

Potete limitare l'utilizzo di una chiave a un elenco di indirizzi IP autorizzati (allowlist). La notazione CIDR è supportata per autorizzare un'intera sottorete.

Esempi di valori accettati:

  • 203.0.113.5 -- un singolo indirizzo IP
  • 192.168.1.0/24 -- l'intera sottorete 192.168.1.x (256 indirizzi)
  • 10.0.0.0/8 -- l'intera rete privata 10.x.x.x

Se l'elenco è vuoto, la chiave è utilizzabile da qualsiasi indirizzo. L'indirizzo del client viene estratto tramite le intestazioni CF-Connecting-IP, X-Forwarded-For o X-Real-IP.

Durata di validità

Ogni chiave dispone di una durata di vita (TTL) definita alla creazione:

DurataCaso d'uso
7 giorniTest e prototipazione
30 giorniIntegrazioni occasionali
90 giorniUtilizzo corrente
1 annoIntegrazioni stabili
IllimitataNessuna scadenza automatica

Una chiave scaduta viene automaticamente rifiutata dall'API con il codice HTTP 401. Resta visibile nel vostro elenco di chiavi con lo stato Scaduta, ma non può più essere riattivata. Dovrete crearne una nuova.

attenzione

La chiave in chiaro viene mostrata una sola volta al momento della creazione. Copiatela immediatamente e conservatela in un gestore di segreti. BeePass conserva solo un hash SHA-256: è impossibile recuperare una chiave smarrita.


Vedi anche: Panoramica | Autenticazione | Regine | Valutazioni