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]
- Maak een sleutel aan via de webinterface (avatarmenu → API-sleutels)
- Kopieer de sleutel — deze wordt slechts eenmaal weergegeven
- Gebruik deze in de
Authorization-header van uw verzoeken
Sleutelformaat
bp_live_ + 64 hexadecimale tekens = 72 tekens
Voorbeeld: bp_live_a3f8e2b1c4d5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
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:
| Resource | Beschrijving |
|---|---|
| Queens | F0- en F1-koninginnen (fokmateriaal, productie) |
| Evaluations | Prestatie-evaluaties |
| BLUP | Geschatte fokwaarden (EBV) |
| Hive | Bijenstanden en bijenkasten |
| Account | Profiel- en accountinstellingen |
Rechtenniveaus
| Niveau | Lezen (GET) | Schrijven (POST/PUT/DELETE) |
|---|---|---|
| Geen | - | - |
| Lezen | Ja | - |
| Schrijven | Ja | Ja |
Het niveau Schrijven omvat automatisch leestoegang. U hoeft niet beide in te stellen.
Vooraf ingestelde sjablonen
| Sjabloon | Beschrijving | Rechten |
|---|---|---|
| Alleen-lezen | Alle gegevens bekijken | Alle resources in leesmodus |
| Evaluator | Veldevaluatie-invoer | Evaluaties in schrijfmodus, rest in leesmodus (behalve Hive) |
| Aangepast | Handmatige configuratie | U kiest elk recht |
Beperkingen
Verloopdatum (TTL)
Stel een levensduur in voor uw sleutel:
| Optie | Beschrijving |
|---|---|
| 7 dagen | Testen en ontwikkeling |
| 30 dagen | Tijdelijke integraties |
| 90 dagen | Standaardgebruik |
| 365 dagen | Langetermijnintegraties |
| Nooit | Geen 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.
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:
- Naam — Kies een beschrijvende naam en een rechtensjabloon
- Rechten — Pas rechten aan per resource (aangepaste modus)
- Beperkingen — Stel vervaldatum en toegestane IP's in
- 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
| Limiet | Waarde |
|---|---|
| Max sleutels per gebruiker | 20 |
| Aanmaak per uur | 10 |
| Naamlengte | 1 tot 100 tekens |
Beheer-API
Sleutels worden beheerd via de standaard REST API (Supabase-sessieauthenticatie):
| Methode | Route | Beschrijving |
|---|---|---|
GET | /api/api-keys | Uw sleutels weergeven (zonder hash) |
POST | /api/api-keys | Een nieuwe sleutel aanmaken |
PUT | /api/api-keys/{id} | Naam of status bijwerken |
DELETE | /api/api-keys | Een 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
| Code | Situatie |
|---|---|
400 | Ongeldige parameters (naam, rechten, TTL, IP) |
400 | Maximum van 20 sleutels bereikt |
401 | Niet-geauthenticeerde sessie |
429 | Aanmaklimiet overschreden (10/u) |
Zie ook: Overzicht | Authenticatie | Koninginnen | Evaluaties