Claves API
Las claves API le permiten acceder a sus datos de BeePass desde aplicaciones externas, scripts o integraciones de terceros sin usar la interfaz web. Cada clave tiene permisos granulares por recurso.
Funcionamiento
[Su aplicacion]
| Authorization: Bearer bp_live_a3f8...5e82
v
https://beepass.io/api/v1/queens
| Validacion SHA-256 -> Consulta BD -> Verificacion de permisos
v
[Datos JSON devueltos]
- Cree una clave desde la interfaz web (menu de avatar -> Claves API)
- Copie la clave — solo se mostrara una vez
- Usela en el encabezado
Authorizationde sus solicitudes
Formato de la clave
bp_live_ + 64 caracteres hexadecimales = 72 caracteres
Ejemplo: bp_live_a3f8e2b1c4d5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
La clave en texto claro solo se muestra una vez durante la creacion. BeePass solo almacena un hash SHA-256 — es imposible recuperar una clave perdida. Debera crear una nueva.
Uso
Anada la clave al encabezado Authorization de cada solicitud:
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()
Permisos
Cada clave define un nivel de acceso por recurso:
| Recurso | Descripcion |
|---|---|
| Queens | Reinas F0 y F1 (reproductoras, produccion) |
| Evaluations | Evaluaciones de rendimiento |
| BLUP | Valores geneticos estimados (EBV) |
| Hive | Colmenares y colmenas |
| Account | Perfil y configuracion de la cuenta |
Niveles de permisos
| Nivel | Lectura (GET) | Escritura (POST/PUT/DELETE) |
|---|---|---|
| Ninguno | - | - |
| Lectura | Si | - |
| Escritura | Si | Si |
El nivel Escritura incluye automaticamente el acceso de lectura. No es necesario configurar ambos.
Plantillas predefinidas
| Plantilla | Descripcion | Permisos |
|---|---|---|
| Solo lectura | Ver todos los datos | Todos los recursos en modo lectura |
| Evaluador | Entrada de evaluaciones de campo | Evaluaciones en escritura, resto en lectura (excepto Hive) |
| Personalizado | Configuracion manual | Usted elige cada permiso |
Restricciones
Expiracion (TTL)
Establezca una duracion de vida para su clave:
| Opcion | Descripcion |
|---|---|
| 7 dias | Pruebas y desarrollo |
| 30 dias | Integraciones temporales |
| 90 dias | Uso estandar |
| 365 dias | Integraciones a largo plazo |
| Nunca | Sin expiracion automatica |
Una clave expirada es rechazada automaticamente. Permanece visible en la lista con el estado "Expirada".
Restriccion por IP
Limite el uso de la clave a direcciones IP especificas para mayor seguridad:
- IP unica:
203.0.113.5 - Subred CIDR:
192.168.1.0/24
Si no se configura ninguna IP, la clave puede usarse desde cualquier direccion.
La restriccion por IP se verifica en cada solicitud. La IP del cliente se extrae de los encabezados CF-Connecting-IP, X-Forwarded-For o X-Real-IP.
Gestion de claves
Crear una clave
Acceda a la pagina Claves API desde el menu de avatar en el encabezado, luego haga clic en Generar clave. El asistente de 4 pasos le guia:
- Nombre — Elija un nombre descriptivo y una plantilla de permisos
- Permisos — Ajuste los permisos por recurso (modo personalizado)
- Restricciones — Configure la expiracion y las IP permitidas
- Clave generada — Copie su clave inmediatamente
Desactivar / Reactivar
Use el interruptor en la columna "Activar" para desactivar temporalmente una clave sin eliminarla. Una clave desactivada es rechazada inmediatamente por la API.
Revocar
Haga clic en el icono de papelera y confirme la revocacion. La clave cambia al estado "Revocada" y no puede ser reactivada.
Limites
| Limite | Valor |
|---|---|
| Maximo de claves por usuario | 20 |
| Creaciones por hora | 10 |
| Longitud del nombre | 1 a 100 caracteres |
API de gestion
Las claves se gestionan a traves de la API REST estandar (autenticacion por sesion Supabase):
| Metodo | Ruta | Descripcion |
|---|---|---|
GET | /api/api-keys | Listar sus claves (sin hash) |
POST | /api/api-keys | Crear una nueva clave |
PUT | /api/api-keys/{id} | Actualizar nombre o estado |
DELETE | /api/api-keys | Revocar una clave |
Crear una clave (POST)
curl -X POST https://beepass.io/api/api-keys \
-H "Content-Type: application/json" \
-b "sb-cookie=..." \
-d '{
"name": "Mi aplicacion movil",
"permissions": {
"queens": "read",
"evaluations": "write",
"blup": "read",
"hive": "none",
"account": "read"
},
"expires_in_days": 90,
"ip_allowlist": ["203.0.113.0/24"]
}'
Respuesta (201):
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"key": "bp_live_a3f8e2b1c4d5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1",
"key_prefix": "bp_live_a3f8e2b1...f0a1"
}
}
Revocar una clave (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" }'
Codigos de error
| Codigo | Situacion |
|---|---|
400 | Parametros invalidos (nombre, permisos, TTL, IP) |
400 | Maximo de 20 claves alcanzado |
401 | Sesion no autenticada |
429 | Limite de creacion excedido (10/h) |
Vea tambien: Descripcion general | Autenticacion | Reinas | Evaluaciones