Saltar al contenido principal

Autenticación

Todos los endpoints de la API pública (/api/v1/*) requieren un token Bearer creado desde la interfaz de Settings de QA Hub.

Crear un token de API

  1. Ve a Settings → Developer → API Tokens.
  2. Haz clic en Create token.
  3. Dale un nombre (p. ej., "CI pipeline") y selecciona los scopes que necesitas.
  4. Copia el token — se muestra solo una vez. Guárdalo en un gestor de secretos o en una variable de entorno de CI.

Los tokens tienen el formato qh_<prefix>_<secret>. El prefijo se almacena en texto claro para mostrarlo; el secreto se hashea con bcrypt y no puede recuperarse de nuevo.

Scopes

ScopeAcceso
readEndpoints GET — listar proyectos, casos, ejecuciones, resultados
writeEndpoints POST, PATCH, DELETE — crear y modificar recursos

Asigna solo los scopes que un token necesita. Los pipelines de CI que solo ingestan resultados necesitan write. Las herramientas de reporting que solo leen métricas necesitan read.

Hacer solicitudes

Añade el token a cada solicitud en el header Authorization:

Authorization: Bearer qh_abc123_your-secret-here

Ejemplo con cURL

curl https://your-qahub.com/api/v1/projects \
-H "Authorization: Bearer qh_abc123_yoursecret"

JavaScript (fetch)

const res = await fetch('https://your-qahub.com/api/v1/projects', {
headers: {
'Authorization': 'Bearer qh_abc123_yoursecret',
'Content-Type': 'application/json',
},
});
const { data } = await res.json();

Verificar un token

Usa el endpoint /api/v1/me para confirmar que un token es válido e inspeccionar sus scopes:

curl https://your-qahub.com/api/v1/me \
-H "Authorization: Bearer qh_abc123_yoursecret"
{
"tenant": { "id": "cuid123", "name": "Acme Corp", "status": "ACTIVE" },
"scopes": ["read", "write"],
"ai": { "provider": "gemini", "model": "gemini-2.0-flash", "quota_exhausted": false }
}

Alcance del token

Los tokens tienen alcance de tenant — un token creado por un usuario en el espacio de trabajo de Acme Corp solo puede acceder a los datos de Acme Corp. No hay acceso entre tenants mediante tokens.

Revocar un token

Ve a Settings → Developer → API Tokens, localiza el token por su nombre/prefijo y haz clic en Revoke. El token deja de funcionar de inmediato.

Respuestas de error

EstadoSignificado
401 UnauthorizedToken ausente o mal formado
401 UnauthorizedToken no encontrado o revocado
403 ForbiddenEl token no tiene el scope requerido