
# 接続の最新テスト結果を取得

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

エンタープライズ接続について、過去 24 時間以内の最新の [テストサインイン](test.md) の結果を返します。ステータス、失敗理由、IdP が送信した属性またはクレームの **名前**、グループ数、属性マッピングで値を受け取ったユーザーフィールドを含みます。属性の値、生の SAML アサーション、ID トークンは保存も返却もされません。テスト結果は 24 時間保持されます。読み取りは監査されません。

## リクエスト

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `connection_id` | パス | はい | エンタープライズ接続 ID（`conn_…`）。 |

## レスポンス

`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"
}
```

| フィールド | 説明 |
|---|---|
| `status` | `pending`（URL がまだ開かれていない、または IdP がまだ応答していない）、`passed`、または `failed`。 |
| `failure_reason` | 失敗したテストの機械可読な理由（例: テスト中に接続が変更された場合は `configuration_changed`）。それ以外は `null`。 |
| `attribute_names` | IdP が送信した属性またはクレームの名前（値ではない）。 |
| `group_count` | 受け取ったグループの数。 |
| `mapped_fields` | 属性マッピングで値を受け取ったユーザーフィールド（値ではない）。 |
| `started_at`, `completed_at` | テスト開始時刻と、IdP の応答を処理した時刻。`pending` の間は `completed_at` は `null` です。 |

## エラー

| HTTP | code | 発生条件 |
|---|---|---|
| 404 | `not_found` | この環境に接続が存在しない、エンタープライズ接続でない、または過去 24 時間にテスト結果がありません。 |
| 401 | `unauthenticated` | 認証情報がない、無効、または取り消されています。 |
| 403 | `insufficient_permissions` | 認証情報に必要な権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` の期間を待ってから再試行してください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。`Retry-After` の期間を待ってから再試行してください。 |

## 例

```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
```
