Главная/Рецепты (Cookbook)/Прочитайте audit-ленту ENУКРРУС API-справочник (ReDoc) ↗

Прочитайте audit-ленту

Отфильтруйте неизменяемый поток событий до биографии одного credential и действий одного оператора.

Всё, что делали предыдущие сценарии, оставило события. Этот сценарий читает их обратно так, как это делало бы расследование: по credential, по актору, по типу, по времени.

Цель

Реконструировать историю одного credential и изолировать действия одного оператора с помощью audit-фильтров.

Предварительные условия

  • Админский вход: токен provider_admin на /v1/admin/audit-events или admin-scoped сервисный токен на /internal/v1/admin/audit-events — лента одна и та же.
  • Активность из предыдущих сценариев (создания, ротация, reveal).

Шаги

1. Биография одного credential

curl -s "$CREDS_BASE/internal/v1/admin/audit-events?credential_id=$CRED_ID" \
  -H "Authorization: Bearer $ADMIN_TOKEN" -H "X-Admin-Actor: panel:olha"

Ожидаемый 200, новейшие первыми: credential.created, затем credential.updated (метаданные перечисляют имена изменённых полей — например, ["credentials"] после ротации), credential.default_changed и так далее. Никаких секретных значений нигде в metadata.

2. Действия одного оператора

Отфильтруйте по атрибутированному актору:

events = httpx.get(
    f"{CREDS_BASE}/internal/v1/admin/audit-events",
    params={"actor_id": f"service:{CLIENT_ID}!panel:olha"},
    headers=admin_headers,
).json()
assert all(e["actor_id"].endswith("panel:olha") for e in events["items"])

Ожидаемо: ровно те вызовы, что сделаны под этой меткой X-Admin-Actor — атрибуция из сценария 07 окупается.

3. История resolve

Отфильтруйте event_type=credential.resolved (и его собрата credential.resolve_failed). Ожидаемо: одно событие на каждый resolve, несущее credential_source, target_user_id и ваш correlation_id — нить, связывающая запрос рантайма с этой лентой.

4. Ограничьте по времени

Добавьте from/to (RFC 3339). Ожидаемо: только события внутри окна. Помните политику ретенции: лента хранит ~10 дней (по умолчанию), а credential.revealed освобождено — экспортируйте ниже по течению то, что должны хранить дольше.

Проверено тестом test_s09_read_the_audit_trail.