# События безопасности текущего пользователя

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## События безопасности текущего пользователя

`GET /api/v1/security/audit/me`

**Авторизация:** dpop

**Параметры**

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `cursor` | query | нет | string | Курсор из nextCursor предыдущей страницы |
| `limit` | query | нет | integer | Событий на страницу, максимум 200 |
| `category` | query | нет | string | Фильтр по категории: authentication, account, admin и др.; document — сессии правок документов |
| `action` | query | нет | string | Фильтр по действию, например login или password_reset_completed |
| `outcome` | query | нет | string | Фильтр по исходу: success или failure |
| `sessionId` | query | нет | string (uuid) | Фильтр по сессии |
| `includeNoisy` | query | нет | boolean, nullable | Включить шумные события (ротация refresh-токенов) |

**Ответы**

- `200` — Страница событий (`application/json`, AuditListResponse)
  - `events`: массив AuditEvent, обязательное — Страница событий, новые первыми
    - `action`: string, обязательное — Действие, например login или device_revoked
    - `authMethod`: string, nullable, обязательное — Способ аутентификации: password, totp, refresh
    - `category`: string, обязательное — Категория: authentication, account, admin и др.
    - `details`: any — Дополнительные данные события
    - `deviceFingerprint`: string, nullable, обязательное — Отпечаток устройства
    - `geoAsn`: number, nullable, обязательное — Номер автономной системы IP
    - `geoAsnOrg`: string, nullable, обязательное — Оператор автономной системы IP
    - `geoCity`: string, nullable, обязательное — Город по геолокации IP
    - `geoCountry`: string, nullable, обязательное — Страна по геолокации IP
    - `id`: string, обязательное — Идентификатор события
    - `initiatorId`: string, nullable, обязательное — Идентификатор инициатора
    - `initiatorKind`: string, обязательное — Кто инициировал: user — пользователь, service — сервис платформы, workload — фоновая задача, anonymous — не определён
    - `ip`: string, nullable, обязательное — IP-адрес (расшифровывается при выдаче)
    - `outcome`: string, обязательное — Исход: success или failure
    - `reason`: string, nullable, обязательное — Причина или контекст события
    - `sessionId`: string, nullable, обязательное — Сессия, к которой относится событие
    - `severity`: string, обязательное — Важность: info, notice, warning
    - `targetId`: string, nullable, обязательное — Идентификатор цели
    - `targetKind`: string, обязательное — Тип цели: user, team, device
    - `ts`: string, обязательное — Момент события, ISO 8601
    - `userAgent`: string, nullable, обязательное — User-Agent запроса
  - `nextCursor`: string, nullable, обязательное — Курсор следующей страницы; null — конец выборки
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)
- `429` — Превышен лимит запросов, повторите через Retry-After секунд (`application/problem+json`, ProblemDetails)

    </>
  );
}
