
# Obtener el último resultado de prueba de una conexión

`GET /v1/connections/{connection_id}/test-results/latest` · permiso `connections:write`

Devuelve el resultado del [inicio de sesión de prueba](test.md) más reciente de una conexión empresarial de las últimas 24 horas: estado, motivo del fallo, los **nombres** de los atributos o claims que envió el proveedor de identidad, el número de grupos y los campos de usuario que recibieron un valor mediante la asignación de atributos. Los valores de los atributos, la aserción SAML sin procesar y el ID token nunca se guardan ni se devuelven. Los resultados de prueba se conservan 24 horas. Las lecturas no se auditan.

## Solicitud

| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `connection_id` | ruta | sí | ID de la conexión empresarial (`conn_…`). |

## Respuesta

`200 OK`:

```json
{
  "test_id": "conntest_01j9xr4a6b8c0d2e4f6g8h0j2k",
  "status": "passed",
  "failure_reason": null,
  "attribute_names": ["email", "given_name", "groups"],
  "group_count": 2,
  "mapped_fields": ["email", "given_name"],
  "started_at": "2026-10-20T10:00:00Z",
  "completed_at": "2026-10-20T10:01:12Z"
}
```

| Campo | Descripción |
|---|---|
| `status` | `pending` (la URL aún no se abrió o el proveedor de identidad aún no ha respondido), `passed` o `failed`. |
| `failure_reason` | Motivo legible por máquina de una prueba fallida (por ejemplo `configuration_changed` cuando la conexión se cambió durante la prueba); en otro caso, `null`. |
| `attribute_names` | Nombres de los atributos o claims que envió el proveedor de identidad (no sus valores). |
| `group_count` | Número de grupos recibidos. |
| `mapped_fields` | Campos de usuario que recibieron un valor mediante la asignación de atributos (no los valores). |
| `started_at`, `completed_at` | Cuándo empezó la prueba y cuándo se procesó la respuesta del proveedor de identidad; `completed_at` es `null` mientras está `pending`. |

## Errores

| HTTP | code | Cuándo |
|---|---|---|
| 404 | `not_found` | La conexión no existe en este entorno, no es una conexión empresarial o no tiene un resultado de prueba de las últimas 24 horas. |
| 401 | `unauthenticated` | La credencial falta, no es válida o está revocada. |
| 403 | `insufficient_permissions` | La credencial no tiene el permiso necesario. |
| 429 | `rate_limited` | Se superó el límite de solicitudes; reintenta tras el periodo indicado en `Retry-After`. |
| 503 | `service_unavailable` | Una dependencia no está disponible temporalmente; reintenta tras el periodo indicado en `Retry-After`. |

## Ejemplo

```bash
curl "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/test-results/latest" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections test-results latest conn_01j9xp6q0r1s5t7v9w1x3y5z7b
```
