Saltar al contenido principal

API de Laboratorios (Frida)

Ruta base: /workbenches/v1. Autenticación con la sesión o token de Studio; toda operación está limitada al Cliente activo. En la API el laboratorio se llama workbench.

Operaciones

Método y rutaDescripción
GET /workbenches/v1/planTallas disponibles para el Cliente (sizes con cpu, memory, storage, gpumemMiB), talla por defecto (defaultSize) y máximos por recurso (ceiling).
GET /workbenches/v1Lista de laboratorios. Filtro ownership: mine, shared, all.
POST /workbenches/v1Crear. Cuerpo: name y size (nombre de talla) o resources (cpu, memory, gpumem, storage).
GET /workbenches/v1/{id}Detalle: status, spec (talla y recursos resueltos), usage (consumo por recurso), dashboardUrl, rejections (últimos rechazos de admisión) y access (dueño y editores).
DELETE /workbenches/v1/{id}Eliminar. Solo el dueño, en estado ready o failed.
GET, POST, DELETE /workbenches/v1/{id}/membersListar, agregar (userId, role: editor) y quitar editores.

Ejemplo: crear con una talla

curl -X POST "https://api.<tu-dominio>/workbenches/v1" \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"name": "prediccion-fugas", "size": "M"}'
{
"id": "wb_3wzamf964waf5t0cjzmqmrsdb",
"name": "prediccion-fugas",
"status": "pending",
"spec": { "size": "M", "cpu": "5", "memory": "18Gi", "gpumem": "12288", "storage": "50Gi" },
"dashboardUrl": null,
"access": { "owner": "usr_...", "editors": [] }
}

dashboardUrl se rellena cuando status pasa a ready; es la misma URL que abre el botón Abrir en Studio. Consulta el detalle cada 10 a 15 segundos hasta entonces; no antes.

Un rechazo por política llega como 422 con el recurso y el límite:

{
"error": {
"code": "LAB_POLICY_UNAVAILABLE",
"message": "gpumem 32768 exceeds the plan ceiling of 24576",
"details": { "dimension": "gpumem", "requested": "32768", "limit": "24576" }
}
}

Cantidades

Los recursos usan la notación de Kubernetes: cpu en núcleos (4) o milinúcleos (500m); memory y storage con sufijo binario (16Gi); gpumem en MiB sin sufijo (24576) o con sufijo (24Gi).

Estados

pending, provisioning, ready, failed, deleting, deleted, not_installed.

Errores

HTTPCuándo
400LAB_INVALID_RESOURCES: cantidad mal formada, o talla y recursos enviados a la vez.
403No eres dueño (eliminar, compartir).
404No existe o pertenece a otro Cliente.
409Ya existe un laboratorio con ese nombre, o hay una eliminación en curso.
422LAB_POLICY_UNAVAILABLE: la talla no existe en el plan o un recurso supera el máximo (details trae dimension, requested y limit). LAB_CAPACITY_UNAVAILABLE: no hay capacidad ahora.
403 / 404 (miembros)LAB_MEMBER_NOT_IN_ORGANIZATION, LAB_MEMBER_IS_OWNER, LAB_INVALID_ROLE al compartir con alguien fuera del Cliente, con el propio dueño o con un rol distinto de editor.