Naar hoofdinhoud gaan

API-sleutels

API-sleutels geven u toegang tot uw BeePass-gegevens vanuit externe applicaties, scripts of integraties van derden zonder de webinterface te gebruiken. Elke sleutel heeft gedetailleerde rechten per resource.

Hoe het werkt

[Uw applicatie]
│ Authorization: Bearer bp_live_a3f8...5e82

https://beepass.io/api/v1/queens
│ SHA-256 validatie → DB lookup → rechtencontrole

[JSON-gegevens retour]
  1. Maak een sleutel aan via de webinterface (avatarmenu → API-sleutels)
  2. Kopieer de sleutel — deze wordt slechts eenmaal weergegeven
  3. Gebruik deze in de Authorization-header van uw verzoeken

Sleutelformaat

bp_live_ + 64 hexadecimale tekens = 72 tekens

Voorbeeld: bp_live_a3f8e2b1c4d5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1

Beveiliging

De ruwe sleutel wordt slechts eenmaal weergegeven bij aanmaak. BeePass slaat alleen een SHA-256 hash op — het is onmogelijk om een verloren sleutel te herstellen. U moet een nieuwe aanmaken.

Gebruik

Voeg de sleutel toe aan de Authorization-header van elk verzoek:

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()

Rechten

Elke sleutel definieert een toegangsniveau per resource:

ResourceBeschrijving
QueensF0- en F1-koninginnen (fokmateriaal, productie)
EvaluationsPrestatie-evaluaties
BLUPGeschatte fokwaarden (EBV)
HiveBijenstanden en bijenkasten
AccountProfiel- en accountinstellingen

Rechtenniveaus

NiveauLezen (GET)Schrijven (POST/PUT/DELETE)
Geen--
LezenJa-
SchrijvenJaJa
tip

Het niveau Schrijven omvat automatisch leestoegang. U hoeft niet beide in te stellen.

Vooraf ingestelde sjablonen

SjabloonBeschrijvingRechten
Alleen-lezenAlle gegevens bekijkenAlle resources in leesmodus
EvaluatorVeldevaluatie-invoerEvaluaties in schrijfmodus, rest in leesmodus (behalve Hive)
AangepastHandmatige configuratieU kiest elk recht

Beperkingen

Verloopdatum (TTL)

Stel een levensduur in voor uw sleutel:

OptieBeschrijving
7 dagenTesten en ontwikkeling
30 dagenTijdelijke integraties
90 dagenStandaardgebruik
365 dagenLangetermijnintegraties
NooitGeen automatische vervaldatum

Een verlopen sleutel wordt automatisch geweigerd. Deze blijft zichtbaar in de lijst met de status "Verlopen".

IP-beperking

Beperk het gebruik van de sleutel tot specifieke IP-adressen voor verbeterde beveiliging:

  • Enkel IP: 203.0.113.5
  • CIDR-subnet: 192.168.1.0/24

Als er geen IP is ingesteld, kan de sleutel vanaf elk adres worden gebruikt.

info

De IP-beperking wordt bij elk verzoek gecontroleerd. Het client-IP wordt geëxtraheerd uit CF-Connecting-IP, X-Forwarded-For of X-Real-IP headers.

Sleutelbeheer

Een sleutel aanmaken

Ga naar de pagina API-sleutels via het avatarmenu in de header en klik op Sleutel genereren. De 4-stappen wizard begeleidt u:

  1. Naam — Kies een beschrijvende naam en een rechtensjabloon
  2. Rechten — Pas rechten aan per resource (aangepaste modus)
  3. Beperkingen — Stel vervaldatum en toegestane IP's in
  4. Gegenereerde sleutel — Kopieer uw sleutel onmiddellijk

Uitschakelen / Weer inschakelen

Gebruik de schakelaar in de kolom "Inschakelen" om een sleutel tijdelijk uit te schakelen zonder deze te verwijderen. Een uitgeschakelde sleutel wordt onmiddellijk geweigerd door de API.

Intrekken

Klik op het prullenbakicoon en bevestig de intrekking. De sleutel verandert naar de status "Ingetrokken" en kan niet opnieuw worden geactiveerd.

Limieten

LimietWaarde
Max sleutels per gebruiker20
Aanmaak per uur10
Naamlengte1 tot 100 tekens

Beheer-API

Sleutels worden beheerd via de standaard REST API (Supabase-sessieauthenticatie):

MethodeRouteBeschrijving
GET/api/api-keysUw sleutels weergeven (zonder hash)
POST/api/api-keysEen nieuwe sleutel aanmaken
PUT/api/api-keys/{id}Naam of status bijwerken
DELETE/api/api-keysEen sleutel intrekken

Een sleutel aanmaken (POST)

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

Antwoord (201):

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

Een sleutel intrekken (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" }'

Foutcodes

CodeSituatie
400Ongeldige parameters (naam, rechten, TTL, IP)
400Maximum van 20 sleutels bereikt
401Niet-geauthenticeerde sessie
429Aanmaklimiet overschreden (10/u)

Zie ook: Overzicht | Authenticatie | Koninginnen | Evaluaties